3#include <guanaqo/dl.hpp>
7using guanaqo::DynamicLoadFlags;
37 functions.work(&sz_arg, &sz_res, &sz_iw, &sz_w);
38 auto &w =
work.emplace();
39 w.arg.resize(
static_cast<size_t>(sz_arg));
40 w.res.resize(
static_cast<size_t>(sz_res));
41 w.iw.resize(
static_cast<size_t>(sz_iw));
42 w.w.resize(
static_cast<size_t>(sz_w));
47 const std::string &func_name)
49 load(this->so_handle.get(), func_name);
62 work{std::move(o.work)}, mem{std::exchange(o.mem, 0)} {}
99 DynamicLoadFlags flags) {
100 auto lib_handle = guanaqo::load_lib(std::filesystem::path{bin_name}, flags);
101 return Function{std::move(lib_handle), name};
#define BEGIN_ALPAQA_CASADI_LOADER_NAMESPACE
#define END_ALPAQA_CASADI_LOADER_NAMESPACE
std::pair< casadi_int, casadi_int > size() const
Class that loads and calls pre-compiled CasADi functions in a DLL/SO file.
casadi_int size1_out(casadi_int) const
std::pair< casadi_int, casadi_int > size_in(casadi_int) const
void load(void *so_handle, const std::string &func_name)
std::pair< casadi_int, casadi_int > size_out(casadi_int) const
Sparsity sparsity_in(casadi_int) const
std::shared_ptr< void > so_handle
casadi_int size2_out(casadi_int) const
std::optional< Work > work
Sparsity sparsity_out(casadi_int) const
casadi_int size1_in(casadi_int) const
casadi_int size2_in(casadi_int) const
Function external(const std::string &name, const std::string &bin_name, DynamicLoadFlags dl_flags)
Load the given CasADi function from the given DLL/SO file.
static signature_t * load(void *handle, std::string fname)