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

// cpp_Kf
double cpp_Kf(double L1, double l1, double L2, double l2);
RcppExport SEXP _mrtsSphere_cpp_Kf(SEXP L1SEXP, SEXP l1SEXP, SEXP L2SEXP, SEXP l2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type L1(L1SEXP);
    Rcpp::traits::input_parameter< double >::type l1(l1SEXP);
    Rcpp::traits::input_parameter< double >::type L2(L2SEXP);
    Rcpp::traits::input_parameter< double >::type l2(l2SEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_Kf(L1, l1, L2, l2));
    return rcpp_result_gen;
END_RCPP
}
// cpp_K
NumericMatrix cpp_K(NumericVector X, NumericVector Y, int n);
RcppExport SEXP _mrtsSphere_cpp_K(SEXP XSEXP, SEXP YSEXP, SEXP nSEXP) {
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< int >::type n(nSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_K(X, Y, n));
    return rcpp_result_gen;
END_RCPP
}
// cpp_Kmatrix6
NumericMatrix cpp_Kmatrix6(int KK, NumericMatrix X, NumericMatrix ggrids, NumericVector Konev, NumericMatrix eiKvecmval, int n, int N, NumericVector aa_grid, NumericVector tab_vals);
RcppExport SEXP _mrtsSphere_cpp_Kmatrix6(SEXP KKSEXP, SEXP XSEXP, SEXP ggridsSEXP, SEXP KonevSEXP, SEXP eiKvecmvalSEXP, SEXP nSEXP, SEXP NSEXP, SEXP aa_gridSEXP, SEXP tab_valsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type KK(KKSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type X(XSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type ggrids(ggridsSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type Konev(KonevSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type eiKvecmval(eiKvecmvalSEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< int >::type N(NSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type aa_grid(aa_gridSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type tab_vals(tab_valsSEXP);
    rcpp_result_gen = Rcpp::wrap(cpp_Kmatrix6(KK, X, ggrids, Konev, eiKvecmval, n, N, aa_grid, tab_vals));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_mrtsSphere_cpp_Kf", (DL_FUNC) &_mrtsSphere_cpp_Kf, 4},
    {"_mrtsSphere_cpp_K", (DL_FUNC) &_mrtsSphere_cpp_K, 3},
    {"_mrtsSphere_cpp_Kmatrix6", (DL_FUNC) &_mrtsSphere_cpp_Kmatrix6, 9},
    {NULL, NULL, 0}
};

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