#include <alpaqa/dl/dl-problem.h>
C API providing function pointers to problem functions.
Used by alpaqa::dl::DLProblem.
Definition at line 210 of file dl-problem.h.
Public Attributes | |
alpaqa_length_t | n { 0 } |
Number of decision variables. | |
alpaqa_length_t | m { 0 } |
Number of constraints. | |
const char * | name { nullptr } |
Name of the problem. | |
alpaqa_real_t(* | eval_f )(void *instance, const alpaqa_real_t *x) |
Cost function. | |
void(* | eval_grad_f )(void *instance, const alpaqa_real_t *x, alpaqa_real_t *grad_fx) |
Gradient of the cost function. | |
void(* | eval_g )(void *instance, const alpaqa_real_t *x, alpaqa_real_t *gx) |
Constraints function. | |
void(* | eval_grad_g_prod )(void *instance, const alpaqa_real_t *x, const alpaqa_real_t *y, alpaqa_real_t *grad_gxy) |
Gradient-vector product of the constraints function. | |
void(* | eval_proj_diff_g )(void *instance, const alpaqa_real_t *z, alpaqa_real_t *e) |
Difference between point and its projection onto the general constraint set D. | |
void(* | eval_proj_multipliers )(void *instance, alpaqa_real_t *y, alpaqa_real_t M) |
Project the Lagrange multipliers. | |
alpaqa_real_t(* | eval_prox_grad_step )(void *instance, alpaqa_real_t γ, const alpaqa_real_t *x, const alpaqa_real_t *grad_ψ, alpaqa_real_t *x̂, alpaqa_real_t *p) |
Proximal gradient step. | |
alpaqa_index_t(* | eval_inactive_indices_res_lna )(void *instance, alpaqa_real_t γ, const alpaqa_real_t *x, const alpaqa_real_t *grad_ψ, alpaqa_index_t *J) |
Active indices for proximal operator. | |
void(* | eval_jac_g )(void *instance, const alpaqa_real_t *x, alpaqa_real_t *J_values) |
Jacobian of the constraints function. | |
alpaqa_sparsity_t(* | get_jac_g_sparsity )(void *instance) |
Get the sparsity pattern of the Jacobian of the constraints function. | |
void(* | eval_grad_gi )(void *instance, const alpaqa_real_t *x, alpaqa_index_t i, alpaqa_real_t *grad_gi) |
Gradient of specific constraint function. | |
void(* | eval_hess_L_prod )(void *instance, const alpaqa_real_t *x, const alpaqa_real_t *y, alpaqa_real_t scale, const alpaqa_real_t *v, alpaqa_real_t *Hv) |
Hessian-vector product of the Lagrangian. | |
void(* | eval_hess_L )(void *instance, const alpaqa_real_t *x, const alpaqa_real_t *y, alpaqa_real_t scale, alpaqa_real_t *H_values) |
Hessian of the Lagrangian. | |
alpaqa_sparsity_t(* | get_hess_L_sparsity )(void *instance) |
Get the sparsity pattern of the Hessian of the Lagrangian. | |
void(* | eval_hess_ψ_prod )(void *instance, const alpaqa_real_t *x, const alpaqa_real_t *y, const alpaqa_real_t *Σ, alpaqa_real_t scale, const alpaqa_real_t *zl, const alpaqa_real_t *zu, const alpaqa_real_t *v, alpaqa_real_t *Hv) |
Hessian-vector product of the augmented Lagrangian. | |
void(* | eval_hess_ψ )(void *instance, const alpaqa_real_t *x, const alpaqa_real_t *y, const alpaqa_real_t *Σ, alpaqa_real_t scale, const alpaqa_real_t *zl, const alpaqa_real_t *zu, alpaqa_real_t *H_values) |
Hessian of the augmented Lagrangian. | |
alpaqa_sparsity_t(* | get_hess_ψ_sparsity )(void *instance) |
Get the sparsity pattern of the Hessian of the augmented Lagrangian. | |
alpaqa_real_t(* | eval_f_grad_f )(void *instance, const alpaqa_real_t *x, alpaqa_real_t *grad_fx) |
Cost and its gradient. | |
alpaqa_real_t(* | eval_f_g )(void *instance, const alpaqa_real_t *x, alpaqa_real_t *g) |
Cost and constraints. | |
void(* | eval_grad_f_grad_g_prod )(void *instance, const alpaqa_real_t *x, const alpaqa_real_t *y, alpaqa_real_t *grad_f, alpaqa_real_t *grad_gxy) |
Gradient of the cost and gradient-vector product of the constraints. | |
void(* | eval_grad_L )(void *instance, const alpaqa_real_t *x, const alpaqa_real_t *y, alpaqa_real_t *grad_L, alpaqa_real_t *work_n) |
Gradient of the Lagrangian. | |
alpaqa_real_t(* | eval_ψ )(void *instance, const alpaqa_real_t *x, const alpaqa_real_t *y, const alpaqa_real_t *Σ, const alpaqa_real_t *zl, const alpaqa_real_t *zu, alpaqa_real_t *ŷ) |
Augmented Lagrangian. | |
void(* | eval_grad_ψ )(void *instance, const alpaqa_real_t *x, const alpaqa_real_t *y, const alpaqa_real_t *Σ, const alpaqa_real_t *zl, const alpaqa_real_t *zu, alpaqa_real_t *grad_ψ, alpaqa_real_t *work_n, alpaqa_real_t *work_m) |
Gradient of the augmented Lagrangian. | |
alpaqa_real_t(* | eval_ψ_grad_ψ )(void *instance, const alpaqa_real_t *x, const alpaqa_real_t *y, const alpaqa_real_t *Σ, const alpaqa_real_t *zl, const alpaqa_real_t *zu, alpaqa_real_t *grad_ψ, alpaqa_real_t *work_n, alpaqa_real_t *work_m) |
Augmented Lagrangian and its gradient. | |
void(* | initialize_box_C )(void *instance, alpaqa_real_t *lb, alpaqa_real_t *ub) |
Provide the initial values for the bounds of alpaqa::BoxConstrProblem::C, i.e. | |
void(* | initialize_box_D )(void *instance, alpaqa_real_t *lb, alpaqa_real_t *ub) |
Provide the initial values for the bounds of alpaqa::BoxConstrProblem::D, i.e. | |
void(* | initialize_l1_reg )(void *instance, alpaqa_real_t *lambda, alpaqa_length_t *size) |
Provide the initial values for alpaqa::BoxConstrProblem::l1_reg, the ℓ₁-regularization factor. | |
alpaqa_length_t n { 0 } |
Number of decision variables.
Definition at line 213 of file dl-problem.h.
alpaqa_length_t m { 0 } |
Number of constraints.
Definition at line 216 of file dl-problem.h.
const char* name { nullptr } |
Name of the problem.
Definition at line 219 of file dl-problem.h.
|
inline |
Cost function.
Definition at line 224 of file dl-problem.h.
|
inline |
Gradient of the cost function.
Definition at line 229 of file dl-problem.h.
|
inline |
Constraints function.
Definition at line 235 of file dl-problem.h.
|
inline |
Gradient-vector product of the constraints function.
Definition at line 241 of file dl-problem.h.
|
inline |
Difference between point and its projection onto the general constraint set D.
Definition at line 250 of file dl-problem.h.
void(* eval_proj_multipliers) (void *instance, alpaqa_real_t *y, alpaqa_real_t M) |
Project the Lagrange multipliers.
Definition at line 256 of file dl-problem.h.
|
inline |
Proximal gradient step.
Definition at line 263 of file dl-problem.h.
|
inline |
Active indices for proximal operator.
Definition at line 274 of file dl-problem.h.
|
inline |
Jacobian of the constraints function.
Definition at line 283 of file dl-problem.h.
|
inline |
Get the sparsity pattern of the Jacobian of the constraints function.
Definition at line 289 of file dl-problem.h.
|
inline |
Gradient of specific constraint function.
Definition at line 293 of file dl-problem.h.
|
inline |
Hessian-vector product of the Lagrangian.
Definition at line 300 of file dl-problem.h.
|
inline |
Hessian of the Lagrangian.
Definition at line 309 of file dl-problem.h.
|
inline |
Get the sparsity pattern of the Hessian of the Lagrangian.
Definition at line 317 of file dl-problem.h.
|
inline |
Hessian-vector product of the augmented Lagrangian.
Definition at line 321 of file dl-problem.h.
|
inline |
Hessian of the augmented Lagrangian.
Definition at line 333 of file dl-problem.h.
|
inline |
Get the sparsity pattern of the Hessian of the augmented Lagrangian.
Definition at line 344 of file dl-problem.h.
|
inline |
Cost and its gradient.
Definition at line 349 of file dl-problem.h.
|
inline |
Cost and constraints.
Definition at line 355 of file dl-problem.h.
|
inline |
Gradient of the cost and gradient-vector product of the constraints.
Definition at line 361 of file dl-problem.h.
|
inline |
Gradient of the Lagrangian.
Definition at line 369 of file dl-problem.h.
|
inline |
Augmented Lagrangian.
Definition at line 378 of file dl-problem.h.
|
inline |
Gradient of the augmented Lagrangian.
Definition at line 388 of file dl-problem.h.
|
inline |
Augmented Lagrangian and its gradient.
Definition at line 400 of file dl-problem.h.
|
inline |
Provide the initial values for the bounds of alpaqa::BoxConstrProblem::C, i.e.
the constraints on the decision variables.
Definition at line 414 of file dl-problem.h.
|
inline |
Provide the initial values for the bounds of alpaqa::BoxConstrProblem::D, i.e.
the general constraints.
Definition at line 420 of file dl-problem.h.
|
inline |
Provide the initial values for alpaqa::BoxConstrProblem::l1_reg, the ℓ₁-regularization factor.
This function is called twice:
lambda
set to nullptr
, and the user should set the size.lambda
pointing to an array of that size, and the user should initialize this array. Definition at line 430 of file dl-problem.h.