![]() |
Ginkgo Generated from branch based on main. Ginkgo version 1.11.0
A numerical linear algebra library targeting many-core architectures
|
ScaledPermutation is a matrix combining a permutation with scaling factors. More...
#include <ginkgo/core/matrix/scaled_permutation.hpp>
Public Types | |
| using | value_type = ValueType |
| using | index_type = IndexType |
| Public Types inherited from gko::EnablePolymorphicAssignment< ScaledPermutation< default_precision, int32 > > | |
| using | result_type |
| Public Types inherited from gko::WritableToMatrixData< default_precision, int32 > | |
| using | value_type |
| using | index_type |
Public Member Functions | |
| value_type * | get_scaling_factors () noexcept |
| Returns a pointer to the scaling factors. | |
| const value_type * | get_const_scaling_factors () const noexcept |
| Returns a pointer to the scaling factors. | |
| index_type * | get_permutation () noexcept |
| Returns a pointer to the permutation indices. | |
| const index_type * | get_const_permutation () const noexcept |
| Returns a pointer to the permutation indices. | |
| std::unique_ptr< ScaledPermutation > | compute_inverse () const |
| Returns the inverse of this operator as a scaled permutation. | |
| std::unique_ptr< ScaledPermutation > | compose (ptr_param< const ScaledPermutation > other) const |
| Composes this scaled permutation with another scaled permutation. | |
| void | write (gko::matrix_data< value_type, index_type > &data) const override |
| Public Member Functions inherited from gko::EnableLinOp< ScaledPermutation< default_precision, int32 > > | |
| const ScaledPermutation< default_precision, int32 > * | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const |
| Public Member Functions inherited from gko::EnablePolymorphicAssignment< ScaledPermutation< default_precision, int32 > > | |
| void | convert_to (result_type *result) const override |
| void | move_to (result_type *result) override |
| Public Member Functions inherited from gko::WritableToMatrixData< default_precision, int32 > | |
| virtual void | write (matrix_data< default_precision, int32 > &data) const=0 |
| Writes a matrix to a matrix_data structure. | |
Static Public Member Functions | |
| static std::unique_ptr< ScaledPermutation > | create (std::shared_ptr< const Executor > exec, size_type size=0) |
| Creates an uninitialized ScaledPermutation matrix. | |
| static std::unique_ptr< ScaledPermutation > | create (ptr_param< const Permutation< IndexType > > permutation) |
| Create a ScaledPermutation from a Permutation. | |
| static std::unique_ptr< ScaledPermutation > | create (std::shared_ptr< const Executor > exec, array< value_type > scaling_factors, array< index_type > permutation_indices) |
| Creates a ScaledPermutation matrix from already allocated arrays. | |
| 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) |
| Creates a constant (immutable) ScaledPermutation matrix from constant arrays. | |
Friends | |
| class | EnablePolymorphicObject< ScaledPermutation, LinOp > |
ScaledPermutation is a matrix combining a permutation with scaling factors.
It is a combination of Diagonal and Permutation, and can be read as 
| IndexType | index type of permutation indices |
| ValueType | value type of the scaling factors |
| 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.
| other | the other permutation |
| 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 
|
static |
Create a ScaledPermutation from a Permutation.
The permutation will be copied, the scaling factors are all set to 1.0.
| permutation | the permutation |
|
static |
Creates a ScaledPermutation matrix from already allocated arrays.
| exec | Executor associated to the matrix |
| permutation_indices | array of permutation indices |
| scaling_factors | array of scaling factors |
|
static |
Creates an uninitialized ScaledPermutation matrix.
| exec | Executor associated to the matrix |
| size | dimensions of the (square) scaled permutation matrix |
|
static |
Creates a constant (immutable) ScaledPermutation matrix from constant arrays.
| exec | the executor to create the object on |
| perm_idxs | the permutation index array of the matrix |
| scale | the scaling factor array |
|
inlinenoexcept |
Returns a pointer to the permutation indices.
|
inlinenoexcept |
Returns a pointer to the scaling factors.
|
inlinenoexcept |
Returns a pointer to the permutation indices.
|
inlinenoexcept |
Returns a pointer to the scaling factors.