Skip to content

Commit

Permalink
Translated part of UpdateRPlee11_cpp() (#11)
Browse files Browse the repository at this point in the history
  • Loading branch information
wleoncio committed Oct 22, 2024
1 parent d170a1b commit 2ce0cd7
Showing 1 changed file with 45 additions and 44 deletions.
89 changes: 45 additions & 44 deletions src/UpdateRPlee11_cpp.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include <RcppArmadillo.h>
#include "misc.h"
#include "updateRP_genomic_cpp.h"
// [[Rcpp::depends(RcppArmadillo)]]
// [[Rcpp::export]]
Rcpp::List UpdateRPlee11_cpp(
Expand All @@ -10,56 +10,57 @@ Rcpp::List UpdateRPlee11_cpp(
const std::string method,
const bool MRF_G
){
// p <- sobj$p
// tau <- hyperpar$tau
// cb <- hyperpar$cb
uint p = Rcpp::as<uint>(sobj["p"]);
double tau = Rcpp::as<double>(hyperpar["tau"]);
double cb = Rcpp::as<double>(hyperpar["cb"]);

// if (method == "Pooled" && MRF_G) {
// x <- sobj$X
// J <- hyperpar$J
// ind.r <- hyperpar$ind.r
// ind.d <- hyperpar$ind.d
// ind.r_d <- hyperpar$ind.r_d
// be.prop.sd.scale <- hyperpar$be.prop.sd.scale
// be.ini <- ini$beta.ini
// ga.ini <- ini$gamma.ini
// h <- ini$h
arma::vec beta_ini;
arma::uvec acceptlee;

// # erg = UpdateRP.lee11.helper(n, p, x, J, ind.r, ind.d, ind.r_d, be.ini, ga.ini, h, tau, cb)
// erg <- updateRP_genomic_cpp(
// p, x, J, ind.r, ind.d, ind.r_d,
// be.ini, be.prop.sd.scale, ga.ini, h, tau, cb
// )
if (method == "Pooled" && MRF_G) {
arma::mat x = Rcpp::as<arma::mat>(sobj["X"]);
uint J = Rcpp::as<uint>(hyperpar["J"]);
arma::mat ind_r = Rcpp::as<arma::mat>(hyperpar["ind.r"]);
arma::mat ind_d = Rcpp::as<arma::mat>(hyperpar["ind.d"]);
arma::mat ind_r_d = Rcpp::as<arma::mat>(hyperpar["ind.r_d"]);
double be_prop_sd_scale = Rcpp::as<double>(hyperpar["be.prop.sd.scale"]);
arma::vec be_ini = Rcpp::as<arma::vec>(ini["beta.ini"]);
arma::vec ga_ini = Rcpp::as<arma::vec>(ini["gamma.ini"]);
arma::vec h = Rcpp::as<arma::vec>(ini["h"]);

// beta.ini <- as.vector(erg$be.ini)
// acceptlee <- erg$acceptl
// } else {
// beta.ini <- acceptlee <- vector("list", S)
// for (g in 1:S) { # loop through subgroups
Rcpp::List erg = updateRP_genomic_cpp(
p, x, J, ind_r, ind_d, ind_r_d, be_ini, be_prop_sd_scale, ga_ini, h, tau,
cb
);

// x <- sobj$X[[g]]
// J <- hyperpar$J[[g]]
// ind.r <- hyperpar$ind.r[[g]]
// ind.d <- hyperpar$ind.d[[g]]
// ind.r_d <- hyperpar$ind.r_d[[g]]
// be.ini <- ini$beta.ini[[g]]
// be.prop.sd.scale <- hyperpar$be.prop.sd.scale[[g]]
// ga.ini <- ini$gamma.ini[[g]]
// h <- ini$h[[g]]
beta_ini = Rcpp::as<arma::vec>(erg["be.ini"]);
acceptlee = Rcpp::as<arma::uvec>(erg["acceptl"]);
} else {
beta_ini = arma::zeros<arma::vec>(S);
acceptlee = arma::zeros<arma::uvec>(S);
for (uint g = 0; g < S; ++g) { // loop through subgroups
// x <- sobj$X[[g]]
// J <- hyperpar$J[[g]]
// ind.r <- hyperpar$ind.r[[g]]
// ind.d <- hyperpar$ind.d[[g]]
// ind.r_d <- hyperpar$ind.r_d[[g]]
// be.ini <- ini$beta.ini[[g]]
// be.prop.sd.scale <- hyperpar$be.prop.sd.scale[[g]]
// ga.ini <- ini$gamma.ini[[g]]
// h <- ini$h[[g]]

// # erg = UpdateRP.lee11.helper(n, p, x, J, ind.r, ind.d, ind.r_d, be.ini, ga.ini, h, tau, cb)
// erg <- updateRP_genomic_cpp(
// p, x, J, ind.r, ind.d, ind.r_d,
// be.ini, be.prop.sd.scale, ga.ini, h, tau, cb
// )
// erg <- updateRP_genomic_cpp(
// p, x, J, ind.r, ind.d, ind.r_d,
// be.ini, be.prop.sd.scale, ga.ini, h, tau, cb
// )

// beta.ini[[g]] <- as.vector(erg$be.ini)
// acceptlee[[g]] <- erg$acceptl
// }
// }
// beta.ini[[g]] <- as.vector(erg$be.ini)
// acceptlee[[g]] <- erg$acceptl
}
}
Rcpp::List out = Rcpp::List::create(
Rcpp::Named("beta.ini") = NA_REAL, // TEMP
Rcpp::Named("acceptlee") = NA_REAL // TEMP
Rcpp::Named("beta.ini") = beta_ini,
Rcpp::Named("acceptlee") = acceptlee
);
return out;
}

0 comments on commit 2ce0cd7

Please sign in to comment.