From 690e6579f4b9eec0477397f41f93e62c73b6fe66 Mon Sep 17 00:00:00 2001 From: adamwang15 Date: Mon, 15 Jul 2024 22:42:28 +1000 Subject: [PATCH] fix dumb bug #30 --- src/bsvars_sign.cpp | 5 ----- src/sample_NIW.cpp | 7 ++++--- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/bsvars_sign.cpp b/src/bsvars_sign.cpp index e077562..cec26a6 100644 --- a/src/bsvars_sign.cpp +++ b/src/bsvars_sign.cpp @@ -104,14 +104,9 @@ Rcpp::List bsvar_sign_cpp( psi = hyper.rows(3, N + 2); // update Minnesota prior - prior_v.rows(0, N * p - 1) = lambda * lambda * - prior_v.rows(0, N * p - 1) % - repmat(1 / psi, p, 1); - prior_V = diagmat(lambda * lambda * prior_v % join_vert(repmat(1 / psi, p, 1), ones(K - N * p))); - prior_V = diagmat(prior_v); prior_S = diagmat(psi); // update dummy observation prior diff --git a/src/sample_NIW.cpp b/src/sample_NIW.cpp index bea6cd9..f6edf5a 100644 --- a/src/sample_NIW.cpp +++ b/src/sample_NIW.cpp @@ -64,14 +64,15 @@ arma::field niw_cpp( mat post_B = post_V * (X.t() * Y + prior_V_inv * prior_B); // marginal posterior of Sigma - mat post_S = prior_S + Y.t() * Y + prior_B.t() * prior_V_inv * prior_B - post_B.t() * post_V_inv * post_B; - post_S = symmatu(post_S); + mat post_S = prior_S + Y.t() * Y + + prior_B.t() * prior_V_inv * prior_B - + post_B.t() * post_V_inv * post_B; int post_nu = prior_nu + T; field post(4); post(0) = post_B; post(1) = post_V; - post(2) = post_S; + post(2) = symmatu(post_S); post(3) = mat(1, 1, fill::ones) * post_nu; return post;