commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Neidhart (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MATH-1153) Sampling from a 'BetaDistribution' is slow
Date Tue, 16 Dec 2014 22:44:13 GMT

    [ 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)

Mime
View raw message