Multivariate StudentsT R Distribution - 5.2 English - 68552

AOCL API Guide (68552)

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

Generates an array of random variates from a Multivariate Students T distribution using a reference vector initialized by DRANDMULTISTUDENTSTREFERENCE.

C Generate 100 values from the
C Multivariate Students T distribution
    INTEGER LSTATE,N, MM
    PARAMETER (LSTATE=16,N=100,MM=10)
    INTEGER I,J,INFO,SEED(1),STATE(LSTATE)
    INTEGER LDC,LDX,M,DF
    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,DF
    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 DRANDMULTISTUDENTSTREFERENCE(M,DF,XMU,C,LDC,REF,LREF,INFO)

C Generate N variates from the
C Multivariate Students T distribution
    CALL DRANDMULTISTUDENTSTR(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