mirror of
https://github.com/Stichting-MINIX-Research-Foundation/pkgsrc-ng.git
synced 2025-09-07 11:20:04 -04:00
36 lines
925 B
Plaintext
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.;
|
|
}
|
|
}
|