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

Gilles edited comment on MATH-725 at 2/2/12 10:22 PM:
------------------------------------------------------

Those arrays cannot be "static" since their size depends on a parameter ("k") 
passed to the constructor.
Please clarify what you proposed (or, better: provide a patch). Thanks.

                
      was (Author: erans):
    Those arrays cannot be "static" since their size depends on a parameter 
("k") passed to the constructor.

                  
> use initialized static final arrays, instead of initializing it in 
> constructors
> -------------------------------------------------------------------------------
>
>                 Key: MATH-725
>                 URL: https://issues.apache.org/jira/browse/MATH-725
>             Project: Commons Math
>          Issue Type: Improvement
>    Affects Versions: 2.2
>            Reporter: Eldar Agalarov
>            Priority: Minor
>             Fix For: 3.0
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> The Well PRNG's implementations have arrays iRm1, iRm2, iRm3, i1, i2, i3. All 
> these arrays are unmodifiable, so we can replace this arrays initialization 
> block
>         final int w = 32;
>       final int r = (k + w - 1) / w;
>       this.v = new int[r];
>       this.index = 0;
>       
>       // precompute indirection index tables. These tables are used for 
> optimizing access
>       // they allow saving computations like "(j + r - 2) % r" with costly 
> modulo operations
>       iRm1 = new int[r];
>       iRm2 = new int[r];
>       i1 = new int[r];
>       i2 = new int[r];
>       i3 = new int[r];
>       for (int j = 0; j < r; ++j) {
>       iRm1[j] = (j + r - 1) % r;
>       iRm2[j] = (j + r - 2) % r;
>       i1[j] = (j + m1) % r;
>       i2[j] = (j + m2) % r;
>       i3[j] = (j + m3) % r;
>       }
> with inline initialized static final arrays.
> This is much better and faster implementation, freed from unnecessary costly 
> calculations (such as %).
> Another solution: leave as is, but make all these arrays static.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to