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

#include <Rcpp.h>

using namespace Rcpp;

// deserialize_OutlierTree
SEXP deserialize_OutlierTree(Rcpp::RawVector src);
RcppExport SEXP _outliertree_deserialize_OutlierTree(SEXP srcSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::RawVector >::type src(srcSEXP);
    rcpp_result_gen = Rcpp::wrap(deserialize_OutlierTree(src));
    return rcpp_result_gen;
END_RCPP
}
// check_null_ptr_model
Rcpp::LogicalVector check_null_ptr_model(SEXP ptr_model);
RcppExport SEXP _outliertree_check_null_ptr_model(SEXP ptr_modelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type ptr_model(ptr_modelSEXP);
    rcpp_result_gen = Rcpp::wrap(check_null_ptr_model(ptr_model));
    return rcpp_result_gen;
END_RCPP
}
// fit_OutlierTree
Rcpp::List fit_OutlierTree(Rcpp::NumericVector arr_num, size_t ncols_numeric, Rcpp::IntegerVector arr_cat, size_t ncols_categ, Rcpp::IntegerVector ncat, Rcpp::IntegerVector arr_ord, size_t ncols_ord, Rcpp::IntegerVector ncat_ord, size_t nrows, Rcpp::LogicalVector cols_ignore_r, int nthreads, bool categ_as_bin, bool ord_as_bin, bool cat_bruteforce_subset, size_t max_depth, double max_perc_outliers, size_t min_size_numeric, size_t min_size_categ, double min_gain, bool follow_all, double z_norm, double z_outlier, bool return_outliers, Rcpp::ListOf<Rcpp::StringVector> cat_levels, Rcpp::ListOf<Rcpp::StringVector> ord_levels, Rcpp::StringVector colnames_num, Rcpp::StringVector colnames_cat, Rcpp::StringVector colnames_ord, Rcpp::NumericVector min_date, Rcpp::NumericVector min_ts);
RcppExport SEXP _outliertree_fit_OutlierTree(SEXP arr_numSEXP, SEXP ncols_numericSEXP, SEXP arr_catSEXP, SEXP ncols_categSEXP, SEXP ncatSEXP, SEXP arr_ordSEXP, SEXP ncols_ordSEXP, SEXP ncat_ordSEXP, SEXP nrowsSEXP, SEXP cols_ignore_rSEXP, SEXP nthreadsSEXP, SEXP categ_as_binSEXP, SEXP ord_as_binSEXP, SEXP cat_bruteforce_subsetSEXP, SEXP max_depthSEXP, SEXP max_perc_outliersSEXP, SEXP min_size_numericSEXP, SEXP min_size_categSEXP, SEXP min_gainSEXP, SEXP follow_allSEXP, SEXP z_normSEXP, SEXP z_outlierSEXP, SEXP return_outliersSEXP, SEXP cat_levelsSEXP, SEXP ord_levelsSEXP, SEXP colnames_numSEXP, SEXP colnames_catSEXP, SEXP colnames_ordSEXP, SEXP min_dateSEXP, SEXP min_tsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type arr_num(arr_numSEXP);
    Rcpp::traits::input_parameter< size_t >::type ncols_numeric(ncols_numericSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type arr_cat(arr_catSEXP);
    Rcpp::traits::input_parameter< size_t >::type ncols_categ(ncols_categSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type ncat(ncatSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type arr_ord(arr_ordSEXP);
    Rcpp::traits::input_parameter< size_t >::type ncols_ord(ncols_ordSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type ncat_ord(ncat_ordSEXP);
    Rcpp::traits::input_parameter< size_t >::type nrows(nrowsSEXP);
    Rcpp::traits::input_parameter< Rcpp::LogicalVector >::type cols_ignore_r(cols_ignore_rSEXP);
    Rcpp::traits::input_parameter< int >::type nthreads(nthreadsSEXP);
    Rcpp::traits::input_parameter< bool >::type categ_as_bin(categ_as_binSEXP);
    Rcpp::traits::input_parameter< bool >::type ord_as_bin(ord_as_binSEXP);
    Rcpp::traits::input_parameter< bool >::type cat_bruteforce_subset(cat_bruteforce_subsetSEXP);
    Rcpp::traits::input_parameter< size_t >::type max_depth(max_depthSEXP);
    Rcpp::traits::input_parameter< double >::type max_perc_outliers(max_perc_outliersSEXP);
    Rcpp::traits::input_parameter< size_t >::type min_size_numeric(min_size_numericSEXP);
    Rcpp::traits::input_parameter< size_t >::type min_size_categ(min_size_categSEXP);
    Rcpp::traits::input_parameter< double >::type min_gain(min_gainSEXP);
    Rcpp::traits::input_parameter< bool >::type follow_all(follow_allSEXP);
    Rcpp::traits::input_parameter< double >::type z_norm(z_normSEXP);
    Rcpp::traits::input_parameter< double >::type z_outlier(z_outlierSEXP);
    Rcpp::traits::input_parameter< bool >::type return_outliers(return_outliersSEXP);
    Rcpp::traits::input_parameter< Rcpp::ListOf<Rcpp::StringVector> >::type cat_levels(cat_levelsSEXP);
    Rcpp::traits::input_parameter< Rcpp::ListOf<Rcpp::StringVector> >::type ord_levels(ord_levelsSEXP);
    Rcpp::traits::input_parameter< Rcpp::StringVector >::type colnames_num(colnames_numSEXP);
    Rcpp::traits::input_parameter< Rcpp::StringVector >::type colnames_cat(colnames_catSEXP);
    Rcpp::traits::input_parameter< Rcpp::StringVector >::type colnames_ord(colnames_ordSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type min_date(min_dateSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type min_ts(min_tsSEXP);
    rcpp_result_gen = Rcpp::wrap(fit_OutlierTree(arr_num, ncols_numeric, arr_cat, ncols_categ, ncat, arr_ord, ncols_ord, ncat_ord, nrows, cols_ignore_r, nthreads, categ_as_bin, ord_as_bin, cat_bruteforce_subset, max_depth, max_perc_outliers, min_size_numeric, min_size_categ, min_gain, follow_all, z_norm, z_outlier, return_outliers, cat_levels, ord_levels, colnames_num, colnames_cat, colnames_ord, min_date, min_ts));
    return rcpp_result_gen;
END_RCPP
}
// predict_OutlierTree
Rcpp::List predict_OutlierTree(SEXP ptr_model, size_t nrows, int nthreads, Rcpp::NumericVector arr_num, Rcpp::IntegerVector arr_cat, Rcpp::IntegerVector arr_ord, Rcpp::ListOf<Rcpp::StringVector> cat_levels, Rcpp::ListOf<Rcpp::StringVector> ord_levels, Rcpp::StringVector colnames_num, Rcpp::StringVector colnames_cat, Rcpp::StringVector colnames_ord, Rcpp::NumericVector min_date, Rcpp::NumericVector min_ts);
RcppExport SEXP _outliertree_predict_OutlierTree(SEXP ptr_modelSEXP, SEXP nrowsSEXP, SEXP nthreadsSEXP, SEXP arr_numSEXP, SEXP arr_catSEXP, SEXP arr_ordSEXP, SEXP cat_levelsSEXP, SEXP ord_levelsSEXP, SEXP colnames_numSEXP, SEXP colnames_catSEXP, SEXP colnames_ordSEXP, SEXP min_dateSEXP, SEXP min_tsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type ptr_model(ptr_modelSEXP);
    Rcpp::traits::input_parameter< size_t >::type nrows(nrowsSEXP);
    Rcpp::traits::input_parameter< int >::type nthreads(nthreadsSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type arr_num(arr_numSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type arr_cat(arr_catSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type arr_ord(arr_ordSEXP);
    Rcpp::traits::input_parameter< Rcpp::ListOf<Rcpp::StringVector> >::type cat_levels(cat_levelsSEXP);
    Rcpp::traits::input_parameter< Rcpp::ListOf<Rcpp::StringVector> >::type ord_levels(ord_levelsSEXP);
    Rcpp::traits::input_parameter< Rcpp::StringVector >::type colnames_num(colnames_numSEXP);
    Rcpp::traits::input_parameter< Rcpp::StringVector >::type colnames_cat(colnames_catSEXP);
    Rcpp::traits::input_parameter< Rcpp::StringVector >::type colnames_ord(colnames_ordSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type min_date(min_dateSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type min_ts(min_tsSEXP);
    rcpp_result_gen = Rcpp::wrap(predict_OutlierTree(ptr_model, nrows, nthreads, arr_num, arr_cat, arr_ord, cat_levels, ord_levels, colnames_num, colnames_cat, colnames_ord, min_date, min_ts));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_outliertree_deserialize_OutlierTree", (DL_FUNC) &_outliertree_deserialize_OutlierTree, 1},
    {"_outliertree_check_null_ptr_model", (DL_FUNC) &_outliertree_check_null_ptr_model, 1},
    {"_outliertree_fit_OutlierTree", (DL_FUNC) &_outliertree_fit_OutlierTree, 30},
    {"_outliertree_predict_OutlierTree", (DL_FUNC) &_outliertree_predict_OutlierTree, 13},
    {NULL, NULL, 0}
};

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