46 lines
1.3 KiB
Plaintext
46 lines
1.3 KiB
Plaintext
$OpenBSD: patch-ResultTable_cc,v 1.2 2017/07/28 15:45:08 espie Exp $
|
|
|
|
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<typename X>
|
|
+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++;
|
|
}
|
|
}
|