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

#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

// llrandpoiscpp
NumericVector llrandpoiscpp(NumericVector y, NumericVector lp, NumericVector tau2, NumericMatrix gh);
RcppExport SEXP _robmixglm_llrandpoiscpp(SEXP ySEXP, SEXP lpSEXP, SEXP tau2SEXP, SEXP ghSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lp(lpSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type tau2(tau2SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type gh(ghSEXP);
    rcpp_result_gen = Rcpp::wrap(llrandpoiscpp(y, lp, tau2, gh));
    return rcpp_result_gen;
END_RCPP
}
// llrandtruncpoiscpp
NumericVector llrandtruncpoiscpp(NumericVector y, NumericVector lp, NumericVector tau2, NumericMatrix gh);
RcppExport SEXP _robmixglm_llrandtruncpoiscpp(SEXP ySEXP, SEXP lpSEXP, SEXP tau2SEXP, SEXP ghSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lp(lpSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type tau2(tau2SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type gh(ghSEXP);
    rcpp_result_gen = Rcpp::wrap(llrandtruncpoiscpp(y, lp, tau2, gh));
    return rcpp_result_gen;
END_RCPP
}
// llrandgammacpp
NumericVector llrandgammacpp(NumericVector y, NumericVector lp, NumericVector tau2, NumericVector phi, NumericMatrix gh);
RcppExport SEXP _robmixglm_llrandgammacpp(SEXP ySEXP, SEXP lpSEXP, SEXP tau2SEXP, SEXP phiSEXP, SEXP ghSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lp(lpSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type tau2(tau2SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type phi(phiSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type gh(ghSEXP);
    rcpp_result_gen = Rcpp::wrap(llrandgammacpp(y, lp, tau2, phi, gh));
    return rcpp_result_gen;
END_RCPP
}
// llrandbinomcpp
NumericVector llrandbinomcpp(NumericMatrix y, NumericVector lp, NumericVector tau2, NumericMatrix gh);
RcppExport SEXP _robmixglm_llrandbinomcpp(SEXP ySEXP, SEXP lpSEXP, SEXP tau2SEXP, SEXP ghSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type y(ySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lp(lpSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type tau2(tau2SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type gh(ghSEXP);
    rcpp_result_gen = Rcpp::wrap(llrandbinomcpp(y, lp, tau2, gh));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_robmixglm_llrandpoiscpp", (DL_FUNC) &_robmixglm_llrandpoiscpp, 4},
    {"_robmixglm_llrandtruncpoiscpp", (DL_FUNC) &_robmixglm_llrandtruncpoiscpp, 4},
    {"_robmixglm_llrandgammacpp", (DL_FUNC) &_robmixglm_llrandgammacpp, 5},
    {"_robmixglm_llrandbinomcpp", (DL_FUNC) &_robmixglm_llrandbinomcpp, 4},
    {NULL, NULL, 0}
};

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