SparsityCsr< ValueType, IndexType > Class Template Reference#
|
Reference API
|
#include <ginkgo/core/matrix/sparsity_csr.hpp>
Public Types | |
| using | value_type = ValueType |
| using | index_type = IndexType |
| using | transposed_type = SparsityCsr< IndexType, ValueType > |
| using | mat_data = matrix_data< ValueType, IndexType > |
| using | device_mat_data = device_matrix_data< ValueType, 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::ReadableFromMatrixData< ValueType, IndexType > | |
| using | value_type = ValueType |
| using | index_type = IndexType |
Public Types inherited from gko::WritableToMatrixData< ValueType, IndexType > | |
| using | value_type = ValueType |
| using | index_type = IndexType |
Public Member Functions | |
| void | convert_to (Csr< ValueType, IndexType > *result) const override |
| void | move_to (Csr< ValueType, IndexType > *result) override |
| void | convert_to (Dense< ValueType > *result) const override |
| void | move_to (Dense< ValueType > *result) override |
| void | read (const mat_data &data) override |
| void | read (const device_mat_data &data) override |
| void | read (device_mat_data &&data) override |
| void | write (mat_data &data) const override |
| std::unique_ptr< LinOp > | transpose () const override |
| std::unique_ptr< LinOp > | conj_transpose () const override |
| std::unique_ptr< SparsityCsr > | to_adjacency_matrix () const |
| void | sort_by_column_index () |
| bool | is_sorted_by_column_index () const |
| index_type * | get_col_idxs () noexcept |
| const index_type * | get_const_col_idxs () const noexcept |
| index_type * | get_row_ptrs () noexcept |
| const index_type * | get_const_row_ptrs () const noexcept |
| value_type * | get_value () noexcept |
| const value_type * | get_const_value () const noexcept |
| size_type | get_num_nonzeros () const noexcept |
| SparsityCsr & | operator= (const SparsityCsr &) |
| SparsityCsr & | operator= (SparsityCsr &&) |
| SparsityCsr (const SparsityCsr &) | |
| SparsityCsr (SparsityCsr &&) | |
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) |
Public Member Functions inherited from gko::ReadableFromMatrixData< ValueType, IndexType > | |
| void | read (const matrix_assembly_data< ValueType, IndexType > &data) |
Static Public Member Functions | |
| static std::unique_ptr< SparsityCsr > | create (std::shared_ptr< const Executor > exec, const dim< 2 > &size=dim< 2 >{}, size_type num_nonzeros={}) |
| static std::unique_ptr< SparsityCsr > | create (std::shared_ptr< const Executor > exec, const dim< 2 > &size, array< index_type > col_idxs, array< index_type > row_ptrs, value_type value=one< ValueType >()) |
| template<typename ColIndexType , typename RowPtrType > | |
| static std::unique_ptr< SparsityCsr > | create (std::shared_ptr< const Executor > exec, const dim< 2 > &size, std::initializer_list< ColIndexType > col_idxs, std::initializer_list< RowPtrType > row_ptrs, value_type value=one< ValueType >()) |
| create(std::shared_ptr<constExecutor>, const dim<2>&, array<index_type>, array<index_type>,value_type) | |
| static std::unique_ptr< SparsityCsr > | create (std::shared_ptr< const Executor > exec, std::shared_ptr< const LinOp > matrix) |
| static std::unique_ptr< const SparsityCsr > | create_const (std::shared_ptr< const Executor > exec, const dim< 2 > &size, gko::detail::const_array_view< IndexType > &&col_idxs, gko::detail::const_array_view< IndexType > &&row_ptrs, ValueType value=one< ValueType >()) |
Protected Member Functions | |
| SparsityCsr (std::shared_ptr< const Executor > exec, const dim< 2 > &size=dim< 2 >{}, size_type num_nonzeros={}) | |
| SparsityCsr (std::shared_ptr< const Executor > exec, const dim< 2 > &size, array< index_type > col_idxs, array< index_type > row_ptrs, value_type value=one< ValueType >()) | |
| SparsityCsr (std::shared_ptr< const Executor > exec, std::shared_ptr< const LinOp > matrix) | |
| void | apply_impl (const LinOp *b, LinOp *x) const override |
| void | apply_impl (const LinOp *alpha, const LinOp *b, const LinOp *beta, LinOp *x) const override |
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 |
Friends | |
| class | EnablePolymorphicObject< SparsityCsr, LinOp > |
| class | Csr< ValueType, IndexType > |
| class | Dense< ValueType > |
| class | Fbcsr< ValueType, IndexType > |
Additional Inherited Members | |
Protected Attributes inherited from gko::log::EnableLogging< PolymorphicObject > | |
| std::vector< std::shared_ptr< const Logger > > | loggers_ |
Detailed Description
class gko::matrix::SparsityCsr< ValueType, IndexType >
SparsityCsr is a matrix format which stores only the sparsity pattern of a sparse matrix by compressing each row of the matrix (compressed sparse row format).
The values of the nonzero elements are stored as a value array of length 1. All the values in the matrix are equal to this value. By default, this value is set to 1.0. A row pointer array also stores the linearized starting index of each row. An additional column index array is used to identify the column where a nonzero is present.
- Template Parameters
-
ValueType precision of vectors in apply IndexType precision of matrix indexes
Constructor & Destructor Documentation
◆ SparsityCsr() [1/2]
| gko::matrix::SparsityCsr< ValueType, IndexType >::SparsityCsr | ( | const SparsityCsr< ValueType, IndexType > & | ) |
Copy-constructs a SparsityCsr matrix. Inherits executor, strategy and data.
◆ SparsityCsr() [2/2]
| gko::matrix::SparsityCsr< ValueType, IndexType >::SparsityCsr | ( | SparsityCsr< ValueType, IndexType > && | ) |
Move-constructs a SparsityCsr matrix. Inherits executor, moves the data and leaves the moved-from object in an empty state (0x0 LinOp with unchanged executor, no nonzeros and valid row pointers).
Member Function Documentation
◆ conj_transpose()
|
overridevirtual |
Returns a LinOp representing the conjugate transpose of the Transposable object.
- Returns
- a pointer to the new conjugate transposed object
Implements gko::Transposable.
◆ create() [1/4]
|
static |
Creates a SparsityCsr matrix from already allocated (and initialized) row pointer and column index arrays.
- Template Parameters
-
ColIdxsArray type of col_idxsarrayRowPtrsArray type of row_ptrsarray
- Parameters
-
exec Executor associated to the matrix size size of the matrix col_idxs array of column indexes row_ptrs array of row pointers value value stored. (same value for all matrix elements)
- Note
- If one of
row_ptrsorcol_idxsis not an rvalue, not an array of IndexType and IndexType respectively, or is on the wrong executor, an internal copy of that array will be created, and the original array data will not be used in the matrix.
◆ create() [2/4]
|
inlinestatic |
create(std::shared_ptr<constExecutor>, const dim<2>&, array<index_type>, array<index_type>,value_type)
create(std::shared_ptr<constExecutor>, const dim<2>&, array<index_type>, array<index_type>,value_type)
References gko::matrix::SparsityCsr< ValueType, IndexType >::create().
◆ create() [3/4]
|
static |
Creates an uninitialized SparsityCsr matrix of the specified size.
- Parameters
-
exec Executor associated to the matrix size size of the matrix num_nonzeros number of nonzeros
Referenced by gko::matrix::SparsityCsr< ValueType, IndexType >::create().
◆ create() [4/4]
|
static |
Creates a Sparsity matrix from an existing matrix. Uses the copy_and_convert_to functionality.
- Parameters
-
exec Executor associated to the matrix matrix The input matrix
◆ create_const()
|
inlinestatic |
Creates a constant (immutable) SparsityCsr matrix from constant arrays.
- Parameters
-
exec the executor to create the matrix on size the dimensions of the matrix values the value array of the matrix col_idxs the column index array of the matrix row_ptrs the row pointer array of the matrix strategy the strategy the matrix uses for SpMV operations
- Returns
- A smart pointer to the constant matrix wrapping the input arrays (if they reside on the same executor as the matrix) or a copy of these arrays on the correct executor.
◆ get_col_idxs()
|
inlinenoexcept |
Returns the column indices of the matrix.
- Returns
- the column indices of the matrix.
References gko::array< ValueType >::get_data().
◆ get_const_col_idxs()
|
inlinenoexcept |
Returns the column indices of the matrix.
- Returns
- the column indices of the matrix.
- 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_row_ptrs()
|
inlinenoexcept |
Returns the row pointers of the matrix.
- Returns
- the row pointers of the matrix.
- 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_value()
|
inlinenoexcept |
Returns the value stored in the matrix.
- Returns
- the value of the matrix.
- 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_num_nonzeros()
|
inlinenoexcept |
Returns the number of elements explicitly stored in the matrix.
- Returns
- the number of elements explicitly stored in the matrix
References gko::array< ValueType >::get_size().
◆ get_row_ptrs()
|
inlinenoexcept |
Returns the row pointers of the matrix.
- Returns
- the row pointers of the matrix.
References gko::array< ValueType >::get_data().
◆ get_value()
|
inlinenoexcept |
Returns the value stored in the matrix.
- Returns
- the value of the matrix.
References gko::array< ValueType >::get_data().
◆ operator=() [1/2]
| SparsityCsr & gko::matrix::SparsityCsr< ValueType, IndexType >::operator= | ( | const SparsityCsr< ValueType, IndexType > & | ) |
Copy-assigns a SparsityCsr matrix. Preserves executor, copies everything else.
◆ operator=() [2/2]
| SparsityCsr & gko::matrix::SparsityCsr< ValueType, IndexType >::operator= | ( | SparsityCsr< ValueType, IndexType > && | ) |
Move-assigns a SparsityCsr matrix. Preserves executor, moves the data and leaves the moved-from object in an empty state (0x0 LinOp with unchanged executor, no nonzeros and valid row pointers).
◆ read() [1/3]
|
overridevirtual |
Reads a matrix from a device_matrix_data structure.
- Parameters
-
data the device_matrix_data structure.
Reimplemented from gko::ReadableFromMatrixData< ValueType, IndexType >.
◆ read() [2/3]
|
overridevirtual |
Reads a matrix from a matrix_data structure.
- Parameters
-
data the matrix_data structure
Implements gko::ReadableFromMatrixData< ValueType, IndexType >.
◆ read() [3/3]
|
overridevirtual |
Reads a matrix from a device_matrix_data structure. The structure may be emptied by this function.
- Parameters
-
data the device_matrix_data structure.
Reimplemented from gko::ReadableFromMatrixData< ValueType, IndexType >.
◆ sort_by_column_index()
| void gko::matrix::SparsityCsr< ValueType, IndexType >::sort_by_column_index | ( | ) |
Sorts each row by column index
◆ to_adjacency_matrix()
| std::unique_ptr< SparsityCsr > gko::matrix::SparsityCsr< ValueType, IndexType >::to_adjacency_matrix | ( | ) | const |
Transforms the sparsity matrix to an adjacency matrix. As the adjacency matrix has to be square, the input SparsityCsr matrix for this function to work has to be square.
- Note
- The adjacency matrix in this case is the sparsity pattern but with the diagonal ones removed. This is mainly used for the reordering/partitioning as taken in by graph libraries such as METIS.
◆ transpose()
|
overridevirtual |
Returns a LinOp representing the transpose of the Transposable object.
- Returns
- a pointer to the new transposed object
Implements gko::Transposable.
◆ 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 files:
- ginkgo/core/matrix/csr.hpp
- ginkgo/core/matrix/sparsity_csr.hpp
Generated by
Public Types inherited from