Rauno U
/
Miisu
Six crescent shaped legs
Math.hpp@47:4f418a4b0051, 2016-06-21 (annotated)
- 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?
User | Revision | Line number | New 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 |