pkgsrc-ng/games/six/patches/patch-lssolvecpp
2013-09-26 17:14:40 +02:00

36 lines
925 B
Plaintext

$NetBSD: patch-lssolvecpp,v 1.2 2007/09/27 23:09:38 rillig Exp $
--- six/lssolve.cpp.orig 2004-07-19 10:30:50.000000000 +0200
+++ six/lssolve.cpp 2007-09-28 00:57:32.000000000 +0200
@@ -22,6 +22,12 @@
#include <cassert>
#include <cmath>
+#if defined(__NetBSD__) && defined(__GNUC__) && __GNUC__ == 3
+# define is_nan isnan
+#else
+# define is_nan std::isnan
+#endif
+
static void lu(const Mat<double> &X, Mat<double> &L, Mat<double> &U,
Vec<int> &p)
{
@@ -120,7 +126,7 @@
double temp;
x(n - 1) = b(n - 1) / U(n - 1, n - 1);
- if(std::isnan(x(n - 1)))
+ if(is_nan(x(n - 1)))
x(n - 1) = 0.;
for(i = n - 2; i >= 0; i--) {
// Should be: x(i)=((b(i)-U(i,i,i+1,n-1)*x(i+1,n-1))/U(i,i))(0);
@@ -131,7 +137,7 @@
temp += U.data()[iPos + j] * x(j);
}
x(i) = (b(i) - temp) / U.data()[iPos + i];
- if(std::isnan(x(i)))
+ if(is_nan(x(i)))
x(i) = 0.;
}
}