Template Numerical Library version\ main:94209208
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members
TNL::Matrices::DistributedMatrix< Matrix > Class Template Reference
Collaboration diagram for TNL::Matrices::DistributedMatrix< Matrix >:
Collaboration graph
[legend]

Public Types

using ConstMatrixRow = typename Matrix::ConstRowView
 
using DeviceType = typename Matrix::DeviceType
 
using IndexType = typename Matrix::IndexType
 
using LocalRangeType = Containers::Subrange< typename Matrix::IndexType >
 
using MatrixRow = typename Matrix::RowView
 
using MatrixType = Matrix
 
using RealType = typename Matrix::RealType
 
using RowCapacitiesType = Containers::DistributedVector< IndexType, DeviceType, IndexType >
 
template<typename _Real = RealType, typename _Device = DeviceType, typename _Index = IndexType>
using Self = DistributedMatrix< typename MatrixType::template Self< _Real, _Device, _Index > >
 

Public Member Functions

 DistributedMatrix (DistributedMatrix &)=default
 
 DistributedMatrix (LocalRangeType localRowRange, IndexType rows, IndexType columns, const MPI::Comm &communicator)
 
template<typename Function >
void forAllElements (Function &&function)
 
template<typename Function >
void forAllElements (Function &&function) const
 
template<typename Function >
void forAllRows (Function &&function)
 
template<typename Function >
void forAllRows (Function &&function) const
 
template<typename Function >
void forElements (IndexType begin, IndexType end, Function &&function)
 
template<typename Function >
void forElements (IndexType begin, IndexType end, Function &&function) const
 
template<typename Function >
void forRows (IndexType begin, IndexType end, Function &&function)
 
template<typename Function >
void forRows (IndexType begin, IndexType end, Function &&function) const
 
IndexType getColumns () const
 
const MPI::CommgetCommunicator () const
 
template<typename Vector >
void getCompressedRowLengths (Vector &rowLengths) const
 
RealType getElement (IndexType row, IndexType column) const
 
RealType getElementFast (IndexType row, IndexType column) const
 
Matrix & getLocalMatrix ()
 
const Matrix & getLocalMatrix () const
 
const LocalRangeTypegetLocalRowRange () const
 
MatrixRow getRow (IndexType row)
 
ConstMatrixRow getRow (IndexType row) const
 
IndexType getRowCapacity (IndexType row) const
 
IndexType getRows () const
 
DistributedMatrixoperator= (const DistributedMatrix &matrix)
 
template<typename MatrixT >
DistributedMatrixoperator= (const MatrixT &matrix)
 
template<typename MatrixT >
DistributedMatrix< Matrix > & operator= (const MatrixT &matrix)
 
template<typename Fetch , typename Reduce , typename Keep , typename FetchReal >
void reduceAllRows (Fetch &fetch, const Reduce &reduce, Keep &keep, const FetchReal &identity)
 
template<typename Fetch , typename Reduce , typename Keep , typename FetchReal >
void reduceAllRows (Fetch &fetch, const Reduce &reduce, Keep &keep, const FetchReal &identity) const
 
template<typename Fetch , typename Reduce , typename Keep , typename FetchReal >
void reduceRows (IndexType begin, IndexType end, Fetch &fetch, const Reduce &reduce, Keep &keep, const FetchReal &identity)
 
template<typename Fetch , typename Reduce , typename Keep , typename FetchReal >
void reduceRows (IndexType begin, IndexType end, Fetch &fetch, const Reduce &reduce, Keep &keep, const FetchReal &identity) const
 
void reset ()
 
void setDistribution (LocalRangeType localRowRange, IndexType rows, IndexType columns, const MPI::Comm &communicator)
 
void setElement (IndexType row, IndexType column, RealType value)
 
template<typename MatrixT >
void setLike (const MatrixT &matrix)
 
template<typename RowCapacitiesVector >
void setRowCapacities (const RowCapacitiesVector &rowCapacities)
 
void updateVectorProductCommunicationPattern ()
 
template<typename InVector , typename OutVector >
std::enable_if_t< ! HasGetCommunicatorMethod< InVector >::value > vectorProduct (const InVector &inVector, OutVector &outVector) const
 
template<typename InVector , typename OutVector >
std::enable_if_t< HasGetCommunicatorMethod< InVector >::value > vectorProduct (const InVector &inVector, OutVector &outVector) const
 

Protected Attributes

MPI::Comm communicator = MPI_COMM_NULL
 
Matrix localMatrix
 
LocalRangeType localRowRange
 
IndexType rows = 0
 

The documentation for this class was generated from the following files: