alpaqa guanaqo
Nonconvex constrained optimization
Loading...
Searching...
No Matches
problem-counters.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <alpaqa/export.h>
4
5#include <chrono>
6#include <iosfwd>
7
8namespace alpaqa {
9
15 unsigned objective{};
20 unsigned constraints{};
22 unsigned grad_gi{};
32
33 struct EvalTimer {
34 std::chrono::nanoseconds projecting_difference_constraints{};
35 std::chrono::nanoseconds projection_multipliers{};
36 std::chrono::nanoseconds proximal_gradient_step{};
37 std::chrono::nanoseconds inactive_indices_res_lna{};
38 std::chrono::nanoseconds objective{};
39 std::chrono::nanoseconds objective_gradient{};
40 std::chrono::nanoseconds objective_and_gradient{};
41 std::chrono::nanoseconds objective_and_constraints{};
43 std::chrono::nanoseconds constraints{};
44 std::chrono::nanoseconds constraints_gradient_product{};
45 std::chrono::nanoseconds grad_gi{};
46 std::chrono::nanoseconds constraints_jacobian{};
47 std::chrono::nanoseconds lagrangian_gradient{};
48 std::chrono::nanoseconds lagrangian_hessian_product{};
49 std::chrono::nanoseconds lagrangian_hessian{};
50 std::chrono::nanoseconds augmented_lagrangian_hessian_product{};
51 std::chrono::nanoseconds augmented_lagrangian_hessian{};
52 std::chrono::nanoseconds augmented_lagrangian{};
53 std::chrono::nanoseconds augmented_lagrangian_gradient{};
54 std::chrono::nanoseconds augmented_lagrangian_and_gradient{};
56
57 void reset() { *this = {}; }
58};
59
60ALPAQA_EXPORT std::ostream &operator<<(std::ostream &, const EvalCounter &);
61
88
115
116inline EvalCounter operator+(EvalCounter a, const EvalCounter &b) { return a += b; }
117
118} // namespace alpaqa
std::ostream & operator<<(std::ostream &os, PANOCStopCrit s)
OCPEvalCounter operator+(OCPEvalCounter a, const OCPEvalCounter &b)
InnerStatsAccumulator< FISTAStats< Conf > > & operator+=(InnerStatsAccumulator< FISTAStats< Conf > > &acc, const FISTAStats< Conf > &s)
Definition fista.hpp:189
std::chrono::nanoseconds grad_gi
std::chrono::nanoseconds constraints
std::chrono::nanoseconds projecting_difference_constraints
unsigned augmented_lagrangian_gradient
std::chrono::nanoseconds inactive_indices_res_lna
struct alpaqa::EvalCounter::EvalTimer time
std::chrono::nanoseconds augmented_lagrangian_hessian
std::chrono::nanoseconds augmented_lagrangian
unsigned augmented_lagrangian_hessian
std::chrono::nanoseconds proximal_gradient_step
unsigned augmented_lagrangian_hessian_product
std::chrono::nanoseconds constraints_jacobian
std::chrono::nanoseconds objective
std::chrono::nanoseconds lagrangian_hessian
unsigned augmented_lagrangian_and_gradient
std::chrono::nanoseconds objective_gradient
std::chrono::nanoseconds constraints_gradient_product
std::chrono::nanoseconds augmented_lagrangian_and_gradient
std::chrono::nanoseconds augmented_lagrangian_gradient
std::chrono::nanoseconds objective_and_constraints
std::chrono::nanoseconds augmented_lagrangian_hessian_product
std::chrono::nanoseconds projection_multipliers
unsigned projecting_difference_constraints
unsigned objective_gradient_and_constraints_gradient_product
std::chrono::nanoseconds lagrangian_gradient
unsigned constraints_gradient_product
std::chrono::nanoseconds lagrangian_hessian_product
std::chrono::nanoseconds objective_and_gradient
std::chrono::nanoseconds objective_gradient_and_constraints_gradient_product