Six crescent shaped legs

Dependencies:   mbed

Committer:
sim642
Date:
Tue Jun 21 14:43:44 2016 +0000
Revision:
47:4f418a4b0051
Parent:
18:1437610bea8b
Byte based communication

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sim642 17:cb8ad2fc76e5 1 #ifndef MATH_H
sim642 17:cb8ad2fc76e5 2 #define MATH_H
sim642 17:cb8ad2fc76e5 3
sim642 17:cb8ad2fc76e5 4 #include <cmath>
sim642 17:cb8ad2fc76e5 5
sim642 17:cb8ad2fc76e5 6 template<typename T>
sim642 17:cb8ad2fc76e5 7 T min(T a, T b)
sim642 17:cb8ad2fc76e5 8 {
sim642 17:cb8ad2fc76e5 9 return a < b ? a : b;
sim642 17:cb8ad2fc76e5 10 }
sim642 17:cb8ad2fc76e5 11
sim642 17:cb8ad2fc76e5 12 template<typename T>
sim642 17:cb8ad2fc76e5 13 T max(T a, T b)
sim642 17:cb8ad2fc76e5 14 {
sim642 17:cb8ad2fc76e5 15 return a > b ? a : b;
sim642 17:cb8ad2fc76e5 16 }
sim642 17:cb8ad2fc76e5 17
sim642 17:cb8ad2fc76e5 18 template<typename T>
sim642 17:cb8ad2fc76e5 19 T clamp(T val, T low, T high)
sim642 17:cb8ad2fc76e5 20 {
sim642 18:1437610bea8b 21 return ::min(::max(val, low), high);
sim642 17:cb8ad2fc76e5 22 }
sim642 17:cb8ad2fc76e5 23
sim642 17:cb8ad2fc76e5 24 template<typename T>
sim642 17:cb8ad2fc76e5 25 T clampAmplitude(T val, T amp)
sim642 17:cb8ad2fc76e5 26 {
sim642 17:cb8ad2fc76e5 27 amp = std::abs(amp); // ensure order
sim642 17:cb8ad2fc76e5 28 return clamp(val, -amp, amp);
sim642 17:cb8ad2fc76e5 29 }
sim642 17:cb8ad2fc76e5 30
sim642 17:cb8ad2fc76e5 31 #endif // MATH_H