public abstract class AbstractIntegerDistribution extends java.lang.Object implements IntegerDistribution, java.io.Serializable
Modifier and Type | Field and Description |
---|---|
protected RandomGenerator |
random
RNG instance used to generate samples from the distribution.
|
protected RandomDataImpl |
randomData
Deprecated.
As of 3.1, to be removed in 4.0. Please use the
random instance variable instead. |
private static long |
serialVersionUID
Serializable version identifier
|
Modifier | Constructor and Description |
---|---|
protected |
AbstractIntegerDistribution()
Deprecated.
As of 3.1, to be removed in 4.0. Please use
AbstractIntegerDistribution(RandomGenerator) instead. |
protected |
AbstractIntegerDistribution(RandomGenerator rng) |
Modifier and Type | Method and Description |
---|---|
private double |
checkedCumulativeProbability(int argument)
Computes the cumulative probability function and checks for
NaN
values returned. |
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 lower,
int upper)
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
private static final long serialVersionUID
@Deprecated protected final RandomDataImpl randomData
random
instance variable instead.protected final RandomGenerator random
@Deprecated protected AbstractIntegerDistribution()
AbstractIntegerDistribution(RandomGenerator)
instead.protected AbstractIntegerDistribution(RandomGenerator rng)
rng
- Random number generator.public double cumulativeProbability(int x0, int x1) throws NumberIsTooLargeException
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 endpointNumberIsTooLargeException
- if x0 > x1
public int inverseCumulativeProbability(double p) throws OutOfRangeException
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
)OutOfRangeException
- if p < 0
or p > 1
protected int solveInverseCumulativeProbability(double p, int lower, int upper)
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 probabilitylower
- a value satisfying cumulativeProbability(lower) < p
upper
- 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 generateprivate double checkedCumulativeProbability(int argument) throws MathInternalError
NaN
values returned. Throws MathInternalError
if the value is
NaN
. Rethrows any exception encountered evaluating the cumulative
probability function. Throws MathInternalError
if the cumulative
probability function returns NaN
.argument
- input valueMathInternalError
- if the cumulative probability is NaN
Copyright (c) 2003-2013 Apache Software Foundation