public abstract class AbstractIntegerDistribution extends Object implements IntegerDistribution, Serializable
| Modifier and Type | Field and Description |
|---|---|
protected RandomDataImpl |
randomData
RandomData instance used to generate samples from the distribution.
|
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractIntegerDistribution()
Default constructor.
|
| 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 lower,
int upper)
This is a utility function used by
inverseCumulativeProbability(double). |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcumulativeProbability, getNumericalMean, getNumericalVariance, getSupportLowerBound, getSupportUpperBound, isSupportConnected, probabilityprotected final RandomDataImpl randomData
protected AbstractIntegerDistribution()
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 IntegerDistributionx0 - the exclusive lower boundx1 - the inclusive upper boundx0 and x1,
excluding the lower and including the upper endpointNumberIsTooLargeException - if x0 > x1public 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 IntegerDistributionp - the cumulative probabilityp-quantile of this distribution
(largest 0-quantile for p = 0)OutOfRangeException - if p < 0 or p > 1protected 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) < pupper - a value satisfying p <= cumulativeProbability(upper)p-quantile of this distributionpublic void reseedRandomGenerator(long seed)
reseedRandomGenerator in interface IntegerDistributionseed - the new seedpublic int sample()
sample in interface IntegerDistributionpublic int[] sample(int sampleSize)
sample() in a loop.sample in interface IntegerDistributionsampleSize - the number of random values to generateCopyright © 2003-2012 The Apache Software Foundation. All Rights Reserved.