3#include <alpaqa/casadi-loader-export.h>
6#include <guanaqo/dl-flags.hpp>
18using guanaqo::DynamicLoadFlags;
54 [[nodiscard]] std::pair<casadi_int, casadi_int>
size()
const;
80 std::span<double *const> res) {
81 if (arg.size() !=
static_cast<size_t>(
n_in()))
82 throw std::invalid_argument(
"Wrong number of arguments to CasADi "
84 if (res.size() !=
static_cast<size_t>(
n_out()))
85 throw std::invalid_argument(
"Wrong number of outputs to CasADi "
89 std::ranges::copy(arg,
work->arg.begin());
90 std::ranges::copy(res,
work->res.begin());
97 void load(
void *so_handle,
const std::string &func_name);
104 std::vector<const casadi_real *>
arg;
105 std::vector<casadi_real *>
res;
106 std::vector<casadi_int>
iw;
107 std::vector<casadi_real>
w;
130 const std::string &bin_name,
131 DynamicLoadFlags dl_flags);
#define BEGIN_ALPAQA_CASADI_LOADER_NAMESPACE
#define END_ALPAQA_CASADI_LOADER_NAMESPACE
Sparsity(const casadi_int *data)
const casadi_int * colind() const
std::pair< casadi_int, casadi_int > size() const
const casadi_int * row() const
std::vector< const casadi_real * > arg
std::vector< casadi_real * > res
casadi_int size1_out(casadi_int) const
fname_init_mem::signature_t * init_mem
fname_n_out::signature_t * n_out
fname_decref::signature_t * decref
std::vector< casadi_int > iw
std::pair< casadi_int, casadi_int > size_in(casadi_int) const
fname_sparsity_in::signature_t * sparsity_in
std::pair< casadi_int, casadi_int > size_out(casadi_int) const
fname_sparsity_out::signature_t * sparsity_out
std::vector< casadi_real > w
Sparsity sparsity_in(casadi_int) const
std::shared_ptr< void > so_handle
casadi_int size2_out(casadi_int) const
fname_name_in::signature_t * name_in
std::optional< Work > work
Sparsity sparsity_out(casadi_int) const
casadi_int size1_in(casadi_int) const
fname::signature_t * call
fname_alloc_mem::signature_t * alloc_mem
fname_free_mem::signature_t * free_mem
void operator()(std::span< const double *const > arg, std::span< double *const > res)
fname_name_out::signature_t * name_out
fname_incref::signature_t * incref
casadi_int size2_in(casadi_int) const
fname_work::signature_t * work
fname_n_in::signature_t * n_in
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.