COMBINATORIAL_BLAS  1.6
FullyDistVec< IT, NT > Class Template Reference

#include <FullyDistSpVec.h>

Inheritance diagram for FullyDistVec< IT, NT >:
FullyDist< IT, NT, CombBLAS::disable_if< CombBLAS::is_boolean< NT >::value, NT >::type >

Classes

class  retTrue
 
class  ScalarReadSaveHandler
 

Public Member Functions

 FullyDistVec ()
 
 FullyDistVec (IT globallen, NT initval)
 
 FullyDistVec (shared_ptr< CommGrid > grid)
 
 FullyDistVec (shared_ptr< CommGrid > grid, IT globallen, NT initval)
 
 FullyDistVec (const FullyDistSpVec< IT, NT > &rhs)
 
 FullyDistVec (const vector< NT > &fillarr, shared_ptr< CommGrid > grid)
 
template<class ITRHS , class NTRHS >
 FullyDistVec (const FullyDistVec< ITRHS, NTRHS > &rhs)
 
template<class HANDLER >
void ParallelWrite (const string &filename, bool onebased, HANDLER handler, bool includeindices=true)
 
void ParallelWrite (const string &filename, bool onebased, bool includeindices=true)
 
template<typename _BinaryOperation >
void ParallelRead (const string &filename, bool onebased, _BinaryOperation BinOp)
 
template<class HANDLER >
ifstream & ReadDistribute (ifstream &infile, int master, HANDLER handler)
 
ifstream & ReadDistribute (ifstream &infile, int master)
 
template<class HANDLER >
void SaveGathered (ofstream &outfile, int master, HANDLER handler, bool printProcSplits=false)
 
void SaveGathered (ofstream &outfile, int master)
 
template<class ITRHS , class NTRHS >
FullyDistVec< IT, NT > & operator= (const FullyDistVec< ITRHS, NTRHS > &rhs)
 
FullyDistVec< IT, NT > & operator= (const FullyDistVec< IT, NT > &rhs)
 Actual assignment operator. More...
 
FullyDistVec< IT, NT > & operator= (const FullyDistSpVec< IT, NT > &rhs)
 FullyDistSpVec->FullyDistVec conversion operator. More...
 
FullyDistVec< IT, NT > & operator= (NT fixedval)
 
FullyDistVec< IT, NT > operator() (const FullyDistVec< IT, IT > &ri) const
 
FullyDistVec< IT, NT > & operator+= (const FullyDistSpVec< IT, NT > &rhs)
 
FullyDistVec< IT, NT > & operator+= (const FullyDistVec< IT, NT > &rhs)
 
FullyDistVec< IT, NT > & operator-= (const FullyDistSpVec< IT, NT > &rhs)
 
FullyDistVec< IT, NT > & operator-= (const FullyDistVec< IT, NT > &rhs)
 
bool operator== (const FullyDistVec< IT, NT > &rhs) const
 
void SetElement (IT indx, NT numx)
 
void SetLocalElement (IT index, NT value)
 
NT GetElement (IT indx) const
 
NT operator[] (IT indx) const
 
void Set (const FullyDistSpVec< IT, NT > &rhs)
 
template<class NT1 , typename _BinaryOperationIdx , typename _BinaryOperationVal >
void GSet (const FullyDistSpVec< IT, NT1 > &spVec, _BinaryOperationIdx __binopIdx, _BinaryOperationVal __binopVal, MPI_Win win)
 
template<class NT1 , typename _BinaryOperationIdx >
FullyDistSpVec< IT, NT > GGet (const FullyDistSpVec< IT, NT1 > &spVec, _BinaryOperationIdx __binopIdx, NT nullValue)
 
void iota (IT globalsize, NT first)
 
void RandPerm ()
 
FullyDistVec< IT, IT > sort ()
 
IT LocArrSize () const
 
const NT * GetLocArr () const
 
template<typename _Predicate >
FullyDistSpVec< IT, NT > Find (_Predicate pred) const
 Return the elements for which pred is true. More...
 
