public class RejectionWrapper extends AnotherAbstractRealDistribution
constraint
and rescales the rest of the distribution to become a valid one again.
For sampling, a basic rejection sampling approach is implemented in sample()
.
for a more advanced version using a slice sampling approach.
,
Serialized FormModifier and Type | Field and Description |
---|---|
protected double |
constraint
the constraint, such that the distribution is truncated below this constraint
|
protected double |
scale
scaling function, such that the truncated distribution will integrate to 1
|
protected org.apache.commons.math3.distribution.RealDistribution |
wrappedDist
The original distribution
|
cachedMean, cachedVariance
Constructor and Description |
---|
RejectionWrapper(org.apache.commons.math3.distribution.RealDistribution dist) |
RejectionWrapper(org.apache.commons.math3.distribution.RealDistribution dist,
double constraint) |
Modifier and Type | Method and Description |
---|---|
double |
density(double x) |
double |
getSupportLowerBound() |
double |
getSupportUpperBound() |
boolean |
isSupportConnected() |
boolean |
isSupportLowerBoundInclusive() |
boolean |
isSupportUpperBoundInclusive() |
void |
reseedRandomGenerator(long seed) |
double |
sample()
Perform simple rejection sampling until we find a sample that is above the constraint threshold.
|
double[] |
sample(int sampleSize) |
cumulativeProbability, getNumericalMean, getNumericalVariance, value
protected org.apache.commons.math3.distribution.RealDistribution wrappedDist
protected double constraint
protected double scale
public RejectionWrapper(org.apache.commons.math3.distribution.RealDistribution dist)
public RejectionWrapper(org.apache.commons.math3.distribution.RealDistribution dist, double constraint)
public double density(double x)
public double getSupportLowerBound()
public double getSupportUpperBound()
public boolean isSupportLowerBoundInclusive()
public boolean isSupportUpperBoundInclusive()
public boolean isSupportConnected()
public void reseedRandomGenerator(long seed)
reseedRandomGenerator
in interface org.apache.commons.math3.distribution.RealDistribution
reseedRandomGenerator
in class org.apache.commons.math3.distribution.AbstractRealDistribution
public double sample()
sample
in interface org.apache.commons.math3.distribution.RealDistribution
sample
in class org.apache.commons.math3.distribution.AbstractRealDistribution
public double[] sample(int sampleSize)
sample
in interface org.apache.commons.math3.distribution.RealDistribution
sample
in class org.apache.commons.math3.distribution.AbstractRealDistribution