19 #ifndef yap_MathUtilities_h
20 #define yap_MathUtilities_h
22 #include <type_traits>
35 {
return not
is_odd(val); }
39 typename std::enable_if<std::is_signed<T>::value, T>::type
41 {
return (T(0) < val) - (val < T(0)); }
45 {
return is_odd(exponent) ? -1 : +1; }
constexpr bool is_odd(int val)
Math Utilities.
Definition: MathUtilities.h:30
std::enable_if< std::is_signed< T >::value, T >::type constexpr signum(const T &val)
extracts sign from value
Definition: MathUtilities.h:40
constexpr bool is_even(int val)
Definition: MathUtilities.h:34
constexpr int pow_negative_one(int exponent)
optimized function for (-1)^n
Definition: MathUtilities.h:44