46template <
class IT,
class NT>
65 template <
typename NIT,
typename NNT>
operator Dcsc<NIT,NNT>()
const;
71 template <
typename IU,
typename NU1,
typename NU2>
74 template <
typename IU,
typename NU1,
typename NU2>
77 template <
typename _UnaryOperation>
82#pragma omp parallel for
84 for(
IT i=0; i <
nz; ++i)
89 template <
typename _UnaryOperation,
typename GlobalIT>
91 template <
typename _UnaryOperation>
93 template <
typename _BinaryOperation>
95 template <
typename _BinaryOperation>
117 template <
typename _BinaryOperation>
void EWiseScale(NT **scaler)
Dcsc< IT, NT > * PruneI(_UnaryOperation __unary_op, bool inPlace, GlobalIT rowOffset, GlobalIT colOffset)
void ColConcatenate(std::vector< Dcsc< IT, NT > * > &parts, std::vector< IT > &offsets)
void ColSplit(std::vector< Dcsc< IT, NT > * > &parts, std::vector< IT > &cuts)
Dcsc< IT, NT > * PruneColumn(NT *pvals, _BinaryOperation __binary_op, bool inPlace)
Dcsc< IT, NT > & operator=(const Dcsc< IT, NT > &rhs)
IT AuxIndex(const IT colind, bool &found, IT *aux, IT csize) const
IT * ir
row indices, size nz
bool operator==(const Dcsc< IT, NT > &rhs)
void PruneColumnByIndex(const std::vector< IT > &ci)
void Merge(const Dcsc< IT, NT > *Adcsc, const Dcsc< IT, NT > *B, IT cut)
Dcsc< IT, NT > * Prune(_UnaryOperation __unary_op, bool inPlace)
void Apply(_UnaryOperation __unary_op)
Dcsc< IT, NT > & AddAndAssign(StackEntry< NT, std::pair< IT, IT > > *multstack, IT mdim, IT ndim, IT nnz)
friend Dcsc< IU, typename promote_trait< NU1, NU2 >::T_promote > SetDifference(const Dcsc< IU, NU1 > &A, const Dcsc< IU, NU2 > *B)
Dcsc(IT *_cp, IT *_jc, IT *_ir, NT *_numx, IT _nz, IT _nzc, bool _memowned=true)
wrap object around pre-allocated arrays (possibly RDMA registered)
IT * cp
The master array, size nzc+1 (keeps column pointers)
void Resize(IT nzcnew, IT nznew)
IT nzc
number of columns with at least one non-zero in them
void Split(Dcsc< IT, NT > *&A, Dcsc< IT, NT > *&B, IT cut)
IT ConstructAux(IT ndim, IT *&aux) const
NT * numx
generic values, size nz
Dcsc< IT, NT > & operator+=(const Dcsc< IT, NT > &rhs)
void FillColInds(const VT *colnums, IT nind, std::vector< std::pair< IT, IT > > &colinds, IT *aux, IT csize) const
void UpdateDense(NT **array, _BinaryOperation __binary_op) const
IT * jc
col indices, size nzc
void RowSplit(int numsplits)
friend Dcsc< IU, typename promote_trait< NU1, NU2 >::T_promote > EWiseMult(const Dcsc< IU, NU1 > &A, const Dcsc< IU, NU2 > *B, bool exclude)