General Discrete Distribution - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English

Takes a reference vector initialized via one of DRANDBINOMIALREFERENCE, DRANDGEOMETRICREFERENCE, DRANDHYPERGEOMETRICREFERENCE, DRANDNEGATIVEBINOMIALREFERENCE, DRANDPOISSONREFERENCE, and generates a vector of random variates from it.

C Generate 100 values from the Binomial distribution
    INTEGER LSTATE,N
    PARAMETER (LSTATE=16,N=100)
    INTEGER I,INFO,SEED(1),STATE(LSTATE)
    INTEGER M
    DOUBLE PRECISION P
    INTEGER X(N)
    INTEGER LREF
    DOUBLE PRECISION REF(1000)

C Set the seed
    SEED(1) = 1234

C Read in the distributional parameters
    READ(5,*) M,P

C Initialize the STATE vector
    CALL DRANDINITIALIZE(1,1,SEED,1,STATE,LSTATE,INFO)

C Initialize the reference vector
    LREF = 1000
    CALL DRANDBINOMIALREFERENCE(M,P,REF,LREF,INFO)

C Generate N variates from the Binomial distribution
    CALL DRANDGENERALDISCRETE(N,REF,STATE,X,INFO)

C Print the results
    WRITE(6,*) (X(I),I=1,N)