1
INTEGER FUNCTION ignnbn(n,p)
2
C**********************************************************************
4
C INTEGER FUNCTION IGNNBN( N, P )
6
C GENerate Negative BiNomial random deviate
12
C Generates a single random deviate from a negative binomial
19
C N --> Required number of events.
23
C P --> The probability of an event during a Bernoulli trial.
32
C Algorithm from page 480 of
36
C Non-Uniform Random Variate Generation. Springer-Verlag,
39
C**********************************************************************
41
C .. Scalar Arguments ..
46
DOUBLE PRECISION y,a,r
48
C .. External Functions ..
49
C JJV changed to call SGAMMA directly
50
C DOUBLE PRECISION gengam
51
DOUBLE PRECISION sgamma
53
C EXTERNAL gengam,ignpoi
54
EXTERNAL sgamma,ignpoi
56
C .. Intrinsic Functions ..
59
C .. Executable Statements ..
61
C JJV changed argumnet checker to abort if N <= 0
63
C Generate Y, a random gamma (n,(1-p)/p) variable
64
C JJV Note: the above parametrization is consistent with Devroye,
65
C JJV but gamma (p/(1-p),n) is the equivalent in our code
71
C Generate a random Poisson(y) variable