UNPKG

hdsp2

Version:

High-Dimensional Space Projections

104 lines 2.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Utils = void 0; var Utils = (function () { function Utils() { } Utils.array = function (N) { return Utils.fillArray(N, 0); }; ; Utils.fillArray = function (N, value) { var result = []; for (var n = 0; n < N; n++) { result.push(value); } return result; }; ; Utils.randomArray = function (N, random) { if (random === void 0) { random = Math.random; } var result = []; for (var n = 0; n < N; n++) { result.push(random()); } return result; }; ; Utils.array2D = function (M, N) { var result = []; for (var m = 0; m < M; m++) { result.push(Utils.fillArray(N, 0)); } return result; }; Utils.random2D = function (M, N, random) { if (random === void 0) { random = Math.random; } var result = []; for (var m = 0; m < M; m++) { result.push(Utils.randomArray(N, random)); } return result; }; Utils.distance = function (featureVectors) { var N = featureVectors.length; var result = Utils.array2D(N, N); for (var n = 0; n < N; n++) { for (var m = 0; m <= n; m++) { result[n][m] = result[m][n] = Utils.euclidean(featureVectors[n], featureVectors[m]); } } return result; }; Utils.euclidean = function (u, v) { var sum = 0; for (var i = 0; i < u.length; i++) { sum += Math.pow(u[i] - v[i], 2); } return Math.sqrt(sum); }; Utils.sub = function (u, v) { var sub = []; for (var i = 0; i < u.length; i++) { sub.push(u[i] - v[i]); } return sub; }; Utils.add = function (u, v) { var add = []; for (var i = 0; i < u.length; i++) { add.push(u[i] + v[i]); } return add; }; Utils.mult = function (u, v) { var mult = []; for (var i = 0; i < u.length; i++) { mult.push(u[i] * v[i]); } return mult; }; Utils.norm = function (u) { var squaredSum = 0; for (var i = 0; i < u.length; i++) { squaredSum += Math.pow(u[i], 2); } return Math.sqrt(squaredSum); }; Utils.shuffle = function (u) { return u.sort(function () { return Math.random() - 0.5; }); }; Utils.fisheryates_shuffle = function (u, random) { var _a; if (random === void 0) { random = Math.random; } var n = u.length; for (var i = n - 1; i > 0; i--) { var j = Math.floor(random() * (i + 1)); _a = [u[j], u[i]], u[i] = _a[0], u[j] = _a[1]; } return u; }; return Utils; }()); exports.Utils = Utils; //# sourceMappingURL=Utils.js.map