ScaledPermutation< ValueType, IndexType > Class Template Reference#
|
Reference API
|
#include <ginkgo/core/matrix/scaled_permutation.hpp>
Public Types | |
| using | value_type = ValueType |
| using | index_type = IndexType |
Public Types inherited from gko::EnablePolymorphicAssignment< ConcreteLinOp > | |
| using | result_type = ConcreteLinOp |
Public Types inherited from gko::ConvertibleTo< ResultType > | |
| using | result_type = ResultType |
Public Types inherited from gko::WritableToMatrixData< ValueType, IndexType > | |
| using | value_type = ValueType |
| using | index_type = IndexType |
Public Member Functions | |
| value_type * | get_scaling_factors () noexcept |
| const value_type * | get_const_scaling_factors () const noexcept |
| index_type * | get_permutation () noexcept |
| const index_type * | get_const_permutation () const noexcept |
| std::unique_ptr< ScaledPermutation > | compute_inverse () const |
| std::unique_ptr< ScaledPermutation > | compose (ptr_param< const ScaledPermutation > other) const |
| void | write (gko::matrix_data< value_type, index_type > &data) const override |
Public Member Functions inherited from gko::EnableLinOp< ConcreteLinOp, PolymorphicBase > | |
| 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) |
Public Member Functions inherited from gko::EnableAbstractPolymorphicObject< AbstractObject, PolymorphicBase > | |
| 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 () |
Public Member Functions inherited from gko::PolymorphicObject | |
| 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 |
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::EnablePolymorphicAssignment< ConcreteLinOp > | |
| void | convert_to (result_type *result) const override |
| void | move_to (result_type *result) override |
Public Member Functions inherited from gko::ConvertibleTo< ResultType > | |
| 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) |
Static Public Member Functions | |
| static std::unique_ptr< ScaledPermutation > | create (std::shared_ptr< const Executor > exec, size_type size=0) |
| static std::unique_ptr< ScaledPermutation > | create (ptr_param< const Permutation< IndexType > > permutation) |
| static std::unique_ptr< ScaledPermutation > | create (std::shared_ptr< const Executor > exec, array< value_type > scaling_factors, array< index_type > permutation_indices) |
| static std::unique_ptr< const ScaledPermutation > | create_const (std::shared_ptr< const Executor > exec, gko::detail::const_array_view< value_type > &&scale, gko::detail::const_array_view< index_type > &&perm_idxs) |
Friends | |
| class | EnablePolymorphicObject< ScaledPermutation, LinOp > |
Additional Inherited Members | |
Protected Member Functions inherited from gko::EnableLinOp< ConcreteLinOp, PolymorphicBase > | |
| ConcreteLinOp * | self () noexcept |
| const ConcreteLinOp * | self () const noexcept |
Protected Member Functions inherited from gko::EnablePolymorphicObject< ConcreteObject, PolymorphicBase > | |
| std::unique_ptr< PolymorphicObject > | create_default_impl (std::shared_ptr< const Executor > exec) const override |
| PolymorphicObject * | copy_from_impl (const PolymorphicObject *other) override |
| PolymorphicObject * | copy_from_impl (std::unique_ptr< PolymorphicObject > other) override |
| PolymorphicObject * | move_from_impl (PolymorphicObject *other) override |
| PolymorphicObject * | move_from_impl (std::unique_ptr< PolymorphicObject > other) override |
| PolymorphicObject * | clear_impl () override |
Protected Member Functions inherited from gko::PolymorphicObject | |
| PolymorphicObject (std::shared_ptr< const Executor > exec) | |
| PolymorphicObject (const PolymorphicObject &other) | |
Protected Member Functions inherited from gko::log::EnableLogging< PolymorphicObject > | |
| void | log (Params &&... params) const |
Protected Attributes inherited from gko::log::EnableLogging< PolymorphicObject > | |
| std::vector< std::shared_ptr< const Logger > > | loggers_ |
Detailed Description
class gko::matrix::ScaledPermutation< ValueType, IndexType >
ScaledPermutation is a matrix combining a permutation with scaling factors. It is a combination of Diagonal and Permutation, and can be read as \(SP = P \cdot S\), i.e. the scaling gets applied before the permutation.
- Template Parameters
-
IndexType index type of permutation indices ValueType value type of the scaling factors
Member Function Documentation
◆ compose()
| std::unique_ptr< ScaledPermutation > gko::matrix::ScaledPermutation< ValueType, IndexType >::compose | ( | ptr_param< const ScaledPermutation< ValueType, IndexType > > | other | ) | const |
Composes this scaled permutation with another scaled permutation. This means result = other * this from the matrix perspective, which is equivalent to first scaling and permuting by this and then by other.
- Parameters
-
other the other permutation
- Returns
- the combined permutation
◆ compute_inverse()
| std::unique_ptr< ScaledPermutation > gko::matrix::ScaledPermutation< ValueType, IndexType >::compute_inverse | ( | ) | const |
Returns the inverse of this operator as a scaled permutation. It is computed via \((P S)^-1 = P^{-1} (P S P^{-1})\).
- Returns
- a newly created ScaledPermutation object storing the inverse of the permutation and scaling factors of this ScaledPermutation.
◆ create() [1/3]
|
static |
Create a ScaledPermutation from a Permutation. The permutation will be copied, the scaling factors are all set to 1.0.
- Parameters
-
permutation the permutation
- Returns
- A smart pointer to the newly created matrix.
◆ create() [2/3]
|
static |
Creates a ScaledPermutation matrix from already allocated arrays.
- Parameters
-
exec Executor associated to the matrix permutation_indices array of permutation indices scaling_factors array of scaling factors
- Returns
- A smart pointer to the newly created matrix.
◆ create() [3/3]
|
static |
Creates an uninitialized ScaledPermutation matrix.
- Parameters
-
exec Executor associated to the matrix size dimensions of the (square) scaled permutation matrix
- Returns
- A smart pointer to the newly created matrix.
◆ create_const()
|
static |
Creates a constant (immutable) ScaledPermutation matrix from constant arrays.
- Parameters
-
exec the executor to create the object on perm_idxs the permutation index array of the matrix scale the scaling factor array
- Returns
- A smart pointer to the constant matrix wrapping the input arrays (if it resides on the same executor as the matrix) or a copy of the arrays on the correct executor.
◆ get_const_permutation()
|
inlinenoexcept |
Returns a pointer to the permutation indices.
- Returns
- the pointer to the permutation indices.
- Note
- This is the constant version of the function, which can be significantly more memory efficient than the non-constant version, so always prefer this version.
References gko::array< ValueType >::get_const_data().
◆ get_const_scaling_factors()
|
inlinenoexcept |
Returns a pointer to the scaling factors.
- Returns
- the pointer to the scaling factors.
- Note
- This is the constant version of the function, which can be significantly more memory efficient than the non-constant version, so always prefer this version.
References gko::array< ValueType >::get_const_data().
◆ get_permutation()
|
inlinenoexcept |
Returns a pointer to the permutation indices.
- Returns
- the pointer to the permutation indices.
References gko::array< ValueType >::get_data().
◆ get_scaling_factors()
|
inlinenoexcept |
Returns a pointer to the scaling factors.
- Returns
- the pointer to the scaling factors.
References gko::array< ValueType >::get_data().
◆ write()
|
overridevirtual |
Writes a matrix to a matrix_data structure.
- Parameters
-
data the matrix_data structure
Implements gko::WritableToMatrixData< ValueType, IndexType >.
The documentation for this class was generated from the following file:
- ginkgo/core/matrix/scaled_permutation.hpp
Generated by
Public Types inherited from