Template Numerical Library version\ main:eacc201d
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 RowsCapacitiesType = 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
 
MatrixgetLocalMatrix ()
 
const MatrixgetLocalMatrix () 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<!HasGetCommunicatorMethod< InVector >::value >::type vectorProduct (const InVector &inVector, OutVector &outVector) const
 
template<typename InVector , typename OutVector >
std::enable_if< HasGetCommunicatorMethod< InVector >::value >::type 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: