COMBINATORIAL_BLAS 1.6
 
Loading...
Searching...
No Matches
combblas::SpParMat< IT, NT, DER > Class Template Reference

#include <SpParMat.h>

Classes

class  ScalarReadSaveHandler
 

Public Types

typedef DER::LocalIT LocalIT
 
typedef DER::LocalNT LocalNT
 
typedef IT GlobalIT
 
typedef NT GlobalNT
 
typedef DER::LocalIT LocalIT
 
typedef DER::LocalNT LocalNT
 
typedef IT GlobalIT
 
typedef NT GlobalNT
 
typedef DER::LocalIT LocalIT
 
typedef DER::LocalNT LocalNT
 
typedef IT GlobalIT
 
typedef NT GlobalNT
 

Public Member Functions

 SpParMat ()
 Deprecated. Don't call the default constructor.
 
 SpParMat (MPI_Comm world)
 
 SpParMat (std::shared_ptr< CommGrid > grid)
 
 SpParMat (DER *myseq, std::shared_ptr< CommGrid > grid)
 
 SpParMat (std::ifstream &input, MPI_Comm &world)
 
 SpParMat (DER *myseq, MPI_Comm &world)
 
template<class DELIT >
 SpParMat (const DistEdgeList< DELIT > &rhs, bool removeloops=true)
 
 SpParMat (const SpParMat< IT, NT, DER > &rhs)
 
 SpParMat (IT total_m, IT total_n, const FullyDistVec< IT, IT > &, const FullyDistVec< IT, IT > &, const FullyDistVec< IT, NT > &, bool SumDuplicates=false)
 All vectors are zero-based indexed (as usual)
 
 SpParMat (IT total_m, IT total_n, const FullyDistVec< IT, IT > &, const FullyDistVec< IT, IT > &, const NT &, bool SumDuplicates=false)
 
SpParMat< IT, NT, DER > & operator= (const SpParMat< IT, NT, DER > &rhs)
 
SpParMat< IT, NT, DER > & operator+= (const SpParMat< IT, NT, DER > &rhs)
 
 ~SpParMat ()
 
template<typename SR >
void Square ()
 
float LoadImbalance () const
 
void Transpose ()
 
void FreeMemory ()
 
void EWiseMult (const SpParMat< IT, NT, DER > &rhs, bool exclude)
 
void SetDifference (const SpParMat< IT, NT, DER > &rhs)
 
void EWiseScale (const DenseParMat< IT, NT > &rhs)
 
void Find (FullyDistVec< IT, IT > &, FullyDistVec< IT, IT > &, FullyDistVec< IT, NT > &) const
 
void Find (FullyDistVec< IT, IT > &, FullyDistVec< IT, IT > &) const
 
DER InducedSubgraphs2Procs (const FullyDistVec< IT, IT > &Assignments, std::vector< IT > &LocalIdxs) const
 
template<typename _BinaryOperation >
void DimApply (Dim dim, const FullyDistVec< IT, NT > &v, _BinaryOperation __binary_op)
 
template<typename _BinaryOperation , typename _UnaryOperation >
FullyDistVec< IT, NTReduce (Dim dim, _BinaryOperation __binary_op, NT id, _UnaryOperation __unary_op) const
 
template<typename _BinaryOperation >
FullyDistVec< IT, NTReduce (Dim dim, _BinaryOperation __binary_op, NT id) const
 
template<typename VT , typename GIT , typename _BinaryOperation , typename _UnaryOperation >
void Reduce (FullyDistVec< GIT, VT > &rvec, Dim dim, _BinaryOperation __binary_op, VT id, _UnaryOperation __unary_op) const
 
template<typename VT , typename GIT , typename _BinaryOperation >
void Reduce (FullyDistVec< GIT, VT > &rvec, Dim dim, _BinaryOperation __binary_op, VT id) const
 
template<typename VT , typename GIT >
bool Kselect (FullyDistVec< GIT, VT > &rvec, IT k_limit, int kselectVersion) const
 
template<typename VT , typename GIT >
bool Kselect (FullyDistSpVec< GIT, VT > &kth, IT k_limit, int kselectVersion) const
 
template<typename VT , typename GIT , typename _UnaryOperation >
bool Kselect1 (FullyDistVec< GIT, VT > &rvec, IT k_limit, _UnaryOperation __unary_op) const
 
template<typename VT , typename GIT , typename _UnaryOperation >
bool Kselect1 (FullyDistSpVec< GIT, VT > &rvec, IT k_limit, _UnaryOperation __unary_op) const
 
template<typename VT , typename GIT >
bool Kselect1 (FullyDistVec< GIT, VT > &rvec, IT k_limit) const
 
template<typename VT , typename GIT >
bool Kselect2 (FullyDistVec< GIT, VT > &rvec, IT k_limit) const
 
IT Bandwidth () const
 
IT Profile () const
 
template<typename VT , typename GIT , typename _BinaryOperation >
void MaskedReduce (FullyDistVec< GIT, VT > &rvec, FullyDistSpVec< GIT, VT > &mask, Dim dim, _BinaryOperation __binary_op, VT id, bool exclude=false) const
 
template<typename VT , typename GIT , typename _BinaryOperation , typename _UnaryOperation >
void MaskedReduce (FullyDistVec< GIT, VT > &rvec, FullyDistSpVec< GIT, VT > &mask, Dim dim, _BinaryOperation __binary_op, VT id, _UnaryOperation __unary_op, bool exclude=false) const
 
template<typename _UnaryOperation >
void Apply (_UnaryOperation __unary_op)
 
IT RemoveLoops ()
 
void AddLoops (NT loopval, bool replaceExisting=false)
 
void AddLoops (FullyDistVec< IT, NT > loopvals, bool replaceExisting=false)
 
template<typename LIT , typename OT >
void OptimizeForGraph500 (OptBuf< LIT, OT > &optbuf)
 
void ActivateThreading (int numsplits)
 
template<typename _UnaryOperation >
SpParMat< IT, NT, DERPruneI (_UnaryOperation __unary_op, bool inPlace=true)
 
template<typename _UnaryOperation >
SpParMat< IT, NT, DERPrune (_UnaryOperation __unary_op, bool inPlace=true)
 
template<typename _BinaryOperation >
SpParMat< IT, NT, DERPruneColumn (const FullyDistVec< IT, NT > &pvals, _BinaryOperation __binary_op, bool inPlace=true)
 Prune every column of a sparse matrix based on pvals.
 
template<typename _BinaryOperation >
SpParMat< IT, NT, DERPruneColumn (const FullyDistSpVec< IT, NT > &pvals, _BinaryOperation __binary_op, bool inPlace=true)
 
template<typename IRRELEVANT_NT >
void PruneColumnByIndex (const FullyDistSpVec< IT, IRRELEVANT_NT > &ci)
 
template<typename _BinaryOperation >
void UpdateDense (DenseParMat< IT, NT > &rhs, _BinaryOperation __binary_op) const
 
void Dump (std::string filename) const
 
void PrintInfo () const
 
template<typename NNT , typename NDER >
 operator SpParMat< IT, NNT, NDER > () const
 Type conversion operator.
 
template<typename NIT , typename NNT , typename NDER >
 operator SpParMat< NIT, NNT, NDER > () const
 Type conversion operator (for indices as well)
 
IT getnrow () const
 
IT getncol () const
 
IT getnnz () const
 
template<typename LIT >
int Owner (IT total_m, IT total_n, IT grow, IT gcol, LIT &lrow, LIT &lcol) const
 
SpParMat< IT, NT, DERSubsRefCol (const std::vector< IT > &ci) const
 Column indexing with special parallel semantics.
 
template<typename SelectFirstSR , typename SelectSecondSR >
SpParMat< IT, NT, DERSubsRef_SR (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, bool inplace=false)
 General indexing with serial semantics.
 
template<typename SelectFirstSR , typename SelectSecondSR >
SpParMat< IT, NT, DERSubsRef_SR (const FullyDistVec< IT, IT > &v, Dim dim, bool inplace=false)
 
SpParMat< IT, NT, DERoperator() (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, bool inplace=false)
 
SpParMat< IT, NT, DERoperator() (const FullyDistVec< IT, IT > &v, Dim dim, bool inplace=false)
 
void Prune (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci)
 prune all entries whose row indices are in ri AND column indices are in ci
 
void PruneFull (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci)
 prune all entries whose row indices are in ri OR column indices are in ci
 
void SpAsgn (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, SpParMat< IT, NT, DER > &B)
 
bool operator== (const SpParMat< IT, NT, DER > &rhs) const
 
template<typename _BinaryOperation >
void ParallelReadMM (const std::string &filename, bool onebased, _BinaryOperation BinOp)
 
template<class HANDLER >
void ParallelWriteMM (const std::string &filename, bool onebased, HANDLER handler)
 
void ParallelWriteMM (const std::string &filename, bool onebased)
 
void ParallelBinaryWrite (std::string filename) const
 
template<typename _BinaryOperation >
FullyDistVec< IT, std::array< char, MAXVERTNAME > > ReadGeneralizedTuples (const std::string &, _BinaryOperation)
 
template<class HANDLER >
void ReadDistribute (const std::string &filename, int master, bool nonum, HANDLER handler, bool transpose=false, bool pario=false)
 
void ReadDistribute (const std::string &filename, int master, bool nonum=false, bool pario=false)
 
template<class HANDLER >
void SaveGathered (std::string filename, HANDLER handler, bool transpose=false) const
 
void SaveGathered (std::string filename) const
 
std::ofstream & put (std::ofstream &outfile) const
 
std::shared_ptr< CommGridgetcommgrid () const
 
DER::LocalIT getlocalrows () const
 
DER::LocalIT getlocalcols () const
 
DER::LocalIT getlocalnnz () const
 
DERseq () const
 
DERseqptr () const
 
template<typename _BinaryOperation , typename LIT >
void SparseCommon (std::vector< std::vector< std::tuple< LIT, LIT, NT > > > &data, LIT locsize, IT total_m, IT total_n, _BinaryOperation BinOp)
 
std::vector< std::vector< SpParMat< IT, NT, DER > > > BlockSplit (int br, int bc)
 
 SpParMat ()
 
 SpParMat (MPI_Comm world)
 
 SpParMat (std::shared_ptr< CommGrid > grid)
 
 SpParMat (DER *myseq, std::shared_ptr< CommGrid > grid)
 
 SpParMat (std::ifstream &input, MPI_Comm &world)
 
 SpParMat (DER *myseq, MPI_Comm &world)
 
template<class DELIT >
 SpParMat (const DistEdgeList< DELIT > &rhs, bool removeloops=true)
 
 SpParMat (const SpParMat< IT, NT, DER > &rhs)
 
 SpParMat (IT total_m, IT total_n, const FullyDistVec< IT, IT > &, const FullyDistVec< IT, IT > &, const FullyDistVec< IT, NT > &, bool SumDuplicates=false)
 
 SpParMat (IT total_m, IT total_n, const FullyDistVec< IT, IT > &, const FullyDistVec< IT, IT > &, const NT &, bool SumDuplicates=false)
 
SpParMat< IT, NT, DER > & operator= (const SpParMat< IT, NT, DER > &rhs)
 
SpParMat< IT, NT, DER > & operator+= (const SpParMat< IT, NT, DER > &rhs)
 
 ~SpParMat ()
 
template<typename SR >
void Square ()
 
float LoadImbalance () const
 
void Transpose ()
 
void FreeMemory ()
 
void EWiseMult (const SpParMat< IT, NT, DER > &rhs, bool exclude)
 
void SetDifference (const SpParMat< IT, NT, DER > &rhs)
 
void EWiseScale (const DenseParMat< IT, NT > &rhs)
 
void Find (FullyDistVec< IT, IT > &, FullyDistVec< IT, IT > &, FullyDistVec< IT, NT > &) const
 
void Find (FullyDistVec< IT, IT > &, FullyDistVec< IT, IT > &) const
 
DER InducedSubgraphs2Procs (const FullyDistVec< IT, IT > &Assignments, std::vector< IT > &LocalIdxs) const
 
template<typename _BinaryOperation >
void DimApply (Dim dim, const FullyDistVec< IT, NT > &v, _BinaryOperation __binary_op)
 
template<typename _BinaryOperation , typename _UnaryOperation >
FullyDistVec< IT, NTReduce (Dim dim, _BinaryOperation __binary_op, NT id, _UnaryOperation __unary_op) const
 
template<typename _BinaryOperation >
FullyDistVec< IT, NTReduce (Dim dim, _BinaryOperation __binary_op, NT id) const
 
template<typename VT , typename GIT , typename _BinaryOperation , typename _UnaryOperation >
void Reduce (FullyDistVec< GIT, VT > &rvec, Dim dim, _BinaryOperation __binary_op, VT id, _UnaryOperation __unary_op) const
 
template<typename VT , typename GIT , typename _BinaryOperation >
void Reduce (FullyDistVec< GIT, VT > &rvec, Dim dim, _BinaryOperation __binary_op, VT id) const
 
template<typename VT , typename GIT >
bool Kselect (FullyDistVec< GIT, VT > &rvec, IT k_limit, int kselectVersion) const
 
template<typename VT , typename GIT >
bool Kselect (FullyDistSpVec< GIT, VT > &kth, IT k_limit, int kselectVersion) const
 
template<typename VT , typename GIT , typename _UnaryOperation >
bool Kselect1 (FullyDistVec< GIT, VT > &rvec, IT k_limit, _UnaryOperation __unary_op) const
 
template<typename VT , typename GIT , typename _UnaryOperation >
bool Kselect1 (FullyDistSpVec< GIT, VT > &rvec, IT k_limit, _UnaryOperation __unary_op) const
 
template<typename VT , typename GIT >
bool Kselect1 (FullyDistVec< GIT, VT > &rvec, IT k_limit) const
 
template<typename VT , typename GIT >
bool Kselect2 (FullyDistVec< GIT, VT > &rvec, IT k_limit) const
 
IT Bandwidth () const
 
IT Profile () const
 
template<typename VT , typename GIT , typename _BinaryOperation >
void MaskedReduce (FullyDistVec< GIT, VT > &rvec, FullyDistSpVec< GIT, VT > &mask, Dim dim, _BinaryOperation __binary_op, VT id, bool exclude=false) const
 
template<typename VT , typename GIT , typename _BinaryOperation , typename _UnaryOperation >
void MaskedReduce (FullyDistVec< GIT, VT > &rvec, FullyDistSpVec< GIT, VT > &mask, Dim dim, _BinaryOperation __binary_op, VT id, _UnaryOperation __unary_op, bool exclude=false) const
 
template<typename _UnaryOperation >
void Apply (_UnaryOperation __unary_op)
 
IT RemoveLoops ()
 
void AddLoops (NT loopval, bool replaceExisting=false)
 
void AddLoops (FullyDistVec< IT, NT > loopvals, bool replaceExisting=false)
 
template<typename LIT , typename OT >
void OptimizeForGraph500 (OptBuf< LIT, OT > &optbuf)
 
void ActivateThreading (int numsplits)
 
template<typename _UnaryOperation >
SpParMat< IT, NT, DERPruneI (_UnaryOperation __unary_op, bool inPlace=true)
 
template<typename _UnaryOperation >
SpParMat< IT, NT, DERPrune (_UnaryOperation __unary_op, bool inPlace=true)
 
template<typename _BinaryOperation >
SpParMat< IT, NT, DERPruneColumn (const FullyDistVec< IT, NT > &pvals, _BinaryOperation __binary_op, bool inPlace=true)
 
template<typename _BinaryOperation >
SpParMat< IT, NT, DERPruneColumn (const FullyDistSpVec< IT, NT > &pvals, _BinaryOperation __binary_op, bool inPlace=true)
 
template<typename IRRELEVANT_NT >
void PruneColumnByIndex (const FullyDistSpVec< IT, IRRELEVANT_NT > &ci)
 
template<typename _BinaryOperation >
void UpdateDense (DenseParMat< IT, NT > &rhs, _BinaryOperation __binary_op) const
 
void Dump (std::string filename) const
 
void PrintInfo () const
 
template<typename NNT , typename NDER >
 operator SpParMat< IT, NNT, NDER > () const
 Type conversion operator.
 
template<typename NIT , typename NNT , typename NDER >
 operator SpParMat< NIT, NNT, NDER > () const
 Type conversion operator (for indices as well)
 
IT getnrow () const
 
IT getncol () const
 
IT getnnz () const
 
template<typename LIT >
int Owner (IT total_m, IT total_n, IT grow, IT gcol, LIT &lrow, LIT &lcol) const
 
SpParMat< IT, NT, DERSubsRefCol (const std::vector< IT > &ci) const
 Column indexing with special parallel semantics.
 
template<typename SelectFirstSR , typename SelectSecondSR >
SpParMat< IT, NT, DERSubsRef_SR (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, bool inplace=false)
 General indexing with serial semantics.
 
template<typename SelectFirstSR , typename SelectSecondSR >
SpParMat< IT, NT, DERSubsRef_SR (const FullyDistVec< IT, IT > &v, Dim dim, bool inplace=false)
 
SpParMat< IT, NT, DERoperator() (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, bool inplace=false)
 
SpParMat< IT, NT, DERoperator() (const FullyDistVec< IT, IT > &v, Dim dim, bool inplace=false)
 
void Prune (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci)
 prune all entries whose row indices are in ri AND column indices are in ci
 
void PruneFull (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci)
 prune all entries whose row indices are in ri OR column indices are in ci
 
void SpAsgn (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, SpParMat< IT, NT, DER > &B)
 
bool operator== (const SpParMat< IT, NT, DER > &rhs) const
 
template<typename _BinaryOperation >
void ParallelReadMM (const std::string &filename, bool onebased, _BinaryOperation BinOp)
 
template<class HANDLER >
void ParallelWriteMM (const std::string &filename, bool onebased, HANDLER handler)
 
void ParallelWriteMM (const std::string &filename, bool onebased)
 
void ParallelBinaryWrite (std::string filename) const
 
template<typename _BinaryOperation >
FullyDistVec< IT, std::array< char, MAXVERTNAME > > ReadGeneralizedTuples (const std::string &, _BinaryOperation)
 
template<class HANDLER >
void ReadDistribute (const std::string &filename, int master, bool nonum, HANDLER handler, bool transpose=false, bool pario=false)
 
void ReadDistribute (const std::string &filename, int master, bool nonum=false, bool pario=false)
 
template<class HANDLER >
void SaveGathered (std::string filename, HANDLER handler, bool transpose=false) const
 
void SaveGathered (std::string filename) const
 
std::ofstream & put (std::ofstream &outfile) const
 
std::shared_ptr< CommGridgetcommgrid () const
 
DER::LocalIT getlocalrows () const
 
DER::LocalIT getlocalcols () const
 
DER::LocalIT getlocalnnz () const
 
DERseq () const
 
DERseqptr () const
 
template<typename _BinaryOperation , typename LIT >
void SparseCommon (std::vector< std::vector< std::tuple< LIT, LIT, NT > > > &data, LIT locsize, IT total_m, IT total_n, _BinaryOperation BinOp)
 
std::vector< std::vector< SpParMat< IT, NT, DER > > > BlockSplit (int br, int bc)
 
 SpParMat ()
 
 SpParMat (MPI_Comm world)
 
 SpParMat (std::shared_ptr< CommGrid > grid)
 
 SpParMat (DER *myseq, std::shared_ptr< CommGrid > grid)
 
 SpParMat (std::ifstream &input, MPI_Comm &world)
 
 SpParMat (DER *myseq, MPI_Comm &world)
 
template<class DELIT >
 SpParMat (const DistEdgeList< DELIT > &rhs, bool removeloops=true)
 
 SpParMat (const SpParMat< IT, NT, DER > &rhs)
 
 SpParMat (IT total_m, IT total_n, const FullyDistVec< IT, IT > &, const FullyDistVec< IT, IT > &, const FullyDistVec< IT, NT > &, bool SumDuplicates=false)
 
 SpParMat (IT total_m, IT total_n, const FullyDistVec< IT, IT > &, const FullyDistVec< IT, IT > &, const NT &, bool SumDuplicates=false)
 
SpParMat< IT, NT, DER > & operator= (const SpParMat< IT, NT, DER > &rhs)
 
SpParMat< IT, NT, DER > & operator+= (const SpParMat< IT, NT, DER > &rhs)
 
 ~SpParMat ()
 
template<typename SR >
void Square ()
 
float LoadImbalance () const
 
void Transpose ()
 
void FreeMemory ()
 
void EWiseMult (const SpParMat< IT, NT, DER > &rhs, bool exclude)
 
void SetDifference (const SpParMat< IT, NT, DER > &rhs)
 
void EWiseScale (const DenseParMat< IT, NT > &rhs)
 
void Find (FullyDistVec< IT, IT > &, FullyDistVec< IT, IT > &, FullyDistVec< IT, NT > &) const
 
void Find (FullyDistVec< IT, IT > &, FullyDistVec< IT, IT > &) const
 
DER InducedSubgraphs2Procs (const FullyDistVec< IT, IT > &Assignments, std::vector< IT > &LocalIdxs) const
 
template<typename _BinaryOperation >
void DimApply (Dim dim, const FullyDistVec< IT, NT > &v, _BinaryOperation __binary_op)
 
template<typename _BinaryOperation , typename _UnaryOperation >
FullyDistVec< IT, NTReduce (Dim dim, _BinaryOperation __binary_op, NT id, _UnaryOperation __unary_op) const
 
template<typename _BinaryOperation >
FullyDistVec< IT, NTReduce (Dim dim, _BinaryOperation __binary_op, NT id) const
 
template<typename VT , typename GIT , typename _BinaryOperation , typename _UnaryOperation >
void Reduce (FullyDistVec< GIT, VT > &rvec, Dim dim, _BinaryOperation __binary_op, VT id, _UnaryOperation __unary_op) const
 
template<typename VT , typename GIT , typename _BinaryOperation >
void Reduce (FullyDistVec< GIT, VT > &rvec, Dim dim, _BinaryOperation __binary_op, VT id) const
 
template<typename VT , typename GIT >
bool Kselect (FullyDistVec< GIT, VT > &rvec, IT k_limit, int kselectVersion) const
 
template<typename VT , typename GIT >
bool Kselect (FullyDistSpVec< GIT, VT > &kth, IT k_limit, int kselectVersion) const
 
template<typename VT , typename GIT , typename _UnaryOperation >
bool Kselect1 (FullyDistVec< GIT, VT > &rvec, IT k_limit, _UnaryOperation __unary_op) const
 
template<typename VT , typename GIT , typename _UnaryOperation >
bool Kselect1 (FullyDistSpVec< GIT, VT > &rvec, IT k_limit, _UnaryOperation __unary_op) const
 
template<typename VT , typename GIT >
bool Kselect1 (FullyDistVec< GIT, VT > &rvec, IT k_limit) const
 
template<typename VT , typename GIT >
bool Kselect2 (FullyDistVec< GIT, VT > &rvec, IT k_limit) const
 
IT Bandwidth () const
 
IT Profile () const
 
template<typename VT , typename GIT , typename _BinaryOperation >
void MaskedReduce (FullyDistVec< GIT, VT > &rvec, FullyDistSpVec< GIT, VT > &mask, Dim dim, _BinaryOperation __binary_op, VT id, bool exclude=false) const
 
template<typename VT , typename GIT , typename _BinaryOperation , typename _UnaryOperation >
void MaskedReduce (FullyDistVec< GIT, VT > &rvec, FullyDistSpVec< GIT, VT > &mask, Dim dim, _BinaryOperation __binary_op, VT id, _UnaryOperation __unary_op, bool exclude=false) const
 
template<typename _UnaryOperation >
void Apply (_UnaryOperation __unary_op)
 
IT RemoveLoops ()
 
void AddLoops (NT loopval, bool replaceExisting=false)
 
void AddLoops (FullyDistVec< IT, NT > loopvals, bool replaceExisting=false)
 
template<typename LIT , typename OT >
void OptimizeForGraph500 (OptBuf< LIT, OT > &optbuf)
 
void ActivateThreading (int numsplits)
 
template<typename _UnaryOperation >
SpParMat< IT, NT, DERPruneI (_UnaryOperation __unary_op, bool inPlace=true)
 
template<typename _UnaryOperation >
SpParMat< IT, NT, DERPrune (_UnaryOperation __unary_op, bool inPlace=true)
 
template<typename _BinaryOperation >
SpParMat< IT, NT, DERPruneColumn (const FullyDistVec< IT, NT > &pvals, _BinaryOperation __binary_op, bool inPlace=true)
 
template<typename _BinaryOperation >
SpParMat< IT, NT, DERPruneColumn (const FullyDistSpVec< IT, NT > &pvals, _BinaryOperation __binary_op, bool inPlace=true)
 
template<typename IRRELEVANT_NT >
void PruneColumnByIndex (const FullyDistSpVec< IT, IRRELEVANT_NT > &ci)
 
template<typename _BinaryOperation >
void UpdateDense (DenseParMat< IT, NT > &rhs, _BinaryOperation __binary_op) const
 
void Dump (std::string filename) const
 
void PrintInfo () const
 
template<typename NNT , typename NDER >
 operator SpParMat< IT, NNT, NDER > () const
 Type conversion operator.
 
template<typename NIT , typename NNT , typename NDER >
 operator SpParMat< NIT, NNT, NDER > () const
 Type conversion operator (for indices as well)
 
IT getnrow () const
 
IT getncol () const
 
IT getnnz () const
 
template<typename LIT >
int Owner (IT total_m, IT total_n, IT grow, IT gcol, LIT &lrow, LIT &lcol) const
 
SpParMat< IT, NT, DERSubsRefCol (const std::vector< IT > &ci) const
 Column indexing with special parallel semantics.
 
template<typename SelectFirstSR , typename SelectSecondSR >
SpParMat< IT, NT, DERSubsRef_SR (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, bool inplace=false)
 General indexing with serial semantics.
 
template<typename SelectFirstSR , typename SelectSecondSR >
SpParMat< IT, NT, DERSubsRef_SR (const FullyDistVec< IT, IT > &v, Dim dim, bool inplace=false)
 
SpParMat< IT, NT, DERoperator() (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, bool inplace=false)
 
SpParMat< IT, NT, DERoperator() (const FullyDistVec< IT, IT > &v, Dim dim, bool inplace=false)
 
void Prune (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci)
 prune all entries whose row indices are in ri AND column indices are in ci
 
void PruneFull (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci)
 prune all entries whose row indices are in ri OR column indices are in ci
 
void SpAsgn (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, SpParMat< IT, NT, DER > &B)
 
bool operator== (const SpParMat< IT, NT, DER > &rhs) const
 
template<typename _BinaryOperation >
void ParallelReadMM (const std::string &filename, bool onebased, _BinaryOperation BinOp)
 
template<class HANDLER >
void ParallelWriteMM (const std::string &filename, bool onebased, HANDLER handler)
 
void ParallelWriteMM (const std::string &filename, bool onebased)
 
void ParallelBinaryWrite (std::string filename) const
 
template<typename _BinaryOperation >
FullyDistVec< IT, std::array< char, MAXVERTNAME > > ReadGeneralizedTuples (const std::string &, _BinaryOperation)
 
template<class HANDLER >
void ReadDistribute (const std::string &filename, int master, bool nonum, HANDLER handler, bool transpose=false, bool pario=false)
 
void ReadDistribute (const std::string &filename, int master, bool nonum=false, bool pario=false)
 
template<class HANDLER >
void SaveGathered (std::string filename, HANDLER handler, bool transpose=false) const
 
