openbsd-ports/net/pchar/patches/patch-ResultTable_cc
2017-07-28 15:45:08 +00:00

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++;
}
}