summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authora1xd <[email protected]>2021-03-30 18:26:20 -0400
committera1xd <[email protected]>2021-03-30 18:26:20 -0400
commit4456e2bc8b9c1ef9c1aa2e3509adc8f456bb5fdc (patch)
tree1e6d3352665a0c70f5270d31c332e8950f80e3a6 /common
parentadd zero/inf/nan guards (diff)
downloadrawaccel-4456e2bc8b9c1ef9c1aa2e3509adc8f456bb5fdc.tar.xz
rawaccel-4456e2bc8b9c1ef9c1aa2e3509adc8f456bb5fdc.zip
put utility in namespace
Diffstat (limited to 'common')
-rw-r--r--common/utility.hpp67
1 files changed, 37 insertions, 30 deletions
diff --git a/common/utility.hpp b/common/utility.hpp
index d7b63cf..ae14b48 100644
--- a/common/utility.hpp
+++ b/common/utility.hpp
@@ -1,42 +1,49 @@
#pragma once
#ifdef _MANAGED
-
#include <math.h>
-inline double sqrtsd(double val) { return sqrt(val); }
-
#else
-
#include <emmintrin.h>
-inline double sqrtsd(double val) {
- __m128d src = _mm_load_sd(&val);
- __m128d dst = _mm_sqrt_sd(src, src);
- _mm_store_sd(&val, dst);
- return val;
-}
-
#endif
-inline constexpr double minsd(double a, double b) {
- return (a < b) ? a : b;
-}
+namespace rawaccel {
-inline constexpr double maxsd(double a, double b) {
- return (b < a) ? a : b;
-}
-
-inline constexpr double clampsd(double v, double lo, double hi) {
- return minsd(maxsd(v, lo), hi);
-}
+#ifdef _MANAGED
+ inline double sqrtsd(double val) { return sqrt(val); }
+#else
+ inline double sqrtsd(double val) {
+ __m128d src = _mm_load_sd(&val);
+ __m128d dst = _mm_sqrt_sd(src, src);
+ _mm_store_sd(&val, dst);
+ return val;
+ }
+#endif
-// returns the unbiased exponent of x if x is normal
-inline int ilogb(double x)
-{
- union { double f; unsigned long long i; } u = { x };
- return static_cast<int>((u.i >> 52) & 0x7ff) - 0x3ff;
-}
+ constexpr double minsd(double a, double b)
+ {
+ return (a < b) ? a : b;
+ }
+
+ constexpr double maxsd(double a, double b)
+ {
+ return (b < a) ? a : b;
+ }
+
+ constexpr double clampsd(double v, double lo, double hi)
+ {
+ return minsd(maxsd(v, lo), hi);
+ }
+
+ // returns the unbiased exponent of x if x is normal
+ inline int ilogb(double x)
+ {
+ union { double f; unsigned long long i; } u = { x };
+ return static_cast<int>((u.i >> 52) & 0x7ff) - 0x3ff;
+ }
+
+ inline bool infnan(double x)
+ {
+ return ilogb(x) == 0x400;
+ }
-inline bool infnan(double x)
-{
- return ilogb(x) == 0x400;
}