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

#include <Rcpp.h>

using namespace Rcpp;

#ifdef RCPP_USE_GLOBAL_ROSTREAM
Rcpp::Rostream<true>&  Rcpp::Rcout = Rcpp::Rcpp_cout_get();
Rcpp::Rostream<false>& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get();
#endif

// stratifiedItersplits
LogicalMatrix stratifiedItersplits(int splits, IntegerVector groupsizes);
RcppExport SEXP _rapidsplithalf_stratifiedItersplits(SEXP splitsSEXP, SEXP groupsizesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type splits(splitsSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type groupsizes(groupsizesSEXP);
    rcpp_result_gen = Rcpp::wrap(stratifiedItersplits(splits, groupsizes));
    return rcpp_result_gen;
END_RCPP
}
// bootstrapWeights
IntegerMatrix bootstrapWeights(int size, int times);
RcppExport SEXP _rapidsplithalf_bootstrapWeights(SEXP sizeSEXP, SEXP timesSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type size(sizeSEXP);
    Rcpp::traits::input_parameter< int >::type times(timesSEXP);
    rcpp_result_gen = Rcpp::wrap(bootstrapWeights(size, times));
    return rcpp_result_gen;
END_RCPP
}
// corByColumns
NumericVector corByColumns(NumericMatrix x, NumericMatrix y);
RcppExport SEXP _rapidsplithalf_corByColumns(SEXP xSEXP, SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(corByColumns(x, y));
    return rcpp_result_gen;
END_RCPP
}
// corByColumns_mask
NumericVector corByColumns_mask(NumericMatrix x, NumericMatrix y, LogicalMatrix mask);
RcppExport SEXP _rapidsplithalf_corByColumns_mask(SEXP xSEXP, SEXP ySEXP, SEXP maskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type y(ySEXP);
    Rcpp::traits::input_parameter< LogicalMatrix >::type mask(maskSEXP);
    rcpp_result_gen = Rcpp::wrap(corByColumns_mask(x, y, mask));
    return rcpp_result_gen;
END_RCPP
}
// corStatsByColumns
List corStatsByColumns(NumericMatrix x, NumericMatrix y);
RcppExport SEXP _rapidsplithalf_corStatsByColumns(SEXP xSEXP, SEXP ySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type y(ySEXP);
    rcpp_result_gen = Rcpp::wrap(corStatsByColumns(x, y));
    return rcpp_result_gen;
END_RCPP
}
// colMedians
NumericVector colMedians(NumericMatrix x);
RcppExport SEXP _rapidsplithalf_colMedians(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(colMedians(x));
    return rcpp_result_gen;
END_RCPP
}
// colProds
NumericVector colProds(NumericMatrix x);
RcppExport SEXP _rapidsplithalf_colProds(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(colProds(x));
    return rcpp_result_gen;
END_RCPP
}
// colSds
NumericVector colSds(NumericMatrix x);
RcppExport SEXP _rapidsplithalf_colSds(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(colSds(x));
    return rcpp_result_gen;
END_RCPP
}
// colMediansMasked
NumericVector colMediansMasked(NumericMatrix x, LogicalMatrix mask);
RcppExport SEXP _rapidsplithalf_colMediansMasked(SEXP xSEXP, SEXP maskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< LogicalMatrix >::type mask(maskSEXP);
    rcpp_result_gen = Rcpp::wrap(colMediansMasked(x, mask));
    return rcpp_result_gen;
END_RCPP
}
// colMeansMasked
NumericVector colMeansMasked(NumericMatrix x, LogicalMatrix mask);
RcppExport SEXP _rapidsplithalf_colMeansMasked(SEXP xSEXP, SEXP maskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< LogicalMatrix >::type mask(maskSEXP);
    rcpp_result_gen = Rcpp::wrap(colMeansMasked(x, mask));
    return rcpp_result_gen;
END_RCPP
}
// colSdsMasked
NumericVector colSdsMasked(NumericMatrix x, LogicalMatrix mask);
RcppExport SEXP _rapidsplithalf_colSdsMasked(SEXP xSEXP, SEXP maskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< LogicalMatrix >::type mask(maskSEXP);
    rcpp_result_gen = Rcpp::wrap(colSdsMasked(x, mask));
    return rcpp_result_gen;
END_RCPP
}
// mediansByMask
NumericVector mediansByMask(NumericVector x, LogicalMatrix mask);
RcppExport SEXP _rapidsplithalf_mediansByMask(SEXP xSEXP, SEXP maskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< LogicalMatrix >::type mask(maskSEXP);
    rcpp_result_gen = Rcpp::wrap(mediansByMask(x, mask));
    return rcpp_result_gen;
END_RCPP
}
// meansByMask
NumericVector meansByMask(NumericVector x, LogicalMatrix mask);
RcppExport SEXP _rapidsplithalf_meansByMask(SEXP xSEXP, SEXP maskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< LogicalMatrix >::type mask(maskSEXP);
    rcpp_result_gen = Rcpp::wrap(meansByMask(x, mask));
    return rcpp_result_gen;
END_RCPP
}
// sdsByMask
NumericVector sdsByMask(NumericVector x, LogicalMatrix mask);
RcppExport SEXP _rapidsplithalf_sdsByMask(SEXP xSEXP, SEXP maskSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< LogicalMatrix >::type mask(maskSEXP);
    rcpp_result_gen = Rcpp::wrap(sdsByMask(x, mask));
    return rcpp_result_gen;
END_RCPP
}
// mediansByWeight
NumericVector mediansByWeight(NumericVector x, IntegerMatrix weights);
RcppExport SEXP _rapidsplithalf_mediansByWeight(SEXP xSEXP, SEXP weightsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type weights(weightsSEXP);
    rcpp_result_gen = Rcpp::wrap(mediansByWeight(x, weights));
    return rcpp_result_gen;
END_RCPP
}
// meansByWeight
NumericVector meansByWeight(NumericVector x, IntegerMatrix weights);
RcppExport SEXP _rapidsplithalf_meansByWeight(SEXP xSEXP, SEXP weightsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type weights(weightsSEXP);
    rcpp_result_gen = Rcpp::wrap(meansByWeight(x, weights));
    return rcpp_result_gen;
END_RCPP
}
// sdsByWeight
NumericVector sdsByWeight(NumericVector x, NumericMatrix weights);
RcppExport SEXP _rapidsplithalf_sdsByWeight(SEXP xSEXP, SEXP weightsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type weights(weightsSEXP);
    rcpp_result_gen = Rcpp::wrap(sdsByWeight(x, weights));
    return rcpp_result_gen;
END_RCPP
}
// excludeOutliersByMask
LogicalMatrix excludeOutliersByMask(NumericVector x, LogicalMatrix mask, double sdlim);
RcppExport SEXP _rapidsplithalf_excludeOutliersByMask(SEXP xSEXP, SEXP maskSEXP, SEXP sdlimSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< LogicalMatrix >::type mask(maskSEXP);
    Rcpp::traits::input_parameter< double >::type sdlim(sdlimSEXP);
    rcpp_result_gen = Rcpp::wrap(excludeOutliersByMask(x, mask, sdlim));
    return rcpp_result_gen;
END_RCPP
}
// maskOutliers
LogicalMatrix maskOutliers(NumericMatrix x, double sdlim);
RcppExport SEXP _rapidsplithalf_maskOutliers(SEXP xSEXP, SEXP sdlimSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type sdlim(sdlimSEXP);
    rcpp_result_gen = Rcpp::wrap(maskOutliers(x, sdlim));
    return rcpp_result_gen;
END_RCPP
}
// maskOutliersMasked
LogicalMatrix maskOutliersMasked(NumericMatrix x, LogicalMatrix mask, double sdlim);
RcppExport SEXP _rapidsplithalf_maskOutliersMasked(SEXP xSEXP, SEXP maskSEXP, SEXP sdlimSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< LogicalMatrix >::type mask(maskSEXP);
    Rcpp::traits::input_parameter< double >::type sdlim(sdlimSEXP);
    rcpp_result_gen = Rcpp::wrap(maskOutliersMasked(x, mask, sdlim));
    return rcpp_result_gen;
END_RCPP
}
// ReplaceErrorsFixed
NumericMatrix ReplaceErrorsFixed(NumericMatrix x, LogicalMatrix mask, LogicalVector error, double penalty);
RcppExport SEXP _rapidsplithalf_ReplaceErrorsFixed(SEXP xSEXP, SEXP maskSEXP, SEXP errorSEXP, SEXP penaltySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< LogicalMatrix >::type mask(maskSEXP);
    Rcpp::traits::input_parameter< LogicalVector >::type error(errorSEXP);
    Rcpp::traits::input_parameter< double >::type penalty(penaltySEXP);
    rcpp_result_gen = Rcpp::wrap(ReplaceErrorsFixed(x, mask, error, penalty));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_rapidsplithalf_stratifiedItersplits", (DL_FUNC) &_rapidsplithalf_stratifiedItersplits, 2},
    {"_rapidsplithalf_bootstrapWeights", (DL_FUNC) &_rapidsplithalf_bootstrapWeights, 2},
    {"_rapidsplithalf_corByColumns", (DL_FUNC) &_rapidsplithalf_corByColumns, 2},
    {"_rapidsplithalf_corByColumns_mask", (DL_FUNC) &_rapidsplithalf_corByColumns_mask, 3},
    {"_rapidsplithalf_corStatsByColumns", (DL_FUNC) &_rapidsplithalf_corStatsByColumns, 2},
    {"_rapidsplithalf_colMedians", (DL_FUNC) &_rapidsplithalf_colMedians, 1},
    {"_rapidsplithalf_colProds", (DL_FUNC) &_rapidsplithalf_colProds, 1},
    {"_rapidsplithalf_colSds", (DL_FUNC) &_rapidsplithalf_colSds, 1},
    {"_rapidsplithalf_colMediansMasked", (DL_FUNC) &_rapidsplithalf_colMediansMasked, 2},
    {"_rapidsplithalf_colMeansMasked", (DL_FUNC) &_rapidsplithalf_colMeansMasked, 2},
    {"_rapidsplithalf_colSdsMasked", (DL_FUNC) &_rapidsplithalf_colSdsMasked, 2},
    {"_rapidsplithalf_mediansByMask", (DL_FUNC) &_rapidsplithalf_mediansByMask, 2},
    {"_rapidsplithalf_meansByMask", (DL_FUNC) &_rapidsplithalf_meansByMask, 2},
    {"_rapidsplithalf_sdsByMask", (DL_FUNC) &_rapidsplithalf_sdsByMask, 2},
    {"_rapidsplithalf_mediansByWeight", (DL_FUNC) &_rapidsplithalf_mediansByWeight, 2},
    {"_rapidsplithalf_meansByWeight", (DL_FUNC) &_rapidsplithalf_meansByWeight, 2},
    {"_rapidsplithalf_sdsByWeight", (DL_FUNC) &_rapidsplithalf_sdsByWeight, 2},
    {"_rapidsplithalf_excludeOutliersByMask", (DL_FUNC) &_rapidsplithalf_excludeOutliersByMask, 3},
    {"_rapidsplithalf_maskOutliers", (DL_FUNC) &_rapidsplithalf_maskOutliers, 2},
    {"_rapidsplithalf_maskOutliersMasked", (DL_FUNC) &_rapidsplithalf_maskOutliersMasked, 3},
    {"_rapidsplithalf_ReplaceErrorsFixed", (DL_FUNC) &_rapidsplithalf_ReplaceErrorsFixed, 4},
    {NULL, NULL, 0}
};

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