![]() |
Ginkgo Generated from branch based on main. Ginkgo version 1.11.0
A numerical linear algebra library targeting many-core architectures
|
The Composition class can be used to compose linear operators op1, op2, ..., opn and obtain the operator op1 * op2 * ... * opn. More...
#include <ginkgo/core/base/composition.hpp>
Public Types | |
| using | value_type = ValueType |
| using | transposed_type = Composition<ValueType> |
| Public Types inherited from gko::EnablePolymorphicAssignment< Composition< default_precision > > | |
| using | result_type |
Public Member Functions | |
| const std::vector< std::shared_ptr< const LinOp > > & | get_operators () const noexcept |
| Returns a list of operators of the composition. | |
| std::unique_ptr< LinOp > | transpose () const override |
| Returns a LinOp representing the transpose of the Transposable object. | |
| std::unique_ptr< LinOp > | conj_transpose () const override |
| Returns a LinOp representing the conjugate transpose of the Transposable object. | |
| Composition & | operator= (const Composition &) |
| Copy-assigns a Composition. | |
| Composition & | operator= (Composition &&) |
| Move-assigns a Composition. | |
| Composition (const Composition &) | |
| Copy-constructs a Composition. | |
| Composition (Composition &&) | |
| Move-constructs a Composition. | |
| Public Member Functions inherited from gko::EnableLinOp< Composition< default_precision > > | |
| const Composition< default_precision > * | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const |
| Public Member Functions inherited from gko::EnablePolymorphicAssignment< Composition< default_precision > > | |
| void | convert_to (result_type *result) const override |
| void | move_to (result_type *result) override |
Friends | |
| class | EnablePolymorphicObject< Composition, LinOp > |
| class | EnableCreateMethod< Composition > |
Additional Inherited Members | |
| Static Public Member Functions inherited from gko::EnableCreateMethod< Composition< default_precision > > | |
| static std::unique_ptr< Composition< default_precision > > | create (Args &&... args) |
The Composition class can be used to compose linear operators op1, op2, ..., opn and obtain the operator op1 * op2 * ... * opn.
All LinOps of the Composition must operate on Dense inputs. For an operator op_k that require an initial guess for their apply, Composition provides either
Composition ensures that all LinOps passed to its constructor use the same executor, and if not, copies the operators to the executor of the first operator.
| ValueType | precision of input and result vectors |
| gko::Composition< ValueType >::Composition | ( | const Composition< ValueType > & | ) |
Copy-constructs a Composition.
This inherits the executor of the input Composition and all of its operators with shared ownership.
| gko::Composition< ValueType >::Composition | ( | Composition< ValueType > && | ) |
Move-constructs a Composition.
This inherits the executor of the input Composition and all of its operators. The moved-from object is empty (0x0 LinOp without operators) afterwards.
|
overridevirtual |
Returns a LinOp representing the conjugate transpose of the Transposable object.
Implements gko::Transposable.
|
inlinenoexcept |
Returns a list of operators of the composition.
| Composition & gko::Composition< ValueType >::operator= | ( | Composition< ValueType > && | ) |
Move-assigns a Composition.
The executor is not modified, and the wrapped LinOps are only being cloned if they are on a different executor, otherwise they share ownership. The moved-from object is empty (0x0 LinOp without operators) afterwards.
| Composition & gko::Composition< ValueType >::operator= | ( | const Composition< ValueType > & | ) |
Copy-assigns a Composition.
The executor is not modified, and the wrapped LinOps are only being cloned if they are on a different executor.
|
overridevirtual |
Returns a LinOp representing the transpose of the Transposable object.
Implements gko::Transposable.