[ 
https://issues.apache.org/jira/browse/MATH-650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13099597#comment-13099597
 ] 

Sebb commented on MATH-650:
---------------------------

Yes, I looked at IODH. Turns out that the holder is not required.

Instead, one can use a static class which contains the initial data:

{code}
public class FastMath{
  private static class lnMant {
    private static final double LN_MANT[][] = {
...
    };
...
       double d = lnMant.LN_MANT[j][j];
// was double d = LN_MANT[i][j];
  }
}
{code}

Very simple to implement; doing that plus commenting out all init code and data 
results in speed-up of about 6 times for FastMath.max().

Does not seem to affect performance of method calls once its table(s) has/ve 
been loaded.

What remains to be decided is what to do with the init code. Some of it might 
be useful in its own right - Taylor expansions for sine/cosine etc. 
Perhaps create another class (SlowMath anyone?) in the same package. 
And/or move it to the test tree?

> FastMath has static code which slows the first access to FastMath
> -----------------------------------------------------------------
>
>                 Key: MATH-650
>                 URL: https://issues.apache.org/jira/browse/MATH-650
>             Project: Commons Math
>          Issue Type: Improvement
>    Affects Versions: Nightly Builds
>         Environment: Android 2.3 (Dalvik VM with JIT)
>            Reporter: Alexis Robert
>            Priority: Minor
>
> Working on an Android application using Orekit, I've discovered that a simple 
> FastMath.floor() takes about 4 to 5 secs on a 1GHz Nexus One phone (only the 
> first time it's called). I've launched the Android profiling tool (traceview) 
> and the problem seems to be linked with the static portion of FastMath code 
> named "// Initialize tables"
> The timing resulted in :
> - FastMath.slowexp (40.8%)
> - FastMath.expint (39.2%)
>  \- FastMath.quadmult() (95.6% of expint)
> - FastMath.slowlog (18.2%)
> Hoping that would help
> Thanks!
> Alexis Robert

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to