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

#include <Rcpp.h>

using namespace Rcpp;

// myDist
NumericVector myDist(NumericVector cell_i, NumericVector proj_i, NumericVector nn_i, String distance_metric, String similarity_metric, float distance_weight);
RcppExport SEXP _veloviz_myDist(SEXP cell_iSEXP, SEXP proj_iSEXP, SEXP nn_iSEXP, SEXP distance_metricSEXP, SEXP similarity_metricSEXP, SEXP distance_weightSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type cell_i(cell_iSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type proj_i(proj_iSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type nn_i(nn_iSEXP);
    Rcpp::traits::input_parameter< String >::type distance_metric(distance_metricSEXP);
    Rcpp::traits::input_parameter< String >::type similarity_metric(similarity_metricSEXP);
    Rcpp::traits::input_parameter< float >::type distance_weight(distance_weightSEXP);
    rcpp_result_gen = Rcpp::wrap(myDist(cell_i, proj_i, nn_i, distance_metric, similarity_metric, distance_weight));
    return rcpp_result_gen;
END_RCPP
}
// pwiseDists
NumericMatrix pwiseDists(NumericVector cell_i, NumericVector proj_i, NumericMatrix obs_exc_i, String distance_metric, String similarity_metric, float distance_weight);
RcppExport SEXP _veloviz_pwiseDists(SEXP cell_iSEXP, SEXP proj_iSEXP, SEXP obs_exc_iSEXP, SEXP distance_metricSEXP, SEXP similarity_metricSEXP, SEXP distance_weightSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type cell_i(cell_iSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type proj_i(proj_iSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type obs_exc_i(obs_exc_iSEXP);
    Rcpp::traits::input_parameter< String >::type distance_metric(distance_metricSEXP);
    Rcpp::traits::input_parameter< String >::type similarity_metric(similarity_metricSEXP);
    Rcpp::traits::input_parameter< float >::type distance_weight(distance_weightSEXP);
    rcpp_result_gen = Rcpp::wrap(pwiseDists(cell_i, proj_i, obs_exc_i, distance_metric, similarity_metric, distance_weight));
    return rcpp_result_gen;
END_RCPP
}
// pwiseCors
NumericMatrix pwiseCors(NumericMatrix deltaExp, NumericMatrix neighborIdx, int nNeighbors);
RcppExport SEXP _veloviz_pwiseCors(SEXP deltaExpSEXP, SEXP neighborIdxSEXP, SEXP nNeighborsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type deltaExp(deltaExpSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type neighborIdx(neighborIdxSEXP);
    Rcpp::traits::input_parameter< int >::type nNeighbors(nNeighborsSEXP);
    rcpp_result_gen = Rcpp::wrap(pwiseCors(deltaExp, neighborIdx, nNeighbors));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_veloviz_myDist", (DL_FUNC) &_veloviz_myDist, 6},
    {"_veloviz_pwiseDists", (DL_FUNC) &_veloviz_pwiseDists, 6},
    {"_veloviz_pwiseCors", (DL_FUNC) &_veloviz_pwiseCors, 3},
    {NULL, NULL, 0}
};

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