-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi,
as Sven pointed out here: http://developer.classpath.org/pipermail/classpath-patches/2006-August/003678.html the methods i recently implemented must return their argument if it is NaN, instead of returning the constant Double.NaN. I took the liberty of committing this without asking for approval, since it's in response to a comment from Sven, trivial and backed by mauve tests. Please start yelling if I leaned too far out of the window. Thanks, Carsten 2006-08-03 Carsten Neumann <[EMAIL PROTECTED]> * StrictMath.java (cbrt): Return argument if it is a NaN. (cosh): Likewise. (expm1): Likewise. (sinh): Likewise. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFE0kjPd4NEZjs4PvgRAloyAJ0WwV45gJtH2KCUb+vx/xcq2WXa3QCgxC08 VFC8KJvLhuly3oeZYP8TG3w= =6v1m -----END PGP SIGNATURE-----
Index: java/lang/StrictMath.java =================================================================== RCS file: /sources/classpath/classpath/java/lang/StrictMath.java,v retrieving revision 1.14 diff -u -r1.14 StrictMath.java --- java/lang/StrictMath.java 3 Aug 2006 18:42:11 -0000 1.14 +++ java/lang/StrictMath.java 3 Aug 2006 18:47:24 -0000 @@ -673,7 +673,7 @@ // handle special cases if (x != x) - return Double.NaN; + return x; if (x == Double.POSITIVE_INFINITY) return Double.POSITIVE_INFINITY; if (x == Double.NEGATIVE_INFINITY) @@ -763,7 +763,7 @@ // handle special cases if (x != x) - return Double.NaN; + return x; if (x == Double.POSITIVE_INFINITY) return Double.POSITIVE_INFINITY; if (x == Double.NEGATIVE_INFINITY) @@ -947,7 +947,7 @@ // handle the special cases if (x != x) - return Double.NaN; + return x; if (x == Double.POSITIVE_INFINITY) return Double.POSITIVE_INFINITY; if (x == Double.NEGATIVE_INFINITY) @@ -1180,7 +1180,7 @@ if (h_bits >= 0x7ff00000L) { if (((h_bits & 0x000fffffL) | (l_bits & 0xffffffffL)) != 0) - return Double.NaN; // exp(NaN) = NaN + return x; // exp(NaN) = NaN else return negative ? -1.0 : x; // exp({+-inf}) = {+inf, -1} }