I am OK with this but curious if it in fact makes any difference. 
Anyone know?

Phil

On 3/25/14, 8:51 AM, [email protected] wrote:
> Author: erans
> Date: Tue Mar 25 15:51:25 2014
> New Revision: 1581383
>
> URL: http://svn.apache.org/r1581383
> Log:
> Minimize number of array accesses.
>
> 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=1581383&r1=1581382&r2=1581383&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 25 15:51:25 2014
> @@ -2457,9 +2457,13 @@ public class FastMath {
>              final double oneOverXa = 1 / xa;
>              idx = (int) (-((-1.7168146928204136 * oneOverXa * oneOverXa + 
> 8.0) * oneOverXa) + 13.07);
>          }
> -        double epsA = xa - TANGENT_TABLE_A[idx];
> -        double epsB = -(epsA - xa + TANGENT_TABLE_A[idx]);
> -        epsB += xb - TANGENT_TABLE_B[idx];
> +
> +        final double ttA = TANGENT_TABLE_A[idx];
> +        final double ttB = TANGENT_TABLE_B[idx];
> +
> +        double epsA = xa - ttA;
> +        double epsB = -(epsA - xa + ttA);
> +        epsB += xb - ttB;
>  
>          double temp = epsA + epsB;
>          epsB = -(temp - epsA - epsB);
> @@ -2476,20 +2480,20 @@ public class FastMath {
>          if (idx == 0) {
>              /* If the slope of the arctan is gentle enough (< 0.45), this 
> approximation will suffice */
>              //double denom = 1.0 / (1.0 + xa*tangentTableA[idx] + 
> xb*tangentTableA[idx] + xa*tangentTableB[idx] + xb*tangentTableB[idx]);
> -            final double denom = 1d / (1d + (xa + xb) * 
> (TANGENT_TABLE_A[idx] + TANGENT_TABLE_B[idx]));
> +            final double denom = 1d / (1d + (xa + xb) * (ttA + ttB));
>              //double denom = 1.0 / (1.0 + xa*tangentTableA[idx]);
>              ya = epsA * denom;
>              yb = epsB * denom;
>          } else {
> -            double temp2 = xa * TANGENT_TABLE_A[idx];
> +            double temp2 = xa * ttA;
>              double za = 1d + temp2;
>              double zb = -(za - 1d - temp2);
> -            temp2 = xb * TANGENT_TABLE_A[idx] + xa * TANGENT_TABLE_B[idx];
> +            temp2 = xb * ttA + xa * ttB;
>              temp = za + temp2;
>              zb += -(temp - za - temp2);
>              za = temp;
>  
> -            zb += xb * TANGENT_TABLE_B[idx];
> +            zb += xb * ttB;
>              ya = epsA / za;
>  
>              temp = ya * HEX_40000000;
>
>
>




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to