diff options
Diffstat (limited to 'games/six/patches/patch-lssolvecpp')
-rw-r--r-- | games/six/patches/patch-lssolvecpp | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/games/six/patches/patch-lssolvecpp b/games/six/patches/patch-lssolvecpp index d88259c1162..2baa7588efc 100644 --- a/games/six/patches/patch-lssolvecpp +++ b/games/six/patches/patch-lssolvecpp @@ -1,29 +1,35 @@ -$NetBSD: patch-lssolvecpp,v 1.1 2007/06/13 00:10:44 rillig Exp $ +$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-06-13 02:06:20.000000000 +0200 -@@ -120,7 +120,11 @@ static void backwardSubstitution(const M - double temp; ++++ six/lssolve.cpp 2007-09-28 00:57:32.000000000 +0200 +@@ -22,6 +22,12 @@ + #include <cassert> + #include <cmath> - x(n - 1) = b(n - 1) / U(n - 1, n - 1); -+#if defined(__NetBSD__) -+ if(isnan(x(n - 1))) ++#if defined(__NetBSD__) && defined(__GNUC__) && __GNUC__ == 3 ++# define is_nan isnan +#else - if(std::isnan(x(n - 1))) ++# 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 +135,11 @@ static void backwardSubstitution(const M +@@ -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 defined(__NetBSD__) -+ if(isnan(x(i))) -+#else -+ if(std::isnan(x(i))) -+#endif ++ if(is_nan(x(i))) x(i) = 0.; } } |