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

#ifndef RCPP_fourierin_RCPPEXPORTS_H_GEN_
#define RCPP_fourierin_RCPPEXPORTS_H_GEN_

#include <RcppArmadillo.h>
#include <Rcpp.h>

namespace fourierin {

    using namespace Rcpp;

    namespace {
        void validateSignature(const char* sig) {
            Rcpp::Function require = Rcpp::Environment::base_env()["require"];
            require("fourierin", Rcpp::Named("quietly") = true);
            typedef int(*Ptr_validate)(const char*);
            static Ptr_validate p_validate = (Ptr_validate)
                R_GetCCallable("fourierin", "_fourierin_RcppExport_validate");
            if (!p_validate(sig)) {
                throw Rcpp::function_not_exported(
                    "C++ function with signature '" + std::string(sig) + "' not found in fourierin");
            }
        }
    }

    inline arma::cx_vec fourierin_1d_cpp(const arma::vec& f, double a, double b, double c, double d, double r, double s) {
        typedef SEXP(*Ptr_fourierin_1d_cpp)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP);
        static Ptr_fourierin_1d_cpp p_fourierin_1d_cpp = NULL;
        if (p_fourierin_1d_cpp == NULL) {
            validateSignature("arma::cx_vec(*fourierin_1d_cpp)(const arma::vec&,double,double,double,double,double,double)");
            p_fourierin_1d_cpp = (Ptr_fourierin_1d_cpp)R_GetCCallable("fourierin", "_fourierin_fourierin_1d_cpp");
        }
        RObject rcpp_result_gen;
        {
            RNGScope RCPP_rngScope_gen;
            rcpp_result_gen = p_fourierin_1d_cpp(Shield<SEXP>(Rcpp::wrap(f)), Shield<SEXP>(Rcpp::wrap(a)), Shield<SEXP>(Rcpp::wrap(b)), Shield<SEXP>(Rcpp::wrap(c)), Shield<SEXP>(Rcpp::wrap(d)), Shield<SEXP>(Rcpp::wrap(r)), Shield<SEXP>(Rcpp::wrap(s)));
        }
        if (rcpp_result_gen.inherits("interrupted-error"))
            throw Rcpp::internal::InterruptedException();
        if (Rcpp::internal::isLongjumpSentinel(rcpp_result_gen))
            throw Rcpp::LongjumpException(rcpp_result_gen);
        if (rcpp_result_gen.inherits("try-error"))
            throw Rcpp::exception(Rcpp::as<std::string>(rcpp_result_gen).c_str());
        return Rcpp::as<arma::cx_vec >(rcpp_result_gen);
    }

    inline arma::cx_vec fourierin_1d_nonregular_cpp(const arma::vec& f, double a, double b, const arma::vec& w, int resolution, double r, double s) {
        typedef SEXP(*Ptr_fourierin_1d_nonregular_cpp)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP);
        static Ptr_fourierin_1d_nonregular_cpp p_fourierin_1d_nonregular_cpp = NULL;
        if (p_fourierin_1d_nonregular_cpp == NULL) {
            validateSignature("arma::cx_vec(*fourierin_1d_nonregular_cpp)(const arma::vec&,double,double,const arma::vec&,int,double,double)");
            p_fourierin_1d_nonregular_cpp = (Ptr_fourierin_1d_nonregular_cpp)R_GetCCallable("fourierin", "_fourierin_fourierin_1d_nonregular_cpp");
        }
        RObject rcpp_result_gen;
        {
            RNGScope RCPP_rngScope_gen;
            rcpp_result_gen = p_fourierin_1d_nonregular_cpp(Shield<SEXP>(Rcpp::wrap(f)), Shield<SEXP>(Rcpp::wrap(a)), Shield<SEXP>(Rcpp::wrap(b)), Shield<SEXP>(Rcpp::wrap(w)), Shield<SEXP>(Rcpp::wrap(resolution)), Shield<SEXP>(Rcpp::wrap(r)), Shield<SEXP>(Rcpp::wrap(s)));
        }
        if (rcpp_result_gen.inherits("interrupted-error"))
            throw Rcpp::internal::InterruptedException();
        if (Rcpp::internal::isLongjumpSentinel(rcpp_result_gen))
            throw Rcpp::LongjumpException(rcpp_result_gen);
        if (rcpp_result_gen.inherits("try-error"))
            throw Rcpp::exception(Rcpp::as<std::string>(rcpp_result_gen).c_str());
        return Rcpp::as<arma::cx_vec >(rcpp_result_gen);
    }

    inline arma::cx_mat fourierin_2d_cpp(const arma::mat& f, const arma::vec& a, const arma::vec& b, const arma::vec& c, const arma::vec& d, double r, double s) {
        typedef SEXP(*Ptr_fourierin_2d_cpp)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP);
        static Ptr_fourierin_2d_cpp p_fourierin_2d_cpp = NULL;
        if (p_fourierin_2d_cpp == NULL) {
            validateSignature("arma::cx_mat(*fourierin_2d_cpp)(const arma::mat&,const arma::vec&,const arma::vec&,const arma::vec&,const arma::vec&,double,double)");
            p_fourierin_2d_cpp = (Ptr_fourierin_2d_cpp)R_GetCCallable("fourierin", "_fourierin_fourierin_2d_cpp");
        }
        RObject rcpp_result_gen;
        {
            RNGScope RCPP_rngScope_gen;
            rcpp_result_gen = p_fourierin_2d_cpp(Shield<SEXP>(Rcpp::wrap(f)), Shield<SEXP>(Rcpp::wrap(a)), Shield<SEXP>(Rcpp::wrap(b)), Shield<SEXP>(Rcpp::wrap(c)), Shield<SEXP>(Rcpp::wrap(d)), Shield<SEXP>(Rcpp::wrap(r)), Shield<SEXP>(Rcpp::wrap(s)));
        }
        if (rcpp_result_gen.inherits("interrupted-error"))
            throw Rcpp::internal::InterruptedException();
        if (Rcpp::internal::isLongjumpSentinel(rcpp_result_gen))
            throw Rcpp::LongjumpException(rcpp_result_gen);
        if (rcpp_result_gen.inherits("try-error"))
            throw Rcpp::exception(Rcpp::as<std::string>(rcpp_result_gen).c_str());
        return Rcpp::as<arma::cx_mat >(rcpp_result_gen);
    }

    inline arma::cx_mat fourierin_2d_nonregular_cpp(const arma::mat& f, const arma::vec& a, const arma::vec& b, const arma::mat& w, const arma::vec& resolution, double r, double s) {
        typedef SEXP(*Ptr_fourierin_2d_nonregular_cpp)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP);
        static Ptr_fourierin_2d_nonregular_cpp p_fourierin_2d_nonregular_cpp = NULL;
        if (p_fourierin_2d_nonregular_cpp == NULL) {
            validateSignature("arma::cx_mat(*fourierin_2d_nonregular_cpp)(const arma::mat&,const arma::vec&,const arma::vec&,const arma::mat&,const arma::vec&,double,double)");
            p_fourierin_2d_nonregular_cpp = (Ptr_fourierin_2d_nonregular_cpp)R_GetCCallable("fourierin", "_fourierin_fourierin_2d_nonregular_cpp");
        }
        RObject rcpp_result_gen;
        {
            RNGScope RCPP_rngScope_gen;
            rcpp_result_gen = p_fourierin_2d_nonregular_cpp(Shield<SEXP>(Rcpp::wrap(f)), Shield<SEXP>(Rcpp::wrap(a)), Shield<SEXP>(Rcpp::wrap(b)), Shield<SEXP>(Rcpp::wrap(w)), Shield<SEXP>(Rcpp::wrap(resolution)), Shield<SEXP>(Rcpp::wrap(r)), Shield<SEXP>(Rcpp::wrap(s)));
        }
        if (rcpp_result_gen.inherits("interrupted-error"))
            throw Rcpp::internal::InterruptedException();
        if (Rcpp::internal::isLongjumpSentinel(rcpp_result_gen))
            throw Rcpp::LongjumpException(rcpp_result_gen);
        if (rcpp_result_gen.inherits("try-error"))
            throw Rcpp::exception(Rcpp::as<std::string>(rcpp_result_gen).c_str());
        return Rcpp::as<arma::cx_mat >(rcpp_result_gen);
    }

    inline arma::cx_vec fourierin_cx_1d_cpp(const arma::cx_vec& f, double a, double b, double c, double d, double r, double s) {
        typedef SEXP(*Ptr_fourierin_cx_1d_cpp)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP);
        static Ptr_fourierin_cx_1d_cpp p_fourierin_cx_1d_cpp = NULL;
        if (p_fourierin_cx_1d_cpp == NULL) {
            validateSignature("arma::cx_vec(*fourierin_cx_1d_cpp)(const arma::cx_vec&,double,double,double,double,double,double)");
            p_fourierin_cx_1d_cpp = (Ptr_fourierin_cx_1d_cpp)R_GetCCallable("fourierin", "_fourierin_fourierin_cx_1d_cpp");
        }
        RObject rcpp_result_gen;
        {
            RNGScope RCPP_rngScope_gen;
            rcpp_result_gen = p_fourierin_cx_1d_cpp(Shield<SEXP>(Rcpp::wrap(f)), Shield<SEXP>(Rcpp::wrap(a)), Shield<SEXP>(Rcpp::wrap(b)), Shield<SEXP>(Rcpp::wrap(c)), Shield<SEXP>(Rcpp::wrap(d)), Shield<SEXP>(Rcpp::wrap(r)), Shield<SEXP>(Rcpp::wrap(s)));
        }
        if (rcpp_result_gen.inherits("interrupted-error"))
            throw Rcpp::internal::InterruptedException();
        if (Rcpp::internal::isLongjumpSentinel(rcpp_result_gen))
            throw Rcpp::LongjumpException(rcpp_result_gen);
        if (rcpp_result_gen.inherits("try-error"))
            throw Rcpp::exception(Rcpp::as<std::string>(rcpp_result_gen).c_str());
        return Rcpp::as<arma::cx_vec >(rcpp_result_gen);
    }

    inline arma::cx_vec fourierin_cx_1d_nonregular_cpp(const arma::cx_vec& f, double a, double b, const arma::vec& w, int resolution, double r, double s) {
        typedef SEXP(*Ptr_fourierin_cx_1d_nonregular_cpp)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP);
        static Ptr_fourierin_cx_1d_nonregular_cpp p_fourierin_cx_1d_nonregular_cpp = NULL;
        if (p_fourierin_cx_1d_nonregular_cpp == NULL) {
            validateSignature("arma::cx_vec(*fourierin_cx_1d_nonregular_cpp)(const arma::cx_vec&,double,double,const arma::vec&,int,double,double)");
            p_fourierin_cx_1d_nonregular_cpp = (Ptr_fourierin_cx_1d_nonregular_cpp)R_GetCCallable("fourierin", "_fourierin_fourierin_cx_1d_nonregular_cpp");
        }
        RObject rcpp_result_gen;
        {
            RNGScope RCPP_rngScope_gen;
            rcpp_result_gen = p_fourierin_cx_1d_nonregular_cpp(Shield<SEXP>(Rcpp::wrap(f)), Shield<SEXP>(Rcpp::wrap(a)), Shield<SEXP>(Rcpp::wrap(b)), Shield<SEXP>(Rcpp::wrap(w)), Shield<SEXP>(Rcpp::wrap(resolution)), Shield<SEXP>(Rcpp::wrap(r)), Shield<SEXP>(Rcpp::wrap(s)));
        }
        if (rcpp_result_gen.inherits("interrupted-error"))
            throw Rcpp::internal::InterruptedException();
        if (Rcpp::internal::isLongjumpSentinel(rcpp_result_gen))
            throw Rcpp::LongjumpException(rcpp_result_gen);
        if (rcpp_result_gen.inherits("try-error"))
            throw Rcpp::exception(Rcpp::as<std::string>(rcpp_result_gen).c_str());
        return Rcpp::as<arma::cx_vec >(rcpp_result_gen);
    }

    inline arma::cx_mat fourierin_cx_2d_cpp(const arma::cx_mat& f, const arma::vec& a, const arma::vec& b, const arma::vec& c, const arma::vec& d, double r, double s) {
        typedef SEXP(*Ptr_fourierin_cx_2d_cpp)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP);
        static Ptr_fourierin_cx_2d_cpp p_fourierin_cx_2d_cpp = NULL;
        if (p_fourierin_cx_2d_cpp == NULL) {
            validateSignature("arma::cx_mat(*fourierin_cx_2d_cpp)(const arma::cx_mat&,const arma::vec&,const arma::vec&,const arma::vec&,const arma::vec&,double,double)");
            p_fourierin_cx_2d_cpp = (Ptr_fourierin_cx_2d_cpp)R_GetCCallable("fourierin", "_fourierin_fourierin_cx_2d_cpp");
        }
        RObject rcpp_result_gen;
        {
            RNGScope RCPP_rngScope_gen;
            rcpp_result_gen = p_fourierin_cx_2d_cpp(Shield<SEXP>(Rcpp::wrap(f)), Shield<SEXP>(Rcpp::wrap(a)), Shield<SEXP>(Rcpp::wrap(b)), Shield<SEXP>(Rcpp::wrap(c)), Shield<SEXP>(Rcpp::wrap(d)), Shield<SEXP>(Rcpp::wrap(r)), Shield<SEXP>(Rcpp::wrap(s)));
        }
        if (rcpp_result_gen.inherits("interrupted-error"))
            throw Rcpp::internal::InterruptedException();
        if (Rcpp::internal::isLongjumpSentinel(rcpp_result_gen))
            throw Rcpp::LongjumpException(rcpp_result_gen);
        if (rcpp_result_gen.inherits("try-error"))
            throw Rcpp::exception(Rcpp::as<std::string>(rcpp_result_gen).c_str());
        return Rcpp::as<arma::cx_mat >(rcpp_result_gen);
    }

    inline arma::cx_mat fourierin_cx_2d_nonregular_cpp(const arma::cx_mat& f, const arma::vec& a, const arma::vec& b, const arma::mat& w, const arma::vec& resolution, double r, double s) {
        typedef SEXP(*Ptr_fourierin_cx_2d_nonregular_cpp)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP);
        static Ptr_fourierin_cx_2d_nonregular_cpp p_fourierin_cx_2d_nonregular_cpp = NULL;
        if (p_fourierin_cx_2d_nonregular_cpp == NULL) {
            validateSignature("arma::cx_mat(*fourierin_cx_2d_nonregular_cpp)(const arma::cx_mat&,const arma::vec&,const arma::vec&,const arma::mat&,const arma::vec&,double,double)");
            p_fourierin_cx_2d_nonregular_cpp = (Ptr_fourierin_cx_2d_nonregular_cpp)R_GetCCallable("fourierin", "_fourierin_fourierin_cx_2d_nonregular_cpp");
        }
        RObject rcpp_result_gen;
        {
            RNGScope RCPP_rngScope_gen;
            rcpp_result_gen = p_fourierin_cx_2d_nonregular_cpp(Shield<SEXP>(Rcpp::wrap(f)), Shield<SEXP>(Rcpp::wrap(a)), Shield<SEXP>(Rcpp::wrap(b)), Shield<SEXP>(Rcpp::wrap(w)), Shield<SEXP>(Rcpp::wrap(resolution)), Shield<SEXP>(Rcpp::wrap(r)), Shield<SEXP>(Rcpp::wrap(s)));
        }
        if (rcpp_result_gen.inherits("interrupted-error"))
            throw Rcpp::internal::InterruptedException();
        if (Rcpp::internal::isLongjumpSentinel(rcpp_result_gen))
            throw Rcpp::LongjumpException(rcpp_result_gen);
        if (rcpp_result_gen.inherits("try-error"))
            throw Rcpp::exception(Rcpp::as<std::string>(rcpp_result_gen).c_str());
        return Rcpp::as<arma::cx_mat >(rcpp_result_gen);
    }

}

#endif // RCPP_fourierin_RCPPEXPORTS_H_GEN_
