alpaqa guanaqo
Nonconvex constrained optimization
Loading...
Searching...
No Matches
ProblemVTable< Conf > Struct Template Reference

#include <alpaqa/problem/type-erased-problem.hpp>

Detailed Description

template<Config Conf>
struct alpaqa::ProblemVTable< Conf >

Struct containing function pointers to all problem functions (like the objective and constraint functions, with their derivatives, and more).

Some default implementations are available. Internal struct, it is used by TypeErasedProblem.

Definition at line 25 of file type-erased-problem.hpp.

Inheritance diagram for ProblemVTable< Conf >:
Collaboration diagram for ProblemVTable< Conf >:

Public Types

using Box = alpaqa::Box<config_t>
template<class F>
using optional_function_t = guanaqo::optional_function_t<F, ProblemVTable>
template<class F>
using required_function_t = guanaqo::required_function_t<F>

Public Member Functions

template<class P>
 ProblemVTable (std::in_place_t, P &p)
 ProblemVTable ()=default

Static Public Member Functions

static real_t calc_ŷ_dᵀŷ (const void *self, rvec g_ŷ, crvec y, crvec Σ, const ProblemVTable &vtable)
static index_t default_eval_inactive_indices_res_lna (const void *, real_t, crvec, crvec, rindexvec, const ProblemVTable &)
static void default_eval_constraints_jacobian (const void *, crvec, rvec, const ProblemVTable &)
static Sparsity default_get_constraints_jacobian_sparsity (const void *, const ProblemVTable &)
static void default_eval_grad_gi (const void *, crvec, index_t, rvec, const ProblemVTable &)
static void default_eval_lagrangian_hessian_product (const void *, crvec, crvec, real_t, crvec, rvec, const ProblemVTable &)
static void default_eval_lagrangian_hessian (const void *, crvec, crvec, real_t, rvec, const ProblemVTable &)
static Sparsity default_get_lagrangian_hessian_sparsity (const void *, const ProblemVTable &)
static void default_eval_augmented_lagrangian_hessian_product (const void *self, crvec x, crvec y, crvec, real_t scale, crvec v, rvec Hv, const ProblemVTable &vtable)
static void default_eval_augmented_lagrangian_hessian (const void *self, crvec x, crvec y, crvec, real_t scale, rvec H_values, const ProblemVTable &vtable)
static Sparsity default_get_augmented_lagrangian_hessian_sparsity (const void *, const ProblemVTable &)
static real_t default_eval_objective_and_gradient (const void *self, crvec x, rvec grad_fx, const ProblemVTable &vtable)
static real_t default_eval_objective_and_constraints (const void *self, crvec x, rvec g, const ProblemVTable &vtable)
static void default_eval_objective_gradient_and_constraints_gradient_product (const void *self, crvec x, crvec y, rvec grad_f, rvec grad_gxy, const ProblemVTable &vtable)
static void default_eval_lagrangian_gradient (const void *self, crvec x, crvec y, rvec grad_L, rvec work_n, const ProblemVTable &vtable)
static real_t default_eval_augmented_lagrangian (const void *self, crvec x, crvec y, crvec Σ, rvec ŷ, const ProblemVTable &vtable)
static void default_eval_augmented_lagrangian_gradient (const void *self, crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m, const ProblemVTable &vtable)
static real_t default_eval_augmented_lagrangian_and_gradient (const void *self, crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m, const ProblemVTable &vtable)
static const Boxdefault_get_variable_bounds (const void *, const ProblemVTable &)
static const Boxdefault_get_general_bounds (const void *, const ProblemVTable &)
static void default_check (const void *, const ProblemVTable &)
static std::string default_get_name (const void *, const ProblemVTable &)

Public Attributes

