Need a fast Java beta distribution random number generator
Asked Answered
S

2

4

I need to generate random numbers that have a beta distribution in some speed critical code. Currently I'm using the BetaRandomVariable() class from the numerics4j library - but currently represents about 95% of my code's CPU usage!

Can anyone recommend a faster way to generate these random numbers?

Sedgewake answered 13/2, 2010 at 0:5 Comment(0)
D
2

You can look at the NumPy random number generators. They're in C, but the code is relatively readable and permissively licensed, so they can easily be ported to Java. You don't need to port the basic Mersenne Twister generator as Java has one in its standard library, only the code that takes numbers form the Mersenne Twister and converts it to a beta distribution. I've ported most of the NumPy random number generators to D and found them to be very efficient, and you'll probably find the same in Java.

Djambi answered 13/2, 2010 at 0:40 Comment(0)
C
2

A faster Java implementation of the Mersenne Twister algorithm which I have found useful in a number of applications is available from here: http://www.cs.gmu.edu/~sean/research/

Careerist answered 13/2, 2010 at 1:22 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.