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

#include <RcppArmadillo.h>
#include <RcppEigen.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

// cpp_fcggum_block_loglik_weighted
double cpp_fcggum_block_loglik_weighted(NumericMatrix theta, NumericMatrix par_block, IntegerVector response, SEXP patterns_total, SEXP patterns, NumericVector weight);
RcppExport SEXP _ForceChoice_cpp_fcggum_block_loglik_weighted(SEXP thetaSEXP, SEXP par_blockSEXP, SEXP responseSEXP, SEXP patterns_totalSEXP, SEXP patternsSEXP, SEXP weightSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par_block(par_blockSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type response(responseSEXP);
    Rcpp::traits::input_parameter< SEXP >::type patterns_total(patterns_totalSEXP);
    Rcpp::traits::input_parameter< SEXP >::type patterns(patternsSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type weight(weightSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_fcggum_block_loglik_weighted(theta, par_block, response, patterns_total, patterns, weight));
    return rcpp_result_gen;
END_RCPP
}
// cpp_fcmirt_block_loglik_weighted
double cpp_fcmirt_block_loglik_weighted(NumericMatrix theta, NumericMatrix par_block, IntegerVector response, SEXP patterns_total, SEXP patterns, NumericVector weight);
RcppExport SEXP _ForceChoice_cpp_fcmirt_block_loglik_weighted(SEXP thetaSEXP, SEXP par_blockSEXP, SEXP responseSEXP, SEXP patterns_totalSEXP, SEXP patternsSEXP, SEXP weightSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par_block(par_blockSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type response(responseSEXP);
    Rcpp::traits::input_parameter< SEXP >::type patterns_total(patterns_totalSEXP);
    Rcpp::traits::input_parameter< SEXP >::type patterns(patternsSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type weight(weightSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_fcmirt_block_loglik_weighted(theta, par_block, response, patterns_total, patterns, weight));
    return rcpp_result_gen;
END_RCPP
}
// cpp_gibbs_mirt_theta
List cpp_gibbs_mirt_theta(NumericMatrix theta_, NumericMatrix par_, IntegerMatrix response_, NumericVector theta_mu_, NumericMatrix chol_corr_, double log_diag_sum, double step, double lower, double upper);
RcppExport SEXP _ForceChoice_cpp_gibbs_mirt_theta(SEXP theta_SEXP, SEXP par_SEXP, SEXP response_SEXP, SEXP theta_mu_SEXP, SEXP chol_corr_SEXP, SEXP log_diag_sumSEXP, SEXP stepSEXP, SEXP lowerSEXP, SEXP upperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta_(theta_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par_(par_SEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response_(response_SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type theta_mu_(theta_mu_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type chol_corr_(chol_corr_SEXP);
    Rcpp::traits::input_parameter< double >::type log_diag_sum(log_diag_sumSEXP);
    Rcpp::traits::input_parameter< double >::type step(stepSEXP);
    Rcpp::traits::input_parameter< double >::type lower(lowerSEXP);
    Rcpp::traits::input_parameter< double >::type upper(upperSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_gibbs_mirt_theta(theta_, par_, response_, theta_mu_, chol_corr_, log_diag_sum, step, lower, upper));
    return rcpp_result_gen;
END_RCPP
}
// cpp_gibbs_mgpcm_theta
List cpp_gibbs_mgpcm_theta(NumericMatrix theta_, NumericMatrix par_, IntegerMatrix response_, IntegerVector length_poly_, NumericVector theta_mu_, NumericMatrix chol_corr_, double log_diag_sum, double step, double lower, double upper);
RcppExport SEXP _ForceChoice_cpp_gibbs_mgpcm_theta(SEXP theta_SEXP, SEXP par_SEXP, SEXP response_SEXP, SEXP length_poly_SEXP, SEXP theta_mu_SEXP, SEXP chol_corr_SEXP, SEXP log_diag_sumSEXP, SEXP stepSEXP, SEXP lowerSEXP, SEXP upperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta_(theta_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par_(par_SEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response_(response_SEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type length_poly_(length_poly_SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type theta_mu_(theta_mu_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type chol_corr_(chol_corr_SEXP);
    Rcpp::traits::input_parameter< double >::type log_diag_sum(log_diag_sumSEXP);
    Rcpp::traits::input_parameter< double >::type step(stepSEXP);
    Rcpp::traits::input_parameter< double >::type lower(lowerSEXP);
    Rcpp::traits::input_parameter< double >::type upper(upperSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_gibbs_mgpcm_theta(theta_, par_, response_, length_poly_, theta_mu_, chol_corr_, log_diag_sum, step, lower, upper));
    return rcpp_result_gen;
END_RCPP
}
// cpp_gibbs_mggum_theta
List cpp_gibbs_mggum_theta(NumericMatrix theta_, NumericMatrix par_, IntegerMatrix response_, IntegerVector length_poly_, NumericVector theta_mu_, NumericMatrix chol_corr_, double log_diag_sum, double step, double lower, double upper);
RcppExport SEXP _ForceChoice_cpp_gibbs_mggum_theta(SEXP theta_SEXP, SEXP par_SEXP, SEXP response_SEXP, SEXP length_poly_SEXP, SEXP theta_mu_SEXP, SEXP chol_corr_SEXP, SEXP log_diag_sumSEXP, SEXP stepSEXP, SEXP lowerSEXP, SEXP upperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta_(theta_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par_(par_SEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response_(response_SEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type length_poly_(length_poly_SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type theta_mu_(theta_mu_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type chol_corr_(chol_corr_SEXP);
    Rcpp::traits::input_parameter< double >::type log_diag_sum(log_diag_sumSEXP);
    Rcpp::traits::input_parameter< double >::type step(stepSEXP);
    Rcpp::traits::input_parameter< double >::type lower(lowerSEXP);
    Rcpp::traits::input_parameter< double >::type upper(upperSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_gibbs_mggum_theta(theta_, par_, response_, length_poly_, theta_mu_, chol_corr_, log_diag_sum, step, lower, upper));
    return rcpp_result_gen;
END_RCPP
}
// cpp_gibbs_fcmirt_theta
List cpp_gibbs_fcmirt_theta(NumericMatrix theta_, NumericMatrix par_, IntegerMatrix response_, NumericVector theta_mu_, NumericMatrix chol_corr_, double log_diag_sum, List patterns_total, List patterns, double step, double lower, double upper);
RcppExport SEXP _ForceChoice_cpp_gibbs_fcmirt_theta(SEXP theta_SEXP, SEXP par_SEXP, SEXP response_SEXP, SEXP theta_mu_SEXP, SEXP chol_corr_SEXP, SEXP log_diag_sumSEXP, SEXP patterns_totalSEXP, SEXP patternsSEXP, SEXP stepSEXP, SEXP lowerSEXP, SEXP upperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta_(theta_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par_(par_SEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response_(response_SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type theta_mu_(theta_mu_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type chol_corr_(chol_corr_SEXP);
    Rcpp::traits::input_parameter< double >::type log_diag_sum(log_diag_sumSEXP);
    Rcpp::traits::input_parameter< List >::type patterns_total(patterns_totalSEXP);
    Rcpp::traits::input_parameter< List >::type patterns(patternsSEXP);
    Rcpp::traits::input_parameter< double >::type step(stepSEXP);
    Rcpp::traits::input_parameter< double >::type lower(lowerSEXP);
    Rcpp::traits::input_parameter< double >::type upper(upperSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_gibbs_fcmirt_theta(theta_, par_, response_, theta_mu_, chol_corr_, log_diag_sum, patterns_total, patterns, step, lower, upper));
    return rcpp_result_gen;
END_RCPP
}
// cpp_gibbs_fcggum_theta
List cpp_gibbs_fcggum_theta(NumericMatrix theta_, NumericMatrix par_, IntegerMatrix response_, NumericVector theta_mu_, NumericMatrix chol_corr_, double log_diag_sum, List patterns_total, List patterns, double step, double lower, double upper);
RcppExport SEXP _ForceChoice_cpp_gibbs_fcggum_theta(SEXP theta_SEXP, SEXP par_SEXP, SEXP response_SEXP, SEXP theta_mu_SEXP, SEXP chol_corr_SEXP, SEXP log_diag_sumSEXP, SEXP patterns_totalSEXP, SEXP patternsSEXP, SEXP stepSEXP, SEXP lowerSEXP, SEXP upperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta_(theta_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par_(par_SEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response_(response_SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type theta_mu_(theta_mu_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type chol_corr_(chol_corr_SEXP);
    Rcpp::traits::input_parameter< double >::type log_diag_sum(log_diag_sumSEXP);
    Rcpp::traits::input_parameter< List >::type patterns_total(patterns_totalSEXP);
    Rcpp::traits::input_parameter< List >::type patterns(patternsSEXP);
    Rcpp::traits::input_parameter< double >::type step(stepSEXP);
    Rcpp::traits::input_parameter< double >::type lower(lowerSEXP);
    Rcpp::traits::input_parameter< double >::type upper(upperSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_gibbs_fcggum_theta(theta_, par_, response_, theta_mu_, chol_corr_, log_diag_sum, patterns_total, patterns, step, lower, upper));
    return rcpp_result_gen;
END_RCPP
}
// cpp_gibbs_tirt_theta
List cpp_gibbs_tirt_theta(NumericMatrix theta_, NumericMatrix Q_matrix_, NumericVector lambda_, NumericVector psi_, NumericVector gamma_, IntegerVector Y_, List obs_by_person_, IntegerVector Idx_item_i_, IntegerVector Idx_item_k_, IntegerVector Idx_pair_, NumericVector theta_mu_, NumericMatrix chol_corr_, double log_diag_sum, double step, double lower, double upper);
RcppExport SEXP _ForceChoice_cpp_gibbs_tirt_theta(SEXP theta_SEXP, SEXP Q_matrix_SEXP, SEXP lambda_SEXP, SEXP psi_SEXP, SEXP gamma_SEXP, SEXP Y_SEXP, SEXP obs_by_person_SEXP, SEXP Idx_item_i_SEXP, SEXP Idx_item_k_SEXP, SEXP Idx_pair_SEXP, SEXP theta_mu_SEXP, SEXP chol_corr_SEXP, SEXP log_diag_sumSEXP, SEXP stepSEXP, SEXP lowerSEXP, SEXP upperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta_(theta_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type Q_matrix_(Q_matrix_SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lambda_(lambda_SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type psi_(psi_SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type gamma_(gamma_SEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type Y_(Y_SEXP);
    Rcpp::traits::input_parameter< List >::type obs_by_person_(obs_by_person_SEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type Idx_item_i_(Idx_item_i_SEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type Idx_item_k_(Idx_item_k_SEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type Idx_pair_(Idx_pair_SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type theta_mu_(theta_mu_SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type chol_corr_(chol_corr_SEXP);
    Rcpp::traits::input_parameter< double >::type log_diag_sum(log_diag_sumSEXP);
    Rcpp::traits::input_parameter< double >::type step(stepSEXP);
    Rcpp::traits::input_parameter< double >::type lower(lowerSEXP);
    Rcpp::traits::input_parameter< double >::type upper(upperSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_gibbs_tirt_theta(theta_, Q_matrix_, lambda_, psi_, gamma_, Y_, obs_by_person_, Idx_item_i_, Idx_item_k_, Idx_pair_, theta_mu_, chol_corr_, log_diag_sum, step, lower, upper));
    return rcpp_result_gen;
END_RCPP
}
// cpp_compute_EIs
List cpp_compute_EIs(NumericMatrix prob, IntegerVector K);
RcppExport SEXP _ForceChoice_cpp_compute_EIs(SEXP probSEXP, SEXP KSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type prob(probSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type K(KSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_compute_EIs(prob, K));
    return rcpp_result_gen;
END_RCPP
}
// cpp_moments_predicted
NumericVector cpp_moments_predicted(NumericMatrix prob, NumericVector pi, IntegerMatrix pairs_total, bool is_poly, IntegerVector K);
RcppExport SEXP _ForceChoice_cpp_moments_predicted(SEXP probSEXP, SEXP piSEXP, SEXP pairs_totalSEXP, SEXP is_polySEXP, SEXP KSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type prob(probSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pi(piSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type pairs_total(pairs_totalSEXP);
    Rcpp::traits::input_parameter< bool >::type is_poly(is_polySEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type K(KSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_moments_predicted(prob, pi, pairs_total, is_poly, K));
    return rcpp_result_gen;
END_RCPP
}
// cpp_moments_predicted_grouped
NumericVector cpp_moments_predicted_grouped(NumericMatrix prob, NumericVector pi, IntegerMatrix pairs_total, bool is_poly, IntegerVector K, IntegerVector group);
RcppExport SEXP _ForceChoice_cpp_moments_predicted_grouped(SEXP probSEXP, SEXP piSEXP, SEXP pairs_totalSEXP, SEXP is_polySEXP, SEXP KSEXP, SEXP groupSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type prob(probSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pi(piSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type pairs_total(pairs_totalSEXP);
    Rcpp::traits::input_parameter< bool >::type is_poly(is_polySEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type K(KSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type group(groupSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_moments_predicted_grouped(prob, pi, pairs_total, is_poly, K, group));
    return rcpp_result_gen;
END_RCPP
}
// cpp_compute_Xi
List cpp_compute_Xi(NumericMatrix EIs, NumericMatrix EIs2, NumericVector pi, IntegerMatrix pairs_total);
RcppExport SEXP _ForceChoice_cpp_compute_Xi(SEXP EIsSEXP, SEXP EIs2SEXP, SEXP piSEXP, SEXP pairs_totalSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type EIs(EIsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type EIs2(EIs2SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pi(piSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type pairs_total(pairs_totalSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_compute_Xi(EIs, EIs2, pi, pairs_total));
    return rcpp_result_gen;
END_RCPP
}
// cpp_compute_Xi_grouped
List cpp_compute_Xi_grouped(NumericMatrix EIs, NumericMatrix EIs2, NumericVector pi, IntegerMatrix pairs_total, IntegerVector group);
RcppExport SEXP _ForceChoice_cpp_compute_Xi_grouped(SEXP EIsSEXP, SEXP EIs2SEXP, SEXP piSEXP, SEXP pairs_totalSEXP, SEXP groupSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type EIs(EIsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type EIs2(EIs2SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pi(piSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type pairs_total(pairs_totalSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type group(groupSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_compute_Xi_grouped(EIs, EIs2, pi, pairs_total, group));
    return rcpp_result_gen;
END_RCPP
}
// cpp_compute_E2
NumericMatrix cpp_compute_E2(NumericMatrix EIs, NumericMatrix EIs2, NumericVector pi);
RcppExport SEXP _ForceChoice_cpp_compute_E2(SEXP EIsSEXP, SEXP EIs2SEXP, SEXP piSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type EIs(EIsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type EIs2(EIs2SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pi(piSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_compute_E2(EIs, EIs2, pi));
    return rcpp_result_gen;
END_RCPP
}
// cpp_compute_E2_grouped
NumericMatrix cpp_compute_E2_grouped(NumericMatrix EIs, NumericMatrix EIs2, NumericVector pi, IntegerVector group);
RcppExport SEXP _ForceChoice_cpp_compute_E2_grouped(SEXP EIsSEXP, SEXP EIs2SEXP, SEXP piSEXP, SEXP groupSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type EIs(EIsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type EIs2(EIs2SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pi(piSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type group(groupSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_compute_E2_grouped(EIs, EIs2, pi, group));
    return rcpp_result_gen;
END_RCPP
}
// cpp_make_pairs
IntegerMatrix cpp_make_pairs(int n);
RcppExport SEXP _ForceChoice_cpp_make_pairs(SEXP nSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_make_pairs(n));
    return rcpp_result_gen;
END_RCPP
}
// cpp_filter_pairs_between_groups
IntegerMatrix cpp_filter_pairs_between_groups(IntegerMatrix pairs_total, IntegerVector group);
RcppExport SEXP _ForceChoice_cpp_filter_pairs_between_groups(SEXP pairs_totalSEXP, SEXP groupSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerMatrix >::type pairs_total(pairs_totalSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type group(groupSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_filter_pairs_between_groups(pairs_total, group));
    return rcpp_result_gen;
END_RCPP
}
// cpp_gof_observed_summary
List cpp_gof_observed_summary(NumericMatrix response, IntegerMatrix pairs_total);
RcppExport SEXP _ForceChoice_cpp_gof_observed_summary(SEXP responseSEXP, SEXP pairs_totalSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type pairs_total(pairs_totalSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_gof_observed_summary(response, pairs_total));
    return rcpp_result_gen;
END_RCPP
}
// cpp_gof_null_loglik
double cpp_gof_null_loglik(NumericMatrix response, IntegerVector K, std::string response_type, IntegerVector nominal_groups, NumericVector first_moments);
RcppExport SEXP _ForceChoice_cpp_gof_null_loglik(SEXP responseSEXP, SEXP KSEXP, SEXP response_typeSEXP, SEXP nominal_groupsSEXP, SEXP first_momentsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type K(KSEXP);
    Rcpp::traits::input_parameter< std::string >::type response_type(response_typeSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type nominal_groups(nominal_groupsSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type first_moments(first_momentsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_gof_null_loglik(response, K, response_type, nominal_groups, first_moments));
    return rcpp_result_gen;
END_RCPP
}
// cpp_mirt_item_loglik_weighted
double cpp_mirt_item_loglik_weighted(NumericMatrix theta, NumericVector a, double b, double c, double upper, IntegerVector response, NumericVector weight);
RcppExport SEXP _ForceChoice_cpp_mirt_item_loglik_weighted(SEXP thetaSEXP, SEXP aSEXP, SEXP bSEXP, SEXP cSEXP, SEXP upperSEXP, SEXP responseSEXP, SEXP weightSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type a(aSEXP);
    Rcpp::traits::input_parameter< double >::type b(bSEXP);
    Rcpp::traits::input_parameter< double >::type c(cSEXP);
    Rcpp::traits::input_parameter< double >::type upper(upperSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type response(responseSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type weight(weightSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_mirt_item_loglik_weighted(theta, a, b, c, upper, response, weight));
    return rcpp_result_gen;
END_RCPP
}
// cpp_mgpcm_item_loglik_weighted
double cpp_mgpcm_item_loglik_weighted(NumericMatrix theta, NumericVector a, NumericVector d, IntegerVector response, NumericVector weight);
RcppExport SEXP _ForceChoice_cpp_mgpcm_item_loglik_weighted(SEXP thetaSEXP, SEXP aSEXP, SEXP dSEXP, SEXP responseSEXP, SEXP weightSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type a(aSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type d(dSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type response(responseSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type weight(weightSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_mgpcm_item_loglik_weighted(theta, a, d, response, weight));
    return rcpp_result_gen;
END_RCPP
}
// cpp_mggum_item_loglik_weighted
double cpp_mggum_item_loglik_weighted(NumericMatrix theta, NumericVector par_i, int Ki, IntegerVector response, NumericVector weight);
RcppExport SEXP _ForceChoice_cpp_mggum_item_loglik_weighted(SEXP thetaSEXP, SEXP par_iSEXP, SEXP KiSEXP, SEXP responseSEXP, SEXP weightSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type par_i(par_iSEXP);
    Rcpp::traits::input_parameter< int >::type Ki(KiSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type response(responseSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type weight(weightSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_mggum_item_loglik_weighted(theta, par_i, Ki, response, weight));
    return rcpp_result_gen;
END_RCPP
}
// cpp_tirt_item_loglik_weighted
double cpp_tirt_item_loglik_weighted(NumericVector qt_target, NumericVector qt_other, NumericVector lambda_other, NumericVector psi_other, NumericVector gamma_pair, IntegerVector target_is_first, IntegerVector Y, NumericVector weight, double lambda_val, double psi_val);
RcppExport SEXP _ForceChoice_cpp_tirt_item_loglik_weighted(SEXP qt_targetSEXP, SEXP qt_otherSEXP, SEXP lambda_otherSEXP, SEXP psi_otherSEXP, SEXP gamma_pairSEXP, SEXP target_is_firstSEXP, SEXP YSEXP, SEXP weightSEXP, SEXP lambda_valSEXP, SEXP psi_valSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type qt_target(qt_targetSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type qt_other(qt_otherSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lambda_other(lambda_otherSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type psi_other(psi_otherSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type gamma_pair(gamma_pairSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type target_is_first(target_is_firstSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type Y(YSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type weight(weightSEXP);
    Rcpp::traits::input_parameter< double >::type lambda_val(lambda_valSEXP);
    Rcpp::traits::input_parameter< double >::type psi_val(psi_valSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_tirt_item_loglik_weighted(qt_target, qt_other, lambda_other, psi_other, gamma_pair, target_is_first, Y, weight, lambda_val, psi_val));
    return rcpp_result_gen;
END_RCPP
}
// cpp_tirt_pair_loglik_weighted
double cpp_tirt_pair_loglik_weighted(NumericVector mu_no_gamma, NumericVector denom, IntegerVector Y, NumericVector weight, double gamma_val);
RcppExport SEXP _ForceChoice_cpp_tirt_pair_loglik_weighted(SEXP mu_no_gammaSEXP, SEXP denomSEXP, SEXP YSEXP, SEXP weightSEXP, SEXP gamma_valSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type mu_no_gamma(mu_no_gammaSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type denom(denomSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type Y(YSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type weight(weightSEXP);
    Rcpp::traits::input_parameter< double >::type gamma_val(gamma_valSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_tirt_pair_loglik_weighted(mu_no_gamma, denom, Y, weight, gamma_val));
    return rcpp_result_gen;
END_RCPP
}
// cpp_model_MIRT
NumericMatrix cpp_model_MIRT(NumericMatrix theta, NumericMatrix par);
RcppExport SEXP _ForceChoice_cpp_model_MIRT(SEXP thetaSEXP, SEXP parSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par(parSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_model_MIRT(theta, par));
    return rcpp_result_gen;
END_RCPP
}
// cpp_model_MGGUM
NumericMatrix cpp_model_MGGUM(NumericMatrix theta, NumericMatrix par);
RcppExport SEXP _ForceChoice_cpp_model_MGGUM(SEXP thetaSEXP, SEXP parSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par(parSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_model_MGGUM(theta, par));
    return rcpp_result_gen;
END_RCPP
}
// cpp_model_MGPCM
NumericMatrix cpp_model_MGPCM(NumericMatrix theta, NumericMatrix par);
RcppExport SEXP _ForceChoice_cpp_model_MGPCM(SEXP thetaSEXP, SEXP parSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par(parSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_model_MGPCM(theta, par));
    return rcpp_result_gen;
END_RCPP
}
// cpp_model_FCGGUM
NumericMatrix cpp_model_FCGGUM(NumericMatrix theta, NumericMatrix par, List patterns_total, List patterns);
RcppExport SEXP _ForceChoice_cpp_model_FCGGUM(SEXP thetaSEXP, SEXP parSEXP, SEXP patterns_totalSEXP, SEXP patternsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par(parSEXP);
    Rcpp::traits::input_parameter< List >::type patterns_total(patterns_totalSEXP);
    Rcpp::traits::input_parameter< List >::type patterns(patternsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_model_FCGGUM(theta, par, patterns_total, patterns));
    return rcpp_result_gen;
END_RCPP
}
// cpp_model_FCMIRT
NumericMatrix cpp_model_FCMIRT(NumericMatrix theta, NumericMatrix par, List patterns_total, List patterns);
RcppExport SEXP _ForceChoice_cpp_model_FCMIRT(SEXP thetaSEXP, SEXP parSEXP, SEXP patterns_totalSEXP, SEXP patternsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par(parSEXP);
    Rcpp::traits::input_parameter< List >::type patterns_total(patterns_totalSEXP);
    Rcpp::traits::input_parameter< List >::type patterns(patternsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_model_FCMIRT(theta, par, patterns_total, patterns));
    return rcpp_result_gen;
END_RCPP
}
// cpp_model_FCDCM
NumericMatrix cpp_model_FCDCM(IntegerMatrix zeta, NumericMatrix par, IntegerMatrix patterns);
RcppExport SEXP _ForceChoice_cpp_model_FCDCM(SEXP zetaSEXP, SEXP parSEXP, SEXP patternsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerMatrix >::type zeta(zetaSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par(parSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type patterns(patternsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_model_FCDCM(zeta, par, patterns));
    return rcpp_result_gen;
END_RCPP
}
// cpp_model_FCDCM_marginal
NumericMatrix cpp_model_FCDCM_marginal(NumericMatrix theta, NumericVector delta1, NumericVector delta0, NumericMatrix par, NumericMatrix alpha_patterns, IntegerMatrix zeta_patterns, IntegerMatrix patterns);
RcppExport SEXP _ForceChoice_cpp_model_FCDCM_marginal(SEXP thetaSEXP, SEXP delta1SEXP, SEXP delta0SEXP, SEXP parSEXP, SEXP alpha_patternsSEXP, SEXP zeta_patternsSEXP, SEXP patternsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta1(delta1SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta0(delta0SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par(parSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type alpha_patterns(alpha_patternsSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type zeta_patterns(zeta_patternsSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type patterns(patternsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_model_FCDCM_marginal(theta, delta1, delta0, par, alpha_patterns, zeta_patterns, patterns));
    return rcpp_result_gen;
END_RCPP
}
// cpp_fcdcm_case_loglik_class_prob
NumericVector cpp_fcdcm_case_loglik_class_prob(NumericMatrix theta, IntegerMatrix response, NumericVector delta1, NumericVector delta0, NumericMatrix alpha_patterns, NumericMatrix class_prob);
RcppExport SEXP _ForceChoice_cpp_fcdcm_case_loglik_class_prob(SEXP thetaSEXP, SEXP responseSEXP, SEXP delta1SEXP, SEXP delta0SEXP, SEXP alpha_patternsSEXP, SEXP class_probSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta1(delta1SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta0(delta0SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type alpha_patterns(alpha_patternsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type class_prob(class_probSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_fcdcm_case_loglik_class_prob(theta, response, delta1, delta0, alpha_patterns, class_prob));
    return rcpp_result_gen;
END_RCPP
}
// cpp_gibbs_fcdcm_theta
List cpp_gibbs_fcdcm_theta(NumericMatrix theta, IntegerMatrix response, NumericVector delta1, NumericVector delta0, NumericMatrix par, NumericMatrix alpha_patterns, IntegerMatrix zeta_patterns, IntegerMatrix patterns, double step, double lower, double upper);
RcppExport SEXP _ForceChoice_cpp_gibbs_fcdcm_theta(SEXP thetaSEXP, SEXP responseSEXP, SEXP delta1SEXP, SEXP delta0SEXP, SEXP parSEXP, SEXP alpha_patternsSEXP, SEXP zeta_patternsSEXP, SEXP patternsSEXP, SEXP stepSEXP, SEXP lowerSEXP, SEXP upperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta1(delta1SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta0(delta0SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par(parSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type alpha_patterns(alpha_patternsSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type zeta_patterns(zeta_patternsSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type patterns(patternsSEXP);
    Rcpp::traits::input_parameter< double >::type step(stepSEXP);
    Rcpp::traits::input_parameter< double >::type lower(lowerSEXP);
    Rcpp::traits::input_parameter< double >::type upper(upperSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_gibbs_fcdcm_theta(theta, response, delta1, delta0, par, alpha_patterns, zeta_patterns, patterns, step, lower, upper));
    return rcpp_result_gen;
END_RCPP
}
// cpp_fcdcm_sample_alpha
List cpp_fcdcm_sample_alpha(NumericMatrix theta, IntegerMatrix response, NumericVector delta1, NumericVector delta0, NumericMatrix alpha_patterns, IntegerMatrix zeta_patterns, NumericMatrix class_prob);
RcppExport SEXP _ForceChoice_cpp_fcdcm_sample_alpha(SEXP thetaSEXP, SEXP responseSEXP, SEXP delta1SEXP, SEXP delta0SEXP, SEXP alpha_patternsSEXP, SEXP zeta_patternsSEXP, SEXP class_probSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta1(delta1SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta0(delta0SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type alpha_patterns(alpha_patternsSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type zeta_patterns(zeta_patternsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type class_prob(class_probSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_fcdcm_sample_alpha(theta, response, delta1, delta0, alpha_patterns, zeta_patterns, class_prob));
    return rcpp_result_gen;
END_RCPP
}
// cpp_fcdcm_posterior_alpha_class_prob
NumericMatrix cpp_fcdcm_posterior_alpha_class_prob(NumericVector theta, IntegerMatrix response, NumericVector delta1, NumericVector delta0, NumericMatrix alpha_patterns, NumericMatrix class_prob);
RcppExport SEXP _ForceChoice_cpp_fcdcm_posterior_alpha_class_prob(SEXP thetaSEXP, SEXP responseSEXP, SEXP delta1SEXP, SEXP delta0SEXP, SEXP alpha_patternsSEXP, SEXP class_probSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta1(delta1SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta0(delta0SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type alpha_patterns(alpha_patternsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type class_prob(class_probSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_fcdcm_posterior_alpha_class_prob(theta, response, delta1, delta0, alpha_patterns, class_prob));
    return rcpp_result_gen;
END_RCPP
}
// cpp_fcdcm_latent_support
List cpp_fcdcm_latent_support(NumericMatrix theta, NumericVector pi, NumericVector delta1, NumericVector delta0, NumericMatrix par, NumericMatrix alpha_patterns, IntegerMatrix zeta_patterns, IntegerMatrix patterns);
RcppExport SEXP _ForceChoice_cpp_fcdcm_latent_support(SEXP thetaSEXP, SEXP piSEXP, SEXP delta1SEXP, SEXP delta0SEXP, SEXP parSEXP, SEXP alpha_patternsSEXP, SEXP zeta_patternsSEXP, SEXP patternsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pi(piSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta1(delta1SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type delta0(delta0SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type par(parSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type alpha_patterns(alpha_patternsSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type zeta_patterns(zeta_patternsSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type patterns(patternsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_fcdcm_latent_support(theta, pi, delta1, delta0, par, alpha_patterns, zeta_patterns, patterns));
    return rcpp_result_gen;
END_RCPP
}
// cpp_model_FCGDINA
NumericMatrix cpp_model_FCGDINA(const IntegerMatrix& alpha_pat, const NumericVector& flat_design, const IntegerVector& design_rows, const IntegerVector& design_cols, const IntegerVector& design_offset, const IntegerVector& delta_offset, const NumericVector& delta, const List& class_map_list, const List& patterns_total, const List& patterns, int C, int I_states);
RcppExport SEXP _ForceChoice_cpp_model_FCGDINA(SEXP alpha_patSEXP, SEXP flat_designSEXP, SEXP design_rowsSEXP, SEXP design_colsSEXP, SEXP design_offsetSEXP, SEXP delta_offsetSEXP, SEXP deltaSEXP, SEXP class_map_listSEXP, SEXP patterns_totalSEXP, SEXP patternsSEXP, SEXP CSEXP, SEXP I_statesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const IntegerMatrix& >::type alpha_pat(alpha_patSEXP);
    Rcpp::traits::input_parameter< const NumericVector& >::type flat_design(flat_designSEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type design_rows(design_rowsSEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type design_cols(design_colsSEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type design_offset(design_offsetSEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type delta_offset(delta_offsetSEXP);
    Rcpp::traits::input_parameter< const NumericVector& >::type delta(deltaSEXP);
    Rcpp::traits::input_parameter< const List& >::type class_map_list(class_map_listSEXP);
    Rcpp::traits::input_parameter< const List& >::type patterns_total(patterns_totalSEXP);
    Rcpp::traits::input_parameter< const List& >::type patterns(patternsSEXP);
    Rcpp::traits::input_parameter< int >::type C(CSEXP);
    Rcpp::traits::input_parameter< int >::type I_states(I_statesSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_model_FCGDINA(alpha_pat, flat_design, design_rows, design_cols, design_offset, delta_offset, delta, class_map_list, patterns_total, patterns, C, I_states));
    return rcpp_result_gen;
END_RCPP
}
// cpp_fcgdina_class_posterior
NumericMatrix cpp_fcgdina_class_posterior(const NumericMatrix& prob_class, const IntegerMatrix& response, const List& patterns, const NumericVector& prior, int N, int B, int C);
RcppExport SEXP _ForceChoice_cpp_fcgdina_class_posterior(SEXP prob_classSEXP, SEXP responseSEXP, SEXP patternsSEXP, SEXP priorSEXP, SEXP NSEXP, SEXP BSEXP, SEXP CSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const NumericMatrix& >::type prob_class(prob_classSEXP);
    Rcpp::traits::input_parameter< const IntegerMatrix& >::type response(responseSEXP);
    Rcpp::traits::input_parameter< const List& >::type patterns(patternsSEXP);
    Rcpp::traits::input_parameter< const NumericVector& >::type prior(priorSEXP);
    Rcpp::traits::input_parameter< int >::type N(NSEXP);
    Rcpp::traits::input_parameter< int >::type B(BSEXP);
    Rcpp::traits::input_parameter< int >::type C(CSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_fcgdina_class_posterior(prob_class, response, patterns, prior, N, B, C));
    return rcpp_result_gen;
END_RCPP
}
// cpp_fcgdina_weighted_loglik
double cpp_fcgdina_weighted_loglik(const NumericMatrix& prob_class, const IntegerMatrix& response, const List& patterns, const NumericMatrix& class_weight, int N, int B, int C);
RcppExport SEXP _ForceChoice_cpp_fcgdina_weighted_loglik(SEXP prob_classSEXP, SEXP responseSEXP, SEXP patternsSEXP, SEXP class_weightSEXP, SEXP NSEXP, SEXP BSEXP, SEXP CSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const NumericMatrix& >::type prob_class(prob_classSEXP);
    Rcpp::traits::input_parameter< const IntegerMatrix& >::type response(responseSEXP);
    Rcpp::traits::input_parameter< const List& >::type patterns(patternsSEXP);
    Rcpp::traits::input_parameter< const NumericMatrix& >::type class_weight(class_weightSEXP);
    Rcpp::traits::input_parameter< int >::type N(NSEXP);
    Rcpp::traits::input_parameter< int >::type B(BSEXP);
    Rcpp::traits::input_parameter< int >::type C(CSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_fcgdina_weighted_loglik(prob_class, response, patterns, class_weight, N, B, C));
    return rcpp_result_gen;
END_RCPP
}
// cpp_fcgdina_weighted_loglik_block
double cpp_fcgdina_weighted_loglik_block(const NumericMatrix& prob_block, const IntegerVector& response_block, const NumericMatrix& class_weight, int N, int C);
RcppExport SEXP _ForceChoice_cpp_fcgdina_weighted_loglik_block(SEXP prob_blockSEXP, SEXP response_blockSEXP, SEXP class_weightSEXP, SEXP NSEXP, SEXP CSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const NumericMatrix& >::type prob_block(prob_blockSEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type response_block(response_blockSEXP);
    Rcpp::traits::input_parameter< const NumericMatrix& >::type class_weight(class_weightSEXP);
    Rcpp::traits::input_parameter< int >::type N(NSEXP);
    Rcpp::traits::input_parameter< int >::type C(CSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_fcgdina_weighted_loglik_block(prob_block, response_block, class_weight, N, C));
    return rcpp_result_gen;
END_RCPP
}
// cpp_fcgdina_marginal_loglik
double cpp_fcgdina_marginal_loglik(const NumericMatrix& prob_class, const IntegerMatrix& response, const List& patterns, const NumericVector& prior, int N, int B, int C);
RcppExport SEXP _ForceChoice_cpp_fcgdina_marginal_loglik(SEXP prob_classSEXP, SEXP responseSEXP, SEXP patternsSEXP, SEXP priorSEXP, SEXP NSEXP, SEXP BSEXP, SEXP CSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const NumericMatrix& >::type prob_class(prob_classSEXP);
    Rcpp::traits::input_parameter< const IntegerMatrix& >::type response(responseSEXP);
    Rcpp::traits::input_parameter< const List& >::type patterns(patternsSEXP);
    Rcpp::traits::input_parameter< const NumericVector& >::type prior(priorSEXP);
    Rcpp::traits::input_parameter< int >::type N(NSEXP);
    Rcpp::traits::input_parameter< int >::type B(BSEXP);
    Rcpp::traits::input_parameter< int >::type C(CSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_fcgdina_marginal_loglik(prob_class, response, patterns, prior, N, B, C));
    return rcpp_result_gen;
END_RCPP
}
// cpp_fcgdina_delta_logit_to_prob
NumericMatrix cpp_fcgdina_delta_logit_to_prob(const NumericMatrix& delta_logit, const NumericVector& flat_design, const IntegerVector& design_rows, const IntegerVector& design_cols, const IntegerVector& design_offset, const IntegerVector& delta_offset, int I_states);
RcppExport SEXP _ForceChoice_cpp_fcgdina_delta_logit_to_prob(SEXP delta_logitSEXP, SEXP flat_designSEXP, SEXP design_rowsSEXP, SEXP design_colsSEXP, SEXP design_offsetSEXP, SEXP delta_offsetSEXP, SEXP I_statesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const NumericMatrix& >::type delta_logit(delta_logitSEXP);
    Rcpp::traits::input_parameter< const NumericVector& >::type flat_design(flat_designSEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type design_rows(design_rowsSEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type design_cols(design_colsSEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type design_offset(design_offsetSEXP);
    Rcpp::traits::input_parameter< const IntegerVector& >::type delta_offset(delta_offsetSEXP);
    Rcpp::traits::input_parameter< int >::type I_states(I_statesSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_fcgdina_delta_logit_to_prob(delta_logit, flat_design, design_rows, design_cols, design_offset, delta_offset, I_states));
    return rcpp_result_gen;
END_RCPP
}
// cpp_get_permutations
IntegerMatrix cpp_get_permutations(IntegerVector values, int r);
RcppExport SEXP _ForceChoice_cpp_get_permutations(SEXP valuesSEXP, SEXP rSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerVector >::type values(valuesSEXP);
    Rcpp::traits::input_parameter< int >::type r(rSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_get_permutations(values, r));
    return rcpp_result_gen;
END_RCPP
}
// cpp_istem_local_patterns
IntegerMatrix cpp_istem_local_patterns(IntegerMatrix patterns, IntegerVector items);
RcppExport SEXP _ForceChoice_cpp_istem_local_patterns(SEXP patternsSEXP, SEXP itemsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerMatrix >::type patterns(patternsSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type items(itemsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_istem_local_patterns(patterns, items));
    return rcpp_result_gen;
END_RCPP
}
// cpp_istem_batch_var
NumericVector cpp_istem_batch_var(List plist, int n);
RcppExport SEXP _ForceChoice_cpp_istem_batch_var(SEXP plistSEXP, SEXP nSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type plist(plistSEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_istem_batch_var(plist, n));
    return rcpp_result_gen;
END_RCPP
}
// cpp_extract_rhat_matrix
NumericMatrix cpp_extract_rhat_matrix(NumericVector rhat, CharacterVector row_names, std::string param_name, int nrow_out, int ncol_out);
RcppExport SEXP _ForceChoice_cpp_extract_rhat_matrix(SEXP rhatSEXP, SEXP row_namesSEXP, SEXP param_nameSEXP, SEXP nrow_outSEXP, SEXP ncol_outSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type rhat(rhatSEXP);
    Rcpp::traits::input_parameter< CharacterVector >::type row_names(row_namesSEXP);
    Rcpp::traits::input_parameter< std::string >::type param_name(param_nameSEXP);
    Rcpp::traits::input_parameter< int >::type nrow_out(nrow_outSEXP);
    Rcpp::traits::input_parameter< int >::type ncol_out(ncol_outSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_extract_rhat_matrix(rhat, row_names, param_name, nrow_out, ncol_out));
    return rcpp_result_gen;
END_RCPP
}
// cpp_istem_log_mvn_kernel
double cpp_istem_log_mvn_kernel(NumericVector x, NumericVector mu, NumericMatrix chol_sigma, double log_diag_sum);
RcppExport SEXP _ForceChoice_cpp_istem_log_mvn_kernel(SEXP xSEXP, SEXP muSEXP, SEXP chol_sigmaSEXP, SEXP log_diag_sumSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type mu(muSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type chol_sigma(chol_sigmaSEXP);
    Rcpp::traits::input_parameter< double >::type log_diag_sum(log_diag_sumSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_istem_log_mvn_kernel(x, mu, chol_sigma, log_diag_sum));
    return rcpp_result_gen;
END_RCPP
}
// cpp_data_from_response_block
CharacterVector cpp_data_from_response_block(IntegerVector response, IntegerMatrix patterns);
RcppExport SEXP _ForceChoice_cpp_data_from_response_block(SEXP responseSEXP, SEXP patternsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerVector >::type response(responseSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type patterns(patternsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_data_from_response_block(response, patterns));
    return rcpp_result_gen;
END_RCPP
}
// cpp_response_from_data_block
IntegerVector cpp_response_from_data_block(CharacterVector data, IntegerMatrix patterns);
RcppExport SEXP _ForceChoice_cpp_response_from_data_block(SEXP dataSEXP, SEXP patternsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< CharacterVector >::type data(dataSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type patterns(patternsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_response_from_data_block(data, patterns));
    return rcpp_result_gen;
END_RCPP
}
// cpp_get_block_items_from_data
List cpp_get_block_items_from_data(CharacterMatrix data);
RcppExport SEXP _ForceChoice_cpp_get_block_items_from_data(SEXP dataSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< CharacterMatrix >::type data(dataSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_get_block_items_from_data(data));
    return rcpp_result_gen;
END_RCPP
}
// cpp_get_block_items_fcdcm
List cpp_get_block_items_fcdcm(CharacterMatrix data);
RcppExport SEXP _ForceChoice_cpp_get_block_items_fcdcm(SEXP dataSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< CharacterMatrix >::type data(dataSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_get_block_items_fcdcm(data));
    return rcpp_result_gen;
END_RCPP
}
// cpp_loglik_binary
List cpp_loglik_binary(NumericMatrix prob, IntegerMatrix response, NumericVector pi);
RcppExport SEXP _ForceChoice_cpp_loglik_binary(SEXP probSEXP, SEXP responseSEXP, SEXP piSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type prob(probSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pi(piSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_loglik_binary(prob, response, pi));
    return rcpp_result_gen;
END_RCPP
}
// cpp_loglik_indexed
List cpp_loglik_indexed(NumericMatrix prob, IntegerMatrix response, NumericVector pi, IntegerVector block_sizes, int response_base);
RcppExport SEXP _ForceChoice_cpp_loglik_indexed(SEXP probSEXP, SEXP responseSEXP, SEXP piSEXP, SEXP block_sizesSEXP, SEXP response_baseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type prob(probSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pi(piSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type block_sizes(block_sizesSEXP);
    Rcpp::traits::input_parameter< int >::type response_base(response_baseSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_loglik_indexed(prob, response, pi, block_sizes, response_base));
    return rcpp_result_gen;
END_RCPP
}
// cpp_tirt_expand_response_full
List cpp_tirt_expand_response_full(IntegerMatrix response, IntegerMatrix pairs_matrix, List pairs_value, IntegerVector block_pair_counts);
RcppExport SEXP _ForceChoice_cpp_tirt_expand_response_full(SEXP responseSEXP, SEXP pairs_matrixSEXP, SEXP pairs_valueSEXP, SEXP block_pair_countsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type pairs_matrix(pairs_matrixSEXP);
    Rcpp::traits::input_parameter< List >::type pairs_value(pairs_valueSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type block_pair_counts(block_pair_countsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_tirt_expand_response_full(response, pairs_matrix, pairs_value, block_pair_counts));
    return rcpp_result_gen;
END_RCPP
}
// cpp_loglik_binary_person_pairs
List cpp_loglik_binary_person_pairs(NumericMatrix prob, IntegerMatrix response, NumericVector pi, IntegerMatrix pairs_matrix, List pairs_value, IntegerVector block_pair_counts);
RcppExport SEXP _ForceChoice_cpp_loglik_binary_person_pairs(SEXP probSEXP, SEXP responseSEXP, SEXP piSEXP, SEXP pairs_matrixSEXP, SEXP pairs_valueSEXP, SEXP block_pair_countsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type prob(probSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pi(piSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type pairs_matrix(pairs_matrixSEXP);
    Rcpp::traits::input_parameter< List >::type pairs_value(pairs_valueSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type block_pair_counts(block_pair_countsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_loglik_binary_person_pairs(prob, response, pi, pairs_matrix, pairs_value, block_pair_counts));
    return rcpp_result_gen;
END_RCPP
}
// cpp_get_response_from_data_tirt
List cpp_get_response_from_data_tirt(CharacterMatrix data, List block_items, CharacterVector fc_type);
RcppExport SEXP _ForceChoice_cpp_get_response_from_data_tirt(SEXP dataSEXP, SEXP block_itemsSEXP, SEXP fc_typeSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< CharacterMatrix >::type data(dataSEXP);
    Rcpp::traits::input_parameter< List >::type block_items(block_itemsSEXP);
    Rcpp::traits::input_parameter< CharacterVector >::type fc_type(fc_typeSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_get_response_from_data_tirt(data, block_items, fc_type));
    return rcpp_result_gen;
END_RCPP
}
// cpp_get_data_from_response_tirt
CharacterMatrix cpp_get_data_from_response_tirt(IntegerMatrix response, List block_items, CharacterVector fc_type, List pairs_value);
RcppExport SEXP _ForceChoice_cpp_get_data_from_response_tirt(SEXP responseSEXP, SEXP block_itemsSEXP, SEXP fc_typeSEXP, SEXP pairs_valueSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< List >::type block_items(block_itemsSEXP);
    Rcpp::traits::input_parameter< CharacterVector >::type fc_type(fc_typeSEXP);
    Rcpp::traits::input_parameter< List >::type pairs_value(pairs_valueSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_get_data_from_response_tirt(response, block_items, fc_type, pairs_value));
    return rcpp_result_gen;
END_RCPP
}
// cpp_extract_rhat_vector
NumericVector cpp_extract_rhat_vector(NumericVector rhat, CharacterVector row_names, std::string param_name, int n_out);
RcppExport SEXP _ForceChoice_cpp_extract_rhat_vector(SEXP rhatSEXP, SEXP row_namesSEXP, SEXP param_nameSEXP, SEXP n_outSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type rhat(rhatSEXP);
    Rcpp::traits::input_parameter< CharacterVector >::type row_names(row_namesSEXP);
    Rcpp::traits::input_parameter< std::string >::type param_name(param_nameSEXP);
    Rcpp::traits::input_parameter< int >::type n_out(n_outSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_extract_rhat_vector(rhat, row_names, param_name, n_out));
    return rcpp_result_gen;
END_RCPP
}
// cpp_check_response
bool cpp_check_response(IntegerMatrix response, IntegerVector length_poly);
RcppExport SEXP _ForceChoice_cpp_check_response(SEXP responseSEXP, SEXP length_polySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerMatrix >::type response(responseSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type length_poly(length_polySEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_check_response(response, length_poly));
    return rcpp_result_gen;
END_RCPP
}

RcppExport SEXP _rcpp_module_boot_stan_fit4FCDCM_mod();
RcppExport SEXP _rcpp_module_boot_stan_fit4FCGDINA_mod();
RcppExport SEXP _rcpp_module_boot_stan_fit4FCGGUM_mod();
RcppExport SEXP _rcpp_module_boot_stan_fit4FCMIRT_mod();
RcppExport SEXP _rcpp_module_boot_stan_fit4MGGUM_mod();
RcppExport SEXP _rcpp_module_boot_stan_fit4MGPCM_mod();
RcppExport SEXP _rcpp_module_boot_stan_fit4MIRT_mod();
RcppExport SEXP _rcpp_module_boot_stan_fit4TIRT_mod();

static const R_CallMethodDef CallEntries[] = {
    {"_ForceChoice_cpp_fcggum_block_loglik_weighted", (DL_FUNC) &_ForceChoice_cpp_fcggum_block_loglik_weighted, 6},
    {"_ForceChoice_cpp_fcmirt_block_loglik_weighted", (DL_FUNC) &_ForceChoice_cpp_fcmirt_block_loglik_weighted, 6},
    {"_ForceChoice_cpp_gibbs_mirt_theta", (DL_FUNC) &_ForceChoice_cpp_gibbs_mirt_theta, 9},
    {"_ForceChoice_cpp_gibbs_mgpcm_theta", (DL_FUNC) &_ForceChoice_cpp_gibbs_mgpcm_theta, 10},
    {"_ForceChoice_cpp_gibbs_mggum_theta", (DL_FUNC) &_ForceChoice_cpp_gibbs_mggum_theta, 10},
    {"_ForceChoice_cpp_gibbs_fcmirt_theta", (DL_FUNC) &_ForceChoice_cpp_gibbs_fcmirt_theta, 11},
    {"_ForceChoice_cpp_gibbs_fcggum_theta", (DL_FUNC) &_ForceChoice_cpp_gibbs_fcggum_theta, 11},
    {"_ForceChoice_cpp_gibbs_tirt_theta", (DL_FUNC) &_ForceChoice_cpp_gibbs_tirt_theta, 16},
    {"_ForceChoice_cpp_compute_EIs", (DL_FUNC) &_ForceChoice_cpp_compute_EIs, 2},
    {"_ForceChoice_cpp_moments_predicted", (DL_FUNC) &_ForceChoice_cpp_moments_predicted, 5},
    {"_ForceChoice_cpp_moments_predicted_grouped", (DL_FUNC) &_ForceChoice_cpp_moments_predicted_grouped, 6},
    {"_ForceChoice_cpp_compute_Xi", (DL_FUNC) &_ForceChoice_cpp_compute_Xi, 4},
    {"_ForceChoice_cpp_compute_Xi_grouped", (DL_FUNC) &_ForceChoice_cpp_compute_Xi_grouped, 5},
    {"_ForceChoice_cpp_compute_E2", (DL_FUNC) &_ForceChoice_cpp_compute_E2, 3},
    {"_ForceChoice_cpp_compute_E2_grouped", (DL_FUNC) &_ForceChoice_cpp_compute_E2_grouped, 4},
    {"_ForceChoice_cpp_make_pairs", (DL_FUNC) &_ForceChoice_cpp_make_pairs, 1},
    {"_ForceChoice_cpp_filter_pairs_between_groups", (DL_FUNC) &_ForceChoice_cpp_filter_pairs_between_groups, 2},
    {"_ForceChoice_cpp_gof_observed_summary", (DL_FUNC) &_ForceChoice_cpp_gof_observed_summary, 2},
    {"_ForceChoice_cpp_gof_null_loglik", (DL_FUNC) &_ForceChoice_cpp_gof_null_loglik, 5},
    {"_ForceChoice_cpp_mirt_item_loglik_weighted", (DL_FUNC) &_ForceChoice_cpp_mirt_item_loglik_weighted, 7},
    {"_ForceChoice_cpp_mgpcm_item_loglik_weighted", (DL_FUNC) &_ForceChoice_cpp_mgpcm_item_loglik_weighted, 5},
    {"_ForceChoice_cpp_mggum_item_loglik_weighted", (DL_FUNC) &_ForceChoice_cpp_mggum_item_loglik_weighted, 5},
    {"_ForceChoice_cpp_tirt_item_loglik_weighted", (DL_FUNC) &_ForceChoice_cpp_tirt_item_loglik_weighted, 10},
    {"_ForceChoice_cpp_tirt_pair_loglik_weighted", (DL_FUNC) &_ForceChoice_cpp_tirt_pair_loglik_weighted, 5},
    {"_ForceChoice_cpp_model_MIRT", (DL_FUNC) &_ForceChoice_cpp_model_MIRT, 2},
    {"_ForceChoice_cpp_model_MGGUM", (DL_FUNC) &_ForceChoice_cpp_model_MGGUM, 2},
    {"_ForceChoice_cpp_model_MGPCM", (DL_FUNC) &_ForceChoice_cpp_model_MGPCM, 2},
    {"_ForceChoice_cpp_model_FCGGUM", (DL_FUNC) &_ForceChoice_cpp_model_FCGGUM, 4},
    {"_ForceChoice_cpp_model_FCMIRT", (DL_FUNC) &_ForceChoice_cpp_model_FCMIRT, 4},
    {"_ForceChoice_cpp_model_FCDCM", (DL_FUNC) &_ForceChoice_cpp_model_FCDCM, 3},
    {"_ForceChoice_cpp_model_FCDCM_marginal", (DL_FUNC) &_ForceChoice_cpp_model_FCDCM_marginal, 7},
    {"_ForceChoice_cpp_fcdcm_case_loglik_class_prob", (DL_FUNC) &_ForceChoice_cpp_fcdcm_case_loglik_class_prob, 6},
    {"_ForceChoice_cpp_gibbs_fcdcm_theta", (DL_FUNC) &_ForceChoice_cpp_gibbs_fcdcm_theta, 11},
    {"_ForceChoice_cpp_fcdcm_sample_alpha", (DL_FUNC) &_ForceChoice_cpp_fcdcm_sample_alpha, 7},
    {"_ForceChoice_cpp_fcdcm_posterior_alpha_class_prob", (DL_FUNC) &_ForceChoice_cpp_fcdcm_posterior_alpha_class_prob, 6},
    {"_ForceChoice_cpp_fcdcm_latent_support", (DL_FUNC) &_ForceChoice_cpp_fcdcm_latent_support, 8},
    {"_ForceChoice_cpp_model_FCGDINA", (DL_FUNC) &_ForceChoice_cpp_model_FCGDINA, 12},
    {"_ForceChoice_cpp_fcgdina_class_posterior", (DL_FUNC) &_ForceChoice_cpp_fcgdina_class_posterior, 7},
    {"_ForceChoice_cpp_fcgdina_weighted_loglik", (DL_FUNC) &_ForceChoice_cpp_fcgdina_weighted_loglik, 7},
    {"_ForceChoice_cpp_fcgdina_weighted_loglik_block", (DL_FUNC) &_ForceChoice_cpp_fcgdina_weighted_loglik_block, 5},
    {"_ForceChoice_cpp_fcgdina_marginal_loglik", (DL_FUNC) &_ForceChoice_cpp_fcgdina_marginal_loglik, 7},
    {"_ForceChoice_cpp_fcgdina_delta_logit_to_prob", (DL_FUNC) &_ForceChoice_cpp_fcgdina_delta_logit_to_prob, 7},
    {"_ForceChoice_cpp_get_permutations", (DL_FUNC) &_ForceChoice_cpp_get_permutations, 2},
    {"_ForceChoice_cpp_istem_local_patterns", (DL_FUNC) &_ForceChoice_cpp_istem_local_patterns, 2},
    {"_ForceChoice_cpp_istem_batch_var", (DL_FUNC) &_ForceChoice_cpp_istem_batch_var, 2},
    {"_ForceChoice_cpp_extract_rhat_matrix", (DL_FUNC) &_ForceChoice_cpp_extract_rhat_matrix, 5},
    {"_ForceChoice_cpp_istem_log_mvn_kernel", (DL_FUNC) &_ForceChoice_cpp_istem_log_mvn_kernel, 4},
    {"_ForceChoice_cpp_data_from_response_block", (DL_FUNC) &_ForceChoice_cpp_data_from_response_block, 2},
    {"_ForceChoice_cpp_response_from_data_block", (DL_FUNC) &_ForceChoice_cpp_response_from_data_block, 2},
    {"_ForceChoice_cpp_get_block_items_from_data", (DL_FUNC) &_ForceChoice_cpp_get_block_items_from_data, 1},
    {"_ForceChoice_cpp_get_block_items_fcdcm", (DL_FUNC) &_ForceChoice_cpp_get_block_items_fcdcm, 1},
    {"_ForceChoice_cpp_loglik_binary", (DL_FUNC) &_ForceChoice_cpp_loglik_binary, 3},
    {"_ForceChoice_cpp_loglik_indexed", (DL_FUNC) &_ForceChoice_cpp_loglik_indexed, 5},
    {"_ForceChoice_cpp_tirt_expand_response_full", (DL_FUNC) &_ForceChoice_cpp_tirt_expand_response_full, 4},
    {"_ForceChoice_cpp_loglik_binary_person_pairs", (DL_FUNC) &_ForceChoice_cpp_loglik_binary_person_pairs, 6},
    {"_ForceChoice_cpp_get_response_from_data_tirt", (DL_FUNC) &_ForceChoice_cpp_get_response_from_data_tirt, 3},
    {"_ForceChoice_cpp_get_data_from_response_tirt", (DL_FUNC) &_ForceChoice_cpp_get_data_from_response_tirt, 4},
    {"_ForceChoice_cpp_extract_rhat_vector", (DL_FUNC) &_ForceChoice_cpp_extract_rhat_vector, 4},
    {"_ForceChoice_cpp_check_response", (DL_FUNC) &_ForceChoice_cpp_check_response, 2},
    {"_rcpp_module_boot_stan_fit4FCDCM_mod", (DL_FUNC) &_rcpp_module_boot_stan_fit4FCDCM_mod, 0},
    {"_rcpp_module_boot_stan_fit4FCGDINA_mod", (DL_FUNC) &_rcpp_module_boot_stan_fit4FCGDINA_mod, 0},
    {"_rcpp_module_boot_stan_fit4FCGGUM_mod", (DL_FUNC) &_rcpp_module_boot_stan_fit4FCGGUM_mod, 0},
    {"_rcpp_module_boot_stan_fit4FCMIRT_mod", (DL_FUNC) &_rcpp_module_boot_stan_fit4FCMIRT_mod, 0},
    {"_rcpp_module_boot_stan_fit4MGGUM_mod", (DL_FUNC) &_rcpp_module_boot_stan_fit4MGGUM_mod, 0},
    {"_rcpp_module_boot_stan_fit4MGPCM_mod", (DL_FUNC) &_rcpp_module_boot_stan_fit4MGPCM_mod, 0},
    {"_rcpp_module_boot_stan_fit4MIRT_mod", (DL_FUNC) &_rcpp_module_boot_stan_fit4MIRT_mod, 0},
    {"_rcpp_module_boot_stan_fit4TIRT_mod", (DL_FUNC) &_rcpp_module_boot_stan_fit4TIRT_mod, 0},
    {NULL, NULL, 0}
};

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