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

// BY_cpp
int BY_cpp(NumericVector p, NumericVector harmonic, double alpha);
RcppExport SEXP _eClosure_BY_cpp(SEXP pSEXP, SEXP harmonicSEXP, SEXP alphaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type p(pSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type harmonic(harmonicSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    rcpp_result_gen = Rcpp::wrap(BY_cpp(p, harmonic, alpha));
    return rcpp_result_gen;
END_RCPP
}
// cBY_check_cpp
List cBY_check_cpp(NumericVector p, int r, NumericVector harmonic, int warm_s, double alpha);
RcppExport SEXP _eClosure_cBY_check_cpp(SEXP pSEXP, SEXP rSEXP, SEXP harmonicSEXP, SEXP warm_sSEXP, SEXP alphaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type p(pSEXP);
    Rcpp::traits::input_parameter< int >::type r(rSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type harmonic(harmonicSEXP);
    Rcpp::traits::input_parameter< int >::type warm_s(warm_sSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    rcpp_result_gen = Rcpp::wrap(cBY_check_cpp(p, r, harmonic, warm_s, alpha));
    return rcpp_result_gen;
END_RCPP
}
// su_cpp
int su_cpp(NumericVector p, double alpha);
RcppExport SEXP _eClosure_su_cpp(SEXP pSEXP, SEXP alphaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type p(pSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    rcpp_result_gen = Rcpp::wrap(su_cpp(p, alpha));
    return rcpp_result_gen;
END_RCPP
}
// find_largest_r_cpp
int find_largest_r_cpp(NumericVector p, double alpha);
RcppExport SEXP _eClosure_find_largest_r_cpp(SEXP pSEXP, SEXP alphaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type p(pSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    rcpp_result_gen = Rcpp::wrap(find_largest_r_cpp(p, alpha));
    return rcpp_result_gen;
END_RCPP
}
// cSu_check_sep_cpp
List cSu_check_sep_cpp(NumericVector p, int r, int warm_failing_u, IntegerVector warm_cache, double alpha);
RcppExport SEXP _eClosure_cSu_check_sep_cpp(SEXP pSEXP, SEXP rSEXP, SEXP warm_failing_uSEXP, SEXP warm_cacheSEXP, SEXP alphaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type p(pSEXP);
    Rcpp::traits::input_parameter< int >::type r(rSEXP);
    Rcpp::traits::input_parameter< int >::type warm_failing_u(warm_failing_uSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type warm_cache(warm_cacheSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    rcpp_result_gen = Rcpp::wrap(cSu_check_sep_cpp(p, r, warm_failing_u, warm_cache, alpha));
    return rcpp_result_gen;
END_RCPP
}
// cSu_check_cpp
bool cSu_check_cpp(NumericVector p, int r, double alpha);
RcppExport SEXP _eClosure_cSu_check_cpp(SEXP pSEXP, SEXP rSEXP, SEXP alphaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type p(pSEXP);
    Rcpp::traits::input_parameter< int >::type r(rSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    rcpp_result_gen = Rcpp::wrap(cSu_check_cpp(p, r, alpha));
    return rcpp_result_gen;
END_RCPP
}
// find_largest_r_approximate_cpp
int find_largest_r_approximate_cpp(NumericVector p, double alpha);
RcppExport SEXP _eClosure_find_largest_r_approximate_cpp(SEXP pSEXP, SEXP alphaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type p(pSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    rcpp_result_gen = Rcpp::wrap(find_largest_r_approximate_cpp(p, alpha));
    return rcpp_result_gen;
END_RCPP
}
// largestmeanconsistent_cpp
int largestmeanconsistent_cpp(NumericVector e, double alpha);
RcppExport SEXP _eClosure_largestmeanconsistent_cpp(SEXP eSEXP, SEXP alphaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type e(eSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    rcpp_result_gen = Rcpp::wrap(largestmeanconsistent_cpp(e, alpha));
    return rcpp_result_gen;
END_RCPP
}
// eBH_cpp
int eBH_cpp(NumericVector e, double alpha);
RcppExport SEXP _eClosure_eBH_cpp(SEXP eSEXP, SEXP alphaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type e(eSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    rcpp_result_gen = Rcpp::wrap(eBH_cpp(e, alpha));
    return rcpp_result_gen;
END_RCPP
}
// largestmeanconsistent_approximate_cpp
int largestmeanconsistent_approximate_cpp(NumericVector e, double alpha);
RcppExport SEXP _eClosure_largestmeanconsistent_approximate_cpp(SEXP eSEXP, SEXP alphaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type e(eSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    rcpp_result_gen = Rcpp::wrap(largestmeanconsistent_approximate_cpp(e, alpha));
    return rcpp_result_gen;
END_RCPP
}
// meanconsistent_wrapper_cpp
bool meanconsistent_wrapper_cpp(NumericVector cum_e, int r, double alpha);
RcppExport SEXP _eClosure_meanconsistent_wrapper_cpp(SEXP cum_eSEXP, SEXP rSEXP, SEXP alphaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type cum_e(cum_eSEXP);
    Rcpp::traits::input_parameter< int >::type r(rSEXP);
    Rcpp::traits::input_parameter< double >::type alpha(alphaSEXP);
    rcpp_result_gen = Rcpp::wrap(meanconsistent_wrapper_cpp(cum_e, r, alpha));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_eClosure_BY_cpp", (DL_FUNC) &_eClosure_BY_cpp, 3},
    {"_eClosure_cBY_check_cpp", (DL_FUNC) &_eClosure_cBY_check_cpp, 5},
    {"_eClosure_su_cpp", (DL_FUNC) &_eClosure_su_cpp, 2},
    {"_eClosure_find_largest_r_cpp", (DL_FUNC) &_eClosure_find_largest_r_cpp, 2},
    {"_eClosure_cSu_check_sep_cpp", (DL_FUNC) &_eClosure_cSu_check_sep_cpp, 5},
    {"_eClosure_cSu_check_cpp", (DL_FUNC) &_eClosure_cSu_check_cpp, 3},
    {"_eClosure_find_largest_r_approximate_cpp", (DL_FUNC) &_eClosure_find_largest_r_approximate_cpp, 2},
    {"_eClosure_largestmeanconsistent_cpp", (DL_FUNC) &_eClosure_largestmeanconsistent_cpp, 2},
    {"_eClosure_eBH_cpp", (DL_FUNC) &_eClosure_eBH_cpp, 2},
    {"_eClosure_largestmeanconsistent_approximate_cpp", (DL_FUNC) &_eClosure_largestmeanconsistent_approximate_cpp, 2},
    {"_eClosure_meanconsistent_wrapper_cpp", (DL_FUNC) &_eClosure_meanconsistent_wrapper_cpp, 3},
    {NULL, NULL, 0}
};

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