commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From l..@apache.org
Subject svn commit: r1371082 - /commons/proper/math/trunk/src/main/java/org/apache/commons/math3/util/FastMath.java
Date Thu, 09 Aug 2012 08:07:25 GMT
Author: luc
Date: Thu Aug  9 08:07:25 2012
New Revision: 1371082

URL: http://svn.apache.org/viewvc?rev=1371082&view=rev
Log:
added a function to raise a double to an int power

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=1371082&r1=1371081&r2=1371082&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 Thu
Aug  9 08:07:25 2012
@@ -1582,6 +1582,34 @@ public class FastMath {
 
 
     /**
+     * Raise a double to an int power.
+     *
+     * @param d Number to raise.
+     * @param e Exponent.
+     * @return d<sup>e</sup>
+     */
+    public static double pow(double d, int e) {
+        if (e == 0) {
+            return 1.0;
+        } else if (e < 0) {
+            e = -e;
+            d = 1.0 / d;
+        }
+
+        double result = 1;
+        double d2p    = d;
+        while (e != 0) {
+            if ((e & 0x1) != 0) {
+                result *= d2p;
+            }
+            d2p *= d2p;
+            e = e >> 1;
+        }
+
+        return result;
+    }
+
+    /**
      *  Computes sin(x) - x, where |x| < 1/16.
      *  Use a Remez polynomial approximation.
      *  @param x a number smaller than 1/16



Mime
View raw message