From ab3a5f73943df373f7744d44a70cb424a514ef2c Mon Sep 17 00:00:00 2001 From: Waldir Leoncio Date: Thu, 23 May 2024 12:54:44 +0200 Subject: [PATCH] Moved DD3_diag definition out the loop (#17) --- src/admm_MADMMplasso.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/admm_MADMMplasso.cpp b/src/admm_MADMMplasso.cpp index a5549c1..2a3511c 100644 --- a/src/admm_MADMMplasso.cpp +++ b/src/admm_MADMMplasso.cpp @@ -128,6 +128,7 @@ arma::field admm_MADMMplasso_cpp( arma::mat b; const arma::mat W_hat_t = W_hat.t(); arma::mat DD3(W_hat_t.n_rows, W_hat_t.n_rows); + arma::vec DD3_diag(W_hat_t.n_rows); arma::mat part_z(W_hat_t.n_rows, W_hat_t.n_cols); arma::vec part_y(W_hat_t.n_rows); arma::vec my_beta_jj(W_hat_t.n_rows); @@ -157,7 +158,7 @@ arma::field admm_MADMMplasso_cpp( arma::vectorise(rho * (EE.slice(jj) - HH.slice(jj))); DD3 = arma::diagmat(1 / invmat.slice(jj)); - arma::vec DD3_diag = arma::diagvec(DD3); + DD3_diag = arma::diagvec(DD3); for (arma::uword j = 0; j < W_hat_t.n_cols; ++j) { part_z.col(j) = DD3_diag % W_hat_t.col(j); }