![]() |
Ginkgo
Generated from pipelines/2662685947 branch based on develop. Ginkgo version 2.0.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::EnableCloneable< ConcreteType > | |
| using | result_type = ConcreteType |
Public Types inherited from gko::ConvertibleTo< ConcreteType > | |
| using | result_type = ConcreteType |
Public Types inherited from gko::WritableToMatrixData< default_precision, IndexType > | |
| using | value_type = default_precision |
| using | index_type = IndexType |
Public Member Functions | |
| index_type * | get_permutation () noexcept |
| Returns a pointer to the array of permutation. More... | |
| const index_type * | get_const_permutation () const noexcept |
| Returns a pointer to the array of permutation. More... | |
| size_type | get_permutation_size () const noexcept |
| Returns the number of elements explicitly stored in the permutation array. More... | |
| 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. More... | |
| std::unique_ptr< Permutation > | compose (ptr_param< const Permutation > other) const |
| Composes this permutation with another permutation. More... | |
| void | write (gko::matrix_data< value_type, index_type > &data) const override |
| Writes a matrix to a matrix_data structure. More... | |
Public Member Functions inherited from gko::LinOp | |
| void | apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const |
| Applies a linear operator to a vector (or a sequence of vectors). More... | |
| void | apply (ptr_param< const LinOp > alpha, ptr_param< const LinOp > b, ptr_param< const LinOp > beta, ptr_param< LinOp > x) const |
| Performs the operation x = alpha * op(b) + beta * x. More... | |
| const dim< 2 > & | get_size () const noexcept |
| Returns the size of the operator. More... | |
| virtual bool | apply_uses_initial_guess () const |
| Returns true if the linear operator uses the data given in x as an initial guess. More... | |
| LinOp & | operator= (const LinOp &)=default |
| Copy-assigns a LinOp. More... | |
| LinOp & | operator= (LinOp &&other) |
| Move-assigns a LinOp. More... | |
| LinOp (const LinOp &)=default | |
| Copy-constructs a LinOp. More... | |
| LinOp (LinOp &&other) | |
| Move-constructs a LinOp. More... | |
Public Member Functions inherited from gko::PolymorphicObject | |
| PolymorphicObject & | operator= (const PolymorphicObject &) |
| std::shared_ptr< const Executor > | get_executor () const noexcept |
| Returns the Executor of the object. More... | |
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::EnableCloneable< ConcreteType > | |
| std::unique_ptr< ConcreteType > | clone (std::shared_ptr< const Executor > exec) const |
| Creates a clone of the object. More... | |
| std::unique_ptr< ConcreteType > | clone () const |
| Creates a clone of the object. More... | |
| void | convert_to (result_type *result) const override |
| Converts the implementer to an object of type result_type. More... | |
| void | move_to (result_type *result) override |
| Converts the implementer to an object of type result_type by moving data from this object. More... | |
| std::unique_ptr< ConcreteType > | create_default () const |
| std::unique_ptr< ConcreteType > | create_default (std::shared_ptr< const Executor > exec) const |
Public Member Functions inherited from gko::ConvertibleTo< ConcreteType > | |
| void | convert_to (ptr_param< result_type > result) const |
| void | move_to (ptr_param< result_type > result) |
Public Member Functions inherited from gko::Cloneable | |
| std::unique_ptr< Cloneable > | clone (std::shared_ptr< const Executor > exec) const |
| std::unique_ptr< Cloneable > | clone () const |
| Cloneable * | copy_from (ptr_param< const Cloneable > other) |
| Cloneable * | move_from (ptr_param< Cloneable > other) |
| std::unique_ptr< Cloneable > | create_default (std::shared_ptr< const Executor > exec) const |
| std::unique_ptr< Cloneable > | create_default () const |
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. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
Friends | |
| class | EnableCloneable< Permutation< IndexType > > |
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:
means
.
| 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
and
with P = P_1.combine(P_2) performs the operation permute(A, P) = permute(permute(A, P_1), P_2).
| 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. |
permutation_indices is not an rvalue, not an array of IndexType, or is on the wrong executor, an internal copy will be created, and the original array data will not be used in the matrix.
|
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.
References gko::array< ValueType >::get_const_data().
|
inlinenoexcept |
Returns a pointer to the array of permutation.
References gko::array< ValueType >::get_data().
|
noexcept |
Returns the number of elements explicitly stored in the permutation array.
|
overridevirtual |
Writes a matrix to a matrix_data structure.
| data | the matrix_data structure |
Implements gko::WritableToMatrixData< default_precision, IndexType >.
1.8.16