template<class Problem>
struct alpaqa::ProblemWithCounters< Problem >
Problem wrapper that keeps track of the number of evaluations and the run time of each function.
You probably want to use problem_with_counters or problem_with_counters_ref instead of instantiating this class directly.
- Note
- The evaluation counters are stored using a std::shared_pointers, which means that different copies of a ProblemWithCounters instance all share the same counters. To opt out of this behavior, you can use the decouple_evaluations function.
Definition at line 24 of file problem-with-counters.hpp.
|
void | eval_projecting_difference_constraints (crvec z, rvec e) const |
void | eval_projection_multipliers (rvec y, real_t M) const |
real_t | eval_proximal_gradient_step (real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) const |
index_t | eval_inactive_indices_res_lna (real_t γ, crvec x, crvec grad_ψ, rindexvec J) const |
real_t | eval_objective (crvec x) const |
void | eval_objective_gradient (crvec x, rvec grad_fx) const |
void | eval_constraints (crvec x, rvec gx) const |
void | eval_constraints_gradient_product (crvec x, crvec y, rvec grad_gxy) const |
void | eval_grad_gi (crvec x, index_t i, rvec grad_gi) const |
void | eval_constraints_jacobian (crvec x, rvec J_values) const |
Sparsity | get_constraints_jacobian_sparsity () const |
void | eval_lagrangian_hessian_product (crvec x, crvec y, real_t scale, crvec v, rvec Hv) const |
void | eval_lagrangian_hessian (crvec x, crvec y, real_t scale, rvec H_values) const |
Sparsity | get_lagrangian_hessian_sparsity () const |
void | eval_augmented_lagrangian_hessian_product (crvec x, crvec y, crvec Σ, real_t scale, crvec v, rvec Hv) const |
void | eval_augmented_lagrangian_hessian (crvec x, crvec y, crvec Σ, real_t scale, rvec H_values) const |
Sparsity | get_augmented_lagrangian_hessian_sparsity () const |
real_t | eval_objective_and_gradient (crvec x, rvec grad_fx) const |
real_t | eval_objective_and_constraints (crvec x, rvec g) const |
void | eval_objective_gradient_and_constraints_gradient_product (crvec x, crvec y, rvec grad_f, rvec grad_gxy) const |
void | eval_lagrangian_gradient (crvec x, crvec y, rvec grad_L, rvec work_n) const |
real_t | eval_augmented_lagrangian (crvec x, crvec y, crvec Σ, rvec ŷ) const |
void | eval_augmented_lagrangian_gradient (crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const |
real_t | eval_augmented_lagrangian_and_gradient (crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const |
const Box & | get_variable_bounds () const |
const Box & | get_general_bounds () const |
void | check () const |
std::string | get_name () const |
bool | provides_eval_grad_gi () const |
bool | provides_eval_inactive_indices_res_lna () const |
bool | provides_eval_constraints_jacobian () const |
bool | provides_get_constraints_jacobian_sparsity () const |
bool | provides_eval_lagrangian_hessian_product () const |
bool | provides_eval_lagrangian_hessian () const |
bool | provides_get_lagrangian_hessian_sparsity () const |
bool | provides_eval_augmented_lagrangian_hessian_product () const |
bool | provides_eval_augmented_lagrangian_hessian () const |
bool | provides_get_augmented_lagrangian_hessian_sparsity () const |
bool | provides_eval_objective_and_gradient () const |
bool | provides_eval_objective_and_constraints () const |
bool | provides_eval_objective_gradient_and_constraints_gradient_product () const |
bool | provides_eval_lagrangian_gradient () const |
bool | provides_eval_augmented_lagrangian () const |
bool | provides_eval_augmented_lagrangian_gradient () const |
bool | provides_eval_augmented_lagrangian_and_gradient () const |
bool | provides_get_variable_bounds () const |
bool | provides_get_general_bounds () const |
bool | provides_check () const |
bool | provides_get_name () const |
length_t | get_num_variables () const |
length_t | get_num_constraints () const |
| ProblemWithCounters ()=default |
template<class P>
requires std::is_same_v<std::remove_cvref_t<P>, std::remove_cvref_t<Problem>> |
| ProblemWithCounters (P &&problem) |
template<class... Args>
requires (!std::is_lvalue_reference_v<Problem>) |
| ProblemWithCounters (std::in_place_t, Args &&...args) |
void | reset_evaluations () |
| Reset all evaluation counters and timers to zero.
|
void | decouple_evaluations () |
| Give this instance its own evaluation counters and timers, decoupling it from any other instances they might have previously been shared with.
|