diff options
| -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); +} |