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

// mi_gauss_cpp
NumericVector mi_gauss_cpp(NumericMatrix Mu, NumericVector sigma);
RcppExport SEXP _hetGP_mi_gauss_cpp(SEXP MuSEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu(MuSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(mi_gauss_cpp(Mu, sigma));
    return rcpp_result_gen;
END_RCPP
}
// Wijs_gauss_cpp
NumericMatrix Wijs_gauss_cpp(NumericMatrix Mu1, NumericMatrix Mu2, NumericVector sigma);
RcppExport SEXP _hetGP_Wijs_gauss_cpp(SEXP Mu1SEXP, SEXP Mu2SEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu1(Mu1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu2(Mu2SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(Wijs_gauss_cpp(Mu1, Mu2, sigma));
    return rcpp_result_gen;
END_RCPP
}
// Wijs_gauss_sym_cpp
NumericMatrix Wijs_gauss_sym_cpp(NumericMatrix Mu, NumericVector sigma);
RcppExport SEXP _hetGP_Wijs_gauss_sym_cpp(SEXP MuSEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu(MuSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(Wijs_gauss_sym_cpp(Mu, sigma));
    return rcpp_result_gen;
END_RCPP
}
// d_gauss_cpp
NumericVector d_gauss_cpp(NumericVector X, double x, double sigma);
RcppExport SEXP _hetGP_d_gauss_cpp(SEXP XSEXP, SEXP xSEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type X(XSEXP);
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(d_gauss_cpp(X, x, sigma));
    return rcpp_result_gen;
END_RCPP
}
// c2_gauss_cpp
double c2_gauss_cpp(double x, double t, double w);
RcppExport SEXP _hetGP_c2_gauss_cpp(SEXP xSEXP, SEXP tSEXP, SEXP wSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type t(tSEXP);
    Rcpp::traits::input_parameter< double >::type w(wSEXP);
    rcpp_result_gen = Rcpp::wrap(c2_gauss_cpp(x, t, w));
    return rcpp_result_gen;
END_RCPP
}
// c1_gauss_cpp
NumericVector c1_gauss_cpp(NumericVector X, double x, double sigma, NumericVector W);
RcppExport SEXP _hetGP_c1_gauss_cpp(SEXP XSEXP, SEXP xSEXP, SEXP sigmaSEXP, SEXP WSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type X(XSEXP);
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type sigma(sigmaSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type W(WSEXP);
    rcpp_result_gen = Rcpp::wrap(c1_gauss_cpp(X, x, sigma, W));
    return rcpp_result_gen;
END_RCPP
}
// mi_mat52_cpp
NumericVector mi_mat52_cpp(NumericMatrix Mu, NumericVector sigma);
RcppExport SEXP _hetGP_mi_mat52_cpp(SEXP MuSEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu(MuSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(mi_mat52_cpp(Mu, sigma));
    return rcpp_result_gen;
END_RCPP
}
// Wijs_mat52_cpp
NumericMatrix Wijs_mat52_cpp(NumericMatrix Mu1, NumericMatrix Mu2, NumericVector sigma);
RcppExport SEXP _hetGP_Wijs_mat52_cpp(SEXP Mu1SEXP, SEXP Mu2SEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu1(Mu1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu2(Mu2SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(Wijs_mat52_cpp(Mu1, Mu2, sigma));
    return rcpp_result_gen;
END_RCPP
}
// Wijs_mat52_sym_cpp
NumericMatrix Wijs_mat52_sym_cpp(NumericMatrix Mu, NumericVector sigma);
RcppExport SEXP _hetGP_Wijs_mat52_sym_cpp(SEXP MuSEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu(MuSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(Wijs_mat52_sym_cpp(Mu, sigma));
    return rcpp_result_gen;
END_RCPP
}
// c2_mat52_cpp
double c2_mat52_cpp(double x, double t, double w);
RcppExport SEXP _hetGP_c2_mat52_cpp(SEXP xSEXP, SEXP tSEXP, SEXP wSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type t(tSEXP);
    Rcpp::traits::input_parameter< double >::type w(wSEXP);
    rcpp_result_gen = Rcpp::wrap(c2_mat52_cpp(x, t, w));
    return rcpp_result_gen;
END_RCPP
}
// c1_mat52_cpp
NumericVector c1_mat52_cpp(NumericVector X, double x, double sigma, NumericVector W);
RcppExport SEXP _hetGP_c1_mat52_cpp(SEXP XSEXP, SEXP xSEXP, SEXP sigmaSEXP, SEXP WSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type X(XSEXP);
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type sigma(sigmaSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type W(WSEXP);
    rcpp_result_gen = Rcpp::wrap(c1_mat52_cpp(X, x, sigma, W));
    return rcpp_result_gen;
END_RCPP
}
// d_mat52_cpp
NumericVector d_mat52_cpp(NumericVector X, double x, double sigma);
RcppExport SEXP _hetGP_d_mat52_cpp(SEXP XSEXP, SEXP xSEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type X(XSEXP);
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(d_mat52_cpp(X, x, sigma));
    return rcpp_result_gen;
END_RCPP
}
// mi_mat32_cpp
NumericVector mi_mat32_cpp(NumericMatrix Mu, NumericVector sigma);
RcppExport SEXP _hetGP_mi_mat32_cpp(SEXP MuSEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu(MuSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(mi_mat32_cpp(Mu, sigma));
    return rcpp_result_gen;
END_RCPP
}
// Wijs_mat32_cpp
NumericMatrix Wijs_mat32_cpp(NumericMatrix Mu1, NumericMatrix Mu2, NumericVector sigma);
RcppExport SEXP _hetGP_Wijs_mat32_cpp(SEXP Mu1SEXP, SEXP Mu2SEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu1(Mu1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu2(Mu2SEXP);
    Rcpp::traits::input_parameter< NumericVector >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(Wijs_mat32_cpp(Mu1, Mu2, sigma));
    return rcpp_result_gen;
END_RCPP
}
// Wijs_mat32_sym_cpp
NumericMatrix Wijs_mat32_sym_cpp(NumericMatrix Mu, NumericVector sigma);
RcppExport SEXP _hetGP_Wijs_mat32_sym_cpp(SEXP MuSEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type Mu(MuSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(Wijs_mat32_sym_cpp(Mu, sigma));
    return rcpp_result_gen;
END_RCPP
}
// d_mat32_cpp
NumericVector d_mat32_cpp(NumericVector X, double x, double sigma);
RcppExport SEXP _hetGP_d_mat32_cpp(SEXP XSEXP, SEXP xSEXP, SEXP sigmaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type X(XSEXP);
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type sigma(sigmaSEXP);
    rcpp_result_gen = Rcpp::wrap(d_mat32_cpp(X, x, sigma));
    return rcpp_result_gen;
END_RCPP
}
// c2_mat32_cpp
double c2_mat32_cpp(double x, double t, double w);
RcppExport SEXP _hetGP_c2_mat32_cpp(SEXP xSEXP, SEXP tSEXP, SEXP wSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type t(tSEXP);
    Rcpp::traits::input_parameter< double >::type w(wSEXP);
    rcpp_result_gen = Rcpp::wrap(c2_mat32_cpp(x, t, w));
    return rcpp_result_gen;
END_RCPP
}
// c1_mat32_cpp
NumericVector c1_mat32_cpp(NumericVector X, double x, double sigma, NumericVector W);
RcppExport SEXP _hetGP_c1_mat32_cpp(SEXP XSEXP, SEXP xSEXP, SEXP sigmaSEXP, SEXP WSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type X(XSEXP);
    Rcpp::traits::input_parameter< double >::type x(xSEXP);
    Rcpp::traits::input_parameter< double >::type sigma(sigmaSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type W(WSEXP);
    rcpp_result_gen = Rcpp::wrap(c1_mat32_cpp(X, x, sigma, W));
    return rcpp_result_gen;
END_RCPP
}
// matern5_2_1args
NumericMatrix matern5_2_1args(NumericMatrix X1);
RcppExport SEXP _hetGP_matern5_2_1args(SEXP X1SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    rcpp_result_gen = Rcpp::wrap(matern5_2_1args(X1));
    return rcpp_result_gen;
END_RCPP
}
// d_matern5_2_1args_theta_k_iso
NumericMatrix d_matern5_2_1args_theta_k_iso(NumericMatrix X1, double theta);
RcppExport SEXP _hetGP_d_matern5_2_1args_theta_k_iso(SEXP X1SEXP, SEXP thetaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< double >::type theta(thetaSEXP);
    rcpp_result_gen = Rcpp::wrap(d_matern5_2_1args_theta_k_iso(X1, theta));
    return rcpp_result_gen;
END_RCPP
}
// d_matern5_2_1args_theta_k
NumericMatrix d_matern5_2_1args_theta_k(NumericMatrix X1, double theta);
RcppExport SEXP _hetGP_d_matern5_2_1args_theta_k(SEXP X1SEXP, SEXP thetaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< double >::type theta(thetaSEXP);
    rcpp_result_gen = Rcpp::wrap(d_matern5_2_1args_theta_k(X1, theta));
    return rcpp_result_gen;
END_RCPP
}
// d_matern5_2_1args_kthetag
NumericMatrix d_matern5_2_1args_kthetag(NumericMatrix X1, double kt);
RcppExport SEXP _hetGP_d_matern5_2_1args_kthetag(SEXP X1SEXP, SEXP ktSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< double >::type kt(ktSEXP);
    rcpp_result_gen = Rcpp::wrap(d_matern5_2_1args_kthetag(X1, kt));
    return rcpp_result_gen;
END_RCPP
}
// matern5_2_2args
NumericMatrix matern5_2_2args(NumericMatrix X1, NumericMatrix X2);
RcppExport SEXP _hetGP_matern5_2_2args(SEXP X1SEXP, SEXP X2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type X2(X2SEXP);
    rcpp_result_gen = Rcpp::wrap(matern5_2_2args(X1, X2));
    return rcpp_result_gen;
END_RCPP
}
// d_matern5_2_2args_theta_k_iso
NumericMatrix d_matern5_2_2args_theta_k_iso(NumericMatrix X1, NumericMatrix X2, double theta);
RcppExport SEXP _hetGP_d_matern5_2_2args_theta_k_iso(SEXP X1SEXP, SEXP X2SEXP, SEXP thetaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type X2(X2SEXP);
    Rcpp::traits::input_parameter< double >::type theta(thetaSEXP);
    rcpp_result_gen = Rcpp::wrap(d_matern5_2_2args_theta_k_iso(X1, X2, theta));
    return rcpp_result_gen;
END_RCPP
}
// d_matern5_2_2args_kthetag
NumericMatrix d_matern5_2_2args_kthetag(NumericMatrix X1, NumericMatrix X2, double kt);
RcppExport SEXP _hetGP_d_matern5_2_2args_kthetag(SEXP X1SEXP, SEXP X2SEXP, SEXP ktSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type X2(X2SEXP);
    Rcpp::traits::input_parameter< double >::type kt(ktSEXP);
    rcpp_result_gen = Rcpp::wrap(d_matern5_2_2args_kthetag(X1, X2, kt));
    return rcpp_result_gen;
END_RCPP
}
// partial_d_dist_abs_dX_i1_i2
NumericMatrix partial_d_dist_abs_dX_i1_i2(NumericMatrix X1, int i1, int i2);
RcppExport SEXP _hetGP_partial_d_dist_abs_dX_i1_i2(SEXP X1SEXP, SEXP i1SEXP, SEXP i2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< int >::type i1(i1SEXP);
    Rcpp::traits::input_parameter< int >::type i2(i2SEXP);
    rcpp_result_gen = Rcpp::wrap(partial_d_dist_abs_dX_i1_i2(X1, i1, i2));
    return rcpp_result_gen;
END_RCPP
}
// partial_d_dist_abs_dX1_i1_i2_X2
NumericMatrix partial_d_dist_abs_dX1_i1_i2_X2(NumericMatrix X1, NumericMatrix X2, int i1, int i2);
RcppExport SEXP _hetGP_partial_d_dist_abs_dX1_i1_i2_X2(SEXP X1SEXP, SEXP X2SEXP, SEXP i1SEXP, SEXP i2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type X2(X2SEXP);
    Rcpp::traits::input_parameter< int >::type i1(i1SEXP);
    Rcpp::traits::input_parameter< int >::type i2(i2SEXP);
    rcpp_result_gen = Rcpp::wrap(partial_d_dist_abs_dX1_i1_i2_X2(X1, X2, i1, i2));
    return rcpp_result_gen;
END_RCPP
}
// matern3_2_1args
NumericMatrix matern3_2_1args(NumericMatrix X1);
RcppExport SEXP _hetGP_matern3_2_1args(SEXP X1SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    rcpp_result_gen = Rcpp::wrap(matern3_2_1args(X1));
    return rcpp_result_gen;
END_RCPP
}
// d_matern3_2_1args_theta_k_iso
NumericMatrix d_matern3_2_1args_theta_k_iso(NumericMatrix X1, double theta);
RcppExport SEXP _hetGP_d_matern3_2_1args_theta_k_iso(SEXP X1SEXP, SEXP thetaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< double >::type theta(thetaSEXP);
    rcpp_result_gen = Rcpp::wrap(d_matern3_2_1args_theta_k_iso(X1, theta));
    return rcpp_result_gen;
END_RCPP
}
// d_matern3_2_1args_theta_k
NumericMatrix d_matern3_2_1args_theta_k(NumericMatrix X1, double theta);
RcppExport SEXP _hetGP_d_matern3_2_1args_theta_k(SEXP X1SEXP, SEXP thetaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< double >::type theta(thetaSEXP);
    rcpp_result_gen = Rcpp::wrap(d_matern3_2_1args_theta_k(X1, theta));
    return rcpp_result_gen;
END_RCPP
}
// d_matern3_2_1args_kthetag
NumericMatrix d_matern3_2_1args_kthetag(NumericMatrix X1, double kt);
RcppExport SEXP _hetGP_d_matern3_2_1args_kthetag(SEXP X1SEXP, SEXP ktSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< double >::type kt(ktSEXP);
    rcpp_result_gen = Rcpp::wrap(d_matern3_2_1args_kthetag(X1, kt));
    return rcpp_result_gen;
END_RCPP
}
// matern3_2_2args
NumericMatrix matern3_2_2args(NumericMatrix X1, NumericMatrix X2);
RcppExport SEXP _hetGP_matern3_2_2args(SEXP X1SEXP, SEXP X2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type X2(X2SEXP);
    rcpp_result_gen = Rcpp::wrap(matern3_2_2args(X1, X2));
    return rcpp_result_gen;
END_RCPP
}
// d_matern3_2_2args_theta_k_iso
NumericMatrix d_matern3_2_2args_theta_k_iso(NumericMatrix X1, NumericMatrix X2, double theta);
RcppExport SEXP _hetGP_d_matern3_2_2args_theta_k_iso(SEXP X1SEXP, SEXP X2SEXP, SEXP thetaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type X2(X2SEXP);
    Rcpp::traits::input_parameter< double >::type theta(thetaSEXP);
    rcpp_result_gen = Rcpp::wrap(d_matern3_2_2args_theta_k_iso(X1, X2, theta));
    return rcpp_result_gen;
END_RCPP
}
// d_matern3_2_2args_kthetag
NumericMatrix d_matern3_2_2args_kthetag(NumericMatrix X1, NumericMatrix X2, double kt);
RcppExport SEXP _hetGP_d_matern3_2_2args_kthetag(SEXP X1SEXP, SEXP X2SEXP, SEXP ktSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type X2(X2SEXP);
    Rcpp::traits::input_parameter< double >::type kt(ktSEXP);
    rcpp_result_gen = Rcpp::wrap(d_matern3_2_2args_kthetag(X1, X2, kt));
    return rcpp_result_gen;
END_RCPP
}
// partial_d_dist_abs_dX_i1_i2_m32
NumericMatrix partial_d_dist_abs_dX_i1_i2_m32(NumericMatrix X1, int i1, int i2);
RcppExport SEXP _hetGP_partial_d_dist_abs_dX_i1_i2_m32(SEXP X1SEXP, SEXP i1SEXP, SEXP i2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< int >::type i1(i1SEXP);
    Rcpp::traits::input_parameter< int >::type i2(i2SEXP);
    rcpp_result_gen = Rcpp::wrap(partial_d_dist_abs_dX_i1_i2_m32(X1, i1, i2));
    return rcpp_result_gen;
END_RCPP
}
// partial_d_dist_abs_dX1_i1_i2_X2_m32
NumericMatrix partial_d_dist_abs_dX1_i1_i2_X2_m32(NumericMatrix X1, NumericMatrix X2, int i1, int i2);
RcppExport SEXP _hetGP_partial_d_dist_abs_dX1_i1_i2_X2_m32(SEXP X1SEXP, SEXP X2SEXP, SEXP i1SEXP, SEXP i2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type X2(X2SEXP);
    Rcpp::traits::input_parameter< int >::type i1(i1SEXP);
    Rcpp::traits::input_parameter< int >::type i2(i2SEXP);
    rcpp_result_gen = Rcpp::wrap(partial_d_dist_abs_dX1_i1_i2_X2_m32(X1, X2, i1, i2));
    return rcpp_result_gen;
END_RCPP
}
// distance_cpp
NumericMatrix distance_cpp(NumericMatrix X1, Rcpp::Nullable<Rcpp::NumericMatrix> X2, Rcpp::Nullable<Rcpp::NumericVector> m);
RcppExport SEXP _hetGP_distance_cpp(SEXP X1SEXP, SEXP X2SEXP, SEXP mSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::NumericMatrix> >::type X2(X2SEXP);
    Rcpp::traits::input_parameter< Rcpp::Nullable<Rcpp::NumericVector> >::type m(mSEXP);
    rcpp_result_gen = Rcpp::wrap(distance_cpp(X1, X2, m));
    return rcpp_result_gen;
END_RCPP
}
// partial_d_dist_dX_i1_i2
NumericMatrix partial_d_dist_dX_i1_i2(NumericMatrix X1, int i1, int i2);
RcppExport SEXP _hetGP_partial_d_dist_dX_i1_i2(SEXP X1SEXP, SEXP i1SEXP, SEXP i2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< int >::type i1(i1SEXP);
    Rcpp::traits::input_parameter< int >::type i2(i2SEXP);
    rcpp_result_gen = Rcpp::wrap(partial_d_dist_dX_i1_i2(X1, i1, i2));
    return rcpp_result_gen;
END_RCPP
}
// partial_d_dist_dX1_i1_i2_X2
NumericMatrix partial_d_dist_dX1_i1_i2_X2(NumericMatrix X1, NumericMatrix X2, int i1, int i2);
RcppExport SEXP _hetGP_partial_d_dist_dX1_i1_i2_X2(SEXP X1SEXP, SEXP X2SEXP, SEXP i1SEXP, SEXP i2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X1(X1SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type X2(X2SEXP);
    Rcpp::traits::input_parameter< int >::type i1(i1SEXP);
    Rcpp::traits::input_parameter< int >::type i2(i2SEXP);
    rcpp_result_gen = Rcpp::wrap(partial_d_dist_dX1_i1_i2_X2(X1, X2, i1, i2));
    return rcpp_result_gen;
END_RCPP
}
// nonDomInd_cpp
std::vector<int> nonDomInd_cpp(NumericMatrix mat);
RcppExport SEXP _hetGP_nonDomInd_cpp(SEXP matSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type mat(matSEXP);
    rcpp_result_gen = Rcpp::wrap(nonDomInd_cpp(mat));
    return rcpp_result_gen;
END_RCPP
}
// nonDomSet
LogicalVector nonDomSet(NumericMatrix points, NumericMatrix ref);
RcppExport SEXP _hetGP_nonDomSet(SEXP pointsSEXP, SEXP refSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type points(pointsSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type ref(refSEXP);
    rcpp_result_gen = Rcpp::wrap(nonDomSet(points, ref));
    return rcpp_result_gen;
END_RCPP
}
// fast_diag
NumericVector fast_diag(NumericMatrix A, NumericMatrix B);
RcppExport SEXP _hetGP_fast_diag(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(fast_diag(A, B));
    return rcpp_result_gen;
END_RCPP
}
// add_diag
NumericMatrix add_diag(NumericMatrix A, NumericVector B);
RcppExport SEXP _hetGP_add_diag(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< NumericVector >::type B(BSEXP);
    rcpp_result_gen = Rcpp::wrap(add_diag(A, B));
    return rcpp_result_gen;
END_RCPP
}
// fast_tUY2
NumericVector fast_tUY2(IntegerVector mult, NumericVector Y2);
RcppExport SEXP _hetGP_fast_tUY2(SEXP multSEXP, SEXP Y2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerVector >::type mult(multSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type Y2(Y2SEXP);
    rcpp_result_gen = Rcpp::wrap(fast_tUY2(mult, Y2));
    return rcpp_result_gen;
END_RCPP
}
// fast_trace
double fast_trace(NumericMatrix A, NumericMatrix B);
RcppExport SEXP _hetGP_fast_trace(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(fast_trace(A, B));
    return rcpp_result_gen;
END_RCPP
}
// trace_sym
double trace_sym(NumericMatrix A, NumericMatrix B);
RcppExport SEXP _hetGP_trace_sym(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(trace_sym(A, B));
    return rcpp_result_gen;
END_RCPP
}
// find_corres
IntegerVector find_corres(NumericMatrix X0, NumericMatrix X);
RcppExport SEXP _hetGP_find_corres(SEXP X0SEXP, SEXP XSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type X0(X0SEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type X(XSEXP);
    rcpp_result_gen = Rcpp::wrap(find_corres(X0, X));
    return rcpp_result_gen;
END_RCPP
}
// v1cpp
double v1cpp(double mu1, double mu2, double s1, double s2, double rho);
RcppExport SEXP _hetGP_v1cpp(SEXP mu1SEXP, SEXP mu2SEXP, SEXP s1SEXP, SEXP s2SEXP, SEXP rhoSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type mu1(mu1SEXP);
    Rcpp::traits::input_parameter< double >::type mu2(mu2SEXP);
    Rcpp::traits::input_parameter< double >::type s1(s1SEXP);
    Rcpp::traits::input_parameter< double >::type s2(s2SEXP);
    Rcpp::traits::input_parameter< double >::type rho(rhoSEXP);
    rcpp_result_gen = Rcpp::wrap(v1cpp(mu1, mu2, s1, s2, rho));
    return rcpp_result_gen;
END_RCPP
}
// v2cpp
double v2cpp(double mu1, double mu2, double s1, double s2, double rho);
RcppExport SEXP _hetGP_v2cpp(SEXP mu1SEXP, SEXP mu2SEXP, SEXP s1SEXP, SEXP s2SEXP, SEXP rhoSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type mu1(mu1SEXP);
    Rcpp::traits::input_parameter< double >::type mu2(mu2SEXP);
    Rcpp::traits::input_parameter< double >::type s1(s1SEXP);
    Rcpp::traits::input_parameter< double >::type s2(s2SEXP);
    Rcpp::traits::input_parameter< double >::type rho(rhoSEXP);
    rcpp_result_gen = Rcpp::wrap(v2cpp(mu1, mu2, s1, s2, rho));
    return rcpp_result_gen;
END_RCPP
}
// r_cpp
double r_cpp(double mu1, double mu2, double s1, double s2, double rho, double rho1, double rho2);
RcppExport SEXP _hetGP_r_cpp(SEXP mu1SEXP, SEXP mu2SEXP, SEXP s1SEXP, SEXP s2SEXP, SEXP rhoSEXP, SEXP rho1SEXP, SEXP rho2SEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< double >::type mu1(mu1SEXP);
    Rcpp::traits::input_parameter< double >::type mu2(mu2SEXP);
    Rcpp::traits::input_parameter< double >::type s1(s1SEXP);
    Rcpp::traits::input_parameter< double >::type s2(s2SEXP);
    Rcpp::traits::input_parameter< double >::type rho(rhoSEXP);
    Rcpp::traits::input_parameter< double >::type rho1(rho1SEXP);
    Rcpp::traits::input_parameter< double >::type rho2(rho2SEXP);
    rcpp_result_gen = Rcpp::wrap(r_cpp(mu1, mu2, s1, s2, rho, rho1, rho2));
    return rcpp_result_gen;
END_RCPP
}
// qEI_cpp
double qEI_cpp(NumericVector mu, NumericVector s, NumericMatrix cor, double threshold);
RcppExport SEXP _hetGP_qEI_cpp(SEXP muSEXP, SEXP sSEXP, SEXP corSEXP, SEXP thresholdSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type mu(muSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type s(sSEXP);
    Rcpp::traits::input_parameter< NumericMatrix >::type cor(corSEXP);
    Rcpp::traits::input_parameter< double >::type threshold(thresholdSEXP);
    rcpp_result_gen = Rcpp::wrap(qEI_cpp(mu, s, cor, threshold));
    return rcpp_result_gen;
END_RCPP
}
// hyperSharperP
NumericMatrix hyperSharperP(NumericMatrix A, NumericVector l, NumericVector u);
RcppExport SEXP _hetGP_hyperSharperP(SEXP ASEXP, SEXP lSEXP, SEXP uSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type A(ASEXP);
    Rcpp::traits::input_parameter< NumericVector >::type l(lSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type u(uSEXP);
    rcpp_result_gen = Rcpp::wrap(hyperSharperP(A, l, u));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_hetGP_mi_gauss_cpp", (DL_FUNC) &_hetGP_mi_gauss_cpp, 2},
    {"_hetGP_Wijs_gauss_cpp", (DL_FUNC) &_hetGP_Wijs_gauss_cpp, 3},
    {"_hetGP_Wijs_gauss_sym_cpp", (DL_FUNC) &_hetGP_Wijs_gauss_sym_cpp, 2},
    {"_hetGP_d_gauss_cpp", (DL_FUNC) &_hetGP_d_gauss_cpp, 3},
    {"_hetGP_c2_gauss_cpp", (DL_FUNC) &_hetGP_c2_gauss_cpp, 3},
    {"_hetGP_c1_gauss_cpp", (DL_FUNC) &_hetGP_c1_gauss_cpp, 4},
    {"_hetGP_mi_mat52_cpp", (DL_FUNC) &_hetGP_mi_mat52_cpp, 2},
    {"_hetGP_Wijs_mat52_cpp", (DL_FUNC) &_hetGP_Wijs_mat52_cpp, 3},
    {"_hetGP_Wijs_mat52_sym_cpp", (DL_FUNC) &_hetGP_Wijs_mat52_sym_cpp, 2},
    {"_hetGP_c2_mat52_cpp", (DL_FUNC) &_hetGP_c2_mat52_cpp, 3},
    {"_hetGP_c1_mat52_cpp", (DL_FUNC) &_hetGP_c1_mat52_cpp, 4},
    {"_hetGP_d_mat52_cpp", (DL_FUNC) &_hetGP_d_mat52_cpp, 3},
    {"_hetGP_mi_mat32_cpp", (DL_FUNC) &_hetGP_mi_mat32_cpp, 2},
    {"_hetGP_Wijs_mat32_cpp", (DL_FUNC) &_hetGP_Wijs_mat32_cpp, 3},
    {"_hetGP_Wijs_mat32_sym_cpp", (DL_FUNC) &_hetGP_Wijs_mat32_sym_cpp, 2},
    {"_hetGP_d_mat32_cpp", (DL_FUNC) &_hetGP_d_mat32_cpp, 3},
    {"_hetGP_c2_mat32_cpp", (DL_FUNC) &_hetGP_c2_mat32_cpp, 3},
    {"_hetGP_c1_mat32_cpp", (DL_FUNC) &_hetGP_c1_mat32_cpp, 4},
    {"_hetGP_matern5_2_1args", (DL_FUNC) &_hetGP_matern5_2_1args, 1},
    {"_hetGP_d_matern5_2_1args_theta_k_iso", (DL_FUNC) &_hetGP_d_matern5_2_1args_theta_k_iso, 2},
    {"_hetGP_d_matern5_2_1args_theta_k", (DL_FUNC) &_hetGP_d_matern5_2_1args_theta_k, 2},
    {"_hetGP_d_matern5_2_1args_kthetag", (DL_FUNC) &_hetGP_d_matern5_2_1args_kthetag, 2},
    {"_hetGP_matern5_2_2args", (DL_FUNC) &_hetGP_matern5_2_2args, 2},
    {"_hetGP_d_matern5_2_2args_theta_k_iso", (DL_FUNC) &_hetGP_d_matern5_2_2args_theta_k_iso, 3},
    {"_hetGP_d_matern5_2_2args_kthetag", (DL_FUNC) &_hetGP_d_matern5_2_2args_kthetag, 3},
    {"_hetGP_partial_d_dist_abs_dX_i1_i2", (DL_FUNC) &_hetGP_partial_d_dist_abs_dX_i1_i2, 3},
    {"_hetGP_partial_d_dist_abs_dX1_i1_i2_X2", (DL_FUNC) &_hetGP_partial_d_dist_abs_dX1_i1_i2_X2, 4},
    {"_hetGP_matern3_2_1args", (DL_FUNC) &_hetGP_matern3_2_1args, 1},
    {"_hetGP_d_matern3_2_1args_theta_k_iso", (DL_FUNC) &_hetGP_d_matern3_2_1args_theta_k_iso, 2},
    {"_hetGP_d_matern3_2_1args_theta_k", (DL_FUNC) &_hetGP_d_matern3_2_1args_theta_k, 2},
    {"_hetGP_d_matern3_2_1args_kthetag", (DL_FUNC) &_hetGP_d_matern3_2_1args_kthetag, 2},
    {"_hetGP_matern3_2_2args", (DL_FUNC) &_hetGP_matern3_2_2args, 2},
    {"_hetGP_d_matern3_2_2args_theta_k_iso", (DL_FUNC) &_hetGP_d_matern3_2_2args_theta_k_iso, 3},
    {"_hetGP_d_matern3_2_2args_kthetag", (DL_FUNC) &_hetGP_d_matern3_2_2args_kthetag, 3},
    {"_hetGP_partial_d_dist_abs_dX_i1_i2_m32", (DL_FUNC) &_hetGP_partial_d_dist_abs_dX_i1_i2_m32, 3},
    {"_hetGP_partial_d_dist_abs_dX1_i1_i2_X2_m32", (DL_FUNC) &_hetGP_partial_d_dist_abs_dX1_i1_i2_X2_m32, 4},
    {"_hetGP_distance_cpp", (DL_FUNC) &_hetGP_distance_cpp, 3},
    {"_hetGP_partial_d_dist_dX_i1_i2", (DL_FUNC) &_hetGP_partial_d_dist_dX_i1_i2, 3},
    {"_hetGP_partial_d_dist_dX1_i1_i2_X2", (DL_FUNC) &_hetGP_partial_d_dist_dX1_i1_i2_X2, 4},
    {"_hetGP_nonDomInd_cpp", (DL_FUNC) &_hetGP_nonDomInd_cpp, 1},
    {"_hetGP_nonDomSet", (DL_FUNC) &_hetGP_nonDomSet, 2},
    {"_hetGP_fast_diag", (DL_FUNC) &_hetGP_fast_diag, 2},
    {"_hetGP_add_diag", (DL_FUNC) &_hetGP_add_diag, 2},
    {"_hetGP_fast_tUY2", (DL_FUNC) &_hetGP_fast_tUY2, 2},
    {"_hetGP_fast_trace", (DL_FUNC) &_hetGP_fast_trace, 2},
    {"_hetGP_trace_sym", (DL_FUNC) &_hetGP_trace_sym, 2},
    {"_hetGP_find_corres", (DL_FUNC) &_hetGP_find_corres, 2},
    {"_hetGP_v1cpp", (DL_FUNC) &_hetGP_v1cpp, 5},
    {"_hetGP_v2cpp", (DL_FUNC) &_hetGP_v2cpp, 5},
    {"_hetGP_r_cpp", (DL_FUNC) &_hetGP_r_cpp, 7},
    {"_hetGP_qEI_cpp", (DL_FUNC) &_hetGP_qEI_cpp, 4},
    {"_hetGP_hyperSharperP", (DL_FUNC) &_hetGP_hyperSharperP, 3},
    {NULL, NULL, 0}
};

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