Package cern.jet.random
Class Poisson
- java.lang.Object
-
- All Implemented Interfaces:
DoubleFunction,IntFunction,java.io.Serializable,java.lang.Cloneable
public class Poisson extends AbstractDiscreteDistribution
Poisson distribution (quick); See the math definition and animated definition.p(k) = (mean^k / k!) * exp(-mean) for k >= 0.
Valid parameter ranges: mean > 0. Note: if mean <= 0.0 then always returns zero.
Instance methods operate on a user supplied uniform random number generator; they are unsynchronized.
- Static methods operate on a default uniform random number generator; they are synchronized.
Implementation: High performance implementation. Patchwork Rejection/Inversion method.
- This is a port of pprsc.c from the C-RAND / WIN-RAND library. C-RAND's implementation, in turn, is based upon
H. Zechner (1994): Efficient sampling from continuous and discrete unimodal distributions, Doctoral Dissertation, 156 pp., Technical University Graz, Austria.
Also see
Stadlober E., H. Zechner (1999), The patchwork rejection method for sampling from unimodal distributions, to appear in ACM Transactions on Modelling and Simulation.
- Version:
- 1.0, 09/24/99
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected doublec_pmprotected doubledlprotected doubledrprotected doublef1protected doublef2protected doublef4protected doublef5protected intk1protected intk2protected intk4protected intk5protected doublel_myprotected doublellprotected intllllprotected doublelrprotected intmprotected doublemeanprotected static doubleMEAN_MAXprotected doublemy_lastprotected doublemy_oldprotected doublepprotected doublep0protected doublep1protected doublep2protected doublep3protected doublep4protected doublep5protected doublep6protected double[]ppprotected doubleqprotected doubler1protected doubler2protected doubler4protected doubler5protected static Poissonsharedprotected static doubleSWITCH_MEAN-
Fields inherited from class cern.jet.random.AbstractDistribution
randomGenerator
-
Fields inherited from class cern.colt.PersistentObject
serialVersionUID
-
-
Constructor Summary
Constructors Constructor Description Poisson(double mean, RandomEngine randomGenerator)Constructs a poisson distribution.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description doublecdf(int k)Returns the cumulative distribution function.java.lang.Objectclone()Returns a deep copy of the receiver; the copy will produce identical sequences.private static doublef(int k, double l_nu, double c_pm)intnextInt()Returns a random number from the distribution.intnextInt(double theMean)Returns a random number from the distribution; bypasses the internal state.doublepdf(int k)Returns the probability distribution function.voidsetMean(double mean)Sets the mean.static intstaticNextInt(double mean)Returns a random number from the distribution with the given mean.java.lang.StringtoString()Returns a String representation of the receiver.private static voidxstaticSetRandomGenerator(RandomEngine randomGenerator)Sets the uniform random number generated shared by all static methods.-
Methods inherited from class cern.jet.random.AbstractDiscreteDistribution
nextDouble
-
Methods inherited from class cern.jet.random.AbstractDistribution
apply, apply, getRandomGenerator, makeDefaultGenerator, setRandomGenerator
-
-
-
-
Field Detail
-
mean
protected double mean
-
my_old
protected double my_old
-
p
protected double p
-
q
protected double q
-
p0
protected double p0
-
pp
protected double[] pp
-
llll
protected int llll
-
my_last
protected double my_last
-
ll
protected double ll
-
k2
protected int k2
-
k4
protected int k4
-
k1
protected int k1
-
k5
protected int k5
-
dl
protected double dl
-
dr
protected double dr
-
r1
protected double r1
-
r2
protected double r2
-
r4
protected double r4
-
r5
protected double r5
-
lr
protected double lr
-
l_my
protected double l_my
-
c_pm
protected double c_pm
-
f1
protected double f1
-
f2
protected double f2
-
f4
protected double f4
-
f5
protected double f5
-
p1
protected double p1
-
p2
protected double p2
-
p3
protected double p3
-
p4
protected double p4
-
p5
protected double p5
-
p6
protected double p6
-
m
protected int m
-
MEAN_MAX
protected static final double MEAN_MAX
- See Also:
- Constant Field Values
-
SWITCH_MEAN
protected static final double SWITCH_MEAN
- See Also:
- Constant Field Values
-
shared
protected static Poisson shared
-
-
Constructor Detail
-
Poisson
public Poisson(double mean, RandomEngine randomGenerator)Constructs a poisson distribution. Example: mean=1.0.
-
-
Method Detail
-
cdf
public double cdf(int k)
Returns the cumulative distribution function.
-
clone
public java.lang.Object clone()
Returns a deep copy of the receiver; the copy will produce identical sequences. After this call has returned, the copy and the receiver have equal but separate state.- Overrides:
clonein classAbstractDistribution- Returns:
- a copy of the receiver.
-
f
private static double f(int k, double l_nu, double c_pm)
-
nextInt
public int nextInt()
Returns a random number from the distribution.- Specified by:
nextIntin classAbstractDiscreteDistribution
-
nextInt
public int nextInt(double theMean)
Returns a random number from the distribution; bypasses the internal state.
-
pdf
public double pdf(int k)
Returns the probability distribution function.
-
setMean
public void setMean(double mean)
Sets the mean.
-
staticNextInt
public static int staticNextInt(double mean)
Returns a random number from the distribution with the given mean.
-
toString
public java.lang.String toString()
Returns a String representation of the receiver.- Overrides:
toStringin classjava.lang.Object
-
xstaticSetRandomGenerator
private static void xstaticSetRandomGenerator(RandomEngine randomGenerator)
Sets the uniform random number generated shared by all static methods.- Parameters:
randomGenerator- the new uniform random number generator to be shared.
-
-