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

// mtlr_objVal
double mtlr_objVal(arma::rowvec params, arma::mat yval, arma::mat featureValue, double C1, arma::vec delta);
RcppExport SEXP _MTLR_mtlr_objVal(SEXP paramsSEXP, SEXP yvalSEXP, SEXP featureValueSEXP, SEXP C1SEXP, SEXP deltaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::rowvec >::type params(paramsSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type yval(yvalSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type featureValue(featureValueSEXP);
    Rcpp::traits::input_parameter< double >::type C1(C1SEXP);
    Rcpp::traits::input_parameter< arma::vec >::type delta(deltaSEXP);
    rcpp_result_gen = Rcpp::wrap(mtlr_objVal(params, yval, featureValue, C1, delta));
    return rcpp_result_gen;
END_RCPP
}
// mtlr_grad
arma::rowvec mtlr_grad(arma::rowvec params, arma::mat yval, arma::mat featureValue, double C1, arma::vec delta);
RcppExport SEXP _MTLR_mtlr_grad(SEXP paramsSEXP, SEXP yvalSEXP, SEXP featureValueSEXP, SEXP C1SEXP, SEXP deltaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::rowvec >::type params(paramsSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type yval(yvalSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type featureValue(featureValueSEXP);
    Rcpp::traits::input_parameter< double >::type C1(C1SEXP);
    Rcpp::traits::input_parameter< arma::vec >::type delta(deltaSEXP);
    rcpp_result_gen = Rcpp::wrap(mtlr_grad(params, yval, featureValue, C1, delta));
    return rcpp_result_gen;
END_RCPP
}
// mtlr_predict
arma::mat mtlr_predict(arma::rowvec params, arma::mat featureValue);
RcppExport SEXP _MTLR_mtlr_predict(SEXP paramsSEXP, SEXP featureValueSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< arma::rowvec >::type params(paramsSEXP);
    Rcpp::traits::input_parameter< arma::mat >::type featureValue(featureValueSEXP);
    rcpp_result_gen = Rcpp::wrap(mtlr_predict(params, featureValue));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_MTLR_mtlr_objVal", (DL_FUNC) &_MTLR_mtlr_objVal, 5},
    {"_MTLR_mtlr_grad", (DL_FUNC) &_MTLR_mtlr_grad, 5},
    {"_MTLR_mtlr_predict", (DL_FUNC) &_MTLR_mtlr_predict, 2},
    {NULL, NULL, 0}
};

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