(ns knn.op) | |
Addition of two vectors | (defn add [first-vector second-vector] (map + first-vector second-vector)) |
Subtraction of two vectors | (defn subtract [first-vector second-vector] (map - first-vector second-vector)) |
Multiplication of two vectors element-wise | (defn mult [first-vector second-vector] (map * first-vector second-vector)) |
Division of two vectors element-wise | (defn div [first-vector second-vector] (map / first-vector second-vector)) |
Dot product of two vectors | (defn dot [first-vector second-vector] (reduce + (map * first-vector second-vector))) |
Add a scalar to a vector | (defn scalar-add [v scalar] (map #(+ scalar %) v)) |
Subtract a scalar from a vector | (defn scalar-subtract [v scalar] (map #(- % scalar) v)) |
Multiply a scalar with a vector by element-wise | (defn scalar-mult [v scalar] (map #(* scalar %) v)) |
Divide a scalar with a vector by element-wise | (defn scalar-div [v scalar] (map #(/ % scalar) v)) |
Clamp the vector between minimum and maximum values | (defn clamp [cmin cmax v] (map #(max cmin (min cmax %)) v)) |
Mean of a vector | (defn mean [v] (/ (reduce + v) (count v))) |
Moving average of a vector for a given window | (defn moving-average [v window] (map mean (partition window 1 v))) |
Returns element-wise squared version of the vector | (defn squared [v] (map #(* % %) v)) |
Element-wise absolute operation to a vector | (defn abs [v] (map #(Math/abs %) v)) |
Element-wise power operation to a vector | (defn pow [v scalar] (map #(Math/pow % scalar) v)) |