FullyDistSpVec< IT, NT > Find (NT val) const
 Return the elements val is found. More...
 
template<typename _Predicate >
FullyDistVec< IT, IT > FindInds (_Predicate pred) const
 Return the indices where pred is true. More...
 
template<typename _Predicate >
IT Count (_Predicate pred) const
 Return the number of elements for which pred is true. More...
 
template<typename _UnaryOperation >
void Apply (_UnaryOperation __unary_op)
 
template<typename _BinaryOperation >
void ApplyInd (_BinaryOperation __binary_op)
 
template<typename _UnaryOperation , typename IRRELEVANT_NT >
void Apply (_UnaryOperation __unary_op, const FullyDistSpVec< IT, IRRELEVANT_NT > &mask)
 
template<typename _BinaryOperation , typename _BinaryPredicate , class NT2 >
void EWiseApply (const FullyDistVec< IT, NT2 > &other, _BinaryOperation __binary_op, _BinaryPredicate _do_op, const bool useExtendedBinOp)
 
template<typename _BinaryOperation , typename _BinaryPredicate , class NT2 >
void EWiseApply (const FullyDistSpVec< IT, NT2 > &other, _BinaryOperation __binary_op, _BinaryPredicate _do_op, bool applyNulls, NT2 nullValue, const bool useExtendedBinOp)
 
template<typename _BinaryOperation , typename _BinaryPredicate , class NT2 >
void EWiseApply (const FullyDistVec< IT, NT2 > &other, _BinaryOperation __binary_op, _BinaryPredicate _do_op)
 
template<typename _BinaryOperation , typename _BinaryPredicate , class NT2 >
void EWiseApply (const FullyDistSpVec< IT, NT2 > &other, _BinaryOperation __binary_op, _BinaryPredicate _do_op, bool applyNulls, NT2 nullValue)
 
template<typename _BinaryOperation , class NT2 >
void EWiseApply (const FullyDistVec< IT, NT2 > &other, _BinaryOperation __binary_op)
 
template<typename _BinaryOperation , class NT2 >
void EWiseApply (const FullyDistSpVec< IT, NT2 > &other, _BinaryOperation __binary_op, bool applyNulls, NT2 nullValue)
 
void PrintToFile (string prefix)
 
void PrintInfo (string vectorname) const
 
void DebugPrint ()
 
shared_ptr< CommGridgetcommgrid () const
 
pair< IT, NT > MinElement () const
 
template<typename _BinaryOperation >
NT Reduce (_BinaryOperation __binary_op, NT identity) const
 
template<typename OUT , typename _BinaryOperation , typename _UnaryOperation >
OUT Reduce (_BinaryOperation __binary_op, OUT default_val, _UnaryOperation __unary_op) const
 Reduce can be used to implement max_element, for instance. More...
 
void SelectCandidates (double nver)
 ABAB: Put concept check, NT should be integer for this to make sense. More...
 
template<typename _BinaryOperation , typename OUT = typename std::result_of<_BinaryOperation&(NT,NT)>::type>
void EWiseOut (const FullyDistVec< IT, NT > &rhs, _BinaryOperation __binary_op, FullyDistVec< IT, OUT > &result)
 

Friends

template<class IU , class NU >
class DenseParMat
 
template<class IU , class NU , class UDER >
class SpParMat
 
template<class IU , class NU >
class FullyDistVec
 
template<class IU , class NU >
class FullyDistSpVec
 
template<class IU , class NU >
class DenseVectorLocalIterator
 
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 IU , typename NU1 , typename NU2 >
FullyDistSpVec< IU, typename promote_trait< NU1, NU2 >::T_promote > EWiseMult (const FullyDistSpVec< IU, NU1 > &V, const FullyDistVec< IU, NU2 > &W, bool exclude, NU2 zero)
 
template<typename IU , typename NU1 , typename NU2 , typename _BinaryOperation >
FullyDistSpVec< IU, typename promote_trait< NU1, NU2 >::T_promote > EWiseApply (const FullyDistSpVec< IU, NU1 > &V, const FullyDistVec< IU, NU2 > &W, _BinaryOperation _binary_op, typename promote_trait< NU1, NU2 >::T_promote zero)
 
