Template Numerical Library version\ main:4e58ea6
|
Implementation of dense matrix, i.e. matrix storing explicitly all of its elements including zeros. More...
#include <TNL/Matrices/DenseMatrix.h>
Public Types | |
using | ConstViewType = typename DenseMatrixView< Real, Device, Index, Organization >::ConstViewType |
Matrix view type for constant instances. | |
using | RealAllocatorType = RealAllocator |
The allocator for matrix elements. | |
template<typename _Real = Real, typename _Device = Device, typename _Index = Index, ElementsOrganization _Organization = Algorithms::Segments::DefaultElementsOrganization< _Device >::getOrganization(), typename _RealAllocator = typename Allocators::Default< _Device >::template Allocator< _Real >> | |
using | Self = DenseMatrix< _Real, _Device, _Index, _Organization, _RealAllocator > |
Helper type for getting self type or its modifications. | |
using | ValuesVectorType = Containers::Vector< Real, Device, Index, RealAllocator > |
Type of vector holding values of matrix elements. | |
using | ViewType = DenseMatrixView< Real, Device, Index, Organization > |
Type of related matrix view. | |
Public Types inherited from TNL::Matrices::DenseMatrixBase< double, Devices::Host, int, Algorithms::Segments::DefaultElementsOrganization< Devices::Host >::getOrganization() > | |
using | ConstRowView |
Type for accessing immutable matrix row. | |
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 | RowView |
Type for accessing matrix row. | |
Public Types inherited from TNL::Matrices::MatrixBase< double, Devices::Host, int, GeneralMatrix, Organization > | |
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. | |
Public Member Functions | |
DenseMatrix (const DenseMatrix &matrix) | |
Copy constructor. | |
DenseMatrix (const RealAllocatorType &allocator=RealAllocatorType()) | |
Constructor only with values allocator. | |
DenseMatrix (DenseMatrix &&matrix) noexcept=default | |
Move constructor. | |
DenseMatrix (Index rows, Index columns, const RealAllocatorType &allocator=RealAllocatorType()) | |
Constructor with matrix dimensions. | |
template<typename Value > | |
DenseMatrix (std::initializer_list< std::initializer_list< Value > > data, const RealAllocatorType &allocator=RealAllocatorType()) | |
Constructor with 2D initializer list. | |
ConstViewType | getConstView () const |
Returns a non-modifiable view of the dense matrix. | |
template<int tileDim = 16> | |
void | getInPlaceTransposition (Real matrixMultiplicator=1.0) |
Performs an in-place transposition of this matrix. | |
template<typename Matrix1 , typename Matrix2 , int tileDim = 16> | |
void | getMatrixProduct (const Matrix1 &matrix1, const Matrix2 &matrix2, Real matrixMultiplicator=1.0, TransposeState transposeA=TransposeState::None, TransposeState transposeB=TransposeState::None) |
Computes the product of two matrices and stores the result in this matrix. | |
template<typename Matrix , int tileDim = 16> | |
void | getTransposition (const Matrix &matrix, Real matrixMultiplicator=1.0) |
Computes the transposition of a given matrix and stores the result in this matrix. | |
ViewType | getView () |
Returns a modifiable view of the dense matrix. | |
void | load (const String &fileName) |
Method for loading the matrix from the file with given filename. | |
void | load (File &file) override |
Method for loading the matrix from a file. | |
DenseMatrix & | operator= (const DenseMatrix &matrix) |
Copy-assignment of exactly the same matrix type. | |
template<typename Real , typename Device , typename Index , ElementsOrganization Organization, typename RealAllocator > | |
DenseMatrix< Real, Device, Index, Organization, RealAllocator > & | operator= (const DenseMatrix< Real, Device, Index, Organization, RealAllocator > &matrix) |
template<typename RHSReal , typename RHSDevice , typename RHSIndex , typename RHSRealAllocator > | |
DenseMatrix & | operator= (const DenseMatrix< RHSReal, RHSDevice, RHSIndex, Organization, RHSRealAllocator > &matrix) |
Assignment operator with the same organization. | |
template<typename RHSReal , typename RHSDevice , typename RHSIndex , typename RHSRealAllocator > | |
DenseMatrix< Real, Device, Index, Organization, RealAllocator > & | operator= (const DenseMatrix< RHSReal, RHSDevice, RHSIndex, Organization, RHSRealAllocator > &matrix) |
template<typename RHSReal , typename RHSDevice , typename RHSIndex , ElementsOrganization RHSOrganization, typename RHSRealAllocator > | |
DenseMatrix & | operator= (const DenseMatrix< RHSReal, RHSDevice, RHSIndex, RHSOrganization, RHSRealAllocator > &matrix) |
Assignment operator with other dense matrices. | |
template<typename RHSReal , typename RHSDevice , typename RHSIndex , ElementsOrganization RHSOrganization, typename RHSRealAllocator > | |
DenseMatrix< Real, Device, Index, Organization, RealAllocator > & | operator= (const DenseMatrix< RHSReal, RHSDevice, RHSIndex, RHSOrganization, RHSRealAllocator > &matrix) |
template<typename RHSReal , typename RHSDevice , typename RHSIndex > | |
DenseMatrix & | operator= (const DenseMatrixView< RHSReal, RHSDevice, RHSIndex, Organization > &matrix) |
Assignment operator with matrix view having the same elements organization. | |
template<typename RHSReal , typename RHSDevice , typename RHSIndex > | |
DenseMatrix< Real, Device, Index, Organization, RealAllocator > & | operator= (const DenseMatrixView< RHSReal, RHSDevice, RHSIndex, Organization > &matrix) |
template<typename RHSReal , typename RHSDevice , typename RHSIndex , ElementsOrganization RHSOrganization> | |
DenseMatrix & | operator= (const DenseMatrixView< RHSReal, RHSDevice, RHSIndex, RHSOrganization > &matrix) |
Assignment operator with other dense matrices. | |
template<typename RHSReal , typename RHSDevice , typename RHSIndex , ElementsOrganization RHSOrganization> | |
DenseMatrix< Real, Device, Index, Organization, RealAllocator > & | operator= (const DenseMatrixView< RHSReal, RHSDevice, RHSIndex, RHSOrganization > &matrix) |
template<typename RHSMatrix > | |
DenseMatrix & | operator= (const RHSMatrix &matrix) |
Assignment operator with other (sparse) types of matrices. | |
template<typename RHSMatrix > | |
DenseMatrix< Real, Device, Index, Organization, RealAllocator > & | operator= (const RHSMatrix &matrix) |
DenseMatrix & | operator= (DenseMatrix &&matrix) noexcept(false) |
Move-assignment of exactly the same matrix type. | |
template<typename Real , typename Device , typename Index , ElementsOrganization Organization, typename RealAllocator > | |
DenseMatrix< Real, Device, Index, Organization, RealAllocator > & | operator= (DenseMatrix< Real, Device, Index, Organization, RealAllocator > &&matrix) noexcept(false) |
void | reset () |
Resets the matrix to zero dimensions. | |
void | save (const String &fileName) const |
Method for saving the matrix to the file with given filename. | |
void | save (File &file) const override |
Method for saving the matrix to a file. | |
void | setDimensions (Index rows, Index columns) |
Set number of rows and columns of this matrix. | |
template<typename MapIndex , typename MapValue > | |
void | setElements (const std::map< std::pair< MapIndex, MapIndex >, MapValue > &map) |
This method sets the dense matrix elements from std::map. | |
template<typename Value > | |
void | setElements (std::initializer_list< std::initializer_list< Value > > data) |
This method recreates the dense matrix from 2D initializer list. | |
template<typename Matrix > | |
void | setLike (const Matrix &matrix) |
Set the number of matrix rows and columns by the given matrix. | |
template<typename Matrix_ > | |
void | setLike (const Matrix_ &matrix) |
template<typename RowCapacitiesVector > | |
void | setRowCapacities (const RowCapacitiesVector &rowCapacities) |
This method is only for the compatibility with the sparse matrices. | |
Public Member Functions inherited from TNL::Object | |
virtual | ~Object ()=default |
Destructor. | |
virtual std::string | getSerializationTypeVirtual () const |
void | load (const String &fileName) |
Method for restoring the object from a file. | |
void | save (const String &fileName) const |
Method for saving the object to a file as a binary data. | |
Public Member Functions inherited from TNL::Matrices::DenseMatrixBase< double, Devices::Host, int, Algorithms::Segments::DefaultElementsOrganization< Devices::Host >::getOrganization() > | |
__cuda_callable__ | DenseMatrixBase ()=default |
Constructor without parameters. | |
__cuda_callable__ | DenseMatrixBase (const DenseMatrixBase &matrix)=default |
Copy constructor. | |
__cuda_callable__ | DenseMatrixBase (DenseMatrixBase &&matrix) noexcept=default |
Move constructor. | |
__cuda_callable__ | DenseMatrixBase (IndexType rows, IndexType columns, typename Base::ValuesViewType values) |
Constructor with matrix dimensions and values. | |
__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 Matrix &matrix, const RealType &matrixMultiplicator=1.0, const RealType &thisMatrixMultiplicator=1.0, TransposeState transpose=TransposeState::None) |
Computes matrix addition. | |
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. | |
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__ double | getElement (IndexType row, IndexType column) const |
Returns value of matrix element at position given by its row and column index. | |
__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. | |
__cuda_callable__ IndexType | getRowCapacity (IndexType row) const |
Returns capacity of given matrix row. | |
bool | operator!= (const DenseMatrixBase< Real_, Device_, Index_, Organization > &matrix) const |
Comparison operator with another dense matrix view. | |
__cuda_callable__ double & | operator() (IndexType row, IndexType column) |
Returns non-constant reference to element at row row and column column. | |
__cuda_callable__ const double & | operator() (IndexType row, IndexType column) const |
Returns constant reference to element at row row and column column. | |
DenseMatrixBase & | operator= (const DenseMatrixBase &)=delete |
Copy-assignment operator. | |
DenseMatrixBase & | operator= (DenseMatrixBase &&)=delete |
Move-assignment operator. | |
bool | operator== (const DenseMatrixBase< Real_, Device_, Index_, Organization > &matrix) const |
Comparison operator with another dense matrix view. | |
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 | reduceRows (IndexType begin, IndexType end, Fetch &&fetch, const Reduce &reduce, Keep &&keep, const FetchValue &identity) const |
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 &v) |
Sets all matrix elements to value v. | |
void | vectorProduct (const InVector &inVector, OutVector &outVector, const RealType &matrixMultiplicator=1.0, const RealType &outVectorMultiplicator=0.0, IndexType begin=0, IndexType end=0) const |
Computes product of matrix and vector. | |
Public Member Functions inherited from TNL::Matrices::MatrixBase< double, Devices::Host, int, GeneralMatrix, Organization > | |
__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. | |
virtual IndexType | getNonzeroElementsCount () const |
Computes a current number of nonzero matrix elements. | |
__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 |
Static Public Member Functions | |
static std::string | getSerializationType () |
Returns string with serialization type. | |
Static Public Member Functions inherited from TNL::Object | |
static std::string | getSerializationType () |
Static serialization type getter. | |
Static Public Member Functions inherited from TNL::Matrices::DenseMatrixBase< double, Devices::Host, int, Algorithms::Segments::DefaultElementsOrganization< Devices::Host >::getOrganization() > | |
static std::string | getSerializationType () |
Returns string with serialization type. | |
Static Public Member Functions inherited from TNL::Matrices::MatrixBase< double, Devices::Host, int, GeneralMatrix, Organization > | |
static constexpr ElementsOrganization | getOrganization () |
Matrix elements organization getter. | |
static constexpr bool | isBinary () |
Test of binary matrix type. | |
static constexpr bool | isSymmetric () |
Test of symmetric matrix type. | |
Protected Attributes | |
Base::SegmentsType | segments |
Instance of the segments used for indexing in the dense matrix. | |
ValuesVectorType | values |
Vector containing the allocated matrix elements. | |
Protected Attributes inherited from TNL::Matrices::DenseMatrixBase< double, Devices::Host, int, Algorithms::Segments::DefaultElementsOrganization< Devices::Host >::getOrganization() > | |
SegmentsViewType | segments |
Protected Attributes inherited from TNL::Matrices::MatrixBase< double, Devices::Host, int, GeneralMatrix, Organization > | |
IndexType | columns |
IndexType | rows |
ValuesViewType | values |
Implementation of dense matrix, i.e. matrix storing explicitly all of its elements including zeros.
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. |
RealAllocator | is allocator for the matrix elements. |
using TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::ConstViewType = typename DenseMatrixView< Real, Device, Index, Organization >::ConstViewType |
Matrix view type for constant instances.
See DenseMatrixView.
using TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::ViewType = DenseMatrixView< Real, Device, Index, Organization > |
Type of related matrix view.
See DenseMatrixView.
TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::DenseMatrix | ( | const RealAllocatorType & | allocator = RealAllocatorType() | ) |
Constructor only with values allocator.
allocator | is used for allocation of matrix elements values. |
TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::DenseMatrix | ( | const DenseMatrix< Real, Device, Index, Organization, RealAllocator > & | matrix | ) |
Copy constructor.
matrix | is the source matrix |
|
defaultnoexcept |
Move constructor.
matrix | is the source matrix |
TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::DenseMatrix | ( | Index | rows, |
Index | columns, | ||
const RealAllocatorType & | allocator = RealAllocatorType() ) |
Constructor with matrix dimensions.
rows | is number of matrix rows. |
columns | is number of matrix columns. |
allocator | is used for allocation of matrix elements values. |
TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::DenseMatrix | ( | std::initializer_list< std::initializer_list< Value > > | data, |
const RealAllocatorType & | allocator = RealAllocatorType() ) |
Constructor with 2D initializer list.
The number of matrix rows is set to the outer list size and the number of matrix columns is set to maximum size of inner lists. Missing elements are filled in with zeros.
data | is a initializer list of initializer lists representing list of matrix rows. |
allocator | is used for allocation of matrix elements values. |
|
nodiscard |
void TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::getInPlaceTransposition | ( | Real | matrixMultiplicator = 1.0 | ) |
Performs an in-place transposition of this matrix.
This method transposes this matrix in place, modifying the original matrix. The operation can optionally scale the matrix by a specified factor.
tileDim | Tile dimension for GPU computation optimization. Default is 16. |
matrixMultiplicator | A scalar value by which the matrix is scaled during the transposition. Default is 1.0. |
void TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::getMatrixProduct | ( | const Matrix1 & | matrix1, |
const Matrix2 & | matrix2, | ||
Real | matrixMultiplicator = 1.0, | ||
TransposeState | transposeA = TransposeState::None, | ||
TransposeState | transposeB = TransposeState::None ) |
Computes the product of two matrices and stores the result in this matrix.
This method calculates the product of two given matrices (matrix1 and matrix2) and stores the result in this matrix. It optionally supports transposing the input matrices before performing the multiplication and scaling the result by a specified factor.
Matrix1 | Type of the first input matrix. |
Matrix2 | Type of the second input matrix. |
tileDim | Tile dimension for GPU computation optimization. Default is 16. |
matrix1 | The first input matrix. |
matrix2 | The second input matrix. |
matrixMultiplicator | A scalar value by which the matrix product is scaled. Default is 1.0. |
transposeA | Specifies whether to transpose matrix1 before multiplication. Default is TransposeState::None. |
transposeB | Specifies whether to transpose matrix2 before multiplication. Default is TransposeState::None. |
|
staticnodiscard |
Returns string with serialization type.
The string has a form `MatricesDenseMatrix< RealType, [any_device], IndexType, [any_allocator], true/false >`.
void TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::getTransposition | ( | const Matrix & | matrix, |
Real | matrixMultiplicator = 1.0 ) |
Computes the transposition of a given matrix and stores the result in this matrix.
This method calculates the transpose of a given matrix and stores the result in this matrix. The result can also be scaled by a specified factor.
Matrix | Type of the input matrix. |
tileDim | Tile dimension for GPU computation optimization. Default is 16. |
matrix | The input matrix to be transposed. |
matrixMultiplicator | A scalar value by which the transposed matrix is scaled. Default is 1.0. |
|
nodiscard |
void TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::load | ( | const String & | fileName | ) |
Method for loading the matrix from the file with given filename.
fileName | is name of the file. |
|
overridevirtual |
Method for loading the matrix from a file.
file | is the file from which the matrix will be loaded. |
Reimplemented from TNL::Object.
DenseMatrix & TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::operator= | ( | const DenseMatrix< Real, Device, Index, Organization, RealAllocator > & | matrix | ) |
Copy-assignment of exactly the same matrix type.
matrix | is input matrix for the assignment. |
DenseMatrix & TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::operator= | ( | const DenseMatrix< RHSReal, RHSDevice, RHSIndex, Organization, RHSRealAllocator > & | matrix | ) |
Assignment operator with the same organization.
matrix | is the right-hand side matrix. |
DenseMatrix & TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::operator= | ( | const DenseMatrix< RHSReal, RHSDevice, RHSIndex, RHSOrganization, RHSRealAllocator > & | matrix | ) |
Assignment operator with other dense matrices.
matrix | is the right-hand side matrix. |
DenseMatrix & TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::operator= | ( | const DenseMatrixView< RHSReal, RHSDevice, RHSIndex, Organization > & | matrix | ) |
Assignment operator with matrix view having the same elements organization.
matrix | is the right-hand side matrix. |
DenseMatrix & TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::operator= | ( | const DenseMatrixView< RHSReal, RHSDevice, RHSIndex, RHSOrganization > & | matrix | ) |
Assignment operator with other dense matrices.
matrix | is the right-hand side matrix. |
DenseMatrix & TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::operator= | ( | const RHSMatrix & | matrix | ) |
Assignment operator with other (sparse) types of matrices.
matrix | is the right-hand side matrix. |
DenseMatrix & TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::operator= | ( | DenseMatrix< Real, Device, Index, Organization, RealAllocator > && | matrix | ) |
Move-assignment of exactly the same matrix type.
matrix | is input matrix for the assignment. |
void TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::save | ( | const String & | fileName | ) | const |
Method for saving the matrix to the file with given filename.
fileName | is name of the file. |
|
overridevirtual |
Method for saving the matrix to a file.
file | is the file where the matrix will be saved. |
Reimplemented from TNL::Object.
void TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::setDimensions | ( | Index | rows, |
Index | columns ) |
Set number of rows and columns of this matrix.
rows | is the number of matrix rows. |
columns | is the number of matrix columns. |
void TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::setElements | ( | const std::map< std::pair< MapIndex, MapIndex >, MapValue > & | map | ) |
This method sets the dense matrix elements from std::map.
This is intended for compatibility with SparseMatrix, the method is used e.g. in MatrixReader.
The matrix elements values are given as a map data where keys are std::pair of matrix coordinates ( {row, column} ) and value is the matrix element value.
MapIndex | is a type for indexing rows and columns. |
MapValue | is a type for matrix elements values in the map. |
map | is std::map containing matrix elements. |
void TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::setElements | ( | std::initializer_list< std::initializer_list< Value > > | data | ) |
This method recreates the dense matrix from 2D initializer list.
The number of matrix rows is set to the outer list size and the number of matrix columns is set to maximum size of inner lists. Missing elements are filled in with zeros.
data | is a initializer list of initializer lists representing list of matrix rows. |
void TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::setLike | ( | const Matrix & | matrix | ) |
Set the number of matrix rows and columns by the given matrix.
Matrix | is matrix type. This can be any matrix having methods getRows and getColumns. |
matrix | in the input matrix dimensions of which are to be adopted. |
void TNL::Matrices::DenseMatrix< Real, Device, Index, Organization, RealAllocator >::setRowCapacities | ( | const RowCapacitiesVector & | rowCapacities | ) |
This method is only for the compatibility with the sparse matrices.
This method does nothing. In debug mode it contains assertions checking that given rowCapacities are compatible with the current matrix dimensions.