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

#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

// dd_integrate_bw_odeint
NumericVector dd_integrate_bw_odeint(NumericVector ry, NumericVector times, NumericVector pars, double atol, double rtol, std::string stepper);
RcppExport SEXP _DDD_dd_integrate_bw_odeint(SEXP rySEXP, SEXP timesSEXP, SEXP parsSEXP, SEXP atolSEXP, SEXP rtolSEXP, SEXP stepperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type ry(rySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type times(timesSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pars(parsSEXP);
    Rcpp::traits::input_parameter< double >::type atol(atolSEXP);
    Rcpp::traits::input_parameter< double >::type rtol(rtolSEXP);
    Rcpp::traits::input_parameter< std::string >::type stepper(stepperSEXP);
    rcpp_result_gen = Rcpp::wrap(dd_integrate_bw_odeint(ry, times, pars, atol, rtol, stepper));
    return rcpp_result_gen;
END_RCPP
}
// dd_integrate_log_odeint
NumericVector dd_integrate_log_odeint(NumericVector ry, NumericVector times, NumericVector pars, double atol, double rtol, std::string stepper);
RcppExport SEXP _DDD_dd_integrate_log_odeint(SEXP rySEXP, SEXP timesSEXP, SEXP parsSEXP, SEXP atolSEXP, SEXP rtolSEXP, SEXP stepperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type ry(rySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type times(timesSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pars(parsSEXP);
    Rcpp::traits::input_parameter< double >::type atol(atolSEXP);
    Rcpp::traits::input_parameter< double >::type rtol(rtolSEXP);
    Rcpp::traits::input_parameter< std::string >::type stepper(stepperSEXP);
    rcpp_result_gen = Rcpp::wrap(dd_integrate_log_odeint(ry, times, pars, atol, rtol, stepper));
    return rcpp_result_gen;
END_RCPP
}
// dd_integrate_odeint
NumericVector dd_integrate_odeint(NumericVector ry, NumericVector times, NumericVector pars, double atol, double rtol, std::string stepper);
RcppExport SEXP _DDD_dd_integrate_odeint(SEXP rySEXP, SEXP timesSEXP, SEXP parsSEXP, SEXP atolSEXP, SEXP rtolSEXP, SEXP stepperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type ry(rySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type times(timesSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pars(parsSEXP);
    Rcpp::traits::input_parameter< double >::type atol(atolSEXP);
    Rcpp::traits::input_parameter< double >::type rtol(rtolSEXP);
    Rcpp::traits::input_parameter< std::string >::type stepper(stepperSEXP);
    rcpp_result_gen = Rcpp::wrap(dd_integrate_odeint(ry, times, pars, atol, rtol, stepper));
    return rcpp_result_gen;
END_RCPP
}
// dd_integrate_td_odeint
std::vector<double> dd_integrate_td_odeint(std::vector<double> y, NumericVector times, NumericVector pars, double atol, double rtol, std::string stepper);
RcppExport SEXP _DDD_dd_integrate_td_odeint(SEXP ySEXP, SEXP timesSEXP, SEXP parsSEXP, SEXP atolSEXP, SEXP rtolSEXP, SEXP stepperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< std::vector<double> >::type y(ySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type times(timesSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pars(parsSEXP);
    Rcpp::traits::input_parameter< double >::type atol(atolSEXP);
    Rcpp::traits::input_parameter< double >::type rtol(rtolSEXP);
    Rcpp::traits::input_parameter< std::string >::type stepper(stepperSEXP);
    rcpp_result_gen = Rcpp::wrap(dd_integrate_td_odeint(y, times, pars, atol, rtol, stepper));
    return rcpp_result_gen;
END_RCPP
}
// dd_logliknorm1_odeint
NumericVector dd_logliknorm1_odeint(NumericVector ry, NumericVector times, NumericVector pars, double atol, double rtol, std::string stepper);
RcppExport SEXP _DDD_dd_logliknorm1_odeint(SEXP rySEXP, SEXP timesSEXP, SEXP parsSEXP, SEXP atolSEXP, SEXP rtolSEXP, SEXP stepperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type ry(rySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type times(timesSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type pars(parsSEXP);
    Rcpp::traits::input_parameter< double >::type atol(atolSEXP);
    Rcpp::traits::input_parameter< double >::type rtol(rtolSEXP);
    Rcpp::traits::input_parameter< std::string >::type stepper(stepperSEXP);
    rcpp_result_gen = Rcpp::wrap(dd_logliknorm1_odeint(ry, times, pars, atol, rtol, stepper));
    return rcpp_result_gen;
END_RCPP
}
// dd_logliknorm2_odeint
NumericMatrix dd_logliknorm2_odeint(NumericMatrix ry, NumericVector times, List pars, double atol, double rtol, std::string stepper);
RcppExport SEXP _DDD_dd_logliknorm2_odeint(SEXP rySEXP, SEXP timesSEXP, SEXP parsSEXP, SEXP atolSEXP, SEXP rtolSEXP, SEXP stepperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type ry(rySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type times(timesSEXP);
    Rcpp::traits::input_parameter< List >::type pars(parsSEXP);
    Rcpp::traits::input_parameter< double >::type atol(atolSEXP);
    Rcpp::traits::input_parameter< double >::type rtol(rtolSEXP);
    Rcpp::traits::input_parameter< std::string >::type stepper(stepperSEXP);
    rcpp_result_gen = Rcpp::wrap(dd_logliknorm2_odeint(ry, times, pars, atol, rtol, stepper));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_DDD_dd_integrate_bw_odeint", (DL_FUNC) &_DDD_dd_integrate_bw_odeint, 6},
    {"_DDD_dd_integrate_log_odeint", (DL_FUNC) &_DDD_dd_integrate_log_odeint, 6},
    {"_DDD_dd_integrate_odeint", (DL_FUNC) &_DDD_dd_integrate_odeint, 6},
    {"_DDD_dd_integrate_td_odeint", (DL_FUNC) &_DDD_dd_integrate_td_odeint, 6},
    {"_DDD_dd_logliknorm1_odeint", (DL_FUNC) &_DDD_dd_logliknorm1_odeint, 6},
    {"_DDD_dd_logliknorm2_odeint", (DL_FUNC) &_DDD_dd_logliknorm2_odeint, 6},
    {NULL, NULL, 0}
};

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