| 
    Clingo
    
   | 
 
Additional (checked) math functions. More...
Functions | |
| template<std::signed_integral T, std::signed_integral S> | |
| auto | CppClingo::Util::check_cast (S in) -> bool | 
| Check if s of type S can be casted to T without loss.  | |
| template<std::integral T, std::integral S> | |
| auto | CppClingo::Util::safe_cast (S in) -> T | 
| Cast S to T if possible.  | |
| template<std::signed_integral S> | |
| auto | CppClingo::Util::check_add (S a, S b) -> std::optional< S > | 
| Add two integers checking overflows.   | |
| template<std::signed_integral S> | |
| auto | CppClingo::Util::check_sub (S a, S b) -> std::optional< S > | 
| Subtract two integers checking overflows.   | |
| template<std::signed_integral S> | |
| auto | CppClingo::Util::check_neg (S a) -> std::optional< S > | 
| Negate an integer checking overflows.  | |
| template<std::signed_integral S> | |
| auto | CppClingo::Util::check_abs (S a) -> std::optional< S > | 
| The absolute of an integer checking overflows.  | |
| template<std::signed_integral S> | |
| auto | CppClingo::Util::check_mul (S a, S b) -> std::optional< S > | 
| Multiply two integers checking overflows.   | |
| template<std::signed_integral S> | |
| auto | CppClingo::Util::check_div (S a, S b) -> std::optional< S > | 
| Divide two integers checking overflows (truncating toward negative infinity).  | |
| template<std::signed_integral S> | |
| auto | CppClingo::Util::check_mod (S a, S b) -> std::optional< S > | 
| Modulo of two integers checking overflows (truncating toward negative infinity).  | |
| template<std::signed_integral S> | |
| auto | CppClingo::Util::check_pow (S a, S b) -> std::optional< S > | 
| Power of the given integers checking overflows.   | |
Additional (checked) math functions.
| auto CppClingo::Util::check_add | ( | S | a, | 
| S | b | ||
| ) | -> std::optional<S> | 
Add two integers checking overflows.
Fallback for the general case.
| auto CppClingo::Util::check_mul | ( | S | a, | 
| S | b | ||
| ) | -> std::optional<S> | 
Multiply two integers checking overflows.
Fallback for the general case.
| auto CppClingo::Util::check_pow | ( | S | a, | 
| S | b | ||
| ) | -> std::optional<S> | 
Power of the given integers checking overflows.
Note that a^0 = 1 for all values of a and a^b=0 whenever b is less than zero. 
| auto CppClingo::Util::check_sub | ( | S | a, | 
| S | b | ||
| ) | -> std::optional<S> | 
Subtract two integers checking overflows.
Fallback for the general case.