49template <
class IT,
class NT>
60 std::vector< std::pair<T, size_t> >
tosort;
63 tosort.push_back(std::make_pair(val,index++));
74 template <
typename IT1,
typename NT1,
typename IT2,
typename NT2>
104 tostr = std::string(to);
110 size_t owner_fr =
range_fr /
static_cast<double>(std::numeric_limits<uint64_t>::max());
111 size_t owner_to =
range_to /
static_cast<double>(std::numeric_limits<uint64_t>::max());
122 template <
typename IT1,
typename NT1>
133 tostr = std::string(to);
146 template <
typename IT1,
typename NT1>
180 std::cout <<
"COMBBLAS: Unrecognized matrix market scalar type" << std::endl;
186 template <
typename T>
187 static const T *
p2a (
const std::vector<T> & v)
189 if(v.empty())
return NULL;
193 template <
typename T>
194 static T *
p2a (std::vector<T> & v)
196 if(v.empty())
return NULL;
201 template<
typename _ForwardIterator>
213 template<
typename _ForwardIterator,
typename _StrictWeakOrdering>
225 template<
typename _ForwardIter,
typename T>
231 template<
typename In,
typename Out,
typename UnPred>
234 for ( ;first !=
last; ++first)
240 template<
typename T,
typename I1,
typename I2>
243 T ** array =
new T*[m];
244 for(
I1 i = 0; i<m; ++i)
248 template<
typename T,
typename I>
251 for(
I i = 0; i<m; ++i)
257 template <
typename SR,
typename NT1,
typename NT2,
typename IT,
typename OVT>
261 template <
typename IT,
typename NT1,
typename NT2>
265 template <
typename SR,
typename IT,
typename NT1,
typename NT2,
typename OVT>
269 template <
typename SR,
typename IT,
typename NT1,
typename NT2,
typename OVT>
273 template <
typename NT,
typename IT>
283 template <
typename NT,
typename IT>
294 template <
typename IT>
306template <
typename SR,
typename NT1,
typename NT2,
typename IT,
typename OVT>
310 std::pair<IT,IT> key;
315 if (!SR::returnedSAID())
345template <
typename IT,
typename NT1,
typename NT2>
352 for(
IT i=0; i <
Adcsc.nzc; ++i)
359 for(
IT i=0; i <
Bdcsc.nzc; ++i)
385template <
typename SR,
typename IT,
typename NT1,
typename NT2,
typename OVT>
389 std::pair<IT,IT> supremum(std::numeric_limits<IT>::max(), std::numeric_limits<IT>::max());
390 std::pair<IT,IT>
infimum (std::numeric_limits<IT>::min(), std::numeric_limits<IT>::min());
448template <
typename SR,
typename IT,
typename NT1,
typename NT2,
typename OVT>
456 float cf =
static_cast<float>(
nA+1) /
static_cast<float>(
Adcsc.nzc);
508 if (!SR::returnedSAID())
static void ProcessLines(std::vector< IT1 > &rows, std::vector< IT1 > &cols, std::vector< NT1 > &vals, std::vector< std::string > &lines, int symmetric, int type, bool onebased=true)
static bool is_sorted(_ForwardIterator __first, _ForwardIterator __last)
static IT SpCartesian(const Dcsc< IT, NT1 > &Adcsc, const Dcsc< IT, NT2 > &Bdcsc, IT kisect, Isect< IT > *isect1, Isect< IT > *isect2, StackEntry< OVT, std::pair< IT, IT > > *&multstack)
static IT Popping(NT1 *numA, NT2 *numB, StackEntry< OVT, std::pair< IT, IT > > *multstack, IT &cnz, KNHeap< std::pair< IT, IT >, IT > &sHeap, Isect< IT > *isect1, Isect< IT > *isect2)
static bool first_compare(std::pair< IT, IT > pair1, std::pair< IT, IT > pair2)
static void ProcessLinesWithStringKeys(std::vector< std::map< std::string, uint64_t > > &allkeys, std::vector< std::string > &lines, int nprocs)
static void SpIntersect(const Dcsc< IT, NT1 > &Adcsc, const Dcsc< IT, NT2 > &Bdcsc, Isect< IT > *&cols, Isect< IT > *&rows, Isect< IT > *&isect1, Isect< IT > *&isect2, Isect< IT > *&itr1, Isect< IT > *&itr2)
static T * p2a(std::vector< T > &v)
static void deallocate2D(T **array, I m)
static bool is_sorted(_ForwardIterator __first, _ForwardIterator __last, _StrictWeakOrdering __comp)
static void ProcessStrLinesNPermute(std::vector< IT1 > &rows, std::vector< IT1 > &cols, std::vector< NT1 > &vals, std::vector< std::string > &lines, std::map< std::string, uint64_t > &ultperm)
static void iota(_ForwardIter __first, _ForwardIter __last, T __val)
static const T * p2a(const std::vector< T > &v)
static T ** allocate2D(I1 m, I2 n)
static std::vector< size_t > find_order(const std::vector< T > &values)
static void DoubleStack(StackEntry< NT, std::pair< IT, IT > > *&multstack, IT &cnzmax, IT add)
static IT SpColByCol(const Dcsc< IT, NT1 > &Adcsc, const Dcsc< IT, NT2 > &Bdcsc, IT nA, StackEntry< OVT, std::pair< IT, IT > > *&multstack)
static Out copyIf(In first, In last, Out result, UnPred pred)
static void push_to_vectors(std::vector< IT1 > &rows, std::vector< IT1 > &cols, std::vector< NT1 > &vals, IT2 ii, IT2 jj, NT2 vv, int symmetric, bool onebased=true)
static void ShrinkArray(NT *&array, IT newsize)
void MurmurHash3_x64_64(const void *key, int len, uint32_t seed, void *out)