void SaveGathered (std::string filename) const
 
std::ofstream & put (std::ofstream &outfile) const
 
std::shared_ptr< CommGridgetcommgrid () const
 
DER::LocalIT getlocalrows () const
 
DER::LocalIT getlocalcols () const
 
DER::LocalIT getlocalnnz () const
 
DERseq () const
 
DERseqptr () const
 
template<typename _BinaryOperation , typename LIT >
void SparseCommon (std::vector< std::vector< std::tuple< LIT, LIT, NT > > > &data, LIT locsize, IT total_m, IT total_n, _BinaryOperation BinOp)
 
std::vector< std::vector< SpParMat< IT, NT, DER > > > BlockSplit (int br, int bc)
 

Friends

template<class IU , class NU >
class DenseParMat
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
IU EstimateFLOP (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 Friend declarations.
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_DoubleBuff (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_Synch (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_Overlap (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB >
int64_t EstPerProcessNnzSUMMA (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, bool hashEstimate)
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_ActiveTarget (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B)
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_PassiveTarget (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B)
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_Fence (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_SUMMA (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB >
SpParMat< IU, NUO, UDEROMemEfficientSpGEMM (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, int phases, NUO hardThreshold, IU selectNum, IU recoverNum, NUO recoverPct, int kselectVersion, int computationKernel, int64_t perProcessMem)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB >
int CalculateNumberOfPhases (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, NUO hardThreshold, IU selectNum, IU recoverNum, NUO recoverPct, int kselectVersion, int64_t perProcessMem)
 
template<typename SR , typename IU , typename NUM , typename NUV , typename UDER >
FullyDistSpVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, NUV > &x)
 
template<typename SR , typename IU , typename NUM , typename NUV , typename UDER >
FullyDistVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistVec< IU, NUV > &x)
 
template<typename SR , typename IU , typename NUM , typename UDER >
FullyDistSpVec< IU, typename promote_trait< NUM, IU >::T_promote > SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IU > &x, bool indexisvalue)
 
template<typename SR , typename IVT , typename OVT , typename IU , typename NUM , typename UDER >
void SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IVT > &x, FullyDistSpVec< IU, OVT > &y, bool indexisvalue)
 
template<typename SR , typename IVT , typename OVT , typename IU , typename NUM , typename UDER >
void SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IVT > &x, FullyDistSpVec< IU, OVT > &y, bool indexisvalue, OptBuf< int32_t, OVT > &optbuf)
 
template<typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > EWiseMult (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B, bool exclude)
 
template<typename RETT , typename RETDER , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB , typename _BinaryOperation >
SpParMat< IU, RETT, RETDEREWiseApply (const SpParMat< IU, NU1, UDERA > &A, const SpParMat< IU, NU2, UDERB > &B, _BinaryOperation __binary_op, bool notB, const NU2 &defaultBVal)
 
template<typename RETT , typename RETDER , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB , typename _BinaryOperation , typename _BinaryPredicate >
SpParMat< IU, RETT, RETDEREWiseApply (const SpParMat< IU, NU1, UDERA > &A, const SpParMat< IU, NU2, UDERB > &B, _BinaryOperation __binary_op, _BinaryPredicate do_op, bool allowANulls, bool allowBNulls, const NU1 &ANullVal, const NU2 &BNullVal, const bool allowIntersect, const bool useExtendedBinOp)
 
template<typename SR , typename IVT , typename OVT , typename IU , typename NUM , typename UDER >
void LocalSpMV (const SpParMat< IU, NUM, UDER > &A, int rowneighs, OptBuf< int32_t, OVT > &optbuf, int32_t *&indacc, IVT *&numacc, int32_t *&sendindbuf, OVT *&sendnumbuf, int *&sdispls, int *sendcnt, int accnz, bool indexisvalue, PreAllocatedSPA< OVT > &SPA)
 
template<typename VT , typename IU , typename UDER >
void LocalSpMV (const SpParMat< IU, bool, UDER > &A, int rowneighs, OptBuf< int32_t, VT > &optbuf, int32_t *&indacc, VT *&numacc, int *sendcnt, int accnz)
 
template<typename IU , typename NU , typename UDER >
std::ofstream & operator<< (std::ofstream &outfile, const SpParMat< IU, NU, UDER > &s)
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
IU EstimateFLOP (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 Friend declarations.
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_DoubleBuff (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_Synch (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_Overlap (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB >
int64_t EstPerProcessNnzSUMMA (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, bool hashEstimate)
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_ActiveTarget (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B)
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_PassiveTarget (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B)
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_Fence (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_SUMMA (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB >
SpParMat< IU, NUO, UDEROMemEfficientSpGEMM (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, int phases, NUO hardThreshold, IU selectNum, IU recoverNum, NUO recoverPct, int kselectVersion, int computationKernel, int64_t perProcessMem)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB >
int CalculateNumberOfPhases (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, NUO hardThreshold, IU selectNum, IU recoverNum, NUO recoverPct, int kselectVersion, int64_t perProcessMem)
 
template<typename SR , typename IU , typename NUM , typename NUV , typename UDER >
FullyDistSpVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, NUV > &x)
 
template<typename SR , typename IU , typename NUM , typename NUV , typename UDER >
FullyDistVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistVec< IU, NUV > &x)
 
template<typename SR , typename IU , typename NUM , typename UDER >
FullyDistSpVec< IU, typename promote_trait< NUM, IU >::T_promote > SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IU > &x, bool indexisvalue)
 
template<typename SR , typename IVT , typename OVT , typename IU , typename NUM , typename UDER >
void SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IVT > &x, FullyDistSpVec< IU, OVT > &y, bool indexisvalue)
 
template<typename SR , typename IVT , typename OVT , typename IU , typename NUM , typename UDER >
void SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IVT > &x, FullyDistSpVec< IU, OVT > &y, bool indexisvalue, OptBuf< int32_t, OVT > &optbuf)
 
template<typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > EWiseMult (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B, bool exclude)
 
template<typename RETT , typename RETDER , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB , typename _BinaryOperation >
SpParMat< IU, RETT, RETDEREWiseApply (const SpParMat< IU, NU1, UDERA > &A, const SpParMat< IU, NU2, UDERB > &B, _BinaryOperation __binary_op, bool notB, const NU2 &defaultBVal)
 
template<typename RETT , typename RETDER , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB , typename _BinaryOperation , typename _BinaryPredicate >
SpParMat< IU, RETT, RETDEREWiseApply (const SpParMat< IU, NU1, UDERA > &A, const SpParMat< IU, NU2, UDERB > &B, _BinaryOperation __binary_op, _BinaryPredicate do_op, bool allowANulls, bool allowBNulls, const NU1 &ANullVal, const NU2 &BNullVal, const bool allowIntersect, const bool useExtendedBinOp)
 
template<typename SR , typename IVT , typename OVT , typename IU , typename NUM , typename UDER >
void LocalSpMV (const SpParMat< IU, NUM, UDER > &A, int rowneighs, OptBuf< int32_t, OVT > &optbuf, int32_t *&indacc, IVT *&numacc, int32_t *&sendindbuf, OVT *&sendnumbuf, int *&sdispls, int *sendcnt, int accnz, bool indexisvalue, PreAllocatedSPA< OVT > &SPA)
 
template<typename VT , typename IU , typename UDER >
void LocalSpMV (const SpParMat< IU, bool, UDER > &A, int rowneighs, OptBuf< int32_t, VT > &optbuf, int32_t *&indacc, VT *&numacc, int *sendcnt, int accnz)
 
template<typename IU , typename NU , typename UDER >
std::ofstream & operator<< (std::ofstream &outfile, const SpParMat< IU, NU, UDER > &s)
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
IU EstimateFLOP (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 Friend declarations.
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_DoubleBuff (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_Synch (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_Overlap (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB >
int64_t EstPerProcessNnzSUMMA (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, bool hashEstimate)
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_ActiveTarget (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B)
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_PassiveTarget (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B)
 
template<typename SR , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_Fence (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, NUO, UDEROMult_AnXBn_SUMMA (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB >
SpParMat< IU, NUO, UDEROMemEfficientSpGEMM (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, int phases, NUO hardThreshold, IU selectNum, IU recoverNum, NUO recoverPct, int kselectVersion, int computationKernel, int64_t perProcessMem)
 
template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB >
int CalculateNumberOfPhases (SpParMat< IU, NU1, UDERA > &A, SpParMat< IU, NU2, UDERB > &B, NUO hardThreshold, IU selectNum, IU recoverNum, NUO recoverPct, int kselectVersion, int64_t perProcessMem)
 
template<typename SR , typename IU , typename NUM , typename NUV , typename UDER >
FullyDistSpVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, NUV > &x)
 
template<typename SR , typename IU , typename NUM , typename NUV , typename UDER >
FullyDistVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistVec< IU, NUV > &x)
 
template<typename SR , typename IU , typename NUM , typename UDER >
FullyDistSpVec< IU, typename promote_trait< NUM, IU >::T_promote > SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IU > &x, bool indexisvalue)
 
template<typename SR , typename IVT , typename OVT , typename IU , typename NUM , typename UDER >
void SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IVT > &x, FullyDistSpVec< IU, OVT > &y, bool indexisvalue)
 
template<typename SR , typename IVT , typename OVT , typename IU , typename NUM , typename UDER >
void SpMV (const SpParMat< IU, NUM, UDER > &A, const FullyDistSpVec< IU, IVT > &x, FullyDistSpVec< IU, OVT > &y, bool indexisvalue, OptBuf< int32_t, OVT > &optbuf)
 
template<typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > EWiseMult (const SpParMat< IU, NU1, UDER1 > &A, const SpParMat< IU, NU2, UDER2 > &B, bool exclude)
 
template<typename RETT , typename RETDER , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB , typename _BinaryOperation >
SpParMat< IU, RETT, RETDEREWiseApply (const SpParMat< IU, NU1, UDERA > &A, const SpParMat< IU, NU2, UDERB > &B, _BinaryOperation __binary_op, bool notB, const NU2 &defaultBVal)
 
template<typename RETT , typename RETDER , typename IU , typename NU1 , typename NU2 , typename UDERA , typename UDERB , typename _BinaryOperation , typename _BinaryPredicate >
SpParMat< IU, RETT, RETDEREWiseApply (const SpParMat< IU, NU1, UDERA > &A, const SpParMat< IU, NU2, UDERB > &B, _BinaryOperation __binary_op, _BinaryPredicate do_op, bool allowANulls, bool allowBNulls, const NU1 &ANullVal, const NU2 &BNullVal, const bool allowIntersect, const bool useExtendedBinOp)
 
template<typename SR , typename IVT , typename OVT , typename IU , typename NUM , typename UDER >
void LocalSpMV (const SpParMat< IU, NUM, UDER > &A, int rowneighs, OptBuf< int32_t, OVT > &optbuf, int32_t *&indacc, IVT *&numacc, int32_t *&sendindbuf, OVT *&sendnumbuf, int *&sdispls, int *sendcnt, int accnz, bool indexisvalue, PreAllocatedSPA< OVT > &SPA)
 
template<typename VT , typename IU , typename UDER >
void LocalSpMV (const SpParMat< IU, bool, UDER > &A, int rowneighs, OptBuf< int32_t, VT > &optbuf, int32_t *&indacc, VT *&numacc, int *sendcnt, int accnz)
 
template<typename IU , typename NU , typename UDER >
std::ofstream & operator<< (std::ofstream &outfile, const SpParMat< IU, NU, UDER > &s)
 
template<class IU , class NU >
class DenseParMat
 
template<class IU , class NU >
class DenseParMat
 

Detailed Description

template<class IT, class NT, class DER>
class combblas::SpParMat< IT, NT, DER >

Fundamental 2D distributed sparse matrix class The index type IT is encapsulated by the class in a way that it is only guarantee that the implementation will ensure the requested semantics. For instance, if IT=int64 then the implementation can still use 32 bit local indices but it should return correct 64-bit numbers in its functions. In other words, DER can be SpDCCols<int32_t, double> while IT=int64_t

Definition at line 68 of file SpParMat.h.

Member Typedef Documentation

◆ GlobalIT [1/3]

template<class IT , class NT , class DER >
typedef IT combblas::SpParMat< IT, NT, DER >::GlobalIT

Definition at line 73 of file SpParMat.h.

◆ GlobalIT [2/3]

template<class IT , class NT , class DER >
typedef IT combblas::SpParMat< IT, NT, DER >::GlobalIT

Definition at line 73 of file SpParMat.h.

◆ GlobalIT [3/3]

template<class IT , class NT , class DER >
typedef IT combblas::SpParMat< IT, NT, DER >::GlobalIT

Definition at line 73 of file SpParMat.h.

◆ GlobalNT [1/3]

template<class IT , class NT , class DER >
typedef NT combblas::SpParMat< IT, NT, DER >::GlobalNT

Definition at line 74 of file SpParMat.h.

◆ GlobalNT [2/3]

template<class IT , class NT , class DER >
typedef NT combblas::SpParMat< IT, NT, DER >::GlobalNT

Definition at line 74 of file SpParMat.h.

◆ GlobalNT [3/3]

template<class IT , class NT , class DER >
typedef NT combblas::SpParMat< IT, NT, DER >::GlobalNT

Definition at line 74 of file SpParMat.h.

◆ LocalIT [1/3]

template<class IT , class NT , class DER >
typedef DER::LocalIT combblas::SpParMat< IT, NT, DER >::LocalIT

Definition at line 71 of file SpParMat.h.

◆ LocalIT [2/3]

template<class IT , class NT , class DER >
typedef DER::LocalIT combblas::SpParMat< IT, NT, DER >::LocalIT

Definition at line 71 of file SpParMat.h.

◆ LocalIT [3/3]

template<class IT , class NT , class DER >
typedef DER::LocalIT combblas::SpParMat< IT, NT, DER >::LocalIT

Definition at line 71 of file SpParMat.h.

◆ LocalNT [1/3]

template<class IT , class NT , class DER >
typedef DER::LocalNT combblas::SpParMat< IT, NT, DER >::LocalNT

Definition at line 72 of file SpParMat.h.

◆ LocalNT [2/3]

template<class IT , class NT , class DER >
typedef DER::LocalNT combblas::SpParMat< IT, NT, DER >::LocalNT

Definition at line 72 of file SpParMat.h.

◆ LocalNT [3/3]

template<class IT , class NT , class DER >
typedef DER::LocalNT combblas::SpParMat< IT, NT, DER >::LocalNT

Definition at line 72 of file SpParMat.h.

Constructor & Destructor Documentation

◆ SpParMat() [1/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( )

Deprecated. Don't call the default constructor.

Definition at line 89 of file SpParMat.cpp.

◆ SpParMat() [2/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( MPI_Comm  world)

If there is a single file read by the master process only, use this and then call ReadDistribute()

Definition at line 101 of file SpParMat.cpp.

◆ SpParMat() [3/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( std::shared_ptr< CommGrid grid)

Definition at line 80 of file SpParMat.cpp.

◆ SpParMat() [4/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( DER myseq,
std::shared_ptr< CommGrid grid 
)

Definition at line 73 of file SpParMat.cpp.

◆ SpParMat() [5/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( std::ifstream &  input,
MPI_Comm world 
)

If every processor has a distinct triples file such as {A_0, A_1, A_2,... A_p} for p processors

Definition at line 53 of file SpParMat.cpp.

◆ SpParMat() [6/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( DER myseq,
MPI_Comm world 
)

Definition at line 66 of file SpParMat.cpp.

◆ SpParMat() [7/30]

template<class IT , class NT , class DER >
template<class DELIT >
combblas::SpParMat< IT, NT, DER >::SpParMat ( const DistEdgeList< DELIT > &  rhs,
bool  removeloops = true 
)

Definition at line 3140 of file SpParMat.cpp.

◆ SpParMat() [8/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( const SpParMat< IT, NT, DER > &  rhs)

Definition at line 716 of file SpParMat.cpp.

◆ SpParMat() [9/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( IT  total_m,
IT  total_n,
const FullyDistVec< IT, IT > &  distrows,
const FullyDistVec< IT, IT > &  distcols,
const FullyDistVec< IT, NT > &  distvals,
bool  SumDuplicates = false 
)

All vectors are zero-based indexed (as usual)

Definition at line 3066 of file SpParMat.cpp.

◆ SpParMat() [10/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( IT  total_m,
IT  total_n,
const FullyDistVec< IT, IT > &  distrows,
const FullyDistVec< IT, IT > &  distcols,
const NT val,
bool  SumDuplicates = false 
)

Definition at line 3104 of file SpParMat.cpp.

◆ ~SpParMat() [1/3]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::~SpParMat ( )

Definition at line 110 of file SpParMat.cpp.

◆ SpParMat() [11/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( )

◆ SpParMat() [12/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( MPI_Comm  world)

◆ SpParMat() [13/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( std::shared_ptr< CommGrid grid)

◆ SpParMat() [14/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( DER myseq,
std::shared_ptr< CommGrid grid 
)

◆ SpParMat() [15/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( std::ifstream &  input,
MPI_Comm world 
)

◆ SpParMat() [16/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( DER myseq,
MPI_Comm world 
)

◆ SpParMat() [17/30]

template<class IT , class NT , class DER >
template<class DELIT >
combblas::SpParMat< IT, NT, DER >::SpParMat ( const DistEdgeList< DELIT > &  rhs,
bool  removeloops = true 
)

◆ SpParMat() [18/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( const SpParMat< IT, NT, DER > &  rhs)

◆ SpParMat() [19/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( IT  total_m,
IT  total_n,
const FullyDistVec< IT, IT > &  ,
const FullyDistVec< IT, IT > &  ,
const FullyDistVec< IT, NT > &  ,
bool  SumDuplicates = false 
)

◆ SpParMat() [20/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( IT  total_m,
IT  total_n,
const FullyDistVec< IT, IT > &  ,
const FullyDistVec< IT, IT > &  ,
const NT ,
bool  SumDuplicates = false 
)

◆ ~SpParMat() [2/3]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::~SpParMat ( )

◆ SpParMat() [21/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( )

◆ SpParMat() [22/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( MPI_Comm  world)

◆ SpParMat() [23/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( std::shared_ptr< CommGrid grid)

◆ SpParMat() [24/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( DER myseq,
std::shared_ptr< CommGrid grid 
)

◆ SpParMat() [25/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( std::ifstream &  input,
MPI_Comm world 
)

◆ SpParMat() [26/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( DER myseq,
MPI_Comm world 
)

◆ SpParMat() [27/30]

template<class IT , class NT , class DER >
template<class DELIT >
combblas::SpParMat< IT, NT, DER >::SpParMat ( const DistEdgeList< DELIT > &  rhs,
bool  removeloops = true 
)

◆ SpParMat() [28/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( const SpParMat< IT, NT, DER > &  rhs)

◆ SpParMat() [29/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( IT  total_m,
IT  total_n,
const FullyDistVec< IT, IT > &  ,
const FullyDistVec< IT, IT > &  ,
const FullyDistVec< IT, NT > &  ,
bool  SumDuplicates = false 
)

◆ SpParMat() [30/30]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::SpParMat ( IT  total_m,
IT  total_n,
const FullyDistVec< IT, IT > &  ,
const FullyDistVec< IT, IT > &  ,
const NT ,
bool  SumDuplicates = false 
)

◆ ~SpParMat() [3/3]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::~SpParMat ( )

Member Function Documentation

◆ ActivateThreading() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ActivateThreading ( int  numsplits)

Definition at line 3444 of file SpParMat.cpp.

◆ ActivateThreading() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ActivateThreading ( int  numsplits)

◆ ActivateThreading() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ActivateThreading ( int  numsplits)

◆ AddLoops() [1/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::AddLoops ( FullyDistVec< IT, NT loopvals,
bool  replaceExisting = false 
)

Definition at line 3294 of file SpParMat.cpp.

◆ AddLoops() [2/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::AddLoops ( FullyDistVec< IT, NT loopvals,
bool  replaceExisting = false 
)

◆ AddLoops() [3/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::AddLoops ( FullyDistVec< IT, NT loopvals,
bool  replaceExisting = false 
)

◆ AddLoops() [4/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::AddLoops ( NT  loopval,
bool  replaceExisting = false 
)

Definition at line 3277 of file SpParMat.cpp.

◆ AddLoops() [5/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::AddLoops ( NT  loopval,
bool  replaceExisting = false 
)

◆ AddLoops() [6/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::AddLoops ( NT  loopval,
bool  replaceExisting = false 
)

◆ Apply() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Apply ( _UnaryOperation  __unary_op)
inline

Definition at line 148 of file SpParMat.h.

◆ Apply() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Apply ( _UnaryOperation  __unary_op)
inline

Definition at line 148 of file SpParMat.h.

◆ Apply() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Apply ( _UnaryOperation  __unary_op)
inline

Definition at line 148 of file SpParMat.h.

◆ Bandwidth() [1/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::Bandwidth ( ) const

Definition at line 1743 of file SpParMat.cpp.

◆ Bandwidth() [2/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::Bandwidth ( ) const

◆ Bandwidth() [3/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::Bandwidth ( ) const

◆ BlockSplit() [1/3]

template<class IT , class NT , class DER >
std::vector< std::vector< SpParMat< IT, NT, DER > > > combblas::SpParMat< IT, NT, DER >::BlockSplit ( int  br,
int  bc 
)

Definition at line 2974 of file SpParMat.cpp.

◆ BlockSplit() [2/3]

template<class IT , class NT , class DER >
std::vector< std::vector< SpParMat< IT, NT, DER > > > combblas::SpParMat< IT, NT, DER >::BlockSplit ( int  br,
int  bc 
)

◆ BlockSplit() [3/3]

template<class IT , class NT , class DER >
std::vector< std::vector< SpParMat< IT, NT, DER > > > combblas::SpParMat< IT, NT, DER >::BlockSplit ( int  br,
int  bc 
)

◆ DimApply() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::DimApply ( Dim  dim,
const FullyDistVec< IT, NT > &  v,
_BinaryOperation  __binary_op 
)

Definition at line 801 of file SpParMat.cpp.

◆ DimApply() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::DimApply ( Dim  dim,
const FullyDistVec< IT, NT > &  v,
_BinaryOperation  __binary_op 
)

◆ DimApply() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::DimApply ( Dim  dim,
const FullyDistVec< IT, NT > &  v,
_BinaryOperation  __binary_op 
)

◆ Dump() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Dump ( std::string  filename) const

Definition at line 562 of file SpParMat.cpp.

◆ Dump() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Dump ( std::string  filename) const

◆ Dump() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Dump ( std::string  filename) const

◆ EWiseMult() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::EWiseMult ( const SpParMat< IT, NT, DER > &  rhs,
bool  exclude 
)

Definition at line 2781 of file SpParMat.cpp.

◆ EWiseMult() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::EWiseMult ( const SpParMat< IT, NT, DER > &  rhs,
bool  exclude 
)

◆ EWiseMult() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::EWiseMult ( const SpParMat< IT, NT, DER > &  rhs,
bool  exclude 
)

◆ EWiseScale() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::EWiseScale ( const DenseParMat< IT, NT > &  rhs)

Definition at line 2817 of file SpParMat.cpp.

◆ EWiseScale() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::EWiseScale ( const DenseParMat< IT, NT > &  rhs)

◆ EWiseScale() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::EWiseScale ( const DenseParMat< IT, NT > &  rhs)

◆ Find() [1/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Find ( FullyDistVec< IT, IT > &  distrows,
FullyDistVec< IT, IT > &  distcols 
) const

The input parameters' identity (zero) elements as well as their communication grid is preserved while outputting

Definition at line 4838 of file SpParMat.cpp.

◆ Find() [2/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Find ( FullyDistVec< IT, IT > &  ,
FullyDistVec< IT, IT > &   
) const

◆ Find() [3/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Find ( FullyDistVec< IT, IT > &  ,
FullyDistVec< IT, IT > &   
) const

◆ Find() [4/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Find ( FullyDistVec< IT, IT > &  distrows,
FullyDistVec< IT, IT > &  distcols,
FullyDistVec< IT, NT > &  distvals 
) const

The input parameters' identity (zero) elements as well as their communication grid is preserved while outputting

Definition at line 4760 of file SpParMat.cpp.

◆ Find() [5/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Find ( FullyDistVec< IT, IT > &  ,
FullyDistVec< IT, IT > &  ,
FullyDistVec< IT, NT > &   
) const

◆ Find() [6/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Find ( FullyDistVec< IT, IT > &  ,
FullyDistVec< IT, IT > &  ,
FullyDistVec< IT, NT > &   
) const

◆ FreeMemory() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::FreeMemory ( )

Definition at line 116 of file SpParMat.cpp.

◆ FreeMemory() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::FreeMemory ( )

◆ FreeMemory() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::FreeMemory ( )

◆ getcommgrid() [1/3]

template<class IT , class NT , class DER >
std::shared_ptr< CommGrid > combblas::SpParMat< IT, NT, DER >::getcommgrid ( ) const
inline

Definition at line 302 of file SpParMat.h.

◆ getcommgrid() [2/3]

template<class IT , class NT , class DER >
std::shared_ptr< CommGrid > combblas::SpParMat< IT, NT, DER >::getcommgrid ( ) const
inline

Definition at line 302 of file SpParMat.h.

◆ getcommgrid() [3/3]

template<class IT , class NT , class DER >
std::shared_ptr< CommGrid > combblas::SpParMat< IT, NT, DER >::getcommgrid ( ) const
inline

Definition at line 302 of file SpParMat.h.

◆ getlocalcols() [1/3]

template<class IT , class NT , class DER >
DER::LocalIT combblas::SpParMat< IT, NT, DER >::getlocalcols ( ) const
inline

Definition at line 304 of file SpParMat.h.

◆ getlocalcols() [2/3]

template<class IT , class NT , class DER >
DER::LocalIT combblas::SpParMat< IT, NT, DER >::getlocalcols ( ) const
inline

Definition at line 304 of file SpParMat.h.

◆ getlocalcols() [3/3]

template<class IT , class NT , class DER >
DER::LocalIT combblas::SpParMat< IT, NT, DER >::getlocalcols ( ) const
inline

Definition at line 304 of file SpParMat.h.

◆ getlocalnnz() [1/3]

template<class IT , class NT , class DER >
DER::LocalIT combblas::SpParMat< IT, NT, DER >::getlocalnnz ( ) const
inline

Definition at line 305 of file SpParMat.h.

◆ getlocalnnz() [2/3]

template<class IT , class NT , class DER >
DER::LocalIT combblas::SpParMat< IT, NT, DER >::getlocalnnz ( ) const
inline

Definition at line 305 of file SpParMat.h.

◆ getlocalnnz() [3/3]

template<class IT , class NT , class DER >
DER::LocalIT combblas::SpParMat< IT, NT, DER >::getlocalnnz ( ) const
inline

Definition at line 305 of file SpParMat.h.

◆ getlocalrows() [1/3]

template<class IT , class NT , class DER >
DER::LocalIT combblas::SpParMat< IT, NT, DER >::getlocalrows ( ) const
inline

Definition at line 303 of file SpParMat.h.

◆ getlocalrows() [2/3]

template<class IT , class NT , class DER >
DER::LocalIT combblas::SpParMat< IT, NT, DER >::getlocalrows ( ) const
inline

Definition at line 303 of file SpParMat.h.

◆ getlocalrows() [3/3]

template<class IT , class NT , class DER >
DER::LocalIT combblas::SpParMat< IT, NT, DER >::getlocalrows ( ) const
inline

Definition at line 303 of file SpParMat.h.

◆ getncol() [1/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::getncol ( ) const

Definition at line 791 of file SpParMat.cpp.

◆ getncol() [2/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::getncol ( ) const

◆ getncol() [3/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::getncol ( ) const

◆ getnnz() [1/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::getnnz ( ) const

Definition at line 773 of file SpParMat.cpp.

◆ getnnz() [2/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::getnnz ( ) const

◆ getnnz() [3/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::getnnz ( ) const

◆ getnrow() [1/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::getnrow ( ) const

Definition at line 782 of file SpParMat.cpp.

◆ getnrow() [2/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::getnrow ( ) const

◆ getnrow() [3/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::getnrow ( ) const

◆ InducedSubgraphs2Procs() [1/3]

template<class IT , class NT , class DER >
DER combblas::SpParMat< IT, NT, DER >::InducedSubgraphs2Procs ( const FullyDistVec< IT, IT > &  Assignments,
std::vector< IT > &  LocalIdxs 
) const

Definition at line 4908 of file SpParMat.cpp.

◆ InducedSubgraphs2Procs() [2/3]

template<class IT , class NT , class DER >
DER combblas::SpParMat< IT, NT, DER >::InducedSubgraphs2Procs ( const FullyDistVec< IT, IT > &  Assignments,
std::vector< IT > &  LocalIdxs 
) const

◆ InducedSubgraphs2Procs() [3/3]

template<class IT , class NT , class DER >
DER combblas::SpParMat< IT, NT, DER >::InducedSubgraphs2Procs ( const FullyDistVec< IT, IT > &  Assignments,
std::vector< IT > &  LocalIdxs 
) const

◆ Kselect() [1/6]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect ( FullyDistSpVec< GIT, VT > &  kth,
IT  k_limit,
int  kselectVersion 
) const

Kselect wrapper for a select columns of the matrix Indices of the input sparse vectors kth denote the queried columns of the matrix Upon return, values of kth stores the kth entries of the queried columns Returns true if Kselect algorithm is invoked for at least one column Otherwise, returns false

Definition at line 1120 of file SpParMat.cpp.

◆ Kselect() [2/6]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect ( FullyDistSpVec< GIT, VT > &  kth,
IT  k_limit,
int  kselectVersion 
) const

◆ Kselect() [3/6]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect ( FullyDistSpVec< GIT, VT > &  kth,
IT  k_limit,
int  kselectVersion 
) const

◆ Kselect() [4/6]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit,
int  kselectVersion 
) const

Returns true if Kselect algorithm is invoked for at least one column Otherwise, returns false if false, rvec contains either the minimum entry in each column or zero

Definition at line 1160 of file SpParMat.cpp.

◆ Kselect() [5/6]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit,
int  kselectVersion 
) const

◆ Kselect() [6/6]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit,
int  kselectVersion 
) const

◆ Kselect1() [1/9]

template<class IT , class NT , class DER >
bool combblas::SpParMat< IT, NT, DER >::Kselect1 ( FullyDistSpVec< GIT, VT > &  rvec,
IT  k_limit,
_UnaryOperation  __unary_op 
) const

Definition at line 1413 of file SpParMat.cpp.

◆ Kselect1() [2/9]

template<class IT , class NT , class DER >
bool combblas::SpParMat< IT, NT, DER >::Kselect1 ( FullyDistSpVec< GIT, VT > &  rvec,
IT  k_limit,
_UnaryOperation  __unary_op 
) const

◆ Kselect1() [3/9]

template<class IT , class NT , class DER >
bool combblas::SpParMat< IT, NT, DER >::Kselect1 ( FullyDistSpVec< GIT, VT > &  rvec,
IT  k_limit,
_UnaryOperation  __unary_op 
) const

◆ Kselect1() [4/9]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect1 ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit 
) const

◆ Kselect1() [5/9]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect1 ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit 
) const

◆ Kselect1() [6/9]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect1 ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit 
) const

◆ Kselect1() [7/9]

template<class IT , class NT , class DER >
bool combblas::SpParMat< IT, NT, DER >::Kselect1 ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit,
_UnaryOperation  __unary_op 
) const

Definition at line 1191 of file SpParMat.cpp.

◆ Kselect1() [8/9]

template<class IT , class NT , class DER >
bool combblas::SpParMat< IT, NT, DER >::Kselect1 ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit,
_UnaryOperation  __unary_op 
) const

◆ Kselect1() [9/9]

template<class IT , class NT , class DER >
bool combblas::SpParMat< IT, NT, DER >::Kselect1 ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit,
_UnaryOperation  __unary_op 
) const

◆ Kselect2() [1/3]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect2 ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit 
) const

identify the k-th maximum element in each column of a matrix if the number of nonzeros in a column is less than k, return the numeric_limits<NT>::min() This is an efficient implementation of the Saukas/Song algorithm http://www.ime.usp.br/~einar/select/INDEX.HTM Preferred for large k values

Definition at line 309 of file SpParMat.cpp.

◆ Kselect2() [2/3]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect2 ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit 
) const

◆ Kselect2() [3/3]

template<class IT , class NT , class DER >
template<typename VT , typename GIT >
bool combblas::SpParMat< IT, NT, DER >::Kselect2 ( FullyDistVec< GIT, VT > &  rvec,
IT  k_limit 
) const

◆ LoadImbalance() [1/3]

template<class IT , class NT , class DER >
float combblas::SpParMat< IT, NT, DER >::LoadImbalance ( ) const

Definition at line 762 of file SpParMat.cpp.

◆ LoadImbalance() [2/3]

template<class IT , class NT , class DER >
float combblas::SpParMat< IT, NT, DER >::LoadImbalance ( ) const

◆ LoadImbalance() [3/3]

template<class IT , class NT , class DER >
float combblas::SpParMat< IT, NT, DER >::LoadImbalance ( ) const

◆ MaskedReduce() [1/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::MaskedReduce ( FullyDistVec< GIT, VT > &  rvec,
FullyDistSpVec< GIT, VT > &  mask,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id,
_UnaryOperation  __unary_op,
bool  exclude = false 
) const

Reduce along the column into a vector

Parameters
[in]mask{A sparse vector indicating row indices included/excluded (based on exclude argument) in the reduction }
[in]__binary_op{the operation used for reduction; examples: max, min, plus, multiply, and, or. Its parameters and return type are all VT}
[in]id{scalar that is used as the identity for __binary_op; examples: zero, infinity}
[in]__unary_op{optional unary operation applied to nonzeros before the __binary_op; examples: 1/x, x^2}
[in]exclude{if true, masked row indices are included in the reduction}
[out]rvec{the return vector, specified as an output parameter to allow arbitrary return types via VT}

Definition at line 1870 of file SpParMat.cpp.

◆ MaskedReduce() [2/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::MaskedReduce ( FullyDistVec< GIT, VT > &  rvec,
FullyDistSpVec< GIT, VT > &  mask,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id,
_UnaryOperation  __unary_op,
bool  exclude = false 
) const

◆ MaskedReduce() [3/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::MaskedReduce ( FullyDistVec< GIT, VT > &  rvec,
FullyDistSpVec< GIT, VT > &  mask,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id,
_UnaryOperation  __unary_op,
bool  exclude = false 
) const

◆ MaskedReduce() [4/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::MaskedReduce ( FullyDistVec< GIT, VT > &  rvec,
FullyDistSpVec< GIT, VT > &  mask,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id,
bool  exclude = false 
) const

Definition at line 1849 of file SpParMat.cpp.

◆ MaskedReduce() [5/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::MaskedReduce ( FullyDistVec< GIT, VT > &  rvec,
FullyDistSpVec< GIT, VT > &  mask,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id,
bool  exclude = false 
) const

◆ MaskedReduce() [6/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::MaskedReduce ( FullyDistVec< GIT, VT > &  rvec,
FullyDistSpVec< GIT, VT > &  mask,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id,
bool  exclude = false 
) const

◆ operator SpParMat< IT, NNT, NDER >() [1/3]

template<class IT , class NT , class DER >
template<typename NNT , typename NDER >
combblas::SpParMat< IT, NT, DER >::operator SpParMat< IT, NNT, NDER > ( ) const

Type conversion operator.

Definition at line 1992 of file SpParMat.cpp.

◆ operator SpParMat< IT, NNT, NDER >() [2/3]

template<class IT , class NT , class DER >
template<typename NNT , typename NDER >
combblas::SpParMat< IT, NT, DER >::operator SpParMat< IT, NNT, NDER > ( ) const

Type conversion operator.

◆ operator SpParMat< IT, NNT, NDER >() [3/3]

template<class IT , class NT , class DER >
template<typename NNT , typename NDER >
combblas::SpParMat< IT, NT, DER >::operator SpParMat< IT, NNT, NDER > ( ) const

Type conversion operator.

◆ operator SpParMat< NIT, NNT, NDER >() [1/3]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::operator SpParMat< NIT, NNT, NDER > ( ) const

Type conversion operator (for indices as well)

Change index type as well.

Definition at line 2001 of file SpParMat.cpp.

◆ operator SpParMat< NIT, NNT, NDER >() [2/3]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::operator SpParMat< NIT, NNT, NDER > ( ) const

Type conversion operator (for indices as well)

◆ operator SpParMat< NIT, NNT, NDER >() [3/3]

template<class IT , class NT , class DER >
combblas::SpParMat< IT, NT, DER >::operator SpParMat< NIT, NNT, NDER > ( ) const

Type conversion operator (for indices as well)

◆ operator()() [1/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::operator() ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci,
bool  inplace = false 
)
inline

Definition at line 228 of file SpParMat.h.

◆ operator()() [2/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::operator() ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci,
bool  inplace = false 
)
inline

Definition at line 228 of file SpParMat.h.

◆ operator()() [3/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::operator() ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci,
bool  inplace = false 
)
inline

Definition at line 228 of file SpParMat.h.

◆ operator()() [4/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::operator() ( const FullyDistVec< IT, IT > &  v,
Dim  dim,
bool  inplace = false 
)
inline

Definition at line 234 of file SpParMat.h.

◆ operator()() [5/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::operator() ( const FullyDistVec< IT, IT > &  v,
Dim  dim,
bool  inplace = false 
)
inline

Definition at line 234 of file SpParMat.h.

◆ operator()() [6/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::operator() ( const FullyDistVec< IT, IT > &  v,
Dim  dim,
bool  inplace = false 
)
inline

Definition at line 234 of file SpParMat.h.

◆ operator+=() [1/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > & combblas::SpParMat< IT, NT, DER >::operator+= ( const SpParMat< IT, NT, DER > &  rhs)

Definition at line 741 of file SpParMat.cpp.

◆ operator+=() [2/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > & combblas::SpParMat< IT, NT, DER >::operator+= ( const SpParMat< IT, NT, DER > &  rhs)

◆ operator+=() [3/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > & combblas::SpParMat< IT, NT, DER >::operator+= ( const SpParMat< IT, NT, DER > &  rhs)

◆ operator=() [1/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > & combblas::SpParMat< IT, NT, DER >::operator= ( const SpParMat< IT, NT, DER > &  rhs)

Check agains NULL is probably unneccessary, delete won't fail on NULL But useful in the presence of a user defined "operator delete" which fails to check NULL

Check agains NULL is probably unneccessary, delete won't fail on NULL But useful in the presence of a user defined "operator delete" which fails to check NULL

Check agains NULL is probably unneccessary, delete won't fail on NULL But useful in the presence of a user defined "operator delete" which fails to check NULL

Definition at line 725 of file SpParMat.cpp.

◆ operator=() [2/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > & combblas::SpParMat< IT, NT, DER >::operator= ( const SpParMat< IT, NT, DER > &  rhs)

◆ operator=() [3/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > & combblas::SpParMat< IT, NT, DER >::operator= ( const SpParMat< IT, NT, DER > &  rhs)

◆ operator==() [1/3]

template<class IT , class NT , class DER >
bool combblas::SpParMat< IT, NT, DER >::operator== ( const SpParMat< IT, NT, DER > &  rhs) const

Definition at line 2878 of file SpParMat.cpp.

◆ operator==() [2/3]

template<class IT , class NT , class DER >
bool combblas::SpParMat< IT, NT, DER >::operator== ( const SpParMat< IT, NT, DER > &  rhs) const

◆ operator==() [3/3]

template<class IT , class NT , class DER >
bool combblas::SpParMat< IT, NT, DER >::operator== ( const SpParMat< IT, NT, DER > &  rhs) const

◆ OptimizeForGraph500() [1/3]

template<class IT , class NT , class DER >
template<typename LIT , typename OT >
void combblas::SpParMat< IT, NT, DER >::OptimizeForGraph500 ( OptBuf< LIT, OT > &  optbuf)

Pre-allocates buffers for row communication additionally (if GATHERVOPT is defined, incomplete as of March 2016):

  • Splits the local column indices to sparse & dense pieces to avoid redundant AllGather (sparse pieces get p2p)

Definition at line 3343 of file SpParMat.cpp.

◆ OptimizeForGraph500() [2/3]

template<class IT , class NT , class DER >
template<typename LIT , typename OT >
void combblas::SpParMat< IT, NT, DER >::OptimizeForGraph500 ( OptBuf< LIT, OT > &  optbuf)

◆ OptimizeForGraph500() [3/3]

template<class IT , class NT , class DER >
template<typename LIT , typename OT >
void combblas::SpParMat< IT, NT, DER >::OptimizeForGraph500 ( OptBuf< LIT, OT > &  optbuf)

◆ Owner() [1/3]

template<class IT , class NT , class DER >
template<typename LIT >
int combblas::SpParMat< IT, NT, DER >::Owner ( IT  total_m,
IT  total_n,
IT  grow,
IT  gcol,
LIT lrow,
LIT lcol 
) const
Parameters
[in]grow{global row index}
[in]gcol{global column index}
[out]lrow{row index local to the owner}
[out]lcol{col index local to the owner}
Returns
{owner processor id}

Definition at line 5068 of file SpParMat.cpp.

◆ Owner() [2/3]

template<class IT , class NT , class DER >
template<typename LIT >
int combblas::SpParMat< IT, NT, DER >::Owner ( IT  total_m,
IT  total_n,
IT  grow,
IT  gcol,
LIT lrow,
LIT lcol 
) const

◆ Owner() [3/3]

template<class IT , class NT , class DER >
template<typename LIT >
int combblas::SpParMat< IT, NT, DER >::Owner ( IT  total_m,
IT  total_n,
IT  grow,
IT  gcol,
LIT lrow,
LIT lcol 
) const

◆ ParallelBinaryWrite() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ParallelBinaryWrite ( std::string  filename) const

Definition at line 620 of file SpParMat.cpp.

◆ ParallelBinaryWrite() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ParallelBinaryWrite ( std::string  filename) const

◆ ParallelBinaryWrite() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ParallelBinaryWrite ( std::string  filename) const

◆ ParallelReadMM() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ParallelReadMM ( const std::string &  filename,
bool  onebased,
_BinaryOperation  BinOp 
)

Handles all sorts of orderings, even duplicates (what happens to them is determined by BinOp) Requires proper matrix market banner at the moment Replaces ReadDistribute for properly load balanced input in matrix market format

Definition at line 3980 of file SpParMat.cpp.

◆ ParallelReadMM() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ParallelReadMM ( const std::string &  filename,
bool  onebased,
_BinaryOperation  BinOp 
)

◆ ParallelReadMM() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ParallelReadMM ( const std::string &  filename,
bool  onebased,
_BinaryOperation  BinOp 
)

◆ ParallelWriteMM() [1/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ParallelWriteMM ( const std::string &  filename,
bool  onebased 
)
inline

Definition at line 282 of file SpParMat.h.

◆ ParallelWriteMM() [2/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ParallelWriteMM ( const std::string &  filename,
bool  onebased 
)
inline

Definition at line 282 of file SpParMat.h.

◆ ParallelWriteMM() [3/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ParallelWriteMM ( const std::string &  filename,
bool  onebased 
)
inline

Definition at line 282 of file SpParMat.h.

◆ ParallelWriteMM() [4/6]

template<class IT , class NT , class DER >
template<class HANDLER >
void combblas::SpParMat< IT, NT, DER >::ParallelWriteMM ( const std::string &  filename,
bool  onebased,
HANDLER  handler 
)

Definition at line 4120 of file SpParMat.cpp.

◆ ParallelWriteMM() [5/6]

template<class IT , class NT , class DER >
template<class HANDLER >
void combblas::SpParMat< IT, NT, DER >::ParallelWriteMM ( const std::string &  filename,
bool  onebased,
HANDLER  handler 
)

◆ ParallelWriteMM() [6/6]

template<class IT , class NT , class DER >
template<class HANDLER >
void combblas::SpParMat< IT, NT, DER >::ParallelWriteMM ( const std::string &  filename,
bool  onebased,
HANDLER  handler 
)

◆ PrintInfo() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::PrintInfo ( ) const

Definition at line 2854 of file SpParMat.cpp.

◆ PrintInfo() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::PrintInfo ( ) const

◆ PrintInfo() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::PrintInfo ( ) const

◆ Profile() [1/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::Profile ( ) const

Definition at line 1786 of file SpParMat.cpp.

◆ Profile() [2/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::Profile ( ) const

◆ Profile() [3/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::Profile ( ) const

◆ Prune() [1/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::Prune ( _UnaryOperation  __unary_op,
bool  inPlace = true 
)
inline

Definition at line 178 of file SpParMat.h.

◆ Prune() [2/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::Prune ( _UnaryOperation  __unary_op,
bool  inPlace = true 
)
inline

Definition at line 178 of file SpParMat.h.

◆ Prune() [3/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::Prune ( _UnaryOperation  __unary_op,
bool  inPlace = true 
)
inline

Definition at line 178 of file SpParMat.h.

◆ Prune() [4/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Prune ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci 
)

prune all entries whose row indices are in ri AND column indices are in ci

Definition at line 2475 of file SpParMat.cpp.

◆ Prune() [5/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Prune ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci 
)

prune all entries whose row indices are in ri AND column indices are in ci

◆ Prune() [6/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Prune ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci 
)

prune all entries whose row indices are in ri AND column indices are in ci

◆ PruneColumn() [1/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::PruneColumn ( const FullyDistSpVec< IT, NT > &  pvals,
_BinaryOperation  __binary_op,
bool  inPlace = true 
)

Prune columns of a sparse matrix selected by nonzero indices of pvals Each selected column is pruned by corresponding values in pvals

Definition at line 2710 of file SpParMat.cpp.

◆ PruneColumn() [2/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::PruneColumn ( const FullyDistSpVec< IT, NT > &  pvals,
_BinaryOperation  __binary_op,
bool  inPlace = true 
)

◆ PruneColumn() [3/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::PruneColumn ( const FullyDistSpVec< IT, NT > &  pvals,
_BinaryOperation  __binary_op,
bool  inPlace = true 
)

◆ PruneColumn() [4/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::PruneColumn ( const FullyDistVec< IT, NT > &  pvals,
_BinaryOperation  __binary_op,
bool  inPlace = true 
)

Prune every column of a sparse matrix based on pvals.

Definition at line 2567 of file SpParMat.cpp.

◆ PruneColumn() [5/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::PruneColumn ( const FullyDistVec< IT, NT > &  pvals,
_BinaryOperation  __binary_op,
bool  inPlace = true 
)

◆ PruneColumn() [6/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::PruneColumn ( const FullyDistVec< IT, NT > &  pvals,
_BinaryOperation  __binary_op,
bool  inPlace = true 
)

◆ PruneColumnByIndex() [1/3]

template<class IT , class NT , class DER >
template<class IRRELEVANT_NT >
void combblas::SpParMat< IT, NT, DER >::PruneColumnByIndex ( const FullyDistSpVec< IT, IRRELEVANT_NT > &  ci)

Definition at line 2649 of file SpParMat.cpp.

◆ PruneColumnByIndex() [2/3]

template<class IT , class NT , class DER >
template<typename IRRELEVANT_NT >
void combblas::SpParMat< IT, NT, DER >::PruneColumnByIndex ( const FullyDistSpVec< IT, IRRELEVANT_NT > &  ci)

◆ PruneColumnByIndex() [3/3]

template<class IT , class NT , class DER >
template<typename IRRELEVANT_NT >
void combblas::SpParMat< IT, NT, DER >::PruneColumnByIndex ( const FullyDistSpVec< IT, IRRELEVANT_NT > &  ci)

◆ PruneFull() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::PruneFull ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci 
)

prune all entries whose row indices are in ri OR column indices are in ci

Definition at line 2522 of file SpParMat.cpp.

◆ PruneFull() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::PruneFull ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci 
)

prune all entries whose row indices are in ri OR column indices are in ci

◆ PruneFull() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::PruneFull ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci 
)

prune all entries whose row indices are in ri OR column indices are in ci

◆ PruneI() [1/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::PruneI ( _UnaryOperation  __unary_op,
bool  inPlace = true 
)
inline

Definition at line 162 of file SpParMat.h.

◆ PruneI() [2/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::PruneI ( _UnaryOperation  __unary_op,
bool  inPlace = true 
)
inline

Definition at line 162 of file SpParMat.h.

◆ PruneI() [3/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::PruneI ( _UnaryOperation  __unary_op,
bool  inPlace = true 
)
inline

Definition at line 162 of file SpParMat.h.

◆ put() [1/3]

template<class IT , class NT , class DER >
std::ofstream & combblas::SpParMat< IT, NT, DER >::put ( std::ofstream &  outfile) const

Definition at line 5046 of file SpParMat.cpp.

◆ put() [2/3]

template<class IT , class NT , class DER >
std::ofstream & combblas::SpParMat< IT, NT, DER >::put ( std::ofstream &  outfile) const

◆ put() [3/3]

template<class IT , class NT , class DER >
std::ofstream & combblas::SpParMat< IT, NT, DER >::put ( std::ofstream &  outfile) const

◆ ReadDistribute() [1/6]

template<class IT , class NT , class DER >
template<class HANDLER >
void combblas::SpParMat< IT, NT, DER >::ReadDistribute ( const std::string &  filename,
int  master,
bool  nonum,
HANDLER  handler,
bool  transpose = false,
bool  pario = false 
)

Handles all sorts of orderings as long as there are no duplicates May perform better when the data is already reverse column-sorted (i.e. in decreasing order) if nonum is true, then numerics are not supplied and they are assumed to be all 1's

Definition at line 4211 of file SpParMat.cpp.

◆ ReadDistribute() [2/6]

template<class IT , class NT , class DER >
template<class HANDLER >
void combblas::SpParMat< IT, NT, DER >::ReadDistribute ( const std::string &  filename,
int  master,
bool  nonum,
HANDLER  handler,
bool  transpose = false,
bool  pario = false 
)

◆ ReadDistribute() [3/6]

template<class IT , class NT , class DER >
template<class HANDLER >
void combblas::SpParMat< IT, NT, DER >::ReadDistribute ( const std::string &  filename,
int  master,
bool  nonum,
HANDLER  handler,
bool  transpose = false,
bool  pario = false 
)

◆ ReadDistribute() [4/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ReadDistribute ( const std::string &  filename,
int  master,
bool  nonum = false,
bool  pario = false 
)
inline

Definition at line 291 of file SpParMat.h.

◆ ReadDistribute() [5/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ReadDistribute ( const std::string &  filename,
int  master,
bool  nonum = false,
bool  pario = false 
)
inline

Definition at line 291 of file SpParMat.h.

◆ ReadDistribute() [6/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::ReadDistribute ( const std::string &  filename,
int  master,
bool  nonum = false,
bool  pario = false 
)
inline

Definition at line 291 of file SpParMat.h.

◆ ReadGeneralizedTuples() [1/3]

template<class IT , class NT , class DER >
FullyDistVec< IT, std::array< char, MAXVERTNAME > > combblas::SpParMat< IT, NT, DER >::ReadGeneralizedTuples ( const std::string &  filename,
_BinaryOperation  BinOp 
)

Handles all sorts of orderings as long as there are no duplicates Does not take matrix market banner (only tuples) Data can be load imbalanced and the vertex labels can be arbitrary strings Replaces ReadDistribute for imbalanced arbitrary input in tuples format

Definition at line 3882 of file SpParMat.cpp.

◆ ReadGeneralizedTuples() [2/3]

template<class IT , class NT , class DER >
FullyDistVec< IT, std::array< char, MAXVERTNAME > > combblas::SpParMat< IT, NT, DER >::ReadGeneralizedTuples ( const std::string &  ,
_BinaryOperation   
)

◆ ReadGeneralizedTuples() [3/3]

template<class IT , class NT , class DER >
FullyDistVec< IT, std::array< char, MAXVERTNAME > > combblas::SpParMat< IT, NT, DER >::ReadGeneralizedTuples ( const std::string &  ,
_BinaryOperation   
)

◆ Reduce() [1/12]

template<class IT , class NT , class DER >
FullyDistVec< IT, NT > combblas::SpParMat< IT, NT, DER >::Reduce ( Dim  dim,
_BinaryOperation  __binary_op,
NT  id 
) const

Definition at line 916 of file SpParMat.cpp.

◆ Reduce() [2/12]

template<class IT , class NT , class DER >
FullyDistVec< IT, NT > combblas::SpParMat< IT, NT, DER >::Reduce ( Dim  dim,
_BinaryOperation  __binary_op,
NT  id 
) const

◆ Reduce() [3/12]

template<class IT , class NT , class DER >
FullyDistVec< IT, NT > combblas::SpParMat< IT, NT, DER >::Reduce ( Dim  dim,
_BinaryOperation  __binary_op,
NT  id 
) const

◆ Reduce() [4/12]

template<class IT , class NT , class DER >
FullyDistVec< IT, NT > combblas::SpParMat< IT, NT, DER >::Reduce ( Dim  dim,
_BinaryOperation  __binary_op,
NT  id,
_UnaryOperation  __unary_op 
) const

Definition at line 888 of file SpParMat.cpp.

◆ Reduce() [5/12]

template<class IT , class NT , class DER >
FullyDistVec< IT, NT > combblas::SpParMat< IT, NT, DER >::Reduce ( Dim  dim,
_BinaryOperation  __binary_op,
NT  id,
_UnaryOperation  __unary_op 
) const

◆ Reduce() [6/12]

template<class IT , class NT , class DER >
FullyDistVec< IT, NT > combblas::SpParMat< IT, NT, DER >::Reduce ( Dim  dim,
_BinaryOperation  __binary_op,
NT  id,
_UnaryOperation  __unary_op 
) const

◆ Reduce() [7/12]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Reduce ( FullyDistVec< GIT, VT > &  rvec,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id 
) const

Definition at line 945 of file SpParMat.cpp.

◆ Reduce() [8/12]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Reduce ( FullyDistVec< GIT, VT > &  rvec,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id 
) const

◆ Reduce() [9/12]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Reduce ( FullyDistVec< GIT, VT > &  rvec,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id 
) const

◆ Reduce() [10/12]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Reduce ( FullyDistVec< GIT, VT > &  rvec,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id,
_UnaryOperation  __unary_op 
) const

Definition at line 953 of file SpParMat.cpp.

◆ Reduce() [11/12]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Reduce ( FullyDistVec< GIT, VT > &  rvec,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id,
_UnaryOperation  __unary_op 
) const

◆ Reduce() [12/12]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Reduce ( FullyDistVec< GIT, VT > &  rvec,
Dim  dim,
_BinaryOperation  __binary_op,
VT  id,
_UnaryOperation  __unary_op 
) const

◆ RemoveLoops() [1/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::RemoveLoops ( )

Definition at line 3257 of file SpParMat.cpp.

◆ RemoveLoops() [2/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::RemoveLoops ( )

◆ RemoveLoops() [3/3]

template<class IT , class NT , class DER >
IT combblas::SpParMat< IT, NT, DER >::RemoveLoops ( )

◆ SaveGathered() [1/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SaveGathered ( std::string  filename) const
inline

Definition at line 298 of file SpParMat.h.

◆ SaveGathered() [2/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SaveGathered ( std::string  filename) const
inline

Definition at line 298 of file SpParMat.h.

◆ SaveGathered() [3/6]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SaveGathered ( std::string  filename) const
inline

Definition at line 298 of file SpParMat.h.

◆ SaveGathered() [4/6]

template<class IT , class NT , class DER >
template<class HANDLER >
void combblas::SpParMat< IT, NT, DER >::SaveGathered ( std::string  filename,
HANDLER  handler,
bool  transpose = false 
) const

Definition at line 3590 of file SpParMat.cpp.

◆ SaveGathered() [5/6]

template<class IT , class NT , class DER >
template<class HANDLER >
void combblas::SpParMat< IT, NT, DER >::SaveGathered ( std::string  filename,
HANDLER  handler,
bool  transpose = false 
) const

◆ SaveGathered() [6/6]

template<class IT , class NT , class DER >
template<class HANDLER >
void combblas::SpParMat< IT, NT, DER >::SaveGathered ( std::string  filename,
HANDLER  handler,
bool  transpose = false 
) const

◆ seq() [1/3]

template<class IT , class NT , class DER >
DER & combblas::SpParMat< IT, NT, DER >::seq ( ) const
inline

Definition at line 306 of file SpParMat.h.

◆ seq() [2/3]

template<class IT , class NT , class DER >
DER & combblas::SpParMat< IT, NT, DER >::seq ( ) const
inline

Definition at line 306 of file SpParMat.h.

◆ seq() [3/3]

template<class IT , class NT , class DER >
DER & combblas::SpParMat< IT, NT, DER >::seq ( ) const
inline

Definition at line 306 of file SpParMat.h.

◆ seqptr() [1/3]

template<class IT , class NT , class DER >
DER * combblas::SpParMat< IT, NT, DER >::seqptr ( ) const
inline

Definition at line 307 of file SpParMat.h.

◆ seqptr() [2/3]

template<class IT , class NT , class DER >
DER * combblas::SpParMat< IT, NT, DER >::seqptr ( ) const
inline

Definition at line 307 of file SpParMat.h.

◆ seqptr() [3/3]

template<class IT , class NT , class DER >
DER * combblas::SpParMat< IT, NT, DER >::seqptr ( ) const
inline

Definition at line 307 of file SpParMat.h.

◆ SetDifference() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SetDifference ( const SpParMat< IT, NT, DER > &  rhs)

Definition at line 2802 of file SpParMat.cpp.

◆ SetDifference() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SetDifference ( const SpParMat< IT, NT, DER > &  rhs)

◆ SetDifference() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SetDifference ( const SpParMat< IT, NT, DER > &  rhs)

◆ SparseCommon() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SparseCommon ( std::vector< std::vector< std::tuple< LIT, LIT, NT > > > &  data,
LIT  locsize,
IT  total_m,
IT  total_n,
_BinaryOperation  BinOp 
)

Private function that carries code common to different sparse() constructors Before this call, commGrid is already set

Definition at line 2893 of file SpParMat.cpp.

◆ SparseCommon() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SparseCommon ( std::vector< std::vector< std::tuple< LIT, LIT, NT > > > &  data,
LIT  locsize,
IT  total_m,
IT  total_n,
_BinaryOperation  BinOp 
)

◆ SparseCommon() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SparseCommon ( std::vector< std::vector< std::tuple< LIT, LIT, NT > > > &  data,
LIT  locsize,
IT  total_m,
IT  total_n,
_BinaryOperation  BinOp 
)

◆ SpAsgn() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SpAsgn ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci,
SpParMat< IT, NT, DER > &  B 
)

Definition at line 2427 of file SpParMat.cpp.

◆ SpAsgn() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SpAsgn ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci,
SpParMat< IT, NT, DER > &  B 
)

◆ SpAsgn() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::SpAsgn ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci,
SpParMat< IT, NT, DER > &  B 
)

◆ Square() [1/3]

template<class IT , class NT , class DER >
template<typename SR >
void combblas::SpParMat< IT, NT, DER >::Square ( )

Parallel routine that returns A*A on the semiring SR Uses only MPI-1 features (relies on simple blocking broadcast)

Definition at line 3456 of file SpParMat.cpp.

◆ Square() [2/3]

template<class IT , class NT , class DER >
template<typename SR >
void combblas::SpParMat< IT, NT, DER >::Square ( )

◆ Square() [3/3]

template<class IT , class NT , class DER >
template<typename SR >
void combblas::SpParMat< IT, NT, DER >::Square ( )

◆ SubsRef_SR() [1/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::SubsRef_SR ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci,
bool  inplace = false 
)

General indexing with serial semantics.

Generalized sparse matrix indexing (ri/ci are 0-based indexed) Both the storage and the actual values in FullyDistVec should be IT The index vectors are dense and FULLY distributed on all processors We can use this function to apply a permutation like A(p,q) Sequential indexing subroutine (via multiplication) is general enough.

Definition at line 2028 of file SpParMat.cpp.

◆ SubsRef_SR() [2/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::SubsRef_SR ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci,
bool  inplace = false 
)

General indexing with serial semantics.

◆ SubsRef_SR() [3/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::SubsRef_SR ( const FullyDistVec< IT, IT > &  ri,
const FullyDistVec< IT, IT > &  ci,
bool  inplace = false 
)

General indexing with serial semantics.

◆ SubsRef_SR() [4/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::SubsRef_SR ( const FullyDistVec< IT, IT > &  v,
Dim  dim,
bool  inplace = false 
)

Definition at line 2257 of file SpParMat.cpp.

◆ SubsRef_SR() [5/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::SubsRef_SR ( const FullyDistVec< IT, IT > &  v,
Dim  dim,
bool  inplace = false 
)

◆ SubsRef_SR() [6/6]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::SubsRef_SR ( const FullyDistVec< IT, IT > &  v,
Dim  dim,
bool  inplace = false 
)

◆ SubsRefCol() [1/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::SubsRefCol ( const std::vector< IT > &  ci) const

Column indexing with special parallel semantics.

Create a submatrix of size m x (size(ci) * s) on a r x s processor grid Essentially fetches the columns ci[0], ci[1],... ci[size(ci)] from every submatrix

Definition at line 2012 of file SpParMat.cpp.

◆ SubsRefCol() [2/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::SubsRefCol ( const std::vector< IT > &  ci) const

Column indexing with special parallel semantics.

◆ SubsRefCol() [3/3]

template<class IT , class NT , class DER >
SpParMat< IT, NT, DER > combblas::SpParMat< IT, NT, DER >::SubsRefCol ( const std::vector< IT > &  ci) const

Column indexing with special parallel semantics.

◆ Transpose() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Transpose ( )

Definition at line 3528 of file SpParMat.cpp.

◆ Transpose() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Transpose ( )

◆ Transpose() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::Transpose ( )

◆ UpdateDense() [1/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::UpdateDense ( DenseParMat< IT, NT > &  rhs,
_BinaryOperation  __binary_op 
) const

Definition at line 2832 of file SpParMat.cpp.

◆ UpdateDense() [2/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::UpdateDense ( DenseParMat< IT, NT > &  rhs,
_BinaryOperation  __binary_op 
) const

◆ UpdateDense() [3/3]

template<class IT , class NT , class DER >
void combblas::SpParMat< IT, NT, DER >::UpdateDense ( DenseParMat< IT, NT > &  rhs,
_BinaryOperation  __binary_op 
) const

Friends And Related Symbol Documentation

◆ CalculateNumberOfPhases [1/3]

template<class IT , class NT , class DER >
int CalculateNumberOfPhases ( SpParMat< IU, NU1, UDERA > &  A,
SpParMat< IU, NU2, UDERB > &  B,
NUO  hardThreshold,
IU  selectNum,
IU  recoverNum,
NUO  recoverPct,
int  kselectVersion,
int64_t  perProcessMem 
)
friend

Definition at line 733 of file ParFriends.h.

◆ CalculateNumberOfPhases [2/3]

template<class IT , class NT , class DER >
int CalculateNumberOfPhases ( SpParMat< IU, NU1, UDERA > &  A,
SpParMat< IU, NU2, UDERB > &  B,
NUO  hardThreshold,
IU  selectNum,
IU  recoverNum,
NUO  recoverPct,
int  kselectVersion,
int64_t  perProcessMem 
)
friend

Definition at line 733 of file ParFriends.h.

◆ CalculateNumberOfPhases [3/3]

template<class IT , class NT , class DER >
int CalculateNumberOfPhases ( SpParMat< IU, NU1, UDERA > &  A,
SpParMat< IU, NU2, UDERB > &  B,
NUO  hardThreshold,
IU  selectNum,
IU  recoverNum,
NUO  recoverPct,
int  kselectVersion,
int64_t  perProcessMem 
)
friend

Definition at line 733 of file ParFriends.h.

◆ DenseParMat [1/3]

template<class IT , class NT , class DER >
template<class IU , class NU >
friend class DenseParMat
friend

Definition at line 448 of file SpParMat.h.

◆ DenseParMat [2/3]

template<class IT , class NT , class DER >
template<class IU , class NU >
class DenseParMat
friend

Definition at line 448 of file SpParMat.h.

◆ DenseParMat [3/3]

template<class IT , class NT , class DER >
template<class IU , class NU >
class DenseParMat
friend

Definition at line 448 of file SpParMat.h.

◆ EstimateFLOP [1/3]

template<class IT , class NT , class DER >
IU EstimateFLOP ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

Friend declarations.

◆ EstimateFLOP [2/3]

template<class IT , class NT , class DER >
IU EstimateFLOP ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

Friend declarations.

◆ EstimateFLOP [3/3]

template<class IT , class NT , class DER >
IU EstimateFLOP ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

Friend declarations.

◆ EstPerProcessNnzSUMMA [1/3]

template<class IT , class NT , class DER >
int64_t EstPerProcessNnzSUMMA ( SpParMat< IU, NU1, UDERA > &  A,
SpParMat< IU, NU2, UDERB > &  B,
bool  hashEstimate 
)
friend

Estimate the maximum nnz needed to store in a process from all stages of SUMMA before reduction

Precondition
{ Input matrices, A and B, should not alias }

Definition at line 1243 of file ParFriends.h.

◆ EstPerProcessNnzSUMMA [2/3]

template<class IT , class NT , class DER >
int64_t EstPerProcessNnzSUMMA ( SpParMat< IU, NU1, UDERA > &  A,
SpParMat< IU, NU2, UDERB > &  B,
bool  hashEstimate 
)
friend

Estimate the maximum nnz needed to store in a process from all stages of SUMMA before reduction

Precondition
{ Input matrices, A and B, should not alias }

Definition at line 1243 of file ParFriends.h.

◆ EstPerProcessNnzSUMMA [3/3]

template<class IT , class NT , class DER >
int64_t EstPerProcessNnzSUMMA ( SpParMat< IU, NU1, UDERA > &  A,
SpParMat< IU, NU2, UDERB > &  B,
bool  hashEstimate 
)
friend

Estimate the maximum nnz needed to store in a process from all stages of SUMMA before reduction

Precondition
{ Input matrices, A and B, should not alias }

Definition at line 1243 of file ParFriends.h.

◆ EWiseApply [1/6]

template<class IT , class NT , class DER >
SpParMat< IU, RETT, RETDER > EWiseApply ( const SpParMat< IU, NU1, UDERA > &  A,
const SpParMat< IU, NU2, UDERB > &  B,
_BinaryOperation  __binary_op,
_BinaryPredicate  do_op,
bool  allowANulls,
bool  allowBNulls,
const NU1 ANullVal,
const NU2 BNullVal,
const bool  allowIntersect,
const bool  useExtendedBinOp 
)
friend

Definition at line 2211 of file ParFriends.h.

◆ EWiseApply [2/6]

template<class IT , class NT , class DER >
SpParMat< IU, RETT, RETDER > EWiseApply ( const SpParMat< IU, NU1, UDERA > &  A,
const SpParMat< IU, NU2, UDERB > &  B,
_BinaryOperation  __binary_op,
_BinaryPredicate  do_op,
bool  allowANulls,
bool  allowBNulls,
const NU1 ANullVal,
const NU2 BNullVal,
const bool  allowIntersect,
const bool  useExtendedBinOp 
)
friend

Definition at line 2211 of file ParFriends.h.

◆ EWiseApply [3/6]

template<class IT , class NT , class DER >
SpParMat< IU, RETT, RETDER > EWiseApply ( const SpParMat< IU, NU1, UDERA > &  A,
const SpParMat< IU, NU2, UDERB > &  B,
_BinaryOperation  __binary_op,
_BinaryPredicate  do_op,
bool  allowANulls,
bool  allowBNulls,
const NU1 ANullVal,
const NU2 BNullVal,
const bool  allowIntersect,
const bool  useExtendedBinOp 
)
friend

Definition at line 2211 of file ParFriends.h.

◆ EWiseApply [4/6]

template<class IT , class NT , class DER >
SpParMat< IU, RETT, RETDER > EWiseApply ( const SpParMat< IU, NU1, UDERA > &  A,
const SpParMat< IU, NU2, UDERB > &  B,
_BinaryOperation  __binary_op,
bool  notB,
const NU2 defaultBVal 
)
friend

Definition at line 2194 of file ParFriends.h.

◆ EWiseApply [5/6]

template<class IT , class NT , class DER >
SpParMat< IU, RETT, RETDER > EWiseApply ( const SpParMat< IU, NU1, UDERA > &  A,
const SpParMat< IU, NU2, UDERB > &  B,
_BinaryOperation  __binary_op,
bool  notB,
const NU2 defaultBVal 
)
friend

Definition at line 2194 of file ParFriends.h.

◆ EWiseApply [6/6]

template<class IT , class NT , class DER >
SpParMat< IU, RETT, RETDER > EWiseApply ( const SpParMat< IU, NU1, UDERA > &  A,
const SpParMat< IU, NU2, UDERB > &  B,
_BinaryOperation  __binary_op,
bool  notB,
const NU2 defaultBVal 
)
friend

Definition at line 2194 of file ParFriends.h.

◆ EWiseMult [1/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > EWiseMult ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B,
bool  exclude 
)
friend

◆ EWiseMult [2/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > EWiseMult ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B,
bool  exclude 
)
friend

◆ EWiseMult [3/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > EWiseMult ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B,
bool  exclude 
)
friend

◆ LocalSpMV [1/6]

template<class IT , class NT , class DER >
template<typename VT , typename IU , typename UDER >
void LocalSpMV ( const SpParMat< IU, bool, UDER > &  A,
int  rowneighs,
OptBuf< int32_t, VT > &  optbuf,
int32_t *&  indacc,
VT *&  numacc,
int sendcnt,
int  accnz 
)
friend

◆ LocalSpMV [2/6]

template<class IT , class NT , class DER >
template<typename VT , typename IU , typename UDER >
void LocalSpMV ( const SpParMat< IU, bool, UDER > &  A,
int  rowneighs,
OptBuf< int32_t, VT > &  optbuf,
int32_t *&  indacc,
VT *&  numacc,
int sendcnt,
int  accnz 
)
friend

◆ LocalSpMV [3/6]

template<class IT , class NT , class DER >
template<typename VT , typename IU , typename UDER >
void LocalSpMV ( const SpParMat< IU, bool, UDER > &  A,
int  rowneighs,
OptBuf< int32_t, VT > &  optbuf,
int32_t *&  indacc,
VT *&  numacc,
int sendcnt,
int  accnz 
)
friend

◆ LocalSpMV [4/6]

template<class IT , class NT , class DER >
void LocalSpMV ( const SpParMat< IU, NUM, UDER > &  A,
int  rowneighs,
OptBuf< int32_t, OVT > &  optbuf,
int32_t *&  indacc,
IVT *&  numacc,
int32_t *&  sendindbuf,
OVT *&  sendnumbuf,
int *&  sdispls,
int sendcnt,
int  accnz,
bool  indexisvalue,
PreAllocatedSPA< OVT > &  SPA 
)
friend

Step 3 of the sparse SpMV algorithm, with the semiring

Parameters
[in,out]optbuf{scratch space for all-to-all (fold) communication}
[in,out]indacc,numacc{index and values of the input vector, deleted upon exit}
[in,out]sendindbuf,sendnumbuf{index and values of the output vector, created}

Definition at line 1489 of file ParFriends.h.

◆ LocalSpMV [5/6]

template<class IT , class NT , class DER >
void LocalSpMV ( const SpParMat< IU, NUM, UDER > &  A,
int  rowneighs,
OptBuf< int32_t, OVT > &  optbuf,
int32_t *&  indacc,
IVT *&  numacc,
int32_t *&  sendindbuf,
OVT *&  sendnumbuf,
int *&  sdispls,
int sendcnt,
int  accnz,
bool  indexisvalue,
PreAllocatedSPA< OVT > &  SPA 
)
friend

Step 3 of the sparse SpMV algorithm, with the semiring

Parameters
[in,out]optbuf{scratch space for all-to-all (fold) communication}
[in,out]indacc,numacc{index and values of the input vector, deleted upon exit}
[in,out]sendindbuf,sendnumbuf{index and values of the output vector, created}

Definition at line 1489 of file ParFriends.h.

◆ LocalSpMV [6/6]

template<class IT , class NT , class DER >
void LocalSpMV ( const SpParMat< IU, NUM, UDER > &  A,
int  rowneighs,
OptBuf< int32_t, OVT > &  optbuf,
int32_t *&  indacc,
IVT *&  numacc,
int32_t *&  sendindbuf,
OVT *&  sendnumbuf,
int *&  sdispls,
int sendcnt,
int  accnz,
bool  indexisvalue,
PreAllocatedSPA< OVT > &  SPA 
)
friend

Step 3 of the sparse SpMV algorithm, with the semiring

Parameters
[in,out]optbuf{scratch space for all-to-all (fold) communication}
[in,out]indacc,numacc{index and values of the input vector, deleted upon exit}
[in,out]sendindbuf,sendnumbuf{index and values of the output vector, created}

Definition at line 1489 of file ParFriends.h.

◆ MemEfficientSpGEMM [1/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > MemEfficientSpGEMM ( SpParMat< IU, NU1, UDERA > &  A,
SpParMat< IU, NU2, UDERB > &  B,
int  phases,
NUO  hardThreshold,
IU  selectNum,
IU  recoverNum,
NUO  recoverPct,
int  kselectVersion,
int  computationKernel,
int64_t  perProcessMem 
)
friend

Broadcasts A multiple times (#phases) in order to save storage in the output Only uses 1/phases of C memory if the threshold/max limits are proper Parameters:

  • computationKernel: 1 means hash-based, 2 means heap-based

Definition at line 450 of file ParFriends.h.

◆ MemEfficientSpGEMM [2/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > MemEfficientSpGEMM ( SpParMat< IU, NU1, UDERA > &  A,
SpParMat< IU, NU2, UDERB > &  B,
int  phases,
NUO  hardThreshold,
IU  selectNum,
IU  recoverNum,
NUO  recoverPct,
int  kselectVersion,
int  computationKernel,
int64_t  perProcessMem 
)
friend

Broadcasts A multiple times (#phases) in order to save storage in the output Only uses 1/phases of C memory if the threshold/max limits are proper Parameters:

  • computationKernel: 1 means hash-based, 2 means heap-based

Definition at line 450 of file ParFriends.h.

◆ MemEfficientSpGEMM [3/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > MemEfficientSpGEMM ( SpParMat< IU, NU1, UDERA > &  A,
SpParMat< IU, NU2, UDERB > &  B,
int  phases,
NUO  hardThreshold,
IU  selectNum,
IU  recoverNum,
NUO  recoverPct,
int  kselectVersion,
int  computationKernel,
int64_t  perProcessMem 
)
friend

Broadcasts A multiple times (#phases) in order to save storage in the output Only uses 1/phases of C memory if the threshold/max limits are proper Parameters:

  • computationKernel: 1 means hash-based, 2 means heap-based

Definition at line 450 of file ParFriends.h.

◆ Mult_AnXBn_ActiveTarget [1/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_ActiveTarget ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B 
)
friend

◆ Mult_AnXBn_ActiveTarget [2/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_ActiveTarget ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B 
)
friend

◆ Mult_AnXBn_ActiveTarget [3/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_ActiveTarget ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B 
)
friend

◆ Mult_AnXBn_DoubleBuff [1/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_DoubleBuff ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ Mult_AnXBn_DoubleBuff [2/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_DoubleBuff ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ Mult_AnXBn_DoubleBuff [3/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_DoubleBuff ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ Mult_AnXBn_Fence [1/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_Fence ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B 
)
friend

◆ Mult_AnXBn_Fence [2/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_Fence ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B 
)
friend

◆ Mult_AnXBn_Fence [3/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_Fence ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B 
)
friend

◆ Mult_AnXBn_Overlap [1/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_Overlap ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ Mult_AnXBn_Overlap [2/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_Overlap ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ Mult_AnXBn_Overlap [3/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_Overlap ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ Mult_AnXBn_PassiveTarget [1/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_PassiveTarget ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B 
)
friend

◆ Mult_AnXBn_PassiveTarget [2/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_PassiveTarget ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B 
)
friend

◆ Mult_AnXBn_PassiveTarget [3/3]

template<class IT , class NT , class DER >
SpParMat< IU, typename promote_trait< NU1, NU2 >::T_promote, typename promote_trait< UDER1, UDER2 >::T_promote > Mult_AnXBn_PassiveTarget ( const SpParMat< IU, NU1, UDER1 > &  A,
const SpParMat< IU, NU2, UDER2 > &  B 
)
friend

◆ Mult_AnXBn_SUMMA [1/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_SUMMA ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ Mult_AnXBn_SUMMA [2/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_SUMMA ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ Mult_AnXBn_SUMMA [3/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_SUMMA ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ Mult_AnXBn_Synch [1/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_Synch ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ Mult_AnXBn_Synch [2/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_Synch ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ Mult_AnXBn_Synch [3/3]

template<class IT , class NT , class DER >
SpParMat< IU, NUO, UDERO > Mult_AnXBn_Synch ( SpParMat< IU, NU1, UDER1 > &  A,
SpParMat< IU, NU2, UDER2 > &  B,
bool  clearA,
bool  clearB 
)
friend

◆ operator<< [1/3]

template<class IT , class NT , class DER >
template<typename IU , typename NU , typename UDER >
std::ofstream & operator<< ( std::ofstream &  outfile,
const SpParMat< IU, NU, UDER > &  s 
)
friend

Definition at line 5053 of file SpParMat.cpp.

◆ operator<< [2/3]

template<class IT , class NT , class DER >
template<typename IU , typename NU , typename UDER >
std::ofstream & operator<< ( std::ofstream &  outfile,
const SpParMat< IU, NU, UDER > &  s 
)
friend

Definition at line 5053 of file SpParMat.cpp.

◆ operator<< [3/3]

template<class IT , class NT , class DER >
template<typename IU , typename NU , typename UDER >
std::ofstream & operator<< ( std::ofstream &  outfile,
const SpParMat< IU, NU, UDER > &  s 
)
friend

Definition at line 5053 of file SpParMat.cpp.

◆ SpMV [1/15]

template<class IT , class NT , class DER >
FullyDistSpVec< IU, typename promote_trait< NUM, IU >::T_promote > SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, IU > &  x,
bool  indexisvalue 
)
friend

Definition at line 1374 of file ParFriends.h.

◆ SpMV [2/15]

template<class IT , class NT , class DER >
FullyDistSpVec< IU, typename promote_trait< NUM, IU >::T_promote > SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, IU > &  x,
bool  indexisvalue 
)
friend

Definition at line 1374 of file ParFriends.h.

◆ SpMV [3/15]

template<class IT , class NT , class DER >
FullyDistSpVec< IU, typename promote_trait< NUM, IU >::T_promote > SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, IU > &  x,
bool  indexisvalue 
)
friend

Definition at line 1374 of file ParFriends.h.

◆ SpMV [4/15]

template<class IT , class NT , class DER >
void SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, IVT > &  x,
FullyDistSpVec< IU, OVT > &  y,
bool  indexisvalue 
)
friend

Definition at line 1892 of file ParFriends.h.

◆ SpMV [5/15]

template<class IT , class NT , class DER >
void SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, IVT > &  x,
FullyDistSpVec< IU, OVT > &  y,
bool  indexisvalue 
)
friend

Definition at line 1892 of file ParFriends.h.

◆ SpMV [6/15]

template<class IT , class NT , class DER >
void SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, IVT > &  x,
FullyDistSpVec< IU, OVT > &  y,
bool  indexisvalue 
)
friend

Definition at line 1892 of file ParFriends.h.

◆ SpMV [7/15]

template<class IT , class NT , class DER >
void SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, IVT > &  x,
FullyDistSpVec< IU, OVT > &  y,
bool  indexisvalue,
OptBuf< int32_t, OVT > &  optbuf 
)
friend

Definition at line 1900 of file ParFriends.h.

◆ SpMV [8/15]

template<class IT , class NT , class DER >
void SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, IVT > &  x,
FullyDistSpVec< IU, OVT > &  y,
bool  indexisvalue,
OptBuf< int32_t, OVT > &  optbuf 
)
friend

Definition at line 1900 of file ParFriends.h.

◆ SpMV [9/15]

template<class IT , class NT , class DER >
void SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, IVT > &  x,
FullyDistSpVec< IU, OVT > &  y,
bool  indexisvalue,
OptBuf< int32_t, OVT > &  optbuf 
)
friend

Definition at line 1900 of file ParFriends.h.

◆ SpMV [10/15]

template<class IT , class NT , class DER >
FullyDistSpVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, NUV > &  x 
)
friend

\TODO: Old version that is no longer considered optimal Kept for legacy purposes To be removed when other functionals are fully tested.

Definition at line 2005 of file ParFriends.h.

◆ SpMV [11/15]

template<class IT , class NT , class DER >
FullyDistSpVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, NUV > &  x 
)
friend

\TODO: Old version that is no longer considered optimal Kept for legacy purposes To be removed when other functionals are fully tested.

Definition at line 2005 of file ParFriends.h.

◆ SpMV [12/15]

template<class IT , class NT , class DER >
FullyDistSpVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistSpVec< IU, NUV > &  x 
)
friend

\TODO: Old version that is no longer considered optimal Kept for legacy purposes To be removed when other functionals are fully tested.

Definition at line 2005 of file ParFriends.h.

◆ SpMV [13/15]

template<class IT , class NT , class DER >
FullyDistVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistVec< IU, NUV > &  x 
)
friend

Parallel dense SpMV

Definition at line 1925 of file ParFriends.h.

◆ SpMV [14/15]

template<class IT , class NT , class DER >
FullyDistVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistVec< IU, NUV > &  x 
)
friend

Parallel dense SpMV

Definition at line 1925 of file ParFriends.h.

◆ SpMV [15/15]

template<class IT , class NT , class DER >
FullyDistVec< IU, typename promote_trait< NUM, NUV >::T_promote > SpMV ( const SpParMat< IU, NUM, UDER > &  A,
const FullyDistVec< IU, NUV > &  x 
)
friend

Parallel dense SpMV

Definition at line 1925 of file ParFriends.h.


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