Otmar Ertl created MATH-1154:
--------------------------------

             Summary: Statistical tests in stat.inference package are very slow 
due to implicit RandomGenerator initialization
                 Key: MATH-1154
                 URL: https://issues.apache.org/jira/browse/MATH-1154
             Project: Commons Math
          Issue Type: Bug
    Affects Versions: 3.3
            Reporter: Otmar Ertl


Some statistical tests defined in the stat.inference package (e.g. BinomialTest 
or ChiSquareTest) are unnecessarily very slow (up to a factor 20 slower than 
necessary). The reason is the implicit slow initialization of a default 
(Well19937c) random generator instance each time a test is performed. The 
affected tests create some distribution instance in order to use some methods 
defined therein. However, they do not use any method for random generation. 
Nevertheless a random number generator instance is automatically created when 
creating a distribution instance, which is the reason for the serious slowdown. 
The problem is related to MATH-1124.

There are following solutions:
1) Fix the affected statistical tests by passing a light-weight RandomGenerator 
implementation (or even null) to the constructor of the distribution.
2) Or use for all distributions a RandomGenerator implementation that uses lazy 
initialization to generate the Well19937c instance as late as possible. This 
would also solve MATH-1124.

I will attach a patch proposal together with a performance test, that will 
demonstrate the speed up after a fix.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to