#include<cstdio>
#include<cstring>
+#include<cstdlib>
#include<cassert>
#include<algorithm>
trim();
}
-int bo = 0; // need delete
-
void LenDist::init() {
memset(pdf, 0, sizeof(double) * (span + 1));
memset(cdf, 0, sizeof(double) * (span + 1));
-
- bo = 0;
}
void LenDist::finish() {
sum += pdf[i];
}
+ if (sum <= EPSILON) { fprintf(stderr, "No valid read to estimate the length distribution!\n"); exit(-1); }
+
for (int i = 1; i <= span; i++) {
pdf[i] = pdf[i] / sum;
cdf[i] = cdf[i - 1] + pdf[i];
cdf = new double[span + 1];
memset(pdf, 0, sizeof(double) * (span + 1));
memset(cdf, 0, sizeof(double) * (span + 1));
-
- //need delete
- ++bo;
- assert(bo < 2);
}
for (int i = 1; i <= span; i++) {
pdf[i] += o.pdf[i];
delete[] pdf;
delete[] cdf;
- fscanf(fi, "%d %d %d", &lb, &ub, &span);
+ assert(fscanf(fi, "%d %d %d", &lb, &ub, &span) == 3);
pdf = new double[span + 1];
cdf = new double[span + 1];
pdf[0] = cdf[0] = 0.0;
for (int i = 1; i <= span; i++) {
- fscanf(fi, "%lf", &pdf[i]);
+ assert(fscanf(fi, "%lf", &pdf[i]) == 1);
cdf[i] = cdf[i - 1] + pdf[i];
}