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

Thomas Neidhart commented on MATH-1153:
---------------------------------------

btw. if the two method algorithmBB and algorithmBC are made static with an 
additional parameter for the random generator to be used, you could avoid all 
the variable renamings and the code would be cleaner imho.

> Sampling from a 'BetaDistribution' is slow
> ------------------------------------------
>
>                 Key: MATH-1153
>                 URL: https://issues.apache.org/jira/browse/MATH-1153
>             Project: Commons Math
>          Issue Type: Improvement
>            Reporter: Sergei Lebedev
>            Priority: Minor
>             Fix For: 3.4
>
>         Attachments: ChengBetaSampler.java, ChengBetaSamplerTest.java
>
>
> Currently the `BetaDistribution#sample` uses inverse CDF method, which is 
> quite slow for sampling-intensive computations. I've implemented a method 
> from the R. C. H. Cheng paper and it seems to work much better. Here's a 
> simple microbenchmark:
> {code}
> o.j.b.s.SamplingBenchmark.algorithmBCorBB       1e-3    1000  thrpt        5  
> 2592200.015    14391.520  ops/s
> o.j.b.s.SamplingBenchmark.algorithmBCorBB       1000    1000  thrpt        5  
> 3210800.292    33330.791  ops/s
> o.j.b.s.SamplingBenchmark.commonsVersion        1e-3    1000  thrpt        5  
>   31034.225      438.273  ops/s
> o.j.b.s.SamplingBenchmark.commonsVersion        1000    1000  thrpt        5  
>   21834.010      433.324  ops/s
> {code}
> Should I submit a patch?
> R. C. H. Cheng (1978). Generating beta variates with nonintegral shape 
> parameters. Communications of the ACM, 21, 317–322.



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

Reply via email to