13 template <
class T,
class ITYPE>
17 Sym ():nz(0), m(0), n(0), ntop(0), nbc(0), nbr(0) {}
19 Sym (ITYPE size,ITYPE rows, ITYPE cols);
33 void SubSpMV(ITYPE * btop, ITYPE bstart, ITYPE bend,
const T * x, T * suby)
const;
34 void BMult(ITYPE * btop, ITYPE bstart, ITYPE bend,
const T * x, T * y, ITYPE ysize)
const;
35 static void BlockPrefetch(
void * addr,
int total,
int ssize);
59 static const int CACHEBLOCK = 16;
62 template <
typename U,
typename UTYPE>
71 template <
typename T,
typename ITYPE>
78 ITYPE ysize = A.lowrowmask + 1;
80 cilk_for (ITYPE i = 0 ; i < A.nbr ; ++i)
82 ITYPE * btop = A.top [i];
83 ITYPE rhi = ((i << A.rowlowbits) & A.highrowmask);
87 A.BMult(btop, 0, A.nbc, x, suby, ysize);
89 A.SubSpMV(btop, 0, A.nbc, x, suby);
void sym_gaxpy(const Sym< T, ITYPE > &A, const T *x, T *y)