required_function_t< void(crvec z, rvec e) const > eval_projecting_difference_constraints
required_function_t< void(rvec y, real_t M) const > eval_projection_multipliers
required_function_t< real_t(real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) const > eval_proximal_gradient_step
required_function_t< real_t(crvec x) const > eval_objective
required_function_t< void(crvec x, rvec grad_fx) const > eval_objective_gradient
required_function_t< void(crvec x, rvec gx) const > eval_constraints
required_function_t< void(crvec x, crvec y, rvec grad_gxy) const > eval_constraints_gradient_product
optional_function_t< index_t(real_t γ, crvec x, crvec grad_ψ, rindexvec J) const > eval_inactive_indices_res_lna = default_eval_inactive_indices_res_lna
optional_function_t< void(crvec x, rvec J_values) const > eval_constraints_jacobian = default_eval_constraints_jacobian
optional_function_t< Sparsity() const > get_constraints_jacobian_sparsity = default_get_constraints_jacobian_sparsity
optional_function_t< void(crvec x, index_t i, rvec grad_gi) const > eval_grad_gi = default_eval_grad_gi
optional_function_t< void(crvec x, crvec y, real_t scale, crvec v, rvec Hv) const > eval_lagrangian_hessian_product = default_eval_lagrangian_hessian_product
optional_function_t< void(crvec x, crvec y, real_t scale, rvec H_values) const > eval_lagrangian_hessian = default_eval_lagrangian_hessian
optional_function_t< Sparsity() const > get_lagrangian_hessian_sparsity = default_get_lagrangian_hessian_sparsity
optional_function_t< void(crvec x, crvec y, crvec Σ, real_t scale, crvec v, rvec Hv) const > eval_augmented_lagrangian_hessian_product = default_eval_augmented_lagrangian_hessian_product
optional_function_t< void(crvec x, crvec y, crvec Σ, real_t scale, rvec H_values) const > eval_augmented_lagrangian_hessian = default_eval_augmented_lagrangian_hessian
optional_function_t< Sparsity() const > get_augmented_lagrangian_hessian_sparsity = default_get_augmented_lagrangian_hessian_sparsity
optional_function_t< real_t(crvec x, rvec grad_fx) const > eval_objective_and_gradient = default_eval_objective_and_gradient
optional_function_t< real_t(crvec x, rvec g) const > eval_objective_and_constraints = default_eval_objective_and_constraints
optional_function_t< void(crvec x, crvec y, rvec grad_f, rvec grad_gxy) const > eval_objective_gradient_and_constraints_gradient_product = default_eval_objective_gradient_and_constraints_gradient_product
optional_function_t< void(crvec x, crvec y, rvec grad_L, rvec work_n) const > eval_lagrangian_gradient = default_eval_lagrangian_gradient
optional_function_t< real_t(crvec x, crvec y, crvec Σ, rvec ŷ) const > eval_augmented_lagrangian = default_eval_augmented_lagrangian
optional_function_t< void(crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const > eval_augmented_lagrangian_gradient = default_eval_augmented_lagrangian_gradient
optional_function_t< real_t(crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const > eval_augmented_lagrangian_and_gradient = default_eval_augmented_lagrangian_and_gradient
optional_function_t< const Box &() const > get_variable_bounds = default_get_variable_bounds
optional_function_t< const Box &() const > get_general_bounds = default_get_general_bounds
optional_function_t< void() const > check = default_check
optional_function_t< std::string() const > get_name = default_get_name
length_t n
length_t m

Member Typedef Documentation

◆ Box

template<Config Conf>
using Box = alpaqa::Box<config_t>

Definition at line 27 of file type-erased-problem.hpp.

◆ optional_function_t

template<Config Conf>
template<class F>
using optional_function_t = guanaqo::optional_function_t<F, ProblemVTable>

Definition at line 30 of file type-erased-problem.hpp.

◆ required_function_t

template<Config Conf>
template<class F>
using required_function_t = guanaqo::required_function_t<F>

Definition at line 32 of file type-erased-problem.hpp.

Constructor & Destructor Documentation

◆ ProblemVTable() [1/2]

template<Config Conf>
template<class P>
ProblemVTable ( std::in_place_t ,
P & p )
inline

Definition at line 166 of file type-erased-problem.hpp.

Here is the caller graph for this function:

◆ ProblemVTable() [2/2]

template<Config Conf>
ProblemVTable ( )
default

Member Function Documentation

◆ calc_ŷ_dᵀŷ()

template<Config Conf>
auto calc_ŷ_dᵀŷ ( const void * self,
rvec g_ŷ,
crvec y,
crvec Σ,
const ProblemVTable< Conf > & vtable )
static

Definition at line 9 of file type-erased-problem.tpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ default_eval_inactive_indices_res_lna()

template<Config Conf>
auto default_eval_inactive_indices_res_lna ( const void * ,
real_t ,
crvec ,
crvec ,
rindexvec ,
const ProblemVTable< Conf > &  )
static

Definition at line 35 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_eval_constraints_jacobian()

template<Config Conf>
void default_eval_constraints_jacobian ( const void * ,
crvec ,
rvec ,
const ProblemVTable< Conf > & vtable )
static

Definition at line 42 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_get_constraints_jacobian_sparsity()

template<Config Conf>
auto default_get_constraints_jacobian_sparsity ( const void * ,
const ProblemVTable< Conf > & vtable )
static

Definition at line 49 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_eval_grad_gi()

template<Config Conf>
void default_eval_grad_gi ( const void * ,
crvec ,
index_t ,
rvec ,
const ProblemVTable< Conf > &  )
static

Definition at line 55 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_eval_lagrangian_hessian_product()

template<Config Conf>
void default_eval_lagrangian_hessian_product ( const void * ,
crvec ,
crvec ,
real_t ,
crvec ,
rvec ,
const ProblemVTable< Conf > &  )
static

Definition at line 61 of file type-erased-problem.tpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ default_eval_lagrangian_hessian()

template<Config Conf>
void default_eval_lagrangian_hessian ( const void * ,
crvec ,
crvec ,
real_t ,
rvec ,
const ProblemVTable< Conf > &  )
static

Definition at line 68 of file type-erased-problem.tpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ default_get_lagrangian_hessian_sparsity()

template<Config Conf>
auto default_get_lagrangian_hessian_sparsity ( const void * ,
const ProblemVTable< Conf > & vtable )
static

Definition at line 74 of file type-erased-problem.tpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ default_eval_augmented_lagrangian_hessian_product()

template<Config Conf>
void default_eval_augmented_lagrangian_hessian_product ( const void * self,
crvec x,
crvec y,
crvec ,
real_t scale,
crvec v,
rvec Hv,
const ProblemVTable< Conf > & vtable )
static

Definition at line 80 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_eval_augmented_lagrangian_hessian()

template<Config Conf>
void default_eval_augmented_lagrangian_hessian ( const void * self,
crvec x,
crvec y,
crvec ,
real_t scale,
rvec H_values,
const ProblemVTable< Conf > & vtable )
static

Definition at line 90 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_get_augmented_lagrangian_hessian_sparsity()

template<Config Conf>
auto default_get_augmented_lagrangian_hessian_sparsity ( const void * self,
const ProblemVTable< Conf > & vtable )
static

Definition at line 100 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_eval_objective_and_gradient()

template<Config Conf>
auto default_eval_objective_and_gradient ( const void * self,
crvec x,
rvec grad_fx,
const ProblemVTable< Conf > & vtable )
static
Implementation:
const void *self, crvec x, rvec grad_fx, const ProblemVTable &vtable) -> real_t {
vtable.eval_objective_gradient(self, x, grad_fx);
return vtable.eval_objective(self, x);
}

Definition at line 111 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_eval_objective_and_constraints()

template<Config Conf>
auto default_eval_objective_and_constraints ( const void * self,
crvec x,
rvec g,
const ProblemVTable< Conf > & vtable )
static
Implementation:
const void *self, crvec x, rvec g, const ProblemVTable &vtable) -> real_t {
vtable.eval_constraints(self, x, g);
return vtable.eval_objective(self, x);
}

