(ns knn.norm) | |
(use '[knn.op :as op]) | |
Manhattan norm of a vector l_1 norm | (defn manhattan-norm [v] (reduce + (map #(Math/abs %) v))) |
Euclidean norm of a vector l_2 norm | (defn euclidean-norm [v] (Math/sqrt (op/dot v v))) |
L-p Norm of a vector l_p norm | (defn lp-norm [v p] (Math/pow (reduce + (map #(Math/pow (Math/abs %) p) v)) (/ p))) |
Max Norm of a vector l_p norm when p -> Infinity | (defn max-norm [v] (apply max (map #(Math/abs %) v))) |