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

// c_interp
NumericVector c_interp(NumericVector m, NumericVector fits, NumericVector slopes, NumericVector at);
RcppExport SEXP _stlplus_c_interp(SEXP mSEXP, SEXP fitsSEXP, SEXP slopesSEXP, SEXP atSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type m(mSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type fits(fitsSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type slopes(slopesSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type at(atSEXP);
    rcpp_result_gen = Rcpp::wrap(c_interp(m, fits, slopes, at));
    return rcpp_result_gen;
END_RCPP
}
// c_loess
List c_loess(NumericVector xx, NumericVector yy, int degree, int span, NumericVector ww, IntegerVector m, IntegerVector l_idx, NumericVector max_dist);
RcppExport SEXP _stlplus_c_loess(SEXP xxSEXP, SEXP yySEXP, SEXP degreeSEXP, SEXP spanSEXP, SEXP wwSEXP, SEXP mSEXP, SEXP l_idxSEXP, SEXP max_distSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type xx(xxSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type yy(yySEXP);
    Rcpp::traits::input_parameter< int >::type degree(degreeSEXP);
    Rcpp::traits::input_parameter< int >::type span(spanSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type ww(wwSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type m(mSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type l_idx(l_idxSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type max_dist(max_distSEXP);
    rcpp_result_gen = Rcpp::wrap(c_loess(xx, yy, degree, span, ww, m, l_idx, max_dist));
    return rcpp_result_gen;
END_RCPP
}
// c_ma
NumericVector c_ma(NumericVector x, int n_p);
RcppExport SEXP _stlplus_c_ma(SEXP xSEXP, SEXP n_pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< int >::type n_p(n_pSEXP);
    rcpp_result_gen = Rcpp::wrap(c_ma(x, n_p));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_stlplus_c_interp", (DL_FUNC) &_stlplus_c_interp, 4},
    {"_stlplus_c_loess", (DL_FUNC) &_stlplus_c_loess, 8},
    {"_stlplus_c_ma", (DL_FUNC) &_stlplus_c_ma, 2},
    {NULL, NULL, 0}
};

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