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, β¦)- Return type: