smats  0.0.1
Satisfability Modulo Arithmetic Theories Symbols
Loading...
Searching...
No Matches
expression_kind.h
1
10#pragma once
11
12#include <cstdint>
13#include <istream>
14
15namespace smats {
16
20enum class ExpressionKind {
21 Constant,
22 Var,
23 Add,
24 Mul,
25 Div,
26 Log,
27 Abs,
28 Exp,
29 Sqrt,
30 Pow,
31 Sin,
32 Cos,
33 Tan,
34 Asin,
35 Acos,
36 Atan,
37 Atan2,
38 Sinh,
39 Cosh,
40 Tanh,
41 Min,
42 Max,
43 Ceil,
44 Floor,
46 NaN,
48};
49
50inline bool operator<(ExpressionKind k1, ExpressionKind k2) {
51 return static_cast<std::uint16_t>(k1) < static_cast<std::uint16_t>(k2);
52}
53
54std::ostream &operator<<(std::ostream &os, const ExpressionKind &kind);
55
56} // namespace smats
ExpressionKind enum.
ExpressionKind
Definition expression_kind.h:20
@ Abs
absolute value function
@ UninterpretedFunction
Uninterpreted function.
@ Cosh
hyperbolic cosine
@ Atan2
arctangent2 (atan2(y,x) = atan(y/x))
@ Mul
multiplication (*)
@ Pow
power function
@ Sinh
hyperbolic sine
@ IfThenElse
if then else
@ Exp
exponentiation
@ Constant
constant (double)
@ Tanh
hyperbolic tangent