Definition at line 121 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_eval_objective_gradient_and_constraints_gradient_product()

template<Config Conf>
void default_eval_objective_gradient_and_constraints_gradient_product ( const void * self,
crvec x,
crvec y,
rvec grad_f,
rvec grad_gxy,
const ProblemVTable< Conf > & vtable )
static
Implementation:
const void *self, crvec x, crvec y, rvec grad_f, rvec grad_gxy, const ProblemVTable &vtable) {
vtable.eval_objective_gradient(self, x, grad_f);
vtable.eval_constraints_gradient_product(self, x, y, grad_gxy);
}

Definition at line 131 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_eval_lagrangian_gradient()

template<Config Conf>
void default_eval_lagrangian_gradient ( const void * self,
crvec x,
crvec y,
rvec grad_L,
rvec work_n,
const ProblemVTable< Conf > & vtable )
static
Implementation:
rvec grad_L, rvec work_n,
const ProblemVTable &vtable) {
if (y.size() == 0) /* [[unlikely]] */
return vtable.eval_objective_gradient(self, x, grad_L);
vtable.eval_objective_gradient_and_constraints_gradient_product(self, x, y, grad_L, work_n,
vtable);
grad_L += work_n;
}

Definition at line 141 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_eval_augmented_lagrangian()

template<Config Conf>
auto default_eval_augmented_lagrangian ( const void * self,
crvec x,
crvec y,
crvec Σ,
rvec ŷ,
const ProblemVTable< Conf > & vtable )
static
Implementation:
crvec Σ, rvec ŷ,
const ProblemVTable &vtable) -> real_t {
if (y.size() == 0) /* [[unlikely]] */
return vtable.eval_objective(self, x);
auto f = vtable.eval_objective_and_constraints(self, x, ŷ, vtable);
auto dᵀŷ = calc_ŷ_dᵀŷ(self, ŷ, y, Σ, vtable);
// ψ(x) = f(x) + ½ dᵀŷ
auto ψ = f + real_t(0.5) * dᵀŷ;
return ψ;
}

