Index: ResultTable.cc --- ResultTable.cc.orig +++ ResultTable.cc @@ -44,7 +44,7 @@ ResultTable::ResultTable(unsigned int inc, unsigned in // can't handle "new (footype *)[bar]". We're trying to do: // data = new (double *) [columns]; typedef double *DoublePtr; - data = new (double *[columns]); + data = new DoublePtr[columns]; if (data == NULL) { fprintf(stderr, "Couldn't allocate data array for a ResultTable\n"); exit(1); @@ -767,6 +767,12 @@ void ResultTable::lms(double &a, double &b, double &r2 } +template +X absdiff(X a, X b) +{ + return a < b ? b - a : a - b; +} + // // ResultTable::lmsint // @@ -909,7 +915,7 @@ void ResultTable::lmsint(double &a, double &b, double l = 0; for (i = 0; i < columns; i++) { if (partialmins[i] != timeoutresult) { - residuals[l] = abs(partialmins[i] - + residuals[l] = absdiff(partialmins[i], ((currentslope * column2size(i) / slopescale) + @@ -930,7 +936,7 @@ void ResultTable::lmsint(double &a, double &b, double l = 0; for (i = 0; i < columns; i++) { if (partialmins[i] != timeoutresult) { - ys[l] = abs(partialmins[i] - mediany); + ys[l] = absdiff(partialmins[i], mediany); l++; } }