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

// trust_region_cpp
List trust_region_cpp(Function objfun, NumericVector parinit, double rinit, double rmax, int iterlim, bool minimize, double tol, double eta, NumericVector lower, NumericVector upper);
RcppExport SEXP _vntrs_trust_region_cpp(SEXP objfunSEXP, SEXP parinitSEXP, SEXP rinitSEXP, SEXP rmaxSEXP, SEXP iterlimSEXP, SEXP minimizeSEXP, SEXP tolSEXP, SEXP etaSEXP, SEXP lowerSEXP, SEXP upperSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Function >::type objfun(objfunSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type parinit(parinitSEXP);
    Rcpp::traits::input_parameter< double >::type rinit(rinitSEXP);
    Rcpp::traits::input_parameter< double >::type rmax(rmaxSEXP);
    Rcpp::traits::input_parameter< int >::type iterlim(iterlimSEXP);
    Rcpp::traits::input_parameter< bool >::type minimize(minimizeSEXP);
    Rcpp::traits::input_parameter< double >::type tol(tolSEXP);
    Rcpp::traits::input_parameter< double >::type eta(etaSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lower(lowerSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type upper(upperSEXP);
    rcpp_result_gen = Rcpp::wrap(trust_region_cpp(objfun, parinit, rinit, rmax, iterlim, minimize, tol, eta, lower, upper));
    return rcpp_result_gen;
END_RCPP
}
// vntrs_cpp
SEXP vntrs_cpp(Function f, int npar, bool minimize, int init_runs, double init_min, double init_max, int init_iterlim, int neighborhoods, int neighbors, double beta, int iterlim, double tolerance, double inferior_tolerance, bool has_time_limit, double time_limit, int cores, NumericVector lower, NumericVector upper, bool quiet, bool collect_all_optima);
RcppExport SEXP _vntrs_vntrs_cpp(SEXP fSEXP, SEXP nparSEXP, SEXP minimizeSEXP, SEXP init_runsSEXP, SEXP init_minSEXP, SEXP init_maxSEXP, SEXP init_iterlimSEXP, SEXP neighborhoodsSEXP, SEXP neighborsSEXP, SEXP betaSEXP, SEXP iterlimSEXP, SEXP toleranceSEXP, SEXP inferior_toleranceSEXP, SEXP has_time_limitSEXP, SEXP time_limitSEXP, SEXP coresSEXP, SEXP lowerSEXP, SEXP upperSEXP, SEXP quietSEXP, SEXP collect_all_optimaSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< Function >::type f(fSEXP);
    Rcpp::traits::input_parameter< int >::type npar(nparSEXP);
    Rcpp::traits::input_parameter< bool >::type minimize(minimizeSEXP);
    Rcpp::traits::input_parameter< int >::type init_runs(init_runsSEXP);
    Rcpp::traits::input_parameter< double >::type init_min(init_minSEXP);
    Rcpp::traits::input_parameter< double >::type init_max(init_maxSEXP);
    Rcpp::traits::input_parameter< int >::type init_iterlim(init_iterlimSEXP);
    Rcpp::traits::input_parameter< int >::type neighborhoods(neighborhoodsSEXP);
    Rcpp::traits::input_parameter< int >::type neighbors(neighborsSEXP);
    Rcpp::traits::input_parameter< double >::type beta(betaSEXP);
    Rcpp::traits::input_parameter< int >::type iterlim(iterlimSEXP);
    Rcpp::traits::input_parameter< double >::type tolerance(toleranceSEXP);
    Rcpp::traits::input_parameter< double >::type inferior_tolerance(inferior_toleranceSEXP);
    Rcpp::traits::input_parameter< bool >::type has_time_limit(has_time_limitSEXP);
    Rcpp::traits::input_parameter< double >::type time_limit(time_limitSEXP);
    Rcpp::traits::input_parameter< int >::type cores(coresSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type lower(lowerSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type upper(upperSEXP);
    Rcpp::traits::input_parameter< bool >::type quiet(quietSEXP);
    Rcpp::traits::input_parameter< bool >::type collect_all_optima(collect_all_optimaSEXP);
    rcpp_result_gen = Rcpp::wrap(vntrs_cpp(f, npar, minimize, init_runs, init_min, init_max, init_iterlim, neighborhoods, neighbors, beta, iterlim, tolerance, inferior_tolerance, has_time_limit, time_limit, cores, lower, upper, quiet, collect_all_optima));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_vntrs_trust_region_cpp", (DL_FUNC) &_vntrs_trust_region_cpp, 10},
    {"_vntrs_vntrs_cpp", (DL_FUNC) &_vntrs_vntrs_cpp, 20},
    {NULL, NULL, 0}
};

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