|
| std::unique_ptr< LinOp > | transpose () const override |
| |
| std::unique_ptr< LinOp > | conj_transpose () const override |
| |
| bool | apply_uses_initial_guess () const override |
| |
|
const parameters_type & | get_parameters () const |
| |
|
const ConcreteLinOp * | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const |
| |
|
ConcreteLinOp * | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) |
| |
|
const ConcreteLinOp * | apply (ptr_param< const LinOp > alpha, ptr_param< const LinOp > b, ptr_param< const LinOp > beta, ptr_param< LinOp > x) const |
| |
|
ConcreteLinOp * | apply (ptr_param< const LinOp > alpha, ptr_param< const LinOp > b, ptr_param< const LinOp > beta, ptr_param< LinOp > x) |
| |
|
std::unique_ptr< AbstractObject > | create_default (std::shared_ptr< const Executor > exec) const |
| |
|
std::unique_ptr< AbstractObject > | create_default () const |
| |
|
std::unique_ptr< AbstractObject > | clone (std::shared_ptr< const Executor > exec) const |
| |
|
std::unique_ptr< AbstractObject > | clone () const |
| |
|
AbstractObject * | copy_from (const PolymorphicObject *other) |
| |
|
template<typename Derived > |
| std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, AbstractObject > * | copy_from (std::unique_ptr< Derived > &&other) |
| |
|
template<typename Derived > |
| std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, AbstractObject > * | copy_from (const std::unique_ptr< Derived > &other) |
| |
|
AbstractObject * | copy_from (const std::shared_ptr< const PolymorphicObject > &other) |
| |
|
AbstractObject * | move_from (ptr_param< PolymorphicObject > other) |
| |
|
AbstractObject * | clear () |
| |
|
PolymorphicObject & | operator= (const PolymorphicObject &) |
| |
| std::unique_ptr< PolymorphicObject > | create_default (std::shared_ptr< const Executor > exec) const |
| |
| std::unique_ptr< PolymorphicObject > | create_default () const |
| |
| std::unique_ptr< PolymorphicObject > | clone (std::shared_ptr< const Executor > exec) const |
| |
| std::unique_ptr< PolymorphicObject > | clone () const |
| |
| PolymorphicObject * | copy_from (const PolymorphicObject *other) |
| |
| template<typename Derived , typename Deleter > |
| std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, PolymorphicObject > * | copy_from (std::unique_ptr< Derived, Deleter > &&other) |
| |
| template<typename Derived , typename Deleter > |
| std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, PolymorphicObject > * | copy_from (const std::unique_ptr< Derived, Deleter > &other) |
| |
| PolymorphicObject * | copy_from (const std::shared_ptr< const PolymorphicObject > &other) |
| |
| PolymorphicObject * | move_from (ptr_param< PolymorphicObject > other) |
| |
| PolymorphicObject * | clear () |
| |
| std::shared_ptr< const Executor > | get_executor () const noexcept |
| |
| void | add_logger (std::shared_ptr< const Logger > logger) override |
| |
| void | remove_logger (const Logger *logger) override |
| |
|
void | remove_logger (ptr_param< const Logger > logger) |
| |
| const std::vector< std::shared_ptr< const Logger > > & | get_loggers () const override |
| |
| void | clear_loggers () override |
| |
|
void | remove_logger (ptr_param< const Logger > logger) |
| |
| void | convert_to (result_type *result) const override |
| |
| void | move_to (result_type *result) override |
| |
| virtual void | convert_to (result_type *result) const =0 |
| |
|
void | convert_to (ptr_param< result_type > result) const |
| |
| virtual void | move_to (result_type *result)=0 |
| |
|
void | move_to (ptr_param< result_type > result) |
| |
|
| EnablePreconditionedIterativeSolver (std::shared_ptr< const LinOp > system_matrix, std::shared_ptr< const stop::CriterionFactory > stop_factory, std::shared_ptr< const LinOp > preconditioner) |
| |
|
template<typename FactoryParameters > |
| | EnablePreconditionedIterativeSolver (std::shared_ptr< const LinOp > system_matrix, const FactoryParameters ¶ms) |
| |
| EnableSolverBase & | operator= (const EnableSolverBase &other) |
| |
| EnableSolverBase & | operator= (EnableSolverBase &&other) |
| |
|
| EnableSolverBase (std::shared_ptr< const MatrixType > system_matrix) |
| |
| | EnableSolverBase (const EnableSolverBase &other) |
| |
| | EnableSolverBase (EnableSolverBase &&other) |
| |
|
int | get_num_workspace_ops () const override |
| |
|
std::vector< std::string > | get_workspace_op_names () const override |
| |
| std::vector< int > | get_workspace_scalars () const override |
| |
| std::vector< int > | get_workspace_vectors () const override |
| |
| std::shared_ptr< const MatrixType > | get_system_matrix () const |
| |
| EnableIterativeBase & | operator= (const EnableIterativeBase &other) |
| |
| EnableIterativeBase & | operator= (EnableIterativeBase &&other) |
| |
|
| EnableIterativeBase (std::shared_ptr< const stop::CriterionFactory > stop_factory) |
| |
| | EnableIterativeBase (const EnableIterativeBase &other) |
| |
| | EnableIterativeBase (EnableIterativeBase &&other) |
| |
| void | set_stop_criterion_factory (std::shared_ptr< const stop::CriterionFactory > new_stop_factory) override |
| |
| std::shared_ptr< const stop::CriterionFactory > | get_stop_criterion_factory () const |
| |
| void | set_preconditioner (std::shared_ptr< const LinOp > new_precond) override |
| |
| EnablePreconditionable & | operator= (const EnablePreconditionable &other) |
| |
| EnablePreconditionable & | operator= (EnablePreconditionable &&other) |
| |
|
| EnablePreconditionable (std::shared_ptr< const LinOp > preconditioner) |
| |
| | EnablePreconditionable (const EnablePreconditionable &other) |
| |
| | EnablePreconditionable (EnablePreconditionable &&other) |
| |
| virtual std::shared_ptr< const LinOp > | get_preconditioner () const |
| |
template<typename ValueType = default_precision>
class gko::solver::Bicgstab< ValueType >
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. Though, the memory and the computational requirement of the BiCGSTAB solver are higher than of its s.p.d solver counterpart, it has the capability to solve generic systems. It was developed by stabilizing the BiCG method.
- Template Parameters
-
| ValueType | precision of the elements of the system matrix. |