static SMat svdTransposeS(SMat S) { int r, c, i, j; SMat N = new SMat(S.cols, S.rows, S.vals); /* Count number nz in each row. */ for (i = 0; i < S.vals; i++) N.pointr[S.rowind[i]]++; /* Fill each cell with the starting point of the previous row. */ N.pointr[S.rows] = S.vals - N.pointr[S.rows - 1]; for (r = S.rows - 1; r > 0; r--) N.pointr[r] = N.pointr[r + 1] - N.pointr[r - 1]; N.pointr[0] = 0; /* Assign the new columns and values. */ for (c = 0, i = 0; c < S.cols; c++) { for (; i < S.pointr[c + 1]; i++) { r = S.rowind[i]; j = N.pointr[r + 1]++; N.rowind[j] = c; N.value[j] = S.value[i]; } } return N; }
static SMat svdConvertDtoS(DMat D) { SMat S; int i, j, n; // n = number of non-zero elements for (i = 0, n = 0; i < D.rows; i++) { for (j = 0; j < D.cols; j++) { if (D.value[i][j] != 0) n++; } } S = new SMat(D.rows, D.cols, n); for (j = 0, n = 0; j < D.cols; j++) { S.pointr[j] = n; for (i = 0; i < D.rows; i++) if (D.value[i][j] != 0) { S.rowind[n] = i; S.value[n] = D.value[i][j]; n++; } } S.pointr[S.cols] = S.vals; return S; }
public static SMat svdConvertDtoS(DMat D) { SMat S; int i, j, n; // n = number of non-zero elements for (i = 0, n = 0; i < D.rows; i++) { for (j = 0; j < D.cols; j++) { if (D.value[i][j] != 0) n++; } } S = new SMat(D.rows, D.cols, n); for (j = 0, n = 0; j < D.cols; j++) { S.pointr[j] = n; for (i = 0; i < D.rows; i++) if (D.value[i][j] != 0) { S.rowind[n] = i; S.value[n] = D.value[i][j]; n++; } } S.pointr[S.cols] = S.vals; return S; }
static SMat svdTransposeS(SMat S) { int r, c, i, j; SMat N = new SMat(S.cols, S.rows, S.vals); /* Count number nz in each row. */ for (i = 0; i < S.vals; i++) N.pointr[S.rowind[i]]++; /* Fill each cell with the starting point of the previous row. */ N.pointr[S.rows] = S.vals - N.pointr[S.rows - 1]; for (r = S.rows - 1; r > 0; r--) N.pointr[r] = N.pointr[r + 1] - N.pointr[r - 1]; N.pointr[0] = 0; /* Assign the new columns and values. */ for (c = 0, i = 0; c < S.cols; c++) { for (; i < S.pointr[c + 1]; i++) { r = S.rowind[i]; j = N.pointr[r + 1]++; N.rowind[j] = c; N.value[j] = S.value[i]; } } return N; }
int cols = dis.readInt(); int vals = dis.readInt(); SMat m = new SMat(rows, cols, vals);
S = new SMat(rows, cols, vals);
S = new SMat(rows, cols, vals);
S = new SMat(this.luceneUtils.getNumDocs(), numTerms, nonZeroVals);