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

// kneedle_increasing
double kneedle_increasing(NumericVector x, bool convex, double dt);
RcppExport SEXP _deadwood_kneedle_increasing(SEXP xSEXP, SEXP convexSEXP, SEXP dtSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< bool >::type convex(convexSEXP);
    Rcpp::traits::input_parameter< double >::type dt(dtSEXP);
    rcpp_result_gen = Rcpp::wrap(kneedle_increasing(x, convex, dt));
    return rcpp_result_gen;
END_RCPP
}
// dot_deadwood
LogicalVector dot_deadwood(NumericMatrix mst, NumericVector cut_edges, double max_contamination, double ema_dt, int max_debris_size, bool verbose);
RcppExport SEXP _deadwood_dot_deadwood(SEXP mstSEXP, SEXP cut_edgesSEXP, SEXP max_contaminationSEXP, SEXP ema_dtSEXP, SEXP max_debris_sizeSEXP, SEXP verboseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type mst(mstSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type cut_edges(cut_edgesSEXP);
    Rcpp::traits::input_parameter< double >::type max_contamination(max_contaminationSEXP);
    Rcpp::traits::input_parameter< double >::type ema_dt(ema_dtSEXP);
    Rcpp::traits::input_parameter< int >::type max_debris_size(max_debris_sizeSEXP);
    Rcpp::traits::input_parameter< bool >::type verbose(verboseSEXP);
    rcpp_result_gen = Rcpp::wrap(dot_deadwood(mst, cut_edges, max_contamination, ema_dt, max_debris_size, verbose));
    return rcpp_result_gen;
END_RCPP
}
// dot_oldmst_matrix
NumericMatrix dot_oldmst_matrix(NumericMatrix X, String distance, int M, bool cast_float32, bool verbose);
RcppExport SEXP _deadwood_dot_oldmst_matrix(SEXP XSEXP, SEXP distanceSEXP, SEXP MSEXP, SEXP cast_float32SEXP, SEXP verboseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X(XSEXP);
    Rcpp::traits::input_parameter< String >::type distance(distanceSEXP);
    Rcpp::traits::input_parameter< int >::type M(MSEXP);
    Rcpp::traits::input_parameter< bool >::type cast_float32(cast_float32SEXP);
    Rcpp::traits::input_parameter< bool >::type verbose(verboseSEXP);
    rcpp_result_gen = Rcpp::wrap(dot_oldmst_matrix(X, distance, M, cast_float32, verbose));
    return rcpp_result_gen;
END_RCPP
}
// dot_oldmst_dist
NumericMatrix dot_oldmst_dist(NumericVector d, int M, bool verbose);
RcppExport SEXP _deadwood_dot_oldmst_dist(SEXP dSEXP, SEXP MSEXP, SEXP verboseSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type d(dSEXP);
    Rcpp::traits::input_parameter< int >::type M(MSEXP);
    Rcpp::traits::input_parameter< bool >::type verbose(verboseSEXP);
    rcpp_result_gen = Rcpp::wrap(dot_oldmst_dist(d, M, verbose));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_deadwood_kneedle_increasing", (DL_FUNC) &_deadwood_kneedle_increasing, 3},
    {"_deadwood_dot_deadwood", (DL_FUNC) &_deadwood_dot_deadwood, 6},
    {"_deadwood_dot_oldmst_matrix", (DL_FUNC) &_deadwood_dot_oldmst_matrix, 5},
    {"_deadwood_dot_oldmst_dist", (DL_FUNC) &_deadwood_dot_oldmst_dist, 3},
    {NULL, NULL, 0}
};

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