Definition at line 155 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_eval_augmented_lagrangian_gradient()

template<Config Conf>
void default_eval_augmented_lagrangian_gradient ( const void * self,
crvec x,
crvec y,
crvec Σ,
rvec grad_ψ,
rvec work_n,
rvec work_m,
const ProblemVTable< Conf > & vtable )
static
Implementation:
crvec y, crvec Σ, rvec grad_ψ,
rvec work_n, rvec work_m,
const ProblemVTable &vtable) {
if (y.size() == 0) /* [[unlikely]] */ {
vtable.eval_objective_gradient(self, x, grad_ψ);
} else {
vtable.eval_constraints(self, x, work_m);
(void)calc_ŷ_dᵀŷ(self, work_m, y, Σ, vtable);
vtable.eval_lagrangian_gradient(self, x, work_m, grad_ψ, work_n, vtable);
}
}

Definition at line 172 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_eval_augmented_lagrangian_and_gradient()

template<Config Conf>
auto default_eval_augmented_lagrangian_and_gradient ( const void * self,
crvec x,
crvec y,
crvec Σ,
rvec grad_ψ,
rvec work_n,
rvec work_m,
const ProblemVTable< Conf > & vtable )
static
Implementation:
const void *self, crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m,
const ProblemVTable &vtable) -> real_t {
if (y.size() == 0) /* [[unlikely]] */
return vtable.eval_objective_and_gradient(self, x, grad_ψ, vtable);
auto &ŷ = work_m;
// ψ(x) = f(x) + ½ dᵀŷ
auto f = vtable.eval_objective_and_constraints(self, x, ŷ, vtable);
auto dᵀŷ = calc_ŷ_dᵀŷ(self, ŷ, y, Σ, vtable);
auto ψ = f + real_t(0.5) * dᵀŷ;
// ∇ψ(x) = ∇f(x) + ∇g(x) ŷ
vtable.eval_lagrangian_gradient(self, x, ŷ, grad_ψ, work_n, vtable);
return ψ;
}

