Class InverseTransformContinuousSampler
java.lang.Object
org.apache.commons.rng.sampling.distribution.SamplerBase
org.apache.commons.rng.sampling.distribution.InverseTransformContinuousSampler
- All Implemented Interfaces:
ContinuousSampler
public class InverseTransformContinuousSampler extends SamplerBase implements ContinuousSampler
Distribution sampler that uses the
inversion method.
It can be used to sample any distribution that provides access to its
inverse cumulative probability function.
Sampling uses UniformRandomProvider.nextDouble().
Example:
import org.apache.commons.math3.distribution.RealDistribution;
import org.apache.commons.math3.distribution.ChiSquaredDistribution;
import org.apache.commons.rng.simple.RandomSource;
import org.apache.commons.rng.sampling.distribution.ContinuousSampler;
import org.apache.commons.rng.sampling.distribution.InverseTransformContinuousSampler;
import org.apache.commons.rng.sampling.distribution.ContinuousInverseCumulativeProbabilityFunction;
// Distribution to sample.
final RealDistribution dist = new ChiSquaredDistribution(9);
// Create the sampler.
final ContinuousSampler chiSquareSampler =
new InverseTransformContinuousSampler(RandomSource.create(RandomSource.MT),
new ContinuousInverseCumulativeProbabilityFunction() {
public double inverseCumulativeProbability(double p) {
return dist.inverseCumulativeProbability(p);
}
});
// Generate random deviate.
double random = chiSquareSampler.sample();
- Since:
- 1.0
-
Constructor Summary
Constructors Constructor Description InverseTransformContinuousSampler(UniformRandomProvider rng, ContinuousInverseCumulativeProbabilityFunction function) -
Method Summary
Methods inherited from class org.apache.commons.rng.sampling.distribution.SamplerBase
nextDouble, nextInt, nextInt, nextLong
-
Constructor Details
-
InverseTransformContinuousSampler
public InverseTransformContinuousSampler(UniformRandomProvider rng, ContinuousInverseCumulativeProbabilityFunction function)- Parameters:
rng- Generator of uniformly distributed random numbers.function- Inverse cumulative probability function.
-
-
Method Details
-
sample
public double sample()Creates a sample.- Specified by:
samplein interfaceContinuousSampler- Returns:
- a sample.
-
toString
public java.lang.String toString()- Overrides:
toStringin classSamplerBase
-