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

// flm_stat
double flm_stat(arma::mat E, int p, arma::vec Adot_vec, bool constant);
RcppExport SEXP _goffda_flm_stat(SEXP ESEXP, SEXP pSEXP, SEXP Adot_vecSEXP, SEXP constantSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type E(ESEXP);
    Rcpp::traits::input_parameter< int >::type p(pSEXP);
    Rcpp::traits::input_parameter< arma::vec >::type Adot_vec(Adot_vecSEXP);
    Rcpp::traits::input_parameter< bool >::type constant(constantSEXP);
    rcpp_result_gen = Rcpp::wrap(flm_stat(E, p, Adot_vec, constant));
    return rcpp_result_gen;
END_RCPP
}
// Adot
arma::vec Adot(arma::mat X);
RcppExport SEXP _goffda_Adot(SEXP XSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::mat >::type X(XSEXP);
    rcpp_result_gen = Rcpp::wrap(Adot(X));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_goffda_flm_stat", (DL_FUNC) &_goffda_flm_stat, 4},
    {"_goffda_Adot", (DL_FUNC) &_goffda_Adot, 1},
    {NULL, NULL, 0}
};

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