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

// RIC
double RIC(NumericMatrix& X, int d, int n, NumericVector& r, int t);
RcppExport SEXP _huge_RIC(SEXP XSEXP, SEXP dSEXP, SEXP nSEXP, SEXP rSEXP, SEXP tSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix& >::type X(XSEXP);
    Rcpp::traits::input_parameter< int >::type d(dSEXP);
    Rcpp::traits::input_parameter< int >::type n(nSEXP);
    Rcpp::traits::input_parameter< NumericVector& >::type r(rSEXP);
    Rcpp::traits::input_parameter< int >::type t(tSEXP);
    rcpp_result_gen = Rcpp::wrap(RIC(X, d, n, r, t));
    return rcpp_result_gen;
END_RCPP
}
// SFGen
List SFGen(int d0, int d);
RcppExport SEXP _huge_SFGen(SEXP d0SEXP, SEXP dSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< int >::type d0(d0SEXP);
    Rcpp::traits::input_parameter< int >::type d(dSEXP);
    rcpp_result_gen = Rcpp::wrap(SFGen(d0, d));
    return rcpp_result_gen;
END_RCPP
}
// SPMBscr
List SPMBscr(NumericMatrix S, NumericVector lambda, int nlambda, int d, IntegerMatrix idx_scr, int nscr);
RcppExport SEXP _huge_SPMBscr(SEXP SSEXP, SEXP lambdaSEXP, SEXP nlambdaSEXP, SEXP dSEXP, SEXP idx_scrSEXP, SEXP nscrSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type S(SSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lambda(lambdaSEXP);
    Rcpp::traits::input_parameter< int >::type nlambda(nlambdaSEXP);
    Rcpp::traits::input_parameter< int >::type d(dSEXP);
    Rcpp::traits::input_parameter< IntegerMatrix >::type idx_scr(idx_scrSEXP);
    Rcpp::traits::input_parameter< int >::type nscr(nscrSEXP);
    rcpp_result_gen = Rcpp::wrap(SPMBscr(S, lambda, nlambda, d, idx_scr, nscr));
    return rcpp_result_gen;
END_RCPP
}
// SPMBgraph
List SPMBgraph(NumericMatrix S, NumericVector lambda, int nlambda, int d);
RcppExport SEXP _huge_SPMBgraph(SEXP SSEXP, SEXP lambdaSEXP, SEXP nlambdaSEXP, SEXP dSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type S(SSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lambda(lambdaSEXP);
    Rcpp::traits::input_parameter< int >::type nlambda(nlambdaSEXP);
    Rcpp::traits::input_parameter< int >::type d(dSEXP);
    rcpp_result_gen = Rcpp::wrap(SPMBgraph(S, lambda, nlambda, d));
    return rcpp_result_gen;
END_RCPP
}
// SPMBgraphsqrt
List SPMBgraphsqrt(NumericMatrix data, NumericVector lambda, int nlambda, int d);
RcppExport SEXP _huge_SPMBgraphsqrt(SEXP dataSEXP, SEXP lambdaSEXP, SEXP nlambdaSEXP, SEXP dSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type data(dataSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lambda(lambdaSEXP);
    Rcpp::traits::input_parameter< int >::type nlambda(nlambdaSEXP);
    Rcpp::traits::input_parameter< int >::type d(dSEXP);
    rcpp_result_gen = Rcpp::wrap(SPMBgraphsqrt(data, lambda, nlambda, d));
    return rcpp_result_gen;
END_RCPP
}
// SPMBgraphsqrtFit
List SPMBgraphsqrtFit(NumericMatrix input, Nullable<NumericVector> lambda, int nlambda, int d, bool covariance_input, double lambda_min_ratio);
RcppExport SEXP _huge_SPMBgraphsqrtFit(SEXP inputSEXP, SEXP lambdaSEXP, SEXP nlambdaSEXP, SEXP dSEXP, SEXP covariance_inputSEXP, SEXP lambda_min_ratioSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type input(inputSEXP);
    Rcpp::traits::input_parameter< Nullable<NumericVector> >::type lambda(lambdaSEXP);
    Rcpp::traits::input_parameter< int >::type nlambda(nlambdaSEXP);
    Rcpp::traits::input_parameter< int >::type d(dSEXP);
    Rcpp::traits::input_parameter< bool >::type covariance_input(covariance_inputSEXP);
    Rcpp::traits::input_parameter< double >::type lambda_min_ratio(lambda_min_ratioSEXP);
    rcpp_result_gen = Rcpp::wrap(SPMBgraphsqrtFit(input, lambda, nlambda, d, covariance_input, lambda_min_ratio));
    return rcpp_result_gen;
END_RCPP
}
// hugeglasso
List hugeglasso(NumericMatrix S, NumericVector lambda, bool scr, bool verbose, bool cov_output);
RcppExport SEXP _huge_hugeglasso(SEXP SSEXP, SEXP lambdaSEXP, SEXP scrSEXP, SEXP verboseSEXP, SEXP cov_outputSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericMatrix >::type S(SSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lambda(lambdaSEXP);
    Rcpp::traits::input_parameter< bool >::type scr(scrSEXP);
    Rcpp::traits::input_parameter< bool >::type verbose(verboseSEXP);
    Rcpp::traits::input_parameter< bool >::type cov_output(cov_outputSEXP);
    rcpp_result_gen = Rcpp::wrap(hugeglasso(S, lambda, scr, verbose, cov_output));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_huge_RIC", (DL_FUNC) &_huge_RIC, 5},
    {"_huge_SFGen", (DL_FUNC) &_huge_SFGen, 2},
    {"_huge_SPMBscr", (DL_FUNC) &_huge_SPMBscr, 6},
    {"_huge_SPMBgraph", (DL_FUNC) &_huge_SPMBgraph, 4},
    {"_huge_SPMBgraphsqrt", (DL_FUNC) &_huge_SPMBgraphsqrt, 4},
    {"_huge_SPMBgraphsqrtFit", (DL_FUNC) &_huge_SPMBgraphsqrtFit, 6},
    {"_huge_hugeglasso", (DL_FUNC) &_huge_hugeglasso, 5},
    {NULL, NULL, 0}
};

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