public abstract class AbstractIntegerDistribution extends Object implements IntegerDistribution, Serializable
Modifier and Type | Field and Description |
---|---|
protected RandomGenerator |
random
RNG instance used to generate samples from the distribution.
|
Modifier | Constructor and Description |
---|---|
protected |
AbstractIntegerDistribution(RandomGenerator rng) |
Modifier and Type | Method and Description |
---|---|
double |
cumulativeProbability(int x0,
int x1)
For a random variable
X whose values are distributed according
to this distribution, this method returns P(x0 < X <= x1) . |
int |
inverseCumulativeProbability(double p)
Computes the quantile function of this distribution.
|
void |
reseedRandomGenerator(long seed)
Reseed the random generator used to generate samples.
|
int |
sample()
Generate a random value sampled from this distribution.
|
int[] |
sample(int sampleSize)
Generate a random sample from the distribution.
|
protected int |
solveInverseCumulativeProbability(double p,
int lowerIn,
int upperIn)
This is a utility function used by
inverseCumulativeProbability(double) . |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
cumulativeProbability, getNumericalMean, getNumericalVariance, getSupportLowerBound, getSupportUpperBound, isSupportConnected, probability
protected final RandomGenerator random
protected AbstractIntegerDistribution(RandomGenerator rng)
rng
- Random number generator.public double cumulativeProbability(int x0, int x1)
X
whose values are distributed according
to this distribution, this method returns P(x0 < X <= x1)
.
The default implementation uses the identity
P(x0 < X <= x1) = P(X <= x1) - P(X <= x0)
cumulativeProbability
in interface IntegerDistribution
x0
- the exclusive lower boundx1
- the inclusive upper boundx0
and x1
,
excluding the lower and including the upper endpointpublic int inverseCumulativeProbability(double p)
X
distributed according to this distribution,
the returned value is
inf{x in Z | P(X<=x) >= p}
for 0 < p <= 1
,inf{x in Z | P(X<=x) > 0}
for p = 0
.int
,
then Integer.MIN_VALUE
or Integer.MAX_VALUE
is returned.
The default implementation returns
IntegerDistribution.getSupportLowerBound()
for p = 0
,IntegerDistribution.getSupportUpperBound()
for p = 1
, andsolveInverseCumulativeProbability(double, int, int)
for 0 < p < 1
.inverseCumulativeProbability
in interface IntegerDistribution
p
- the cumulative probabilityp
-quantile of this distribution
(largest 0-quantile for p = 0
)protected int solveInverseCumulativeProbability(double p, int lowerIn, int upperIn)
inverseCumulativeProbability(double)
. It assumes 0 < p < 1
and
that the inverse cumulative probability lies in the bracket (lower, upper]
. The implementation does
simple bisection to find the
smallest p
-quantile inf{x in Z | P(X<=x) >= p}
.p
- the cumulative probabilitylowerIn
- a value satisfying cumulativeProbability(lower) < p
upperIn
- a value satisfying p <= cumulativeProbability(upper)
p
-quantile of this distributionpublic void reseedRandomGenerator(long seed)
reseedRandomGenerator
in interface IntegerDistribution
seed
- the new seedpublic int sample()
sample
in interface IntegerDistribution
public int[] sample(int sampleSize)
sample()
in a loop.sample
in interface IntegerDistribution
sampleSize
- the number of random values to generateCopyright © 2017 CNES. All rights reserved.