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

// Simplify_cpp
SEXP Simplify_cpp(SEXP expr);
RcppExport SEXP _Deriv_Simplify_cpp(SEXP exprSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type expr(exprSEXP);
    rcpp_result_gen = Rcpp::wrap(Simplify_cpp(expr));
    return rcpp_result_gen;
END_RCPP
}
// Deriv_cpp
SEXP Deriv_cpp(SEXP expr, SEXP x, Rcpp::Environment env, SEXP drule);
RcppExport SEXP _Deriv_Deriv_cpp(SEXP exprSEXP, SEXP xSEXP, SEXP envSEXP, SEXP druleSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type expr(exprSEXP);
    Rcpp::traits::input_parameter< SEXP >::type x(xSEXP);
    Rcpp::traits::input_parameter< Rcpp::Environment >::type env(envSEXP);
    Rcpp::traits::input_parameter< SEXP >::type drule(druleSEXP);
    rcpp_result_gen = Rcpp::wrap(Deriv_cpp(expr, x, env, drule));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_Deriv_Simplify_cpp", (DL_FUNC) &_Deriv_Simplify_cpp, 1},
    {"_Deriv_Deriv_cpp", (DL_FUNC) &_Deriv_Deriv_cpp, 4},
    {NULL, NULL, 0}
};

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