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

// mult3sum
double mult3sum(NumericVector x, NumericVector y, NumericVector z);
RcppExport SEXP _lifecontingencies_mult3sum(SEXP xSEXP, SEXP ySEXP, SEXP zSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type z(zSEXP);
    rcpp_result_gen = Rcpp::wrap(mult3sum(x, y, z));
    return rcpp_result_gen;
END_RCPP
}
// mult2sum
double mult2sum(NumericVector x, NumericVector y);
RcppExport SEXP _lifecontingencies_mult2sum(SEXP xSEXP, SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(mult2sum(x, y));
    return rcpp_result_gen;
END_RCPP
}
// presentValueC
double presentValueC(NumericVector cashFlows, NumericVector timeIds, NumericVector interestRates, NumericVector probabilities, double power);
RcppExport SEXP _lifecontingencies_presentValueC(SEXP cashFlowsSEXP, SEXP timeIdsSEXP, SEXP interestRatesSEXP, SEXP probabilitiesSEXP, SEXP powerSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type cashFlows(cashFlowsSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type timeIds(timeIdsSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type interestRates(interestRatesSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type probabilities(probabilitiesSEXP);
    Rcpp::traits::input_parameter< double >::type power(powerSEXP);
    rcpp_result_gen = Rcpp::wrap(presentValueC(cashFlows, timeIds, interestRates, probabilities, power));
    return rcpp_result_gen;
END_RCPP
}
// fExnCpp
double fExnCpp(double T, double y, double n, double i);
RcppExport SEXP _lifecontingencies_fExnCpp(SEXP TSEXP, SEXP ySEXP, SEXP nSEXP, SEXP iSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type T(TSEXP);
    Rcpp::traits::input_parameter< double >::type y(ySEXP);
    Rcpp::traits::input_parameter< double >::type n(nSEXP);
    Rcpp::traits::input_parameter< double >::type i(iSEXP);
    rcpp_result_gen = Rcpp::wrap(fExnCpp(T, y, n, i));
    return rcpp_result_gen;
END_RCPP
}
// fAxnCpp
double fAxnCpp(double T, double y, double n, double i, double m, double k);
RcppExport SEXP _lifecontingencies_fAxnCpp(SEXP TSEXP, SEXP ySEXP, SEXP nSEXP, SEXP iSEXP, SEXP mSEXP, SEXP kSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type T(TSEXP);
    Rcpp::traits::input_parameter< double >::type y(ySEXP);
    Rcpp::traits::input_parameter< double >::type n(nSEXP);
    Rcpp::traits::input_parameter< double >::type i(iSEXP);
    Rcpp::traits::input_parameter< double >::type m(mSEXP);
    Rcpp::traits::input_parameter< double >::type k(kSEXP);
    rcpp_result_gen = Rcpp::wrap(fAxnCpp(T, y, n, i, m, k));
    return rcpp_result_gen;
END_RCPP
}
// fIAxnCpp
double fIAxnCpp(double T, double y, double n, double i, double m, double k);
RcppExport SEXP _lifecontingencies_fIAxnCpp(SEXP TSEXP, SEXP ySEXP, SEXP nSEXP, SEXP iSEXP, SEXP mSEXP, SEXP kSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type T(TSEXP);
    Rcpp::traits::input_parameter< double >::type y(ySEXP);
    Rcpp::traits::input_parameter< double >::type n(nSEXP);
    Rcpp::traits::input_parameter< double >::type i(iSEXP);
    Rcpp::traits::input_parameter< double >::type m(mSEXP);
    Rcpp::traits::input_parameter< double >::type k(kSEXP);
    rcpp_result_gen = Rcpp::wrap(fIAxnCpp(T, y, n, i, m, k));
    return rcpp_result_gen;
END_RCPP
}
// fDAxnCpp
double fDAxnCpp(double T, double y, double n, double i, double m, double k);
RcppExport SEXP _lifecontingencies_fDAxnCpp(SEXP TSEXP, SEXP ySEXP, SEXP nSEXP, SEXP iSEXP, SEXP mSEXP, SEXP kSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type T(TSEXP);
    Rcpp::traits::input_parameter< double >::type y(ySEXP);
    Rcpp::traits::input_parameter< double >::type n(nSEXP);
    Rcpp::traits::input_parameter< double >::type i(iSEXP);
    Rcpp::traits::input_parameter< double >::type m(mSEXP);
    Rcpp::traits::input_parameter< double >::type k(kSEXP);
    rcpp_result_gen = Rcpp::wrap(fDAxnCpp(T, y, n, i, m, k));
    return rcpp_result_gen;
END_RCPP
}
// fAExnCpp
double fAExnCpp(double T, double y, double n, double i, double k);
RcppExport SEXP _lifecontingencies_fAExnCpp(SEXP TSEXP, SEXP ySEXP, SEXP nSEXP, SEXP iSEXP, SEXP kSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type T(TSEXP);
    Rcpp::traits::input_parameter< double >::type y(ySEXP);
    Rcpp::traits::input_parameter< double >::type n(nSEXP);
    Rcpp::traits::input_parameter< double >::type i(iSEXP);
    Rcpp::traits::input_parameter< double >::type k(kSEXP);
    rcpp_result_gen = Rcpp::wrap(fAExnCpp(T, y, n, i, k));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_lifecontingencies_mult3sum", (DL_FUNC) &_lifecontingencies_mult3sum, 3},
    {"_lifecontingencies_mult2sum", (DL_FUNC) &_lifecontingencies_mult2sum, 2},
    {"_lifecontingencies_presentValueC", (DL_FUNC) &_lifecontingencies_presentValueC, 5},
    {"_lifecontingencies_fExnCpp", (DL_FUNC) &_lifecontingencies_fExnCpp, 4},
    {"_lifecontingencies_fAxnCpp", (DL_FUNC) &_lifecontingencies_fAxnCpp, 6},
    {"_lifecontingencies_fIAxnCpp", (DL_FUNC) &_lifecontingencies_fIAxnCpp, 6},
    {"_lifecontingencies_fDAxnCpp", (DL_FUNC) &_lifecontingencies_fDAxnCpp, 6},
    {"_lifecontingencies_fAExnCpp", (DL_FUNC) &_lifecontingencies_fAExnCpp, 5},
    {NULL, NULL, 0}
};

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