Definition at line 189 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_get_variable_bounds()

template<Config Conf>
auto default_get_variable_bounds ( const void * ,
const ProblemVTable< Conf > &  )
static

Definition at line 207 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_get_general_bounds()

template<Config Conf>
auto default_get_general_bounds ( const void * ,
const ProblemVTable< Conf > &  )
static

Definition at line 213 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_check()

template<Config Conf>
void default_check ( const void * ,
const ProblemVTable< Conf > &  )
static

Definition at line 219 of file type-erased-problem.tpp.

Here is the call graph for this function:

◆ default_get_name()

template<Config Conf>
std::string default_get_name ( const void * ,
const ProblemVTable< Conf > &  )
static

Definition at line 222 of file type-erased-problem.tpp.

Here is the call graph for this function:

Member Data Documentation

◆ eval_projecting_difference_constraints

template<Config Conf>
required_function_t<void(crvec z, rvec e) const> eval_projecting_difference_constraints

Definition at line 38 of file type-erased-problem.hpp.

◆ eval_projection_multipliers

template<Config Conf>
required_function_t<void(rvec y, real_t M) const> eval_projection_multipliers

Definition at line 40 of file type-erased-problem.hpp.

◆ eval_proximal_gradient_step

template<Config Conf>
required_function_t<real_t(real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) const> eval_proximal_gradient_step

Definition at line 42 of file type-erased-problem.hpp.

◆ eval_objective

template<Config Conf>
required_function_t<real_t(crvec x) const> eval_objective

Definition at line 44 of file type-erased-problem.hpp.

◆ eval_objective_gradient

template<Config Conf>
required_function_t<void(crvec x, rvec grad_fx) const> eval_objective_gradient

Definition at line 46 of file type-erased-problem.hpp.

◆ eval_constraints

template<Config Conf>
required_function_t<void(crvec x, rvec gx) const> eval_constraints

Definition at line 48 of file type-erased-problem.hpp.

◆ eval_constraints_gradient_product

template<Config Conf>
required_function_t<void(crvec x, crvec y, rvec grad_gxy) const> eval_constraints_gradient_product

Definition at line 50 of file type-erased-problem.hpp.

◆ eval_inactive_indices_res_lna

template<Config Conf>
optional_function_t<index_t(real_t γ, crvec x, crvec grad_ψ, rindexvec J) const> eval_inactive_indices_res_lna = default_eval_inactive_indices_res_lna

Definition at line 52 of file type-erased-problem.hpp.

◆ eval_constraints_jacobian

template<Config Conf>
optional_function_t<void(crvec x, rvec J_values) const> eval_constraints_jacobian = default_eval_constraints_jacobian

Definition at line 56 of file type-erased-problem.hpp.

◆ get_constraints_jacobian_sparsity

template<Config Conf>
optional_function_t<Sparsity() const> get_constraints_jacobian_sparsity = default_get_constraints_jacobian_sparsity

Definition at line 58 of file type-erased-problem.hpp.

◆ eval_grad_gi

template<Config Conf>
optional_function_t<void(crvec x, index_t i, rvec grad_gi) const> eval_grad_gi = default_eval_grad_gi

Definition at line 60 of file type-erased-problem.hpp.

◆ eval_lagrangian_hessian_product

template<Config Conf>
optional_function_t<void(crvec x, crvec y, real_t scale, crvec v, rvec Hv) const> eval_lagrangian_hessian_product = default_eval_lagrangian_hessian_product

Definition at line 62 of file type-erased-problem.hpp.

◆ eval_lagrangian_hessian

template<Config Conf>
optional_function_t<void(crvec x, crvec y, real_t scale, rvec H_values) const> eval_lagrangian_hessian = default_eval_lagrangian_hessian

Definition at line 64 of file type-erased-problem.hpp.

◆ get_lagrangian_hessian_sparsity

template<Config Conf>
optional_function_t<Sparsity() const> get_lagrangian_hessian_sparsity = default_get_lagrangian_hessian_sparsity

