15constexpr float Abs(
float v)
17 return v < 0.0f ? -v : v;
20constexpr bool Equal(
float a,
float b,
float epsilon = 0.0000001f)
22 return Abs(a - b) < epsilon;
35constexpr float Lerp(
float start,
float end,
float t)
37 return start + (end - start) * t;
49constexpr float Clamp(T value, T lower, T upper)
51 return value < lower ? lower : (value > upper ? upper : value);
55typename std::enable_if<std::is_integral<T>::value, T>::type RandomRange(T start, T end)
57 static std::random_device rd;
58 static std::mt19937 gen(rd());
59 std::uniform_int_distribution<T> dis(start, end);
64typename std::enable_if<std::is_floating_point<T>::value, T>::type RandomRange(T start, T end)
66 static std::random_device rd;
67 static std::mt19937 gen(rd());
68 std::uniform_real_distribution<T> dis(start, end);
72T
constexpr SqrtNewtonRaphson(T x, T curr, T prev)
76 : SqrtNewtonRaphson<T>(x, (curr + x / curr) * 0.5, curr);
91 return x >= 0 && x < std::numeric_limits<T>::infinity()
92 ? SqrtNewtonRaphson<T>(x, x, 0)
93 : std::numeric_limits<T>::quiet_NaN();
constexpr float Clamp(T value, T lower, T upper)
Clamp is a math function that clamps the input value between an upper and lower value.
Definition: basic.h:49
T constexpr Sqrt(T x)
Sqrt is a constexpr version of the square root.
Definition: basic.h:89
constexpr float Abs(float v)
Abs is a constexpr function that returns the absolute value.
Definition: basic.h:15
constexpr float Lerp(float start, float end, float t)
Lerp is a function calculating the linear interpolation between two points.
Definition: basic.h:35