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

// ort_run
Rcpp::NumericVector ort_run(SEXP session_ptr, Rcpp::NumericVector input_array, std::vector<int> input_shape, std::string input_name, std::string output_name);
RcppExport SEXP _nativeORT_ort_run(SEXP session_ptrSEXP, SEXP input_arraySEXP, SEXP input_shapeSEXP, SEXP input_nameSEXP, SEXP output_nameSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type session_ptr(session_ptrSEXP);
    Rcpp::traits::input_parameter< Rcpp::NumericVector >::type input_array(input_arraySEXP);
    Rcpp::traits::input_parameter< std::vector<int> >::type input_shape(input_shapeSEXP);
    Rcpp::traits::input_parameter< std::string >::type input_name(input_nameSEXP);
    Rcpp::traits::input_parameter< std::string >::type output_name(output_nameSEXP);
    rcpp_result_gen = Rcpp::wrap(ort_run(session_ptr, input_array, input_shape, input_name, output_name));
    return rcpp_result_gen;
END_RCPP
}
// ort_version
std::string ort_version();
RcppExport SEXP _nativeORT_ort_version() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(ort_version());
    return rcpp_result_gen;
END_RCPP
}
// ort_create_env
SEXP ort_create_env();
RcppExport SEXP _nativeORT_ort_create_env() {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    rcpp_result_gen = Rcpp::wrap(ort_create_env());
    return rcpp_result_gen;
END_RCPP
}
// ort_create_session
SEXP ort_create_session(SEXP env_ptr, std::string model_path, std::string provider, std::string cache_dir, int threads, int opt_level);
RcppExport SEXP _nativeORT_ort_create_session(SEXP env_ptrSEXP, SEXP model_pathSEXP, SEXP providerSEXP, SEXP cache_dirSEXP, SEXP threadsSEXP, SEXP opt_levelSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type env_ptr(env_ptrSEXP);
    Rcpp::traits::input_parameter< std::string >::type model_path(model_pathSEXP);
    Rcpp::traits::input_parameter< std::string >::type provider(providerSEXP);
    Rcpp::traits::input_parameter< std::string >::type cache_dir(cache_dirSEXP);
    Rcpp::traits::input_parameter< int >::type threads(threadsSEXP);
    Rcpp::traits::input_parameter< int >::type opt_level(opt_levelSEXP);
    rcpp_result_gen = Rcpp::wrap(ort_create_session(env_ptr, model_path, provider, cache_dir, threads, opt_level));
    return rcpp_result_gen;
END_RCPP
}
// ort_session_input_count
int ort_session_input_count(SEXP session_ptr);
RcppExport SEXP _nativeORT_ort_session_input_count(SEXP session_ptrSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type session_ptr(session_ptrSEXP);
    rcpp_result_gen = Rcpp::wrap(ort_session_input_count(session_ptr));
    return rcpp_result_gen;
END_RCPP
}
// ort_session_output_count
int ort_session_output_count(SEXP session_ptr);
RcppExport SEXP _nativeORT_ort_session_output_count(SEXP session_ptrSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type session_ptr(session_ptrSEXP);
    rcpp_result_gen = Rcpp::wrap(ort_session_output_count(session_ptr));
    return rcpp_result_gen;
END_RCPP
}
// ort_session_input_names
std::vector<std::string> ort_session_input_names(SEXP session_ptr);
RcppExport SEXP _nativeORT_ort_session_input_names(SEXP session_ptrSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type session_ptr(session_ptrSEXP);
    rcpp_result_gen = Rcpp::wrap(ort_session_input_names(session_ptr));
    return rcpp_result_gen;
END_RCPP
}
// ort_session_output_names
std::vector<std::string> ort_session_output_names(SEXP session_ptr);
RcppExport SEXP _nativeORT_ort_session_output_names(SEXP session_ptrSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< SEXP >::type session_ptr(session_ptrSEXP);
    rcpp_result_gen = Rcpp::wrap(ort_session_output_names(session_ptr));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_nativeORT_ort_run", (DL_FUNC) &_nativeORT_ort_run, 5},
    {"_nativeORT_ort_version", (DL_FUNC) &_nativeORT_ort_version, 0},
    {"_nativeORT_ort_create_env", (DL_FUNC) &_nativeORT_ort_create_env, 0},
    {"_nativeORT_ort_create_session", (DL_FUNC) &_nativeORT_ort_create_session, 6},
    {"_nativeORT_ort_session_input_count", (DL_FUNC) &_nativeORT_ort_session_input_count, 1},
    {"_nativeORT_ort_session_output_count", (DL_FUNC) &_nativeORT_ort_session_output_count, 1},
    {"_nativeORT_ort_session_input_names", (DL_FUNC) &_nativeORT_ort_session_input_names, 1},
    {"_nativeORT_ort_session_output_names", (DL_FUNC) &_nativeORT_ort_session_output_names, 1},
    {NULL, NULL, 0}
};

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