Ejemplo n.º 1
0
SMat svdNewSMat(int rows, int cols, int vals) {
    SMat S = (SMat) calloc(1, sizeof(struct smat));
    if (!S) {
        perror("svdNewSMat");
        return NULL;
    }
    S->rows = rows;
    S->cols = cols;
    S->vals = vals;
    S->pointr = svd_longArray(cols + 1, TRUE, "svdNewSMat: pointr");
    if (!S->pointr) {
        svdFreeSMat(S);
        return NULL;
    }
    S->rowind = svd_longArray(vals, FALSE, "svdNewSMat: rowind");
    if (!S->rowind) {
        svdFreeSMat(S);
        return NULL;
    }
    S->value  = svd_doubleArray(vals, FALSE, "svdNewSMat: value");
    if (!S->value)  {
        svdFreeSMat(S);
        return NULL;
    }
    return S;
}
Ejemplo n.º 2
0
SMat svdNewSMat(int rows, int cols, int vals) {
  SMat S = (SMat) calloc(1, sizeof(struct smat));
  if (!S) {perror("svdNewSMat"); return NULL;}
  S->h.transposed = svdTransposeS;
  S->h.free = svdFreeSMat;
  S->h.mat_by_vec = sparse_mat_by_vec;
  S->h.mat_transposed_by_vec = sparse_mat_transposed_by_vec;
  S->h.rows = rows;
  S->h.cols = cols;
  S->h.vals = vals;
  S->pointr = svd_longArray(cols + 1, TRUE, "svdNewSMat: pointr");
  if (!S->pointr) {svdFreeSMat(S); return NULL;}
  S->rowind = svd_longArray(vals, FALSE, "svdNewSMat: rowind");
  if (!S->rowind) {svdFreeSMat(S); return NULL;}
  S->value  = svd_doubleArray(vals, FALSE, "svdNewSMat: value");
  if (!S->value)  {svdFreeSMat(S); return NULL;}
  S->offset_for_row = NULL;
  S->offset_for_col = NULL;
  return S;
}