// Generated by using Rcpp::compileAttributes() -> do not edit by hand
// Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

#include <RcppArmadillo.h>
#include <Rcpp.h>

using namespace Rcpp;

#ifdef RCPP_USE_GLOBAL_ROSTREAM
Rcpp::Rostream<true>&  Rcpp::Rcout = Rcpp::Rcpp_cout_get();
Rcpp::Rostream<false>& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get();
#endif

// lsirm1pl_cpp
Rcpp::List lsirm1pl_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_a_theta, const double pr_b_theta, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_mean_gamma, pr_sd_gamma, pr_a_theta, pr_b_theta, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_mcar_cpp
Rcpp::List lsirm1pl_mcar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_a_theta, const double pr_b_theta, double pr_sd_theta, const double missing, const bool verbose, const bool fix_theta_sd, const bool fixed_gamma, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_mcar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fixed_gammaSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fixed_gamma(fixed_gammaSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_mcar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_mean_gamma, pr_sd_gamma, pr_a_theta, pr_b_theta, pr_sd_theta, missing, verbose, fix_theta_sd, fixed_gamma, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_mcar_ss_cpp
Rcpp::List lsirm1pl_mcar_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_a_theta, const double pr_b_theta, const double pr_beta_a, const double pr_beta_b, double pr_sd_theta, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_mcar_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP pr_sd_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_mcar_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_a_theta, pr_b_theta, pr_beta_a, pr_beta_b, pr_sd_theta, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_mar_cpp
Rcpp::List lsirm1pl_mar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_a_theta, const double pr_b_theta, double pr_sd_theta, const double missing, const bool verbose, const bool fix_theta_sd, const bool fixed_gamma, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fixed_gammaSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fixed_gamma(fixed_gammaSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_mar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_mean_gamma, pr_sd_gamma, pr_a_theta, pr_b_theta, pr_sd_theta, missing, verbose, fix_theta_sd, fixed_gamma, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_mar_ss_cpp
Rcpp::List lsirm1pl_mar_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_a_theta, const double pr_b_theta, const double pr_beta_a, const double pr_beta_b, double pr_sd_theta, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_mar_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP pr_sd_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_mar_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_a_theta, pr_b_theta, pr_beta_a, pr_beta_b, pr_sd_theta, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_normal_cpp
Rcpp::List lsirm1pl_normal_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_a_theta, const double pr_b_theta, double pr_sd_theta, const double pr_a_eps, const double pr_b_eps, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_normal_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_normal_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_mean_gamma, pr_sd_gamma, pr_a_theta, pr_b_theta, pr_sd_theta, pr_a_eps, pr_b_eps, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_normal_ss_cpp
Rcpp::List lsirm1pl_normal_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_a_theta, const double pr_b_theta, double pr_sd_theta, const double pr_beta_a, const double pr_beta_b, const double pr_a_eps, const double pr_b_eps, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_normal_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_normal_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_a_theta, pr_b_theta, pr_sd_theta, pr_beta_a, pr_beta_b, pr_a_eps, pr_b_eps, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_ss_cpp
Rcpp::List lsirm1pl_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_a_theta, const double pr_b_theta, const double pr_beta_a, const double pr_beta_b, double pr_sd_theta, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP pr_sd_thetaSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_a_theta, pr_b_theta, pr_beta_a, pr_beta_b, pr_sd_theta, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_normal_mar_cpp
Rcpp::List lsirm1pl_normal_mar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_a_theta, const double pr_b_theta, double pr_sd_theta, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_normal_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_normal_mar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_mean_gamma, pr_sd_gamma, pr_a_theta, pr_b_theta, pr_sd_theta, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_normal_mcar_ss_cpp
Rcpp::List lsirm1pl_normal_mcar_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_a_theta, const double pr_b_theta, double pr_sd_theta, const double pr_beta_a, const double pr_beta_b, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_normal_mcar_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_normal_mcar_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_a_theta, pr_b_theta, pr_sd_theta, pr_beta_a, pr_beta_b, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_normal_mar_ss_cpp
Rcpp::List lsirm1pl_normal_mar_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_a_theta, const double pr_b_theta, double pr_sd_theta, const double pr_beta_a, const double pr_beta_b, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_normal_mar_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_normal_mar_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_a_theta, pr_b_theta, pr_sd_theta, pr_beta_a, pr_beta_b, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_normal_mcar_cpp
Rcpp::List lsirm1pl_normal_mcar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_a_theta, const double pr_b_theta, double pr_sd_theta, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_normal_mcar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_normal_mcar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_mean_gamma, pr_sd_gamma, pr_a_theta, pr_b_theta, pr_sd_theta, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_fixed_gamma_cpp
Rcpp::List lsirm1pl_fixed_gamma_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_a_theta, const double pr_b_theta, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_fixed_gamma_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_fixed_gamma_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_a_theta, pr_b_theta, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_fixed_gamma_mar_cpp
Rcpp::List lsirm1pl_fixed_gamma_mar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_a_theta, const double pr_b_theta, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_fixed_gamma_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_fixed_gamma_mar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_a_theta, pr_b_theta, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_fixed_gamma_mcar_cpp
Rcpp::List lsirm1pl_fixed_gamma_mcar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_a_theta, const double pr_b_theta, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_fixed_gamma_mcar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_fixed_gamma_mcar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_a_theta, pr_b_theta, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_normal_fixed_gamma_cpp
Rcpp::List lsirm1pl_normal_fixed_gamma_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_a_theta, const double pr_b_theta, const double pr_a_eps, const double pr_b_eps, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_normal_fixed_gamma_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_normal_fixed_gamma_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_a_theta, pr_b_theta, pr_a_eps, pr_b_eps, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_normal_fixed_gamma_mar_cpp
Rcpp::List lsirm1pl_normal_fixed_gamma_mar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_a_theta, const double pr_b_theta, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_normal_fixed_gamma_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_normal_fixed_gamma_mar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_a_theta, pr_b_theta, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm1pl_normal_fixed_gamma_mcar_cpp
Rcpp::List lsirm1pl_normal_fixed_gamma_mcar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_a_theta, const double pr_b_theta, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm1pl_normal_fixed_gamma_mcar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm1pl_normal_fixed_gamma_mcar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_a_theta, pr_b_theta, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_cpp
Rcpp::List lsirm2pl_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_mean_gamma, pr_sd_gamma, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_mcar_cpp
Rcpp::List lsirm2pl_mcar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_mcar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_mcar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_mean_gamma, pr_sd_gamma, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_mcar_ss_cpp
Rcpp::List lsirm2pl_mcar_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double pr_beta_a, const double pr_beta_b, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_mcar_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_mcar_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, pr_beta_a, pr_beta_b, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_mar_cpp
Rcpp::List lsirm2pl_mar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_mar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_mean_gamma, pr_sd_gamma, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_mar_ss_cpp
Rcpp::List lsirm2pl_mar_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double pr_beta_a, const double pr_beta_b, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_mar_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_mar_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, pr_beta_a, pr_beta_b, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_normal_cpp
Rcpp::List lsirm2pl_normal_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_a_theta, const double pr_b_theta, const double pr_a_eps, const double pr_b_eps, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_mean_alpha, const double pr_sd_alpha, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_normal_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_normal_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_a_theta, pr_b_theta, pr_a_eps, pr_b_eps, pr_mean_gamma, pr_sd_gamma, pr_mean_alpha, pr_sd_alpha, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_normal_ss_cpp
Rcpp::List lsirm2pl_normal_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_eps, const double pr_b_eps, const double pr_a_theta, const double pr_b_theta, const double pr_beta_a, const double pr_beta_b, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_normal_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_normal_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_mean_alpha, pr_sd_alpha, pr_a_eps, pr_b_eps, pr_a_theta, pr_b_theta, pr_beta_a, pr_beta_b, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_fixed_gamma_cpp
Rcpp::List lsirm2pl_fixed_gamma_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_fixed_gamma_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_fixed_gamma_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_ss_cpp
Rcpp::List lsirm2pl_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double pr_beta_a, const double pr_beta_b, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, pr_beta_a, pr_beta_b, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_normal_fixed_gamma_cpp
Rcpp::List lsirm2pl_normal_fixed_gamma_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_a_theta, const double pr_b_theta, const double pr_a_eps, const double pr_b_eps, const double pr_mean_alpha, const double pr_sd_alpha, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_normal_fixed_gamma_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_normal_fixed_gamma_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_a_theta, pr_b_theta, pr_a_eps, pr_b_eps, pr_mean_alpha, pr_sd_alpha, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_normal_mar_ss_cpp
Rcpp::List lsirm2pl_normal_mar_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double pr_beta_a, const double pr_beta_b, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_normal_mar_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_normal_mar_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, pr_beta_a, pr_beta_b, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_normal_mcar_ss_cpp
Rcpp::List lsirm2pl_normal_mcar_ss_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double pr_beta_a, const double pr_beta_b, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_normal_mcar_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_normal_mcar_ss_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, pr_beta_a, pr_beta_b, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_normal_mar_cpp
Rcpp::List lsirm2pl_normal_mar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_normal_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_normal_mar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_mean_gamma, pr_sd_gamma, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_normal_mcar_cpp
Rcpp::List lsirm2pl_normal_mcar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_normal_mcar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_normal_mcar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_mean_gamma, pr_sd_gamma, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_fixed_gamma_mcar_cpp
Rcpp::List lsirm2pl_fixed_gamma_mcar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_fixed_gamma_mcar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_fixed_gamma_mcar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_fixed_gamma_mar_cpp
Rcpp::List lsirm2pl_fixed_gamma_mar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_fixed_gamma_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_fixed_gamma_mar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_normal_fixed_gamma_mcar_cpp
Rcpp::List lsirm2pl_normal_fixed_gamma_mcar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_normal_fixed_gamma_mcar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_normal_fixed_gamma_mcar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirm2pl_normal_fixed_gamma_mar_cpp
Rcpp::List lsirm2pl_normal_fixed_gamma_mar_cpp(arma::mat data, const int ndim, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta, const double pr_a_eps, const double pr_b_eps, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirm2pl_normal_fixed_gamma_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_a_epsSEXP, SEXP pr_b_epsSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_eps(pr_a_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_eps(pr_b_epsSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirm2pl_normal_fixed_gamma_mar_cpp(data, ndim, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_sd_theta, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta, pr_a_eps, pr_b_eps, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm_cpp
Rcpp::List lsirmgrm_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double jump_gamma, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP jump_gammaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, pr_mean_gamma, pr_sd_gamma, jump_gamma, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm_fixed_gamma_cpp
Rcpp::List lsirmgrm_fixed_gamma_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm_fixed_gamma_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm_fixed_gamma_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm_ss_cpp
Rcpp::List lsirmgrm_ss_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_beta_a, const double pr_beta_b, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm_ss_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_beta_a, pr_beta_b, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm_mar_cpp
Rcpp::List lsirmgrm_mar_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double jump_gamma, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP jump_gammaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm_mar_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, pr_mean_gamma, pr_sd_gamma, jump_gamma, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm_fixed_gamma_mar_cpp
Rcpp::List lsirmgrm_fixed_gamma_mar_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm_fixed_gamma_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm_fixed_gamma_mar_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm_ss_mar_cpp
Rcpp::List lsirmgrm_ss_mar_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_beta_a, const double pr_beta_b, const double missing, const bool verbose, const bool fix_theta_sd, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm_ss_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm_ss_mar_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_beta_a, pr_beta_b, missing, verbose, fix_theta_sd, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm2pl_cpp
Rcpp::List lsirmgrm2pl_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double jump_gamma, const double pr_mean_alpha, const double pr_sd_alpha, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm2pl_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP jump_gammaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm2pl_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, pr_mean_gamma, pr_sd_gamma, jump_gamma, pr_mean_alpha, pr_sd_alpha, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm2pl_fixed_gamma_cpp
Rcpp::List lsirmgrm2pl_fixed_gamma_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_alpha, const double pr_sd_alpha, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm2pl_fixed_gamma_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm2pl_fixed_gamma_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, pr_mean_alpha, pr_sd_alpha, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm2pl_ss_cpp
Rcpp::List lsirmgrm2pl_ss_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_beta_a, const double pr_beta_b, const double pr_mean_alpha, const double pr_sd_alpha, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm2pl_ss_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm2pl_ss_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_beta_a, pr_beta_b, pr_mean_alpha, pr_sd_alpha, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm2pl_mar_cpp
Rcpp::List lsirmgrm2pl_mar_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_gamma, const double pr_sd_gamma, const double jump_gamma, const double pr_mean_alpha, const double pr_sd_alpha, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm2pl_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_gammaSEXP, SEXP pr_sd_gammaSEXP, SEXP jump_gammaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_gamma(pr_mean_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_gamma(pr_sd_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm2pl_mar_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, pr_mean_gamma, pr_sd_gamma, jump_gamma, pr_mean_alpha, pr_sd_alpha, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm2pl_fixed_gamma_mar_cpp
Rcpp::List lsirmgrm2pl_fixed_gamma_mar_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double pr_mean_alpha, const double pr_sd_alpha, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm2pl_fixed_gamma_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm2pl_fixed_gamma_mar_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, pr_mean_alpha, pr_sd_alpha, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// lsirmgrm2pl_ss_mar_cpp
Rcpp::List lsirmgrm2pl_ss_mar_cpp(arma::mat data, const int ndim, const int ncat, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double jump_gamma, const double jump_z, const double jump_w, const double pr_mean_beta, const double pr_sd_beta, const double pr_a_theta, const double pr_b_theta, const double pr_mean_theta, double pr_sd_theta, const double pr_spike_mean, const double pr_spike_sd, const double pr_slab_mean, const double pr_slab_sd, const double pr_beta_a, const double pr_beta_b, const double pr_mean_alpha, const double pr_sd_alpha, const double missing, const bool verbose, const bool fix_theta_sd, const bool fix_alpha_1, Rcpp::Nullable<Rcpp::List> adapt);
RcppExport SEXP _lsirm12pl_lsirmgrm2pl_ss_mar_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP jump_gammaSEXP, SEXP jump_zSEXP, SEXP jump_wSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_sd_thetaSEXP, SEXP pr_spike_meanSEXP, SEXP pr_spike_sdSEXP, SEXP pr_slab_meanSEXP, SEXP pr_slab_sdSEXP, SEXP pr_beta_aSEXP, SEXP pr_beta_bSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP missingSEXP, SEXP verboseSEXP, SEXP fix_theta_sdSEXP, SEXP fix_alpha_1SEXP, SEXP adaptSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_gamma(jump_gammaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_z(jump_zSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_w(jump_wSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< double >::type pr_sd_theta(pr_sd_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_mean(pr_spike_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_spike_sd(pr_spike_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_mean(pr_slab_meanSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_slab_sd(pr_slab_sdSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_a(pr_beta_aSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_beta_b(pr_beta_bSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    Rcpp::traits::input_parameter< const bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_theta_sd(fix_theta_sdSEXP);
    Rcpp::traits::input_parameter< const bool >::type fix_alpha_1(fix_alpha_1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::List> >::type adapt(adaptSEXP);
    rcpp_result_gen = Rcpp::wrap(lsirmgrm2pl_ss_mar_cpp(data, ndim, ncat, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, jump_gamma, jump_z, jump_w, pr_mean_beta, pr_sd_beta, pr_a_theta, pr_b_theta, pr_mean_theta, pr_sd_theta, pr_spike_mean, pr_spike_sd, pr_slab_mean, pr_slab_sd, pr_beta_a, pr_beta_b, pr_mean_alpha, pr_sd_alpha, missing, verbose, fix_theta_sd, fix_alpha_1, adapt));
    return rcpp_result_gen;
END_RCPP
}
// onepl_cpp
Rcpp::List onepl_cpp(arma::mat data, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_a_theta, const double pr_b_theta);
RcppExport SEXP _lsirm12pl_onepl_cpp(SEXP dataSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    rcpp_result_gen = Rcpp::wrap(onepl_cpp(data, niter, nburn, nthin, nprint, jump_beta, jump_theta, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_a_theta, pr_b_theta));
    return rcpp_result_gen;
END_RCPP
}
// two_pl
Rcpp::List two_pl(arma::mat data, const int niter, const int nburn, const int nthin, const int nprint, const double jump_beta, const double jump_theta, const double jump_alpha, const double pr_mean_beta, const double pr_sd_beta, const double pr_mean_theta, const double pr_mean_alpha, const double pr_sd_alpha, const double pr_a_theta, const double pr_b_theta);
RcppExport SEXP _lsirm12pl_two_pl(SEXP dataSEXP, SEXP niterSEXP, SEXP nburnSEXP, SEXP nthinSEXP, SEXP nprintSEXP, SEXP jump_betaSEXP, SEXP jump_thetaSEXP, SEXP jump_alphaSEXP, SEXP pr_mean_betaSEXP, SEXP pr_sd_betaSEXP, SEXP pr_mean_thetaSEXP, SEXP pr_mean_alphaSEXP, SEXP pr_sd_alphaSEXP, SEXP pr_a_thetaSEXP, SEXP pr_b_thetaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type niter(niterSEXP);
    Rcpp::traits::input_parameter< const int >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int >::type nthin(nthinSEXP);
    Rcpp::traits::input_parameter< const int >::type nprint(nprintSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_beta(jump_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_theta(jump_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type jump_alpha(jump_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_beta(pr_mean_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_beta(pr_sd_betaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_theta(pr_mean_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_mean_alpha(pr_mean_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_sd_alpha(pr_sd_alphaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_a_theta(pr_a_thetaSEXP);
    Rcpp::traits::input_parameter< const double >::type pr_b_theta(pr_b_thetaSEXP);
    rcpp_result_gen = Rcpp::wrap(two_pl(data, niter, nburn, nthin, nprint, jump_beta, jump_theta, jump_alpha, pr_mean_beta, pr_sd_beta, pr_mean_theta, pr_mean_alpha, pr_sd_alpha, pr_a_theta, pr_b_theta));
    return rcpp_result_gen;
END_RCPP
}
// Kumulavsech
double Kumulavsech(arma::mat CC, double omega, arma::vec xlim, arma::vec ylim);
RcppExport SEXP _lsirm12pl_Kumulavsech(SEXP CCSEXP, SEXP omegaSEXP, SEXP xlimSEXP, SEXP ylimSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type CC(CCSEXP);
    Rcpp::traits::input_parameter< double >::type omega(omegaSEXP);
    Rcpp::traits::input_parameter< arma::vec >::type xlim(xlimSEXP);
    Rcpp::traits::input_parameter< arma::vec >::type ylim(ylimSEXP);
    rcpp_result_gen = Rcpp::wrap(Kumulavsech(CC, omega, xlim, ylim));
    return rcpp_result_gen;
END_RCPP
}
// logpXCbeta
double logpXCbeta(arma::mat X, arma::mat CC, double alpha, double omega, double AreaW, double integral);
RcppExport SEXP _lsirm12pl_logpXCbeta(SEXP XSEXP, SEXP CCSEXP, SEXP alphaSEXP, SEXP omegaSEXP, SEXP AreaWSEXP, SEXP integralSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type X(XSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type CC(CCSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    Rcpp::traits::input_parameter< double >::type omega(omegaSEXP);
    Rcpp::traits::input_parameter< double >::type AreaW(AreaWSEXP);
    Rcpp::traits::input_parameter< double >::type integral(integralSEXP);
    rcpp_result_gen = Rcpp::wrap(logpXCbeta(X, CC, alpha, omega, AreaW, integral));
    return rcpp_result_gen;
END_RCPP
}
// NewPoint
arma::vec NewPoint(arma::vec xlim, arma::vec ylim);
RcppExport SEXP _lsirm12pl_NewPoint(SEXP xlimSEXP, SEXP ylimSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::vec >::type xlim(xlimSEXP);
    Rcpp::traits::input_parameter< arma::vec >::type ylim(ylimSEXP);
    rcpp_result_gen = Rcpp::wrap(NewPoint(xlim, ylim));
    return rcpp_result_gen;
END_RCPP
}
// log_likelihood_cpp
Rcpp::List log_likelihood_cpp(arma::mat data, const int ndim, arma::mat beta_est, arma::mat theta_est, const double gamma_est, arma::mat z_est, arma::mat w_est, const double missing);
RcppExport SEXP _lsirm12pl_log_likelihood_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP beta_estSEXP, SEXP theta_estSEXP, SEXP gamma_estSEXP, SEXP z_estSEXP, SEXP w_estSEXP, SEXP missingSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type beta_est(beta_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type theta_est(theta_estSEXP);
    Rcpp::traits::input_parameter< const double >::type gamma_est(gamma_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type z_est(z_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type w_est(w_estSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    rcpp_result_gen = Rcpp::wrap(log_likelihood_cpp(data, ndim, beta_est, theta_est, gamma_est, z_est, w_est, missing));
    return rcpp_result_gen;
END_RCPP
}
// log_likelihood_grm_cpp
Rcpp::List log_likelihood_grm_cpp(arma::mat data, const int ndim, const int ncat, arma::mat beta_est, arma::mat theta_est, const double gamma_est, arma::mat z_est, arma::mat w_est, const double missing);
RcppExport SEXP _lsirm12pl_log_likelihood_grm_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP beta_estSEXP, SEXP theta_estSEXP, SEXP gamma_estSEXP, SEXP z_estSEXP, SEXP w_estSEXP, SEXP missingSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type beta_est(beta_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type theta_est(theta_estSEXP);
    Rcpp::traits::input_parameter< const double >::type gamma_est(gamma_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type z_est(z_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type w_est(w_estSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    rcpp_result_gen = Rcpp::wrap(log_likelihood_grm_cpp(data, ndim, ncat, beta_est, theta_est, gamma_est, z_est, w_est, missing));
    return rcpp_result_gen;
END_RCPP
}
// log_likelihood_grm2pl_cpp
Rcpp::List log_likelihood_grm2pl_cpp(arma::mat data, const int ndim, const int ncat, arma::mat beta_est, arma::mat alpha_est, arma::mat theta_est, const double gamma_est, arma::mat z_est, arma::mat w_est, const double missing);
RcppExport SEXP _lsirm12pl_log_likelihood_grm2pl_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP ncatSEXP, SEXP beta_estSEXP, SEXP alpha_estSEXP, SEXP theta_estSEXP, SEXP gamma_estSEXP, SEXP z_estSEXP, SEXP w_estSEXP, SEXP missingSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< const int >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type beta_est(beta_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type alpha_est(alpha_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type theta_est(theta_estSEXP);
    Rcpp::traits::input_parameter< const double >::type gamma_est(gamma_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type z_est(z_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type w_est(w_estSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    rcpp_result_gen = Rcpp::wrap(log_likelihood_grm2pl_cpp(data, ndim, ncat, beta_est, alpha_est, theta_est, gamma_est, z_est, w_est, missing));
    return rcpp_result_gen;
END_RCPP
}
// log_likelihood_normal_cpp
Rcpp::List log_likelihood_normal_cpp(arma::mat data, const int ndim, arma::mat beta_est, arma::mat theta_est, const double gamma_est, arma::mat z_est, arma::mat w_est, const double sigma_est, const double missing);
RcppExport SEXP _lsirm12pl_log_likelihood_normal_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP beta_estSEXP, SEXP theta_estSEXP, SEXP gamma_estSEXP, SEXP z_estSEXP, SEXP w_estSEXP, SEXP sigma_estSEXP, SEXP missingSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type beta_est(beta_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type theta_est(theta_estSEXP);
    Rcpp::traits::input_parameter< const double >::type gamma_est(gamma_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type z_est(z_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type w_est(w_estSEXP);
    Rcpp::traits::input_parameter< const double >::type sigma_est(sigma_estSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    rcpp_result_gen = Rcpp::wrap(log_likelihood_normal_cpp(data, ndim, beta_est, theta_est, gamma_est, z_est, w_est, sigma_est, missing));
    return rcpp_result_gen;
END_RCPP
}
// log_likelihood_normal2pl_cpp
Rcpp::List log_likelihood_normal2pl_cpp(arma::mat data, const int ndim, arma::mat beta_est, arma::mat alpha_est, arma::mat theta_est, const double gamma_est, arma::mat z_est, arma::mat w_est, const double sigma_est, const double missing);
RcppExport SEXP _lsirm12pl_log_likelihood_normal2pl_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP beta_estSEXP, SEXP alpha_estSEXP, SEXP theta_estSEXP, SEXP gamma_estSEXP, SEXP z_estSEXP, SEXP w_estSEXP, SEXP sigma_estSEXP, SEXP missingSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type beta_est(beta_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type alpha_est(alpha_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type theta_est(theta_estSEXP);
    Rcpp::traits::input_parameter< const double >::type gamma_est(gamma_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type z_est(z_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type w_est(w_estSEXP);
    Rcpp::traits::input_parameter< const double >::type sigma_est(sigma_estSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    rcpp_result_gen = Rcpp::wrap(log_likelihood_normal2pl_cpp(data, ndim, beta_est, alpha_est, theta_est, gamma_est, z_est, w_est, sigma_est, missing));
    return rcpp_result_gen;
END_RCPP
}
// log_likelihood_2pl_cpp
Rcpp::List log_likelihood_2pl_cpp(arma::mat data, const int ndim, arma::mat beta_est, arma::mat alpha_est, arma::mat theta_est, const double gamma_est, arma::mat z_est, arma::mat w_est, const double missing);
RcppExport SEXP _lsirm12pl_log_likelihood_2pl_cpp(SEXP dataSEXP, SEXP ndimSEXP, SEXP beta_estSEXP, SEXP alpha_estSEXP, SEXP theta_estSEXP, SEXP gamma_estSEXP, SEXP z_estSEXP, SEXP w_estSEXP, SEXP missingSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type data(dataSEXP);
    Rcpp::traits::input_parameter< const int >::type ndim(ndimSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type beta_est(beta_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type alpha_est(alpha_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type theta_est(theta_estSEXP);
    Rcpp::traits::input_parameter< const double >::type gamma_est(gamma_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type z_est(z_estSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type w_est(w_estSEXP);
    Rcpp::traits::input_parameter< const double >::type missing(missingSEXP);
    rcpp_result_gen = Rcpp::wrap(log_likelihood_2pl_cpp(data, ndim, beta_est, alpha_est, theta_est, gamma_est, z_est, w_est, missing));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_lsirm12pl_lsirm1pl_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_cpp, 22},
    {"_lsirm12pl_lsirm1pl_mcar_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_mcar_cpp, 24},
    {"_lsirm12pl_lsirm1pl_mcar_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_mcar_ss_cpp, 27},
    {"_lsirm12pl_lsirm1pl_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_mar_cpp, 24},
    {"_lsirm12pl_lsirm1pl_mar_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_mar_ss_cpp, 27},
    {"_lsirm12pl_lsirm1pl_normal_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_normal_cpp, 24},
    {"_lsirm12pl_lsirm1pl_normal_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_normal_ss_cpp, 28},
    {"_lsirm12pl_lsirm1pl_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_ss_cpp, 26},
    {"_lsirm12pl_lsirm1pl_normal_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_normal_mar_cpp, 25},
    {"_lsirm12pl_lsirm1pl_normal_mcar_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_normal_mcar_ss_cpp, 29},
    {"_lsirm12pl_lsirm1pl_normal_mar_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_normal_mar_ss_cpp, 29},
    {"_lsirm12pl_lsirm1pl_normal_mcar_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_normal_mcar_cpp, 25},
    {"_lsirm12pl_lsirm1pl_fixed_gamma_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_fixed_gamma_cpp, 19},
    {"_lsirm12pl_lsirm1pl_fixed_gamma_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_fixed_gamma_mar_cpp, 20},
    {"_lsirm12pl_lsirm1pl_fixed_gamma_mcar_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_fixed_gamma_mcar_cpp, 20},
    {"_lsirm12pl_lsirm1pl_normal_fixed_gamma_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_normal_fixed_gamma_cpp, 21},
    {"_lsirm12pl_lsirm1pl_normal_fixed_gamma_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_normal_fixed_gamma_mar_cpp, 22},
    {"_lsirm12pl_lsirm1pl_normal_fixed_gamma_mcar_cpp", (DL_FUNC) &_lsirm12pl_lsirm1pl_normal_fixed_gamma_mcar_cpp, 22},
    {"_lsirm12pl_lsirm2pl_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_cpp, 26},
    {"_lsirm12pl_lsirm2pl_mcar_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_mcar_cpp, 27},
    {"_lsirm12pl_lsirm2pl_mcar_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_mcar_ss_cpp, 31},
    {"_lsirm12pl_lsirm2pl_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_mar_cpp, 27},
    {"_lsirm12pl_lsirm2pl_mar_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_mar_ss_cpp, 31},
    {"_lsirm12pl_lsirm2pl_normal_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_normal_cpp, 28},
    {"_lsirm12pl_lsirm2pl_normal_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_normal_ss_cpp, 32},
    {"_lsirm12pl_lsirm2pl_fixed_gamma_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_fixed_gamma_cpp, 23},
    {"_lsirm12pl_lsirm2pl_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_ss_cpp, 30},
    {"_lsirm12pl_lsirm2pl_normal_fixed_gamma_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_normal_fixed_gamma_cpp, 25},
    {"_lsirm12pl_lsirm2pl_normal_mar_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_normal_mar_ss_cpp, 33},
    {"_lsirm12pl_lsirm2pl_normal_mcar_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_normal_mcar_ss_cpp, 33},
    {"_lsirm12pl_lsirm2pl_normal_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_normal_mar_cpp, 29},
    {"_lsirm12pl_lsirm2pl_normal_mcar_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_normal_mcar_cpp, 29},
    {"_lsirm12pl_lsirm2pl_fixed_gamma_mcar_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_fixed_gamma_mcar_cpp, 24},
    {"_lsirm12pl_lsirm2pl_fixed_gamma_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_fixed_gamma_mar_cpp, 24},
    {"_lsirm12pl_lsirm2pl_normal_fixed_gamma_mcar_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_normal_fixed_gamma_mcar_cpp, 26},
    {"_lsirm12pl_lsirm2pl_normal_fixed_gamma_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirm2pl_normal_fixed_gamma_mar_cpp, 26},
    {"_lsirm12pl_lsirmgrm_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm_cpp, 24},
    {"_lsirm12pl_lsirmgrm_fixed_gamma_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm_fixed_gamma_cpp, 21},
    {"_lsirm12pl_lsirmgrm_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm_ss_cpp, 28},
    {"_lsirm12pl_lsirmgrm_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm_mar_cpp, 24},
    {"_lsirm12pl_lsirmgrm_fixed_gamma_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm_fixed_gamma_mar_cpp, 21},
    {"_lsirm12pl_lsirmgrm_ss_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm_ss_mar_cpp, 28},
    {"_lsirm12pl_lsirmgrm2pl_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm2pl_cpp, 28},
    {"_lsirm12pl_lsirmgrm2pl_fixed_gamma_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm2pl_fixed_gamma_cpp, 25},
    {"_lsirm12pl_lsirmgrm2pl_ss_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm2pl_ss_cpp, 32},
    {"_lsirm12pl_lsirmgrm2pl_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm2pl_mar_cpp, 28},
    {"_lsirm12pl_lsirmgrm2pl_fixed_gamma_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm2pl_fixed_gamma_mar_cpp, 25},
    {"_lsirm12pl_lsirmgrm2pl_ss_mar_cpp", (DL_FUNC) &_lsirm12pl_lsirmgrm2pl_ss_mar_cpp, 32},
    {"_lsirm12pl_onepl_cpp", (DL_FUNC) &_lsirm12pl_onepl_cpp, 12},
    {"_lsirm12pl_two_pl", (DL_FUNC) &_lsirm12pl_two_pl, 15},
    {"_lsirm12pl_Kumulavsech", (DL_FUNC) &_lsirm12pl_Kumulavsech, 4},
    {"_lsirm12pl_logpXCbeta", (DL_FUNC) &_lsirm12pl_logpXCbeta, 6},
    {"_lsirm12pl_NewPoint", (DL_FUNC) &_lsirm12pl_NewPoint, 2},
    {"_lsirm12pl_log_likelihood_cpp", (DL_FUNC) &_lsirm12pl_log_likelihood_cpp, 8},
    {"_lsirm12pl_log_likelihood_grm_cpp", (DL_FUNC) &_lsirm12pl_log_likelihood_grm_cpp, 9},
    {"_lsirm12pl_log_likelihood_grm2pl_cpp", (DL_FUNC) &_lsirm12pl_log_likelihood_grm2pl_cpp, 10},
    {"_lsirm12pl_log_likelihood_normal_cpp", (DL_FUNC) &_lsirm12pl_log_likelihood_normal_cpp, 9},
    {"_lsirm12pl_log_likelihood_normal2pl_cpp", (DL_FUNC) &_lsirm12pl_log_likelihood_normal2pl_cpp, 10},
    {"_lsirm12pl_log_likelihood_2pl_cpp", (DL_FUNC) &_lsirm12pl_log_likelihood_2pl_cpp, 9},
    {NULL, NULL, 0}
};

RcppExport void R_init_lsirm12pl(DllInfo *dll) {
    R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
    R_useDynamicSymbols(dll, FALSE);
}
