#include "MSBVARcpp.h" #include "A0_W.h" extern "C" SEXP gibbsA0(SEXP varobj, SEXP N1R, SEXP N2R, SEXP thinR, SEXP method, SEXP UTR) { int i, j, k, m, df, norm_method=INTEGER(method)[0], pctct=0; int N1=INTEGER(N1R)[0], N2=INTEGER(N2R)[0], thin=INTEGER(thinR)[0], switchct=0; SEXP n0R, dfR, mode, identR; double *pA0; Matrix A0ml, A0gbs, ident; // Rprintf("N1:\t%d\nN2:\t%d\nthin:\t%d\nmethod:\t%d\n", N1, N2, thin, norm_method); // Initialize varobj$A0.mode/m/df/n0/ident PROTECT(mode=listElt(varobj,"A0.mode")); m=getdims(mode)[0]; A0ml=R2Cmat(mode,m,m); UNPROTECT(1); PROTECT(dfR=coerceVector(listElt(varobj,"df"),INTSXP)); df=INTEGER(dfR)[0]; UNPROTECT(1); PROTECT(identR=listElt(varobj,"ident")); ident=R2Cmat(identR,m,m); double *pid=ident.Store(); UNPROTECT(1); PROTECT(n0R=listElt(varobj,"n0")); int len=length(n0R), *pn0=INTEGER(n0R), *n0=(int*)R_alloc(len,sizeof(int)); for(i=0;i