template<typename RET , typename IU , typename NU1 , typename NU2 , typename _BinaryOperation , typename _BinaryPredicate >
FullyDistSpVec< IU, RET > EWiseApply (const FullyDistSpVec< IU, NU1 > &V, const FullyDistVec< IU, NU2 > &W, _BinaryOperation _binary_op, _BinaryPredicate _doOp, bool allowVNulls, NU1 Vzero, const bool useExtendedBinOp)
 
template<typename RET , typename IU , typename NU1 , typename NU2 , typename _BinaryOperation , typename _BinaryPredicate >
FullyDistSpVec< IU, RET > EWiseApply_threaded (const FullyDistSpVec< IU, NU1 > &V, const FullyDistVec< IU, NU2 > &W, _BinaryOperation _binary_op, _BinaryPredicate _doOp, bool allowVNulls, NU1 Vzero, const bool useExtendedBinOp)
 
template<typename IU >
void RenameVertices (DistEdgeList< IU > &DEL)
 
template<typename IU , typename NU >
FullyDistVec< IU, NU > Concatenate (vector< FullyDistVec< IU, NU > > &vecs)
 
template<typename IU , typename NU >
void Augment (FullyDistVec< int64_t, int64_t > &mateRow2Col, FullyDistVec< int64_t, int64_t > &mateCol2Row, FullyDistVec< int64_t, int64_t > &parentsRow, FullyDistVec< int64_t, int64_t > &leaves)
 
template<class IU , class DER >
SpParMat< IU, bool, DER > PermMat (const FullyDistVec< IU, IU > &ri, const IU ncol)
 
void maximumMatching (SpParMat< int64_t, bool, SpDCCols< int64_t, bool > > &A, FullyDistVec< int64_t, int64_t > &mateRow2Col, FullyDistVec< int64_t, int64_t > &mateCol2Row)
 

Detailed Description

template<class IT, class NT>
class FullyDistVec< IT, NT >

Definition at line 51 of file FullyDistSpVec.h.

Constructor & Destructor Documentation

◆ FullyDistVec() [1/7]

template<class IT , class NT >
FullyDistVec< IT, NT >::FullyDistVec ( )

Definition at line 34 of file FullyDistVec.cpp.

◆ FullyDistVec() [2/7]

template<class IT , class NT >
FullyDistVec< IT, NT >::FullyDistVec ( IT  globallen,
NT  initval 
)

Definition at line 40 of file FullyDistVec.cpp.

◆ FullyDistVec() [3/7]

template<class IT , class NT >
FullyDistVec< IT, NT >::FullyDistVec ( shared_ptr< CommGrid grid)

Definition at line 48 of file FullyDistVec.cpp.

◆ FullyDistVec() [4/7]

template<class IT , class NT >
FullyDistVec< IT, NT >::FullyDistVec ( shared_ptr< CommGrid grid,
IT  globallen,
NT  initval 
)

Definition at line 53 of file FullyDistVec.cpp.

◆ FullyDistVec() [5/7]

template<class IT , class NT >
FullyDistVec< IT, NT >::FullyDistVec ( const FullyDistSpVec< IT, NT > &  rhs)

Definition at line 60 of file FullyDistVec.cpp.

◆ FullyDistVec() [6/7]

template<class IT , class NT >
FullyDistVec< IT, NT >::FullyDistVec ( const vector< NT > &  fillarr,
shared_ptr< CommGrid grid 
)

Initialize a FullyDistVec with a separate vector from each processor Optimizes for the common case where all fillarr's in separate processors are of the same size

Definition at line 85 of file FullyDistVec.cpp.

◆ FullyDistVec() [7/7]

template<class IT , class NT >
template<class ITRHS , class NTRHS >
FullyDistVec< IT, NT >::FullyDistVec ( const FullyDistVec< ITRHS, NTRHS > &  rhs)

Definition at line 69 of file FullyDistVec.cpp.

Member Function Documentation

◆ Apply() [1/2]

