06a9b44cb029413d7d7b27367230bf5b5b0dd006 kent Sat Dec 18 12:03:00 2021 -0800 Put in the usual optimization to print zero faster for a 5% speedup. diff --git src/utils/matrixNormalize/matrixNormalize.c src/utils/matrixNormalize/matrixNormalize.c index 1b1dcb3..5cf4322 100644 --- src/utils/matrixNormalize/matrixNormalize.c +++ src/utils/matrixNormalize/matrixNormalize.c @@ -69,31 +69,37 @@ sum += val*val; } sum = sqrt(sum); } else { for (i=0; i<size; ++i) sum += row[i]; } if (sum != 0.0) scaleVal /= sum; for (i=0; i<size; ++i) row[i] *= scaleVal; fprintf(f, "%s", label); for (i=0; i<size; ++i) + { + double val = row[i]; + if (val == 0.0) + fputs("\t0", f); + else fprintf(f, "\t%g", row[i]); + } fprintf(f, "\n"); } carefulClose(&f); vRowMatrixFree(&m); } void memMatrixToTsv(struct memMatrix *m, char *fileName) /* Output memory matrix to tab-sep file with labels */ { FILE *f = mustOpen(fileName, "w"); /* Print label row */ fprintf(f, "%s", m->centerLabel); int x, xSize = m->xSize; for (x=0; x<xSize; ++x)