![]() |
Ginkgo
Generated from pipelines/1680925034 branch based on develop. Ginkgo version 1.10.0
A numerical linear algebra library targeting many-core architectures
|
Cg or the Conjugate Gradient is a Krylov subspace solver. More...
#include <ginkgo/core/solver/batch_cg.hpp>
Classes | |
class | Factory |
struct | parameters_type |
Public Types | |
using | value_type = ValueType |
using | real_type = gko::remove_complex< ValueType > |
![]() | |
using | real_type = remove_complex< ValueType > |
![]() | |
using | result_type = Cg< ValueType > |
![]() | |
using | result_type = Cg< ValueType > |
Public Member Functions | |
const parameters_type & | get_parameters () const |
![]() | |
const Cg< ValueType > * | apply (ptr_param< const MultiVector< ValueType >> b, ptr_param< MultiVector< ValueType >> x) const |
const Cg< ValueType > * | apply (ptr_param< const MultiVector< ValueType >> alpha, ptr_param< const MultiVector< ValueType >> b, ptr_param< const MultiVector< ValueType >> beta, ptr_param< MultiVector< ValueType >> x) const |
Cg< ValueType > * | apply (ptr_param< const MultiVector< ValueType >> b, ptr_param< MultiVector< ValueType >> x) |
Cg< ValueType > * | apply (ptr_param< const MultiVector< ValueType >> alpha, ptr_param< const MultiVector< ValueType >> b, ptr_param< const MultiVector< ValueType >> beta, ptr_param< MultiVector< ValueType >> x) |
![]() | |
std::shared_ptr< const BatchLinOp > | get_system_matrix () const |
Returns the system operator (matrix) of the linear system. More... | |
std::shared_ptr< const BatchLinOp > | get_preconditioner () const |
Returns the generated preconditioner. More... | |
double | get_tolerance () const |
Get the residual tolerance used by the solver. More... | |
void | reset_tolerance (double res_tol) |
Update the residual tolerance to be used by the solver. More... | |
int | get_max_iterations () const |
Get the maximum number of iterations set on the solver. More... | |
void | reset_max_iterations (int max_iterations) |
Set the maximum number of iterations for the solver to use, independent of the factory that created it. More... | |
::gko::batch::stop::tolerance_type | get_tolerance_type () const |
Get the tolerance type. More... | |
void | reset_tolerance_type (::gko::batch::stop::tolerance_type tol_type) |
Set the type of tolerance check to use inside the solver. More... | |
![]() | |
std::unique_ptr< Cg< ValueType > > | create_default (std::shared_ptr< const Executor > exec) const |
std::unique_ptr< Cg< ValueType > > | create_default () const |
std::unique_ptr< Cg< ValueType > > | clone (std::shared_ptr< const Executor > exec) const |
std::unique_ptr< Cg< ValueType > > | clone () const |
Cg< ValueType > * | copy_from (const PolymorphicObject *other) |
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, Cg< ValueType > > * | copy_from (std::unique_ptr< Derived > &&other) |
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, Cg< ValueType > > * | copy_from (const std::unique_ptr< Derived > &other) |
Cg< ValueType > * | copy_from (const std::shared_ptr< const PolymorphicObject > &other) |
Cg< ValueType > * | move_from (ptr_param< PolymorphicObject > other) |
Cg< ValueType > * | clear () |
![]() | |
void | convert_to (result_type *result) const override |
Converts the implementer to an object of type result_type. More... | |
void | move_to (result_type *result) override |
Converts the implementer to an object of type result_type by moving data from this object. More... | |
![]() | |
void | convert_to (ptr_param< result_type > result) const |
void | move_to (ptr_param< result_type > result) |
Static Public Member Functions | |
static auto | build () -> decltype(Factory ::create()) |
Friends | |
class | EnableBatchLinOp< Cg > |
class | EnablePolymorphicObject< Cg, BatchLinOp > |
Cg or the Conjugate Gradient is a Krylov subspace solver.
It is a short recurrence solver that is generally used to solve linear systems with SPD matrices.
This solver solves a batch of linear systems using the Cg 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.
ValueType | precision of matrix elements |