📄 sparsecomprow.java
字号:
package jnt.scimark2;public class SparseCompRow{ /* multiple iterations used to make kernel have roughly same granulairty as other Scimark kernels. */ public static double 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[]. */ public static void matmult( double y[], double val[], int row[], int col[], double x[], int NUM_ITERATIONS) { int M = row.length - 1; for (int reps=0; reps<NUM_ITERATIONS; reps++) { for (int r=0; r<M; r++) { double sum = 0.0; int rowR = row[r]; int rowRp1 = row[r+1]; for (int i=rowR; i<rowRp1; i++) sum += x[ col[i] ] * val[i]; y[r] = sum; } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -