// 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

// sample_constrained_irt
List sample_constrained_irt(const arma::mat& Y, const int& d, const int& nu0, const arma::mat& S0, const arma::mat& lbs, const arma::mat& ubs, const arma::uvec& ind, const arma::mat& theta_fix, const int& nburn, const int& nsamp, const int& thin, const bool& learn_Sigma, const bool& learn_Omega, const bool& display_progress);
RcppExport SEXP _IRTM_sample_constrained_irt(SEXP YSEXP, SEXP dSEXP, SEXP nu0SEXP, SEXP S0SEXP, SEXP lbsSEXP, SEXP ubsSEXP, SEXP indSEXP, SEXP theta_fixSEXP, SEXP nburnSEXP, SEXP nsampSEXP, SEXP thinSEXP, SEXP learn_SigmaSEXP, SEXP learn_OmegaSEXP, SEXP display_progressSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const arma::mat& >::type Y(YSEXP);
    Rcpp::traits::input_parameter< const int& >::type d(dSEXP);
    Rcpp::traits::input_parameter< const int& >::type nu0(nu0SEXP);
    Rcpp::traits::input_parameter< const arma::mat& >::type S0(S0SEXP);
    Rcpp::traits::input_parameter< const arma::mat& >::type lbs(lbsSEXP);
    Rcpp::traits::input_parameter< const arma::mat& >::type ubs(ubsSEXP);
    Rcpp::traits::input_parameter< const arma::uvec& >::type ind(indSEXP);
    Rcpp::traits::input_parameter< const arma::mat& >::type theta_fix(theta_fixSEXP);
    Rcpp::traits::input_parameter< const int& >::type nburn(nburnSEXP);
    Rcpp::traits::input_parameter< const int& >::type nsamp(nsampSEXP);
    Rcpp::traits::input_parameter< const int& >::type thin(thinSEXP);
    Rcpp::traits::input_parameter< const bool& >::type learn_Sigma(learn_SigmaSEXP);
    Rcpp::traits::input_parameter< const bool& >::type learn_Omega(learn_OmegaSEXP);
    Rcpp::traits::input_parameter< const bool& >::type display_progress(display_progressSEXP);
    rcpp_result_gen = Rcpp::wrap(sample_constrained_irt(Y, d, nu0, S0, lbs, ubs, ind, theta_fix, nburn, nsamp, thin, learn_Sigma, learn_Omega, display_progress));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_IRTM_sample_constrained_irt", (DL_FUNC) &_IRTM_sample_constrained_irt, 14},
    {NULL, NULL, 0}
};

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