summaryrefslogtreecommitdiff
path: root/common/utility.hpp
diff options
context:
space:
mode:
authora1xd <[email protected]>2021-03-29 18:01:20 -0400
committera1xd <[email protected]>2021-03-29 18:01:20 -0400
commited0bbc22681681a16b7d45b05133c38a0b82006f (patch)
tree3c883ad3c85608cd167efded8cce09733527f835 /common/utility.hpp
parentrefactor common/settings (diff)
downloadrawaccel-ed0bbc22681681a16b7d45b05133c38a0b82006f.tar.xz
rawaccel-ed0bbc22681681a16b7d45b05133c38a0b82006f.zip
formatting + file renames
Diffstat (limited to 'common/utility.hpp')
-rw-r--r--common/utility.hpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/common/utility.hpp b/common/utility.hpp
new file mode 100644
index 0000000..40bc7c4
--- /dev/null
+++ b/common/utility.hpp
@@ -0,0 +1,30 @@
+#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;
+}
+
+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);
+}