Initializes a reference vector for use with DRANDMULTINORMALR. Reference vector is for a Multivariate Normal distribution with probability density function, \(f (X)\), where:
\[f(X) = \sqrt{\frac{|C^{-1}|}{(2\pi)^M}} e^{-(X - \mu)^{T} C^{-1} (X - \mu)}\]
where μ is the vector of means, XMU.
C Generate 100 values from the
C Multivariate Normal distribution
INTEGER LSTATE,N, MM
PARAMETER (LSTATE=16,N=100,MM=10)
INTEGER I,J,INFO,SEED(1),STATE(LSTATE)
INTEGER LDC,LDX,M
DOUBLE PRECISION X(N,MM),XMU(MM),C(MM,MM)
INTEGER LREF
DOUBLE PRECISION REF(1000)
C Set array sizes
LDC = MM
LDX = N
C Set the seed
SEED(1) = 1234
C Read in the distributional parameters
READ(5,*) M
READ(5,*) (XMU(I),I=1,M)
DO 20 I = 1,M
READ(5,*) (C(I,J),J=1,M)
20 CONTINUE
C Initialize the STATE vector
CALL DRANDINITIALIZE(1,1,SEED,1,STATE,LSTATE,INFO)
C Initialize the reference vector
LREF = 1000
CALL DRANDMULTINORMALREFERENCE(M,XMU,C,LDC,REF,LREF,INFO)
C Generate N variates from the
C Multivariate Normal distribution
CALL DRANDMULTINORMALR(N,REF,STATE,X,LDX,INFO)
C Print the results
DO 40 I = 1,N
WRITE(6,*) (X(I,J),J=1,M)
40 CONTINUE