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

// dgenf_work
Rcpp::NumericVector dgenf_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const Rcpp::NumericVector& P, const bool log);
RcppExport SEXP _flexsurv_dgenf_work(SEXP xSEXP, SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP, SEXP PSEXP, SEXP logSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type P(PSEXP);
    Rcpp::traits::input_parameter< const bool >::type log(logSEXP);
    rcpp_result_gen = Rcpp::wrap(dgenf_work(x, mu, sigma, Q, P, log));
    return rcpp_result_gen;
END_RCPP
}
// pgenf_work
Rcpp::NumericVector pgenf_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const Rcpp::NumericVector& P, const bool lower_tail, const bool give_log);
RcppExport SEXP _flexsurv_pgenf_work(SEXP qSEXP, SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP, SEXP PSEXP, SEXP lower_tailSEXP, SEXP give_logSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type q(qSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type P(PSEXP);
    Rcpp::traits::input_parameter< const bool >::type lower_tail(lower_tailSEXP);
    Rcpp::traits::input_parameter< const bool >::type give_log(give_logSEXP);
    rcpp_result_gen = Rcpp::wrap(pgenf_work(q, mu, sigma, Q, P, lower_tail, give_log));
    return rcpp_result_gen;
END_RCPP
}
// check_genf
Rcpp::LogicalVector check_genf(const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const Rcpp::NumericVector& P);
RcppExport SEXP _flexsurv_check_genf(SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP, SEXP PSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type P(PSEXP);
    rcpp_result_gen = Rcpp::wrap(check_genf(mu, sigma, Q, P));
    return rcpp_result_gen;
END_RCPP
}
// dgengamma_work
Rcpp::NumericVector dgengamma_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const bool log);
RcppExport SEXP _flexsurv_dgengamma_work(SEXP xSEXP, SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP, SEXP logSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP);
    Rcpp::traits::input_parameter< const bool >::type log(logSEXP);
    rcpp_result_gen = Rcpp::wrap(dgengamma_work(x, mu, sigma, Q, log));
    return rcpp_result_gen;
