ctrl-utils
math.h
1 
10 #ifndef CTRL_UTILS_MATH_H_
11 #define CTRL_UTILS_MATH_H_
12 
13 namespace ctrl_utils {
14 
15 template<typename T>
16 T Signum(T x, T epsilon = T(0)) {
17  return (x > epsilon) - (x < -epsilon);
18 }
19 
20 template<typename T>
21 T Clip(T x, T max) {
22  return (x > max) ? max : (x < -max) ? -max : x;
23 }
24 
25 template<typename T>
26 T Power(T x, size_t exp) {
27  if (exp == 0) return 1;
28  T result = x;
29  for (size_t i = 1; i < exp; i++) {
30  result *= x;
31  }
32  return result;
33 }
34 
35 } // namespace ctrl_utils
36 
37 #endif // CTRL_UTILS_MATH_H_
Definition: ctrl_utils.cc:18