Author: luc
Date: Tue Mar 26 14:56:01 2013
New Revision: 1461159

URL: http://svn.apache.org/r1461159
Log:
FastMath.abs() without branching for float and double primitive types.

JIRA: MATH-954

Modified:
    
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/util/FastMath.java

Modified: 
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/util/FastMath.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/util/FastMath.java?rev=1461159&r1=1461158&r2=1461159&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/util/FastMath.java
 (original)
+++ 
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/util/FastMath.java
 Tue Mar 26 14:56:01 2013
@@ -3011,10 +3011,7 @@ public class FastMath {
      * @return abs(x)
      */
     public static float abs(final float x) {
-        if ((Float.floatToRawIntBits(x) & Integer.MIN_VALUE) == 0) {
-            return x;
-        }
-        return -x;
+        return Float.intBitsToFloat(Integer.MAX_VALUE & 
Float.floatToRawIntBits(x));
     }
 
     /**
@@ -3023,10 +3020,7 @@ public class FastMath {
      * @return abs(x)
      */
     public static double abs(double x) {
-        if ((Double.doubleToRawLongBits(x) & Long.MIN_VALUE) == 0) {
-            return x;
-        }
-        return -x;
+        return Double.longBitsToDouble(Long.MAX_VALUE & 
Double.doubleToRawLongBits(x));
     }
 
     /**


Reply via email to