summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2021-09-11 14:57:11 -0700
committera1xd <[email protected]>2021-09-23 22:33:13 -0400
commit8427b91632b73cf2f608b36b14a47ddb4e5d3bf0 (patch)
treecf7436c6bcb9e907433c9255b6e92b31b0c5d85a /common
parentAdd y\x ratio to gui (diff)
downloadrawaccel-8427b91632b73cf2f608b36b14a47ddb4e5d3bf0.tar.xz
rawaccel-8427b91632b73cf2f608b36b14a47ddb4e5d3bf0.zip
Support infinite LP norm - any value greater than 64
Diffstat (limited to 'common')
-rw-r--r--common/math-vec2.hpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/common/math-vec2.hpp b/common/math-vec2.hpp
index 2622926..ac6fd9b 100644
--- a/common/math-vec2.hpp
+++ b/common/math-vec2.hpp
@@ -32,5 +32,14 @@ inline double magnitude(const vec2d& v)
inline double lp_distance(const vec2d& v, double p)
{
+ if (p > 64) {
+ return lp_infinite_distance(v);
+ }
+
return pow(pow(v.x, p) + pow(v.y, p), 1 / p);
}
+
+inline double lp_infinite_distance(const vec2d& v)
+{
+ return abs(v.x) > abs(v.y) ? abs(v.x) : abs(v.y);
+}