template<class IT, class NT>
template<typename _UnaryOperation >
void FullyDistVec< IT, NT >::Apply ( _UnaryOperation  __unary_op)
inline

Definition at line 180 of file FullyDistVec.h.

◆ Apply() [2/2]

template<class IT , class NT >
template<typename _UnaryOperation , typename IRRELEVANT_NT >
void FullyDistVec< IT, NT >::Apply ( _UnaryOperation  __unary_op,
const FullyDistSpVec< IT, IRRELEVANT_NT > &  mask 
)

Definition at line 644 of file FullyDistVec.cpp.

◆ ApplyInd()

template<class IT, class NT>
template<typename _BinaryOperation >
void FullyDistVec< IT, NT >::ApplyInd ( _BinaryOperation  __binary_op)
inline

Definition at line 186 of file FullyDistVec.h.

◆ Count()

template<class IT , class NT >
template<typename _Predicate >
IT FullyDistVec< IT, NT >::Count ( _Predicate  pred) const

Return the number of elements for which pred is true.

Definition at line 391 of file FullyDistVec.cpp.

◆ DebugPrint()

template<class IT , class NT >
void FullyDistVec< IT, NT >::DebugPrint ( )

Definition at line 590 of file FullyDistVec.cpp.

◆ EWiseApply() [1/6]

template<class IT , class NT >
template<typename _BinaryOperation , typename _BinaryPredicate , class NT2 >
void FullyDistVec< IT, NT >::EWiseApply ( const FullyDistVec< IT, NT2 > &  other,
_BinaryOperation  __binary_op,
_BinaryPredicate  _do_op,
const bool  useExtendedBinOp 
)

Definition at line 656 of file FullyDistVec.cpp.

◆ EWiseApply() [2/6]

template<class IT , class NT >
template<typename _BinaryOperation , typename _BinaryPredicate , class NT2 >
void FullyDistVec< IT, NT >::EWiseApply ( const FullyDistSpVec< IT, NT2 > &  other,
_BinaryOperation  __binary_op,
_BinaryPredicate  _do_op,
bool  applyNulls,
NT2  nullValue,
const bool  useExtendedBinOp 
)

Definition at line 694 of file FullyDistVec.cpp.

◆ EWiseApply() [3/6]

template<class IT, class NT>
template<typename _BinaryOperation , typename _BinaryPredicate , class NT2 >
void FullyDistVec< IT, NT >::EWiseApply ( const FullyDistVec< IT, NT2 > &  other,
_BinaryOperation  __binary_op,
_BinaryPredicate  _do_op 
)
inline

Definition at line 207 of file FullyDistVec.h.

◆ EWiseApply() [4/6]

template<class IT, class NT>
template<typename _BinaryOperation , typename _BinaryPredicate , class NT2 >
void FullyDistVec< IT, NT >::EWiseApply ( const FullyDistSpVec< IT, NT2 > &  other,
_BinaryOperation  __binary_op,
_BinaryPredicate  _do_op,
bool  applyNulls,
NT2  nullValue 
)
inline

Definition at line 215 of file FullyDistVec.h.

◆ EWiseApply() [5/6]

template<class IT, class NT>
template<typename _BinaryOperation , class NT2 >
void FullyDistVec< IT, NT >::EWiseApply ( const FullyDistVec< IT, NT2 > &  other,
_BinaryOperation  __binary_op 
)
inline

Definition at line 234 of file FullyDistVec.h.

◆ EWiseApply() [6/6]

template<class IT, class NT>
template<typename _BinaryOperation , class NT2 >
void FullyDistVec< IT, NT >::EWiseApply ( const FullyDistSpVec< IT, NT2 > &  other,
_BinaryOperation  __binary_op,
bool  applyNulls,
NT2  nullValue 
)
inline

Definition at line 239 of file FullyDistVec.h.

◆ EWiseOut()

template<class IT , class NT >
template<typename _BinaryOperation , typename OUT >
void FullyDistVec< IT, NT >::EWiseOut ( const FullyDistVec< IT, NT > &  rhs,
_BinaryOperation  __binary_op,
FullyDistVec< IT, OUT > &  result 
)

