![]() |
Ginkgo
Generated from pipelines/2662685947 branch based on develop. Ginkgo version 2.0.0
A numerical linear algebra library targeting many-core architectures
|
The Perturbation class can be used to construct a LinOp to represent the operation (identity + scalar * basis * projector).
More...
#include <ginkgo/core/base/perturbation.hpp>
Public Types | |
| using | value_type = ValueType |
Public Types inherited from gko::EnableCloneable< Perturbation< ValueType > > | |
| using | result_type = Perturbation< ValueType > |
Public Types inherited from gko::ConvertibleTo< ResultType > | |
| using | result_type = ResultType |
Public Member Functions | |
| const std::shared_ptr< const LinOp > | get_basis () const noexcept |
| Returns the basis of the perturbation. More... | |
| const std::shared_ptr< const LinOp > | get_projector () const noexcept |
| Returns the projector of the perturbation. More... | |
| const std::shared_ptr< const LinOp > | get_scalar () const noexcept |
| Returns the scalar of the perturbation. More... | |
| Perturbation & | operator= (const Perturbation &other) |
| Perturbation & | operator= (Perturbation &&other) |
| Perturbation (const Perturbation &other) | |
| Perturbation (Perturbation &&other) | |
Public Member Functions inherited from gko::LinOp | |
| void | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const |
| Applies a linear operator to a vector (or a sequence of vectors). More... | |
| void | apply (ptr_param< const LinOp > alpha, ptr_param< const LinOp > b, ptr_param< const LinOp > beta, ptr_param< LinOp > x) const |
| Performs the operation x = alpha * op(b) + beta * x. More... | |
| const dim< 2 > & | get_size () const noexcept |
| Returns the size of the operator. More... | |
| virtual bool | apply_uses_initial_guess () const |
| Returns true if the linear operator uses the data given in x as an initial guess. More... | |
| LinOp & | operator= (const LinOp &)=default |
| Copy-assigns a LinOp. More... | |
| LinOp & | operator= (LinOp &&other) |
| Move-assigns a LinOp. More... | |
| LinOp (const LinOp &)=default | |
| Copy-constructs a LinOp. More... | |
| LinOp (LinOp &&other) | |
| Move-constructs a LinOp. More... | |
Public Member Functions inherited from gko::PolymorphicObject | |
| PolymorphicObject & | operator= (const PolymorphicObject &) |
| std::shared_ptr< const Executor > | get_executor () const noexcept |
| Returns the Executor of the object. More... | |
Public Member Functions inherited from gko::log::EnableLogging< PolymorphicObject > | |
| 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 |
Public Member Functions inherited from gko::log::Loggable | |
| void | remove_logger (ptr_param< const Logger > logger) |
Public Member Functions inherited from gko::EnableCloneable< Perturbation< ValueType > > | |
| std::unique_ptr< Perturbation< ValueType > > | clone (std::shared_ptr< const Executor > exec) const |
| Creates a clone of the object. More... | |
| std::unique_ptr< Perturbation< ValueType > > | clone () const |
| Creates a clone of the object. More... | |
| 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... | |
| std::unique_ptr< Perturbation< ValueType > > | create_default () const |
| std::unique_ptr< Perturbation< ValueType > > | create_default (std::shared_ptr< const Executor > exec) const |
Public Member Functions inherited from gko::ConvertibleTo< ResultType > | |
| void | convert_to (ptr_param< result_type > result) const |
| void | move_to (ptr_param< result_type > result) |
Public Member Functions inherited from gko::Cloneable | |
| std::unique_ptr< Cloneable > | clone (std::shared_ptr< const Executor > exec) const |
| std::unique_ptr< Cloneable > | clone () const |
| Cloneable * | copy_from (ptr_param< const Cloneable > other) |
| Cloneable * | move_from (ptr_param< Cloneable > other) |
| std::unique_ptr< Cloneable > | create_default (std::shared_ptr< const Executor > exec) const |
| std::unique_ptr< Cloneable > | create_default () const |
Static Public Member Functions | |
| static std::unique_ptr< Perturbation > | create (std::shared_ptr< const Executor > exec) |
| Creates an empty perturbation operator (0x0 operator). More... | |
| static std::unique_ptr< Perturbation > | create (std::shared_ptr< const LinOp > scalar, std::shared_ptr< const LinOp > basis) |
| Creates a perturbation with scalar and basis by setting projector to the conjugate transpose of basis. More... | |
| static std::unique_ptr< Perturbation > | create (std::shared_ptr< const LinOp > scalar, std::shared_ptr< const LinOp > basis, std::shared_ptr< const LinOp > projector) |
| Creates a perturbation of scalar, basis and projector. More... | |
Static Public Member Functions inherited from gko::EnableCreateMethod< Perturbation< ValueType > > | |
| static std::unique_ptr< Perturbation< ValueType > > | create (Args &&... args) |
Friends | |
| class | EnableCloneable< Perturbation > |
| class | EnableCreateMethod< Perturbation > |
The Perturbation class can be used to construct a LinOp to represent the operation (identity + scalar * basis * projector).
This operator adds a movement along a direction constructed by basis and projector on the LinOp. projector gives the coefficient of basis to decide the direction.
For example, the Householder matrix can be represented with the Perturbation operator as follows. If u is the Householder factor then we can generate the Householder transformation, H = (I - 2 u u*). In this case, the parameters of Perturbation class are scalar = -2, basis = u, and projector = u*.
| ValueType | precision of input and result vectors |
|
static |
Creates an empty perturbation operator (0x0 operator).
| exec | Executor associated to the perturbation |
|
static |
Creates a perturbation with scalar and basis by setting projector to the conjugate transpose of basis.
Basis must be transposable. Perturbation will throw gko::NotSupported if basis is not transposable.
| scalar | scaling of the movement |
| basis | the direction basis |
|
static |
Creates a perturbation of scalar, basis and projector.
| scalar | scaling of the movement |
| basis | the direction basis |
| projector | decides the coefficient of basis |
|
inlinenoexcept |
Returns the basis of the perturbation.
|
inlinenoexcept |
Returns the projector of the perturbation.
|
inlinenoexcept |
Returns the scalar of the perturbation.
1.8.16