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

#include <RcppEigen.h>
#include <Rcpp.h>

using namespace Rcpp;

// row_mean_dgcmatrix
NumericVector row_mean_dgcmatrix(NumericVector x, IntegerVector i, int rows, int cols);
RcppExport SEXP _sctransform_row_mean_dgcmatrix(SEXP xSEXP, SEXP iSEXP, SEXP rowsSEXP, SEXP colsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type i(iSEXP);
    Rcpp::traits::input_parameter< int >::type rows(rowsSEXP);
    Rcpp::traits::input_parameter< int >::type cols(colsSEXP);
    rcpp_result_gen = Rcpp::wrap(row_mean_dgcmatrix(x, i, rows, cols));
    return rcpp_result_gen;
END_RCPP
}
// row_gmean_dgcmatrix
NumericVector row_gmean_dgcmatrix(NumericVector x, IntegerVector i, int rows, int cols, double eps);
RcppExport SEXP _sctransform_row_gmean_dgcmatrix(SEXP xSEXP, SEXP iSEXP, SEXP rowsSEXP, SEXP colsSEXP, SEXP epsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type i(iSEXP);
    Rcpp::traits::input_parameter< int >::type rows(rowsSEXP);
    Rcpp::traits::input_parameter< int >::type cols(colsSEXP);
    Rcpp::traits::input_parameter< double >::type eps(epsSEXP);
    rcpp_result_gen = Rcpp::wrap(row_gmean_dgcmatrix(x, i, rows, cols, eps));
    return rcpp_result_gen;
END_RCPP
}
// row_var_dgcmatrix
NumericVector row_var_dgcmatrix(NumericVector x, IntegerVector i, int rows, int cols);
RcppExport SEXP _sctransform_row_var_dgcmatrix(SEXP xSEXP, SEXP iSEXP, SEXP rowsSEXP, SEXP colsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type i(iSEXP);
    Rcpp::traits::input_parameter< int >::type rows(rowsSEXP);
    Rcpp::traits::input_parameter< int >::type cols(colsSEXP);
    rcpp_result_gen = Rcpp::wrap(row_var_dgcmatrix(x, i, rows, cols));
    return rcpp_result_gen;
END_RCPP
}
// row_var_dense_d
NumericVector row_var_dense_d(Eigen::Map<Eigen::MatrixXd> x);
RcppExport SEXP _sctransform_row_var_dense_d(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::MatrixXd> >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(row_var_dense_d(x));
    return rcpp_result_gen;
END_RCPP
}
// row_var_dense_i
NumericVector row_var_dense_i(Eigen::Map<Eigen::MatrixXi> x);
RcppExport SEXP _sctransform_row_var_dense_i(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::MatrixXi> >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(row_var_dense_i(x));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_sctransform_row_mean_dgcmatrix", (DL_FUNC) &_sctransform_row_mean_dgcmatrix, 4},
    {"_sctransform_row_gmean_dgcmatrix", (DL_FUNC) &_sctransform_row_gmean_dgcmatrix, 5},
    {"_sctransform_row_var_dgcmatrix", (DL_FUNC) &_sctransform_row_var_dgcmatrix, 4},
    {"_sctransform_row_var_dense_d", (DL_FUNC) &_sctransform_row_var_dense_d, 1},
    {"_sctransform_row_var_dense_i", (DL_FUNC) &_sctransform_row_var_dense_i, 1},
    {NULL, NULL, 0}
};

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