nobile.wishart <- function(v,S) { # print(S) L <- t(chol(chol2inv(chol(S)))) Linv <- forwardsolve(L,diag(rep(1,3))) # Linv<-t(chol(S)) # L<-qr.solve(Linv) a11 <- sqrt(rchisq(1,v)) a22 <- sqrt(rchisq(1,v-1)) a33 <- 1/L[3,3] a21 <- rnorm(1) a31 <- rnorm(1) a32 <- rnorm(1) A <- matrix(c(a11,a21,a31,a21, a22, a32, a31, a32, a33),3,3) lowertrian <- tril(A) # ltinv <- chol2inv(chol(lowertrian)) ltinv<-solve(lowertrian) out <- t(Linv)%*%t(ltinv)%*%ltinv%*%Linv # print(out) return(out) }