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

#include <Rcpp.h>

using namespace Rcpp;

// fine_tune_label_de
Rcpp::List fine_tune_label_de(Rcpp::RObject Exprs, Rcpp::NumericMatrix scores, Rcpp::List References, double quantile, double tune_thresh, Rcpp::List marker_genes);
RcppExport SEXP _SingleR_fine_tune_label_de(SEXP ExprsSEXP, SEXP scoresSEXP, SEXP ReferencesSEXP, SEXP quantileSEXP, SEXP tune_threshSEXP, SEXP marker_genesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< Rcpp::RObject >::type Exprs(ExprsSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type scores(scoresSEXP);
    Rcpp::traits::input_parameter< Rcpp::List >::type References(ReferencesSEXP);
    Rcpp::traits::input_parameter< double >::type quantile(quantileSEXP);
    Rcpp::traits::input_parameter< double >::type tune_thresh(tune_threshSEXP);
    Rcpp::traits::input_parameter< Rcpp::List >::type marker_genes(marker_genesSEXP);
    rcpp_result_gen = Rcpp::wrap(fine_tune_label_de(Exprs, scores, References, quantile, tune_thresh, marker_genes));
    return rcpp_result_gen;
END_RCPP
}
// fine_tune_label_sd
Rcpp::List fine_tune_label_sd(SEXP Exprs, Rcpp::NumericMatrix scores, Rcpp::List References, double quantile, double tune_thresh, Rcpp::NumericMatrix median_mat, double sd_thresh);
RcppExport SEXP _SingleR_fine_tune_label_sd(SEXP ExprsSEXP, SEXP scoresSEXP, SEXP ReferencesSEXP, SEXP quantileSEXP, SEXP tune_threshSEXP, SEXP median_matSEXP, SEXP sd_threshSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< SEXP >::type Exprs(ExprsSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type scores(scoresSEXP);
    Rcpp::traits::input_parameter< Rcpp::List >::type References(ReferencesSEXP);
    Rcpp::traits::input_parameter< double >::type quantile(quantileSEXP);
    Rcpp::traits::input_parameter< double >::type tune_thresh(tune_threshSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericMatrix >::type median_mat(median_matSEXP);
    Rcpp::traits::input_parameter< double >::type sd_thresh(sd_threshSEXP);
    rcpp_result_gen = Rcpp::wrap(fine_tune_label_sd(Exprs, scores, References, quantile, tune_thresh, median_mat, sd_thresh));
    return rcpp_result_gen;
END_RCPP
}
// recompute_scores
Rcpp::RObject recompute_scores(Rcpp::List Groups, Rcpp::RObject Exprs, Rcpp::IntegerMatrix Labels, Rcpp::List References, Rcpp::List Genes, double quantile);
RcppExport SEXP _SingleR_recompute_scores(SEXP GroupsSEXP, SEXP ExprsSEXP, SEXP LabelsSEXP, SEXP ReferencesSEXP, SEXP GenesSEXP, SEXP quantileSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::traits::input_parameter< Rcpp::List >::type Groups(GroupsSEXP);
    Rcpp::traits::input_parameter< Rcpp::RObject >::type Exprs(ExprsSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerMatrix >::type Labels(LabelsSEXP);
    Rcpp::traits::input_parameter< Rcpp::List >::type References(ReferencesSEXP);
    Rcpp::traits::input_parameter< Rcpp::List >::type Genes(GenesSEXP);
    Rcpp::traits::input_parameter< double >::type quantile(quantileSEXP);
    rcpp_result_gen = Rcpp::wrap(recompute_scores(Groups, Exprs, Labels, References, Genes, quantile));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_SingleR_fine_tune_label_de", (DL_FUNC) &_SingleR_fine_tune_label_de, 6},
    {"_SingleR_fine_tune_label_sd", (DL_FUNC) &_SingleR_fine_tune_label_sd, 7},
    {"_SingleR_recompute_scores", (DL_FUNC) &_SingleR_recompute_scores, 6},
    {NULL, NULL, 0}
};

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