Perform __binary_op(*this[i], rhs[i]) for every element in rhs and *this, which are of the same size. write the result output vector, hence the name EWiseOut

Definition at line 336 of file FullyDistVec.cpp.

◆ Find() [1/2]

template<class IT , class NT >
template<typename _Predicate >
FullyDistSpVec< IT, NT > FullyDistVec< IT, NT >::Find ( _Predicate  pred) const

Return the elements for which pred is true.

Requires no communication because FullyDistSpVec (the return object) is distributed based on length, not nonzero counts

Definition at line 467 of file FullyDistVec.cpp.

◆ Find() [2/2]

template<class IT , class NT >
FullyDistSpVec< IT, NT > FullyDistVec< IT, NT >::Find ( NT  val) const

Return the elements val is found.

Retain a sparse vector with indices where the supplied value is found.

Definition at line 486 of file FullyDistVec.cpp.

◆ FindInds()

template<class IT , class NT >
template<typename _Predicate >
FullyDistVec< IT, IT > FullyDistVec< IT, NT >::FindInds ( _Predicate  pred) const

Return the indices where pred is true.

Returns a dense vector of global indices for which the predicate is satisfied

Definition at line 403 of file FullyDistVec.cpp.

◆ getcommgrid()

template<class IT, class NT>
shared_ptr<CommGrid> FullyDistVec< IT, NT >::getcommgrid ( ) const
inline

Definition at line 255 of file FullyDistVec.h.

◆ GetElement()

template<class IT , class NT >
NT FullyDistVec< IT, NT >::GetElement ( IT  indx) const

Definition at line 552 of file FullyDistVec.cpp.

◆ GetLocArr()

template<class IT, class NT>
const NT* FullyDistVec< IT, NT >::GetLocArr ( ) const
inline

Definition at line 165 of file FullyDistVec.h.

◆ GGet()

template<class IT , class NT >
template<class NT1 , typename _BinaryOperationIdx >
FullyDistSpVec< IT, NT > FullyDistVec< IT, NT >::GGet ( const FullyDistSpVec< IT, NT1 > &  spVec,
_BinaryOperationIdx  __binopIdx,
NT  nullValue 
)

Definition at line 1146 of file FullyDistVec.cpp.

◆ GSet()

template<class IT , class NT >
template<class NT1 , typename _BinaryOperationIdx , typename _BinaryOperationVal >
void FullyDistVec< IT, NT >::GSet ( const FullyDistSpVec< IT, NT1 > &  spVec,
_BinaryOperationIdx  __binopIdx,
_BinaryOperationVal  __binopVal,
MPI_Win  win 
)

Definition at line 1074 of file FullyDistVec.cpp.

◆ iota()

template<class IT , class NT >
void FullyDistVec< IT, NT >::iota ( IT  globalsize,
NT  first 
)

Definition at line 926 of file FullyDistVec.cpp.

◆ LocArrSize()

template<class IT, class NT>
IT FullyDistVec< IT, NT >::LocArrSize ( ) const
inline

Definition at line 163 of file FullyDistVec.h.

◆ MinElement()

template<class IT , class NT >
pair< IT, NT > FullyDistVec< IT, NT >::MinElement ( ) const

Definition at line 146 of file FullyDistVec.cpp.

◆ operator()()

template<class IT , class NT >
FullyDistVec< IT, NT > FullyDistVec< IT, NT >::operator() ( const FullyDistVec< IT, IT > &  ri) const

Definition at line 936 of file FullyDistVec.cpp.

◆ operator+=() [1/2]

template<class IT , class NT >
FullyDistVec< IT, NT > & FullyDistVec< IT, NT >::operator+= ( const FullyDistSpVec< IT, NT > &  rhs)

Let the compiler create an assignment operator and call base class' assignment operator automatically

Definition at line 289 of file FullyDistVec.cpp.

◆ operator+=() [2/2]

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

Definition at line 343 of file FullyDistVec.cpp.

◆ operator-=() [1/2]