Definition at line 66 of file type-erased-problem.hpp.

◆ eval_augmented_lagrangian_hessian_product

template<Config Conf>
optional_function_t<void(crvec x, crvec y, crvec Σ, real_t scale, crvec v, rvec Hv) const> eval_augmented_lagrangian_hessian_product = default_eval_augmented_lagrangian_hessian_product

Definition at line 68 of file type-erased-problem.hpp.

◆ eval_augmented_lagrangian_hessian

template<Config Conf>
optional_function_t<void(crvec x, crvec y, crvec Σ, real_t scale, rvec H_values) const> eval_augmented_lagrangian_hessian = default_eval_augmented_lagrangian_hessian

Definition at line 70 of file type-erased-problem.hpp.

◆ get_augmented_lagrangian_hessian_sparsity

template<Config Conf>
optional_function_t<Sparsity() const> get_augmented_lagrangian_hessian_sparsity = default_get_augmented_lagrangian_hessian_sparsity

Definition at line 72 of file type-erased-problem.hpp.

◆ eval_objective_and_gradient

template<Config Conf>
optional_function_t<real_t(crvec x, rvec grad_fx) const> eval_objective_and_gradient = default_eval_objective_and_gradient

Definition at line 76 of file type-erased-problem.hpp.

◆ eval_objective_and_constraints

template<Config Conf>
optional_function_t<real_t(crvec x, rvec g) const> eval_objective_and_constraints = default_eval_objective_and_constraints

Definition at line 78 of file type-erased-problem.hpp.

◆ eval_objective_gradient_and_constraints_gradient_product

template<Config Conf>
optional_function_t<void(crvec x, crvec y, rvec grad_f, rvec grad_gxy) const> eval_objective_gradient_and_constraints_gradient_product = default_eval_objective_gradient_and_constraints_gradient_product

Definition at line 80 of file type-erased-problem.hpp.

◆ eval_lagrangian_gradient

template<Config Conf>
optional_function_t<void(crvec x, crvec y, rvec grad_L, rvec work_n) const> eval_lagrangian_gradient = default_eval_lagrangian_gradient

Definition at line 84 of file type-erased-problem.hpp.

◆ eval_augmented_lagrangian

template<Config Conf>
optional_function_t<real_t(crvec x, crvec y, crvec Σ, rvec ŷ) const> eval_augmented_lagrangian = default_eval_augmented_lagrangian

Definition at line 86 of file type-erased-problem.hpp.

◆ eval_augmented_lagrangian_gradient

template<Config Conf>
optional_function_t<void(crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const> eval_augmented_lagrangian_gradient = default_eval_augmented_lagrangian_gradient

Definition at line 88 of file type-erased-problem.hpp.

◆ eval_augmented_lagrangian_and_gradient

template<Config Conf>
optional_function_t<real_t(crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const> eval_augmented_lagrangian_and_gradient = default_eval_augmented_lagrangian_and_gradient

Definition at line 90 of file type-erased-problem.hpp.

◆ get_variable_bounds

template<Config Conf>
optional_function_t<const Box &() const> get_variable_bounds = default_get_variable_bounds

Definition at line 94 of file type-erased-problem.hpp.

◆ get_general_bounds

template<Config Conf>
optional_function_t<const Box &() const> get_general_bounds = default_get_general_bounds

Definition at line 96 of file type-erased-problem.hpp.

◆ check

template<Config Conf>
optional_function_t<void() const> check = default_check

Definition at line 100 of file type-erased-problem.hpp.

◆ get_name

template<Config Conf>
optional_function_t<std::string() const> get_name = default_get_name

Definition at line 102 of file type-erased-problem.hpp.

◆ n

template<Config Conf>
length_t n

Definition at line 163 of file type-erased-problem.hpp.

◆ m

template<Config Conf>
length_t m

Definition at line 163 of file type-erased-problem.hpp.


The documentation for this struct was generated from the following files: