// Generated by using Rcpp::compileAttributes() -> do not edit by hand
// Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

#include "../inst/include/tEDM.h"
#include <RcppThread.h>
#include <RcppArmadillo.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

// RcppLogisticMap
Rcpp::List RcppLogisticMap(double x, double y, double z, int step, double alpha_x, double alpha_y, double alpha_z, double beta_xy, double beta_xz, double beta_yx, double beta_yz, double beta_zx, double beta_zy, double escape_threshold);
RcppExport SEXP _tEDM_RcppLogisticMap(SEXP xSEXP, SEXP ySEXP, SEXP zSEXP, SEXP stepSEXP, SEXP alpha_xSEXP, SEXP alpha_ySEXP, SEXP alpha_zSEXP, SEXP beta_xySEXP, SEXP beta_xzSEXP, SEXP beta_yxSEXP, SEXP beta_yzSEXP, SEXP beta_zxSEXP, SEXP beta_zySEXP, SEXP escape_thresholdSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type y(ySEXP);
    Rcpp::traits::input_parameter< double >::type z(zSEXP);
    Rcpp::traits::input_parameter< int >::type step(stepSEXP);
    Rcpp::traits::input_parameter< double >::type alpha_x(alpha_xSEXP);
    Rcpp::traits::input_parameter< double >::type alpha_y(alpha_ySEXP);
    Rcpp::traits::input_parameter< double >::type alpha_z(alpha_zSEXP);
    Rcpp::traits::input_parameter< double >::type beta_xy(beta_xySEXP);
    Rcpp::traits::input_parameter< double >::type beta_xz(beta_xzSEXP);
    Rcpp::traits::input_parameter< double >::type beta_yx(beta_yxSEXP);
    Rcpp::traits::input_parameter< double >::type beta_yz(beta_yzSEXP);
    Rcpp::traits::input_parameter< double >::type beta_zx(beta_zxSEXP);
    Rcpp::traits::input_parameter< double >::type beta_zy(beta_zySEXP);
    Rcpp::traits::input_parameter< double >::type escape_threshold(escape_thresholdSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppLogisticMap(x, y, z, step, alpha_x, alpha_y, alpha_z, beta_xy, beta_xz, beta_yx, beta_yz, beta_zx, beta_zy, escape_threshold));
    return rcpp_result_gen;
END_RCPP
}
// RcppEmbed
Rcpp::NumericMatrix RcppEmbed(const Rcpp::NumericVector& vec, int E, int tau, int style);
RcppExport SEXP _tEDM_RcppEmbed(SEXP vecSEXP, SEXP ESEXP, SEXP tauSEXP, SEXP styleSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< int >::type E(ESEXP);
    Rcpp::traits::input_parameter< int >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< int >::type style(styleSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppEmbed(vec, E, tau, style));
    return rcpp_result_gen;
END_RCPP
}
// RcppSimplexForecast
Rcpp::NumericVector RcppSimplexForecast(const Rcpp::NumericVector& source, const Rcpp::NumericVector& target, int E, int tau, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, const int& num_neighbors, const int& dist_metric, const bool& dist_average);
RcppExport SEXP _tEDM_RcppSimplexForecast(SEXP sourceSEXP, SEXP targetSEXP, SEXP ESEXP, SEXP tauSEXP, SEXP libSEXP, SEXP predSEXP, SEXP num_neighborsSEXP, SEXP dist_metricSEXP, SEXP dist_averageSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type source(sourceSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type target(targetSEXP);
    Rcpp::traits::input_parameter< int >::type E(ESEXP);
    Rcpp::traits::input_parameter< int >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< const int& >::type num_neighbors(num_neighborsSEXP);
    Rcpp::traits::input_parameter< const int& >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< const bool& >::type dist_average(dist_averageSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppSimplexForecast(source, target, E, tau, lib, pred, num_neighbors, dist_metric, dist_average));
    return rcpp_result_gen;
END_RCPP
}
// RcppSMapForecast
Rcpp::NumericVector RcppSMapForecast(const Rcpp::NumericVector& source, const Rcpp::NumericVector& target, int E, int tau, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, const int& num_neighbors, const double& theta, const int& dist_metric, const bool& dist_average);
RcppExport SEXP _tEDM_RcppSMapForecast(SEXP sourceSEXP, SEXP targetSEXP, SEXP ESEXP, SEXP tauSEXP, SEXP libSEXP, SEXP predSEXP, SEXP num_neighborsSEXP, SEXP thetaSEXP, SEXP dist_metricSEXP, SEXP dist_averageSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type source(sourceSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type target(targetSEXP);
    Rcpp::traits::input_parameter< int >::type E(ESEXP);
    Rcpp::traits::input_parameter< int >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< const int& >::type num_neighbors(num_neighborsSEXP);
    Rcpp::traits::input_parameter< const double& >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< const int& >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< const bool& >::type dist_average(dist_averageSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppSMapForecast(source, target, E, tau, lib, pred, num_neighbors, theta, dist_metric, dist_average));
    return rcpp_result_gen;
END_RCPP
}
// RcppIntersectionalCardinality
Rcpp::NumericVector RcppIntersectionalCardinality(const Rcpp::NumericVector& source, const Rcpp::NumericVector& target, int E, int tau, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, const int& num_neighbors, const int& n_excluded, const int& dist_metric, const int& threads, const int& parallel_level);
RcppExport SEXP _tEDM_RcppIntersectionalCardinality(SEXP sourceSEXP, SEXP targetSEXP, SEXP ESEXP, SEXP tauSEXP, SEXP libSEXP, SEXP predSEXP, SEXP num_neighborsSEXP, SEXP n_excludedSEXP, SEXP dist_metricSEXP, SEXP threadsSEXP, SEXP parallel_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type source(sourceSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type target(targetSEXP);
    Rcpp::traits::input_parameter< int >::type E(ESEXP);
    Rcpp::traits::input_parameter< int >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< const int& >::type num_neighbors(num_neighborsSEXP);
    Rcpp::traits::input_parameter< const int& >::type n_excluded(n_excludedSEXP);
    Rcpp::traits::input_parameter< const int& >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< const int& >::type threads(threadsSEXP);
    Rcpp::traits::input_parameter< const int& >::type parallel_level(parallel_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppIntersectionalCardinality(source, target, E, tau, lib, pred, num_neighbors, n_excluded, dist_metric, threads, parallel_level));
    return rcpp_result_gen;
END_RCPP
}
// RcppMVE4TS
Rcpp::NumericVector RcppMVE4TS(const Rcpp::NumericMatrix& x, const Rcpp::NumericVector& y, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, int E, int tau, int b, int top, int nvar, int dist_metric, int dist_average, int threads);
RcppExport SEXP _tEDM_RcppMVE4TS(SEXP xSEXP, SEXP ySEXP, SEXP libSEXP, SEXP predSEXP, SEXP ESEXP, SEXP tauSEXP, SEXP bSEXP, SEXP topSEXP, SEXP nvarSEXP, SEXP dist_metricSEXP, SEXP dist_averageSEXP, SEXP threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type x(xSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y(ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< int >::type E(ESEXP);
    Rcpp::traits::input_parameter< int >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< int >::type b(bSEXP);
    Rcpp::traits::input_parameter< int >::type top(topSEXP);
    Rcpp::traits::input_parameter< int >::type nvar(nvarSEXP);
    Rcpp::traits::input_parameter< int >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< int >::type dist_average(dist_averageSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMVE4TS(x, y, lib, pred, E, tau, b, top, nvar, dist_metric, dist_average, threads));
    return rcpp_result_gen;
END_RCPP
}
// RcppFNN4TS
Rcpp::NumericVector RcppFNN4TS(const Rcpp::NumericVector& vec, const Rcpp::NumericVector& rt, const Rcpp::NumericVector& eps, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, const Rcpp::IntegerVector& E, int tau, int dist_metric, int threads, int parallel_level);
RcppExport SEXP _tEDM_RcppFNN4TS(SEXP vecSEXP, SEXP rtSEXP, SEXP epsSEXP, SEXP libSEXP, SEXP predSEXP, SEXP ESEXP, SEXP tauSEXP, SEXP dist_metricSEXP, SEXP threadsSEXP, SEXP parallel_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type rt(rtSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type eps(epsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type E(ESEXP);
    Rcpp::traits::input_parameter< int >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< int >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    Rcpp::traits::input_parameter< int >::type parallel_level(parallel_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppFNN4TS(vec, rt, eps, lib, pred, E, tau, dist_metric, threads, parallel_level));
    return rcpp_result_gen;
END_RCPP
}
// RcppSimplex4TS
Rcpp::NumericMatrix RcppSimplex4TS(const Rcpp::NumericVector& source, const Rcpp::NumericVector& target, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, const Rcpp::IntegerVector& E, const Rcpp::IntegerVector& b, const Rcpp::IntegerVector& tau, int dist_metric, bool dist_average, int threads);
RcppExport SEXP _tEDM_RcppSimplex4TS(SEXP sourceSEXP, SEXP targetSEXP, SEXP libSEXP, SEXP predSEXP, SEXP ESEXP, SEXP bSEXP, SEXP tauSEXP, SEXP dist_metricSEXP, SEXP dist_averageSEXP, SEXP threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type source(sourceSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type target(targetSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type E(ESEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type b(bSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< int >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< bool >::type dist_average(dist_averageSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppSimplex4TS(source, target, lib, pred, E, b, tau, dist_metric, dist_average, threads));
    return rcpp_result_gen;
END_RCPP
}
// RcppSMap4TS
Rcpp::NumericMatrix RcppSMap4TS(const Rcpp::NumericVector& source, const Rcpp::NumericVector& target, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, const Rcpp::NumericVector& theta, int E, int tau, int b, int dist_metric, bool dist_average, int threads);
RcppExport SEXP _tEDM_RcppSMap4TS(SEXP sourceSEXP, SEXP targetSEXP, SEXP libSEXP, SEXP predSEXP, SEXP thetaSEXP, SEXP ESEXP, SEXP tauSEXP, SEXP bSEXP, SEXP dist_metricSEXP, SEXP dist_averageSEXP, SEXP threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type source(sourceSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type target(targetSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< int >::type E(ESEXP);
    Rcpp::traits::input_parameter< int >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< int >::type b(bSEXP);
    Rcpp::traits::input_parameter< int >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< bool >::type dist_average(dist_averageSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppSMap4TS(source, target, lib, pred, theta, E, tau, b, dist_metric, dist_average, threads));
    return rcpp_result_gen;
END_RCPP
}
// RcppMultiSimplex4TS
Rcpp::NumericMatrix RcppMultiSimplex4TS(const Rcpp::NumericMatrix& source, const Rcpp::NumericMatrix& target, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, const Rcpp::IntegerVector& E, const Rcpp::IntegerVector& b, const Rcpp::IntegerVector& tau, int dist_metric, bool dist_average, int threads);
RcppExport SEXP _tEDM_RcppMultiSimplex4TS(SEXP sourceSEXP, SEXP targetSEXP, SEXP libSEXP, SEXP predSEXP, SEXP ESEXP, SEXP bSEXP, SEXP tauSEXP, SEXP dist_metricSEXP, SEXP dist_averageSEXP, SEXP threadsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type source(sourceSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type target(targetSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type E(ESEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type b(bSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< int >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< bool >::type dist_average(dist_averageSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMultiSimplex4TS(source, target, lib, pred, E, b, tau, dist_metric, dist_average, threads));
    return rcpp_result_gen;
END_RCPP
}
// RcppIC4TS
Rcpp::NumericMatrix RcppIC4TS(const Rcpp::NumericVector& source, const Rcpp::NumericVector& target, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, const Rcpp::IntegerVector& E, const Rcpp::IntegerVector& b, const Rcpp::IntegerVector& tau, int exclude, int dist_metric, int threads, int parallel_level);
RcppExport SEXP _tEDM_RcppIC4TS(SEXP sourceSEXP, SEXP targetSEXP, SEXP libSEXP, SEXP predSEXP, SEXP ESEXP, SEXP bSEXP, SEXP tauSEXP, SEXP excludeSEXP, SEXP dist_metricSEXP, SEXP threadsSEXP, SEXP parallel_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type source(sourceSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type target(targetSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type E(ESEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type b(bSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< int >::type exclude(excludeSEXP);
    Rcpp::traits::input_parameter< int >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    Rcpp::traits::input_parameter< int >::type parallel_level(parallel_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppIC4TS(source, target, lib, pred, E, b, tau, exclude, dist_metric, threads, parallel_level));
    return rcpp_result_gen;
END_RCPP
}
// RcppCCM
Rcpp::NumericMatrix RcppCCM(const Rcpp::NumericVector& x, const Rcpp::NumericVector& y, const Rcpp::IntegerVector& libsizes, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, int E, int tau, int b, bool simplex, double theta, int threads, int parallel_level, int dist_metric, bool dist_average, bool progressbar);
RcppExport SEXP _tEDM_RcppCCM(SEXP xSEXP, SEXP ySEXP, SEXP libsizesSEXP, SEXP libSEXP, SEXP predSEXP, SEXP ESEXP, SEXP tauSEXP, SEXP bSEXP, SEXP simplexSEXP, SEXP thetaSEXP, SEXP threadsSEXP, SEXP parallel_levelSEXP, SEXP dist_metricSEXP, SEXP dist_averageSEXP, SEXP progressbarSEXP) {
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 y(ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type libsizes(libsizesSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< int >::type E(ESEXP);
    Rcpp::traits::input_parameter< int >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< int >::type b(bSEXP);
    Rcpp::traits::input_parameter< bool >::type simplex(simplexSEXP);
    Rcpp::traits::input_parameter< double >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    Rcpp::traits::input_parameter< int >::type parallel_level(parallel_levelSEXP);
    Rcpp::traits::input_parameter< int >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< bool >::type dist_average(dist_averageSEXP);
    Rcpp::traits::input_parameter< bool >::type progressbar(progressbarSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppCCM(x, y, libsizes, lib, pred, E, tau, b, simplex, theta, threads, parallel_level, dist_metric, dist_average, progressbar));
    return rcpp_result_gen;
END_RCPP
}
// RcppPCM
Rcpp::NumericMatrix RcppPCM(const Rcpp::NumericVector& x, const Rcpp::NumericVector& y, const Rcpp::NumericMatrix& z, const Rcpp::IntegerVector& libsizes, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, const Rcpp::IntegerVector& E, const Rcpp::IntegerVector& tau, const Rcpp::IntegerVector& b, bool simplex, double theta, int threads, int parallel_level, bool cumulate, int dist_metric, bool dist_average, bool progressbar);
RcppExport SEXP _tEDM_RcppPCM(SEXP xSEXP, SEXP ySEXP, SEXP zSEXP, SEXP libsizesSEXP, SEXP libSEXP, SEXP predSEXP, SEXP ESEXP, SEXP tauSEXP, SEXP bSEXP, SEXP simplexSEXP, SEXP thetaSEXP, SEXP threadsSEXP, SEXP parallel_levelSEXP, SEXP cumulateSEXP, SEXP dist_metricSEXP, SEXP dist_averageSEXP, SEXP progressbarSEXP) {
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 y(ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type z(zSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type libsizes(libsizesSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type E(ESEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type b(bSEXP);
    Rcpp::traits::input_parameter< bool >::type simplex(simplexSEXP);
    Rcpp::traits::input_parameter< double >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    Rcpp::traits::input_parameter< int >::type parallel_level(parallel_levelSEXP);
    Rcpp::traits::input_parameter< bool >::type cumulate(cumulateSEXP);
    Rcpp::traits::input_parameter< int >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< bool >::type dist_average(dist_averageSEXP);
    Rcpp::traits::input_parameter< bool >::type progressbar(progressbarSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppPCM(x, y, z, libsizes, lib, pred, E, tau, b, simplex, theta, threads, parallel_level, cumulate, dist_metric, dist_average, progressbar));
    return rcpp_result_gen;
END_RCPP
}
// RcppCMC
Rcpp::List RcppCMC(const Rcpp::NumericVector& x, const Rcpp::NumericVector& y, const Rcpp::IntegerVector& libsizes, const Rcpp::IntegerVector& lib, const Rcpp::IntegerVector& pred, const Rcpp::IntegerVector& E, const Rcpp::IntegerVector& tau, int b, int r, int dist_metric, int threads, int parallel_level, bool progressbar);
RcppExport SEXP _tEDM_RcppCMC(SEXP xSEXP, SEXP ySEXP, SEXP libsizesSEXP, SEXP libSEXP, SEXP predSEXP, SEXP ESEXP, SEXP tauSEXP, SEXP bSEXP, SEXP rSEXP, SEXP dist_metricSEXP, SEXP threadsSEXP, SEXP parallel_levelSEXP, SEXP progressbarSEXP) {
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 y(ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type libsizes(libsizesSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type pred(predSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type E(ESEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< int >::type b(bSEXP);
    Rcpp::traits::input_parameter< int >::type r(rSEXP);
    Rcpp::traits::input_parameter< int >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    Rcpp::traits::input_parameter< int >::type parallel_level(parallel_levelSEXP);
    Rcpp::traits::input_parameter< bool >::type progressbar(progressbarSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppCMC(x, y, libsizes, lib, pred, E, tau, b, r, dist_metric, threads, parallel_level, progressbar));
    return rcpp_result_gen;
END_RCPP
}
// RcppMultispatialCCM
Rcpp::NumericMatrix RcppMultispatialCCM(const Rcpp::NumericMatrix& x, const Rcpp::NumericMatrix& y, const Rcpp::IntegerVector& libsizes, const Rcpp::IntegerVector& lib, int E, int tau, int b, int boot, int seed, int threads, int parallel_level, int dist_metric, bool dist_average, bool progressbar);
RcppExport SEXP _tEDM_RcppMultispatialCCM(SEXP xSEXP, SEXP ySEXP, SEXP libsizesSEXP, SEXP libSEXP, SEXP ESEXP, SEXP tauSEXP, SEXP bSEXP, SEXP bootSEXP, SEXP seedSEXP, SEXP threadsSEXP, SEXP parallel_levelSEXP, SEXP dist_metricSEXP, SEXP dist_averageSEXP, SEXP progressbarSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type x(xSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type y(ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type libsizes(libsizesSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< int >::type E(ESEXP);
    Rcpp::traits::input_parameter< int >::type tau(tauSEXP);
    Rcpp::traits::input_parameter< int >::type b(bSEXP);
    Rcpp::traits::input_parameter< int >::type boot(bootSEXP);
    Rcpp::traits::input_parameter< int >::type seed(seedSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    Rcpp::traits::input_parameter< int >::type parallel_level(parallel_levelSEXP);
    Rcpp::traits::input_parameter< int >::type dist_metric(dist_metricSEXP);
    Rcpp::traits::input_parameter< bool >::type dist_average(dist_averageSEXP);
    Rcpp::traits::input_parameter< bool >::type progressbar(progressbarSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMultispatialCCM(x, y, libsizes, lib, E, tau, b, boot, seed, threads, parallel_level, dist_metric, dist_average, progressbar));
    return rcpp_result_gen;
END_RCPP
}
// RcppFactorial
int RcppFactorial(int n);
RcppExport SEXP _tEDM_RcppFactorial(SEXP nSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppFactorial(n));
    return rcpp_result_gen;
END_RCPP
}
// RcppCombine
double RcppCombine(int n, int k);
RcppExport SEXP _tEDM_RcppCombine(SEXP nSEXP, SEXP kSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppCombine(n, k));
    return rcpp_result_gen;
END_RCPP
}
// RcppCombn
Rcpp::List RcppCombn(const Rcpp::RObject& vec, int m);
RcppExport SEXP _tEDM_RcppCombn(SEXP vecSEXP, SEXP mSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::RObject& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< int >::type m(mSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppCombn(vec, m));
    return rcpp_result_gen;
END_RCPP
}
// RcppGenSubsets
Rcpp::List RcppGenSubsets(const Rcpp::RObject& vec);
RcppExport SEXP _tEDM_RcppGenSubsets(SEXP vecSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::RObject& >::type vec(vecSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppGenSubsets(vec));
    return rcpp_result_gen;
END_RCPP
}
// RcppDigamma
double RcppDigamma(double x);
RcppExport SEXP _tEDM_RcppDigamma(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppDigamma(x));
    return rcpp_result_gen;
END_RCPP
}
// RcppLog
double RcppLog(double x, double base);
RcppExport SEXP _tEDM_RcppLog(SEXP xSEXP, SEXP baseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type base(baseSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppLog(x, base));
    return rcpp_result_gen;
END_RCPP
}
// RcppMedian
double RcppMedian(const Rcpp::NumericVector& vec, bool NA_rm);
RcppExport SEXP _tEDM_RcppMedian(SEXP vecSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMedian(vec, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppMean
double RcppMean(const Rcpp::NumericVector& vec, bool NA_rm);
RcppExport SEXP _tEDM_RcppMean(SEXP vecSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMean(vec, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppMin
double RcppMin(const Rcpp::NumericVector& vec, bool NA_rm);
RcppExport SEXP _tEDM_RcppMin(SEXP vecSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMin(vec, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppMax
double RcppMax(const Rcpp::NumericVector& vec, bool NA_rm);
RcppExport SEXP _tEDM_RcppMax(SEXP vecSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMax(vec, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppSum
double RcppSum(const Rcpp::NumericVector& vec, bool NA_rm);
RcppExport SEXP _tEDM_RcppSum(SEXP vecSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppSum(vec, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppVariance
double RcppVariance(const Rcpp::NumericVector& vec, bool NA_rm);
RcppExport SEXP _tEDM_RcppVariance(SEXP vecSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppVariance(vec, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppCovariance
double RcppCovariance(const Rcpp::NumericVector& vec1, const Rcpp::NumericVector& vec2, bool NA_rm);
RcppExport SEXP _tEDM_RcppCovariance(SEXP vec1SEXP, SEXP vec2SEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec1(vec1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec2(vec2SEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppCovariance(vec1, vec2, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppMAE
double RcppMAE(const Rcpp::NumericVector& vec1, const Rcpp::NumericVector& vec2, bool NA_rm);
RcppExport SEXP _tEDM_RcppMAE(SEXP vec1SEXP, SEXP vec2SEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec1(vec1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec2(vec2SEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMAE(vec1, vec2, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppRMSE
double RcppRMSE(const Rcpp::NumericVector& vec1, const Rcpp::NumericVector& vec2, bool NA_rm);
RcppExport SEXP _tEDM_RcppRMSE(SEXP vec1SEXP, SEXP vec2SEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec1(vec1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec2(vec2SEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppRMSE(vec1, vec2, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppCumSum
Rcpp::NumericVector RcppCumSum(const Rcpp::NumericVector& vec);
RcppExport SEXP _tEDM_RcppCumSum(SEXP vecSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppCumSum(vec));
    return rcpp_result_gen;
END_RCPP
}
// RcppAbsDiff
Rcpp::NumericVector RcppAbsDiff(const Rcpp::NumericVector& vec1, const Rcpp::NumericVector& vec2);
RcppExport SEXP _tEDM_RcppAbsDiff(SEXP vec1SEXP, SEXP vec2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec1(vec1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec2(vec2SEXP);
    rcpp_result_gen = Rcpp::wrap(RcppAbsDiff(vec1, vec2));
    return rcpp_result_gen;
END_RCPP
}
// RcppSumNormalize
Rcpp::NumericVector RcppSumNormalize(const Rcpp::NumericVector& vec, bool NA_rm);
RcppExport SEXP _tEDM_RcppSumNormalize(SEXP vecSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppSumNormalize(vec, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppArithmeticSeq
Rcpp::NumericVector RcppArithmeticSeq(double from, double to, int length_out);
RcppExport SEXP _tEDM_RcppArithmeticSeq(SEXP fromSEXP, SEXP toSEXP, SEXP length_outSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< double >::type from(fromSEXP);
    Rcpp::traits::input_parameter< double >::type to(toSEXP);
    Rcpp::traits::input_parameter< int >::type length_out(length_outSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppArithmeticSeq(from, to, length_out));
    return rcpp_result_gen;
END_RCPP
}
// RcppQuantile
Rcpp::NumericVector RcppQuantile(const Rcpp::NumericVector& vec, const Rcpp::NumericVector& probs, bool NA_rm);
RcppExport SEXP _tEDM_RcppQuantile(SEXP vecSEXP, SEXP probsSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type probs(probsSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppQuantile(vec, probs, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppPearsonCor
double RcppPearsonCor(const Rcpp::NumericVector& y, const Rcpp::NumericVector& y_hat, bool NA_rm);
RcppExport SEXP _tEDM_RcppPearsonCor(SEXP ySEXP, SEXP y_hatSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y(ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y_hat(y_hatSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppPearsonCor(y, y_hat, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppSpearmanCor
double RcppSpearmanCor(const Rcpp::NumericVector& y, const Rcpp::NumericVector& y_hat, bool NA_rm);
RcppExport SEXP _tEDM_RcppSpearmanCor(SEXP ySEXP, SEXP y_hatSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y(ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y_hat(y_hatSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppSpearmanCor(y, y_hat, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppKendallCor
double RcppKendallCor(const Rcpp::NumericVector& y, const Rcpp::NumericVector& y_hat, bool NA_rm);
RcppExport SEXP _tEDM_RcppKendallCor(SEXP ySEXP, SEXP y_hatSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y(ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y_hat(y_hatSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppKendallCor(y, y_hat, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppPartialCor
double RcppPartialCor(const Rcpp::NumericVector& y, const Rcpp::NumericVector& y_hat, const Rcpp::NumericMatrix& controls, bool NA_rm, bool linear, double pinv_tol);
RcppExport SEXP _tEDM_RcppPartialCor(SEXP ySEXP, SEXP y_hatSEXP, SEXP controlsSEXP, SEXP NA_rmSEXP, SEXP linearSEXP, SEXP pinv_tolSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y(ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y_hat(y_hatSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type controls(controlsSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    Rcpp::traits::input_parameter< bool >::type linear(linearSEXP);
    Rcpp::traits::input_parameter< double >::type pinv_tol(pinv_tolSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppPartialCor(y, y_hat, controls, NA_rm, linear, pinv_tol));
    return rcpp_result_gen;
END_RCPP
}
// RcppPartialCorTrivar
double RcppPartialCorTrivar(const Rcpp::NumericVector& y, const Rcpp::NumericVector& y_hat, const Rcpp::NumericVector& control, bool NA_rm, bool linear, double pinv_tol);
RcppExport SEXP _tEDM_RcppPartialCorTrivar(SEXP ySEXP, SEXP y_hatSEXP, SEXP controlSEXP, SEXP NA_rmSEXP, SEXP linearSEXP, SEXP pinv_tolSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y(ySEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type y_hat(y_hatSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type control(controlSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    Rcpp::traits::input_parameter< bool >::type linear(linearSEXP);
    Rcpp::traits::input_parameter< double >::type pinv_tol(pinv_tolSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppPartialCorTrivar(y, y_hat, control, NA_rm, linear, pinv_tol));
    return rcpp_result_gen;
END_RCPP
}
// RcppCorSignificance
double RcppCorSignificance(double r, int n, int k);
RcppExport SEXP _tEDM_RcppCorSignificance(SEXP rSEXP, SEXP nSEXP, SEXP kSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< double >::type r(rSEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppCorSignificance(r, n, k));
    return rcpp_result_gen;
END_RCPP
}
// RcppCorConfidence
Rcpp::NumericVector RcppCorConfidence(double r, int n, int k, double level);
RcppExport SEXP _tEDM_RcppCorConfidence(SEXP rSEXP, SEXP nSEXP, SEXP kSEXP, SEXP levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< double >::type r(rSEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    Rcpp::traits::input_parameter< double >::type level(levelSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppCorConfidence(r, n, k, level));
    return rcpp_result_gen;
END_RCPP
}
// RcppMeanCorSignificance
double RcppMeanCorSignificance(const Rcpp::NumericVector& r, int n, int k);
RcppExport SEXP _tEDM_RcppMeanCorSignificance(SEXP rSEXP, SEXP nSEXP, SEXP kSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type r(rSEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMeanCorSignificance(r, n, k));
    return rcpp_result_gen;
END_RCPP
}
// RcppMeanCorConfidence
Rcpp::NumericVector RcppMeanCorConfidence(const Rcpp::NumericVector& r, int n, int k, double level);
RcppExport SEXP _tEDM_RcppMeanCorConfidence(SEXP rSEXP, SEXP nSEXP, SEXP kSEXP, SEXP levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type r(rSEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    Rcpp::traits::input_parameter< double >::type level(levelSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMeanCorConfidence(r, n, k, level));
    return rcpp_result_gen;
END_RCPP
}
// RcppDeLongAUCConfidence
Rcpp::NumericVector RcppDeLongAUCConfidence(const Rcpp::NumericVector& cases, const Rcpp::NumericVector& controls, const Rcpp::CharacterVector& direction, double level);
RcppExport SEXP _tEDM_RcppDeLongAUCConfidence(SEXP casesSEXP, SEXP controlsSEXP, SEXP directionSEXP, SEXP levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type cases(casesSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type controls(controlsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector& >::type direction(directionSEXP);
    Rcpp::traits::input_parameter< double >::type level(levelSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppDeLongAUCConfidence(cases, controls, direction, level));
    return rcpp_result_gen;
END_RCPP
}
// RcppCMCTest
Rcpp::NumericVector RcppCMCTest(const Rcpp::NumericVector& cases, const Rcpp::CharacterVector& direction, double level, int num_samples);
RcppExport SEXP _tEDM_RcppCMCTest(SEXP casesSEXP, SEXP directionSEXP, SEXP levelSEXP, SEXP num_samplesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type cases(casesSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector& >::type direction(directionSEXP);
    Rcpp::traits::input_parameter< double >::type level(levelSEXP);
    Rcpp::traits::input_parameter< int >::type num_samples(num_samplesSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppCMCTest(cases, direction, level, num_samples));
    return rcpp_result_gen;
END_RCPP
}
// RcppDistance
double RcppDistance(const Rcpp::NumericVector& vec1, const Rcpp::NumericVector& vec2, bool L1norm, bool NA_rm);
RcppExport SEXP _tEDM_RcppDistance(SEXP vec1SEXP, SEXP vec2SEXP, SEXP L1normSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec1(vec1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec2(vec2SEXP);
    Rcpp::traits::input_parameter< bool >::type L1norm(L1normSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppDistance(vec1, vec2, L1norm, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppKNearestDistance
Rcpp::NumericVector RcppKNearestDistance(const Rcpp::NumericVector& vec1, int k, bool L1norm, bool NA_rm);
RcppExport SEXP _tEDM_RcppKNearestDistance(SEXP vec1SEXP, SEXP kSEXP, SEXP L1normSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec1(vec1SEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    Rcpp::traits::input_parameter< bool >::type L1norm(L1normSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppKNearestDistance(vec1, k, L1norm, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppMatDistance
Rcpp::NumericMatrix RcppMatDistance(const Rcpp::NumericMatrix& mat, bool L1norm, bool NA_rm);
RcppExport SEXP _tEDM_RcppMatDistance(SEXP matSEXP, SEXP L1normSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type mat(matSEXP);
    Rcpp::traits::input_parameter< bool >::type L1norm(L1normSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMatDistance(mat, L1norm, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppNeighborsNum
Rcpp::IntegerVector RcppNeighborsNum(const Rcpp::NumericVector& vec, const Rcpp::NumericVector& radius, bool equal, bool L1norm, bool NA_rm);
RcppExport SEXP _tEDM_RcppNeighborsNum(SEXP vecSEXP, SEXP radiusSEXP, SEXP equalSEXP, SEXP L1normSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type radius(radiusSEXP);
    Rcpp::traits::input_parameter< bool >::type equal(equalSEXP);
    Rcpp::traits::input_parameter< bool >::type L1norm(L1normSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppNeighborsNum(vec, radius, equal, L1norm, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppKNNIndice
Rcpp::IntegerVector RcppKNNIndice(const Rcpp::NumericMatrix& embedding_space, int target_idx, int k, const Rcpp::IntegerVector& lib);
RcppExport SEXP _tEDM_RcppKNNIndice(SEXP embedding_spaceSEXP, SEXP target_idxSEXP, SEXP kSEXP, SEXP libSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type embedding_space(embedding_spaceSEXP);
    Rcpp::traits::input_parameter< int >::type target_idx(target_idxSEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppKNNIndice(embedding_space, target_idx, k, lib));
    return rcpp_result_gen;
END_RCPP
}
// RcppDistKNNIndice
Rcpp::IntegerVector RcppDistKNNIndice(const Rcpp::NumericMatrix& dist_mat, int target_idx, int k, const Rcpp::IntegerVector& lib);
RcppExport SEXP _tEDM_RcppDistKNNIndice(SEXP dist_matSEXP, SEXP target_idxSEXP, SEXP kSEXP, SEXP libSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type dist_mat(dist_matSEXP);
    Rcpp::traits::input_parameter< int >::type target_idx(target_idxSEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppDistKNNIndice(dist_mat, target_idx, k, lib));
    return rcpp_result_gen;
END_RCPP
}
// RcppDistSortedIndice
Rcpp::List RcppDistSortedIndice(const Rcpp::NumericMatrix& dist_mat, const Rcpp::IntegerVector& lib, int k, bool include_self);
RcppExport SEXP _tEDM_RcppDistSortedIndice(SEXP dist_matSEXP, SEXP libSEXP, SEXP kSEXP, SEXP include_selfSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type dist_mat(dist_matSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    Rcpp::traits::input_parameter< bool >::type include_self(include_selfSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppDistSortedIndice(dist_mat, lib, k, include_self));
    return rcpp_result_gen;
END_RCPP
}
// RcppMatKNNeighbors
Rcpp::List RcppMatKNNeighbors(const Rcpp::NumericMatrix& embeddings, const Rcpp::IntegerVector& lib, int k, int threads, bool L1norm);
RcppExport SEXP _tEDM_RcppMatKNNeighbors(SEXP embeddingsSEXP, SEXP libSEXP, SEXP kSEXP, SEXP threadsSEXP, SEXP L1normSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type embeddings(embeddingsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::IntegerVector& >::type lib(libSEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    Rcpp::traits::input_parameter< bool >::type L1norm(L1normSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppMatKNNeighbors(embeddings, lib, k, threads, L1norm));
    return rcpp_result_gen;
END_RCPP
}
// RcppLinearTrendRM
Rcpp::NumericVector RcppLinearTrendRM(const Rcpp::NumericVector& vec, const Rcpp::NumericVector& xcoord, const Rcpp::NumericVector& ycoord, bool NA_rm);
RcppExport SEXP _tEDM_RcppLinearTrendRM(SEXP vecSEXP, SEXP xcoordSEXP, SEXP ycoordSEXP, SEXP NA_rmSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type vec(vecSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type xcoord(xcoordSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type ycoord(ycoordSEXP);
    Rcpp::traits::input_parameter< bool >::type NA_rm(NA_rmSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppLinearTrendRM(vec, xcoord, ycoord, NA_rm));
    return rcpp_result_gen;
END_RCPP
}
// RcppSVD
Rcpp::List RcppSVD(const Rcpp::NumericMatrix& X);
RcppExport SEXP _tEDM_RcppSVD(SEXP XSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericMatrix& >::type X(XSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppSVD(X));
    return rcpp_result_gen;
END_RCPP
}
// RcppDeLongPlacements
Rcpp::List RcppDeLongPlacements(const Rcpp::NumericVector& cases, const Rcpp::NumericVector& controls, const Rcpp::CharacterVector& direction);
RcppExport SEXP _tEDM_RcppDeLongPlacements(SEXP casesSEXP, SEXP controlsSEXP, SEXP directionSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type cases(casesSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type controls(controlsSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector& >::type direction(directionSEXP);
    rcpp_result_gen = Rcpp::wrap(RcppDeLongPlacements(cases, controls, direction));
    return rcpp_result_gen;
END_RCPP
}
// DetectMaxNumThreads
unsigned int DetectMaxNumThreads();
RcppExport SEXP _tEDM_DetectMaxNumThreads() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    rcpp_result_gen = Rcpp::wrap(DetectMaxNumThreads());
    return rcpp_result_gen;
END_RCPP
}
// OptSimplexParm
Rcpp::IntegerVector OptSimplexParm(Rcpp::NumericMatrix Emat);
RcppExport SEXP _tEDM_OptSimplexParm(SEXP EmatSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type Emat(EmatSEXP);
    rcpp_result_gen = Rcpp::wrap(OptSimplexParm(Emat));
    return rcpp_result_gen;
END_RCPP
}
// OptThetaParm
double OptThetaParm(Rcpp::NumericMatrix Thetamat);
RcppExport SEXP _tEDM_OptThetaParm(SEXP ThetamatSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type Thetamat(ThetamatSEXP);
    rcpp_result_gen = Rcpp::wrap(OptThetaParm(Thetamat));
    return rcpp_result_gen;
END_RCPP
}
// OptICparm
Rcpp::IntegerVector OptICparm(Rcpp::NumericMatrix Emat);
RcppExport SEXP _tEDM_OptICparm(SEXP EmatSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type Emat(EmatSEXP);
    rcpp_result_gen = Rcpp::wrap(OptICparm(Emat));
    return rcpp_result_gen;
END_RCPP
}
// MatNotNAIndice
Rcpp::NumericMatrix MatNotNAIndice(Rcpp::NumericMatrix mat, bool byrow);
RcppExport SEXP _tEDM_MatNotNAIndice(SEXP matSEXP, SEXP byrowSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type mat(matSEXP);
    Rcpp::traits::input_parameter< bool >::type byrow(byrowSEXP);
    rcpp_result_gen = Rcpp::wrap(MatNotNAIndice(mat, byrow));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_tEDM_RcppLogisticMap", (DL_FUNC) &_tEDM_RcppLogisticMap, 14},
    {"_tEDM_RcppEmbed", (DL_FUNC) &_tEDM_RcppEmbed, 4},
    {"_tEDM_RcppSimplexForecast", (DL_FUNC) &_tEDM_RcppSimplexForecast, 9},
    {"_tEDM_RcppSMapForecast", (DL_FUNC) &_tEDM_RcppSMapForecast, 10},
    {"_tEDM_RcppIntersectionalCardinality", (DL_FUNC) &_tEDM_RcppIntersectionalCardinality, 11},
    {"_tEDM_RcppMVE4TS", (DL_FUNC) &_tEDM_RcppMVE4TS, 12},
    {"_tEDM_RcppFNN4TS", (DL_FUNC) &_tEDM_RcppFNN4TS, 10},
    {"_tEDM_RcppSimplex4TS", (DL_FUNC) &_tEDM_RcppSimplex4TS, 10},
    {"_tEDM_RcppSMap4TS", (DL_FUNC) &_tEDM_RcppSMap4TS, 11},
    {"_tEDM_RcppMultiSimplex4TS", (DL_FUNC) &_tEDM_RcppMultiSimplex4TS, 10},
    {"_tEDM_RcppIC4TS", (DL_FUNC) &_tEDM_RcppIC4TS, 11},
    {"_tEDM_RcppCCM", (DL_FUNC) &_tEDM_RcppCCM, 15},
    {"_tEDM_RcppPCM", (DL_FUNC) &_tEDM_RcppPCM, 17},
    {"_tEDM_RcppCMC", (DL_FUNC) &_tEDM_RcppCMC, 13},
    {"_tEDM_RcppMultispatialCCM", (DL_FUNC) &_tEDM_RcppMultispatialCCM, 14},
    {"_tEDM_RcppFactorial", (DL_FUNC) &_tEDM_RcppFactorial, 1},
    {"_tEDM_RcppCombine", (DL_FUNC) &_tEDM_RcppCombine, 2},
    {"_tEDM_RcppCombn", (DL_FUNC) &_tEDM_RcppCombn, 2},
    {"_tEDM_RcppGenSubsets", (DL_FUNC) &_tEDM_RcppGenSubsets, 1},
    {"_tEDM_RcppDigamma", (DL_FUNC) &_tEDM_RcppDigamma, 1},
    {"_tEDM_RcppLog", (DL_FUNC) &_tEDM_RcppLog, 2},
    {"_tEDM_RcppMedian", (DL_FUNC) &_tEDM_RcppMedian, 2},
    {"_tEDM_RcppMean", (DL_FUNC) &_tEDM_RcppMean, 2},
    {"_tEDM_RcppMin", (DL_FUNC) &_tEDM_RcppMin, 2},
    {"_tEDM_RcppMax", (DL_FUNC) &_tEDM_RcppMax, 2},
    {"_tEDM_RcppSum", (DL_FUNC) &_tEDM_RcppSum, 2},
    {"_tEDM_RcppVariance", (DL_FUNC) &_tEDM_RcppVariance, 2},
    {"_tEDM_RcppCovariance", (DL_FUNC) &_tEDM_RcppCovariance, 3},
    {"_tEDM_RcppMAE", (DL_FUNC) &_tEDM_RcppMAE, 3},
    {"_tEDM_RcppRMSE", (DL_FUNC) &_tEDM_RcppRMSE, 3},
    {"_tEDM_RcppCumSum", (DL_FUNC) &_tEDM_RcppCumSum, 1},
    {"_tEDM_RcppAbsDiff", (DL_FUNC) &_tEDM_RcppAbsDiff, 2},
    {"_tEDM_RcppSumNormalize", (DL_FUNC) &_tEDM_RcppSumNormalize, 2},
    {"_tEDM_RcppArithmeticSeq", (DL_FUNC) &_tEDM_RcppArithmeticSeq, 3},
    {"_tEDM_RcppQuantile", (DL_FUNC) &_tEDM_RcppQuantile, 3},
    {"_tEDM_RcppPearsonCor", (DL_FUNC) &_tEDM_RcppPearsonCor, 3},
    {"_tEDM_RcppSpearmanCor", (DL_FUNC) &_tEDM_RcppSpearmanCor, 3},
    {"_tEDM_RcppKendallCor", (DL_FUNC) &_tEDM_RcppKendallCor, 3},
    {"_tEDM_RcppPartialCor", (DL_FUNC) &_tEDM_RcppPartialCor, 6},
    {"_tEDM_RcppPartialCorTrivar", (DL_FUNC) &_tEDM_RcppPartialCorTrivar, 6},
    {"_tEDM_RcppCorSignificance", (DL_FUNC) &_tEDM_RcppCorSignificance, 3},
    {"_tEDM_RcppCorConfidence", (DL_FUNC) &_tEDM_RcppCorConfidence, 4},
    {"_tEDM_RcppMeanCorSignificance", (DL_FUNC) &_tEDM_RcppMeanCorSignificance, 3},
    {"_tEDM_RcppMeanCorConfidence", (DL_FUNC) &_tEDM_RcppMeanCorConfidence, 4},
    {"_tEDM_RcppDeLongAUCConfidence", (DL_FUNC) &_tEDM_RcppDeLongAUCConfidence, 4},
    {"_tEDM_RcppCMCTest", (DL_FUNC) &_tEDM_RcppCMCTest, 4},
    {"_tEDM_RcppDistance", (DL_FUNC) &_tEDM_RcppDistance, 4},
    {"_tEDM_RcppKNearestDistance", (DL_FUNC) &_tEDM_RcppKNearestDistance, 4},
    {"_tEDM_RcppMatDistance", (DL_FUNC) &_tEDM_RcppMatDistance, 3},
    {"_tEDM_RcppNeighborsNum", (DL_FUNC) &_tEDM_RcppNeighborsNum, 5},
    {"_tEDM_RcppKNNIndice", (DL_FUNC) &_tEDM_RcppKNNIndice, 4},
    {"_tEDM_RcppDistKNNIndice", (DL_FUNC) &_tEDM_RcppDistKNNIndice, 4},
    {"_tEDM_RcppDistSortedIndice", (DL_FUNC) &_tEDM_RcppDistSortedIndice, 4},
    {"_tEDM_RcppMatKNNeighbors", (DL_FUNC) &_tEDM_RcppMatKNNeighbors, 5},
    {"_tEDM_RcppLinearTrendRM", (DL_FUNC) &_tEDM_RcppLinearTrendRM, 4},
    {"_tEDM_RcppSVD", (DL_FUNC) &_tEDM_RcppSVD, 1},
    {"_tEDM_RcppDeLongPlacements", (DL_FUNC) &_tEDM_RcppDeLongPlacements, 3},
    {"_tEDM_DetectMaxNumThreads", (DL_FUNC) &_tEDM_DetectMaxNumThreads, 0},
    {"_tEDM_OptSimplexParm", (DL_FUNC) &_tEDM_OptSimplexParm, 1},
    {"_tEDM_OptThetaParm", (DL_FUNC) &_tEDM_OptThetaParm, 1},
    {"_tEDM_OptICparm", (DL_FUNC) &_tEDM_OptICparm, 1},
    {"_tEDM_MatNotNAIndice", (DL_FUNC) &_tEDM_MatNotNAIndice, 2},
    {NULL, NULL, 0}
};

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