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

// CARDfree
SEXP CARDfree(SEXP XinputIn, SEXP UIn, SEXP WIn, SEXP phiIn, SEXP max_iterIn, SEXP epsilonIn, SEXP initV, SEXP initb, SEXP initSigma_e2, SEXP initLambda);
RcppExport SEXP _CARDspa_CARDfree(SEXP XinputInSEXP, SEXP UInSEXP, SEXP WInSEXP, SEXP phiInSEXP, SEXP max_iterInSEXP, SEXP epsilonInSEXP, SEXP initVSEXP, SEXP initbSEXP, SEXP initSigma_e2SEXP, SEXP initLambdaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type XinputIn(XinputInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type UIn(UInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type WIn(WInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type phiIn(phiInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type max_iterIn(max_iterInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type epsilonIn(epsilonInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type initV(initVSEXP);
    Rcpp::traits::input_parameter< SEXP >::type initb(initbSEXP);
    Rcpp::traits::input_parameter< SEXP >::type initSigma_e2(initSigma_e2SEXP);
    Rcpp::traits::input_parameter< SEXP >::type initLambda(initLambdaSEXP);
    rcpp_result_gen = Rcpp::wrap(CARDfree(XinputIn, UIn, WIn, phiIn, max_iterIn, epsilonIn, initV, initb, initSigma_e2, initLambda));
    return rcpp_result_gen;
END_RCPP
}
// CARDref
SEXP CARDref(SEXP XinputIn, SEXP UIn, SEXP WIn, SEXP phiIn, SEXP max_iterIn, SEXP epsilonIn, SEXP initV, SEXP initb, SEXP initSigma_e2, SEXP initLambda);
RcppExport SEXP _CARDspa_CARDref(SEXP XinputInSEXP, SEXP UInSEXP, SEXP WInSEXP, SEXP phiInSEXP, SEXP max_iterInSEXP, SEXP epsilonInSEXP, SEXP initVSEXP, SEXP initbSEXP, SEXP initSigma_e2SEXP, SEXP initLambdaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type XinputIn(XinputInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type UIn(UInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type WIn(WInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type phiIn(phiInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type max_iterIn(max_iterInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type epsilonIn(epsilonInSEXP);
    Rcpp::traits::input_parameter< SEXP >::type initV(initVSEXP);
    Rcpp::traits::input_parameter< SEXP >::type initb(initbSEXP);
    Rcpp::traits::input_parameter< SEXP >::type initSigma_e2(initSigma_e2SEXP);
    Rcpp::traits::input_parameter< SEXP >::type initLambda(initLambdaSEXP);
    rcpp_result_gen = Rcpp::wrap(CARDref(XinputIn, UIn, WIn, phiIn, max_iterIn, epsilonIn, initV, initb, initSigma_e2, initLambda));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_CARDspa_CARDfree", (DL_FUNC) &_CARDspa_CARDfree, 10},
    {"_CARDspa_CARDref", (DL_FUNC) &_CARDspa_CARDref, 10},
    {NULL, NULL, 0}
};

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