Coo< ValueType, IndexType > Class Template Reference#
|
Reference API
|
#include <ginkgo/core/matrix/coo.hpp>
Public Types | |
| using | value_type = ValueType |
| using | index_type = IndexType |
| using | mat_data = matrix_data< ValueType, IndexType > |
| using | device_mat_data = device_matrix_data< ValueType, IndexType > |
| using | absolute_type = remove_complex< Coo > |
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::DiagonalExtractable< ValueType > | |
| using | value_type = ValueType |
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 Types inherited from gko::EnableAbsoluteComputation< AbsoluteLinOp > | |
| using | absolute_type = AbsoluteLinOp |
Public Member Functions | |
| void | convert_to (Coo< next_precision< ValueType >, IndexType > *result) const override |
| void | move_to (Coo< next_precision< ValueType >, IndexType > *result) override |
| void | convert_to (Coo< next_precision< next_precision< ValueType > >, IndexType > *result) const override |
| void | move_to (Coo< next_precision< next_precision< ValueType > >, IndexType > *result) override |
| void | convert_to (Csr< ValueType, IndexType > *other) const override |
| void | move_to (Csr< ValueType, IndexType > *other) override |
| void | convert_to (Dense< ValueType > *other) const override |
| void | move_to (Dense< ValueType > *other) 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< Diagonal< ValueType > > | extract_diagonal () const override |
| std::unique_ptr< absolute_type > | compute_absolute () const override |
| void | compute_absolute_inplace () override |
| value_type * | get_values () noexcept |
| const value_type * | get_const_values () const noexcept |
| index_type * | get_col_idxs () noexcept |
| const index_type * | get_const_col_idxs () const noexcept |
| index_type * | get_row_idxs () noexcept |
| const index_type * | get_const_row_idxs () const noexcept |
| size_type | get_num_stored_elements () const noexcept |
| LinOp * | apply2 (ptr_param< const LinOp > b, ptr_param< LinOp > x) |
| const LinOp * | apply2 (ptr_param< const LinOp > b, ptr_param< LinOp > x) const |
| LinOp * | apply2 (ptr_param< const LinOp > alpha, ptr_param< const LinOp > b, ptr_param< LinOp > x) |
| const LinOp * | apply2 (ptr_param< const LinOp > alpha, ptr_param< const LinOp > b, ptr_param< LinOp > x) const |
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::DiagonalExtractable< ValueType > | |
| std::unique_ptr< LinOp > | extract_diagonal_linop () const override |
Public Member Functions inherited from gko::ReadableFromMatrixData< ValueType, IndexType > | |
| void | read (const matrix_assembly_data< ValueType, IndexType > &data) |
Public Member Functions inherited from gko::EnableAbsoluteComputation< AbsoluteLinOp > | |
| std::unique_ptr< LinOp > | compute_absolute_linop () const override |
Static Public Member Functions | |
| static std::unique_ptr< Coo > | create (std::shared_ptr< const Executor > exec, const dim< 2 > &size=dim< 2 >{}, size_type num_nonzeros={}) |
| static std::unique_ptr< Coo > | create (std::shared_ptr< const Executor > exec, const dim< 2 > &size, array< value_type > values, array< index_type > col_idxs, array< index_type > row_idxs) |
| template<typename InputValueType , typename InputColumnIndexType , typename InputRowIndexType > | |
| static std::unique_ptr< Coo > | create (std::shared_ptr< const Executor > exec, const dim< 2 > &size, std::initializer_list< InputValueType > values, std::initializer_list< InputColumnIndexType > col_idxs, std::initializer_list< InputRowIndexType > row_idxs) |
| create(std::shared_ptr<const Executor>,const dim<2>&, array<value_type>, array<index_type>, array<index_type>) | |
| static std::unique_ptr< const Coo > | create_const (std::shared_ptr< const Executor > exec, const dim< 2 > &size, gko::detail::const_array_view< ValueType > &&values, gko::detail::const_array_view< IndexType > &&col_idxs, gko::detail::const_array_view< IndexType > &&row_idxs) |
Protected Member Functions | |
| Coo (std::shared_ptr< const Executor > exec, const dim< 2 > &size=dim< 2 >{}, size_type num_nonzeros={}) | |
| Coo (std::shared_ptr< const Executor > exec, const dim< 2 > &size, array< value_type > values, array< index_type > col_idxs, array< index_type > row_idxs) | |
| void | resize (dim< 2 > new_size, size_type nnz) |
| 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 |
| void | apply2_impl (const LinOp *b, LinOp *x) const |
| void | apply2_impl (const LinOp *alpha, const LinOp *b, LinOp *x) const |
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 |
Additional Inherited Members | |
Protected Attributes inherited from gko::log::EnableLogging< PolymorphicObject > | |
| std::vector< std::shared_ptr< const Logger > > | loggers_ |
Detailed Description
class gko::matrix::Coo< ValueType, IndexType >
COO stores a matrix in the coordinate matrix format.
The nonzero elements are stored in an array row-wise (but not necessarily sorted by column index within a row). Two extra arrays contain the row and column indexes of each nonzero element of the matrix.
- Template Parameters
-
ValueType precision of matrix elements IndexType precision of matrix indexes
Member Function Documentation
◆ apply2() [1/4]
◆ apply2() [2/4]
| const LinOp * gko::matrix::Coo< ValueType, IndexType >::apply2 | ( | ptr_param< const LinOp > | alpha, |
| ptr_param< const LinOp > | b, | ||
| ptr_param< LinOp > | x | ||
| ) | const |
◆ apply2() [3/4]
◆ apply2() [4/4]
| const LinOp * gko::matrix::Coo< ValueType, IndexType >::apply2 | ( | ptr_param< const LinOp > | b, |
| ptr_param< LinOp > | x | ||
| ) | const |
◆ compute_absolute()
|
overridevirtual |
Gets the AbsoluteLinOp
- Returns
- a pointer to the new absolute object
Implements gko::EnableAbsoluteComputation< AbsoluteLinOp >.
◆ compute_absolute_inplace()
|
overridevirtual |
Compute absolute inplace on each element.
Implements gko::AbsoluteComputable.
◆ create() [1/3]
|
static |
Creates a COO matrix from already allocated (and initialized) row index, column index and value arrays.
- Parameters
-
exec Executor associated to the matrix size size of the matrix values array of matrix values col_idxs array of column indexes row_idxs array of row pointers
- Note
- If one of
row_idxs,col_idxsorvaluesis not an rvalue, not an array of IndexType, IndexType and ValueType, 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.
- Returns
- A smart pointer to the 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.
◆ create() [2/3]
|
inlinestatic |
◆ create() [3/3]
|
static |
Creates an uninitialized COO matrix of the specified size.
- Parameters
-
exec Executor associated to the matrix size size of the matrix num_nonzeros number of nonzeros
- Returns
- A smart pointer to the newly created matrix.
Referenced by gko::matrix::Coo< ValueType, IndexType >::create().
◆ create_const()
|
static |
Creates a constant (immutable) Coo matrix from a set of 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 index array of the matrix
- 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.
◆ extract_diagonal()
|
overridevirtual |
Extracts the diagonal entries of the matrix into a vector.
- Parameters
-
diag the vector into which the diagonal will be written
Implements gko::DiagonalExtractable< ValueType >.
◆ get_col_idxs()
|
inlinenoexcept |
Returns the column indexes of the matrix.
- Returns
- the column indexes of the matrix.
References gko::array< ValueType >::get_data().
◆ get_const_col_idxs()
|
inlinenoexcept |
Returns the column indexes of the matrix.
- Returns
- the column indexes 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_idxs()
|
inlinenoexcept |
- 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_values()
|
inlinenoexcept |
Returns the values of the matrix.
- Returns
- the values 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_stored_elements()
|
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_idxs()
|
inlinenoexcept |
Returns the row indexes of the matrix.
- Returns
- the row indexes of the matrix.
References gko::array< ValueType >::get_data().
◆ get_values()
|
inlinenoexcept |
Returns the values of the matrix.
- Returns
- the values of the matrix.
References gko::array< ValueType >::get_data().
◆ 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 >.
◆ resize()
|
protected |
Resizes the matrix and associated storage to the given sizes. Internal storage may be reallocated if they don't match the old values.
- Parameters
-
new_size the new matrix dimensions. nnz the new number of nonzeros.
◆ 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/coo.hpp
Generated by
Public Types inherited from