|
using | ConstViewType = MultidiagonalMatrixView< std::add_const_t< Real >, Device, Index, Organization > |
| Matrix view type for constant instances.
|
|
using | DeviceType = Device |
| The device where the matrix is allocated.
|
|
using | IndexType = Index |
| The type used for matrix elements indexing.
|
|
using | RealType = typename Base::RealType |
| The type of matrix elements.
|
|
template<typename _Real = Real, typename _Device = Device, typename _Index = Index, ElementsOrganization Organization_ = Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization()> |
using | Self = MultidiagonalMatrixView< _Real, _Device, _Index, Organization_ > |
| Helper type for getting self type or its modifications.
|
|
using | ViewType = MultidiagonalMatrixView< Real, Device, Index, Organization > |
| Type of related matrix view.
|
|
using | ConstRowView |
| Type for accessing constant matrix rows.
|
|
using | DeviceType |
| The device where the matrix is allocated.
|
|
using | DiagonalOffsetsView |
|
using | HostDiagonalOffsetsView |
|
using | IndexerType |
|
using | IndexType |
| The type used for matrix elements indexing.
|
|
using | RealType |
| The type of matrix elements.
|
|
using | RowView |
| Type for accessing matrix rows.
|
|
using | ConstValuesViewType |
| Type of constant vector view holding values of matrix elements.
|
|
using | DeviceType |
| The device where the matrix is allocated.
|
|
using | IndexType |
| The type used for matrix elements indexing.
|
|
using | RealType |
| The type of matrix elements.
|
|
using | RowCapacitiesType |
|
using | ValuesViewType |
| Type of vector view holding values of matrix elements.
|
|
|
__cuda_callable__ | MultidiagonalMatrixView ()=default |
| Constructor with no parameters.
|
|
__cuda_callable__ | MultidiagonalMatrixView (const MultidiagonalMatrixView &)=default |
| Copy constructor.
|
|
__cuda_callable__ | MultidiagonalMatrixView (MultidiagonalMatrixView &&) noexcept=default |
| Move constructor.
|
|
__cuda_callable__ | MultidiagonalMatrixView (typename Base::ValuesViewType values, typename Base::DiagonalOffsetsView diagonalOffsets, typename Base::HostDiagonalOffsetsView hostDiagonalOffsets, typename Base::IndexerType indexer) |
| Constructor with all necessary data and views.
|
|
__cuda_callable__ void | bind (MultidiagonalMatrixView view) |
| Method for rebinding (reinitialization) using another multidiagonal matrix view.
|
|
ConstViewType | getConstView () const |
| Returns a non-modifiable view of the multidiagonal matrix.
|
|
ViewType | getView () |
| Returns a modifiable view of the multidiagonal matrix.
|
|
MultidiagonalMatrixView & | operator= (const MultidiagonalMatrixView &)=delete |
| Copy-assignment operator.
|
|
MultidiagonalMatrixView & | operator= (MultidiagonalMatrixView &&)=delete |
| Move-assignment operator.
|
|
void | save (File &file) const |
| Method for saving the matrix to a file.
|
|
__cuda_callable__ | MultidiagonalMatrixBase ()=default |
| Constructor with no parameters.
|
|
__cuda_callable__ | MultidiagonalMatrixBase (const MultidiagonalMatrixBase &)=default |
| Copy constructor.
|
|
__cuda_callable__ | MultidiagonalMatrixBase (MultidiagonalMatrixBase &&) noexcept=default |
| Move constructor.
|
|
__cuda_callable__ | MultidiagonalMatrixBase (typename Base::ValuesViewType values, DiagonalOffsetsView diagonalOffsets, HostDiagonalOffsetsView hostDiagonalOffsets, IndexerType indexer) |
| Constructor with all necessary data and views.
|
|
__cuda_callable__ void | addElement (IndexType row, IndexType column, const RealType &value, const RealType &thisElementMultiplicator=1.0) |
| Add element at given row and column to given value.
|
|
void | addMatrix (const MultidiagonalMatrixBase< Real_, Device_, Index_, Organization_ > &matrix, const RealType &matrixMultiplicator=1.0, const RealType &thisMatrixMultiplicator=1.0) |
|
void | forAllElements (Function &function) |
| This method calls forElements for all matrix rows.
|
|
void | forAllElements (Function &function) const |
| This method calls forElements for all matrix rows (for constant instances).
|
|
void | forAllRows (Function &&function) |
| Method for parallel iteration over all matrix rows.
|
|
void | forAllRows (Function &&function) const |
| Method for parallel iteration over all matrix rows for constant instances.
|
|
void | forElements (IndexType begin, IndexType end, Function &function) |
| Method for iteration over all matrix rows for non-constant instances.
|
|
void | forElements (IndexType begin, IndexType end, Function &function) const |
| Method for iteration over all matrix rows for constant instances.
|
|
void | forRows (IndexType begin, IndexType end, Function &&function) |
| Method for parallel iteration over matrix rows from interval [begin, end) .
|
|
void | forRows (IndexType begin, IndexType end, Function &&function) const |
| Method for parallel iteration over matrix rows from interval [begin, end) for constant instances.
|
|
void | getCompressedRowLengths (Vector &rowLengths) const |
| Computes number of non-zeros in each row.
|
|
__cuda_callable__ DiagonalOffsetsView | getDiagonalOffsets () |
| Returns a view for the vector of diagonal offsets.
|
|
__cuda_callable__ DiagonalOffsetsView::ConstViewType | getDiagonalOffsets () const |
| Returns a view for the vector of diagonal offsets.
|
|
__cuda_callable__ IndexType | getDiagonalsCount () const |
| Returns number of diagonals.
|
|
__cuda_callable__ RealType | getElement (IndexType row, IndexType column) const |
| Returns value of matrix element at position given by its row and column index.
|
|
__cuda_callable__ IndexerType & | getIndexer () |
| This method returns matrix elements indexer used by this matrix.
|
|
__cuda_callable__ const IndexerType & | getIndexer () const |
| This method returns matrix elements indexer used by this matrix.
|
|
IndexType | getNonzeroElementsCount () const override |
| Returns number of non-zero matrix elements.
|
|
__cuda_callable__ RowView | getRow (IndexType rowIdx) |
| Non-constant getter of simple structure for accessing given matrix row.
|
|
__cuda_callable__ ConstRowView | getRow (IndexType rowIdx) const |
| Constant getter of simple structure for accessing given matrix row.
|
|
void | getRowCapacities (Vector &rowCapacities) const |
| Compute capacities of all rows.
|
|
bool | operator!= (const MultidiagonalMatrixBase< Real_, Device_, Index_, Organization_ > &matrix) const |
| Comparison operator with another multidiagonal matrix.
|
|
MultidiagonalMatrixBase & | operator= (const MultidiagonalMatrixBase &)=delete |
| Copy-assignment operator.
|
|
MultidiagonalMatrixBase & | operator= (MultidiagonalMatrixBase &&)=delete |
| Move-assignment operator.
|
|
bool | operator== (const MultidiagonalMatrixBase< Real_, Device_, Index_, Organization_ > &matrix) const |
| Comparison operator with another multidiagonal matrix.
|
|
void | print (std::ostream &str) const |
| Method for printing the matrix to output stream.
|
|
void | reduceAllRows (Fetch &&fetch, const Reduce &reduce, Keep &&keep, const FetchReal &identity) const |
| Method for performing general reduction on all matrix rows for constant instances.
|
|
void | reduceRows (IndexType begin, IndexType end, Fetch &&fetch, const Reduce &reduce, Keep &&keep, const FetchReal &identity) const |
| Method for performing general reduction on matrix rows for constant instances.
|
|
void | sequentialForAllRows (Function &function) |
| This method calls sequentialForRows for all matrix rows.
|
|
void | sequentialForAllRows (Function &function) const |
| This method calls sequentialForRows for all matrix rows (for constant instances).
|
|
void | sequentialForRows (IndexType begin, IndexType end, Function &function) |
| Method for sequential iteration over all matrix rows for non-constant instances.
|
|
void | sequentialForRows (IndexType begin, IndexType end, Function &function) const |
| Method for sequential iteration over all matrix rows for constant instances.
|
|
__cuda_callable__ void | setElement (IndexType row, IndexType column, const RealType &value) |
| Sets element at given row and column to given value.
|
|
void | setValue (const RealType &value) |
| Set all matrix elements to given value.
|
|
void | vectorProduct (const InVector &inVector, OutVector &outVector, RealType matrixMultiplicator=1.0, RealType outVectorMultiplicator=0.0, IndexType begin=0, IndexType end=0) const |
| Computes product of matrix and vector.
|
|
__cuda_callable__ | MatrixBase ()=default |
| Basic constructor with no parameters.
|
|
__cuda_callable__ | MatrixBase (const MatrixBase &view)=default |
| Shallow copy constructor.
|
|
__cuda_callable__ | MatrixBase (IndexType rows, IndexType columns, ValuesViewType values) |
| Constructor with matrix dimensions and matrix elements values.
|
|
__cuda_callable__ | MatrixBase (MatrixBase &&view) noexcept=default |
| Move constructor.
|
|
IndexType | getAllocatedElementsCount () const |
| Tells the number of allocated matrix elements.
|
|
__cuda_callable__ IndexType | getColumns () const |
| Returns number of matrix columns.
|
|
__cuda_callable__ IndexType | getRows () const |
| Returns number of matrix rows.
|
|
__cuda_callable__ ValuesViewType & | getValues () |
| Returns a reference to a vector with the matrix elements values.
|
|
__cuda_callable__ const ValuesViewType & | getValues () const |
| Returns a constant reference to a vector with the matrix elements values.
|
|
bool | operator!= (const Matrix &matrix) const |
| Comparison operator with another arbitrary matrix view type.
|
|
bool | operator!= (const MatrixT &matrix) const |
|
__cuda_callable__ MatrixBase & | operator= (const MatrixBase &)=delete |
| Copy-assignment operator.
|
|
__cuda_callable__ MatrixBase & | operator= (MatrixBase &&)=delete |
| Move-assignment operator.
|
|
bool | operator== (const Matrix &matrix) const |
| Comparison operator with another arbitrary matrix view type.
|
|
bool | operator== (const MatrixT &matrix) const |
|
template<typename
Real = double, typename Device = Devices::Host, typename Index = int,
ElementsOrganization Organization = Algorithms::Segments::DefaultElementsOrganization< Device >::getOrganization()>
class TNL::Matrices::MultidiagonalMatrixView< Real, Device, Index, Organization >
Implementation of sparse multidiagonal matrix.
It serves as an accessor to SparseMatrix for example when passing the matrix to lambda functions. SparseMatrix view can be also created in CUDA kernels.
See MultidiagonalMatrix for more details.
- Template Parameters
-
Real | is a type of matrix elements. |
Device | is a device where the matrix is allocated. |
Index | is a type for indexing of the matrix elements. |
Organization | tells the ordering of matrix elements. It is either RowMajorOrder or ColumnMajorOrder. |