enums.h
Go to the documentation of this file.
1 /* Copyright 2020 CNRS-AIST JRL */
2 
3 #pragma once
4 
5 #include <jrl-qp/defs.h>
6 
7 namespace jrl::qp
8 {
14 enum class ActivationStatus
15 {
16  INACTIVE, // Constraint is inactive
17  LOWER, // Constraint is active at its lower bound
18  UPPER, // Constraint is active at its upper bound
19  EQUALITY, // Constraint is an equality constraint
20  LOWER_BOUND, // Constraint is a bound on variable constraint, active at its lower bound
21  UPPER_BOUND, // Constraint is a bound on variable constraint, active at its upper bound
22  FIXED // Constraint fixes the corresponding variable
23 };
24 
27 {
28  SUCCESS, // Operation was successful
29  INCONSISTENT_INPUT, // Inputs are not consistent with one another (e.g. mismatch of size, activation status, ...)
30  NON_POS_HESSIAN, // Quadratic matrix of the problem is expected to be positive definite, but is not.
31  INFEASIBLE, // Problem is infeasible
32  MAX_ITER_REACHED, // Maximum number of iteration was reached. You can increase this number by using the solver options.
33  LINEAR_DEPENDENCY_DETECTED, // Some active constraints are linearly dependent and the solver doesn't know how to
34  // handle this case.
35  OVERCONSTRAINED_PROBLEM, // Too many equality constraints and fixed variables
36  UNKNOWN, // Unknown status
37 };
38 
40 enum class LogFlags : std::uint32_t
41 {
42  NONE = 0,
43  INPUT = 1 << 0,
44  TERMINATION = 1 << 1,
45  ITERATION_BASIC_DETAILS = 1 << 2,
47  ACTIVE_SET = 1 << 4,
48  ACTIVE_SET_DETAILS = 1 << 5,
49  INIT = 1 << 6,
50  MISC = 1 << 30,
52 };
53 
54 inline std::uint32_t operator|(LogFlags a, LogFlags b)
55 {
56  return static_cast<std::uint32_t>(a) | static_cast<std::uint32_t>(b);
57 }
58 
59 inline std::uint32_t operator|(std::uint32_t a, LogFlags b)
60 {
61  return a | static_cast<std::uint32_t>(b);
62 }
63 
64 inline std::uint32_t operator|(LogFlags a, std::uint32_t b)
65 {
66  return static_cast<std::uint32_t>(a) | b;
67 }
68 } // namespace jrl::qp
jrl::qp::TerminationStatus::SUCCESS
@ SUCCESS
jrl::qp::constant::noIterationFlag
constexpr std::uint32_t noIterationFlag
Definition: defs.h:22
jrl::qp::TerminationStatus
TerminationStatus
Definition: enums.h:26
jrl::qp::LogFlags::ACTIVE_SET
@ ACTIVE_SET
jrl::qp::ActivationStatus
ActivationStatus
Definition: enums.h:14
jrl::qp::operator|
std::uint32_t operator|(LogFlags a, LogFlags b)
Definition: enums.h:54
jrl::qp::TerminationStatus::MAX_ITER_REACHED
@ MAX_ITER_REACHED
jrl::qp::LogFlags::MISC
@ MISC
jrl::qp::ActivationStatus::EQUALITY
@ EQUALITY
jrl::qp::TerminationStatus::NON_POS_HESSIAN
@ NON_POS_HESSIAN
jrl::qp
Definition: blockArrowLLT.h:12
jrl::qp::LogFlags::NONE
@ NONE
jrl::qp::LogFlags::INPUT
@ INPUT
jrl::qp::ActivationStatus::INACTIVE
@ INACTIVE
jrl::qp::LogFlags::ACTIVE_SET_DETAILS
@ ACTIVE_SET_DETAILS
jrl::qp::LogFlags::INIT
@ INIT
jrl::qp::TerminationStatus::OVERCONSTRAINED_PROBLEM
@ OVERCONSTRAINED_PROBLEM
jrl::qp::TerminationStatus::INCONSISTENT_INPUT
@ INCONSISTENT_INPUT
jrl::qp::LogFlags::ITERATION_ADVANCE_DETAILS
@ ITERATION_ADVANCE_DETAILS
jrl::qp::LogFlags
LogFlags
Definition: enums.h:40
jrl::qp::LogFlags::ITERATION_BASIC_DETAILS
@ ITERATION_BASIC_DETAILS
jrl::qp::TerminationStatus::UNKNOWN
@ UNKNOWN
jrl::qp::ActivationStatus::UPPER_BOUND
@ UPPER_BOUND
jrl::qp::ActivationStatus::UPPER
@ UPPER
jrl::qp::ActivationStatus::FIXED
@ FIXED
jrl::qp::LogFlags::NO_ITER
@ NO_ITER
defs.h
jrl::qp::ActivationStatus::LOWER_BOUND
@ LOWER_BOUND
jrl::qp::LogFlags::TERMINATION
@ TERMINATION
jrl::qp::TerminationStatus::LINEAR_DEPENDENCY_DETECTED
@ LINEAR_DEPENDENCY_DETECTED
jrl::qp::TerminationStatus::INFEASIBLE
@ INFEASIBLE
jrl::qp::ActivationStatus::LOWER
@ LOWER