diff --git a/src/cmath.h b/src/cmath.h index bf876b3..ffd6128 100644 --- a/src/cmath.h +++ b/src/cmath.h @@ -3,15 +3,26 @@ #pragma once #ifndef __AVR__ - #include +#include #else - // AVR libc doesn't support cmath - #include +// AVR libc doesn't support cmath +#include - // Use builtin functions for min/max/abs - #define min(a, b) __builtin_min((a, b)) - #define max(a, b) __builtin_max((a, b)) - #define abs(n) __builtin_abs((n)) +// Use builtin functions for min/max/abs +template +static inline const T min(T a, T b) { + return __builtin_min((a, b)); +} + +template +static inline const T max(T a, T b) { + return __builtin_max((a, b)); +} + +template +static inline const T abs(T n) { + return __builtin_abs((n)); +} #endif