// Generated by cpp11: do not edit by hand
// clang-format off


// Keep this block before cpp11/R headers. With R 4.5 on Apple clang 21,
// the fixed-enum Rboolean branch can emit a non-actionable CRAN-check warning.
// The portable fallback keeps the generated registrations warning-clean.
#include <Rconfig.h>
#undef HAVE_ENUM_BASE_TYPE

#include "cpp11/declarations.hpp"
#include <R_ext/Visibility.h>

// mml_backend.cpp
writable::doubles_matrix<> mfrm_cpp_compute_p_geq(doubles_matrix<> probs);
extern "C" SEXP _mfrmr_mfrm_cpp_compute_p_geq(SEXP probs) {
  BEGIN_CPP11
    return cpp11::as_sexp(mfrm_cpp_compute_p_geq(cpp11::as_cpp<cpp11::decay_t<doubles_matrix<>>>(probs)));
  END_CPP11
}
// mml_backend.cpp
writable::list mfrm_cpp_rsm_logprob_bundle(integers score_k, integers person_int, doubles base_eta, doubles_matrix<> person_nodes, doubles step_cum, sexp weight, bool include_probs);
extern "C" SEXP _mfrmr_mfrm_cpp_rsm_logprob_bundle(SEXP score_k, SEXP person_int, SEXP base_eta, SEXP person_nodes, SEXP step_cum, SEXP weight, SEXP include_probs) {
  BEGIN_CPP11
    return cpp11::as_sexp(mfrm_cpp_rsm_logprob_bundle(cpp11::as_cpp<cpp11::decay_t<integers>>(score_k), cpp11::as_cpp<cpp11::decay_t<integers>>(person_int), cpp11::as_cpp<cpp11::decay_t<doubles>>(base_eta), cpp11::as_cpp<cpp11::decay_t<doubles_matrix<>>>(person_nodes), cpp11::as_cpp<cpp11::decay_t<doubles>>(step_cum), cpp11::as_cpp<cpp11::decay_t<sexp>>(weight), cpp11::as_cpp<cpp11::decay_t<bool>>(include_probs)));
  END_CPP11
}
// mml_backend.cpp
writable::list mfrm_cpp_pcm_logprob_bundle(integers score_k, integers person_int, doubles base_eta, doubles_matrix<> person_nodes, doubles_matrix<> step_cum_obs, sexp weight, bool include_probs);
extern "C" SEXP _mfrmr_mfrm_cpp_pcm_logprob_bundle(SEXP score_k, SEXP person_int, SEXP base_eta, SEXP person_nodes, SEXP step_cum_obs, SEXP weight, SEXP include_probs) {
  BEGIN_CPP11
    return cpp11::as_sexp(mfrm_cpp_pcm_logprob_bundle(cpp11::as_cpp<cpp11::decay_t<integers>>(score_k), cpp11::as_cpp<cpp11::decay_t<integers>>(person_int), cpp11::as_cpp<cpp11::decay_t<doubles>>(base_eta), cpp11::as_cpp<cpp11::decay_t<doubles_matrix<>>>(person_nodes), cpp11::as_cpp<cpp11::decay_t<doubles_matrix<>>>(step_cum_obs), cpp11::as_cpp<cpp11::decay_t<sexp>>(weight), cpp11::as_cpp<cpp11::decay_t<bool>>(include_probs)));
  END_CPP11
}
// mml_backend.cpp
writable::list mfrm_cpp_expected_category_bundle(list prob_list, doubles_matrix<> obs_posterior, bool include_p_geq);
extern "C" SEXP _mfrmr_mfrm_cpp_expected_category_bundle(SEXP prob_list, SEXP obs_posterior, SEXP include_p_geq) {
  BEGIN_CPP11
    return cpp11::as_sexp(mfrm_cpp_expected_category_bundle(cpp11::as_cpp<cpp11::decay_t<list>>(prob_list), cpp11::as_cpp<cpp11::decay_t<doubles_matrix<>>>(obs_posterior), cpp11::as_cpp<cpp11::decay_t<bool>>(include_p_geq)));
  END_CPP11
}

extern "C" {
static const R_CallMethodDef CallEntries[] = {
    {"_mfrmr_mfrm_cpp_compute_p_geq",            (DL_FUNC) &_mfrmr_mfrm_cpp_compute_p_geq,            1},
    {"_mfrmr_mfrm_cpp_expected_category_bundle", (DL_FUNC) &_mfrmr_mfrm_cpp_expected_category_bundle, 3},
    {"_mfrmr_mfrm_cpp_pcm_logprob_bundle",       (DL_FUNC) &_mfrmr_mfrm_cpp_pcm_logprob_bundle,       7},
    {"_mfrmr_mfrm_cpp_rsm_logprob_bundle",       (DL_FUNC) &_mfrmr_mfrm_cpp_rsm_logprob_bundle,       7},
    {NULL, NULL, 0}
};
}

extern "C" attribute_visible void R_init_mfrmr(DllInfo* dll){
  R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
  R_useDynamicSymbols(dll, FALSE);
  R_forceSymbols(dll, TRUE);
}
