alpaqa 1.1.0a1
Nonconvex constrained optimization
Loading...
Searching...
No Matches
casadi-functions.hpp
Go to the documentation of this file.
1#pragma once
2
4#include "casadi-types.hpp"
5
6#include <guanaqo/dl.hpp>
7#include <cassert>
8
9namespace alpaqa {
11namespace casadi {
12
13// clang-format off
14using fname_incref = ExternalFunction<"_incref", void(void)>;
15using fname_decref = ExternalFunction<"_decref", void(void)>;
16using fname_n_in = ExternalFunction<"_n_in", casadi_int(void)>;
17using fname_n_out = ExternalFunction<"_n_out", casadi_int(void)>;
18using fname_name_in = ExternalFunction<"_name_in", const char *(casadi_int ind)>;
19using fname_name_out = ExternalFunction<"_name_out", const char *(casadi_int ind)>;
20using fname_sparsity_in = ExternalFunction<"_sparsity_in", const casadi_int *(casadi_int ind)>;
21using fname_sparsity_out = ExternalFunction<"_sparsity_out", const casadi_int *(casadi_int ind)>;
22using fname_alloc_mem = ExternalFunction<"_alloc_mem", int(void)>;
23using fname_init_mem = ExternalFunction<"_init_mem", int(int mem)>;
24using fname_free_mem = ExternalFunction<"_free_mem", void(int mem)>;
25using fname_work = ExternalFunction<"_work", int(casadi_int *sz_arg, casadi_int *sz_res, casadi_int *sz_iw, casadi_int *sz_w)>;
26using fname = ExternalFunction<"", int(const casadi_real **arg, casadi_real **res, casadi_int *iw, casadi_real *w, int mem)>;
27// clang-format on
28
29template <Name Nm, class Sgn>
31 std::string fname) -> signature_t * {
32 static_assert(name.value.back() == '\0');
33 fname += name.value.data();
34 using guanaqo::load_func;
35 auto func = reinterpret_cast<signature_t *>(load_func(handle, fname));
36 assert(func);
37 return func;
38}
39
40} // namespace casadi
42} // namespace alpaqa
#define BEGIN_ALPAQA_CASADI_LOADER_NAMESPACE
#define END_ALPAQA_CASADI_LOADER_NAMESPACE
ExternalFunction<"_name_out", const char *(casadi_int ind)> fname_name_out
ExternalFunction<"_sparsity_out", const casadi_int *(casadi_int ind)> fname_sparsity_out
ExternalFunction<"_n_in", casadi_int(void)> fname_n_in
ExternalFunction<"_alloc_mem", int(void)> fname_alloc_mem
ExternalFunction<"_decref", void(void)> fname_decref
ExternalFunction<"_free_mem", void(int mem)> fname_free_mem
ExternalFunction<"_incref", void(void)> fname_incref
ExternalFunction<"_sparsity_in", const casadi_int *(casadi_int ind)> fname_sparsity_in
ExternalFunction<"", int(const casadi_real **arg, casadi_real **res, casadi_int *iw, casadi_real *w, int mem)> fname
ExternalFunction<"_n_out", casadi_int(void)> fname_n_out
ExternalFunction<"_work", int(casadi_int *sz_arg, casadi_int *sz_res, casadi_int *sz_iw, casadi_int *sz_w)> fname_work
ExternalFunction<"_init_mem", int(int mem)> fname_init_mem
ExternalFunction<"_name_in", const char *(casadi_int ind)> fname_name_in
double casadi_real
long long int casadi_int
Reference to CasADi function.
static signature_t * load(void *handle, std::string fname)