diff options
| author | Jacob Palecki <[email protected]> | 2021-09-11 14:57:11 -0700 |
|---|---|---|
| committer | a1xd <[email protected]> | 2021-09-23 22:33:13 -0400 |
| commit | 8427b91632b73cf2f608b36b14a47ddb4e5d3bf0 (patch) | |
| tree | cf7436c6bcb9e907433c9255b6e92b31b0c5d85a /common/math-vec2.hpp | |
| parent | Add y\x ratio to gui (diff) | |
| download | rawaccel-8427b91632b73cf2f608b36b14a47ddb4e5d3bf0.tar.xz rawaccel-8427b91632b73cf2f608b36b14a47ddb4e5d3bf0.zip | |
Support infinite LP norm - any value greater than 64
Diffstat (limited to 'common/math-vec2.hpp')
| -rw-r--r-- | common/math-vec2.hpp | 9 |
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); +} |