%macro mat_det_chol(cholesky=, det=); /*********************************************************************/ /* Having computed the Cholesky decomposition of a square, symmetric */ /* matrix, this macro then computes the determinant of the Cholesky */ /* matrix. The square of the Cholesky matrix determinant is the */ /* determinant of the matrix which was subjected to Cholesky */ /* decomposition. This macro takes as input the Cholesky matrix */ /* which is the Cholesky decomposition and returns the determinant */ /* not of the Cholesky decomposition but of the matrix which was */ /* subjected to a Cholesky decomposition. Thus, this macro returns */ /* the determinant of the square, symmetric matrix. */ /* */ /* Author: Dale McLerran */ /* Fred Hutchinson Cancer Research Center */ /* */ /*********************************************************************/ _n_dim = dim(&cholesky,1); &det = 1; do _irc=1 to _n_dim; &det = &det*&cholesky[_irc,_irc]; end; &det = &det*&det; %mend mat_det_chol;