diff options
Diffstat (limited to 'src/utilities/utilities.cpp')
-rw-r--r-- | src/utilities/utilities.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/utilities/utilities.cpp b/src/utilities/utilities.cpp index fd198c0d..b2ed2f0c 100644 --- a/src/utilities/utilities.cpp +++ b/src/utilities/utilities.cpp @@ -18,6 +18,7 @@ #include <chrono> #include <random> #include <iomanip> +#include <cmath> namespace clblast { // ================================================================================================= @@ -118,6 +119,14 @@ double2 ConstantNegOne() { return {-1.0, 0.0}; } +// Returns the absolute value of a scalar +template <typename T> T AbsoluteValue(const T value) { return std::fabs(value); } +template float AbsoluteValue<float>(const float); +template double AbsoluteValue<double>(const double); +template <> half AbsoluteValue(const half value) { return FloatToHalf(std::fabs(HalfToFloat(value))); } +template <> float2 AbsoluteValue(const float2 value) { return std::abs(value); } +template <> double2 AbsoluteValue(const double2 value) { return std::abs(value); } + // ================================================================================================= // Implements the string conversion using std::to_string if possible |