23namespace Antares::Expressions::Visitors
28enum class LinearStatus :
char
43constexpr char pair(LinearStatus a, LinearStatus b)
45 return static_cast<char>(a) << 4 |
static_cast<char>(b);
56constexpr LinearStatus operator*(LinearStatus a, LinearStatus b)
60 case pair(LinearStatus::CONSTANT, LinearStatus::CONSTANT):
61 return LinearStatus::CONSTANT;
62 case pair(LinearStatus::CONSTANT, LinearStatus::LINEAR):
63 return LinearStatus::LINEAR;
64 case pair(LinearStatus::CONSTANT, LinearStatus::NON_LINEAR):
65 return LinearStatus::NON_LINEAR;
67 case pair(LinearStatus::LINEAR, LinearStatus::CONSTANT):
68 return LinearStatus::LINEAR;
69 case pair(LinearStatus::LINEAR, LinearStatus::LINEAR):
70 case pair(LinearStatus::LINEAR, LinearStatus::NON_LINEAR):
71 return LinearStatus::NON_LINEAR;
73 case pair(LinearStatus::NON_LINEAR, LinearStatus::CONSTANT):
74 case pair(LinearStatus::NON_LINEAR, LinearStatus::LINEAR):
75 case pair(LinearStatus::NON_LINEAR, LinearStatus::NON_LINEAR):
76 return LinearStatus::NON_LINEAR;
79 return LinearStatus::NON_LINEAR;
91constexpr LinearStatus operator/(LinearStatus a, LinearStatus b)
95 case pair(LinearStatus::CONSTANT, LinearStatus::CONSTANT):
96 return LinearStatus::CONSTANT;
97 case pair(LinearStatus::CONSTANT, LinearStatus::LINEAR):
98 return LinearStatus::NON_LINEAR;
99 case pair(LinearStatus::CONSTANT, LinearStatus::NON_LINEAR):
100 return LinearStatus::NON_LINEAR;
102 case pair(LinearStatus::LINEAR, LinearStatus::CONSTANT):
103 return LinearStatus::LINEAR;
104 case pair(LinearStatus::LINEAR, LinearStatus::LINEAR):
105 case pair(LinearStatus::LINEAR, LinearStatus::NON_LINEAR):
106 return LinearStatus::NON_LINEAR;
108 case pair(LinearStatus::NON_LINEAR, LinearStatus::CONSTANT):
109 case pair(LinearStatus::NON_LINEAR, LinearStatus::LINEAR):
110 case pair(LinearStatus::NON_LINEAR, LinearStatus::NON_LINEAR):
111 return LinearStatus::NON_LINEAR;
114 return LinearStatus::NON_LINEAR;
126constexpr LinearStatus operator+(LinearStatus a, LinearStatus b)
130 case pair(LinearStatus::CONSTANT, LinearStatus::CONSTANT):
131 return LinearStatus::CONSTANT;
132 case pair(LinearStatus::CONSTANT, LinearStatus::LINEAR):
133 return LinearStatus::LINEAR;
134 case pair(LinearStatus::CONSTANT, LinearStatus::NON_LINEAR):
135 return LinearStatus::NON_LINEAR;
137 case pair(LinearStatus::LINEAR, LinearStatus::CONSTANT):
138 return LinearStatus::LINEAR;
139 case pair(LinearStatus::LINEAR, LinearStatus::LINEAR):
140 return LinearStatus::LINEAR;
141 case pair(LinearStatus::LINEAR, LinearStatus::NON_LINEAR):
142 return LinearStatus::NON_LINEAR;
144 case pair(LinearStatus::NON_LINEAR, LinearStatus::CONSTANT):
145 case pair(LinearStatus::NON_LINEAR, LinearStatus::LINEAR):
146 case pair(LinearStatus::NON_LINEAR, LinearStatus::NON_LINEAR):
147 return LinearStatus::NON_LINEAR;
150 return LinearStatus::NON_LINEAR;
162constexpr LinearStatus operator-(LinearStatus a, LinearStatus b)
164 return operator+(a, b);
174constexpr LinearStatus operator-(LinearStatus a)