R/logdet.R

Defines functions logdet

logdet<-function(C){
# if(abs(log(det(as.matrix(S))))==Inf){
# sv <- sqrt(abs(spm_eigen(as.array(tcrossprod(S)))))
# #sv<-sqrt(sv)
# Sv <- sum(log(sv[sv>10^-16 && sv<(1/10^-16)]))
# Sv
#                                     }else{
# Sv=log(det(as.matrix(S)))
# Sv
#      }
# }

TOL=1e-16
n = dim(C)[1]
s=diag(C)
i=which(s>TOL & s<(1/TOL))
C=C[i,i]
H=sum(log(diag(C)))
if (abs(H)==Inf){
s  = sqrt(abs(eigen(as.array(tcrossprod(C)))$values))
    H  = sum(log(s(s > TOL & s < 1/TOL)))
H} else{H=H}
H}

Try the FIAR package in your browser

Any scripts or data that you put into this service are public.

FIAR documentation built on June 5, 2018, 5:03 p.m.