alpaqa sparse
Nonconvex constrained optimization
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
dl-problem.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include <any>
#include <exception>
#include <functional>
#include <map>
#include <string>
+ Include dependency graph for dl-problem.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  alpaqa_dense_t
 
struct  alpaqa_sparse_csc_t
 
struct  alpaqa_sparse_csc_l_t
 
struct  alpaqa_sparse_csc_ll_t
 
struct  alpaqa_sparse_coo_t
 
struct  alpaqa_sparse_coo_l_t
 
struct  alpaqa_sparse_coo_ll_t
 
struct  alpaqa_sparsity_t
 Sparsity of matrices. More...
 
struct  alpaqa_problem_functions_t
 C API providing function pointers to problem functions. More...
 
struct  alpaqa_problem_register_t
 
struct  alpaqa_control_problem_functions_t
 
struct  alpaqa_control_problem_register_t
 
struct  alpaqa_function_dict_s
 
struct  alpaqa_exception_ptr_s
 
union  alpaqa_sparsity_t.__unnamed7__
 

Namespaces

namespace  alpaqa
 
namespace  alpaqa::detail
 

Macros

#define ALPAQA_DL_ABI_VERSION   0xA1A000000002
 
#define ALPAQA_DEFAULT(...)    { __VA_ARGS__ }
 
#define ALPAQA_PROBLEM_REGISTER_INIT(self)
 Initialize an instance of alpaqa_problem_register_t or alpaqa_control_problem_register_t.
 

Typedefs

typedef double alpaqa_real_t
 
typedef ptrdiff_t alpaqa_length_t
 
typedef alpaqa_length_t alpaqa_index_t
 
typedef struct alpaqa_function_dict_s alpaqa_function_dict_t
 Opaque type for a C++-only map of extra functions.
 
typedef struct alpaqa_exception_ptr_s alpaqa_exception_ptr_t
 Opaque type for a C++-only exception pointer.
 
using function_dict_t = alpaqa_function_dict_t
 
using problem_register_t = alpaqa_problem_register_t
 
using control_problem_register_t = alpaqa_control_problem_register_t
 
using problem_functions_t = alpaqa_problem_functions_t
 
using control_problem_functions_t = alpaqa_control_problem_functions_t
 

Enumerations

enum  alpaqa_symmetry { alpaqa_unsymmetric = 0 , alpaqa_upper = 1 , alpaqa_lower = 2 }
 

Functions

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

Class Documentation

◆ alpaqa_dense_t

struct alpaqa_dense_t
+ Collaboration diagram for alpaqa_dense_t:
Class Members
alpaqa_length_t rows { 0 }
alpaqa_length_t cols { 0 }
alpaqa_symmetry symmetry { alpaqa_unsymmetric }

◆ alpaqa_function_dict_s

struct alpaqa_function_dict_s
+ Collaboration diagram for alpaqa_function_dict_s:
Class Members
map< string, any > dict {}

◆ alpaqa_exception_ptr_s

struct alpaqa_exception_ptr_s
+ Collaboration diagram for alpaqa_exception_ptr_s:
Class Members
exception_ptr exc {}

◆ alpaqa_sparsity_t.__unnamed7__

union alpaqa_sparsity_t.__unnamed7__
+ Collaboration diagram for alpaqa_sparsity_t.__unnamed7__:
Class Members
alpaqa_dense_t dense
alpaqa_sparse_csc_t sparse_csc
alpaqa_sparse_csc_l_t sparse_csc_l
alpaqa_sparse_csc_ll_t sparse_csc_ll
alpaqa_sparse_coo_t sparse_coo
alpaqa_sparse_coo_l_t sparse_coo_l
alpaqa_sparse_coo_ll_t sparse_coo_ll

Macro Definition Documentation

◆ ALPAQA_DL_ABI_VERSION

#define ALPAQA_DL_ABI_VERSION   0xA1A000000002

Definition at line 9 of file dl-problem.h.

◆ ALPAQA_DEFAULT

#define ALPAQA_DEFAULT (   ...)     { __VA_ARGS__ }

Definition at line 13 of file dl-problem.h.

◆ 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)
Definition dl-problem.h:565
static void alpaqa_problem_register_init(alpaqa_problem_register_t *self)
Definition dl-problem.h:559

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
selfA pointer to the instance to initialize.
Examples
C++/DLProblem/main.cpp.

Definition at line 576 of file dl-problem.h.

Typedef Documentation

◆ alpaqa_real_t

typedef double alpaqa_real_t

Definition at line 19 of file dl-problem.h.

◆ alpaqa_length_t

typedef ptrdiff_t alpaqa_length_t

Definition at line 20 of file dl-problem.h.

◆ alpaqa_index_t

Definition at line 21 of file dl-problem.h.

◆ alpaqa_function_dict_t

Opaque type for a C++-only map of extra functions.

Definition at line 355 of file dl-problem.h.

◆ alpaqa_exception_ptr_t

Opaque type for a C++-only exception pointer.

Definition at line 357 of file dl-problem.h.

Enumeration Type Documentation

◆ alpaqa_symmetry

See also
alpaqa::sparsity::Symmetry
Enumerator
alpaqa_unsymmetric 
alpaqa_upper 
alpaqa_lower 

Definition at line 24 of file dl-problem.h.

Function Documentation

◆ alpaqa_problem_register_init()

static void alpaqa_problem_register_init ( alpaqa_problem_register_t self)
inlinestatic

Definition at line 559 of file dl-problem.h.

◆ alpaqa_control_problem_register_init()

static void alpaqa_control_problem_register_init ( alpaqa_control_problem_register_t self)
inlinestatic

Definition at line 565 of file dl-problem.h.