gko::batch::solver::Bicgstab#

Batched stabilised biconjugate gradient. The batched analogue of gko::solver::Bicgstab: suitable for batches of non-symmetric systems where each item benefits from BiCGSTAB’s short recurrence and avoidance of an explicit A^H apply. Each batch item runs its own iteration with its own convergence test.

template<typename ValueType = default_precision>
class Bicgstab #

Inherits from

  • public gko::batch::solver::EnableBatchSolver<Bicgstab<default_precision>, default_precision>

BiCGSTAB or the Bi-Conjugate Gradient-Stabilized is a Krylov subspace solver. Being a generic solver, it is capable of solving general matrices, including non-s.p.d matrices.

This solver solves a batch of linear systems using the Bicgstab algorithm. Each linear system in the batch can converge independently.

Unless otherwise specified via the preconditioner factory parameter, this implementation does not use any preconditioner by default. The type of tolerance (absolute or relative) and the maximum number of iterations to be used in the stopping criterion can be set via the factory parameters.

Note

The tolerance check is against the internal residual computed within the solver process. This implicit (internal) residual, can diverge from the true residual (||b - Ax||). A posterori checks (by computing the true residual, ||b - Ax||) are recommended to ensure that the solution has converged to the desired tolerance.

Template Parameters:

ValueType – precision of matrix elements

struct parameters_type #

Inherits from

  • public gko::batch::solver::enable_preconditioned_iterative_solver_factory_parameters<parameters_type, Factory>