40 template <
class IT,
class NT>
43 template <
class IT,
class NT>
46 template <
class SR,
class IT,
class NUM,
class IVT,
class OVT>
50 template <
class SR,
class IT,
class NUM,
class IVT,
class OVT>
55 SpImpl<SR,IT,NUM,IVT,OVT>::SpMXSpV(Adcsc, mA, indx, numx, veclen, indy, numy);
60 template <
class SR,
class IT,
class NUM,
class IVT,
class OVT>
62 int32_t * indy, OVT * numy,
int * cnts,
int * dspls,
int p_c)
64 SpImpl<SR,IT,NUM,IVT,OVT>::SpMXSpV(Adcsc, mA, indx, numx, veclen, indy, numy, cnts, dspls,p_c);
69 template <
class SR,
class IT,
class NUM,
class IVT,
class OVT>
71 std::vector<int32_t> & indy, std::vector< OVT > & numy,
int32_t offset)
73 SpImpl<SR,IT,NUM,IVT,OVT>::SpMXSpV_ForThreading(Adcsc, mA, indx, numx, veclen, indy, numy, offset);
77 template <
class SR,
class IT,
class NUM,
class IVT,
class OVT>
79 std::vector<int32_t> & indy, std::vector< OVT > & numy,
int32_t offset, std::vector<OVT> & localy,
BitMap & isthere, std::vector<uint32_t> & nzinds)
81 SpImpl<SR,IT,NUM,IVT,OVT>::SpMXSpV_ForThreading(Adcsc, mA, indx, numx, veclen, indy, numy, offset, localy, isthere, nzinds);
96 template <
typename SR,
typename IT,
typename NUM,
typename IVT,
typename OVT>
100 template <
class SR,
class IT,
class NUM,
class IVT,
class OVT>
106 template <
class SR,
class IT,
class NUM,
class IVT,
class OVT>
108 int32_t * indy, OVT * numy,
int * cnts,
int * dspls,
int p_c)
110 std::cout <<
"Optbuf enabled version is not yet supported with CSC matrices" << std::endl;
115 template <
class SR,
class IT,
class NUM,
class IVT,
class OVT>
120 SpMXSpV_Bucket<SR>(Acsc, mA, indx, numx, veclen, indy, numy, SPA);
122 SpMXSpV_HeapSort<SR>(Acsc, mA, indx, numx, veclen, indy, numy, 0);
127 template <
class SR,
class IT,
class NUM,
class IVT,
class OVT>
129 std::vector<int32_t> & indy, std::vector< OVT > & numy,
int32_t offset)
131 SpMXSpV_HeapSort<SR>(Acsc, mA, indx, numx, veclen, indy, numy, offset);
135 template <
class SR,
class IT,
class NUM,
class IVT,
class OVT>
137 std::vector<int32_t> & indy, std::vector< OVT > & numy,
int32_t offset, std::vector<OVT> & localy,
BitMap & isthere, std::vector<uint32_t> & nzinds)
140 SpMXSpV_HeapSort<SR>(Acsc, mA, indx, numx, veclen, indy, numy, offset);
155 template <
class SR,
class IT,
class NUM,
class IVT,
class OVT>
159 std::vector<int32_t> & indy, std::vector< OVT > & numy);
162 int32_t * indy, OVT * numy,
int * cnts,
int * dspls,
int p_c)
164 std::cout <<
"Optbuf enabled version is not yet supported with general (non-boolean) matrices" << std::endl;
169 std::vector<int32_t> & indy, std::vector<OVT> & numy,
int32_t offset)
171 std::cout <<
"Threaded version is not yet supported with general (non-boolean) matrices" << std::endl;
174 std::vector<int32_t> & indy, std::vector<OVT> & numy,
int32_t offset, std::vector<OVT> & localy,
BitMap & isthere, std::vector<uint32_t> & nzinds)
176 std::cout <<
"Threaded version is not yet supported with general (non-boolean) matrices" << std::endl;
183 template <
class SR,
class IT,
class IVT,
class OVT>
187 std::vector<int32_t> & indy, std::vector< OVT > & numy);
190 int32_t * indy, OVT * numy,
int * cnts,
int * dspls,
int p_c);
194 std::vector<int32_t> & indy, std::vector<OVT> & numy,
int32_t offset);
197 std::vector<int32_t> & indy, std::vector<OVT> & numy,
int32_t offset, std::vector<OVT> & localy,
BitMap & isthere, std::vector<uint32_t> & nzinds);
SelectMaxSRing< bool, int64_t > SR
void SpMXSpV_Bucket(const Csc< IT, NT > &Acsc, int32_t mA, const int32_t *indx, const IVT *numx, int32_t veclen, std::vector< int32_t > &indy, std::vector< OVT > &numy, PreAllocatedSPA< OVT > &SPA)
void SpMXSpV_ForThreading(const Dcsc< IT, NUM > &Adcsc, int32_t mA, const int32_t *indx, const IVT *numx, int32_t veclen, std::vector< int32_t > &indy, std::vector< OVT > &numy, int32_t offset)
Overload #3: DCSC.
void SpMXSpV(const Dcsc< IT, NUM > &Adcsc, int32_t mA, const int32_t *indx, const IVT *numx, int32_t veclen, std::vector< int32_t > &indy, std::vector< OVT > &numy, PreAllocatedSPA< OVT > &SPA)
Overload #1: DCSC.
void SpMXSpV_HeapSort(const Csc< IT, NT > &Acsc, int32_t mA, const int32_t *indx, const IVT *numx, int32_t veclen, std::vector< int32_t > &indy, std::vector< OVT > &numy, int32_t offset)
static void SpMXSpV(const Dcsc< IT, NUM > &Adcsc, int32_t mA, const int32_t *indx, const IVT *numx, int32_t veclen, std::vector< int32_t > &indy, std::vector< OVT > &numy)
static void SpMXSpV(const Dcsc< IT, NUM > &Adcsc, int32_t mA, const int32_t *indx, const IVT *numx, int32_t veclen, int32_t *indy, OVT *numy, int *cnts, int *dspls, int p_c)
static void SpMXSpV_ForThreading(const Dcsc< IT, NUM > &Acsc, int32_t mA, const int32_t *indx, const IVT *numx, int32_t veclen, std::vector< int32_t > &indy, std::vector< OVT > &numy, int32_t offset, std::vector< OVT > &localy, BitMap &isthere, std::vector< uint32_t > &nzinds)
static void SpMXSpV_ForThreading(const Dcsc< IT, NUM > &Adcsc, int32_t mA, const int32_t *indx, const IVT *numx, int32_t veclen, std::vector< int32_t > &indy, std::vector< OVT > &numy, int32_t offset)