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

// xysort
std::vector<double> xysort(std::vector<double>& y, std::vector<double>& x);
RcppExport SEXP _MD2sample_xysort(SEXP ySEXP, SEXP xSEXP) {
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< std::vector<double>& >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(xysort(y, x));
    return rcpp_result_gen;
END_RCPP
}
// Order
std::vector<int> Order(std::vector<double>& x);
RcppExport SEXP _MD2sample_Order(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< std::vector<double>& >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(Order(x));
    return rcpp_result_gen;
END_RCPP
}
// Rank
std::vector<int> Rank(std::vector<double>& x);
RcppExport SEXP _MD2sample_Rank(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< std::vector<double>& >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(Rank(x));
    return rcpp_result_gen;
END_RCPP
}
// TS_cont
Rcpp::NumericVector TS_cont(Rcpp::NumericMatrix x, Rcpp::NumericMatrix y, Rcpp::List TSextra);
RcppExport SEXP _MD2sample_TS_cont(SEXP xSEXP, SEXP ySEXP, SEXP TSextraSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::List >::type TSextra(TSextraSEXP);
    rcpp_result_gen = Rcpp::wrap(TS_cont(x, y, TSextra));
    return rcpp_result_gen;
END_RCPP
}
// TS_disc
Rcpp::NumericVector TS_disc(Rcpp::IntegerVector x, Rcpp::IntegerVector y, Rcpp::NumericVector vx, Rcpp::NumericVector vy, Rcpp::List TSextra);
RcppExport SEXP _MD2sample_TS_disc(SEXP xSEXP, SEXP ySEXP, SEXP vxSEXP, SEXP vySEXP, SEXP TSextraSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type vx(vxSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type vy(vySEXP);
    Rcpp::traits::input_parameter< Rcpp::List >::type TSextra(TSextraSEXP);
    rcpp_result_gen = Rcpp::wrap(TS_disc(x, y, vx, vy, TSextra));
    return rcpp_result_gen;
END_RCPP
}
// calcTS
NumericVector calcTS(Rcpp::List dta, Rcpp::Function TS, int typeTS, Rcpp::List TSextra);
RcppExport SEXP _MD2sample_calcTS(SEXP dtaSEXP, SEXP TSSEXP, SEXP typeTSSEXP, SEXP TSextraSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::List >::type dta(dtaSEXP);
    Rcpp::traits::input_parameter< Rcpp::Function >::type TS(TSSEXP);
    Rcpp::traits::input_parameter< int >::type typeTS(typeTSSEXP);
    Rcpp::traits::input_parameter< Rcpp::List >::type TSextra(TSextraSEXP);
    rcpp_result_gen = Rcpp::wrap(calcTS(dta, TS, typeTS, TSextra));
    return rcpp_result_gen;
END_RCPP
}
// find_dist
Rcpp::IntegerMatrix find_dist(Rcpp::List dta);
RcppExport SEXP _MD2sample_find_dist(SEXP dtaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::List >::type dta(dtaSEXP);
    rcpp_result_gen = Rcpp::wrap(find_dist(dta));
    return rcpp_result_gen;
END_RCPP
}
// gen_sim_data
Rcpp::List gen_sim_data(List dta, List TSextra);
RcppExport SEXP _MD2sample_gen_sim_data(SEXP dtaSEXP, SEXP TSextraSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type dta(dtaSEXP);
    Rcpp::traits::input_parameter< List >::type TSextra(TSextraSEXP);
    rcpp_result_gen = Rcpp::wrap(gen_sim_data(dta, TSextra));
    return rcpp_result_gen;
END_RCPP
}
// getI
int getI(NumericVector p);
RcppExport SEXP _MD2sample_getI(SEXP pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type p(pSEXP);
    rcpp_result_gen = Rcpp::wrap(getI(p));
    return rcpp_result_gen;
END_RCPP
}
// gen_cont
Rcpp::List gen_cont(NumericMatrix x, NumericMatrix y, List TSextra);
RcppExport SEXP _MD2sample_gen_cont(SEXP xSEXP, SEXP ySEXP, SEXP TSextraSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type y(ySEXP);
    Rcpp::traits::input_parameter< List >::type TSextra(TSextraSEXP);
    rcpp_result_gen = Rcpp::wrap(gen_cont(x, y, TSextra));
    return rcpp_result_gen;
END_RCPP
}
// gen_disc
Rcpp::List gen_disc(IntegerVector x, IntegerVector y, NumericVector vals_x, NumericVector vals_y, List TSextra);
RcppExport SEXP _MD2sample_gen_disc(SEXP xSEXP, SEXP ySEXP, SEXP vals_xSEXP, SEXP vals_ySEXP, SEXP TSextraSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type vals_x(vals_xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type vals_y(vals_ySEXP);
    Rcpp::traits::input_parameter< List >::type TSextra(TSextraSEXP);
    rcpp_result_gen = Rcpp::wrap(gen_disc(x, y, vals_x, vals_y, TSextra));
    return rcpp_result_gen;
END_RCPP
}
// mdecdf
NumericVector mdecdf(NumericMatrix dta, NumericMatrix pts);
RcppExport SEXP _MD2sample_mdecdf(SEXP dtaSEXP, SEXP ptsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type dta(dtaSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type pts(ptsSEXP);
    rcpp_result_gen = Rcpp::wrap(mdecdf(dta, pts));
    return rcpp_result_gen;
END_RCPP
}
// mmdagg
double mmdagg(NumericMatrix x, NumericMatrix y);
RcppExport SEXP _MD2sample_mmdagg(SEXP xSEXP, SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(mmdagg(x, y));
    return rcpp_result_gen;
END_RCPP
}
// powerC
List powerC(Function rxy, NumericVector xparam, NumericVector yparam, Function TS, int typeTS, List TSextra, int B);
RcppExport SEXP _MD2sample_powerC(SEXP rxySEXP, SEXP xparamSEXP, SEXP yparamSEXP, SEXP TSSEXP, SEXP typeTSSEXP, SEXP TSextraSEXP, SEXP BSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< Function >::type rxy(rxySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type xparam(xparamSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type yparam(yparamSEXP);
    Rcpp::traits::input_parameter< Function >::type TS(TSSEXP);
    Rcpp::traits::input_parameter< int >::type typeTS(typeTSSEXP);
    Rcpp::traits::input_parameter< List >::type TSextra(TSextraSEXP);
    Rcpp::traits::input_parameter< int >::type B(BSEXP);
    rcpp_result_gen = Rcpp::wrap(powerC(rxy, xparam, yparam, TS, typeTS, TSextra, B));
    return rcpp_result_gen;
END_RCPP
}
// testC
List testC(List dta, Function TS, int typeTS, List TSextra, int B);
RcppExport SEXP _MD2sample_testC(SEXP dtaSEXP, SEXP TSSEXP, SEXP typeTSSEXP, SEXP TSextraSEXP, SEXP BSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< List >::type dta(dtaSEXP);
    Rcpp::traits::input_parameter< Function >::type TS(TSSEXP);
    Rcpp::traits::input_parameter< int >::type typeTS(typeTSSEXP);
    Rcpp::traits::input_parameter< List >::type TSextra(TSextraSEXP);
    Rcpp::traits::input_parameter< int >::type B(BSEXP);
    rcpp_result_gen = Rcpp::wrap(testC(dta, TS, typeTS, TSextra, B));
    return rcpp_result_gen;
END_RCPP
}
// transform01
Rcpp::List transform01(List dta);
RcppExport SEXP _MD2sample_transform01(SEXP dtaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< List >::type dta(dtaSEXP);
    rcpp_result_gen = Rcpp::wrap(transform01(dta));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_MD2sample_xysort", (DL_FUNC) &_MD2sample_xysort, 2},
    {"_MD2sample_Order", (DL_FUNC) &_MD2sample_Order, 1},
    {"_MD2sample_Rank", (DL_FUNC) &_MD2sample_Rank, 1},
    {"_MD2sample_TS_cont", (DL_FUNC) &_MD2sample_TS_cont, 3},
    {"_MD2sample_TS_disc", (DL_FUNC) &_MD2sample_TS_disc, 5},
    {"_MD2sample_calcTS", (DL_FUNC) &_MD2sample_calcTS, 4},
    {"_MD2sample_find_dist", (DL_FUNC) &_MD2sample_find_dist, 1},
    {"_MD2sample_gen_sim_data", (DL_FUNC) &_MD2sample_gen_sim_data, 2},
    {"_MD2sample_getI", (DL_FUNC) &_MD2sample_getI, 1},
    {"_MD2sample_gen_cont", (DL_FUNC) &_MD2sample_gen_cont, 3},
    {"_MD2sample_gen_disc", (DL_FUNC) &_MD2sample_gen_disc, 5},
    {"_MD2sample_mdecdf", (DL_FUNC) &_MD2sample_mdecdf, 2},
    {"_MD2sample_mmdagg", (DL_FUNC) &_MD2sample_mmdagg, 2},
    {"_MD2sample_powerC", (DL_FUNC) &_MD2sample_powerC, 7},
    {"_MD2sample_testC", (DL_FUNC) &_MD2sample_testC, 5},
    {"_MD2sample_transform01", (DL_FUNC) &_MD2sample_transform01, 1},
    {NULL, NULL, 0}
};

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