END_RCPP
}
// pgengamma_work
Rcpp::NumericVector pgengamma_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q, const bool lower_tail, const bool give_log);
RcppExport SEXP _flexsurv_pgengamma_work(SEXP qSEXP, SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP, SEXP lower_tailSEXP, SEXP give_logSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type q(qSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP);
    Rcpp::traits::input_parameter< const bool >::type lower_tail(lower_tailSEXP);
    Rcpp::traits::input_parameter< const bool >::type give_log(give_logSEXP);
    rcpp_result_gen = Rcpp::wrap(pgengamma_work(q, mu, sigma, Q, lower_tail, give_log));
    return rcpp_result_gen;
END_RCPP
}
// check_gengamma
Rcpp::LogicalVector check_gengamma(const Rcpp::NumericVector& mu, const Rcpp::NumericVector& sigma, const Rcpp::NumericVector& Q);
RcppExport SEXP _flexsurv_check_gengamma(SEXP muSEXP, SEXP sigmaSEXP, SEXP QSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type mu(muSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type sigma(sigmaSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type Q(QSEXP);
    rcpp_result_gen = Rcpp::wrap(check_gengamma(mu, sigma, Q));
    return rcpp_result_gen;
END_RCPP
}
// dgompertz_work
Rcpp::NumericVector dgompertz_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& rate, const bool log);
RcppExport SEXP _flexsurv_dgompertz_work(SEXP xSEXP, SEXP shapeSEXP, SEXP rateSEXP, SEXP logSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type rate(rateSEXP);
    Rcpp::traits::input_parameter< const bool >::type log(logSEXP);
    rcpp_result_gen = Rcpp::wrap(dgompertz_work(x, shape, rate, log));
    return rcpp_result_gen;
END_RCPP
}
// pgompertz_work
Rcpp::NumericVector pgompertz_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& rate, const bool lower_tail, const bool give_log);
RcppExport SEXP _flexsurv_pgompertz_work(SEXP qSEXP, SEXP shapeSEXP, SEXP rateSEXP, SEXP lower_tailSEXP, SEXP give_logSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type q(qSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type rate(rateSEXP);
    Rcpp::traits::input_parameter< const bool >::type lower_tail(lower_tailSEXP);
    Rcpp::traits::input_parameter< const bool >::type give_log(give_logSEXP);
    rcpp_result_gen = Rcpp::wrap(pgompertz_work(q, shape, rate, lower_tail, give_log));
    return rcpp_result_gen;
END_RCPP
}
// check_gompertz
Rcpp::LogicalVector check_gompertz(const Rcpp::NumericVector& shape, const Rcpp::NumericVector& rate);
RcppExport SEXP _flexsurv_check_gompertz(SEXP shapeSEXP, SEXP rateSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type rate(rateSEXP);
    rcpp_result_gen = Rcpp::wrap(check_gompertz(shape, rate));
    return rcpp_result_gen;
END_RCPP
}
// dllogis_work
Rcpp::NumericVector dllogis_work(const Rcpp::NumericVector& x, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& scale, const bool log);
RcppExport SEXP _flexsurv_dllogis_work(SEXP xSEXP, SEXP shapeSEXP, SEXP scaleSEXP, SEXP logSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type scale(scaleSEXP);
    Rcpp::traits::input_parameter< const bool >::type log(logSEXP);
    rcpp_result_gen = Rcpp::wrap(dllogis_work(x, shape, scale, log));
    return rcpp_result_gen;
END_RCPP
}
// pllogis_work
Rcpp::NumericVector pllogis_work(const Rcpp::NumericVector& q, const Rcpp::NumericVector& shape, const Rcpp::NumericVector& scale, const bool lower_tail, const bool give_log);
RcppExport SEXP _flexsurv_pllogis_work(SEXP qSEXP, SEXP shapeSEXP, SEXP scaleSEXP, SEXP lower_tailSEXP, SEXP give_logSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type q(qSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type scale(scaleSEXP);
    Rcpp::traits::input_parameter< const bool >::type lower_tail(lower_tailSEXP);
    Rcpp::traits::input_parameter< const bool >::type give_log(give_logSEXP);
    rcpp_result_gen = Rcpp::wrap(pllogis_work(q, shape, scale, lower_tail, give_log));
    return rcpp_result_gen;
END_RCPP
}
// check_llogis
Rcpp::LogicalVector check_llogis(const Rcpp::NumericVector& shape, const Rcpp::NumericVector& scale);
RcppExport SEXP _flexsurv_check_llogis(SEXP shapeSEXP, SEXP scaleSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type shape(shapeSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type scale(scaleSEXP);
    rcpp_result_gen = Rcpp::wrap(check_llogis(shape, scale));
    return rcpp_result_gen;
END_RCPP
}
// exph
Rcpp::NumericVector exph(const Rcpp::NumericVector& y);
RcppExport SEXP _flexsurv_exph(SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(exph(y));
    return rcpp_result_gen;
END_RCPP
}
// dexph
Rcpp::NumericVector dexph(const Rcpp::NumericVector& y);
RcppExport SEXP _flexsurv_dexph(SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(dexph(y));
    return rcpp_result_gen;
END_RCPP
}
// basis_vector
Rcpp::NumericVector basis_vector(const Rcpp::NumericVector& knots, const Rcpp::NumericVector& x);
RcppExport SEXP _flexsurv_basis_vector(SEXP knotsSEXP, SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type knots(knotsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(basis_vector(knots, x));
    return rcpp_result_gen;
END_RCPP
}
// basis_matrix
Rcpp::NumericMatrix basis_matrix(const Rcpp::NumericMatrix& knots, const Rcpp::NumericVector& x);
RcppExport SEXP _flexsurv_basis_matrix(SEXP knotsSEXP, SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type knots(knotsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(basis_matrix(knots, x));
    return rcpp_result_gen;
END_RCPP
}
// dbasis_vector
Rcpp::NumericVector dbasis_vector(const Rcpp::NumericVector& knots, const Rcpp::NumericVector& x);
RcppExport SEXP _flexsurv_dbasis_vector(SEXP knotsSEXP, SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type knots(knotsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(dbasis_vector(knots, x));
    return rcpp_result_gen;
END_RCPP
}
// dbasis_matrix
Rcpp::NumericMatrix dbasis_matrix(const Rcpp::NumericMatrix& knots, const Rcpp::NumericVector& x);
RcppExport SEXP _flexsurv_dbasis_matrix(SEXP knotsSEXP, SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type knots(knotsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(dbasis_matrix(knots, x));
    return rcpp_result_gen;
END_RCPP
}