template<class IT , class NT >
FullyDistVec< IT, NT > & FullyDistVec< IT, NT >::operator-= ( const FullyDistSpVec< IT, NT > &  rhs)

Definition at line 308 of file FullyDistVec.cpp.

◆ operator-=() [2/2]

template<class IT , class NT >
FullyDistVec< IT, NT > & FullyDistVec< IT, NT >::operator-= ( const FullyDistVec< IT, NT > &  rhs)

Definition at line 361 of file FullyDistVec.cpp.

◆ operator=() [1/4]

template<class IT , class NT >
template<class ITRHS , class NTRHS >
FullyDistVec< IT, NT > & FullyDistVec< IT, NT >::operator= ( const FullyDistVec< ITRHS, NTRHS > &  rhs)

Definition at line 235 of file FullyDistVec.cpp.

◆ operator=() [2/4]

template<class IT , class NT >
FullyDistVec< IT, NT > & FullyDistVec< IT, NT >::operator= ( const FullyDistVec< IT, NT > &  rhs)

Actual assignment operator.

Definition at line 253 of file FullyDistVec.cpp.

◆ operator=() [3/4]

template<class IT , class NT >
FullyDistVec< IT, NT > & FullyDistVec< IT, NT >::operator= ( const FullyDistSpVec< IT, NT > &  rhs)

FullyDistSpVec->FullyDistVec conversion operator.

Definition at line 264 of file FullyDistVec.cpp.

◆ operator=() [4/4]

template<class IT, class NT>
FullyDistVec<IT,NT>& FullyDistVec< IT, NT >::operator= ( NT  fixedval)
inline

Definition at line 124 of file FullyDistVec.h.

◆ operator==()

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

Definition at line 379 of file FullyDistVec.cpp.

◆ operator[]()

template<class IT, class NT>
NT FullyDistVec< IT, NT >::operator[] ( IT  indx) const
inline

Definition at line 144 of file FullyDistVec.h.

◆ ParallelRead()

template<class IT, class NT>
template<typename _BinaryOperation >
void FullyDistVec< IT, NT >::ParallelRead ( const string &  filename,
bool  onebased,
_BinaryOperation  BinOp 
)
inline

Definition at line 103 of file FullyDistVec.h.

◆ ParallelWrite() [1/2]

template<class IT, class NT>
template<class HANDLER >
void FullyDistVec< IT, NT >::ParallelWrite ( const string &  filename,
bool  onebased,
HANDLER  handler,
bool  includeindices = true 
)
inline

Definition at line 94 of file FullyDistVec.h.

◆ ParallelWrite() [2/2]

template<class IT, class NT>
void FullyDistVec< IT, NT >::ParallelWrite ( const string &  filename,
bool  onebased,
bool  includeindices = true 
)
inline

Definition at line 99 of file FullyDistVec.h.

◆ PrintInfo()

template<class IT , class NT >
void FullyDistVec< IT, NT >::PrintInfo ( string  vectorname) const

Definition at line 1026 of file FullyDistVec.cpp.

◆ PrintToFile()

template<class IT, class NT>
void FullyDistVec< IT, NT >::PrintToFile ( string  prefix)
inline

Definition at line 244 of file FullyDistVec.h.

◆ RandPerm()

template<class IT , class NT >
void FullyDistVec< IT, NT >::RandPerm ( )

Definition at line 793 of file FullyDistVec.cpp.

◆ ReadDistribute() [1/2]

template<class IT , class NT >
template<class HANDLER >
ifstream & FullyDistVec< IT, NT >::ReadDistribute ( ifstream &  infile,
int  master,
HANDLER  handler 
)

Definition at line 505 of file FullyDistVec.cpp.

◆ ReadDistribute() [2/2]

template<class IT, class NT>
ifstream& FullyDistVec< IT, NT >::ReadDistribute ( ifstream &  infile,
int  master 
)
inline

Definition at line 112 of file FullyDistVec.h.

◆ Reduce() [1/2]

template<class IT , class NT >
template<typename _BinaryOperation >
NT FullyDistVec< IT, NT >::Reduce ( _BinaryOperation  __binary_op,
NT  identity 
) const

