bicgstab#
- deepinv.optim.utils.bicgstab(A, b, init=None, max_iter=1e2, tol=1e-5, parallel_dim=0, verbose=False, left_precon=lambda x: ..., right_precon=lambda x: ...)[source]#
Biconjugate gradient stabilized algorithm.
Solves \(Ax=b\) with \(A\) squared using the BiCGSTAB algorithm:
Van der Vorst, H. A. (1992). “Bi-CGSTAB: A Fast and Smoothly Converging Variant of Bi-CG for the Solution of Nonsymmetric Linear Systems”. SIAM J. Sci. Stat. Comput. 13 (2): 631–644.
For more details see: http://en.wikipedia.org/wiki/Biconjugate_gradient_stabilized_method
- Parameters:
A (Callable) – Linear operator as a callable function.
b (torch.Tensor) – input tensor of shape (B, …)
init (torch.Tensor) – Optional initial guess.
max_iter (int) – maximum number of BiCGSTAB iterations.
tol (float) – absolute tolerance for stopping the BiCGSTAB algorithm.
parallel_dim (None, int, List[int]) – dimensions to be considered as batch dimensions. If None, all dimensions are considered as batch dimensions.
verbose (bool) – Output progress information in the console.
left_precon (Callable) – left preconditioner as a callable function.
right_precon (Callable) – right preconditioner as a callable function.
- Returns:
(
torch.Tensor
) \(x\) of shape (B, …)