public abstract class RandomElement
extends java.lang.Object
implements java.lang.Cloneable
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
Modifier and Type | Field and Description |
---|---|
(package private) java.lang.Double |
BMoutput |
Constructor and Description |
---|
RandomElement() |
Modifier and Type | Method and Description |
---|---|
int |
choose(int hi) |
int |
choose(int lo,
int hi) |
java.lang.Object |
clone() |
boolean |
coin() |
boolean |
coin(double p) |
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()
The abstract method that must be defined to make a working RandomElement.
|
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) |
public abstract double raw()
RandomJava
for an example of how to do this.RandomJava
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 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 int choose(int hi)
hi
- upper limit of rangepublic int choose(int lo, int hi)
lo
- lower limit of rangehi
- upper limit of rangepublic boolean coin()
public boolean coin(double p)
p
- probability that function will return truepublic double uniform(double lo, double 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 java.lang.Object clone() throws java.lang.CloneNotSupportedException
clone
in class java.lang.Object
java.lang.CloneNotSupportedException