Definition at line 169 of file FullyDistVec.cpp.

◆ Reduce() [2/2]

template<class IT , class NT >
template<typename OUT , typename _BinaryOperation , typename _UnaryOperation >
OUT FullyDistVec< IT, NT >::Reduce ( _BinaryOperation  __binary_op,
OUT  default_val,
_UnaryOperation  __unary_op 
) const

Reduce can be used to implement max_element, for instance.

Definition at line 181 of file FullyDistVec.cpp.

◆ SaveGathered() [1/2]

template<class IT , class NT >
template<class HANDLER >
void FullyDistVec< IT, NT >::SaveGathered ( ofstream &  outfile,
int  master,
HANDLER  handler,
bool  printProcSplits = false 
)

Definition at line 516 of file FullyDistVec.cpp.

◆ SaveGathered() [2/2]

template<class IT, class NT>
void FullyDistVec< IT, NT >::SaveGathered ( ofstream &  outfile,
int  master 
)
inline

Definition at line 116 of file FullyDistVec.h.

◆ SelectCandidates()

template<class IT , class NT >
void FullyDistVec< IT, NT >::SelectCandidates ( double  nver)

ABAB: Put concept check, NT should be integer for this to make sense.

Definition at line 206 of file FullyDistVec.cpp.

◆ Set()

template<class IT , class NT >
void FullyDistVec< IT, NT >::Set ( const FullyDistSpVec< IT, NT > &  rhs)

Definition at line 1038 of file FullyDistVec.cpp.

◆ SetElement()

template<class IT , class NT >
void FullyDistVec< IT, NT >::SetElement ( IT  indx,
NT  numx 
)

Definition at line 523 of file FullyDistVec.cpp.

◆ SetLocalElement()

template<class IT, class NT>
void FullyDistVec< IT, NT >::SetLocalElement ( IT  index,
NT  value 
)
inline

Definition at line 142 of file FullyDistVec.h.

◆ sort()

template<class IT , class NT >
FullyDistVec< IT, IT > FullyDistVec< IT, NT >::sort ( )

Definition at line 756 of file FullyDistVec.cpp.

Friends And Related Function Documentation

◆ Augment

template<class IT, class NT>
template<typename IU , typename NU >
void Augment ( FullyDistVec< int64_t, int64_t > &  mateRow2Col,
FullyDistVec< int64_t, int64_t > &  mateCol2Row,
FullyDistVec< int64_t, int64_t > &  parentsRow,
FullyDistVec< int64_t, int64_t > &  leaves 
)
friend

◆ Concatenate

template<class IT, class NT>
template<typename IU , typename NU >
FullyDistVec<IU,NU> Concatenate ( vector< FullyDistVec< IU, NU > > &  vecs)
friend

◆ DenseParMat

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

Definition at line 281 of file FullyDistVec.h.

◆ DenseVectorLocalIterator

template<class IT, class NT>
template<class IU , class NU >
friend class DenseVectorLocalIterator
friend

Definition at line 293 of file FullyDistVec.h.

◆ EWiseApply [1/2]

template<class IT, class NT>
template<typename IU , typename NU1 , typename NU2 , typename _BinaryOperation >
FullyDistSpVec<IU,typename promote_trait<NU1,NU2>::T_promote> EWiseApply ( const FullyDistSpVec< IU, NU1 > &  V,
const FullyDistVec< IU, NU2 > &  W,
_BinaryOperation  _binary_op,
typename promote_trait< NU1, NU2 >::T_promote  zero 
)
friend

◆ EWiseApply [2/2]

template<class IT, class NT>
template<typename RET , typename IU , typename NU1 , typename NU2 , typename _BinaryOperation , typename _BinaryPredicate >
FullyDistSpVec<IU,RET> EWiseApply ( const FullyDistSpVec< IU, NU1 > &  V,
const FullyDistVec< IU, NU2 > &  W,
_BinaryOperation  _binary_op,
_BinaryPredicate  _doOp,
bool  allowVNulls,
NU1  Vzero,
const bool  useExtendedBinOp 
)
friend

Performs an arbitrary binary operation _binary_op on the corresponding elements of two vectors with the result stored in a return vector ret. The binary operatiation is only performed if the binary predicate _doOp returns true for those elements. Otherwise the binary operation is not performed and ret does not contain an element at that position. More formally the operation is defined as: if (_doOp(V[i], W[i])) ret[i] = _binary_op(V[i], W[i]) else // ret[i] is not set Hence _doOp can be used to implement a filter on either of the vectors.

The above is only defined if both V[i] and W[i] exist (i.e. an intersection). To allow a union operation (ex. when V[i] doesn't exist but W[i] does) the allowVNulls flag is set to true and the Vzero argument is used as the missing V[i] value.

The type of each element of ret must not necessarily be related to the types of V or W, so the return type must be explicitly specified as a template parameter: FullyDistSpVec<int, double> r = EWiseApply<double>(V, W, plus, retTrue, false, 0)

Definition at line 2020 of file ParFriends.h.

◆ EWiseApply_threaded

template<class IT, class NT>
template<typename RET , typename IU , typename NU1 , typename NU2 , typename _BinaryOperation , typename _BinaryPredicate >
FullyDistSpVec<IU,RET> EWiseApply_threaded ( const FullyDistSpVec< IU, NU1 > &  V,
const FullyDistVec< IU, NU2 > &  W,
_BinaryOperation  _binary_op,
_BinaryPredicate  _doOp,
bool  allowVNulls,
NU1  Vzero,
const bool  useExtendedBinOp 
)
friend

Threaded EWiseApply. Only called internally from EWiseApply.

Definition at line 1874 of file ParFriends.h.

◆ EWiseMult

template<class IT, class NT>
template<typename IU , typename NU1 , typename NU2 >
FullyDistSpVec<IU,typename promote_trait<NU1,NU2>::T_promote> EWiseMult ( const FullyDistSpVec< IU, NU1 > &  V,
const FullyDistVec< IU, NU2 > &  W,
bool  exclude,
NU2  zero 
)
friend

if exclude is true, then we prune all entries W[i] != zero from V if exclude is false, then we perform a proper elementwise multiplication

Definition at line 1785 of file ParFriends.h.

◆ FullyDistSpVec

template<class IT, class NT>
template<class IU , class NU >
friend class FullyDistSpVec
friend

Definition at line 290 of file FullyDistVec.h.

◆ FullyDistVec

template<class IT, class NT>
template<class IU , class NU >
friend class FullyDistVec
friend

Definition at line 287 of file FullyDistVec.h.

◆ maximumMatching

template<class IT, class NT>
void maximumMatching ( SpParMat< int64_t, bool, SpDCCols< int64_t, bool > > &  A,
FullyDistVec< int64_t, int64_t > &  mateRow2Col,
FullyDistVec< int64_t, int64_t > &  mateCol2Row 
)
friend

◆ PermMat

template<class IT, class NT>
template<class IU , class DER >
SpParMat<IU, bool, DER> PermMat ( const FullyDistVec< IU, IU > &  ri,
const IU  ncol 
)
friend

◆ RenameVertices

template<class IT, class NT>
template<typename IU >
void RenameVertices ( DistEdgeList< IU > &  DEL)
friend

Rename vertices globally. You first need to do create a random permutation distributed on all processors. Then the p round robin algorithm will do the renaming: For all processors P(i,i) Broadcast local_p to all p processors For j= i*N/p to min((i+1)*N/p, N) Rename the all j's with local_p(j) inside the edgelist (and mark them "renamed" so that yeach vertex id is renamed only once)

Definition at line 363 of file DistEdgeList.cpp.

◆ SpMV

template<class IT, class NT>
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 
)
friend

Parallel dense SpMV

Definition at line 1488 of file ParFriends.h.

◆ SpParMat

template<class IT, class NT>
template<class IU , class NU , class UDER >
friend class SpParMat
friend

Definition at line 284 of file FullyDistVec.h.


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