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

#include <RcppArmadillo.h>
#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

// cos_fun
double cos_fun(double j, int k, int N);
RcppExport SEXP _tidynorm_cos_fun(SEXP jSEXP, SEXP kSEXP, SEXP NSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type j(jSEXP);
    Rcpp::traits::input_parameter< int >::type k(kSEXP);
    Rcpp::traits::input_parameter< int >::type N(NSEXP);
    rcpp_result_gen = Rcpp::wrap(cos_fun(j, k, N));
    return rcpp_result_gen;
END_RCPP
}
// cos_bank
arma::mat cos_bank(int jj, int kk);
RcppExport SEXP _tidynorm_cos_bank(SEXP jjSEXP, SEXP kkSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type jj(jjSEXP);
    Rcpp::traits::input_parameter< int >::type kk(kkSEXP);
    rcpp_result_gen = Rcpp::wrap(cos_bank(jj, kk));
    return rcpp_result_gen;
END_RCPP
}
// dct_fun
arma::mat dct_fun(arma::vec y, int kk);
RcppExport SEXP _tidynorm_dct_fun(SEXP ySEXP, SEXP kkSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::vec >::type y(ySEXP);
    Rcpp::traits::input_parameter< int >::type kk(kkSEXP);
    rcpp_result_gen = Rcpp::wrap(dct_fun(y, kk));
    return rcpp_result_gen;
END_RCPP
}
// dct_mat
arma::mat dct_mat(arma::mat y, int kk);
RcppExport SEXP _tidynorm_dct_mat(SEXP ySEXP, SEXP kkSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type y(ySEXP);
    Rcpp::traits::input_parameter< int >::type kk(kkSEXP);
    rcpp_result_gen = Rcpp::wrap(dct_mat(y, kk));
    return rcpp_result_gen;
END_RCPP
}
// idct_fun
arma::mat idct_fun(arma::vec y, int n);
RcppExport SEXP _tidynorm_idct_fun(SEXP ySEXP, SEXP nSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::vec >::type y(ySEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    rcpp_result_gen = Rcpp::wrap(idct_fun(y, n));
    return rcpp_result_gen;
END_RCPP
}
// idct_mat
arma::mat idct_mat(arma::mat y, int n);
RcppExport SEXP _tidynorm_idct_mat(SEXP ySEXP, SEXP nSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type y(ySEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    rcpp_result_gen = Rcpp::wrap(idct_mat(y, n));
    return rcpp_result_gen;
END_RCPP
}
// idct_prime
NumericVector idct_prime(NumericVector y, int n);
RcppExport SEXP _tidynorm_idct_prime(SEXP ySEXP, SEXP nSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    rcpp_result_gen = Rcpp::wrap(idct_prime(y, n));
    return rcpp_result_gen;
END_RCPP
}
// idct_dprime
NumericVector idct_dprime(NumericVector y, int n);
RcppExport SEXP _tidynorm_idct_dprime(SEXP ySEXP, SEXP nSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    rcpp_result_gen = Rcpp::wrap(idct_dprime(y, n));
    return rcpp_result_gen;
END_RCPP
}
// idct_interp
NumericVector idct_interp(NumericVector y, int n, double p);
RcppExport SEXP _tidynorm_idct_interp(SEXP ySEXP, SEXP nSEXP, SEXP pSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< double >::type p(pSEXP);
    rcpp_result_gen = Rcpp::wrap(idct_interp(y, n, p));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_tidynorm_cos_fun", (DL_FUNC) &_tidynorm_cos_fun, 3},
    {"_tidynorm_cos_bank", (DL_FUNC) &_tidynorm_cos_bank, 2},
    {"_tidynorm_dct_fun", (DL_FUNC) &_tidynorm_dct_fun, 2},
    {"_tidynorm_dct_mat", (DL_FUNC) &_tidynorm_dct_mat, 2},
    {"_tidynorm_idct_fun", (DL_FUNC) &_tidynorm_idct_fun, 2},
    {"_tidynorm_idct_mat", (DL_FUNC) &_tidynorm_idct_mat, 2},
    {"_tidynorm_idct_prime", (DL_FUNC) &_tidynorm_idct_prime, 2},
    {"_tidynorm_idct_dprime", (DL_FUNC) &_tidynorm_idct_dprime, 2},
    {"_tidynorm_idct_interp", (DL_FUNC) &_tidynorm_idct_interp, 3},
    {NULL, NULL, 0}
};

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