diff --git a/src/index.js b/src/index.js index f068bcc..a696800 100644 --- a/src/index.js +++ b/src/index.js @@ -157,7 +157,29 @@ function normalize(vector, norm) { for (i = 0; i < vector.length; i++) { vector[i] = Math.sqrt(vector[i] / denom); } - } else { // i.e norm === "L2" + } else if (norm === "L2-hys") { + sum = 0; + for (i = 0; i < vector.length; i++) { + sum += vector[i] * vector[i]; + } + denom = Math.sqrt(sum + epsilon); + for (i = 0; i < vector.length; i++) { + vector[i] /= denom; + } + for (i = 0; i < vector.length; i++) { + if (vector[i] > 0.2 || vector[i] < -0.2){ + vector[i] = 0.2; + } + } + sum = 0; + for (i = 0; i < vector.length; i++) { + sum += vector[i] * vector[i]; + } + denom = Math.sqrt(sum + epsilon); + for (i = 0; i < vector.length; i++) { + vector[i] /= denom; + } + else { // i.e norm === "L2" sum = 0; for (i = 0; i < vector.length; i++) { sum += vector[i] * vector[i];