double *svdLoadDenseArray(const char *filename, int *np, char binary) { int i, n; double *a; int nfound; FILE *file = svd_readFile(filename); if (!file) { svd_error("svdLoadDenseArray: failed to read %s", filename); return NULL; } if (binary) svd_readBinInt(file, np); else { nfound = fscanf(file, " %d", np); if (nfound == 0) svd_error("svdLoadDenseArray: didn't get np"); } n = *np; a = svd_doubleArray(n, FALSE, "svdLoadDenseArray: a"); if (!a) return NULL; if (binary) { float f; for (i = 0; i < n; i++) { svd_readBinFloat(file, &f); a[i] = f; } } else { for (i = 0; i < n; i++) { nfound = fscanf(file, " %lf\n", a + i); if (nfound == 0) svd_error("svdLoadDenseArray: didn't get value"); } } svd_closeFile(file); return a; }
double *svdLoadDenseArray(char *filename, int *np, char binary) { int i, n; double *a; FILE *file = svd_readFile(filename); if (!file) { svd_error("svdLoadDenseArray: failed to read %s", filename); return NULL; } if (binary) { svd_readBinInt(file, np); } else if (fscanf(file, " %d", np) != 1) { svd_error("svdLoadDenseArray: error reading %s", filename); svd_closeFile(file); return NULL; } n = *np; a = svd_doubleArray(n, FALSE, "svdLoadDenseArray: a"); if (!a) return NULL; if (binary) { float f; for (i = 0; i < n; i++) { svd_readBinFloat(file, &f); a[i] = f; } } else { for (i = 0; i < n; i++) { if (fscanf(file, " %lf\n", a + i) != 1) { svd_error("svdLoadDenseArray: error reading %s", filename); break; } } } svd_closeFile(file); return a; }
FILE *svd_fatalReadFile(char *filename) { FILE *file; if (!(file = svd_readFile(filename))) svd_fatalError("couldn't read the file %s", filename); return file; }