#include <stddef.h>
#include <stdint.h>
#include <any>
#include <exception>
#include <functional>
#include <map>
#include <string>
Go to the source code of this file.
|
static void | alpaqa_problem_register_init (alpaqa_problem_register_t *self) |
|
static void | alpaqa_control_problem_register_init (alpaqa_control_problem_register_t *self) |
|
template<class Signature > |
| function_wrapper_t (std::function< Signature >) -> function_wrapper_t< Signature > |
|
template<class Func > |
void | register_function (function_dict_t *&extra_functions, std::string name, Func &&func) |
| Make the given function available to alpaqa.
|
|
template<class Func > |
void | register_function (problem_register_t &result, std::string name, Func &&func) |
|
template<class Func > |
void | register_function (control_problem_register_t &result, std::string name, Func &&func) |
|
template<class Result , class T , class Ret , class... Args> |
void | register_member_function (Result &result, std::string name, Ret(T::*member)(Args...)) |
|
template<auto Member, class Class , class Ret , class... Args> |
static auto | member_caller (Ret(Class::*)(Args...)) |
| Overload for non-const-qualified member functions.
|
|
template<auto Member, class Class , class Ret > |
static auto | member_caller (Ret Class::*) |
| Overload for member variables.
|
|
template<auto Member> |
static auto | member_caller () |
| Wrap the given member function or variable into a (possibly generic) lambda function that accepts the instance as a type-erased void pointer.
|
|
void | unregister_functions (function_dict_t *&extra_functions) |
| Cleans up the extra functions registered by register_function.
|
|
◆ alpaqa_register_arg_t
struct alpaqa_register_arg_t |
◆ alpaqa_dense_t
◆ alpaqa_function_dict_s
struct alpaqa_function_dict_s |
Class Members |
map< string, any > |
dict {} |
|
◆ alpaqa_exception_ptr_s
struct alpaqa_exception_ptr_s |
Class Members |
exception_ptr |
exc {} |
|
◆ alpaqa::detail::function_wrapper_t
struct alpaqa::detail::function_wrapper_t |
◆ alpaqa_sparsity_t.__unnamed7__
union alpaqa_sparsity_t.__unnamed7__ |
◆ ALPAQA_DL_ABI_VERSION
#define ALPAQA_DL_ABI_VERSION 0xA1A000000005 |
◆ ALPAQA_DL_PROBLEM_EXPORT
#define ALPAQA_DL_PROBLEM_EXPORT |
◆ ALPAQA_BEGIN_STRUCT
#define ALPAQA_BEGIN_STRUCT |
( |
|
name | ) |
struct name |
◆ ALPAQA_END_STRUCT
#define ALPAQA_END_STRUCT |
( |
|
name | ) |
|
◆ ALPAQA_DEFAULT
#define ALPAQA_DEFAULT |
( |
|
... | ) |
{ __VA_ARGS__ } |
◆ ALPAQA_PROBLEM_REGISTER_INIT
#define ALPAQA_PROBLEM_REGISTER_INIT |
( |
|
self | ) |
|
Value: _Generic((self), \
self)
static void alpaqa_control_problem_register_init(alpaqa_control_problem_register_t *self)
static void alpaqa_problem_register_init(alpaqa_problem_register_t *self)
Initialize an instance of alpaqa_problem_register_t or alpaqa_control_problem_register_t.
It initializes all members to zero, except for the ABI version, which is initialized to the current ABI version. Available in C only (unnecessary in C++).
- Parameters
-
self | A pointer to the instance to initialize. |
- Examples
- C++/DLProblem/main.cpp.
Definition at line 663 of file dl-problem.h.
◆ alpaqa_real_t
◆ alpaqa_length_t
◆ alpaqa_index_t
◆ alpaqa_dl_abi_version_t
◆ alpaqa_function_dict_t
Opaque type for a C++-only map of extra functions.
Definition at line 439 of file dl-problem.h.
◆ alpaqa_exception_ptr_t
Opaque type for a C++-only exception pointer.
Definition at line 441 of file dl-problem.h.
◆ alpaqa_register_arg_type_t
Enumerator |
---|
alpaqa_register_arg_unspecified | No type was specified (discouraged).
|
alpaqa_register_arg_std_any | The alpaqa_register_arg_t::data pointer points to a C++ std::any object.
Use reinterpret_cast<std::any *>(data) to convert back. Then use std::any_cast to get the actual value out. - Warning
std::any relies on RTTI that is included in both the dynamically loaded problem module and in the code that actually loads that module. Types that need to be passed between the loading and loaded code need to be exported as public classes to ensure that only a single symbol ends up in the final application. If the RTTI symbols are private, each library will end up with its own local copy, and the type information won't compare equal when using libc++, causing std::any_cast to fail.
|
alpaqa_register_arg_strings | The alpaqa_register_arg_t::data pointer points to a dynamic C++ std::span of std::string_view .
Use reinterpret_cast<std::span<std::string_view> *>(data) to convert back.
|
alpaqa_register_arg_py_args | The alpaqa_register_arg_t::data pointer points to a C++ tuple of pybind11::args and pybind11::kwargs .
Use reinterpret_cast<std::tuple<pybind11::args, pybind11::kwargs> *>(data) to convert back.
|
Definition at line 36 of file dl-problem.h.
◆ alpaqa_symmetry
◆ alpaqa_problem_register_init()
◆ alpaqa_control_problem_register_init()