// Generated by cpp11: do not edit by hand
// clang-format off


#include "cpp11/declarations.hpp"
#include <R_ext/Visibility.h>

// distanceToPeak.cpp
cpp11::writable::doubles distanceToPeakCpp(cpp11::doubles distance, cpp11::doubles rho);
extern "C" SEXP _densityClust_distanceToPeakCpp(SEXP distance, SEXP rho) {
  BEGIN_CPP11
    return cpp11::as_sexp(distanceToPeakCpp(cpp11::as_cpp<cpp11::decay_t<cpp11::doubles>>(distance), cpp11::as_cpp<cpp11::decay_t<cpp11::doubles>>(rho)));
  END_CPP11
}
// findDistValueByRowColInd.cpp
cpp11::writable::doubles findDistValueByRowColInd(cpp11::doubles distance, int num_row, cpp11::integers row_inds, cpp11::integers col_inds);
extern "C" SEXP _densityClust_findDistValueByRowColInd(SEXP distance, SEXP num_row, SEXP row_inds, SEXP col_inds) {
  BEGIN_CPP11
    return cpp11::as_sexp(findDistValueByRowColInd(cpp11::as_cpp<cpp11::decay_t<cpp11::doubles>>(distance), cpp11::as_cpp<cpp11::decay_t<int>>(num_row), cpp11::as_cpp<cpp11::decay_t<cpp11::integers>>(row_inds), cpp11::as_cpp<cpp11::decay_t<cpp11::integers>>(col_inds)));
  END_CPP11
}
// findDistValueByRowColInd.cpp
cpp11::writable::list smallest_dist_rho_order_coords(cpp11::doubles ordered_rho, cpp11::doubles ordered_coords);
extern "C" SEXP _densityClust_smallest_dist_rho_order_coords(SEXP ordered_rho, SEXP ordered_coords) {
  BEGIN_CPP11
    return cpp11::as_sexp(smallest_dist_rho_order_coords(cpp11::as_cpp<cpp11::decay_t<cpp11::doubles>>(ordered_rho), cpp11::as_cpp<cpp11::decay_t<cpp11::doubles>>(ordered_coords)));
  END_CPP11
}
// localDensity.cpp
cpp11::writable::doubles gaussianLocalDensity(cpp11::doubles distance, int nrow, double dc);
extern "C" SEXP _densityClust_gaussianLocalDensity(SEXP distance, SEXP nrow, SEXP dc) {
  BEGIN_CPP11
    return cpp11::as_sexp(gaussianLocalDensity(cpp11::as_cpp<cpp11::decay_t<cpp11::doubles>>(distance), cpp11::as_cpp<cpp11::decay_t<int>>(nrow), cpp11::as_cpp<cpp11::decay_t<double>>(dc)));
  END_CPP11
}
// localDensity.cpp
cpp11::writable::doubles nonGaussianLocalDensity(cpp11::doubles distance, int nrow, double dc);
extern "C" SEXP _densityClust_nonGaussianLocalDensity(SEXP distance, SEXP nrow, SEXP dc) {
  BEGIN_CPP11
    return cpp11::as_sexp(nonGaussianLocalDensity(cpp11::as_cpp<cpp11::decay_t<cpp11::doubles>>(distance), cpp11::as_cpp<cpp11::decay_t<int>>(nrow), cpp11::as_cpp<cpp11::decay_t<double>>(dc)));
  END_CPP11
}

extern "C" {
static const R_CallMethodDef CallEntries[] = {
    {"_densityClust_distanceToPeakCpp",              (DL_FUNC) &_densityClust_distanceToPeakCpp,              2},
    {"_densityClust_findDistValueByRowColInd",       (DL_FUNC) &_densityClust_findDistValueByRowColInd,       4},
    {"_densityClust_gaussianLocalDensity",           (DL_FUNC) &_densityClust_gaussianLocalDensity,           3},
    {"_densityClust_nonGaussianLocalDensity",        (DL_FUNC) &_densityClust_nonGaussianLocalDensity,        3},
    {"_densityClust_smallest_dist_rho_order_coords", (DL_FUNC) &_densityClust_smallest_dist_rho_order_coords, 2},
    {NULL, NULL, 0}
};
}

extern "C" attribute_visible void R_init_densityClust(DllInfo* dll){
  R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
  R_useDynamicSymbols(dll, FALSE);
  R_forceSymbols(dll, TRUE);
}
