|
Colt 1.0.1 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--cern.colt.PersistentObject | +--edu.cornell.lassp.houle.RngPack.RandomElement
RandomElement is an abstract class that encapsulates uniform random number generators.
Subclasses have entirelly deterministic behaviour: Constructing two instances with the same parameters at any two distinct points in time will produce identical sequences of numbers.
To base a class on it, you must define the method
raw()
as described below. It is also likely that you
will want to define a constructor or another mechanism for seeding the
the generator. The other classes defined in RandomElement
add value to the numbers generated by raw()
Source code is available.
RandomJava
,
RandomShuffle
, Serialized FormConstructor Summary | |
RandomElement()
|
Method Summary | |
int |
choose(int hi)
|
int |
choose(int lo,
int hi)
|
double |
gaussian()
gaussian() uses the Box-Muller algorithm to transform raw()'s into gaussian deviates. |
double |
gaussian(double sd)
|
double |
powlaw(double alpha,
double cut)
generate a power-law distribution with exponent alpha
and lower cutoff
cut
|
abstract double |
raw()
Returns a uniformly distributed pseudo-random number. |
void |
raw(double[] d)
Fill an entire array with doubles. |
void |
raw(double[] d,
int n)
Fill part or all of an array with doubles. |
double |
uniform(double lo,
double hi)
|
Methods inherited from class cern.colt.PersistentObject |
clone |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public RandomElement()
Method Detail |
public int choose(int hi)
hi
- upper limit of rangepublic int choose(int lo, int hi)
lo
- lower limit of rangehi
- upper limit of rangepublic double gaussian()
public double gaussian(double sd)
sd
- standard deviationpublic double powlaw(double alpha, double cut)
alpha
and lower cutoff
cut
alpha
- the exponentcut
- the lower cutoffpublic abstract double raw()
RandomJava
for an example of how to do this.RandomJava
public void raw(double[] d)
raw(double d[],int n)
with d=d.length
. Since this adds little overhead for d.length
large, it is only necessary to override raw(double d[],int n)
d
- array to be filled with doubles.public void raw(double[] d, int n)
raw()
to fill the array. You can eliminate the overhead of
multiple method calls by subclassing this with a version of the generator
that fills the array. On our system this improves the efficiency of
Ranecu
by 20% when filling large arrays.d
- array to be filled with doublesn
- number of doubles to generatepublic double uniform(double lo, double hi)
lo
- lower limit of rangehi
- upper limit of range
|
Colt 1.0.1 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |