commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From s...@apache.org
Subject svn commit: r1060966 - /commons/proper/math/branches/MATH_2_X/src/main/java/org/apache/commons/math/util/FastMath.java
Date Wed, 19 Jan 2011 20:25:52 GMT
Author: sebb
Date: Wed Jan 19 20:25:52 2011
New Revision: 1060966

URL: http://svn.apache.org/viewvc?rev=1060966&view=rev
Log:
MATH-486 FastMath toRadian and toDegree don't handle large double numbers well

Modified:
    commons/proper/math/branches/MATH_2_X/src/main/java/org/apache/commons/math/util/FastMath.java

Modified: commons/proper/math/branches/MATH_2_X/src/main/java/org/apache/commons/math/util/FastMath.java
URL: http://svn.apache.org/viewvc/commons/proper/math/branches/MATH_2_X/src/main/java/org/apache/commons/math/util/FastMath.java?rev=1060966&r1=1060965&r2=1060966&view=diff
==============================================================================
--- commons/proper/math/branches/MATH_2_X/src/main/java/org/apache/commons/math/util/FastMath.java
(original)
+++ commons/proper/math/branches/MATH_2_X/src/main/java/org/apache/commons/math/util/FastMath.java
Wed Jan 19 20:25:52 2011
@@ -3239,7 +3239,10 @@ public class FastMath {
         final double facta = 0.01745329052209854;
         final double factb = 1.997844754509471E-9;
 
-        double temp = x * 1073741824.0;
+        double temp = 0;
+        if (abs(x) < Double.MAX_VALUE/1073741824.0) { // prevent overflow to infinity
+            temp = x * 1073741824.0;
+        }
         double xa = x + temp - temp;
         double xb = x - xa;
 
@@ -3264,7 +3267,10 @@ public class FastMath {
         final double facta = 57.2957763671875;
         final double factb = 3.145894820876798E-6;
 
-        double temp = x * 1073741824.0;
+        double temp = 0;
+        if (abs(x) < Double.MAX_VALUE/1073741824.0) { // prevent overflow to infinity
+            temp = x * 1073741824.0;
+        }
         double xa = x + temp - temp;
         double xb = x - xa;
 



Mime
View raw message