|
COMBINATORIAL_BLAS
1.3
|
#include <SpParMat.h>
Classes | |
| class | ScalarReadSaveHandler |
Public Types | |
| typedef DER::LocalIT | LocalIT |
| typedef DER::LocalNT | LocalNT |
| typedef IT | GlobalIT |
| typedef NT | GlobalNT |
Public Member Functions | |
| SpParMat () | |
| SpParMat (shared_ptr< CommGrid > grid) | |
| SpParMat (DER *myseq, shared_ptr< CommGrid > grid) | |
| SpParMat (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 > &) | |
| 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 &) | |
| 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 | EWiseScale (const DenseParMat< IT, NT > &rhs) |
| void | DimScale (const DenseParVec< IT, NT > &v, Dim dim) |
| void | Find (FullyDistVec< IT, IT > &, FullyDistVec< IT, IT > &, FullyDistVec< IT, NT > &) const |
| deprecated: use DimApply instead | |
| void | Find (FullyDistVec< IT, IT > &, FullyDistVec< IT, IT > &) const |
| template<typename _BinaryOperation > | |
| void | DimApply (Dim dim, const FullyDistVec< IT, NT > &v, _BinaryOperation __binary_op) |
| template<typename _BinaryOperation , typename _UnaryOperation > | |
| DenseParVec< IT, NT > | Reduce (Dim dim, _BinaryOperation __binary_op, NT id, _UnaryOperation __unary_op) const |
| template<typename _BinaryOperation > | |
| DenseParVec< IT, NT > | Reduce (Dim dim, _BinaryOperation __binary_op, NT id) const |
| template<typename VT , typename _BinaryOperation , typename _UnaryOperation > | |
| void | Reduce (DenseParVec< IT, VT > &rvec, Dim dim, _BinaryOperation __binary_op, VT id, _UnaryOperation __unary_op) const |
| template<typename VT , typename _BinaryOperation > | |
| void | Reduce (DenseParVec< IT, VT > &rvec, Dim dim, _BinaryOperation __binary_op, VT 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 _UnaryOperation > | |
| void | Apply (_UnaryOperation __unary_op) |
| IT | RemoveLoops () |
| template<typename LIT , typename OT > | |
| void | OptimizeForGraph500 (OptBuf< LIT, OT > &optbuf) |
| void | ActivateThreading (int numsplits) |
| template<typename _UnaryOperation > | |
| SpParMat< IT, NT, DER > | Prune (_UnaryOperation __unary_op, bool inPlace=true) |
| template<typename _BinaryOperation > | |
| void | UpdateDense (DenseParMat< IT, NT > &rhs, _BinaryOperation __binary_op) const |
| void | Dump (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 |
| SpParMat< IT, NT, DER > | SubsRefCol (const vector< IT > &ci) const |
| Column indexing with special parallel semantics. | |
| template<typename SelectFirstSR , typename SelectSecondSR > | |
| SpParMat< IT, NT, DER > | SubsRef_SR (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, bool inplace=false) |
| General indexing with serial semantics. | |
| SpParMat< IT, NT, DER > | operator() (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, 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 | SpAsgn (const FullyDistVec< IT, IT > &ri, const FullyDistVec< IT, IT > &ci, SpParMat< IT, NT, DER > &B) |
| SpParMat< IT, NT, DER > | operator() (const SpParVec< IT, IT > &ri, const SpParVec< IT, IT > &ci) const |
| bool | operator== (const SpParMat< IT, NT, DER > &rhs) const |
| template<class HANDLER > | |
| void | ReadDistribute (const string &filename, int master, bool nonum, HANDLER handler, bool transpose=false, bool pario=false) |
| void | ReadDistribute (const string &filename, int master, bool nonum=false, bool pario=false) |
| template<class HANDLER > | |
| void | SaveGathered (string filename, HANDLER handler, bool transpose=false) const |
| void | SaveGathered (string filename) const |
| ofstream & | put (ofstream &outfile) const |
| void | PrintForPatoh (string filename) const |
| shared_ptr< CommGrid > | getcommgrid () const |
| DER::LocalIT | getlocalrows () const |
| DER::LocalIT | getlocalcols () const |
| DER::LocalIT | getlocalnnz () const |
| DER & | seq () |
Friends | |
| class | DenseParMat |
| template<typename SR , typename NUO , typename UDERO , typename IU , typename NU1 , typename NU2 , typename UDER1 , typename UDER2 > | |
| SpParMat< IU, NUO, UDERO > | Mult_AnXBn_DoubleBuff (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, UDERO > | Mult_AnXBn_Synch (SpParMat< IU, NU1, UDER1 > &A, SpParMat< IU, NU2, UDER2 > &B, bool clearA, bool clearB) |
| 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 IU , typename NUM , typename NUV , typename UDER > | |
| DenseParVec< IU, typename promote_trait< NUM, NUV > ::T_promote > | SpMV (const SpParMat< IU, NUM, UDER > &A, const DenseParVec< IU, NUV > &x) |
| 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, RETDER > | EWiseApply (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, 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) |
| 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) |
| 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 > | |
| ofstream & | operator<< (ofstream &outfile, const SpParMat< IU, NU, UDER > &s) |
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 66 of file SpParMat.h.
Definition at line 71 of file SpParMat.h.
Definition at line 72 of file SpParMat.h.
Definition at line 69 of file SpParMat.h.
Definition at line 70 of file SpParMat.h.
If there is a single file read by the master process only, use this and then call ReadDistribute() Since this is the default constructor, you don't need to explicitly call it, just a declaration will call it
Definition at line 82 of file SpParMat.cpp.
| SpParMat< IT, NT, DER >::SpParMat | ( | shared_ptr< CommGrid > | grid | ) |
Definition at line 70 of file SpParMat.cpp.
| SpParMat< IT, NT, DER >::SpParMat | ( | DER * | myseq, |
| shared_ptr< CommGrid > | grid | ||
| ) |
Definition at line 63 of file SpParMat.cpp.
| SpParMat< IT, NT, DER >::SpParMat | ( | 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 43 of file SpParMat.cpp.
| SpParMat< IT, NT, DER >::SpParMat | ( | DER * | myseq, |
| MPI_Comm & | world | ||
| ) |
Definition at line 56 of file SpParMat.cpp.
| SpParMat< IT, NT, DER >::SpParMat | ( | const DistEdgeList< DELIT > & | rhs, |
| bool | removeloops = true |
||
| ) |
Definition at line 1130 of file SpParMat.cpp.
| SpParMat< IT, NT, DER >::SpParMat | ( | const SpParMat< IT, NT, DER > & | rhs | ) |
Definition at line 161 of file SpParMat.cpp.
| 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 | ||
| ) |
All vectors are zero-based indexed (as usual)
Definition at line 1070 of file SpParMat.cpp.
| SpParMat< IT, NT, DER >::SpParMat | ( | IT | total_m, |
| IT | total_n, | ||
| const FullyDistVec< IT, IT > & | distrows, | ||
| const FullyDistVec< IT, IT > & | distcols, | ||
| const NT & | val | ||
| ) |
Definition at line 1101 of file SpParMat.cpp.
Definition at line 91 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::ActivateThreading | ( | int | numsplits | ) |
Definition at line 1307 of file SpParMat.cpp.
|
inline |
Definition at line 126 of file SpParMat.h.
| void SpParMat< IT, NT, DER >::DimApply | ( | Dim | dim, |
| const FullyDistVec< IT, NT > & | v, | ||
| _BinaryOperation | __binary_op | ||
| ) |
Definition at line 246 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::DimScale | ( | const DenseParVec< IT, NT > & | v, |
| Dim | dim | ||
| ) |
This file is a placeholder for some obsolete or lesser used functions that take diagonally distributed vectors as inputs
Definition at line 44 of file SpParMatExt.cpp.
| void SpParMat< IT, NT, DER >::Dump | ( | string | filename | ) | const |
Definition at line 105 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::EWiseMult | ( | const SpParMat< IT, NT, DER > & | rhs, |
| bool | exclude | ||
| ) |
Definition at line 930 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::EWiseScale | ( | const DenseParMat< IT, NT > & | rhs | ) |
Definition at line 945 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::Find | ( | FullyDistVec< IT, IT > & | distrows, |
| FullyDistVec< IT, IT > & | distcols, | ||
| FullyDistVec< IT, NT > & | distvals | ||
| ) | const |
deprecated: use DimApply instead
The input parameters' identity (zero) elements as well as their communication grid is preserved while outputting
Definition at line 2309 of file SpParMat.cpp.
| void 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 2387 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::FreeMemory | ( | ) |
Definition at line 97 of file SpParMat.cpp.
|
inline |
Definition at line 223 of file SpParMat.h.
|
inline |
Definition at line 225 of file SpParMat.h.
|
inline |
Definition at line 226 of file SpParMat.h.
|
inline |
Definition at line 224 of file SpParMat.h.
| IT SpParMat< IT, NT, DER >::getncol | ( | ) | const |
Definition at line 236 of file SpParMat.cpp.
| IT SpParMat< IT, NT, DER >::getnnz | ( | ) | const |
Definition at line 218 of file SpParMat.cpp.
| IT SpParMat< IT, NT, DER >::getnrow | ( | ) | const |
Definition at line 227 of file SpParMat.cpp.
| float SpParMat< IT, NT, DER >::LoadImbalance | ( | ) | const |
Definition at line 207 of file SpParMat.cpp.
| SpParMat< IT, NT, DER >::operator SpParMat< IT, NNT, NDER > | ( | ) | const |
Type conversion operator.
Definition at line 592 of file SpParMat.cpp.
| 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 601 of file SpParMat.cpp.
|
inline |
Definition at line 170 of file SpParMat.h.
| SpParMat< IT, NT, DER > SpParMat< IT, NT, DER >::operator() | ( | const SpParVec< IT, IT > & | ri, |
| const SpParVec< IT, IT > & | ci | ||
| ) | const |
Generalized sparse matrix indexing (ri/ci are 0-based indexed) Both the storage and the actual values in SpParVec should be IT The index vectors are distributed on diagonal 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 114 of file SpParMatExt.cpp.
| SpParMat< IT, NT, DER > & SpParMat< IT, NT, DER >::operator+= | ( | const SpParMat< IT, NT, DER > & | rhs | ) |
Definition at line 186 of file SpParMat.cpp.
| SpParMat< IT, NT, DER > & 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
Definition at line 170 of file SpParMat.cpp.
| bool SpParMat< IT, NT, DER >::operator== | ( | const SpParMat< IT, NT, DER > & | rhs | ) | const |
Definition at line 1006 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::OptimizeForGraph500 | ( | OptBuf< LIT, OT > & | optbuf | ) |
Definition at line 1274 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::PrintForPatoh | ( | string | filename | ) | const |
Definition at line 1590 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::PrintInfo | ( | ) | const |
Definition at line 982 of file SpParMat.cpp.
|
inline |
Definition at line 138 of file SpParMat.h.
| void 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 894 of file SpParMat.cpp.
| ofstream & SpParMat< IT, NT, DER >::put | ( | ofstream & | outfile | ) | const |
Definition at line 2457 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::ReadDistribute | ( | const 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 1769 of file SpParMat.cpp.
|
inline |
Definition at line 211 of file SpParMat.h.
| DenseParVec< IT, NT > SpParMat< IT, NT, DER >::Reduce | ( | Dim | dim, |
| _BinaryOperation | __binary_op, | ||
| NT | id, | ||
| _UnaryOperation | __unary_op | ||
| ) | const |
Definition at line 333 of file SpParMat.cpp.
| DenseParVec< IT, NT > SpParMat< IT, NT, DER >::Reduce | ( | Dim | dim, |
| _BinaryOperation | __binary_op, | ||
| NT | id | ||
| ) | const |
Definition at line 343 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::Reduce | ( | DenseParVec< IT, VT > & | rvec, |
| Dim | dim, | ||
| _BinaryOperation | __binary_op, | ||
| VT | id, | ||
| _UnaryOperation | __unary_op | ||
| ) | const |
Reduce along the column/row into a vector
| [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} |
| [out] | rvec | {the return vector, specified as an output parameter to allow arbitrary return types via VT} |
Definition at line 519 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::Reduce | ( | DenseParVec< IT, VT > & | rvec, |
| Dim | dim, | ||
| _BinaryOperation | __binary_op, | ||
| VT | id | ||
| ) | const |
Definition at line 352 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::Reduce | ( | FullyDistVec< GIT, VT > & | rvec, |
| Dim | dim, | ||
| _BinaryOperation | __binary_op, | ||
| VT | id, | ||
| _UnaryOperation | __unary_op | ||
| ) | const |
Definition at line 366 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::Reduce | ( | FullyDistVec< GIT, VT > & | rvec, |
| Dim | dim, | ||
| _BinaryOperation | __binary_op, | ||
| VT | id | ||
| ) | const |
Definition at line 359 of file SpParMat.cpp.
| IT SpParMat< IT, NT, DER >::RemoveLoops | ( | ) |
Definition at line 1256 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::SaveGathered | ( | string | filename, |
| HANDLER | handler, | ||
| bool | transpose = false |
||
| ) | const |
Definition at line 1469 of file SpParMat.cpp.
|
inline |
Definition at line 218 of file SpParMat.h.
|
inline |
Definition at line 227 of file SpParMat.h.
| void SpParMat< IT, NT, DER >::SpAsgn | ( | const FullyDistVec< IT, IT > & | ri, |
| const FullyDistVec< IT, IT > & | ci, | ||
| SpParMat< IT, NT, DER > & | B | ||
| ) |
Definition at line 851 of file SpParMat.cpp.
| void 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 1319 of file SpParMat.cpp.
| SpParMat< IT, NT, DER > 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 628 of file SpParMat.cpp.
| SpParMat< IT, NT, DER > SpParMat< IT, NT, DER >::SubsRefCol | ( | const 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 612 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::Transpose | ( | ) |
Definition at line 1407 of file SpParMat.cpp.
| void SpParMat< IT, NT, DER >::UpdateDense | ( | DenseParMat< IT, NT > & | rhs, |
| _BinaryOperation | __binary_op | ||
| ) | const |
Definition at line 960 of file SpParMat.cpp.
|
friend |
Definition at line 313 of file SpParMat.h.
|
friend |
Definition at line 1080 of file ParFriends.h.
|
friend |
Definition at line 1097 of file ParFriends.h.
|
friend |
|
friend |
Step 3 of the sparse SpMV algorithm, with the semiring
| [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 570 of file ParFriends.h.
|
friend |
|
friend |
|
friend |
Friend declarations.
|
friend |
|
friend |
|
friend |
|
friend |
Definition at line 2464 of file SpParMat.cpp.
|
friend |
Definition at line 735 of file ParFriendsExt.h.
|
friend |
Old version that is no longer considered optimal Kept for legacy purposes To be removed when other functionals are fully tested.
Definition at line 913 of file ParFriends.h.
|
friend |
Parallel dense SpMV
Definition at line 839 of file ParFriends.h.
|
friend |
Definition at line 462 of file ParFriends.h.
|
friend |
Definition at line 813 of file ParFriends.h.
|
friend |
This version is the most flexible sparse matrix X sparse vector [Used in KDT] It accepts different types for the matrix (NUM), the input vector (IVT) and the output vector (OVT) without relying on automatic type promotion Input (x) and output (y) vectors can be ALIASED because y is not written until the algorithm is done with x.
Definition at line 728 of file ParFriends.h.
1.8.1.1