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

// conv2df
NumericMatrix conv2df(NumericMatrix a, NumericMatrix b);
RcppExport SEXP _gsignal_conv2df(SEXP aSEXP, SEXP bSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type a(aSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type b(bSEXP);
    rcpp_result_gen = Rcpp::wrap(conv2df(a, b));
    return rcpp_result_gen;
END_RCPP
}
// conv2ds
NumericMatrix conv2ds(NumericMatrix a, NumericMatrix b);
RcppExport SEXP _gsignal_conv2ds(SEXP aSEXP, SEXP bSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type a(aSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type b(bSEXP);
    rcpp_result_gen = Rcpp::wrap(conv2ds(a, b));
    return rcpp_result_gen;
END_RCPP
}
// conv2dv
NumericMatrix conv2dv(NumericMatrix a, NumericMatrix b);
RcppExport SEXP _gsignal_conv2dv(SEXP aSEXP, SEXP bSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type a(aSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type b(bSEXP);
    rcpp_result_gen = Rcpp::wrap(conv2dv(a, b));
    return rcpp_result_gen;
END_RCPP
}
// rfilter
List rfilter(NumericVector b, NumericVector a, NumericVector x, NumericVector zi);
RcppExport SEXP _gsignal_rfilter(SEXP bSEXP, SEXP aSEXP, SEXP xSEXP, SEXP ziSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type b(bSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type a(aSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type zi(ziSEXP);
    rcpp_result_gen = Rcpp::wrap(rfilter(b, a, x, zi));
    return rcpp_result_gen;
END_RCPP
}
// fwht
NumericMatrix fwht(NumericMatrix x);
RcppExport SEXP _gsignal_fwht(SEXP xSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    rcpp_result_gen = Rcpp::wrap(fwht(x));
    return rcpp_result_gen;
END_RCPP
}
// remez
NumericVector remez(NumericVector h, int numtaps, int numband, const NumericVector bands, const NumericVector des, const NumericVector weight, int type, int griddensity);
RcppExport SEXP _gsignal_remez(SEXP hSEXP, SEXP numtapsSEXP, SEXP numbandSEXP, SEXP bandsSEXP, SEXP desSEXP, SEXP weightSEXP, SEXP typeSEXP, SEXP griddensitySEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type h(hSEXP);
    Rcpp::traits::input_parameter< int >::type numtaps(numtapsSEXP);
    Rcpp::traits::input_parameter< int >::type numband(numbandSEXP);
    Rcpp::traits::input_parameter< const NumericVector >::type bands(bandsSEXP);
    Rcpp::traits::input_parameter< const NumericVector >::type des(desSEXP);
    Rcpp::traits::input_parameter< const NumericVector >::type weight(weightSEXP);
    Rcpp::traits::input_parameter< int >::type type(typeSEXP);
    Rcpp::traits::input_parameter< int >::type griddensity(griddensitySEXP);
    rcpp_result_gen = Rcpp::wrap(remez(h, numtaps, numband, bands, des, weight, type, griddensity));
    return rcpp_result_gen;
END_RCPP
}
// rsosfilt
List rsosfilt(NumericMatrix sos, NumericVector x, NumericMatrix zi);
RcppExport SEXP _gsignal_rsosfilt(SEXP sosSEXP, SEXP xSEXP, SEXP ziSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type sos(sosSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type zi(ziSEXP);
    rcpp_result_gen = Rcpp::wrap(rsosfilt(sos, x, zi));
    return rcpp_result_gen;
END_RCPP
}
// upfirdn
NumericMatrix upfirdn(NumericMatrix x, NumericMatrix h, int p, int q);
RcppExport SEXP _gsignal_upfirdn(SEXP xSEXP, SEXP hSEXP, SEXP pSEXP, SEXP qSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type h(hSEXP);
    Rcpp::traits::input_parameter< int >::type p(pSEXP);
    Rcpp::traits::input_parameter< int >::type q(qSEXP);
    rcpp_result_gen = Rcpp::wrap(upfirdn(x, h, p, q));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_gsignal_conv2df", (DL_FUNC) &_gsignal_conv2df, 2},
    {"_gsignal_conv2ds", (DL_FUNC) &_gsignal_conv2ds, 2},
    {"_gsignal_conv2dv", (DL_FUNC) &_gsignal_conv2dv, 2},
    {"_gsignal_rfilter", (DL_FUNC) &_gsignal_rfilter, 4},
    {"_gsignal_fwht", (DL_FUNC) &_gsignal_fwht, 1},
    {"_gsignal_remez", (DL_FUNC) &_gsignal_remez, 8},
    {"_gsignal_rsosfilt", (DL_FUNC) &_gsignal_rsosfilt, 3},
    {"_gsignal_upfirdn", (DL_FUNC) &_gsignal_upfirdn, 4},
    {NULL, NULL, 0}
};

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