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

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

// incompleteCholeskyGauss
Rcpp::List incompleteCholeskyGauss(const Eigen::Map<Eigen::VectorXd> v, double eps, double sigma);
RcppExport SEXP _KernelICA_incompleteCholeskyGauss(SEXP vSEXP, SEXP epsSEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Eigen::Map<Eigen::VectorXd> >::type v(vSEXP);
    Rcpp::traits::input_parameter< double >::type eps(epsSEXP);
    Rcpp::traits::input_parameter< double >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(incompleteCholeskyGauss(v, eps, sigma));
    return rcpp_result_gen;
END_RCPP
}
// incompleteCholeskyHermite
Rcpp::List incompleteCholeskyHermite(const Eigen::Map<Eigen::VectorXd> v, double eps, double sigma, int d);
RcppExport SEXP _KernelICA_incompleteCholeskyHermite(SEXP vSEXP, SEXP epsSEXP, SEXP sigmaSEXP, SEXP dSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< const Eigen::Map<Eigen::VectorXd> >::type v(vSEXP);
    Rcpp::traits::input_parameter< double >::type eps(epsSEXP);
    Rcpp::traits::input_parameter< double >::type sigma(sigmaSEXP);
    Rcpp::traits::input_parameter< int >::type d(dSEXP);
    rcpp_result_gen = Rcpp::wrap(incompleteCholeskyHermite(v, eps, sigma, d));
    return rcpp_result_gen;
END_RCPP
}
// kernelMatrixGauss
SEXP kernelMatrixGauss(Eigen::Map<Eigen::VectorXd> x, Eigen::Map<Eigen::VectorXd> y, double sigma);
RcppExport SEXP _KernelICA_kernelMatrixGauss(SEXP xSEXP, SEXP ySEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd> >::type x(xSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd> >::type y(ySEXP);
    Rcpp::traits::input_parameter< double >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(kernelMatrixGauss(x, y, sigma));
    return rcpp_result_gen;
END_RCPP
}
// kernelMatrixHermite
SEXP kernelMatrixHermite(Eigen::Map<Eigen::VectorXd> x, Eigen::Map<Eigen::VectorXd> y, double sigma, int d);
RcppExport SEXP _KernelICA_kernelMatrixHermite(SEXP xSEXP, SEXP ySEXP, SEXP sigmaSEXP, SEXP dSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd> >::type x(xSEXP);
    Rcpp::traits::input_parameter< Eigen::Map<Eigen::VectorXd> >::type y(ySEXP);
    Rcpp::traits::input_parameter< double >::type sigma(sigmaSEXP);
    Rcpp::traits::input_parameter< int >::type d(dSEXP);
    rcpp_result_gen = Rcpp::wrap(kernelMatrixHermite(x, y, sigma, d));
    return rcpp_result_gen;
END_RCPP
}

RcppExport SEXP _rcpp_module_boot_KernelICA_module();

static const R_CallMethodDef CallEntries[] = {
    {"_KernelICA_incompleteCholeskyGauss", (DL_FUNC) &_KernelICA_incompleteCholeskyGauss, 3},
    {"_KernelICA_incompleteCholeskyHermite", (DL_FUNC) &_KernelICA_incompleteCholeskyHermite, 4},
    {"_KernelICA_kernelMatrixGauss", (DL_FUNC) &_KernelICA_kernelMatrixGauss, 3},
    {"_KernelICA_kernelMatrixHermite", (DL_FUNC) &_KernelICA_kernelMatrixHermite, 4},
    {"_rcpp_module_boot_KernelICA_module", (DL_FUNC) &_rcpp_module_boot_KernelICA_module, 0},
    {NULL, NULL, 0}
};

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