/* multiple iterations used to make kernel have roughly same granulairty as other Scimark kernels. */ double SparseCompRow_num_flops(int N, int nz, int num_iterations) { /* Note that if nz does not divide N evenly, then the actual number of nonzeros used is adjusted slightly. */ int actual_nz = (nz/N) * N; return ((double)actual_nz) * 2.0 * ((double) num_iterations); } /* computes a matrix-vector multiply with a sparse matrix held in compress-row format. If the size of the matrix in MxN with nz nonzeros, then the val[] is the nz nonzeros, with its ith entry in column col[i]. The integer vector row[] is of size M+1 and row[i] points to the begining of the ith row in col[]. */ void SparseCompRow_matmult( int M, double *y, double *val, int *row, int *col, double *x, int NUM_ITERATIONS) { int reps; int r; int i; for (reps=0; reps