|
| const std::shared_ptr< const LinOp > | get_basis () const noexcept |
| | Returns the basis of the perturbation.
|
| const std::shared_ptr< const LinOp > | get_projector () const noexcept |
| | Returns the projector of the perturbation.
|
| const std::shared_ptr< const LinOp > | get_scalar () const noexcept |
| | Returns the scalar of the perturbation.
|
|
Perturbation & | operator= (const Perturbation &other) |
|
Perturbation & | operator= (Perturbation &&other) |
|
| Perturbation (const Perturbation &other) |
|
| Perturbation (Perturbation &&other) |
|
const Perturbation< default_precision > * | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const |
|
void | convert_to (result_type *result) const override |
|
void | move_to (result_type *result) override |
|
| static std::unique_ptr< Perturbation > | create (std::shared_ptr< const Executor > exec) |
| | Creates an empty perturbation operator (0x0 operator).
|
| 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.
|
| 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.
|
|
static std::unique_ptr< Perturbation< default_precision > > | create (Args &&... args) |
template<typename ValueType = default_precision>
class gko::Perturbation< ValueType >
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*.
- Template Parameters
-
| ValueType | precision of input and result vectors |
- Note
- the apply operations of Perturbation class are not thread safe