#include <alpaqa/dl/dl-problem.h>
C API providing function pointers to problem functions.
Used by alpaqa::dl::DLProblem.
Definition at line 30 of file dl-problem.h.
Public Attributes | |
alpaqa_length_t | n { 0 } |
Number of decision variables. | |
alpaqa_length_t | m { 0 } |
Number of constraints. | |
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_jac_g )(void *instance, const alpaqa_real_t *x, alpaqa_index_t *inner_idx, alpaqa_index_t *outer_ptr, alpaqa_real_t *J_values) |
Jacobian of the constraints function. | |
alpaqa_length_t(* | get_jac_g_num_nonzeros )(void *instance) |
Number of nonzeros of the sparse 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_index_t *inner_idx, alpaqa_index_t *outer_ptr, alpaqa_real_t *H_values) |
Hessian of the Lagrangian. | |
alpaqa_length_t(* | get_hess_L_num_nonzeros )(void *instance) |
Number of nonzeros of the sparse 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_index_t *inner_idx, alpaqa_index_t *outer_ptr, alpaqa_real_t *H_values) |
Hessian of the augmented Lagrangian. | |
alpaqa_length_t(* | get_hess_ψ_num_nonzeros )(void *instance) |
Number of nonzeros of the sparse 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. | |
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. | |
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 33 of file dl-problem.h.
alpaqa_length_t m { 0 } |
Number of constraints.
Definition at line 36 of file dl-problem.h.
|
inline |
Cost function.
Definition at line 41 of file dl-problem.h.
|
inline |
Gradient of the cost function.
Definition at line 46 of file dl-problem.h.
|
inline |
Constraints function.
Definition at line 52 of file dl-problem.h.
|
inline |
Gradient-vector product of the constraints function.
Definition at line 58 of file dl-problem.h.
|
inline |
Jacobian of the constraints function.
Definition at line 65 of file dl-problem.h.
|
inline |
Number of nonzeros of the sparse Jacobian of the constraints function.
Definition at line 73 of file dl-problem.h.
|
inline |
Gradient of specific constraint function.
Definition at line 77 of file dl-problem.h.
|
inline |
Hessian-vector product of the Lagrangian.
Definition at line 84 of file dl-problem.h.
|
inline |
Hessian of the Lagrangian.
Definition at line 93 of file dl-problem.h.
|
inline |
Number of nonzeros of the sparse Hessian of the Lagrangian.
Definition at line 103 of file dl-problem.h.
|
inline |
Hessian-vector product of the augmented Lagrangian.
Definition at line 107 of file dl-problem.h.
|
inline |
Hessian of the augmented Lagrangian.
Definition at line 119 of file dl-problem.h.
|
inline |
Number of nonzeros of the sparse Hessian of the augmented Lagrangian.
Definition at line 132 of file dl-problem.h.
|
inline |
Cost and its gradient.
Definition at line 136 of file dl-problem.h.
|
inline |
Cost and constraints.
Definition at line 142 of file dl-problem.h.
|
inline |
Gradient of the cost and gradient-vector product of the constraints.
Definition at line 148 of file dl-problem.h.
|
inline |
Gradient of the Lagrangian.
Definition at line 156 of file dl-problem.h.
|
inline |
Augmented Lagrangian.
Definition at line 164 of file dl-problem.h.
|
inline |
Gradient of the augmented Lagrangian.
Definition at line 174 of file dl-problem.h.
|
inline |
Augmented Lagrangian and its gradient.
Definition at line 186 of file dl-problem.h.
|
inline |
Proximal gradient step.
Definition at line 200 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 210 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 216 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 226 of file dl-problem.h.