PANOC-ALM  quadratic-penalty
Nonconvex constrained optimization
panoc-stop-crit.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <ostream>
4 #include <stdexcept>
5 
6 namespace pa {
7 
8 enum class PANOCStopCrit {
9  ApproxKKT = 0,
10  ProjGradNorm,
11  ProjGradUnitNorm,
12  FPRNorm,
13 };
14 
15 inline const char *enum_name(PANOCStopCrit s) {
16  switch (s) {
17  case PANOCStopCrit::ApproxKKT: return "ApproxKKT";
18  case PANOCStopCrit::ProjGradNorm: return "ProjGradNorm";
19  case PANOCStopCrit::ProjGradUnitNorm: return "ProjGradUnitNorm";
20  case PANOCStopCrit::FPRNorm: return "FPRNorm";
21  }
22  throw std::out_of_range("invalid value for pa::PANOCStopCrit");
23 }
24 
25 inline std::ostream &operator<<(std::ostream &os, PANOCStopCrit s) {
26  return os << enum_name(s);
27 }
28 
29 } // namespace pa
pa::enum_name
const char * enum_name(PANOCStopCrit s)
Definition: panoc-stop-crit.hpp:15
pa
Definition: alm.hpp:10
pa::PANOCStopCrit
PANOCStopCrit
Definition: panoc-stop-crit.hpp:8
pa::operator<<
std::ostream & operator<<(std::ostream &os, PANOCStopCrit s)
Definition: panoc-stop-crit.hpp:25
pa::PANOCStopCrit::ApproxKKT
@ ApproxKKT
Find a ε-approximate KKT point.