[ https://issues.apache.org/jira/browse/MATH-1153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14522272#comment-14522272 ]
Thomas Neidhart commented on MATH-1153: --------------------------------------- I did not write a jmh benchmark yet, but it looks like that for alpha/beta values < 1 the variant with sampling from a gamma distribution is faster, while for values > 1 the cheng sampling method is slightly faster. The difference is just small, and is probably negligible once the code has been compiled natively. > 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: 4.0 > > Attachments: ChengBetaSampler.java, 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)