![]() |
Ginkgo Generated from branch based on main. Ginkgo version 1.11.0
A numerical linear algebra library targeting many-core architectures
|
Permutation is a matrix format that represents a permutation matrix, i.e. More...
#include <ginkgo/core/matrix/permutation.hpp>
Public Types | |
| using | value_type = default_precision |
| using | index_type = IndexType |
| Public Types inherited from gko::EnablePolymorphicAssignment< Permutation< int32 > > | |
| using | result_type |
| Public Types inherited from gko::WritableToMatrixData< default_precision, int32 > | |
| using | value_type |
| using | index_type |
Public Member Functions | |
| index_type * | get_permutation () noexcept |
| Returns a pointer to the array of permutation. | |
| const index_type * | get_const_permutation () const noexcept |
| Returns a pointer to the array of permutation. | |
| size_type | get_permutation_size () const noexcept |
| Returns the number of elements explicitly stored in the permutation array. | |
| mask_type | get_permute_mask () const |
| void | set_permute_mask (mask_type permute_mask) |
| std::unique_ptr< Permutation > | compute_inverse () const |
| Returns the inverse permutation. | |
| std::unique_ptr< Permutation > | compose (ptr_param< const Permutation > other) const |
| Composes this permutation with another permutation. | |
| void | write (gko::matrix_data< value_type, index_type > &data) const override |
| Public Member Functions inherited from gko::EnableLinOp< Permutation< int32 > > | |
| const Permutation< int32 > * | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const |
| Public Member Functions inherited from gko::EnablePolymorphicAssignment< Permutation< 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< Permutation > | create (std::shared_ptr< const Executor > exec, size_type size=0) |
| Creates an uninitialized Permutation arrays on the specified executor. | |
| static std::unique_ptr< Permutation > | create (std::shared_ptr< const Executor > exec, array< IndexType > permutation_indices) |
| Creates a Permutation matrix from an already allocated (and initialized) row and column permutation arrays. | |
| static std::unique_ptr< Permutation > | create (std::shared_ptr< const Executor > exec, const dim< 2 > &size) |
| static std::unique_ptr< Permutation > | create (std::shared_ptr< const Executor > exec, const dim< 2 > &size, const mask_type &enabled_permute) |
| static std::unique_ptr< Permutation > | create (std::shared_ptr< const Executor > exec, const dim< 2 > &size, array< IndexType > permutation_indices) |
| static std::unique_ptr< Permutation > | create (std::shared_ptr< const Executor > exec, const dim< 2 > &size, array< index_type > permutation_indices, const mask_type &enabled_permute) |
| static std::unique_ptr< const Permutation > | create_const (std::shared_ptr< const Executor > exec, size_type size, gko::detail::const_array_view< IndexType > &&perm_idxs, mask_type enabled_permute=row_permute) |
| Creates a constant (immutable) Permutation matrix from a constant array. | |
| static std::unique_ptr< const Permutation > | create_const (std::shared_ptr< const Executor > exec, gko::detail::const_array_view< IndexType > &&perm_idxs) |
| Creates a constant (immutable) Permutation matrix from a constant array. | |
Friends | |
| class | EnablePolymorphicObject< Permutation, LinOp > |
Permutation is a matrix format that represents a permutation matrix, i.e.
a matrix where each row and column has exactly one entry. The matrix can only be applied to Dense inputs, where it represents a row permutation: 
![$A'(i, j) = A(p[i], j)$](form_87.png)
| IndexType | precision of permutation array indices. |
| std::unique_ptr< Permutation > gko::matrix::Permutation< IndexType >::compose | ( | ptr_param< const Permutation< IndexType > > | other | ) | const |
Composes this permutation with another permutation.
The resulting permutation fulfills result[i] = this[other[i]] or result = other * this from the matrix perspective, which is equivalent to first permuting by this and then by other: Combining permutations 

| other | the other permutation |
| std::unique_ptr< Permutation > gko::matrix::Permutation< IndexType >::compute_inverse | ( | ) | const |
Returns the inverse permutation.
|
static |
Creates a Permutation matrix from an already allocated (and initialized) row and column permutation arrays.
| exec | Executor associated to the matrix |
| size | size of the permutation array. |
| permutation_indices | array of permutation array |
| enabled_permute | mask for the type of permutation to apply. |
|
static |
|
static |
|
static |
|
static |
|
static |
Creates an uninitialized Permutation arrays on the specified executor.
|
static |
Creates a constant (immutable) Permutation matrix from a constant array.
| exec | the executor to create the matrix on |
| size | the size of the square matrix |
| perm_idxs | the permutation index array of the matrix |
| enabled_permute | the mask describing the type of permutation |
|
static |
Creates a constant (immutable) Permutation matrix from a constant array.
| exec | the executor to create the matrix on |
| size | the size of the square matrix |
| perm_idxs | the permutation index array of the matrix |
| enabled_permute | the mask describing the type of permutation |
|
inlinenoexcept |
Returns a pointer to the array of permutation.
|
inlinenoexcept |
Returns a pointer to the array of permutation.
|
noexcept |
Returns the number of elements explicitly stored in the permutation array.
| mask_type gko::matrix::Permutation< IndexType >::get_permute_mask | ( | ) | const |
| void gko::matrix::Permutation< IndexType >::set_permute_mask | ( | mask_type | permute_mask | ) |