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

// duration_from_string_impl
Rcpp::NumericVector duration_from_string_impl(Rcpp::CharacterVector str);
RcppExport SEXP _nanotime_duration_from_string_impl(SEXP strSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type str(strSEXP);
    rcpp_result_gen = Rcpp::wrap(duration_from_string_impl(str));
    return rcpp_result_gen;
END_RCPP
}
// duration_to_string_impl
Rcpp::CharacterVector duration_to_string_impl(Rcpp::NumericVector dur);
RcppExport SEXP _nanotime_duration_to_string_impl(SEXP durSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type dur(durSEXP);
    rcpp_result_gen = Rcpp::wrap(duration_to_string_impl(dur));
    return rcpp_result_gen;
END_RCPP
}
// duration_is_na_impl
Rcpp::LogicalVector duration_is_na_impl(Rcpp::NumericVector dur);
RcppExport SEXP _nanotime_duration_is_na_impl(SEXP durSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type dur(durSEXP);
    rcpp_result_gen = Rcpp::wrap(duration_is_na_impl(dur));
    return rcpp_result_gen;
END_RCPP
}
// make_duration_impl
Rcpp::NumericVector make_duration_impl(const Rcpp::NumericVector h_nv, const Rcpp::NumericVector m_nv, const Rcpp::NumericVector s_nv, const Rcpp::NumericVector n_nv);
RcppExport SEXP _nanotime_make_duration_impl(SEXP h_nvSEXP, SEXP m_nvSEXP, SEXP s_nvSEXP, SEXP n_nvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type h_nv(h_nvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type m_nv(m_nvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type s_nv(s_nvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type n_nv(n_nvSEXP);
    rcpp_result_gen = Rcpp::wrap(make_duration_impl(h_nv, m_nv, s_nv, n_nv));
    return rcpp_result_gen;
END_RCPP
}
// nanoduration_subset_numeric_impl
Rcpp::NumericVector nanoduration_subset_numeric_impl(const Rcpp::NumericVector& v, const Rcpp::NumericVector& idx);
RcppExport SEXP _nanotime_nanoduration_subset_numeric_impl(SEXP vSEXP, SEXP idxSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type v(vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type idx(idxSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoduration_subset_numeric_impl(v, idx));
    return rcpp_result_gen;
END_RCPP
}
// nanoduration_subset_logical_impl
Rcpp::NumericVector nanoduration_subset_logical_impl(const Rcpp::NumericVector& v, const Rcpp::LogicalVector& idx_p);
RcppExport SEXP _nanotime_nanoduration_subset_logical_impl(SEXP vSEXP, SEXP idx_pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type v(vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::LogicalVector& >::type idx_p(idx_pSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoduration_subset_logical_impl(v, idx_p));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_intersect_idx_time_interval_impl
Rcpp::List nanoival_intersect_idx_time_interval_impl(const Rcpp::NumericVector nv1, const Rcpp::ComplexVector nv2);
RcppExport SEXP _nanotime_nanoival_intersect_idx_time_interval_impl(SEXP nv1SEXP, SEXP nv2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type nv1(nv1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nv2(nv2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_intersect_idx_time_interval_impl(nv1, nv2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_intersect_idx_time_interval_logical_impl
Rcpp::LogicalVector nanoival_intersect_idx_time_interval_logical_impl(const Rcpp::NumericVector nv1, const Rcpp::ComplexVector nv2);
RcppExport SEXP _nanotime_nanoival_intersect_idx_time_interval_logical_impl(SEXP nv1SEXP, SEXP nv2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type nv1(nv1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nv2(nv2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_intersect_idx_time_interval_logical_impl(nv1, nv2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_intersect_time_interval_impl
Rcpp::S4 nanoival_intersect_time_interval_impl(const Rcpp::NumericVector nv1, const Rcpp::ComplexVector nv2);
RcppExport SEXP _nanotime_nanoival_intersect_time_interval_impl(SEXP nv1SEXP, SEXP nv2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type nv1(nv1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nv2(nv2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_intersect_time_interval_impl(nv1, nv2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_setdiff_time_interval_impl
Rcpp::NumericVector nanoival_setdiff_time_interval_impl(const Rcpp::NumericVector nv1, const Rcpp::ComplexVector nv2);
RcppExport SEXP _nanotime_nanoival_setdiff_time_interval_impl(SEXP nv1SEXP, SEXP nv2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type nv1(nv1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nv2(nv2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_setdiff_time_interval_impl(nv1, nv2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_union_impl
Rcpp::ComplexVector nanoival_union_impl(const Rcpp::ComplexVector nv1, const Rcpp::ComplexVector nv2);
RcppExport SEXP _nanotime_nanoival_union_impl(SEXP nv1SEXP, SEXP nv2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nv1(nv1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nv2(nv2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_union_impl(nv1, nv2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_intersect_impl
Rcpp::ComplexVector nanoival_intersect_impl(const Rcpp::ComplexVector nv1, const Rcpp::ComplexVector nv2);
RcppExport SEXP _nanotime_nanoival_intersect_impl(SEXP nv1SEXP, SEXP nv2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nv1(nv1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nv2(nv2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_intersect_impl(nv1, nv2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_setdiff_impl
Rcpp::ComplexVector nanoival_setdiff_impl(const Rcpp::ComplexVector nv1, const Rcpp::ComplexVector nv2);
RcppExport SEXP _nanotime_nanoival_setdiff_impl(SEXP nv1SEXP, SEXP nv2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nv1(nv1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nv2(nv2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_setdiff_impl(nv1, nv2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_is_unsorted_impl
bool nanoival_is_unsorted_impl(const Rcpp::ComplexVector nvec, const Rcpp::LogicalVector strictlyvec);
RcppExport SEXP _nanotime_nanoival_is_unsorted_impl(SEXP nvecSEXP, SEXP strictlyvecSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nvec(nvecSEXP);
    Rcpp::traits::input_parameter< const Rcpp::LogicalVector >::type strictlyvec(strictlyvecSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_is_unsorted_impl(nvec, strictlyvec));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_sort_impl
const Rcpp::ComplexVector nanoival_sort_impl(const Rcpp::ComplexVector nvec, const Rcpp::LogicalVector decreasingvec);
RcppExport SEXP _nanotime_nanoival_sort_impl(SEXP nvecSEXP, SEXP decreasingvecSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nvec(nvecSEXP);
    Rcpp::traits::input_parameter< const Rcpp::LogicalVector >::type decreasingvec(decreasingvecSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_sort_impl(nvec, decreasingvec));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_sort_impl2
const Rcpp::ComplexVector nanoival_sort_impl2(const Rcpp::ComplexVector nvec, bool decreasing);
RcppExport SEXP _nanotime_nanoival_sort_impl2(SEXP nvecSEXP, SEXP decreasingSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type nvec(nvecSEXP);
    Rcpp::traits::input_parameter< bool >::type decreasing(decreasingSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_sort_impl2(nvec, decreasing));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_lt_impl
Rcpp::LogicalVector nanoival_lt_impl(const Rcpp::ComplexVector n1, const Rcpp::ComplexVector n2);
RcppExport SEXP _nanotime_nanoival_lt_impl(SEXP n1SEXP, SEXP n2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n1(n1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n2(n2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_lt_impl(n1, n2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_le_impl
Rcpp::LogicalVector nanoival_le_impl(const Rcpp::ComplexVector n1, const Rcpp::ComplexVector n2);
RcppExport SEXP _nanotime_nanoival_le_impl(SEXP n1SEXP, SEXP n2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n1(n1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n2(n2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_le_impl(n1, n2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_gt_impl
Rcpp::LogicalVector nanoival_gt_impl(const Rcpp::ComplexVector n1, const Rcpp::ComplexVector n2);
RcppExport SEXP _nanotime_nanoival_gt_impl(SEXP n1SEXP, SEXP n2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n1(n1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n2(n2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_gt_impl(n1, n2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_ge_impl
Rcpp::LogicalVector nanoival_ge_impl(const Rcpp::ComplexVector n1, const Rcpp::ComplexVector n2);
RcppExport SEXP _nanotime_nanoival_ge_impl(SEXP n1SEXP, SEXP n2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n1(n1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n2(n2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_ge_impl(n1, n2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_eq_impl
Rcpp::LogicalVector nanoival_eq_impl(const Rcpp::ComplexVector n1, const Rcpp::ComplexVector n2);
RcppExport SEXP _nanotime_nanoival_eq_impl(SEXP n1SEXP, SEXP n2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n1(n1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n2(n2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_eq_impl(n1, n2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_ne_impl
Rcpp::LogicalVector nanoival_ne_impl(Rcpp::ComplexVector n1, Rcpp::ComplexVector n2);
RcppExport SEXP _nanotime_nanoival_ne_impl(SEXP n1SEXP, SEXP n2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::ComplexVector >::type n1(n1SEXP);
    Rcpp::traits::input_parameter< Rcpp::ComplexVector >::type n2(n2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_ne_impl(n1, n2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_plus_impl
Rcpp::ComplexVector nanoival_plus_impl(const Rcpp::ComplexVector n1, const Rcpp::NumericVector n2);
RcppExport SEXP _nanotime_nanoival_plus_impl(SEXP n1SEXP, SEXP n2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n1(n1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type n2(n2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_plus_impl(n1, n2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_minus_impl
Rcpp::ComplexVector nanoival_minus_impl(const Rcpp::ComplexVector n1, const Rcpp::NumericVector n2);
RcppExport SEXP _nanotime_nanoival_minus_impl(SEXP n1SEXP, SEXP n2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type n1(n1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type n2(n2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_minus_impl(n1, n2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_setdiff_idx_time_interval_impl
Rcpp::NumericVector nanoival_setdiff_idx_time_interval_impl(const Rcpp::NumericVector nv1, const Rcpp::ComplexVector cv2);
RcppExport SEXP _nanotime_nanoival_setdiff_idx_time_interval_impl(SEXP nv1SEXP, SEXP cv2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type nv1(nv1SEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type cv2(cv2SEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_setdiff_idx_time_interval_impl(nv1, cv2));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_new_impl
Rcpp::S4 nanoival_new_impl(const Rcpp::NumericVector sv, const Rcpp::NumericVector ev, const Rcpp::LogicalVector sopenv, const Rcpp::LogicalVector eopenv);
RcppExport SEXP _nanotime_nanoival_new_impl(SEXP svSEXP, SEXP evSEXP, SEXP sopenvSEXP, SEXP eopenvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type sv(svSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type ev(evSEXP);
    Rcpp::traits::input_parameter< const Rcpp::LogicalVector >::type sopenv(sopenvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::LogicalVector >::type eopenv(eopenvSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_new_impl(sv, ev, sopenv, eopenv));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_get_start_impl
Rcpp::NumericVector nanoival_get_start_impl(const Rcpp::ComplexVector cv);
RcppExport SEXP _nanotime_nanoival_get_start_impl(SEXP cvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type cv(cvSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_get_start_impl(cv));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_get_end_impl
Rcpp::NumericVector nanoival_get_end_impl(const Rcpp::ComplexVector cv);
RcppExport SEXP _nanotime_nanoival_get_end_impl(SEXP cvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type cv(cvSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_get_end_impl(cv));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_get_sopen_impl
Rcpp::LogicalVector nanoival_get_sopen_impl(const Rcpp::ComplexVector cv);
RcppExport SEXP _nanotime_nanoival_get_sopen_impl(SEXP cvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type cv(cvSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_get_sopen_impl(cv));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_get_eopen_impl
Rcpp::LogicalVector nanoival_get_eopen_impl(const Rcpp::ComplexVector cv);
RcppExport SEXP _nanotime_nanoival_get_eopen_impl(SEXP cvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type cv(cvSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_get_eopen_impl(cv));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_isna_impl
Rcpp::LogicalVector nanoival_isna_impl(const Rcpp::ComplexVector cv);
RcppExport SEXP _nanotime_nanoival_isna_impl(SEXP cvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type cv(cvSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_isna_impl(cv));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_make_impl
Rcpp::ComplexVector nanoival_make_impl(const Rcpp::CharacterVector nt_v, const Rcpp::CharacterVector tz_v);
RcppExport SEXP _nanotime_nanoival_make_impl(SEXP nt_vSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type nt_v(nt_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_make_impl(nt_v, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_subset_numeric_impl
Rcpp::ComplexVector nanoival_subset_numeric_impl(const Rcpp::ComplexVector& v, const Rcpp::NumericVector& idx);
RcppExport SEXP _nanotime_nanoival_subset_numeric_impl(SEXP vSEXP, SEXP idxSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector& >::type v(vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type idx(idxSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_subset_numeric_impl(v, idx));
    return rcpp_result_gen;
END_RCPP
}
// nanoival_subset_logical_impl
Rcpp::ComplexVector nanoival_subset_logical_impl(const Rcpp::ComplexVector& v, const Rcpp::LogicalVector& idx_p);
RcppExport SEXP _nanotime_nanoival_subset_logical_impl(SEXP vSEXP, SEXP idx_pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector& >::type v(vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::LogicalVector& >::type idx_p(idx_pSEXP);
    rcpp_result_gen = Rcpp::wrap(nanoival_subset_logical_impl(v, idx_p));
    return rcpp_result_gen;
END_RCPP
}
// nanotime_wday_impl
Rcpp::IntegerVector nanotime_wday_impl(const Rcpp::NumericVector tm_v, const Rcpp::CharacterVector tz_v);
RcppExport SEXP _nanotime_nanotime_wday_impl(SEXP tm_vSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type tm_v(tm_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(nanotime_wday_impl(tm_v, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// nanotime_mday_impl
Rcpp::IntegerVector nanotime_mday_impl(const Rcpp::NumericVector tm_v, const Rcpp::CharacterVector tz_v);
RcppExport SEXP _nanotime_nanotime_mday_impl(SEXP tm_vSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type tm_v(tm_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(nanotime_mday_impl(tm_v, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// nanotime_month_impl
Rcpp::IntegerVector nanotime_month_impl(const Rcpp::NumericVector tm_v, const Rcpp::CharacterVector tz_v);
RcppExport SEXP _nanotime_nanotime_month_impl(SEXP tm_vSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type tm_v(tm_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(nanotime_month_impl(tm_v, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// nanotime_year_impl
Rcpp::IntegerVector nanotime_year_impl(const Rcpp::NumericVector tm_v, const Rcpp::CharacterVector tz_v);
RcppExport SEXP _nanotime_nanotime_year_impl(SEXP tm_vSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type tm_v(tm_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(nanotime_year_impl(tm_v, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// nanotime_make_impl
Rcpp::NumericVector nanotime_make_impl(const Rcpp::CharacterVector nt_v, const Rcpp::CharacterVector tz_v);
RcppExport SEXP _nanotime_nanotime_make_impl(SEXP nt_vSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type nt_v(nt_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(nanotime_make_impl(nt_v, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// nanotime_subset_numeric_impl
Rcpp::NumericVector nanotime_subset_numeric_impl(const Rcpp::NumericVector& v, const Rcpp::NumericVector& idx);
RcppExport SEXP _nanotime_nanotime_subset_numeric_impl(SEXP vSEXP, SEXP idxSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type v(vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type idx(idxSEXP);
    rcpp_result_gen = Rcpp::wrap(nanotime_subset_numeric_impl(v, idx));
    return rcpp_result_gen;
END_RCPP
}
// nanotime_subset_logical_impl
Rcpp::NumericVector nanotime_subset_logical_impl(const Rcpp::NumericVector& v, const Rcpp::LogicalVector& idx_p);
RcppExport SEXP _nanotime_nanotime_subset_logical_impl(SEXP vSEXP, SEXP idx_pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type v(vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::LogicalVector& >::type idx_p(idx_pSEXP);
    rcpp_result_gen = Rcpp::wrap(nanotime_subset_logical_impl(v, idx_p));
    return rcpp_result_gen;
END_RCPP
}
// period_from_string_impl
Rcpp::ComplexVector period_from_string_impl(Rcpp::CharacterVector str);
RcppExport SEXP _nanotime_period_from_string_impl(SEXP strSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type str(strSEXP);
    rcpp_result_gen = Rcpp::wrap(period_from_string_impl(str));
    return rcpp_result_gen;
END_RCPP
}
// period_from_parts_impl
Rcpp::ComplexVector period_from_parts_impl(Rcpp::IntegerVector months_v, Rcpp::IntegerVector days_v, Rcpp::NumericVector dur_v);
RcppExport SEXP _nanotime_period_from_parts_impl(SEXP months_vSEXP, SEXP days_vSEXP, SEXP dur_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type months_v(months_vSEXP);
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type days_v(days_vSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type dur_v(dur_vSEXP);
    rcpp_result_gen = Rcpp::wrap(period_from_parts_impl(months_v, days_v, dur_v));
    return rcpp_result_gen;
END_RCPP
}
// period_to_string_impl
Rcpp::CharacterVector period_to_string_impl(Rcpp::ComplexVector prd);
RcppExport SEXP _nanotime_period_to_string_impl(SEXP prdSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::ComplexVector >::type prd(prdSEXP);
    rcpp_result_gen = Rcpp::wrap(period_to_string_impl(prd));
    return rcpp_result_gen;
END_RCPP
}
// period_from_integer64_impl
Rcpp::ComplexVector period_from_integer64_impl(Rcpp::NumericVector i64);
RcppExport SEXP _nanotime_period_from_integer64_impl(SEXP i64SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type i64(i64SEXP);
    rcpp_result_gen = Rcpp::wrap(period_from_integer64_impl(i64));
    return rcpp_result_gen;
END_RCPP
}
// period_from_integer_impl
Rcpp::ComplexVector period_from_integer_impl(Rcpp::IntegerVector iint);
RcppExport SEXP _nanotime_period_from_integer_impl(SEXP iintSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type iint(iintSEXP);
    rcpp_result_gen = Rcpp::wrap(period_from_integer_impl(iint));
    return rcpp_result_gen;
END_RCPP
}
// period_from_double_impl
Rcpp::ComplexVector period_from_double_impl(Rcpp::NumericVector dbl);
RcppExport SEXP _nanotime_period_from_double_impl(SEXP dblSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type dbl(dblSEXP);
    rcpp_result_gen = Rcpp::wrap(period_from_double_impl(dbl));
    return rcpp_result_gen;
END_RCPP
}
// plus_period_period_impl
Rcpp::ComplexVector plus_period_period_impl(const Rcpp::ComplexVector e1_nv, const Rcpp::ComplexVector e2_nv);
RcppExport SEXP _nanotime_plus_period_period_impl(SEXP e1_nvSEXP, SEXP e2_nvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_nv(e1_nvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e2_nv(e2_nvSEXP);
    rcpp_result_gen = Rcpp::wrap(plus_period_period_impl(e1_nv, e2_nv));
    return rcpp_result_gen;
END_RCPP
}
// minus_period_impl
Rcpp::ComplexVector minus_period_impl(const Rcpp::ComplexVector e1_cv);
RcppExport SEXP _nanotime_minus_period_impl(SEXP e1_cvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_cv(e1_cvSEXP);
    rcpp_result_gen = Rcpp::wrap(minus_period_impl(e1_cv));
    return rcpp_result_gen;
END_RCPP
}
// minus_period_period_impl
Rcpp::ComplexVector minus_period_period_impl(const Rcpp::ComplexVector e1_cv, const Rcpp::ComplexVector e2_cv);
RcppExport SEXP _nanotime_minus_period_period_impl(SEXP e1_cvSEXP, SEXP e2_cvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_cv(e1_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e2_cv(e2_cvSEXP);
    rcpp_result_gen = Rcpp::wrap(minus_period_period_impl(e1_cv, e2_cv));
    return rcpp_result_gen;
END_RCPP
}
// eq_period_period_impl
Rcpp::LogicalVector eq_period_period_impl(const Rcpp::ComplexVector e1_p, const Rcpp::ComplexVector e2_p);
RcppExport SEXP _nanotime_eq_period_period_impl(SEXP e1_pSEXP, SEXP e2_pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_p(e1_pSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e2_p(e2_pSEXP);
    rcpp_result_gen = Rcpp::wrap(eq_period_period_impl(e1_p, e2_p));
    return rcpp_result_gen;
END_RCPP
}
// ne_period_period_impl
Rcpp::LogicalVector ne_period_period_impl(const Rcpp::ComplexVector e1_p, const Rcpp::ComplexVector e2_p);
RcppExport SEXP _nanotime_ne_period_period_impl(SEXP e1_pSEXP, SEXP e2_pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_p(e1_pSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e2_p(e2_pSEXP);
    rcpp_result_gen = Rcpp::wrap(ne_period_period_impl(e1_p, e2_p));
    return rcpp_result_gen;
END_RCPP
}
// plus_period_integer64_impl
Rcpp::ComplexVector plus_period_integer64_impl(const Rcpp::ComplexVector e1_cv, const Rcpp::NumericVector e2_nv);
RcppExport SEXP _nanotime_plus_period_integer64_impl(SEXP e1_cvSEXP, SEXP e2_nvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_cv(e1_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type e2_nv(e2_nvSEXP);
    rcpp_result_gen = Rcpp::wrap(plus_period_integer64_impl(e1_cv, e2_nv));
    return rcpp_result_gen;
END_RCPP
}
// minus_period_integer64_impl
Rcpp::ComplexVector minus_period_integer64_impl(const Rcpp::ComplexVector e1_cv, const Rcpp::NumericVector e2_nv);
RcppExport SEXP _nanotime_minus_period_integer64_impl(SEXP e1_cvSEXP, SEXP e2_nvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_cv(e1_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type e2_nv(e2_nvSEXP);
    rcpp_result_gen = Rcpp::wrap(minus_period_integer64_impl(e1_cv, e2_nv));
    return rcpp_result_gen;
END_RCPP
}
// multiplies_period_integer64_impl
Rcpp::ComplexVector multiplies_period_integer64_impl(const Rcpp::ComplexVector e1_cv, const Rcpp::NumericVector e2_nv);
RcppExport SEXP _nanotime_multiplies_period_integer64_impl(SEXP e1_cvSEXP, SEXP e2_nvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_cv(e1_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type e2_nv(e2_nvSEXP);
    rcpp_result_gen = Rcpp::wrap(multiplies_period_integer64_impl(e1_cv, e2_nv));
    return rcpp_result_gen;
END_RCPP
}
// divides_period_integer64_impl
Rcpp::ComplexVector divides_period_integer64_impl(const Rcpp::ComplexVector e1_cv, const Rcpp::NumericVector e2_nv);
RcppExport SEXP _nanotime_divides_period_integer64_impl(SEXP e1_cvSEXP, SEXP e2_nvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_cv(e1_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type e2_nv(e2_nvSEXP);
    rcpp_result_gen = Rcpp::wrap(divides_period_integer64_impl(e1_cv, e2_nv));
    return rcpp_result_gen;
END_RCPP
}
// multiplies_period_double_impl
Rcpp::ComplexVector multiplies_period_double_impl(const Rcpp::ComplexVector e1_cv, const Rcpp::NumericVector e2_nv);
RcppExport SEXP _nanotime_multiplies_period_double_impl(SEXP e1_cvSEXP, SEXP e2_nvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_cv(e1_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type e2_nv(e2_nvSEXP);
    rcpp_result_gen = Rcpp::wrap(multiplies_period_double_impl(e1_cv, e2_nv));
    return rcpp_result_gen;
END_RCPP
}
// divides_period_double_impl
Rcpp::ComplexVector divides_period_double_impl(const Rcpp::ComplexVector e1_cv, const Rcpp::NumericVector e2_nv);
RcppExport SEXP _nanotime_divides_period_double_impl(SEXP e1_cvSEXP, SEXP e2_nvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_cv(e1_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type e2_nv(e2_nvSEXP);
    rcpp_result_gen = Rcpp::wrap(divides_period_double_impl(e1_cv, e2_nv));
    return rcpp_result_gen;
END_RCPP
}
// minus_integer64_period_impl
Rcpp::ComplexVector minus_integer64_period_impl(const Rcpp::NumericVector e1_nv, const Rcpp::ComplexVector e2_cv);
RcppExport SEXP _nanotime_minus_integer64_period_impl(SEXP e1_nvSEXP, SEXP e2_cvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type e1_nv(e1_nvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e2_cv(e2_cvSEXP);
    rcpp_result_gen = Rcpp::wrap(minus_integer64_period_impl(e1_nv, e2_cv));
    return rcpp_result_gen;
END_RCPP
}
// plus_nanotime_period_impl
Rcpp::NumericVector plus_nanotime_period_impl(const Rcpp::NumericVector e1_nv, const Rcpp::ComplexVector e2_cv, const Rcpp::CharacterVector tz_v);
RcppExport SEXP _nanotime_plus_nanotime_period_impl(SEXP e1_nvSEXP, SEXP e2_cvSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type e1_nv(e1_nvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e2_cv(e2_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(plus_nanotime_period_impl(e1_nv, e2_cv, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// minus_nanotime_period_impl
Rcpp::NumericVector minus_nanotime_period_impl(const Rcpp::NumericVector e1_nv, const Rcpp::ComplexVector e2_cv, const Rcpp::CharacterVector tz_v);
RcppExport SEXP _nanotime_minus_nanotime_period_impl(SEXP e1_nvSEXP, SEXP e2_cvSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type e1_nv(e1_nvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e2_cv(e2_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(minus_nanotime_period_impl(e1_nv, e2_cv, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// plus_nanoival_period_impl
Rcpp::ComplexVector plus_nanoival_period_impl(const Rcpp::ComplexVector e1_cv, const Rcpp::ComplexVector e2_cv, const Rcpp::CharacterVector tz_v);
RcppExport SEXP _nanotime_plus_nanoival_period_impl(SEXP e1_cvSEXP, SEXP e2_cvSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_cv(e1_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e2_cv(e2_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(plus_nanoival_period_impl(e1_cv, e2_cv, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// minus_nanoival_period_impl
Rcpp::ComplexVector minus_nanoival_period_impl(const Rcpp::ComplexVector e1_cv, const Rcpp::ComplexVector e2_cv, const Rcpp::CharacterVector tz_v);
RcppExport SEXP _nanotime_minus_nanoival_period_impl(SEXP e1_cvSEXP, SEXP e2_cvSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e1_cv(e1_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e2_cv(e2_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(minus_nanoival_period_impl(e1_cv, e2_cv, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// period_month_impl
Rcpp::NumericVector period_month_impl(const Rcpp::ComplexVector e_n);
RcppExport SEXP _nanotime_period_month_impl(SEXP e_nSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e_n(e_nSEXP);
    rcpp_result_gen = Rcpp::wrap(period_month_impl(e_n));
    return rcpp_result_gen;
END_RCPP
}
// period_day_impl
Rcpp::NumericVector period_day_impl(const Rcpp::ComplexVector e_n);
RcppExport SEXP _nanotime_period_day_impl(SEXP e_nSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e_n(e_nSEXP);
    rcpp_result_gen = Rcpp::wrap(period_day_impl(e_n));
    return rcpp_result_gen;
END_RCPP
}
// period_duration_impl
Rcpp::S4 period_duration_impl(const Rcpp::ComplexVector e_n);
RcppExport SEXP _nanotime_period_duration_impl(SEXP e_nSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type e_n(e_nSEXP);
    rcpp_result_gen = Rcpp::wrap(period_duration_impl(e_n));
    return rcpp_result_gen;
END_RCPP
}
// period_isna_impl
Rcpp::LogicalVector period_isna_impl(const Rcpp::ComplexVector cv);
RcppExport SEXP _nanotime_period_isna_impl(SEXP cvSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type cv(cvSEXP);
    rcpp_result_gen = Rcpp::wrap(period_isna_impl(cv));
    return rcpp_result_gen;
END_RCPP
}
// period_seq_from_to_impl
Rcpp::NumericVector period_seq_from_to_impl(const Rcpp::NumericVector from_nv, const Rcpp::NumericVector to_nv, const Rcpp::ComplexVector by_cv, const std::string tz);
RcppExport SEXP _nanotime_period_seq_from_to_impl(SEXP from_nvSEXP, SEXP to_nvSEXP, SEXP by_cvSEXP, SEXP tzSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type from_nv(from_nvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type to_nv(to_nvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type by_cv(by_cvSEXP);
    Rcpp::traits::input_parameter< const std::string >::type tz(tzSEXP);
    rcpp_result_gen = Rcpp::wrap(period_seq_from_to_impl(from_nv, to_nv, by_cv, tz));
    return rcpp_result_gen;
END_RCPP
}
// period_seq_from_length_impl
Rcpp::NumericVector period_seq_from_length_impl(const Rcpp::NumericVector from_nv, const Rcpp::ComplexVector by_cv, const Rcpp::NumericVector n_nv, const std::string tz);
RcppExport SEXP _nanotime_period_seq_from_length_impl(SEXP from_nvSEXP, SEXP by_cvSEXP, SEXP n_nvSEXP, SEXP tzSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type from_nv(from_nvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector >::type by_cv(by_cvSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector >::type n_nv(n_nvSEXP);
    Rcpp::traits::input_parameter< const std::string >::type tz(tzSEXP);
    rcpp_result_gen = Rcpp::wrap(period_seq_from_length_impl(from_nv, by_cv, n_nv, tz));
    return rcpp_result_gen;
END_RCPP
}
// period_subset_numeric_impl
Rcpp::ComplexVector period_subset_numeric_impl(const Rcpp::ComplexVector& v, const Rcpp::NumericVector& idx);
RcppExport SEXP _nanotime_period_subset_numeric_impl(SEXP vSEXP, SEXP idxSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector& >::type v(vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type idx(idxSEXP);
    rcpp_result_gen = Rcpp::wrap(period_subset_numeric_impl(v, idx));
    return rcpp_result_gen;
END_RCPP
}
// period_subset_logical_impl
Rcpp::ComplexVector period_subset_logical_impl(const Rcpp::ComplexVector& v, const Rcpp::LogicalVector& idx_p);
RcppExport SEXP _nanotime_period_subset_logical_impl(SEXP vSEXP, SEXP idx_pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector& >::type v(vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::LogicalVector& >::type idx_p(idx_pSEXP);
    rcpp_result_gen = Rcpp::wrap(period_subset_logical_impl(v, idx_p));
    return rcpp_result_gen;
END_RCPP
}
// ceiling_tz_impl
Rcpp::NumericVector ceiling_tz_impl(const Rcpp::NumericVector& nt_v, const Rcpp::ComplexVector& prd_v, const Rcpp::NumericVector& orig_v, const Rcpp::CharacterVector& tz_v);
RcppExport SEXP _nanotime_ceiling_tz_impl(SEXP nt_vSEXP, SEXP prd_vSEXP, SEXP orig_vSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type nt_v(nt_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector& >::type prd_v(prd_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type orig_v(orig_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector& >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(ceiling_tz_impl(nt_v, prd_v, orig_v, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// ceiling_impl
Rcpp::NumericVector ceiling_impl(const Rcpp::NumericVector& nt_v, const Rcpp::NumericVector& dur_v, const Rcpp::NumericVector& orig_v);
RcppExport SEXP _nanotime_ceiling_impl(SEXP nt_vSEXP, SEXP dur_vSEXP, SEXP orig_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type nt_v(nt_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type dur_v(dur_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type orig_v(orig_vSEXP);
    rcpp_result_gen = Rcpp::wrap(ceiling_impl(nt_v, dur_v, orig_v));
    return rcpp_result_gen;
END_RCPP
}
// floor_tz_impl
Rcpp::NumericVector floor_tz_impl(const Rcpp::NumericVector& nt_v, const Rcpp::ComplexVector& prd_v, const Rcpp::NumericVector& orig_v, const Rcpp::CharacterVector& tz_v);
RcppExport SEXP _nanotime_floor_tz_impl(SEXP nt_vSEXP, SEXP prd_vSEXP, SEXP orig_vSEXP, SEXP tz_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type nt_v(nt_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::ComplexVector& >::type prd_v(prd_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type orig_v(orig_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::CharacterVector& >::type tz_v(tz_vSEXP);
    rcpp_result_gen = Rcpp::wrap(floor_tz_impl(nt_v, prd_v, orig_v, tz_v));
    return rcpp_result_gen;
END_RCPP
}
// floor_impl
Rcpp::NumericVector floor_impl(const Rcpp::NumericVector& nt_v, const Rcpp::NumericVector& dur_v, const Rcpp::NumericVector& orig_v);
RcppExport SEXP _nanotime_floor_impl(SEXP nt_vSEXP, SEXP dur_vSEXP, SEXP orig_vSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type nt_v(nt_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type dur_v(dur_vSEXP);
    Rcpp::traits::input_parameter< const Rcpp::NumericVector& >::type orig_v(orig_vSEXP);
    rcpp_result_gen = Rcpp::wrap(floor_impl(nt_v, dur_v, orig_v));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_nanotime_duration_from_string_impl", (DL_FUNC) &_nanotime_duration_from_string_impl, 1},
    {"_nanotime_duration_to_string_impl", (DL_FUNC) &_nanotime_duration_to_string_impl, 1},
    {"_nanotime_duration_is_na_impl", (DL_FUNC) &_nanotime_duration_is_na_impl, 1},
    {"_nanotime_make_duration_impl", (DL_FUNC) &_nanotime_make_duration_impl, 4},
    {"_nanotime_nanoduration_subset_numeric_impl", (DL_FUNC) &_nanotime_nanoduration_subset_numeric_impl, 2},
    {"_nanotime_nanoduration_subset_logical_impl", (DL_FUNC) &_nanotime_nanoduration_subset_logical_impl, 2},
    {"_nanotime_nanoival_intersect_idx_time_interval_impl", (DL_FUNC) &_nanotime_nanoival_intersect_idx_time_interval_impl, 2},
    {"_nanotime_nanoival_intersect_idx_time_interval_logical_impl", (DL_FUNC) &_nanotime_nanoival_intersect_idx_time_interval_logical_impl, 2},
    {"_nanotime_nanoival_intersect_time_interval_impl", (DL_FUNC) &_nanotime_nanoival_intersect_time_interval_impl, 2},
    {"_nanotime_nanoival_setdiff_time_interval_impl", (DL_FUNC) &_nanotime_nanoival_setdiff_time_interval_impl, 2},
    {"_nanotime_nanoival_union_impl", (DL_FUNC) &_nanotime_nanoival_union_impl, 2},
    {"_nanotime_nanoival_intersect_impl", (DL_FUNC) &_nanotime_nanoival_intersect_impl, 2},
    {"_nanotime_nanoival_setdiff_impl", (DL_FUNC) &_nanotime_nanoival_setdiff_impl, 2},
    {"_nanotime_nanoival_is_unsorted_impl", (DL_FUNC) &_nanotime_nanoival_is_unsorted_impl, 2},
    {"_nanotime_nanoival_sort_impl", (DL_FUNC) &_nanotime_nanoival_sort_impl, 2},
    {"_nanotime_nanoival_sort_impl2", (DL_FUNC) &_nanotime_nanoival_sort_impl2, 2},
    {"_nanotime_nanoival_lt_impl", (DL_FUNC) &_nanotime_nanoival_lt_impl, 2},
    {"_nanotime_nanoival_le_impl", (DL_FUNC) &_nanotime_nanoival_le_impl, 2},
    {"_nanotime_nanoival_gt_impl", (DL_FUNC) &_nanotime_nanoival_gt_impl, 2},
    {"_nanotime_nanoival_ge_impl", (DL_FUNC) &_nanotime_nanoival_ge_impl, 2},
    {"_nanotime_nanoival_eq_impl", (DL_FUNC) &_nanotime_nanoival_eq_impl, 2},
    {"_nanotime_nanoival_ne_impl", (DL_FUNC) &_nanotime_nanoival_ne_impl, 2},
    {"_nanotime_nanoival_plus_impl", (DL_FUNC) &_nanotime_nanoival_plus_impl, 2},
    {"_nanotime_nanoival_minus_impl", (DL_FUNC) &_nanotime_nanoival_minus_impl, 2},
    {"_nanotime_nanoival_setdiff_idx_time_interval_impl", (DL_FUNC) &_nanotime_nanoival_setdiff_idx_time_interval_impl, 2},
    {"_nanotime_nanoival_new_impl", (DL_FUNC) &_nanotime_nanoival_new_impl, 4},
    {"_nanotime_nanoival_get_start_impl", (DL_FUNC) &_nanotime_nanoival_get_start_impl, 1},
    {"_nanotime_nanoival_get_end_impl", (DL_FUNC) &_nanotime_nanoival_get_end_impl, 1},
    {"_nanotime_nanoival_get_sopen_impl", (DL_FUNC) &_nanotime_nanoival_get_sopen_impl, 1},
    {"_nanotime_nanoival_get_eopen_impl", (DL_FUNC) &_nanotime_nanoival_get_eopen_impl, 1},
    {"_nanotime_nanoival_isna_impl", (DL_FUNC) &_nanotime_nanoival_isna_impl, 1},
    {"_nanotime_nanoival_make_impl", (DL_FUNC) &_nanotime_nanoival_make_impl, 2},
    {"_nanotime_nanoival_subset_numeric_impl", (DL_FUNC) &_nanotime_nanoival_subset_numeric_impl, 2},
    {"_nanotime_nanoival_subset_logical_impl", (DL_FUNC) &_nanotime_nanoival_subset_logical_impl, 2},
    {"_nanotime_nanotime_wday_impl", (DL_FUNC) &_nanotime_nanotime_wday_impl, 2},
    {"_nanotime_nanotime_mday_impl", (DL_FUNC) &_nanotime_nanotime_mday_impl, 2},
    {"_nanotime_nanotime_month_impl", (DL_FUNC) &_nanotime_nanotime_month_impl, 2},
    {"_nanotime_nanotime_year_impl", (DL_FUNC) &_nanotime_nanotime_year_impl, 2},
    {"_nanotime_nanotime_make_impl", (DL_FUNC) &_nanotime_nanotime_make_impl, 2},
    {"_nanotime_nanotime_subset_numeric_impl", (DL_FUNC) &_nanotime_nanotime_subset_numeric_impl, 2},
    {"_nanotime_nanotime_subset_logical_impl", (DL_FUNC) &_nanotime_nanotime_subset_logical_impl, 2},
    {"_nanotime_period_from_string_impl", (DL_FUNC) &_nanotime_period_from_string_impl, 1},
    {"_nanotime_period_from_parts_impl", (DL_FUNC) &_nanotime_period_from_parts_impl, 3},
    {"_nanotime_period_to_string_impl", (DL_FUNC) &_nanotime_period_to_string_impl, 1},
    {"_nanotime_period_from_integer64_impl", (DL_FUNC) &_nanotime_period_from_integer64_impl, 1},
    {"_nanotime_period_from_integer_impl", (DL_FUNC) &_nanotime_period_from_integer_impl, 1},
    {"_nanotime_period_from_double_impl", (DL_FUNC) &_nanotime_period_from_double_impl, 1},
    {"_nanotime_plus_period_period_impl", (DL_FUNC) &_nanotime_plus_period_period_impl, 2},
    {"_nanotime_minus_period_impl", (DL_FUNC) &_nanotime_minus_period_impl, 1},
    {"_nanotime_minus_period_period_impl", (DL_FUNC) &_nanotime_minus_period_period_impl, 2},
    {"_nanotime_eq_period_period_impl", (DL_FUNC) &_nanotime_eq_period_period_impl, 2},
    {"_nanotime_ne_period_period_impl", (DL_FUNC) &_nanotime_ne_period_period_impl, 2},
    {"_nanotime_plus_period_integer64_impl", (DL_FUNC) &_nanotime_plus_period_integer64_impl, 2},
    {"_nanotime_minus_period_integer64_impl", (DL_FUNC) &_nanotime_minus_period_integer64_impl, 2},
    {"_nanotime_multiplies_period_integer64_impl", (DL_FUNC) &_nanotime_multiplies_period_integer64_impl, 2},
    {"_nanotime_divides_period_integer64_impl", (DL_FUNC) &_nanotime_divides_period_integer64_impl, 2},
    {"_nanotime_multiplies_period_double_impl", (DL_FUNC) &_nanotime_multiplies_period_double_impl, 2},
    {"_nanotime_divides_period_double_impl", (DL_FUNC) &_nanotime_divides_period_double_impl, 2},
    {"_nanotime_minus_integer64_period_impl", (DL_FUNC) &_nanotime_minus_integer64_period_impl, 2},
    {"_nanotime_plus_nanotime_period_impl", (DL_FUNC) &_nanotime_plus_nanotime_period_impl, 3},
    {"_nanotime_minus_nanotime_period_impl", (DL_FUNC) &_nanotime_minus_nanotime_period_impl, 3},
    {"_nanotime_plus_nanoival_period_impl", (DL_FUNC) &_nanotime_plus_nanoival_period_impl, 3},
    {"_nanotime_minus_nanoival_period_impl", (DL_FUNC) &_nanotime_minus_nanoival_period_impl, 3},
    {"_nanotime_period_month_impl", (DL_FUNC) &_nanotime_period_month_impl, 1},
    {"_nanotime_period_day_impl", (DL_FUNC) &_nanotime_period_day_impl, 1},
    {"_nanotime_period_duration_impl", (DL_FUNC) &_nanotime_period_duration_impl, 1},
    {"_nanotime_period_isna_impl", (DL_FUNC) &_nanotime_period_isna_impl, 1},
    {"_nanotime_period_seq_from_to_impl", (DL_FUNC) &_nanotime_period_seq_from_to_impl, 4},
    {"_nanotime_period_seq_from_length_impl", (DL_FUNC) &_nanotime_period_seq_from_length_impl, 4},
    {"_nanotime_period_subset_numeric_impl", (DL_FUNC) &_nanotime_period_subset_numeric_impl, 2},
    {"_nanotime_period_subset_logical_impl", (DL_FUNC) &_nanotime_period_subset_logical_impl, 2},
    {"_nanotime_ceiling_tz_impl", (DL_FUNC) &_nanotime_ceiling_tz_impl, 4},
    {"_nanotime_ceiling_impl", (DL_FUNC) &_nanotime_ceiling_impl, 3},
    {"_nanotime_floor_tz_impl", (DL_FUNC) &_nanotime_floor_tz_impl, 4},
    {"_nanotime_floor_impl", (DL_FUNC) &_nanotime_floor_impl, 3},
    {NULL, NULL, 0}
};

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