// 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

// R_compact_rep
SEXP R_compact_rep(int n, SEXP v);
RcppExport SEXP _rlas_R_compact_rep(SEXP nSEXP, SEXP vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< SEXP >::type v(vSEXP);
    rcpp_result_gen = Rcpp::wrap(R_compact_rep(n, v));
    return rcpp_result_gen;
END_RCPP
}
// R_is_altrep
bool R_is_altrep(SEXP x);
RcppExport SEXP _rlas_R_is_altrep(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(R_is_altrep(x));
    return rcpp_result_gen;
END_RCPP
}
// R_is_materialized
bool R_is_materialized(SEXP x);
RcppExport SEXP _rlas_R_is_materialized(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(R_is_materialized(x));
    return rcpp_result_gen;
END_RCPP
}
// R_altrep_full_class
SEXP R_altrep_full_class(SEXP x);
RcppExport SEXP _rlas_R_altrep_full_class(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(R_altrep_full_class(x));
    return rcpp_result_gen;
END_RCPP
}
// fast_countequal
int fast_countequal(IntegerVector x, int t);
RcppExport SEXP _rlas_fast_countequal(SEXP xSEXP, SEXP tSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< int >::type t(tSEXP);
    rcpp_result_gen = Rcpp::wrap(fast_countequal(x, t));
    return rcpp_result_gen;
END_RCPP
}
// fast_countbelow
int fast_countbelow(NumericVector x, double t);
RcppExport SEXP _rlas_fast_countbelow(SEXP xSEXP, SEXP tSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type t(tSEXP);
    rcpp_result_gen = Rcpp::wrap(fast_countbelow(x, t));
    return rcpp_result_gen;
END_RCPP
}
// fast_countover
int fast_countover(NumericVector x, double t);
RcppExport SEXP _rlas_fast_countover(SEXP xSEXP, SEXP tSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type t(tSEXP);
    rcpp_result_gen = Rcpp::wrap(fast_countover(x, t));
    return rcpp_result_gen;
END_RCPP
}
// fast_decimal_count
IntegerVector fast_decimal_count(NumericVector x);
RcppExport SEXP _rlas_fast_decimal_count(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(fast_decimal_count(x));
    return rcpp_result_gen;
END_RCPP
}
// C_reader
List C_reader(CharacterVector ifiles, CharacterVector ofile, CharacterVector select, CharacterVector filter, Rcpp::List polygons);
RcppExport SEXP _rlas_C_reader(SEXP ifilesSEXP, SEXP ofileSEXP, SEXP selectSEXP, SEXP filterSEXP, SEXP polygonsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< CharacterVector >::type ifiles(ifilesSEXP);
    Rcpp::traits::input_parameter< CharacterVector >::type ofile(ofileSEXP);
    Rcpp::traits::input_parameter< CharacterVector >::type select(selectSEXP);
    Rcpp::traits::input_parameter< CharacterVector >::type filter(filterSEXP);
    Rcpp::traits::input_parameter< Rcpp::List >::type polygons(polygonsSEXP);
    rcpp_result_gen = Rcpp::wrap(C_reader(ifiles, ofile, select, filter, polygons));
    return rcpp_result_gen;
END_RCPP
}
// lasheaderreader
List lasheaderreader(CharacterVector file);
RcppExport SEXP _rlas_lasheaderreader(SEXP fileSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< CharacterVector >::type file(fileSEXP);
    rcpp_result_gen = Rcpp::wrap(lasheaderreader(file));
    return rcpp_result_gen;
END_RCPP
}
// lasfilterusage
void lasfilterusage();
RcppExport SEXP _rlas_lasfilterusage() {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    lasfilterusage();
    return R_NilValue;
END_RCPP
}
// lastransformusage
void lastransformusage();
RcppExport SEXP _rlas_lastransformusage() {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    lastransformusage();
    return R_NilValue;
END_RCPP
}
// C_writer
void C_writer(CharacterVector file, List LASheader, List data);
RcppExport SEXP _rlas_C_writer(SEXP fileSEXP, SEXP LASheaderSEXP, SEXP dataSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< CharacterVector >::type file(fileSEXP);
    Rcpp::traits::input_parameter< List >::type LASheader(LASheaderSEXP);
    Rcpp::traits::input_parameter< List >::type data(dataSEXP);
    C_writer(file, LASheader, data);
    return R_NilValue;
END_RCPP
}
// laxwriter
void laxwriter(CharacterVector file, bool verbose);
RcppExport SEXP _rlas_laxwriter(SEXP fileSEXP, SEXP verboseSEXP) {
BEGIN_RCPP
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< CharacterVector >::type file(fileSEXP);
    Rcpp::traits::input_parameter< bool >::type verbose(verboseSEXP);
    laxwriter(file, verbose);
    return R_NilValue;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_rlas_R_compact_rep", (DL_FUNC) &_rlas_R_compact_rep, 2},
    {"_rlas_R_is_altrep", (DL_FUNC) &_rlas_R_is_altrep, 1},
    {"_rlas_R_is_materialized", (DL_FUNC) &_rlas_R_is_materialized, 1},
    {"_rlas_R_altrep_full_class", (DL_FUNC) &_rlas_R_altrep_full_class, 1},
    {"_rlas_fast_countequal", (DL_FUNC) &_rlas_fast_countequal, 2},
    {"_rlas_fast_countbelow", (DL_FUNC) &_rlas_fast_countbelow, 2},
    {"_rlas_fast_countover", (DL_FUNC) &_rlas_fast_countover, 2},
    {"_rlas_fast_decimal_count", (DL_FUNC) &_rlas_fast_decimal_count, 1},
    {"_rlas_C_reader", (DL_FUNC) &_rlas_C_reader, 5},
    {"_rlas_lasheaderreader", (DL_FUNC) &_rlas_lasheaderreader, 1},
    {"_rlas_lasfilterusage", (DL_FUNC) &_rlas_lasfilterusage, 0},
    {"_rlas_lastransformusage", (DL_FUNC) &_rlas_lastransformusage, 0},
    {"_rlas_C_writer", (DL_FUNC) &_rlas_C_writer, 3},
    {"_rlas_laxwriter", (DL_FUNC) &_rlas_laxwriter, 2},
    {NULL, NULL, 0}
};

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