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

Phil Steitz commented on MATH-1153:
-----------------------------------

See my comment above on the testNextInversionDeviate failure.  I remain +1 for 
just dropping the test, as it is just a test of the default inversion-based 
sampling.  There is no reason to expect that it will succeed for non-inversion 
based samplers.  If there are no objections, I will drop it.  If we really want 
to retain it, we should create a dummy distribution that will *always* use 
inversion-based sampling and replace the Beta instance with that (or come up 
with a better test somehow).

I am not sure I understand your comments, Thomas, about "consuming more 
randomness" for other distributions.  What tests, exactly would fail and why?

The failing test is from the RandomDataGenerator and it is designed just to 
test the default inversion-based sampler that distributions that do not supply 
a custom sampler use.  It was implemented (stupidly, in retrospect) using a 
Beta distribution when at the time that distribution did not override the 
default.  Given the current code structure (with samplers moved to the dist 
package) it would probably also be better to move this test to 
AbstractRealDistributionTest if we decide to rectify and retain it.

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

Reply via email to