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

#include <Rcpp.h>

using namespace Rcpp;

// distanceToPeakCpp
NumericVector distanceToPeakCpp(NumericVector distance, NumericVector rho);
RcppExport SEXP densityClust_distanceToPeakCpp(SEXP distanceSEXP, SEXP rhoSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type distance(distanceSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type rho(rhoSEXP);
    rcpp_result_gen = Rcpp::wrap(distanceToPeakCpp(distance, rho));
    return rcpp_result_gen;
END_RCPP
}
// findDistValueByRowColInd
NumericVector findDistValueByRowColInd(NumericVector distance, int num_row, NumericVector row_inds, NumericVector col_inds);
RcppExport SEXP densityClust_findDistValueByRowColInd(SEXP distanceSEXP, SEXP num_rowSEXP, SEXP row_indsSEXP, SEXP col_indsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type distance(distanceSEXP);
    Rcpp::traits::input_parameter< int >::type num_row(num_rowSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type row_inds(row_indsSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type col_inds(col_indsSEXP);
    rcpp_result_gen = Rcpp::wrap(findDistValueByRowColInd(distance, num_row, row_inds, col_inds));
    return rcpp_result_gen;
END_RCPP
}
// smallest_dist_rho_order_coords
List smallest_dist_rho_order_coords(NumericVector ordered_rho, NumericVector ordered_coords);
RcppExport SEXP densityClust_smallest_dist_rho_order_coords(SEXP ordered_rhoSEXP, SEXP ordered_coordsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type ordered_rho(ordered_rhoSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type ordered_coords(ordered_coordsSEXP);
    rcpp_result_gen = Rcpp::wrap(smallest_dist_rho_order_coords(ordered_rho, ordered_coords));
    return rcpp_result_gen;
END_RCPP
}
// gaussianLocalDensity
NumericVector gaussianLocalDensity(NumericVector distance, int nrow, double dc);
RcppExport SEXP densityClust_gaussianLocalDensity(SEXP distanceSEXP, SEXP nrowSEXP, SEXP dcSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type distance(distanceSEXP);
    Rcpp::traits::input_parameter< int >::type nrow(nrowSEXP);
    Rcpp::traits::input_parameter< double >::type dc(dcSEXP);
    rcpp_result_gen = Rcpp::wrap(gaussianLocalDensity(distance, nrow, dc));
    return rcpp_result_gen;
END_RCPP
}
// nonGaussianLocalDensity
NumericVector nonGaussianLocalDensity(NumericVector distance, int nrow, double dc);
RcppExport SEXP densityClust_nonGaussianLocalDensity(SEXP distanceSEXP, SEXP nrowSEXP, SEXP dcSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type distance(distanceSEXP);
    Rcpp::traits::input_parameter< int >::type nrow(nrowSEXP);
    Rcpp::traits::input_parameter< double >::type dc(dcSEXP);
    rcpp_result_gen = Rcpp::wrap(nonGaussianLocalDensity(distance, nrow, dc));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"densityClust_distanceToPeakCpp", (DL_FUNC) &densityClust_distanceToPeakCpp, 2},
    {"densityClust_findDistValueByRowColInd", (DL_FUNC) &densityClust_findDistValueByRowColInd, 4},
    {"densityClust_smallest_dist_rho_order_coords", (DL_FUNC) &densityClust_smallest_dist_rho_order_coords, 2},
    {"densityClust_gaussianLocalDensity", (DL_FUNC) &densityClust_gaussianLocalDensity, 3},
    {"densityClust_nonGaussianLocalDensity", (DL_FUNC) &densityClust_nonGaussianLocalDensity, 3},
    {NULL, NULL, 0}
};

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