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