@datagrok/eda 1.4.3 → 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/_d4c0.js +279 -0
  3. package/dist/_d4c0.js.map +1 -0
  4. package/dist/node_modules_datagrok-libraries_math_src_dbscan_wasm_clustering-worker_js.js +279 -0
  5. package/dist/node_modules_datagrok-libraries_math_src_dbscan_wasm_clustering-worker_js.js.map +1 -0
  6. package/dist/node_modules_datagrok-libraries_ml_src_MCL_mcl-sparse-matrix-mult-worker_js.js +59 -0
  7. package/dist/node_modules_datagrok-libraries_ml_src_MCL_mcl-sparse-matrix-mult-worker_js.js.map +1 -0
  8. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_distance-matrix-worker_js.js +284 -0
  9. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_distance-matrix-worker_js.js.map +1 -0
  10. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_single-value-knn-worker_js.js +265 -0
  11. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_single-value-knn-worker_js.js.map +1 -0
  12. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_sparse-matrix-worker_js.js +287 -0
  13. package/dist/node_modules_datagrok-libraries_ml_src_distance-matrix_sparse-matrix-worker_js.js.map +1 -0
  14. package/dist/package-test.js +26140 -1
  15. package/dist/package-test.js.map +1 -1
  16. package/dist/package.js +30337 -1
  17. package/dist/package.js.map +1 -1
  18. package/dist/src_workers_softmax-worker_ts.js +154 -0
  19. package/dist/src_workers_softmax-worker_ts.js.map +1 -0
  20. package/dist/src_workers_tsne-worker_ts.js +244 -0
  21. package/dist/src_workers_tsne-worker_ts.js.map +1 -0
  22. package/dist/src_workers_umap-worker_ts.js +252 -0
  23. package/dist/src_workers_umap-worker_ts.js.map +1 -0
  24. package/dist/vendors-node_modules_datagrok-libraries_math_src_dbscan_wasm_dbscan_js.js +1253 -0
  25. package/dist/vendors-node_modules_datagrok-libraries_math_src_dbscan_wasm_dbscan_js.js.map +1 -0
  26. package/dist/vendors-node_modules_datagrok-libraries_math_src_hierarchical-clustering_wasm_clustering-worker_js.js +942 -0
  27. package/dist/vendors-node_modules_datagrok-libraries_math_src_hierarchical-clustering_wasm_clustering-worker_js.js.map +1 -0
  28. package/dist/vendors-node_modules_datagrok-libraries_math_src_webGPU_sparse-matrix_webGPU-sparse-matrix_js-07693f.js +1525 -0
  29. package/dist/vendors-node_modules_datagrok-libraries_math_src_webGPU_sparse-matrix_webGPU-sparse-matrix_js-07693f.js.map +1 -0
  30. package/dist/vendors-node_modules_datagrok-libraries_ml_src_MCL_mcl-worker_js-node_modules_datagrok-librar-e4203d.js +2244 -0
  31. package/dist/vendors-node_modules_datagrok-libraries_ml_src_MCL_mcl-worker_js-node_modules_datagrok-librar-e4203d.js.map +1 -0
  32. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_knn-threshold-worker_js.js +286 -0
  33. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_knn-threshold-worker_js.js.map +1 -0
  34. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_knn-worker_js.js +280 -0
  35. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_knn-worker_js.js.map +1 -0
  36. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_sparse-matrix-threshold-worker_js.js +282 -0
  37. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_sparse-matrix-threshold-worker_js.js.map +1 -0
  38. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_utils_js-node_modules_datagrok-72c7b2.js +1821 -0
  39. package/dist/vendors-node_modules_datagrok-libraries_ml_src_distance-matrix_utils_js-node_modules_datagrok-72c7b2.js.map +1 -0
  40. package/dist/vendors-node_modules_datagrok-libraries_ml_src_multi-column-dimensionality-reduction_mulit-co-3800a0.js +7776 -0
  41. package/dist/vendors-node_modules_datagrok-libraries_ml_src_multi-column-dimensionality-reduction_mulit-co-3800a0.js.map +1 -0
  42. package/dist/vendors-node_modules_keckelt_tsne_lib_index_js.js +379 -0
  43. package/dist/vendors-node_modules_keckelt_tsne_lib_index_js.js.map +1 -0
  44. package/dist/vendors-node_modules_ml-matrix_matrix_mjs.js +5946 -0
  45. package/dist/vendors-node_modules_ml-matrix_matrix_mjs.js.map +1 -0
  46. package/dist/vendors-node_modules_umap-js_dist_index_js.js +2284 -0
  47. package/dist/vendors-node_modules_umap-js_dist_index_js.js.map +1 -0
  48. package/dist/wasm_EDAForWebWorker_js-wasm_callWasmForWebWorker_js.js +779 -0
  49. package/dist/wasm_EDAForWebWorker_js-wasm_callWasmForWebWorker_js.js.map +1 -0
  50. package/dist/wasm_workers_errorWorker_js.js +267 -0
  51. package/dist/wasm_workers_errorWorker_js.js.map +1 -0
  52. package/dist/wasm_workers_fitLinearRegressionParamsWithDataNormalizingWorker_js.js +267 -0
  53. package/dist/wasm_workers_fitLinearRegressionParamsWithDataNormalizingWorker_js.js.map +1 -0
  54. package/dist/wasm_workers_fitLinearRegressionParamsWorker_js.js +267 -0
  55. package/dist/wasm_workers_fitLinearRegressionParamsWorker_js.js.map +1 -0
  56. package/dist/wasm_workers_fitSoftmaxWorker_js.js +267 -0
  57. package/dist/wasm_workers_fitSoftmaxWorker_js.js.map +1 -0
  58. package/dist/wasm_workers_generateDatasetWorker_js.js +267 -0
  59. package/dist/wasm_workers_generateDatasetWorker_js.js.map +1 -0
  60. package/dist/wasm_workers_normalizeDatasetWorker_js.js +267 -0
  61. package/dist/wasm_workers_normalizeDatasetWorker_js.js.map +1 -0
  62. package/dist/wasm_workers_partialLeastSquareRegressionWorker_js.js +267 -0
  63. package/dist/wasm_workers_partialLeastSquareRegressionWorker_js.js.map +1 -0
  64. package/dist/wasm_workers_predictByLSSVMWorker_js.js +267 -0
  65. package/dist/wasm_workers_predictByLSSVMWorker_js.js.map +1 -0
  66. package/dist/wasm_workers_principalComponentAnalysisNipalsWorker_js.js +267 -0
  67. package/dist/wasm_workers_principalComponentAnalysisNipalsWorker_js.js.map +1 -0
  68. package/dist/wasm_workers_principalComponentAnalysisWorkerUpd_js.js +271 -0
  69. package/dist/wasm_workers_principalComponentAnalysisWorkerUpd_js.js.map +1 -0
  70. package/dist/wasm_workers_trainAndAnalyzeLSSVMWorker_js.js +267 -0
  71. package/dist/wasm_workers_trainAndAnalyzeLSSVMWorker_js.js.map +1 -0
  72. package/dist/wasm_workers_trainLSSVMWorker_js.js +267 -0
  73. package/dist/wasm_workers_trainLSSVMWorker_js.js.map +1 -0
  74. package/dist/wasm_workers_xgboostWorker_js.js +279 -0
  75. package/dist/wasm_workers_xgboostWorker_js.js.map +1 -0
  76. package/package.json +5 -4
  77. package/src/package-api.ts +259 -0
  78. package/src/package.g.ts +522 -0
  79. package/src/package.ts +907 -678
  80. package/test-console-output-1.log +78 -93
  81. package/test-record-1.mp4 +0 -0
  82. package/tsconfig.json +2 -2
  83. package/webpack.config.js +5 -0
  84. package/dist/111.js +0 -2
  85. package/dist/111.js.map +0 -1
  86. package/dist/128.js +0 -2
  87. package/dist/128.js.map +0 -1
  88. package/dist/153.js +0 -2
  89. package/dist/153.js.map +0 -1
  90. package/dist/23.js +0 -2
  91. package/dist/23.js.map +0 -1
  92. package/dist/234.js +0 -2
  93. package/dist/234.js.map +0 -1
  94. package/dist/242.js +0 -2
  95. package/dist/242.js.map +0 -1
  96. package/dist/260.js +0 -2
  97. package/dist/260.js.map +0 -1
  98. package/dist/33.js +0 -2
  99. package/dist/33.js.map +0 -1
  100. package/dist/348.js +0 -2
  101. package/dist/348.js.map +0 -1
  102. package/dist/377.js +0 -2
  103. package/dist/377.js.map +0 -1
  104. package/dist/412.js +0 -2
  105. package/dist/412.js.map +0 -1
  106. package/dist/415.js +0 -2
  107. package/dist/415.js.map +0 -1
  108. package/dist/501.js +0 -2
  109. package/dist/501.js.map +0 -1
  110. package/dist/531.js +0 -2
  111. package/dist/531.js.map +0 -1
  112. package/dist/583.js +0 -2
  113. package/dist/583.js.map +0 -1
  114. package/dist/589.js +0 -2
  115. package/dist/589.js.map +0 -1
  116. package/dist/603.js +0 -2
  117. package/dist/603.js.map +0 -1
  118. package/dist/656.js +0 -2
  119. package/dist/656.js.map +0 -1
  120. package/dist/682.js +0 -2
  121. package/dist/682.js.map +0 -1
  122. package/dist/705.js +0 -2
  123. package/dist/705.js.map +0 -1
  124. package/dist/727.js +0 -2
  125. package/dist/727.js.map +0 -1
  126. package/dist/731.js +0 -2
  127. package/dist/731.js.map +0 -1
  128. package/dist/738.js +0 -3
  129. package/dist/738.js.LICENSE.txt +0 -51
  130. package/dist/738.js.map +0 -1
  131. package/dist/763.js +0 -2
  132. package/dist/763.js.map +0 -1
  133. package/dist/778.js +0 -2
  134. package/dist/778.js.map +0 -1
  135. package/dist/783.js +0 -2
  136. package/dist/783.js.map +0 -1
  137. package/dist/793.js +0 -2
  138. package/dist/793.js.map +0 -1
  139. package/dist/801.js +0 -2
  140. package/dist/801.js.map +0 -1
  141. package/dist/810.js +0 -2
  142. package/dist/810.js.map +0 -1
  143. package/dist/860.js +0 -2
  144. package/dist/860.js.map +0 -1
  145. package/dist/907.js +0 -2
  146. package/dist/907.js.map +0 -1
  147. package/dist/950.js +0 -2
  148. package/dist/950.js.map +0 -1
  149. package/dist/980.js +0 -2
  150. package/dist/980.js.map +0 -1
  151. package/dist/990.js +0 -2
  152. package/dist/990.js.map +0 -1
package/dist/415.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"415.js","mappings":"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","sources":["webpack://eda/./node_modules/umap-js/dist/matrix.js","webpack://eda/./node_modules/umap-js/dist/heap.js","webpack://eda/./node_modules/umap-js/dist/nn_descent.js","webpack://eda/./node_modules/umap-js/dist/index.js","webpack://eda/./node_modules/umap-js/dist/tree.js","webpack://eda/./node_modules/umap-js/dist/umap.js","webpack://eda/./node_modules/umap-js/node_modules/is-any-array/src/index.js","webpack://eda/./node_modules/umap-js/node_modules/ml-levenberg-marquardt/src/errorCalculation.js","webpack://eda/./node_modules/umap-js/node_modules/ml-levenberg-marquardt/src/step.js","webpack://eda/./node_modules/umap-js/node_modules/ml-levenberg-marquardt/src/index.js","webpack://eda/./node_modules/umap-js/dist/utils.js"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCSR = exports.normalize = exports.eliminateZeros = exports.multiplyScalar = exports.maximum = exports.subtract = exports.add = exports.pairwiseMultiply = exports.identity = exports.transpose = exports.SparseMatrix = void 0;\nvar utils = __importStar(require(\"./utils\"));\nvar SparseMatrix = (function () {\n function SparseMatrix(rows, cols, values, dims) {\n this.entries = new Map();\n this.nRows = 0;\n this.nCols = 0;\n if (rows.length !== cols.length || rows.length !== values.length) {\n throw new Error('rows, cols and values arrays must all have the same length');\n }\n this.nRows = dims[0];\n this.nCols = dims[1];\n for (var i = 0; i < values.length; i++) {\n var row = rows[i];\n var col = cols[i];\n this.checkDims(row, col);\n var key = this.makeKey(row, col);\n this.entries.set(key, { value: values[i], row: row, col: col });\n }\n }\n SparseMatrix.prototype.makeKey = function (row, col) {\n return row + \":\" + col;\n };\n SparseMatrix.prototype.checkDims = function (row, col) {\n var withinBounds = row < this.nRows && col < this.nCols;\n if (!withinBounds) {\n throw new Error('row and/or col specified outside of matrix dimensions');\n }\n };\n SparseMatrix.prototype.set = function (row, col, value) {\n this.checkDims(row, col);\n var key = this.makeKey(row, col);\n if (!this.entries.has(key)) {\n this.entries.set(key, { value: value, row: row, col: col });\n }\n else {\n this.entries.get(key).value = value;\n }\n };\n SparseMatrix.prototype.get = function (row, col, defaultValue) {\n if (defaultValue === void 0) { defaultValue = 0; }\n this.checkDims(row, col);\n var key = this.makeKey(row, col);\n if (this.entries.has(key)) {\n return this.entries.get(key).value;\n }\n else {\n return defaultValue;\n }\n };\n SparseMatrix.prototype.getAll = function (ordered) {\n if (ordered === void 0) { ordered = true; }\n var rowColValues = [];\n this.entries.forEach(function (value) {\n rowColValues.push(value);\n });\n if (ordered) {\n rowColValues.sort(function (a, b) {\n if (a.row === b.row) {\n return a.col - b.col;\n }\n else {\n return a.row - b.row;\n }\n });\n }\n return rowColValues;\n };\n SparseMatrix.prototype.getDims = function () {\n return [this.nRows, this.nCols];\n };\n SparseMatrix.prototype.getRows = function () {\n return Array.from(this.entries, function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n return value.row;\n });\n };\n SparseMatrix.prototype.getCols = function () {\n return Array.from(this.entries, function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n return value.col;\n });\n };\n SparseMatrix.prototype.getValues = function () {\n return Array.from(this.entries, function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n return value.value;\n });\n };\n SparseMatrix.prototype.forEach = function (fn) {\n this.entries.forEach(function (value) { return fn(value.value, value.row, value.col); });\n };\n SparseMatrix.prototype.map = function (fn) {\n var vals = [];\n this.entries.forEach(function (value) {\n vals.push(fn(value.value, value.row, value.col));\n });\n var dims = [this.nRows, this.nCols];\n return new SparseMatrix(this.getRows(), this.getCols(), vals, dims);\n };\n SparseMatrix.prototype.toArray = function () {\n var _this = this;\n var rows = utils.empty(this.nRows);\n var output = rows.map(function () {\n return utils.zeros(_this.nCols);\n });\n this.entries.forEach(function (value) {\n output[value.row][value.col] = value.value;\n });\n return output;\n };\n return SparseMatrix;\n}());\nexports.SparseMatrix = SparseMatrix;\nfunction transpose(matrix) {\n var cols = [];\n var rows = [];\n var vals = [];\n matrix.forEach(function (value, row, col) {\n cols.push(row);\n rows.push(col);\n vals.push(value);\n });\n var dims = [matrix.nCols, matrix.nRows];\n return new SparseMatrix(rows, cols, vals, dims);\n}\nexports.transpose = transpose;\nfunction identity(size) {\n var _a = __read(size, 1), rows = _a[0];\n var matrix = new SparseMatrix([], [], [], size);\n for (var i = 0; i < rows; i++) {\n matrix.set(i, i, 1);\n }\n return matrix;\n}\nexports.identity = identity;\nfunction pairwiseMultiply(a, b) {\n return elementWise(a, b, function (x, y) { return x * y; });\n}\nexports.pairwiseMultiply = pairwiseMultiply;\nfunction add(a, b) {\n return elementWise(a, b, function (x, y) { return x + y; });\n}\nexports.add = add;\nfunction subtract(a, b) {\n return elementWise(a, b, function (x, y) { return x - y; });\n}\nexports.subtract = subtract;\nfunction maximum(a, b) {\n return elementWise(a, b, function (x, y) { return (x > y ? x : y); });\n}\nexports.maximum = maximum;\nfunction multiplyScalar(a, scalar) {\n return a.map(function (value) {\n return value * scalar;\n });\n}\nexports.multiplyScalar = multiplyScalar;\nfunction eliminateZeros(m) {\n var zeroIndices = new Set();\n var values = m.getValues();\n var rows = m.getRows();\n var cols = m.getCols();\n for (var i = 0; i < values.length; i++) {\n if (values[i] === 0) {\n zeroIndices.add(i);\n }\n }\n var removeByZeroIndex = function (_, index) { return !zeroIndices.has(index); };\n var nextValues = values.filter(removeByZeroIndex);\n var nextRows = rows.filter(removeByZeroIndex);\n var nextCols = cols.filter(removeByZeroIndex);\n return new SparseMatrix(nextRows, nextCols, nextValues, m.getDims());\n}\nexports.eliminateZeros = eliminateZeros;\nfunction normalize(m, normType) {\n var e_1, _a;\n if (normType === void 0) { normType = \"l2\"; }\n var normFn = normFns[normType];\n var colsByRow = new Map();\n m.forEach(function (_, row, col) {\n var cols = colsByRow.get(row) || [];\n cols.push(col);\n colsByRow.set(row, cols);\n });\n var nextMatrix = new SparseMatrix([], [], [], m.getDims());\n var _loop_1 = function (row) {\n var cols = colsByRow.get(row).sort();\n var vals = cols.map(function (col) { return m.get(row, col); });\n var norm = normFn(vals);\n for (var i = 0; i < norm.length; i++) {\n nextMatrix.set(row, cols[i], norm[i]);\n }\n };\n try {\n for (var _b = __values(colsByRow.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var row = _c.value;\n _loop_1(row);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return nextMatrix;\n}\nexports.normalize = normalize;\nvar normFns = (_a = {},\n _a[\"max\"] = function (xs) {\n var max = -Infinity;\n for (var i = 0; i < xs.length; i++) {\n max = xs[i] > max ? xs[i] : max;\n }\n return xs.map(function (x) { return x / max; });\n },\n _a[\"l1\"] = function (xs) {\n var sum = 0;\n for (var i = 0; i < xs.length; i++) {\n sum += xs[i];\n }\n return xs.map(function (x) { return x / sum; });\n },\n _a[\"l2\"] = function (xs) {\n var sum = 0;\n for (var i = 0; i < xs.length; i++) {\n sum += Math.pow(xs[i], 2);\n }\n return xs.map(function (x) { return Math.sqrt(Math.pow(x, 2) / sum); });\n },\n _a);\nfunction elementWise(a, b, op) {\n var visited = new Set();\n var rows = [];\n var cols = [];\n var vals = [];\n var operate = function (row, col) {\n rows.push(row);\n cols.push(col);\n var nextValue = op(a.get(row, col), b.get(row, col));\n vals.push(nextValue);\n };\n var valuesA = a.getValues();\n var rowsA = a.getRows();\n var colsA = a.getCols();\n for (var i = 0; i < valuesA.length; i++) {\n var row = rowsA[i];\n var col = colsA[i];\n var key = row + \":\" + col;\n visited.add(key);\n operate(row, col);\n }\n var valuesB = b.getValues();\n var rowsB = b.getRows();\n var colsB = b.getCols();\n for (var i = 0; i < valuesB.length; i++) {\n var row = rowsB[i];\n var col = colsB[i];\n var key = row + \":\" + col;\n if (visited.has(key))\n continue;\n operate(row, col);\n }\n var dims = [a.nRows, a.nCols];\n return new SparseMatrix(rows, cols, vals, dims);\n}\nfunction getCSR(x) {\n var entries = [];\n x.forEach(function (value, row, col) {\n entries.push({ value: value, row: row, col: col });\n });\n entries.sort(function (a, b) {\n if (a.row === b.row) {\n return a.col - b.col;\n }\n else {\n return a.row - b.row;\n }\n });\n var indices = [];\n var values = [];\n var indptr = [];\n var currentRow = -1;\n for (var i = 0; i < entries.length; i++) {\n var _a = entries[i], row = _a.row, col = _a.col, value = _a.value;\n if (row !== currentRow) {\n currentRow = row;\n indptr.push(i);\n }\n indices.push(col);\n values.push(value);\n }\n return { indices: indices, values: values, indptr: indptr };\n}\nexports.getCSR = getCSR;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.smallestFlagged = exports.deheapSort = exports.buildCandidates = exports.uncheckedHeapPush = exports.heapPush = exports.rejectionSample = exports.makeHeap = void 0;\nvar utils = __importStar(require(\"./utils\"));\nfunction makeHeap(nPoints, size) {\n var makeArrays = function (fillValue) {\n return utils.empty(nPoints).map(function () {\n return utils.filled(size, fillValue);\n });\n };\n var heap = [];\n heap.push(makeArrays(-1));\n heap.push(makeArrays(Infinity));\n heap.push(makeArrays(0));\n return heap;\n}\nexports.makeHeap = makeHeap;\nfunction rejectionSample(nSamples, poolSize, random) {\n var result = utils.zeros(nSamples);\n for (var i = 0; i < nSamples; i++) {\n var rejectSample = true;\n var j = 0;\n while (rejectSample) {\n j = utils.tauRandInt(poolSize, random);\n var broken = false;\n for (var k = 0; k < i; k++) {\n if (j === result[k]) {\n broken = true;\n break;\n }\n }\n if (!broken)\n rejectSample = false;\n }\n result[i] = j;\n }\n return result;\n}\nexports.rejectionSample = rejectionSample;\nfunction heapPush(heap, row, weight, index, flag) {\n row = Math.floor(row);\n var indices = heap[0][row];\n var weights = heap[1][row];\n var isNew = heap[2][row];\n if (weight >= weights[0]) {\n return 0;\n }\n for (var i = 0; i < indices.length; i++) {\n if (index === indices[i]) {\n return 0;\n }\n }\n return uncheckedHeapPush(heap, row, weight, index, flag);\n}\nexports.heapPush = heapPush;\nfunction uncheckedHeapPush(heap, row, weight, index, flag) {\n var indices = heap[0][row];\n var weights = heap[1][row];\n var isNew = heap[2][row];\n if (weight >= weights[0]) {\n return 0;\n }\n weights[0] = weight;\n indices[0] = index;\n isNew[0] = flag;\n var i = 0;\n var iSwap = 0;\n while (true) {\n var ic1 = 2 * i + 1;\n var ic2 = ic1 + 1;\n var heapShape2 = heap[0][0].length;\n if (ic1 >= heapShape2) {\n break;\n }\n else if (ic2 >= heapShape2) {\n if (weights[ic1] > weight) {\n iSwap = ic1;\n }\n else {\n break;\n }\n }\n else if (weights[ic1] >= weights[ic2]) {\n if (weight < weights[ic1]) {\n iSwap = ic1;\n }\n else {\n break;\n }\n }\n else {\n if (weight < weights[ic2]) {\n iSwap = ic2;\n }\n else {\n break;\n }\n }\n weights[i] = weights[iSwap];\n indices[i] = indices[iSwap];\n isNew[i] = isNew[iSwap];\n i = iSwap;\n }\n weights[i] = weight;\n indices[i] = index;\n isNew[i] = flag;\n return 1;\n}\nexports.uncheckedHeapPush = uncheckedHeapPush;\nfunction buildCandidates(currentGraph, nVertices, nNeighbors, maxCandidates, random) {\n var candidateNeighbors = makeHeap(nVertices, maxCandidates);\n for (var i = 0; i < nVertices; i++) {\n for (var j = 0; j < nNeighbors; j++) {\n if (currentGraph[0][i][j] < 0) {\n continue;\n }\n var idx = currentGraph[0][i][j];\n var isn = currentGraph[2][i][j];\n var d = utils.tauRand(random);\n heapPush(candidateNeighbors, i, d, idx, isn);\n heapPush(candidateNeighbors, idx, d, i, isn);\n currentGraph[2][i][j] = 0;\n }\n }\n return candidateNeighbors;\n}\nexports.buildCandidates = buildCandidates;\nfunction deheapSort(heap) {\n var indices = heap[0];\n var weights = heap[1];\n for (var i = 0; i < indices.length; i++) {\n var indHeap = indices[i];\n var distHeap = weights[i];\n for (var j = 0; j < indHeap.length - 1; j++) {\n var indHeapIndex = indHeap.length - j - 1;\n var distHeapIndex = distHeap.length - j - 1;\n var temp1 = indHeap[0];\n indHeap[0] = indHeap[indHeapIndex];\n indHeap[indHeapIndex] = temp1;\n var temp2 = distHeap[0];\n distHeap[0] = distHeap[distHeapIndex];\n distHeap[distHeapIndex] = temp2;\n siftDown(distHeap, indHeap, distHeapIndex, 0);\n }\n }\n return { indices: indices, weights: weights };\n}\nexports.deheapSort = deheapSort;\nfunction siftDown(heap1, heap2, ceiling, elt) {\n while (elt * 2 + 1 < ceiling) {\n var leftChild = elt * 2 + 1;\n var rightChild = leftChild + 1;\n var swap = elt;\n if (heap1[swap] < heap1[leftChild]) {\n swap = leftChild;\n }\n if (rightChild < ceiling && heap1[swap] < heap1[rightChild]) {\n swap = rightChild;\n }\n if (swap === elt) {\n break;\n }\n else {\n var temp1 = heap1[elt];\n heap1[elt] = heap1[swap];\n heap1[swap] = temp1;\n var temp2 = heap2[elt];\n heap2[elt] = heap2[swap];\n heap2[swap] = temp2;\n elt = swap;\n }\n }\n}\nfunction smallestFlagged(heap, row) {\n var ind = heap[0][row];\n var dist = heap[1][row];\n var flag = heap[2][row];\n var minDist = Infinity;\n var resultIndex = -1;\n for (var i = 0; i > ind.length; i++) {\n if (flag[i] === 1 && dist[i] < minDist) {\n minDist = dist[i];\n resultIndex = i;\n }\n }\n if (resultIndex >= 0) {\n flag[resultIndex] = 0;\n return Math.floor(ind[resultIndex]);\n }\n else {\n return -1;\n }\n}\nexports.smallestFlagged = smallestFlagged;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initializeSearch = exports.makeInitializedNNSearch = exports.makeInitializations = exports.makeNNDescent = void 0;\nvar heap = __importStar(require(\"./heap\"));\nvar matrix = __importStar(require(\"./matrix\"));\nvar tree = __importStar(require(\"./tree\"));\nvar utils = __importStar(require(\"./utils\"));\nfunction makeNNDescent(distanceFn, random) {\n return function nNDescent(data, leafArray, nNeighbors, nIters, maxCandidates, delta, rho, rpTreeInit) {\n if (nIters === void 0) { nIters = 10; }\n if (maxCandidates === void 0) { maxCandidates = 50; }\n if (delta === void 0) { delta = 0.001; }\n if (rho === void 0) { rho = 0.5; }\n if (rpTreeInit === void 0) { rpTreeInit = true; }\n var nVertices = data.length;\n var currentGraph = heap.makeHeap(data.length, nNeighbors);\n for (var i = 0; i < data.length; i++) {\n var indices = heap.rejectionSample(nNeighbors, data.length, random);\n for (var j = 0; j < indices.length; j++) {\n var d = distanceFn(data[i], data[indices[j]]);\n heap.heapPush(currentGraph, i, d, indices[j], 1);\n heap.heapPush(currentGraph, indices[j], d, i, 1);\n }\n }\n if (rpTreeInit) {\n for (var n = 0; n < leafArray.length; n++) {\n for (var i = 0; i < leafArray[n].length; i++) {\n if (leafArray[n][i] < 0) {\n break;\n }\n for (var j = i + 1; j < leafArray[n].length; j++) {\n if (leafArray[n][j] < 0) {\n break;\n }\n var d = distanceFn(data[leafArray[n][i]], data[leafArray[n][j]]);\n heap.heapPush(currentGraph, leafArray[n][i], d, leafArray[n][j], 1);\n heap.heapPush(currentGraph, leafArray[n][j], d, leafArray[n][i], 1);\n }\n }\n }\n }\n for (var n = 0; n < nIters; n++) {\n var candidateNeighbors = heap.buildCandidates(currentGraph, nVertices, nNeighbors, maxCandidates, random);\n var c = 0;\n for (var i = 0; i < nVertices; i++) {\n for (var j = 0; j < maxCandidates; j++) {\n var p = Math.floor(candidateNeighbors[0][i][j]);\n if (p < 0 || utils.tauRand(random) < rho) {\n continue;\n }\n for (var k = 0; k < maxCandidates; k++) {\n var q = Math.floor(candidateNeighbors[0][i][k]);\n var cj = candidateNeighbors[2][i][j];\n var ck = candidateNeighbors[2][i][k];\n if (q < 0 || (!cj && !ck)) {\n continue;\n }\n var d = distanceFn(data[p], data[q]);\n c += heap.heapPush(currentGraph, p, d, q, 1);\n c += heap.heapPush(currentGraph, q, d, p, 1);\n }\n }\n }\n if (c <= delta * nNeighbors * data.length) {\n break;\n }\n }\n var sorted = heap.deheapSort(currentGraph);\n return sorted;\n };\n}\nexports.makeNNDescent = makeNNDescent;\nfunction makeInitializations(distanceFn) {\n function initFromRandom(nNeighbors, data, queryPoints, _heap, random) {\n for (var i = 0; i < queryPoints.length; i++) {\n var indices = utils.rejectionSample(nNeighbors, data.length, random);\n for (var j = 0; j < indices.length; j++) {\n if (indices[j] < 0) {\n continue;\n }\n var d = distanceFn(data[indices[j]], queryPoints[i]);\n heap.heapPush(_heap, i, d, indices[j], 1);\n }\n }\n }\n function initFromTree(_tree, data, queryPoints, _heap, random) {\n for (var i = 0; i < queryPoints.length; i++) {\n var indices = tree.searchFlatTree(queryPoints[i], _tree, random);\n for (var j = 0; j < indices.length; j++) {\n if (indices[j] < 0) {\n return;\n }\n var d = distanceFn(data[indices[j]], queryPoints[i]);\n heap.heapPush(_heap, i, d, indices[j], 1);\n }\n }\n return;\n }\n return { initFromRandom: initFromRandom, initFromTree: initFromTree };\n}\nexports.makeInitializations = makeInitializations;\nfunction makeInitializedNNSearch(distanceFn) {\n return function nnSearchFn(data, graph, initialization, queryPoints) {\n var e_1, _a;\n var _b = matrix.getCSR(graph), indices = _b.indices, indptr = _b.indptr;\n for (var i = 0; i < queryPoints.length; i++) {\n var tried = new Set(initialization[0][i]);\n while (true) {\n var vertex = heap.smallestFlagged(initialization, i);\n if (vertex === -1) {\n break;\n }\n var candidates = indices.slice(indptr[vertex], indptr[vertex + 1]);\n try {\n for (var candidates_1 = (e_1 = void 0, __values(candidates)), candidates_1_1 = candidates_1.next(); !candidates_1_1.done; candidates_1_1 = candidates_1.next()) {\n var candidate = candidates_1_1.value;\n if (candidate === vertex ||\n candidate === -1 ||\n tried.has(candidate)) {\n continue;\n }\n var d = distanceFn(data[candidate], queryPoints[i]);\n heap.uncheckedHeapPush(initialization, i, d, candidate, 1);\n tried.add(candidate);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (candidates_1_1 && !candidates_1_1.done && (_a = candidates_1.return)) _a.call(candidates_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n }\n return initialization;\n };\n}\nexports.makeInitializedNNSearch = makeInitializedNNSearch;\nfunction initializeSearch(forest, data, queryPoints, nNeighbors, initFromRandom, initFromTree, random) {\n var e_2, _a;\n var results = heap.makeHeap(queryPoints.length, nNeighbors);\n initFromRandom(nNeighbors, data, queryPoints, results, random);\n if (forest) {\n try {\n for (var forest_1 = __values(forest), forest_1_1 = forest_1.next(); !forest_1_1.done; forest_1_1 = forest_1.next()) {\n var tree_1 = forest_1_1.value;\n initFromTree(tree_1, data, queryPoints, results, random);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (forest_1_1 && !forest_1_1.done && (_a = forest_1.return)) _a.call(forest_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n return results;\n}\nexports.initializeSearch = initializeSearch;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar umap_1 = require(\"./umap\");\nObject.defineProperty(exports, \"UMAP\", { enumerable: true, get: function () { return umap_1.UMAP; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.searchFlatTree = exports.makeLeafArray = exports.makeForest = exports.FlatTree = void 0;\nvar utils = __importStar(require(\"./utils\"));\nvar FlatTree = (function () {\n function FlatTree(hyperplanes, offsets, children, indices) {\n this.hyperplanes = hyperplanes;\n this.offsets = offsets;\n this.children = children;\n this.indices = indices;\n }\n return FlatTree;\n}());\nexports.FlatTree = FlatTree;\nfunction makeForest(data, nNeighbors, nTrees, random) {\n var leafSize = Math.max(10, nNeighbors);\n var trees = utils\n .range(nTrees)\n .map(function (_, i) { return makeTree(data, leafSize, i, random); });\n var forest = trees.map(function (tree) { return flattenTree(tree, leafSize); });\n return forest;\n}\nexports.makeForest = makeForest;\nfunction makeTree(data, leafSize, n, random) {\n if (leafSize === void 0) { leafSize = 30; }\n var indices = utils.range(data.length);\n var tree = makeEuclideanTree(data, indices, leafSize, n, random);\n return tree;\n}\nfunction makeEuclideanTree(data, indices, leafSize, q, random) {\n if (leafSize === void 0) { leafSize = 30; }\n if (indices.length > leafSize) {\n var splitResults = euclideanRandomProjectionSplit(data, indices, random);\n var indicesLeft = splitResults.indicesLeft, indicesRight = splitResults.indicesRight, hyperplane = splitResults.hyperplane, offset = splitResults.offset;\n var leftChild = makeEuclideanTree(data, indicesLeft, leafSize, q + 1, random);\n var rightChild = makeEuclideanTree(data, indicesRight, leafSize, q + 1, random);\n var node = { leftChild: leftChild, rightChild: rightChild, isLeaf: false, hyperplane: hyperplane, offset: offset };\n return node;\n }\n else {\n var node = { indices: indices, isLeaf: true };\n return node;\n }\n}\nfunction euclideanRandomProjectionSplit(data, indices, random) {\n var dim = data[0].length;\n var leftIndex = utils.tauRandInt(indices.length, random);\n var rightIndex = utils.tauRandInt(indices.length, random);\n rightIndex += leftIndex === rightIndex ? 1 : 0;\n rightIndex = rightIndex % indices.length;\n var left = indices[leftIndex];\n var right = indices[rightIndex];\n var hyperplaneOffset = 0;\n var hyperplaneVector = utils.zeros(dim);\n for (var i = 0; i < hyperplaneVector.length; i++) {\n hyperplaneVector[i] = data[left][i] - data[right][i];\n hyperplaneOffset -=\n (hyperplaneVector[i] * (data[left][i] + data[right][i])) / 2.0;\n }\n var nLeft = 0;\n var nRight = 0;\n var side = utils.zeros(indices.length);\n for (var i = 0; i < indices.length; i++) {\n var margin = hyperplaneOffset;\n for (var d = 0; d < dim; d++) {\n margin += hyperplaneVector[d] * data[indices[i]][d];\n }\n if (margin === 0) {\n side[i] = utils.tauRandInt(2, random);\n if (side[i] === 0) {\n nLeft += 1;\n }\n else {\n nRight += 1;\n }\n }\n else if (margin > 0) {\n side[i] = 0;\n nLeft += 1;\n }\n else {\n side[i] = 1;\n nRight += 1;\n }\n }\n var indicesLeft = utils.zeros(nLeft);\n var indicesRight = utils.zeros(nRight);\n nLeft = 0;\n nRight = 0;\n for (var i = 0; i < side.length; i++) {\n if (side[i] === 0) {\n indicesLeft[nLeft] = indices[i];\n nLeft += 1;\n }\n else {\n indicesRight[nRight] = indices[i];\n nRight += 1;\n }\n }\n return {\n indicesLeft: indicesLeft,\n indicesRight: indicesRight,\n hyperplane: hyperplaneVector,\n offset: hyperplaneOffset,\n };\n}\nfunction flattenTree(tree, leafSize) {\n var nNodes = numNodes(tree);\n var nLeaves = numLeaves(tree);\n var hyperplanes = utils\n .range(nNodes)\n .map(function () { return utils.zeros(tree.hyperplane ? tree.hyperplane.length : 0); });\n var offsets = utils.zeros(nNodes);\n var children = utils.range(nNodes).map(function () { return [-1, -1]; });\n var indices = utils\n .range(nLeaves)\n .map(function () { return utils.range(leafSize).map(function () { return -1; }); });\n recursiveFlatten(tree, hyperplanes, offsets, children, indices, 0, 0);\n return new FlatTree(hyperplanes, offsets, children, indices);\n}\nfunction recursiveFlatten(tree, hyperplanes, offsets, children, indices, nodeNum, leafNum) {\n var _a;\n if (tree.isLeaf) {\n children[nodeNum][0] = -leafNum;\n (_a = indices[leafNum]).splice.apply(_a, __spread([0, tree.indices.length], tree.indices));\n leafNum += 1;\n return { nodeNum: nodeNum, leafNum: leafNum };\n }\n else {\n hyperplanes[nodeNum] = tree.hyperplane;\n offsets[nodeNum] = tree.offset;\n children[nodeNum][0] = nodeNum + 1;\n var oldNodeNum = nodeNum;\n var res = recursiveFlatten(tree.leftChild, hyperplanes, offsets, children, indices, nodeNum + 1, leafNum);\n nodeNum = res.nodeNum;\n leafNum = res.leafNum;\n children[oldNodeNum][1] = nodeNum + 1;\n res = recursiveFlatten(tree.rightChild, hyperplanes, offsets, children, indices, nodeNum + 1, leafNum);\n return { nodeNum: res.nodeNum, leafNum: res.leafNum };\n }\n}\nfunction numNodes(tree) {\n if (tree.isLeaf) {\n return 1;\n }\n else {\n return 1 + numNodes(tree.leftChild) + numNodes(tree.rightChild);\n }\n}\nfunction numLeaves(tree) {\n if (tree.isLeaf) {\n return 1;\n }\n else {\n return numLeaves(tree.leftChild) + numLeaves(tree.rightChild);\n }\n}\nfunction makeLeafArray(rpForest) {\n var e_1, _a;\n if (rpForest.length > 0) {\n var output = [];\n try {\n for (var rpForest_1 = __values(rpForest), rpForest_1_1 = rpForest_1.next(); !rpForest_1_1.done; rpForest_1_1 = rpForest_1.next()) {\n var tree = rpForest_1_1.value;\n output.push.apply(output, __spread(tree.indices));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (rpForest_1_1 && !rpForest_1_1.done && (_a = rpForest_1.return)) _a.call(rpForest_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return output;\n }\n else {\n return [[-1]];\n }\n}\nexports.makeLeafArray = makeLeafArray;\nfunction selectSide(hyperplane, offset, point, random) {\n var margin = offset;\n for (var d = 0; d < point.length; d++) {\n margin += hyperplane[d] * point[d];\n }\n if (margin === 0) {\n var side = utils.tauRandInt(2, random);\n return side;\n }\n else if (margin > 0) {\n return 0;\n }\n else {\n return 1;\n }\n}\nfunction searchFlatTree(point, tree, random) {\n var node = 0;\n while (tree.children[node][0] > 0) {\n var side = selectSide(tree.hyperplanes[node], tree.offsets[node], point, random);\n if (side === 0) {\n node = tree.children[node][0];\n }\n else {\n node = tree.children[node][1];\n }\n }\n var index = -1 * tree.children[node][0];\n return tree.indices[index];\n}\nexports.searchFlatTree = searchFlatTree;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initTransform = exports.resetLocalConnectivity = exports.fastIntersection = exports.findABParams = exports.cosine = exports.euclidean = exports.UMAP = void 0;\nvar heap = __importStar(require(\"./heap\"));\nvar matrix = __importStar(require(\"./matrix\"));\nvar nnDescent = __importStar(require(\"./nn_descent\"));\nvar tree = __importStar(require(\"./tree\"));\nvar utils = __importStar(require(\"./utils\"));\nvar ml_levenberg_marquardt_1 = __importDefault(require(\"ml-levenberg-marquardt\"));\nvar SMOOTH_K_TOLERANCE = 1e-5;\nvar MIN_K_DIST_SCALE = 1e-3;\nvar UMAP = (function () {\n function UMAP(params) {\n var _this = this;\n if (params === void 0) { params = {}; }\n this.learningRate = 1.0;\n this.localConnectivity = 1.0;\n this.minDist = 0.1;\n this.nComponents = 2;\n this.nEpochs = 0;\n this.nNeighbors = 15;\n this.negativeSampleRate = 5;\n this.random = Math.random;\n this.repulsionStrength = 1.0;\n this.setOpMixRatio = 1.0;\n this.spread = 1.0;\n this.transformQueueSize = 4.0;\n this.targetMetric = \"categorical\";\n this.targetWeight = 0.5;\n this.targetNNeighbors = this.nNeighbors;\n this.distanceFn = euclidean;\n this.isInitialized = false;\n this.rpForest = [];\n this.embedding = [];\n this.optimizationState = new OptimizationState();\n var setParam = function (key) {\n if (params[key] !== undefined)\n _this[key] = params[key];\n };\n setParam('distanceFn');\n setParam('learningRate');\n setParam('localConnectivity');\n setParam('minDist');\n setParam('nComponents');\n setParam('nEpochs');\n setParam('nNeighbors');\n setParam('negativeSampleRate');\n setParam('random');\n setParam('repulsionStrength');\n setParam('setOpMixRatio');\n setParam('spread');\n setParam('transformQueueSize');\n }\n UMAP.prototype.fit = function (X) {\n this.initializeFit(X);\n this.optimizeLayout();\n return this.embedding;\n };\n UMAP.prototype.fitAsync = function (X, callback) {\n if (callback === void 0) { callback = function () { return true; }; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.initializeFit(X);\n return [4, this.optimizeLayoutAsync(callback)];\n case 1:\n _a.sent();\n return [2, this.embedding];\n }\n });\n });\n };\n UMAP.prototype.setSupervisedProjection = function (Y, params) {\n if (params === void 0) { params = {}; }\n this.Y = Y;\n this.targetMetric = params.targetMetric || this.targetMetric;\n this.targetWeight = params.targetWeight || this.targetWeight;\n this.targetNNeighbors = params.targetNNeighbors || this.targetNNeighbors;\n };\n UMAP.prototype.setPrecomputedKNN = function (knnIndices, knnDistances) {\n this.knnIndices = knnIndices;\n this.knnDistances = knnDistances;\n };\n UMAP.prototype.initializeFit = function (X) {\n if (X.length <= this.nNeighbors) {\n throw new Error(\"Not enough data points (\" + X.length + \") to create nNeighbors: \" + this.nNeighbors + \". Add more data points or adjust the configuration.\");\n }\n if (this.X === X && this.isInitialized) {\n return this.getNEpochs();\n }\n this.X = X;\n if (!this.knnIndices && !this.knnDistances) {\n var knnResults = this.nearestNeighbors(X);\n this.knnIndices = knnResults.knnIndices;\n this.knnDistances = knnResults.knnDistances;\n }\n this.graph = this.fuzzySimplicialSet(X, this.nNeighbors, this.setOpMixRatio);\n this.makeSearchFns();\n this.searchGraph = this.makeSearchGraph(X);\n this.processGraphForSupervisedProjection();\n var _a = this.initializeSimplicialSetEmbedding(), head = _a.head, tail = _a.tail, epochsPerSample = _a.epochsPerSample;\n this.optimizationState.head = head;\n this.optimizationState.tail = tail;\n this.optimizationState.epochsPerSample = epochsPerSample;\n this.initializeOptimization();\n this.prepareForOptimizationLoop();\n this.isInitialized = true;\n return this.getNEpochs();\n };\n UMAP.prototype.makeSearchFns = function () {\n var _a = nnDescent.makeInitializations(this.distanceFn), initFromTree = _a.initFromTree, initFromRandom = _a.initFromRandom;\n this.initFromTree = initFromTree;\n this.initFromRandom = initFromRandom;\n this.search = nnDescent.makeInitializedNNSearch(this.distanceFn);\n };\n UMAP.prototype.makeSearchGraph = function (X) {\n var knnIndices = this.knnIndices;\n var knnDistances = this.knnDistances;\n var dims = [X.length, X.length];\n var searchGraph = new matrix.SparseMatrix([], [], [], dims);\n for (var i = 0; i < knnIndices.length; i++) {\n var knn = knnIndices[i];\n var distances = knnDistances[i];\n for (var j = 0; j < knn.length; j++) {\n var neighbor = knn[j];\n var distance = distances[j];\n if (distance > 0) {\n searchGraph.set(i, neighbor, distance);\n }\n }\n }\n var transpose = matrix.transpose(searchGraph);\n return matrix.maximum(searchGraph, transpose);\n };\n UMAP.prototype.transform = function (toTransform) {\n var _this = this;\n var rawData = this.X;\n if (rawData === undefined || rawData.length === 0) {\n throw new Error('No data has been fit.');\n }\n var nNeighbors = Math.floor(this.nNeighbors * this.transformQueueSize);\n nNeighbors = Math.min(rawData.length, nNeighbors);\n var init = nnDescent.initializeSearch(this.rpForest, rawData, toTransform, nNeighbors, this.initFromRandom, this.initFromTree, this.random);\n var result = this.search(rawData, this.searchGraph, init, toTransform);\n var _a = heap.deheapSort(result), indices = _a.indices, distances = _a.weights;\n indices = indices.map(function (x) { return x.slice(0, _this.nNeighbors); });\n distances = distances.map(function (x) { return x.slice(0, _this.nNeighbors); });\n var adjustedLocalConnectivity = Math.max(0, this.localConnectivity - 1);\n var _b = this.smoothKNNDistance(distances, this.nNeighbors, adjustedLocalConnectivity), sigmas = _b.sigmas, rhos = _b.rhos;\n var _c = this.computeMembershipStrengths(indices, distances, sigmas, rhos), rows = _c.rows, cols = _c.cols, vals = _c.vals;\n var size = [toTransform.length, rawData.length];\n var graph = new matrix.SparseMatrix(rows, cols, vals, size);\n var normed = matrix.normalize(graph, \"l1\");\n var csrMatrix = matrix.getCSR(normed);\n var nPoints = toTransform.length;\n var eIndices = utils.reshape2d(csrMatrix.indices, nPoints, this.nNeighbors);\n var eWeights = utils.reshape2d(csrMatrix.values, nPoints, this.nNeighbors);\n var embedding = initTransform(eIndices, eWeights, this.embedding);\n var nEpochs = this.nEpochs\n ? this.nEpochs / 3\n : graph.nRows <= 10000\n ? 100\n : 30;\n var graphMax = graph\n .getValues()\n .reduce(function (max, val) { return (val > max ? val : max); }, 0);\n graph = graph.map(function (value) { return (value < graphMax / nEpochs ? 0 : value); });\n graph = matrix.eliminateZeros(graph);\n var epochsPerSample = this.makeEpochsPerSample(graph.getValues(), nEpochs);\n var head = graph.getRows();\n var tail = graph.getCols();\n this.assignOptimizationStateParameters({\n headEmbedding: embedding,\n tailEmbedding: this.embedding,\n head: head,\n tail: tail,\n currentEpoch: 0,\n nEpochs: nEpochs,\n nVertices: graph.getDims()[1],\n epochsPerSample: epochsPerSample,\n });\n this.prepareForOptimizationLoop();\n return this.optimizeLayout();\n };\n UMAP.prototype.processGraphForSupervisedProjection = function () {\n var _a = this, Y = _a.Y, X = _a.X;\n if (Y) {\n if (Y.length !== X.length) {\n throw new Error('Length of X and y must be equal');\n }\n if (this.targetMetric === \"categorical\") {\n var lt = this.targetWeight < 1.0;\n var farDist = lt ? 2.5 * (1.0 / (1.0 - this.targetWeight)) : 1.0e12;\n this.graph = this.categoricalSimplicialSetIntersection(this.graph, Y, farDist);\n }\n }\n };\n UMAP.prototype.step = function () {\n var currentEpoch = this.optimizationState.currentEpoch;\n if (currentEpoch < this.getNEpochs()) {\n this.optimizeLayoutStep(currentEpoch);\n }\n return this.optimizationState.currentEpoch;\n };\n UMAP.prototype.getEmbedding = function () {\n return this.embedding;\n };\n UMAP.prototype.nearestNeighbors = function (X) {\n var _a = this, distanceFn = _a.distanceFn, nNeighbors = _a.nNeighbors;\n var log2 = function (n) { return Math.log(n) / Math.log(2); };\n var metricNNDescent = nnDescent.makeNNDescent(distanceFn, this.random);\n var round = function (n) {\n return n === 0.5 ? 0 : Math.round(n);\n };\n var nTrees = 5 + Math.floor(round(Math.pow(X.length, 0.5) / 20.0));\n var nIters = Math.max(5, Math.floor(Math.round(log2(X.length))));\n this.rpForest = tree.makeForest(X, nNeighbors, nTrees, this.random);\n var leafArray = tree.makeLeafArray(this.rpForest);\n var _b = metricNNDescent(X, leafArray, nNeighbors, nIters), indices = _b.indices, weights = _b.weights;\n return { knnIndices: indices, knnDistances: weights };\n };\n UMAP.prototype.fuzzySimplicialSet = function (X, nNeighbors, setOpMixRatio) {\n if (setOpMixRatio === void 0) { setOpMixRatio = 1.0; }\n var _a = this, _b = _a.knnIndices, knnIndices = _b === void 0 ? [] : _b, _c = _a.knnDistances, knnDistances = _c === void 0 ? [] : _c, localConnectivity = _a.localConnectivity;\n var _d = this.smoothKNNDistance(knnDistances, nNeighbors, localConnectivity), sigmas = _d.sigmas, rhos = _d.rhos;\n var _e = this.computeMembershipStrengths(knnIndices, knnDistances, sigmas, rhos), rows = _e.rows, cols = _e.cols, vals = _e.vals;\n var size = [X.length, X.length];\n var sparseMatrix = new matrix.SparseMatrix(rows, cols, vals, size);\n var transpose = matrix.transpose(sparseMatrix);\n var prodMatrix = matrix.pairwiseMultiply(sparseMatrix, transpose);\n var a = matrix.subtract(matrix.add(sparseMatrix, transpose), prodMatrix);\n var b = matrix.multiplyScalar(a, setOpMixRatio);\n var c = matrix.multiplyScalar(prodMatrix, 1.0 - setOpMixRatio);\n var result = matrix.add(b, c);\n return result;\n };\n UMAP.prototype.categoricalSimplicialSetIntersection = function (simplicialSet, target, farDist, unknownDist) {\n if (unknownDist === void 0) { unknownDist = 1.0; }\n var intersection = fastIntersection(simplicialSet, target, unknownDist, farDist);\n intersection = matrix.eliminateZeros(intersection);\n return resetLocalConnectivity(intersection);\n };\n UMAP.prototype.smoothKNNDistance = function (distances, k, localConnectivity, nIter, bandwidth) {\n if (localConnectivity === void 0) { localConnectivity = 1.0; }\n if (nIter === void 0) { nIter = 64; }\n if (bandwidth === void 0) { bandwidth = 1.0; }\n var target = (Math.log(k) / Math.log(2)) * bandwidth;\n var rho = utils.zeros(distances.length);\n var result = utils.zeros(distances.length);\n for (var i = 0; i < distances.length; i++) {\n var lo = 0.0;\n var hi = Infinity;\n var mid = 1.0;\n var ithDistances = distances[i];\n var nonZeroDists = ithDistances.filter(function (d) { return d > 0.0; });\n if (nonZeroDists.length >= localConnectivity) {\n var index = Math.floor(localConnectivity);\n var interpolation = localConnectivity - index;\n if (index > 0) {\n rho[i] = nonZeroDists[index - 1];\n if (interpolation > SMOOTH_K_TOLERANCE) {\n rho[i] +=\n interpolation * (nonZeroDists[index] - nonZeroDists[index - 1]);\n }\n }\n else {\n rho[i] = interpolation * nonZeroDists[0];\n }\n }\n else if (nonZeroDists.length > 0) {\n rho[i] = utils.max(nonZeroDists);\n }\n for (var n = 0; n < nIter; n++) {\n var psum = 0.0;\n for (var j = 1; j < distances[i].length; j++) {\n var d = distances[i][j] - rho[i];\n if (d > 0) {\n psum += Math.exp(-(d / mid));\n }\n else {\n psum += 1.0;\n }\n }\n if (Math.abs(psum - target) < SMOOTH_K_TOLERANCE) {\n break;\n }\n if (psum > target) {\n hi = mid;\n mid = (lo + hi) / 2.0;\n }\n else {\n lo = mid;\n if (hi === Infinity) {\n mid *= 2;\n }\n else {\n mid = (lo + hi) / 2.0;\n }\n }\n }\n result[i] = mid;\n if (rho[i] > 0.0) {\n var meanIthDistances = utils.mean(ithDistances);\n if (result[i] < MIN_K_DIST_SCALE * meanIthDistances) {\n result[i] = MIN_K_DIST_SCALE * meanIthDistances;\n }\n }\n else {\n var meanDistances = utils.mean(distances.map(utils.mean));\n if (result[i] < MIN_K_DIST_SCALE * meanDistances) {\n result[i] = MIN_K_DIST_SCALE * meanDistances;\n }\n }\n }\n return { sigmas: result, rhos: rho };\n };\n UMAP.prototype.computeMembershipStrengths = function (knnIndices, knnDistances, sigmas, rhos) {\n var nSamples = knnIndices.length;\n var nNeighbors = knnIndices[0].length;\n var rows = utils.zeros(nSamples * nNeighbors);\n var cols = utils.zeros(nSamples * nNeighbors);\n var vals = utils.zeros(nSamples * nNeighbors);\n for (var i = 0; i < nSamples; i++) {\n for (var j = 0; j < nNeighbors; j++) {\n var val = 0;\n if (knnIndices[i][j] === -1) {\n continue;\n }\n if (knnIndices[i][j] === i) {\n val = 0.0;\n }\n else if (knnDistances[i][j] - rhos[i] <= 0.0) {\n val = 1.0;\n }\n else {\n val = Math.exp(-((knnDistances[i][j] - rhos[i]) / sigmas[i]));\n }\n rows[i * nNeighbors + j] = i;\n cols[i * nNeighbors + j] = knnIndices[i][j];\n vals[i * nNeighbors + j] = val;\n }\n }\n return { rows: rows, cols: cols, vals: vals };\n };\n UMAP.prototype.initializeSimplicialSetEmbedding = function () {\n var _this = this;\n var nEpochs = this.getNEpochs();\n var nComponents = this.nComponents;\n var graphValues = this.graph.getValues();\n var graphMax = 0;\n for (var i = 0; i < graphValues.length; i++) {\n var value = graphValues[i];\n if (graphMax < graphValues[i]) {\n graphMax = value;\n }\n }\n var graph = this.graph.map(function (value) {\n if (value < graphMax / nEpochs) {\n return 0;\n }\n else {\n return value;\n }\n });\n this.embedding = utils.zeros(graph.nRows).map(function () {\n return utils.zeros(nComponents).map(function () {\n return utils.tauRand(_this.random) * 20 + -10;\n });\n });\n var weights = [];\n var head = [];\n var tail = [];\n var rowColValues = graph.getAll();\n for (var i = 0; i < rowColValues.length; i++) {\n var entry = rowColValues[i];\n if (entry.value) {\n weights.push(entry.value);\n tail.push(entry.row);\n head.push(entry.col);\n }\n }\n var epochsPerSample = this.makeEpochsPerSample(weights, nEpochs);\n return { head: head, tail: tail, epochsPerSample: epochsPerSample };\n };\n UMAP.prototype.makeEpochsPerSample = function (weights, nEpochs) {\n var result = utils.filled(weights.length, -1.0);\n var max = utils.max(weights);\n var nSamples = weights.map(function (w) { return (w / max) * nEpochs; });\n nSamples.forEach(function (n, i) {\n if (n > 0)\n result[i] = nEpochs / nSamples[i];\n });\n return result;\n };\n UMAP.prototype.assignOptimizationStateParameters = function (state) {\n Object.assign(this.optimizationState, state);\n };\n UMAP.prototype.prepareForOptimizationLoop = function () {\n var _a = this, repulsionStrength = _a.repulsionStrength, learningRate = _a.learningRate, negativeSampleRate = _a.negativeSampleRate;\n var _b = this.optimizationState, epochsPerSample = _b.epochsPerSample, headEmbedding = _b.headEmbedding, tailEmbedding = _b.tailEmbedding;\n var dim = headEmbedding[0].length;\n var moveOther = headEmbedding.length === tailEmbedding.length;\n var epochsPerNegativeSample = epochsPerSample.map(function (e) { return e / negativeSampleRate; });\n var epochOfNextNegativeSample = __spread(epochsPerNegativeSample);\n var epochOfNextSample = __spread(epochsPerSample);\n this.assignOptimizationStateParameters({\n epochOfNextSample: epochOfNextSample,\n epochOfNextNegativeSample: epochOfNextNegativeSample,\n epochsPerNegativeSample: epochsPerNegativeSample,\n moveOther: moveOther,\n initialAlpha: learningRate,\n alpha: learningRate,\n gamma: repulsionStrength,\n dim: dim,\n });\n };\n UMAP.prototype.initializeOptimization = function () {\n var headEmbedding = this.embedding;\n var tailEmbedding = this.embedding;\n var _a = this.optimizationState, head = _a.head, tail = _a.tail, epochsPerSample = _a.epochsPerSample;\n var nEpochs = this.getNEpochs();\n var nVertices = this.graph.nCols;\n var _b = findABParams(this.spread, this.minDist), a = _b.a, b = _b.b;\n this.assignOptimizationStateParameters({\n headEmbedding: headEmbedding,\n tailEmbedding: tailEmbedding,\n head: head,\n tail: tail,\n epochsPerSample: epochsPerSample,\n a: a,\n b: b,\n nEpochs: nEpochs,\n nVertices: nVertices,\n });\n };\n UMAP.prototype.optimizeLayoutStep = function (n) {\n var optimizationState = this.optimizationState;\n var head = optimizationState.head, tail = optimizationState.tail, headEmbedding = optimizationState.headEmbedding, tailEmbedding = optimizationState.tailEmbedding, epochsPerSample = optimizationState.epochsPerSample, epochOfNextSample = optimizationState.epochOfNextSample, epochOfNextNegativeSample = optimizationState.epochOfNextNegativeSample, epochsPerNegativeSample = optimizationState.epochsPerNegativeSample, moveOther = optimizationState.moveOther, initialAlpha = optimizationState.initialAlpha, alpha = optimizationState.alpha, gamma = optimizationState.gamma, a = optimizationState.a, b = optimizationState.b, dim = optimizationState.dim, nEpochs = optimizationState.nEpochs, nVertices = optimizationState.nVertices;\n var clipValue = 4.0;\n for (var i = 0; i < epochsPerSample.length; i++) {\n if (epochOfNextSample[i] > n) {\n continue;\n }\n var j = head[i];\n var k = tail[i];\n var current = headEmbedding[j];\n var other = tailEmbedding[k];\n var distSquared = rDist(current, other);\n var gradCoeff = 0;\n if (distSquared > 0) {\n gradCoeff = -2.0 * a * b * Math.pow(distSquared, b - 1.0);\n gradCoeff /= a * Math.pow(distSquared, b) + 1.0;\n }\n for (var d = 0; d < dim; d++) {\n var gradD = clip(gradCoeff * (current[d] - other[d]), clipValue);\n current[d] += gradD * alpha;\n if (moveOther) {\n other[d] += -gradD * alpha;\n }\n }\n epochOfNextSample[i] += epochsPerSample[i];\n var nNegSamples = Math.floor((n - epochOfNextNegativeSample[i]) / epochsPerNegativeSample[i]);\n for (var p = 0; p < nNegSamples; p++) {\n var k_1 = utils.tauRandInt(nVertices, this.random);\n var other_1 = tailEmbedding[k_1];\n var distSquared_1 = rDist(current, other_1);\n var gradCoeff_1 = 0.0;\n if (distSquared_1 > 0.0) {\n gradCoeff_1 = 2.0 * gamma * b;\n gradCoeff_1 /=\n (0.001 + distSquared_1) * (a * Math.pow(distSquared_1, b) + 1);\n }\n else if (j === k_1) {\n continue;\n }\n for (var d = 0; d < dim; d++) {\n var gradD = 4.0;\n if (gradCoeff_1 > 0.0) {\n gradD = clip(gradCoeff_1 * (current[d] - other_1[d]), clipValue);\n }\n current[d] += gradD * alpha;\n }\n }\n epochOfNextNegativeSample[i] += nNegSamples * epochsPerNegativeSample[i];\n }\n optimizationState.alpha = initialAlpha * (1.0 - n / nEpochs);\n optimizationState.currentEpoch += 1;\n return headEmbedding;\n };\n UMAP.prototype.optimizeLayoutAsync = function (epochCallback) {\n var _this = this;\n if (epochCallback === void 0) { epochCallback = function () { return true; }; }\n return new Promise(function (resolve, reject) {\n var step = function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, nEpochs, currentEpoch, epochCompleted, shouldStop, isFinished;\n return __generator(this, function (_b) {\n try {\n _a = this.optimizationState, nEpochs = _a.nEpochs, currentEpoch = _a.currentEpoch;\n this.embedding = this.optimizeLayoutStep(currentEpoch);\n epochCompleted = this.optimizationState.currentEpoch;\n shouldStop = epochCallback(epochCompleted) === false;\n isFinished = epochCompleted === nEpochs;\n if (!shouldStop && !isFinished) {\n setTimeout(function () { return step(); }, 0);\n }\n else {\n return [2, resolve(isFinished)];\n }\n }\n catch (err) {\n reject(err);\n }\n return [2];\n });\n }); };\n setTimeout(function () { return step(); }, 0);\n });\n };\n UMAP.prototype.optimizeLayout = function (epochCallback) {\n if (epochCallback === void 0) { epochCallback = function () { return true; }; }\n var isFinished = false;\n var embedding = [];\n while (!isFinished) {\n var _a = this.optimizationState, nEpochs = _a.nEpochs, currentEpoch = _a.currentEpoch;\n embedding = this.optimizeLayoutStep(currentEpoch);\n var epochCompleted = this.optimizationState.currentEpoch;\n var shouldStop = epochCallback(epochCompleted) === false;\n isFinished = epochCompleted === nEpochs || shouldStop;\n }\n return embedding;\n };\n UMAP.prototype.getNEpochs = function () {\n var graph = this.graph;\n if (this.nEpochs > 0) {\n return this.nEpochs;\n }\n var length = graph.nRows;\n if (length <= 2500) {\n return 500;\n }\n else if (length <= 5000) {\n return 400;\n }\n else if (length <= 7500) {\n return 300;\n }\n else {\n return 200;\n }\n };\n return UMAP;\n}());\nexports.UMAP = UMAP;\nfunction euclidean(x, y) {\n var result = 0;\n for (var i = 0; i < x.length; i++) {\n result += Math.pow((x[i] - y[i]), 2);\n }\n return Math.sqrt(result);\n}\nexports.euclidean = euclidean;\nfunction cosine(x, y) {\n var result = 0.0;\n var normX = 0.0;\n var normY = 0.0;\n for (var i = 0; i < x.length; i++) {\n result += x[i] * y[i];\n normX += Math.pow(x[i], 2);\n normY += Math.pow(y[i], 2);\n }\n if (normX === 0 && normY === 0) {\n return 0;\n }\n else if (normX === 0 || normY === 0) {\n return 1.0;\n }\n else {\n return 1.0 - result / Math.sqrt(normX * normY);\n }\n}\nexports.cosine = cosine;\nvar OptimizationState = (function () {\n function OptimizationState() {\n this.currentEpoch = 0;\n this.headEmbedding = [];\n this.tailEmbedding = [];\n this.head = [];\n this.tail = [];\n this.epochsPerSample = [];\n this.epochOfNextSample = [];\n this.epochOfNextNegativeSample = [];\n this.epochsPerNegativeSample = [];\n this.moveOther = true;\n this.initialAlpha = 1.0;\n this.alpha = 1.0;\n this.gamma = 1.0;\n this.a = 1.5769434603113077;\n this.b = 0.8950608779109733;\n this.dim = 2;\n this.nEpochs = 500;\n this.nVertices = 0;\n }\n return OptimizationState;\n}());\nfunction clip(x, clipValue) {\n if (x > clipValue)\n return clipValue;\n else if (x < -clipValue)\n return -clipValue;\n else\n return x;\n}\nfunction rDist(x, y) {\n var result = 0.0;\n for (var i = 0; i < x.length; i++) {\n result += Math.pow(x[i] - y[i], 2);\n }\n return result;\n}\nfunction findABParams(spread, minDist) {\n var curve = function (_a) {\n var _b = __read(_a, 2), a = _b[0], b = _b[1];\n return function (x) {\n return 1.0 / (1.0 + a * Math.pow(x, (2 * b)));\n };\n };\n var xv = utils\n .linear(0, spread * 3, 300)\n .map(function (val) { return (val < minDist ? 1.0 : val); });\n var yv = utils.zeros(xv.length).map(function (val, index) {\n var gte = xv[index] >= minDist;\n return gte ? Math.exp(-(xv[index] - minDist) / spread) : val;\n });\n var initialValues = [0.5, 0.5];\n var data = { x: xv, y: yv };\n var options = {\n damping: 1.5,\n initialValues: initialValues,\n gradientDifference: 10e-2,\n maxIterations: 100,\n errorTolerance: 10e-3,\n };\n var parameterValues = ml_levenberg_marquardt_1.default(data, curve, options).parameterValues;\n var _a = __read(parameterValues, 2), a = _a[0], b = _a[1];\n return { a: a, b: b };\n}\nexports.findABParams = findABParams;\nfunction fastIntersection(graph, target, unknownDist, farDist) {\n if (unknownDist === void 0) { unknownDist = 1.0; }\n if (farDist === void 0) { farDist = 5.0; }\n return graph.map(function (value, row, col) {\n if (target[row] === -1 || target[col] === -1) {\n return value * Math.exp(-unknownDist);\n }\n else if (target[row] !== target[col]) {\n return value * Math.exp(-farDist);\n }\n else {\n return value;\n }\n });\n}\nexports.fastIntersection = fastIntersection;\nfunction resetLocalConnectivity(simplicialSet) {\n simplicialSet = matrix.normalize(simplicialSet, \"max\");\n var transpose = matrix.transpose(simplicialSet);\n var prodMatrix = matrix.pairwiseMultiply(transpose, simplicialSet);\n simplicialSet = matrix.add(simplicialSet, matrix.subtract(transpose, prodMatrix));\n return matrix.eliminateZeros(simplicialSet);\n}\nexports.resetLocalConnectivity = resetLocalConnectivity;\nfunction initTransform(indices, weights, embedding) {\n var result = utils\n .zeros(indices.length)\n .map(function (z) { return utils.zeros(embedding[0].length); });\n for (var i = 0; i < indices.length; i++) {\n for (var j = 0; j < indices[0].length; j++) {\n for (var d = 0; d < embedding[0].length; d++) {\n var a = indices[i][j];\n result[i][d] += weights[i][j] * embedding[a][d];\n }\n }\n }\n return result;\n}\nexports.initTransform = initTransform;\n","const toString = Object.prototype.toString;\n\nexport default function isAnyArray(object) {\n return toString.call(object).endsWith('Array]');\n}\n","/**\n * Calculate current error\n * @ignore\n * @param {{x:Array<number>, y:Array<number>}} data - Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]\n * @param {Array<number>} parameters - Array of current parameter values\n * @param {function} parameterizedFunction - The parameters and returns a function with the independent variable as a parameter\n * @return {number}\n */\nexport default function errorCalculation(\n data,\n parameters,\n parameterizedFunction,\n) {\n let error = 0;\n const func = parameterizedFunction(parameters);\n\n for (let i = 0; i < data.x.length; i++) {\n error += Math.abs(data.y[i] - func(data.x[i]));\n }\n\n return error;\n}\n","import { inverse, Matrix } from 'ml-matrix';\n\n/**\n * Difference of the matrix function over the parameters\n * @ignore\n * @param {{x:Array<number>, y:Array<number>}} data - Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]\n * @param {Array<number>} evaluatedData - Array of previous evaluated function values\n * @param {Array<number>} params - Array of previous parameter values\n * @param {number} gradientDifference - Adjustment for decrease the damping parameter\n * @param {function} paramFunction - The parameters and returns a function with the independent variable as a parameter\n * @return {Matrix}\n */\nfunction gradientFunction(\n data,\n evaluatedData,\n params,\n gradientDifference,\n paramFunction,\n) {\n const n = params.length;\n const m = data.x.length;\n\n let ans = new Array(n);\n\n for (let param = 0; param < n; param++) {\n ans[param] = new Array(m);\n let auxParams = params.slice();\n auxParams[param] += gradientDifference;\n let funcParam = paramFunction(auxParams);\n\n for (let point = 0; point < m; point++) {\n ans[param][point] = evaluatedData[point] - funcParam(data.x[point]);\n }\n }\n return new Matrix(ans);\n}\n\n/**\n * Matrix function over the samples\n * @ignore\n * @param {{x:Array<number>, y:Array<number>}} data - Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]\n * @param {Array<number>} evaluatedData - Array of previous evaluated function values\n * @return {Matrix}\n */\nfunction matrixFunction(data, evaluatedData) {\n const m = data.x.length;\n\n let ans = new Array(m);\n\n for (let point = 0; point < m; point++) {\n ans[point] = [data.y[point] - evaluatedData[point]];\n }\n\n return new Matrix(ans);\n}\n\n/**\n * Iteration for Levenberg-Marquardt\n * @ignore\n * @param {{x:Array<number>, y:Array<number>}} data - Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]\n * @param {Array<number>} params - Array of previous parameter values\n * @param {number} damping - Levenberg-Marquardt parameter\n * @param {number} gradientDifference - Adjustment for decrease the damping parameter\n * @param {function} parameterizedFunction - The parameters and returns a function with the independent variable as a parameter\n * @return {Array<number>}\n */\nexport default function step(\n data,\n params,\n damping,\n gradientDifference,\n parameterizedFunction,\n) {\n let value = damping * gradientDifference * gradientDifference;\n let identity = Matrix.eye(params.length, params.length, value);\n\n const func = parameterizedFunction(params);\n\n let evaluatedData = new Float64Array(data.x.length);\n for (let i = 0; i < data.x.length; i++) {\n evaluatedData[i] = func(data.x[i]);\n }\n\n let gradientFunc = gradientFunction(\n data,\n evaluatedData,\n params,\n gradientDifference,\n parameterizedFunction,\n );\n let matrixFunc = matrixFunction(data, evaluatedData);\n let inverseMatrix = inverse(\n identity.add(gradientFunc.mmul(gradientFunc.transpose())),\n );\n\n params = new Matrix([params]);\n params = params.sub(\n inverseMatrix\n .mmul(gradientFunc)\n .mmul(matrixFunc)\n .mul(gradientDifference)\n .transpose(),\n );\n\n return params.to1DArray();\n}\n","import isArray from 'is-any-array';\n\nimport errorCalculation from './errorCalculation';\nimport step from './step';\n\n/**\n * Curve fitting algorithm\n * @param {{x:Array<number>, y:Array<number>}} data - Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]\n * @param {function} parameterizedFunction - The parameters and returns a function with the independent variable as a parameter\n * @param {object} [options] - Options object\n * @param {number} [options.damping] - Levenberg-Marquardt parameter\n * @param {number} [options.gradientDifference = 10e-2] - Adjustment for decrease the damping parameter\n * @param {Array<number>} [options.minValues] - Minimum allowed values for parameters\n * @param {Array<number>} [options.maxValues] - Maximum allowed values for parameters\n * @param {Array<number>} [options.initialValues] - Array of initial parameter values\n * @param {number} [options.maxIterations = 100] - Maximum of allowed iterations\n * @param {number} [options.errorTolerance = 10e-3] - Minimum uncertainty allowed for each point\n * @return {{parameterValues: Array<number>, parameterError: number, iterations: number}}\n */\nexport default function levenbergMarquardt(\n data,\n parameterizedFunction,\n options = {},\n) {\n let {\n maxIterations = 100,\n gradientDifference = 10e-2,\n damping = 0,\n errorTolerance = 10e-3,\n minValues,\n maxValues,\n initialValues,\n } = options;\n\n if (damping <= 0) {\n throw new Error('The damping option must be a positive number');\n } else if (!data.x || !data.y) {\n throw new Error('The data parameter must have x and y elements');\n } else if (\n !isArray(data.x) ||\n data.x.length < 2 ||\n !isArray(data.y) ||\n data.y.length < 2\n ) {\n throw new Error(\n 'The data parameter elements must be an array with more than 2 points',\n );\n } else if (data.x.length !== data.y.length) {\n throw new Error('The data parameter elements must have the same size');\n }\n\n let parameters =\n initialValues || new Array(parameterizedFunction.length).fill(1);\n let parLen = parameters.length;\n maxValues = maxValues || new Array(parLen).fill(Number.MAX_SAFE_INTEGER);\n minValues = minValues || new Array(parLen).fill(Number.MIN_SAFE_INTEGER);\n\n if (maxValues.length !== minValues.length) {\n throw new Error('minValues and maxValues must be the same size');\n }\n\n if (!isArray(parameters)) {\n throw new Error('initialValues must be an array');\n }\n\n let error = errorCalculation(data, parameters, parameterizedFunction);\n\n let converged = error <= errorTolerance;\n\n let iteration;\n for (iteration = 0; iteration < maxIterations && !converged; iteration++) {\n parameters = step(\n data,\n parameters,\n damping,\n gradientDifference,\n parameterizedFunction,\n );\n\n for (let k = 0; k < parLen; k++) {\n parameters[k] = Math.min(\n Math.max(minValues[k], parameters[k]),\n maxValues[k],\n );\n }\n\n error = errorCalculation(data, parameters, parameterizedFunction);\n if (isNaN(error)) break;\n converged = error <= errorTolerance;\n }\n\n return {\n parameterValues: parameters,\n parameterError: error,\n iterations: iteration,\n };\n}\n","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reshape2d = exports.rejectionSample = exports.max2d = exports.max = exports.mean = exports.sum = exports.linear = exports.ones = exports.zeros = exports.filled = exports.range = exports.empty = exports.norm = exports.tauRand = exports.tauRandInt = void 0;\nfunction tauRandInt(n, random) {\n return Math.floor(random() * n);\n}\nexports.tauRandInt = tauRandInt;\nfunction tauRand(random) {\n return random();\n}\nexports.tauRand = tauRand;\nfunction norm(vec) {\n var e_1, _a;\n var result = 0;\n try {\n for (var vec_1 = __values(vec), vec_1_1 = vec_1.next(); !vec_1_1.done; vec_1_1 = vec_1.next()) {\n var item = vec_1_1.value;\n result += Math.pow(item, 2);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (vec_1_1 && !vec_1_1.done && (_a = vec_1.return)) _a.call(vec_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return Math.sqrt(result);\n}\nexports.norm = norm;\nfunction empty(n) {\n var output = [];\n for (var i = 0; i < n; i++) {\n output.push(undefined);\n }\n return output;\n}\nexports.empty = empty;\nfunction range(n) {\n return empty(n).map(function (_, i) { return i; });\n}\nexports.range = range;\nfunction filled(n, v) {\n return empty(n).map(function () { return v; });\n}\nexports.filled = filled;\nfunction zeros(n) {\n return filled(n, 0);\n}\nexports.zeros = zeros;\nfunction ones(n) {\n return filled(n, 1);\n}\nexports.ones = ones;\nfunction linear(a, b, len) {\n return empty(len).map(function (_, i) {\n return a + i * ((b - a) / (len - 1));\n });\n}\nexports.linear = linear;\nfunction sum(input) {\n return input.reduce(function (sum, val) { return sum + val; });\n}\nexports.sum = sum;\nfunction mean(input) {\n return sum(input) / input.length;\n}\nexports.mean = mean;\nfunction max(input) {\n var max = 0;\n for (var i = 0; i < input.length; i++) {\n max = input[i] > max ? input[i] : max;\n }\n return max;\n}\nexports.max = max;\nfunction max2d(input) {\n var max = 0;\n for (var i = 0; i < input.length; i++) {\n for (var j = 0; j < input[i].length; j++) {\n max = input[i][j] > max ? input[i][j] : max;\n }\n }\n return max;\n}\nexports.max2d = max2d;\nfunction rejectionSample(nSamples, poolSize, random) {\n var result = zeros(nSamples);\n for (var i = 0; i < nSamples; i++) {\n var rejectSample = true;\n while (rejectSample) {\n var j = tauRandInt(poolSize, random);\n var broken = false;\n for (var k = 0; k < i; k++) {\n if (j === result[k]) {\n broken = true;\n break;\n }\n }\n if (!broken) {\n rejectSample = false;\n }\n result[i] = j;\n }\n }\n return result;\n}\nexports.rejectionSample = rejectionSample;\nfunction reshape2d(x, a, b) {\n var rows = [];\n var count = 0;\n var index = 0;\n if (x.length !== a * b) {\n throw new Error('Array dimensions must match input length.');\n }\n for (var i = 0; i < a; i++) {\n var col = [];\n for (var j = 0; j < b; j++) {\n col.push(x[index]);\n index += 1;\n }\n rows.push(col);\n count += 1;\n }\n return rows;\n}\nexports.reshape2d = reshape2d;\n"],"names":["_a","__createBinding","this","Object","create","o","m","k","k2","undefined","defineProperty","enumerable","get","__setModuleDefault","v","value","__importStar","mod","__esModule","result","hasOwnProperty","call","__read","n","Symbol","iterator","r","e","i","ar","next","done","push","error","__values","s","length","TypeError","exports","getCSR","normalize","eliminateZeros","multiplyScalar","maximum","subtract","add","pairwiseMultiply","identity","transpose","SparseMatrix","utils","rows","cols","values","dims","entries","Map","nRows","nCols","Error","row","col","checkDims","key","makeKey","set","prototype","has","defaultValue","getAll","ordered","rowColValues","forEach","sort","a","b","getDims","getRows","Array","from","_b","getCols","getValues","fn","map","vals","toArray","_this","output","empty","zeros","matrix","size","elementWise","x","y","scalar","zeroIndices","Set","removeByZeroIndex","_","index","nextValues","filter","nextRows","nextCols","normType","e_1","normFn","normFns","colsByRow","nextMatrix","_loop_1","norm","keys","_c","e_1_1","return","xs","max","sum","Math","pow","sqrt","op","visited","operate","nextValue","valuesA","rowsA","colsA","valuesB","rowsB","colsB","indices","indptr","currentRow","smallestFlagged","deheapSort","buildCandidates","uncheckedHeapPush","heapPush","rejectionSample","makeHeap","nPoints","makeArrays","fillValue","filled","heap","Infinity","weight","flag","floor","weights","isNew","iSwap","ic1","ic2","heapShape2","siftDown","heap1","heap2","ceiling","elt","leftChild","rightChild","swap","temp1","temp2","nSamples","poolSize","random","rejectSample","j","tauRandInt","broken","currentGraph","nVertices","nNeighbors","maxCandidates","candidateNeighbors","idx","isn","d","tauRand","indHeap","distHeap","indHeapIndex","distHeapIndex","ind","dist","minDist","resultIndex","initializeSearch","makeInitializedNNSearch","makeInitializations","makeNNDescent","tree","distanceFn","data","leafArray","nIters","delta","rho","rpTreeInit","c","p","q","cj","ck","initFromRandom","queryPoints","_heap","initFromTree","_tree","searchFlatTree","graph","initialization","tried","vertex","candidates","slice","candidates_1","candidates_1_1","candidate","forest","e_2","results","forest_1","forest_1_1","e_2_1","umap_1","UMAP","__spread","arguments","concat","makeLeafArray","makeForest","FlatTree","hyperplanes","offsets","children","makeEuclideanTree","leafSize","splitResults","dim","leftIndex","rightIndex","left","right","hyperplaneOffset","hyperplaneVector","nLeft","nRight","side","margin","indicesLeft","indicesRight","hyperplane","offset","euclideanRandomProjectionSplit","isLeaf","recursiveFlatten","nodeNum","leafNum","splice","apply","oldNodeNum","res","numNodes","numLeaves","selectSide","point","nTrees","range","makeTree","nNodes","nLeaves","flattenTree","rpForest","rpForest_1","rpForest_1_1","node","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","then","__generator","body","f","t","g","label","sent","trys","ops","verb","pop","__importDefault","initTransform","resetLocalConnectivity","fastIntersection","findABParams","cosine","euclidean","nnDescent","ml_levenberg_marquardt_1","SMOOTH_K_TOLERANCE","MIN_K_DIST_SCALE","params","learningRate","localConnectivity","nComponents","nEpochs","negativeSampleRate","repulsionStrength","setOpMixRatio","spread","transformQueueSize","targetMetric","targetWeight","targetNNeighbors","isInitialized","embedding","optimizationState","OptimizationState","setParam","fit","X","initializeFit","optimizeLayout","fitAsync","callback","optimizeLayoutAsync","setSupervisedProjection","Y","setPrecomputedKNN","knnIndices","knnDistances","getNEpochs","knnResults","nearestNeighbors","fuzzySimplicialSet","makeSearchFns","searchGraph","makeSearchGraph","processGraphForSupervisedProjection","initializeSimplicialSetEmbedding","head","tail","epochsPerSample","initializeOptimization","prepareForOptimizationLoop","search","knn","distances","neighbor","distance","transform","toTransform","rawData","min","init","adjustedLocalConnectivity","smoothKNNDistance","sigmas","rhos","computeMembershipStrengths","normed","csrMatrix","reshape2d","graphMax","reduce","val","makeEpochsPerSample","assignOptimizationStateParameters","headEmbedding","tailEmbedding","currentEpoch","farDist","categoricalSimplicialSetIntersection","optimizeLayoutStep","getEmbedding","metricNNDescent","round","log","log2","_d","_e","sparseMatrix","prodMatrix","simplicialSet","target","unknownDist","intersection","nIter","bandwidth","lo","hi","mid","ithDistances","nonZeroDists","interpolation","psum","exp","abs","meanIthDistances","mean","meanDistances","graphValues","entry","w","state","assign","moveOther","epochsPerNegativeSample","epochOfNextNegativeSample","epochOfNextSample","initialAlpha","alpha","gamma","current","other","distSquared","rDist","gradCoeff","gradD","clip","nNegSamples","k_1","other_1","distSquared_1","gradCoeff_1","epochCallback","epochCompleted","shouldStop","isFinished","setTimeout","err","normX","normY","clipValue","xv","linear","yv","parameterValues","default","damping","initialValues","gradientDifference","maxIterations","errorTolerance","z","toString","isAnyArray","object","endsWith","errorCalculation","parameters","parameterizedFunction","func","eye","evaluatedData","Float64Array","gradientFunc","paramFunction","ans","param","auxParams","funcParam","gradientFunction","matrixFunc","matrixFunction","inverseMatrix","mmul","sub","mul","to1DArray","levenbergMarquardt","options","minValues","maxValues","fill","parLen","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","iteration","converged","isNaN","parameterError","iterations","input","max2d","ones","vec","vec_1","vec_1_1","item","len"],"sourceRoot":""}
package/dist/501.js DELETED
@@ -1,2 +0,0 @@
1
- var eda;(()=>{"use strict";({7501:function(){var t=this&&this.__awaiter||function(t,e,a,r){return new(a||(a=Promise))((function(o,n){function l(t){try{s(r.next(t))}catch(t){n(t)}}function f(t){try{s(r.throw(t))}catch(t){n(t)}}function s(t){var e;t.done?o(t.value):(e=t.value,e instanceof a?e:new a((function(t){t(e)}))).then(l,f)}s((r=r.apply(t,e||[])).next())}))};onmessage=function(e){return t(this,void 0,void 0,(function*(){const t=e.data.features,a=e.data.transposed,r=e.data.oneHot,o=e.data.classesWeights,n=e.data.iterations,l=e.data.rate,f=e.data.penalty,s=e.data.tolerance,c=e.data.targetRaw;let i=0,d=0;const h=a.length,u=t.length,w=o.length,y=2*Math.sqrt(6/(w+h)),g=new Array(w);for(let t=0;t<w;++t){const e=new Float32Array(h+1);e[h]=0;for(let t=0;t<h;++t)e[t]=(Math.random()-.5)*y;g[t]=e}let A,p,v,M,m,F,x,b;const _=new Array(u);for(let t=0;t<u;++t)_[t]=new Float32Array(w);const k=new Array(w);for(let t=0;t<w;++t)k[t]=new Float32Array(u);const q=new Array(w);for(let t=0;t<w;++t)q[t]=new Float32Array(h+1);for(let e=0;e<n;++e){for(let e=0;e<u;++e){A=t[e],v=_[e],M=0,m=0;for(let t=0;t<w;++t){p=g[t],M=p[h];for(let t=0;t<h;++t)M+=p[t]*A[t];v[t]=Math.exp(M)*o[t],m+=v[t]}for(let t=0;t<w;++t)v[t]/=m}i=0;for(let t=0;t<u;++t)i+=-Math.log(_[t][c[t]]);if(i/=u,Math.abs(i-d)<s)break;d=i;for(let t=0;t<u;++t){x=_[t],F=r[t];for(let e=0;e<w;++e)k[e][t]=x[e]-F[e]}for(let t=0;t<w;++t){M=0,v=k[t];for(let t=0;t<u;++t)M+=v[t];q[t][h]=M/u}for(let t=0;t<w;++t){v=k[t],p=q[t];for(let t=0;t<h;++t){A=a[t],M=0;for(let t=0;t<u;++t)M+=v[t]*A[t];p[t]=M/u}}for(let t=0;t<w;++t){p=g[t],b=q[t];for(let t=0;t<h;++t)p[t]=(1-l*f/u)*p[t]-l*b[t];p[h]-=l*b[h]}}postMessage({params:g,loss:i})}))}}})[7501](),eda={}})();
2
- //# sourceMappingURL=501.js.map
package/dist/501.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"501.js","mappings":"6WAEAA,UAAY,SAAeC,G,yCACzB,MAAMC,EAAID,EAAIE,KAAKC,SACbC,EAAcJ,EAAIE,KAAKG,WACvBC,EAAIN,EAAIE,KAAKK,OACbC,EAAiBR,EAAIE,KAAKM,eAC1BC,EAAaT,EAAIE,KAAKO,WACtBC,EAAOV,EAAIE,KAAKQ,KAChBC,EAAUX,EAAIE,KAAKS,QACnBC,EAAYZ,EAAIE,KAAKU,UACrBC,EAAYb,EAAIE,KAAKW,UAC3B,IAAIC,EAAO,EACPC,EAAW,EAEf,MAAMC,EAAIZ,EAAYa,OAChBC,EAAIjB,EAAEgB,OACNE,EAAIX,EAAeS,OAInBG,EAAc,EAAIC,KAAKC,KAAK,GAAOH,EAAIH,IACvCO,EAAS,IAAIC,MAAoBL,GACvC,IAAK,IAAIM,EAAI,EAAGA,EAAIN,IAAKM,EAAG,CAC1B,MAAMC,EAAU,IAAIC,aAAaX,EAAI,GAGrCU,EAAQV,GAAK,EAGb,IAAK,IAAIY,EAAI,EAAGA,EAAIZ,IAAKY,EACvBF,EAAQE,IAAMP,KAAKQ,SAAW,IAAOT,EAEvCG,EAAOE,GAAKC,CACd,CAKA,IAAII,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACJ,MAAMC,EAAI,IAAId,MAAoBN,GAClC,IAAK,IAAIO,EAAI,EAAGA,EAAIP,IAAKO,EACvBa,EAAEb,GAAK,IAAIE,aAAaR,GAC1B,MAAMoB,EAAK,IAAIf,MAAoBL,GACnC,IAAK,IAAIM,EAAI,EAAGA,EAAIN,IAAKM,EACvBc,EAAGd,GAAK,IAAIE,aAAaT,GAC3B,MAAMsB,EAAK,IAAIhB,MAAoBL,GACnC,IAAK,IAAIM,EAAI,EAAGA,EAAIN,IAAKM,EACvBe,EAAGf,GAAK,IAAIE,aAAaX,EAAI,GAG/B,IAAK,IAAIyB,EAAO,EAAGA,EAAOhC,IAAcgC,EAAM,CAE5C,IAAK,IAAIb,EAAI,EAAGA,EAAIV,IAAKU,EAAG,CAC1BE,EAAO7B,EAAE2B,GACTI,EAAOM,EAAEV,GACTK,EAAM,EACNC,EAAS,EAET,IAAK,IAAIT,EAAI,EAAGA,EAAIN,IAAKM,EAAG,CAC1BM,EAAOR,EAAOE,GACdQ,EAAMF,EAAKf,GAEX,IAAK,IAAI0B,EAAI,EAAGA,EAAI1B,IAAK0B,EACvBT,GAAOF,EAAKW,GAAKZ,EAAKY,GAExBV,EAAKP,GAAKJ,KAAKsB,IAAIV,GAAOzB,EAAeiB,GACzCS,GAAUF,EAAKP,EACjB,CAEA,IAAK,IAAIA,EAAI,EAAGA,EAAIN,IAAKM,EACvBO,EAAKP,IAAMS,CACf,CAGApB,EAAO,EAEP,IAAK,IAAIW,EAAI,EAAGA,EAAIP,IAAKO,EACvBX,IAASO,KAAKuB,IAAIN,EAAEb,GAAGZ,EAAUY,KAInC,GAFAX,GAAQI,EAEJG,KAAKwB,IAAI/B,EAAOC,GAAYH,EAC9B,MAEFG,EAAWD,EAKX,IAAK,IAAIc,EAAI,EAAGA,EAAIV,IAAKU,EAAG,CAC1BQ,EAAQE,EAAEV,GACVO,EAAQ7B,EAAEsB,GAEV,IAAK,IAAIH,EAAI,EAAGA,EAAIN,IAAKM,EACvBc,EAAGd,GAAGG,GAAKQ,EAAMX,GAAKU,EAAMV,EAChC,CAGA,IAAK,IAAIA,EAAI,EAAGA,EAAIN,IAAKM,EAAG,CAC1BQ,EAAM,EACND,EAAOO,EAAGd,GAEV,IAAK,IAAIG,EAAI,EAAGA,EAAIV,IAAKU,EACvBK,GAAOD,EAAKJ,GAEdY,EAAGf,GAAGT,GAAKiB,EAAMf,CACnB,CAGA,IAAK,IAAIO,EAAI,EAAGA,EAAIN,IAAKM,EAAG,CAC1BO,EAAOO,EAAGd,GACVM,EAAOS,EAAGf,GAEV,IAAK,IAAIG,EAAI,EAAGA,EAAIZ,IAAKY,EAAG,CAC1BE,EAAO1B,EAAYwB,GAEnBK,EAAM,EACN,IAAK,IAAIS,EAAI,EAAGA,EAAIxB,IAAKwB,EACvBT,GAAOD,EAAKU,GAAKZ,EAAKY,GAExBX,EAAKH,GAAKK,EAAMf,CAClB,CACF,CAGA,IAAK,IAAIO,EAAI,EAAGA,EAAIN,IAAKM,EAAG,CAC1BM,EAAOR,EAAOE,GACdY,EAAQG,EAAGf,GAEX,IAAK,IAAIG,EAAI,EAAGA,EAAIZ,IAAKY,EACvBG,EAAKH,IAAM,EAAIlB,EAAOC,EAAUO,GAAKa,EAAKH,GAAKlB,EAAO2B,EAAMT,GAE9DG,EAAKf,IAAMN,EAAO2B,EAAMrB,EAC1B,CACF,CAEA8B,YAAY,CAAC,OAAUvB,EAAQ,KAAQT,GACzC,G,KC7IoB,Q,IADM,CAAC,C","sources":["webpack://eda/./src/workers/softmax-worker.ts","webpack://eda/webpack/startup"],"sourcesContent":["// Worker for softmax training\n\nonmessage = async function(evt) {\n const X = evt.data.features;\n const transposedX = evt.data.transposed;\n const Y = evt.data.oneHot;\n const classesWeights = evt.data.classesWeights;\n const iterations = evt.data.iterations;\n const rate = evt.data.rate;\n const penalty = evt.data.penalty;\n const tolerance = evt.data.tolerance;\n const targetRaw = evt.data.targetRaw;\n let loss = 0;\n let lossPrev = 0;\n\n const n = transposedX.length;\n const m = X.length;\n const c = classesWeights.length;\n\n // 1. Init params\n // Xavier initialization scale value\n const xavierScale = 2 * Math.sqrt(6.0 / (c + n));\n const params = new Array<Float32Array>(c);\n for (let i = 0; i < c; ++i) {\n const current = new Float32Array(n + 1);\n\n // initialize bias, b\n current[n] = 0;\n\n //Xavier initialization of weights, w\n for (let j = 0; j < n; ++j)\n current[j] = (Math.random() - 0.5) * xavierScale;\n\n params[i] = current;\n }\n\n // 2. Fitting\n\n // Routine\n let xBuf: Float32Array;\n let wBuf: Float32Array;\n let zBuf: Float32Array;\n let sum: number;\n let sumExp: number;\n let yTrue: Uint8Array;\n let yPred: Float32Array;\n let dWbuf: Float32Array;\n const Z = new Array<Float32Array>(m);\n for (let i = 0; i < m; ++i)\n Z[i] = new Float32Array(c);\n const dZ = new Array<Float32Array>(c);\n for (let i = 0; i < c; ++i)\n dZ[i] = new Float32Array(m);\n const dW = new Array<Float32Array>(c);\n for (let i = 0; i < c; ++i)\n dW[i] = new Float32Array(n + 1);\n\n // Fitting\n for (let iter = 0; iter < iterations; ++iter) {\n // 2.1) Forward propagation\n for (let j = 0; j < m; ++j) {\n xBuf = X[j];\n zBuf = Z[j];\n sum = 0;\n sumExp = 0;\n\n for (let i = 0; i < c; ++i) {\n wBuf = params[i];\n sum = wBuf[n];\n\n for (let k = 0; k < n; ++k)\n sum += wBuf[k] * xBuf[k];\n\n zBuf[i] = Math.exp(sum) * classesWeights[i];\n sumExp += zBuf[i];\n }\n\n for (let i = 0; i < c; ++i)\n zBuf[i] /= sumExp;\n }\n\n // 2.2) Loss\n loss = 0;\n\n for (let i = 0; i < m; ++i)\n loss += -Math.log(Z[i][targetRaw[i]]);\n\n loss /= m;\n\n if (Math.abs(loss - lossPrev) < tolerance)\n break;\n\n lossPrev = loss;\n\n // 2.3) Backward propagation\n\n // 2.3.1) dZ\n for (let j = 0; j < m; ++j) {\n yPred = Z[j];\n yTrue = Y[j];\n\n for (let i = 0; i < c; ++i)\n dZ[i][j] = yPred[i] - yTrue[i];\n }\n\n // 2.3.2) dB\n for (let i = 0; i < c; ++i) {\n sum = 0;\n zBuf = dZ[i];\n\n for (let j = 0; j < m; ++j)\n sum += zBuf[j];\n\n dW[i][n] = sum / m;\n }\n\n // 2.3.3) dW\n for (let i = 0; i < c; ++i) {\n zBuf = dZ[i];\n wBuf = dW[i];\n\n for (let j = 0; j < n; ++j) {\n xBuf = transposedX[j];\n\n sum = 0;\n for (let k = 0; k < m; ++k)\n sum += zBuf[k] * xBuf[k];\n\n wBuf[j] = sum / m;\n }\n }\n\n // 2.4) Update weights\n for (let i = 0; i < c; ++i) {\n wBuf = params[i];\n dWbuf = dW[i];\n\n for (let j = 0; j < n; ++j)\n wBuf[j] = (1 - rate * penalty / m) * wBuf[j] - rate * dWbuf[j];\n\n wBuf[n] -= rate * dWbuf[n];\n }\n } // for iter\n\n postMessage({'params': params, 'loss': loss});\n};\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = {};\n__webpack_modules__[7501]();\n"],"names":["onmessage","evt","X","data","features","transposedX","transposed","Y","oneHot","classesWeights","iterations","rate","penalty","tolerance","targetRaw","loss","lossPrev","n","length","m","c","xavierScale","Math","sqrt","params","Array","i","current","Float32Array","j","random","xBuf","wBuf","zBuf","sum","sumExp","yTrue","yPred","dWbuf","Z","dZ","dW","iter","k","exp","log","abs","postMessage"],"sourceRoot":""}
package/dist/531.js DELETED
@@ -1,2 +0,0 @@
1
- var eda;(()=>{"use strict";var e,r,t={5531:(e,r,t)=>{var o=t(4829),a=t(3995);onmessage=async function(e){(0,o.D)().then((r=>{let t=e.data,o=(0,a.zz)(r,t,"fitLinearRegressionParams","number");postMessage({callResult:o,args:t})}))}}},o={};function a(e){var r=o[e];if(void 0!==r)return r.exports;var n=o[e]={id:e,loaded:!1,exports:{}};return t[e](n,n.exports,a),n.loaded=!0,n.exports}a.m=t,a.x=()=>{var e=a.O(void 0,[23],(()=>a(5531)));return a.O(e)},a.amdO={},e=[],a.O=(r,t,o,n)=>{if(!t){var s=1/0;for(l=0;l<e.length;l++){for(var[t,o,n]=e[l],i=!0,c=0;c<t.length;c++)(!1&n||s>=n)&&Object.keys(a.O).every((e=>a.O[e](t[c])))?t.splice(c--,1):(i=!1,n<s&&(s=n));if(i){e.splice(l--,1);var p=o();void 0!==p&&(r=p)}}return r}n=n||0;for(var l=e.length;l>0&&e[l-1][2]>n;l--)e[l]=e[l-1];e[l]=[t,o,n]},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,t)=>(a.f[t](e,r),r)),[])),a.u=e=>e+".js",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var r=a.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{a.b=self.location+"";var e={531:1};a.f.i=(r,t)=>{e[r]||importScripts(a.p+a.u(r))};var r=self.webpackChunkeda=self.webpackChunkeda||[],t=r.push.bind(r);r.push=r=>{var[o,n,s]=r;for(var i in n)a.o(n,i)&&(a.m[i]=n[i]);for(s&&s(a);o.length;)e[o.pop()]=1;t(r)}})(),r=a.x,a.x=()=>a.e(23).then(r);var n=a.x();eda=n})();
2
- //# sourceMappingURL=531.js.map
package/dist/531.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"531.js","mappings":"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","sources":["webpack://eda/webpack/runtime/chunk loaded","webpack://eda/webpack/runtime/startup chunk dependencies","webpack://eda/./wasm/workers/fitLinearRegressionParamsWorker.js","webpack://eda/webpack/bootstrap","webpack://eda/webpack/runtime/amd options","webpack://eda/webpack/runtime/define property getters","webpack://eda/webpack/runtime/ensure chunk","webpack://eda/webpack/runtime/get javascript chunk filename","webpack://eda/webpack/runtime/global","webpack://eda/webpack/runtime/harmony module decorator","webpack://eda/webpack/runtime/hasOwnProperty shorthand","webpack://eda/webpack/runtime/publicPath","webpack://eda/webpack/runtime/importScripts chunk loading","webpack://eda/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn __webpack_require__.e(23).then(next);\n};","// The following code is generated automatically.\n\nimport {exportEDA} from '../../wasm/EDAForWebWorker';\nimport {cppWrapper} from '../../wasm/callWasmForWebWorker.js';\n\nonmessage = async function (evt) {\n exportEDA().then(module => \n {\n let args = evt.data;\n let result = cppWrapper(module, args, 'fitLinearRegressionParams', 'number');\n postMessage({'callResult': result, 'args': args});\n } )\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [23], () => (__webpack_require__(5531)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","__webpack_require__.amdO = {};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = self.location + \"\";\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t531: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkeda\"] = self[\"webpackChunkeda\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","next","onmessage","async","evt","then","module","args","data","result","postMessage","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","id","loaded","__webpack_modules__","m","x","__webpack_exports__","O","amdO","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","d","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","g","globalThis","this","Function","window","hmd","create","children","set","Error","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","location","document","currentScript","tagName","toUpperCase","src","scripts","getElementsByTagName","test","replace","p","b","self","installedChunks","chunkLoadingGlobal","parentChunkLoadingFunction","push","bind","moreModules","runtime","pop"],"sourceRoot":""}
package/dist/583.js DELETED
@@ -1,2 +0,0 @@
1
- var eda;(()=>{"use strict";var e,r,t={9583:(e,r,t)=>{var o=t(4829),a=t(3995);onmessage=async function(e){(0,o.D)().then((r=>{let t=e.data,o=(0,a.zz)(r,t,"generateDataset","number");postMessage({callResult:o,args:t})}))}}},o={};function a(e){var r=o[e];if(void 0!==r)return r.exports;var n=o[e]={id:e,loaded:!1,exports:{}};return t[e](n,n.exports,a),n.loaded=!0,n.exports}a.m=t,a.x=()=>{var e=a.O(void 0,[23],(()=>a(9583)));return a.O(e)},a.amdO={},e=[],a.O=(r,t,o,n)=>{if(!t){var s=1/0;for(l=0;l<e.length;l++){for(var[t,o,n]=e[l],i=!0,c=0;c<t.length;c++)(!1&n||s>=n)&&Object.keys(a.O).every((e=>a.O[e](t[c])))?t.splice(c--,1):(i=!1,n<s&&(s=n));if(i){e.splice(l--,1);var p=o();void 0!==p&&(r=p)}}return r}n=n||0;for(var l=e.length;l>0&&e[l-1][2]>n;l--)e[l]=e[l-1];e[l]=[t,o,n]},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,t)=>(a.f[t](e,r),r)),[])),a.u=e=>e+".js",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var r=a.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{a.b=self.location+"";var e={583:1};a.f.i=(r,t)=>{e[r]||importScripts(a.p+a.u(r))};var r=self.webpackChunkeda=self.webpackChunkeda||[],t=r.push.bind(r);r.push=r=>{var[o,n,s]=r;for(var i in n)a.o(n,i)&&(a.m[i]=n[i]);for(s&&s(a);o.length;)e[o.pop()]=1;t(r)}})(),r=a.x,a.x=()=>a.e(23).then(r);var n=a.x();eda=n})();
2
- //# sourceMappingURL=583.js.map
package/dist/583.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"583.js","mappings":"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","sources":["webpack://eda/webpack/runtime/chunk loaded","webpack://eda/webpack/runtime/startup chunk dependencies","webpack://eda/./wasm/workers/generateDatasetWorker.js","webpack://eda/webpack/bootstrap","webpack://eda/webpack/runtime/amd options","webpack://eda/webpack/runtime/define property getters","webpack://eda/webpack/runtime/ensure chunk","webpack://eda/webpack/runtime/get javascript chunk filename","webpack://eda/webpack/runtime/global","webpack://eda/webpack/runtime/harmony module decorator","webpack://eda/webpack/runtime/hasOwnProperty shorthand","webpack://eda/webpack/runtime/publicPath","webpack://eda/webpack/runtime/importScripts chunk loading","webpack://eda/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn __webpack_require__.e(23).then(next);\n};","// The following code is generated automatically.\n\nimport {exportEDA} from '../../wasm/EDAForWebWorker';\nimport {cppWrapper} from '../../wasm/callWasmForWebWorker.js';\n\nonmessage = async function (evt) {\n exportEDA().then(module => \n {\n let args = evt.data;\n let result = cppWrapper(module, args, 'generateDataset', 'number');\n postMessage({'callResult': result, 'args': args});\n } )\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [23], () => (__webpack_require__(9583)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","__webpack_require__.amdO = {};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = self.location + \"\";\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t583: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkeda\"] = self[\"webpackChunkeda\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","next","onmessage","async","evt","then","module","args","data","result","postMessage","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","id","loaded","__webpack_modules__","m","x","__webpack_exports__","O","amdO","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","d","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","g","globalThis","this","Function","window","hmd","create","children","set","Error","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","location","document","currentScript","tagName","toUpperCase","src","scripts","getElementsByTagName","test","replace","p","b","self","installedChunks","chunkLoadingGlobal","parentChunkLoadingFunction","push","bind","moreModules","runtime","pop"],"sourceRoot":""}
package/dist/589.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunkeda=self.webpackChunkeda||[]).push([[589],{2780:(e,t,a)=>{a.d(t,{lW:()=>n.lW,t$:()=>n.t$}),a(8498);var n=a(9336)},6066:(e,t,a)=>{var n;a.d(t,{G:()=>n}),function(e){e.EUCLIDEAN="EUCLIDEAN",e.MANHATTAN="MANHATTAN"}(n||(n={}))},9336:(e,t,a)=>{a.d(t,{lW:()=>M,t$:()=>N});var n=a(2787),r=a(944),o=a(6295),i=a(4572),s=a(8498);const T={[s.Pn.Euclidean]:o.jL,[s.Pn.Manhattan]:o.Hf,[s.Pn.Cosine]:o.w_},u={[s.xL.Levenshtein]:n.I,[s.xL.JaroWinkler]:r.Vb,[s.xL.Manhattan]:function(e,t){if(e.length!==t.length)return 1;{let a=0;for(let n=1;n<e.length;n++)a+=e[n]==t[n]?0:1;return a/e.length}},[s.xL.Onehot]:function(e,t){return e===t?0:1}},c={[s.aT.Tanimoto]:o.tO,[s.aT.Dice]:o.zn,[s.aT.Asymmetric]:o.gt,[s.aT.BraunBlanquet]:o.ij,[s.aT.Cosine]:o.lO,[s.aT.Kulczynski]:o.rR,[s.aT.McConnaughey]:o.lP,[s.aT.RogotGoldberg]:o.TK,[s.aT.Russel]:o.yK,[s.aT.Sokal]:o.Ii,[s.aT.Hamming]:o.be,[s.aT.Euclidean]:o.Qj},h={[s.m6.TanimotoIntArray]:o.v_},l={[s.RR.Difference]:o.T6},m={[s.Wn.CommonItems]:o.Hr},E={[s.EG.Vector]:{[s.Pn.Euclidean]:T[s.Pn.Euclidean],[s.Pn.Manhattan]:T[s.Pn.Manhattan],[s.Pn.Cosine]:T[s.Pn.Cosine]},[s.EG.String]:{[s.xL.Levenshtein]:u[s.xL.Levenshtein],[s.xL.JaroWinkler]:u[s.xL.JaroWinkler],[s.xL.Manhattan]:u[s.xL.Manhattan],[s.xL.Onehot]:u[s.xL.Onehot]},[s.EG.BitArray]:{[s.aT.Tanimoto]:c[s.aT.Tanimoto],[s.aT.Dice]:c[s.aT.Dice],[s.aT.Asymmetric]:c[s.aT.Asymmetric],[s.aT.BraunBlanquet]:c[s.aT.BraunBlanquet],[s.aT.Cosine]:c[s.aT.Cosine],[s.aT.Kulczynski]:c[s.aT.Kulczynski],[s.aT.McConnaughey]:c[s.aT.McConnaughey],[s.aT.RogotGoldberg]:c[s.aT.RogotGoldberg],[s.aT.Russel]:c[s.aT.Russel],[s.aT.Sokal]:c[s.aT.Sokal]},[s.EG.MacroMolecule]:{[i.Z.HAMMING]:i.V[i.Z.HAMMING],[i.Z.LEVENSHTEIN]:i.V[i.Z.LEVENSHTEIN],[i.Z.NEEDLEMANN_WUNSCH]:i.V[i.Z.NEEDLEMANN_WUNSCH],[i.Z.MONOMER_CHEMICAL_DISTANCE]:i.V[i.Z.MONOMER_CHEMICAL_DISTANCE]},[s.EG.Number]:{[s.RR.Difference]:l[s.RR.Difference]},[s.EG.IntArray]:{[s.m6.TanimotoIntArray]:h[s.m6.TanimotoIntArray]},[s.EG.NumberArray]:{[s.Wn.CommonItems]:m[s.Wn.CommonItems]}},y=Object.keys(E).reduce(((e,t)=>{for(const a of Object.keys(E[t]))e[a]=t;return e}),{});function M(e){return"BitArray"==y[e]}class N{constructor(e){this.method=e,this.dataType=y[e]}metricNeedsArgs(e){return y[e]==s.EG.MacroMolecule.toString()||y[e]==s.EG.Number.toString()||function(e){return y[e]==s.EG.NumberArray.toString()}(e)}getMeasure(e){const t=E;if(!t.hasOwnProperty(this.dataType)||!t[this.dataType].hasOwnProperty(this.method))throw new Error(`Unknown measure ${this.method} for data type ${this.dataType}`);return this.metricNeedsArgs(this.method)?t[this.dataType][this.method](e):t[this.dataType][this.method]}static getMetricByDataType(e){return Object.keys(E[e])}static get availableMeasures(){return Object.keys(E)}}}}]);
2
- //# sourceMappingURL=589.js.map
package/dist/589.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"589.js","mappings":"gKAAO,IAAIA,E,iBACX,SAAWA,GACPA,EAAsC,UAAI,YAC1CA,EAAsC,UAAI,WAC7C,CAHD,CAGGA,IAA+BA,EAA6B,CAAC,G,iGCCzD,MAAMC,EAA+B,CACxC,CAAC,KAAmBC,WAAY,KAChC,CAAC,KAAmBC,WAAY,KAChC,CAAC,KAAmBC,QAAS,MAEpBC,EAA+B,CACxC,CAAC,KAAmBC,aAAc,IAClC,CAAC,KAAmBC,aAAc,KAClC,CAAC,KAAmBJ,WA2FjB,SAA2BK,EAAIC,GAClC,GAAID,EAAGE,SAAWD,EAAGC,OACjB,OAAO,EAEN,CACD,IAAIC,EAAO,EACX,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAGE,OAAQE,IAC3BD,GAAQH,EAAGI,IAAMH,EAAGG,GAAK,EAAI,EACjC,OAAOD,EAAOH,EAAGE,MACrB,CACJ,EApGI,CAAC,KAAmBG,QAqGjB,SAA6BL,EAAIC,GACpC,OAAOD,IAAOC,EAAK,EAAI,CAC3B,GArGaK,EAAiC,CAC1C,CAAC,KAAqBC,UAAW,KACjC,CAAC,KAAqBC,MAAO,KAC7B,CAAC,KAAqBC,YAAa,KACnC,CAAC,KAAqBC,eAAgB,KACtC,CAAC,KAAqBd,QAAS,KAC/B,CAAC,KAAqBe,YAAa,KACnC,CAAC,KAAqBC,cAAe,KACrC,CAAC,KAAqBC,eAAgB,KACtC,CAAC,KAAqBC,QAAS,KAC/B,CAAC,KAAqBC,OAAQ,KAC9B,CAAC,KAAqBC,SAAU,KAChC,CAAC,KAAqBtB,WAAY,MAEzBuB,EAAiC,CAC1C,CAAC,KAAqBC,kBAAmB,MAEhCC,EAA+B,CACxC,CAAC,KAAmBC,YAAa,MAExBC,EAA6B,CACtC,CAAC,KAAwBC,aAAc,MAE9BC,EAAmB,CAC5B,CAAC,KAAwBC,QAAS,CAC9B,CAAC,KAAmB9B,WAAYD,EAA6B,KAAmBC,WAChF,CAAC,KAAmBC,WAAYF,EAA6B,KAAmBE,WAChF,CAAC,KAAmBC,QAASH,EAA6B,KAAmBG,SAEjF,CAAC,KAAwB6B,QAAS,CAC9B,CAAC,KAAmB3B,aAAcD,EAA6B,KAAmBC,aAClF,CAAC,KAAmBC,aAAcF,EAA6B,KAAmBE,aAClF,CAAC,KAAmBJ,WAAYE,EAA6B,KAAmBF,WAChF,CAAC,KAAmBU,QAASR,EAA6B,KAAmBQ,SAEjF,CAAC,KAAwBqB,UAAW,CAChC,CAAC,KAAqBnB,UAAWD,EAA+B,KAAqBC,UACrF,CAAC,KAAqBC,MAAOF,EAA+B,KAAqBE,MACjF,CAAC,KAAqBC,YAAaH,EAA+B,KAAqBG,YACvF,CAAC,KAAqBC,eAAgBJ,EAA+B,KAAqBI,eAC1F,CAAC,KAAqBd,QAASU,EAA+B,KAAqBV,QACnF,CAAC,KAAqBe,YAAaL,EAA+B,KAAqBK,YACvF,CAAC,KAAqBC,cAAeN,EAA+B,KAAqBM,cACzF,CAAC,KAAqBC,eAAgBP,EAA+B,KAAqBO,eAC1F,CAAC,KAAqBC,QAASR,EAA+B,KAAqBQ,QACnF,CAAC,KAAqBC,OAAQT,EAA+B,KAAqBS,QAEtF,CAAC,KAAwBY,eAAgB,CACrC,CAAC,IAAyBC,SAAU,IAAoB,IAAyBA,SACjF,CAAC,IAAyBC,aAAc,IAAoB,IAAyBA,aACrF,CAAC,IAAyBC,mBAAoB,IAAoB,IAAyBA,mBAC3F,CAAC,IAAyBC,2BAA4B,IAAoB,IAAyBA,4BAEvG,CAAC,KAAwBC,QAAS,CAC9B,CAAC,KAAmBZ,YAAaD,EAA6B,KAAmBC,aAErF,CAAC,KAAwBa,UAAW,CAChC,CAAC,KAAqBf,kBAAmBD,EAA+B,KAAqBC,mBAEjG,CAAC,KAAwBgB,aAAc,CACnC,CAAC,KAAwBZ,aAAcD,EAA2B,KAAwBC,eAGrFa,EAAmBC,OAAOC,KAAKd,GACvCe,QAAO,CAACC,EAAKC,KACd,IAAK,MAAMC,KAAOL,OAAOC,KAAKd,EAAiBiB,IAC3CD,EAAIE,GAAOD,EACf,OAAOD,CAAG,GACX,CAAC,GAIG,SAASG,EAAiBC,GAC7B,MAAiC,YAA1BR,EAAiBQ,EAC5B,CA6BO,MAAMC,EAMT,WAAAC,CAAYC,GACRC,KAAKD,OAASA,EACdC,KAAKC,SAAWb,EAAiBW,EACrC,CAOA,eAAAG,CAAgBH,GACZ,OAzCGX,EAyC0BW,IAzCA,KAAwBnB,cAAcuB,YAGhEf,EAsCqDW,IAtC3B,KAAwBd,OAAOkB,YAE7D,SAA6BP,GAChC,OAAOR,EAAiBQ,IAAS,KAAwBT,YAAYgB,UACzE,CAkC2EC,CAAoBL,EAC3F,CAOA,UAAAM,CAAWC,GACP,MAAMC,EAAO/B,EACb,IAAK+B,EAAKC,eAAeR,KAAKC,YAAcM,EAAKP,KAAKC,UAAUO,eAAeR,KAAKD,QAChF,MAAM,IAAIU,MAAM,mBAAmBT,KAAKD,wBAAwBC,KAAKC,YACzE,OAAOD,KAAKE,gBAAgBF,KAAKD,QAC7BQ,EAAKP,KAAKC,UAAUD,KAAKD,QAAQO,GACjCC,EAAKP,KAAKC,UAAUD,KAAKD,OACjC,CAOA,0BAAOW,CAAoBT,GACvB,OAAOZ,OAAOC,KAAKd,EAAiByB,GACxC,CAIA,4BAAWU,GACP,OAAOtB,OAAOC,KAAKd,EACvB,E","sources":["webpack://eda/./node_modules/@datagrok-libraries/ml/src/distance-matrix/types.js","webpack://eda/./node_modules/@datagrok-libraries/ml/src/typed-metrics/typed-metrics.js"],"sourcesContent":["export var DistanceAggregationMethods;\n(function (DistanceAggregationMethods) {\n DistanceAggregationMethods[\"EUCLIDEAN\"] = \"EUCLIDEAN\";\n DistanceAggregationMethods[\"MANHATTAN\"] = \"MANHATTAN\";\n})(DistanceAggregationMethods || (DistanceAggregationMethods = {}));\n;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSwwQkFHVDtBQUhILFdBQVksMEJBQTBCO0lBQ2xDLHFEQUF1QixDQUFBO0lBQ3ZCLHFEQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFIUywwQkFBMEIsS0FBMUIsMEJBQTBCLFFBR25DO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIHtcbiAgICBFVUNMSURFQU4gPSAnRVVDTElERUFOJyxcbiAgICBNQU5IQVRUQU4gPSAnTUFOSEFUVEFOJyxcbiAgfTtcblxuZXhwb3J0IHR5cGUgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZCA9IGtleW9mIHR5cGVvZiBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcztcbiJdfQ==","import * as fl from 'fastest-levenshtein';\nimport { jaroWinkler } from 'jaro-winkler-typescript';\nimport { asymmetricDistance, braunBlanquetDistance, cosineDistance, diceDistance, euclideanDistanceBitArray, hammingDistance, kulczynskiDistance, mcConnaugheyDistance, rogotGoldbergDistance, russelDistance, sokalDistance, tanimotoDistance, numericDistance, tanimotoDistanceIntArray, inverseCommonItemsCount, vectorEuclideanDistance, vectorManhattenDistance, vectorCosineDistance, } from '../distance-metrics-methods';\nimport { mmDistanceFunctions, MmDistanceFunctionsNames } from '../macromolecule-distance-functions';\nimport { DistanceMetricsSubjects, BitArrayMetricsNames, StringMetricsNames, VectorMetricsNames, NumberMetricsNames, IntArrayMetricsNames, NumberArrayMetricsNames } from './consts';\nexport const vectorDistanceMetricsMethods = {\n [VectorMetricsNames.Euclidean]: vectorEuclideanDistance,\n [VectorMetricsNames.Manhattan]: vectorManhattenDistance,\n [VectorMetricsNames.Cosine]: vectorCosineDistance,\n};\nexport const stringDistanceMetricsMethods = {\n [StringMetricsNames.Levenshtein]: fl.distance,\n [StringMetricsNames.JaroWinkler]: jaroWinkler,\n [StringMetricsNames.Manhattan]: manhattanDistance,\n [StringMetricsNames.Onehot]: categoricalDistance,\n};\nexport const bitArrayDistanceMetricsMethods = {\n [BitArrayMetricsNames.Tanimoto]: tanimotoDistance,\n [BitArrayMetricsNames.Dice]: diceDistance,\n [BitArrayMetricsNames.Asymmetric]: asymmetricDistance,\n [BitArrayMetricsNames.BraunBlanquet]: braunBlanquetDistance,\n [BitArrayMetricsNames.Cosine]: cosineDistance,\n [BitArrayMetricsNames.Kulczynski]: kulczynskiDistance,\n [BitArrayMetricsNames.McConnaughey]: mcConnaugheyDistance,\n [BitArrayMetricsNames.RogotGoldberg]: rogotGoldbergDistance,\n [BitArrayMetricsNames.Russel]: russelDistance,\n [BitArrayMetricsNames.Sokal]: sokalDistance,\n [BitArrayMetricsNames.Hamming]: hammingDistance,\n [BitArrayMetricsNames.Euclidean]: euclideanDistanceBitArray,\n};\nexport const intArrayDistanceMetricsMethods = {\n [IntArrayMetricsNames.TanimotoIntArray]: tanimotoDistanceIntArray,\n};\nexport const numberDistanceMetricsMethods = {\n [NumberMetricsNames.Difference]: numericDistance,\n};\nexport const numberArrayDistanceMetrics = {\n [NumberArrayMetricsNames.CommonItems]: inverseCommonItemsCount,\n};\nexport const AvailableMetrics = {\n [DistanceMetricsSubjects.Vector]: {\n [VectorMetricsNames.Euclidean]: vectorDistanceMetricsMethods[VectorMetricsNames.Euclidean],\n [VectorMetricsNames.Manhattan]: vectorDistanceMetricsMethods[VectorMetricsNames.Manhattan],\n [VectorMetricsNames.Cosine]: vectorDistanceMetricsMethods[VectorMetricsNames.Cosine],\n },\n [DistanceMetricsSubjects.String]: {\n [StringMetricsNames.Levenshtein]: stringDistanceMetricsMethods[StringMetricsNames.Levenshtein],\n [StringMetricsNames.JaroWinkler]: stringDistanceMetricsMethods[StringMetricsNames.JaroWinkler],\n [StringMetricsNames.Manhattan]: stringDistanceMetricsMethods[StringMetricsNames.Manhattan],\n [StringMetricsNames.Onehot]: stringDistanceMetricsMethods[StringMetricsNames.Onehot],\n },\n [DistanceMetricsSubjects.BitArray]: {\n [BitArrayMetricsNames.Tanimoto]: bitArrayDistanceMetricsMethods[BitArrayMetricsNames.Tanimoto],\n [BitArrayMetricsNames.Dice]: bitArrayDistanceMetricsMethods[BitArrayMetricsNames.Dice],\n [BitArrayMetricsNames.Asymmetric]: bitArrayDistanceMetricsMethods[BitArrayMetricsNames.Asymmetric],\n [BitArrayMetricsNames.BraunBlanquet]: bitArrayDistanceMetricsMethods[BitArrayMetricsNames.BraunBlanquet],\n [BitArrayMetricsNames.Cosine]: bitArrayDistanceMetricsMethods[BitArrayMetricsNames.Cosine],\n [BitArrayMetricsNames.Kulczynski]: bitArrayDistanceMetricsMethods[BitArrayMetricsNames.Kulczynski],\n [BitArrayMetricsNames.McConnaughey]: bitArrayDistanceMetricsMethods[BitArrayMetricsNames.McConnaughey],\n [BitArrayMetricsNames.RogotGoldberg]: bitArrayDistanceMetricsMethods[BitArrayMetricsNames.RogotGoldberg],\n [BitArrayMetricsNames.Russel]: bitArrayDistanceMetricsMethods[BitArrayMetricsNames.Russel],\n [BitArrayMetricsNames.Sokal]: bitArrayDistanceMetricsMethods[BitArrayMetricsNames.Sokal],\n },\n [DistanceMetricsSubjects.MacroMolecule]: {\n [MmDistanceFunctionsNames.HAMMING]: mmDistanceFunctions[MmDistanceFunctionsNames.HAMMING],\n [MmDistanceFunctionsNames.LEVENSHTEIN]: mmDistanceFunctions[MmDistanceFunctionsNames.LEVENSHTEIN],\n [MmDistanceFunctionsNames.NEEDLEMANN_WUNSCH]: mmDistanceFunctions[MmDistanceFunctionsNames.NEEDLEMANN_WUNSCH],\n [MmDistanceFunctionsNames.MONOMER_CHEMICAL_DISTANCE]: mmDistanceFunctions[MmDistanceFunctionsNames.MONOMER_CHEMICAL_DISTANCE],\n },\n [DistanceMetricsSubjects.Number]: {\n [NumberMetricsNames.Difference]: numberDistanceMetricsMethods[NumberMetricsNames.Difference],\n },\n [DistanceMetricsSubjects.IntArray]: {\n [IntArrayMetricsNames.TanimotoIntArray]: intArrayDistanceMetricsMethods[IntArrayMetricsNames.TanimotoIntArray],\n },\n [DistanceMetricsSubjects.NumberArray]: {\n [NumberArrayMetricsNames.CommonItems]: numberArrayDistanceMetrics[NumberArrayMetricsNames.CommonItems],\n },\n};\nexport const MetricToDataType = Object.keys(AvailableMetrics)\n .reduce((ret, key) => {\n for (const val of Object.keys(AvailableMetrics[key]))\n ret[val] = key;\n return ret;\n}, {});\nexport function isStringMetric(name) {\n return MetricToDataType[name] == 'String';\n}\nexport function isBitArrayMetric(name) {\n return MetricToDataType[name] == 'BitArray';\n}\nexport function isVectorMetric(name) {\n return MetricToDataType[name] == 'Vector';\n}\nexport function isMacroMoleculeMetric(name) {\n return MetricToDataType[name] == DistanceMetricsSubjects.MacroMolecule.toString();\n}\nexport function isNumericMetric(name) {\n return MetricToDataType[name] == DistanceMetricsSubjects.Number.toString();\n}\nexport function isNumberArrayMetric(name) {\n return MetricToDataType[name] == DistanceMetricsSubjects.NumberArray.toString();\n}\n/** Manhattan distance between two sequences (match - 0, mismatch - 1) normalized for length. */\nexport function manhattanDistance(s1, s2) {\n if (s1.length !== s2.length) {\n return 1;\n }\n else {\n let dist = 0;\n for (let i = 1; i < s1.length; i++)\n dist += s1[i] == s2[i] ? 0 : 1;\n return dist / s1.length;\n }\n}\nexport function categoricalDistance(s1, s2) {\n return s1 === s2 ? 0 : 1;\n}\n/** Unified class implementing different string measures. */\nexport class Measure {\n /**\n * Creates an instance of Measure with .\n * @param {string} method Method to calculate distance between strings.\n * @memberof Measurer\n */\n constructor(method) {\n this.method = method;\n this.dataType = MetricToDataType[method];\n }\n /**\n * Returns true if the metric needs arguments to be calculated.\n * @param {KnownMetrics} method Metric to check if it needs arguments.\n * @return {boolean} True if the metric needs arguments.\n * @memberof Measure\n */\n metricNeedsArgs(method) {\n return isMacroMoleculeMetric(method) || isNumericMetric(method) || isNumberArrayMetric(method);\n }\n /**\n * Returns custom string distance function specified.\n * @param {opts} opts Options for the measure. used for macromolecule distances\n * @return {DistanceMetric} Callback of the measure chosen.\n * @memberof Measurer\n */\n getMeasure(opts) {\n const dict = AvailableMetrics;\n if (!dict.hasOwnProperty(this.dataType) || !dict[this.dataType].hasOwnProperty(this.method))\n throw new Error(`Unknown measure ${this.method} for data type ${this.dataType}`);\n return this.metricNeedsArgs(this.method) ?\n dict[this.dataType][this.method](opts) :\n dict[this.dataType][this.method];\n }\n /**\n * Returns custom string distance by the given data type.\n * @param {AvailableDataTypes} dataType Metric's data type\n * @return {string[]} Metric names which expects the given data type\n * @memberof Measurer\n */\n static getMetricByDataType(dataType) {\n return Object.keys(AvailableMetrics[dataType]);\n }\n /** Returns metric names available.\n * @memberof Measurer\n */\n static get availableMeasures() {\n return Object.keys(AvailableMetrics);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtbWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGVkLW1ldHJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFcEQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLFlBQVksRUFDWix5QkFBeUIsRUFDekIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsb0JBQW9CLEdBQ3JCLE1BQU0sNkJBQTZCLENBQUM7QUFJckMsT0FBTyxFQUFDLG1CQUFtQixFQUFFLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDbEcsT0FBTyxFQUFDLHVCQUF1QixFQUFFLG9CQUFvQixFQUNuRCxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFDaEYsdUJBQXVCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFHM0MsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQXlEO0lBQ2hHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsdUJBQXVCO0lBQ3ZELENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsdUJBQXVCO0lBQ3ZELENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUUsb0JBQW9CO0NBQ2xELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBeUQ7SUFDaEcsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUTtJQUM3QyxDQUFDLGtCQUFrQixDQUFD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QUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxLQUFLLGlCQUFpQjtRQUMxQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmbCBmcm9tICdmYXN0ZXN0LWxldmVuc2h0ZWluJztcbmltcG9ydCB7amFyb1dpbmtsZXJ9IGZyb20gJ2phcm8td2lua2xlci10eXBlc2NyaXB0JztcbmltcG9ydCB7RGlzdGFuY2VNZXRyaWN9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zJztcbmltcG9ydCB7XG4gIGFzeW1tZXRyaWNEaXN0YW5jZSxcbiAgYnJhdW5CbGFucXVldERpc3RhbmNlLFxuICBjb3NpbmVEaXN0YW5jZSxcbiAgZGljZURpc3RhbmNlLFxuICBldWNsaWRlYW5EaXN0YW5jZUJpdEFycmF5LFxuICBoYW1taW5nRGlzdGFuY2UsXG4gIGt1bGN6eW5za2lEaXN0YW5jZSxcbiAgbWNDb25uYXVnaGV5RGlzdGFuY2UsXG4gIHJvZ290R29sZGJlcmdEaXN0YW5jZSxcbiAgcnVzc2VsRGlzdGFuY2UsXG4gIHNva2FsRGlzdGFuY2UsXG4gIHRhbmltb3RvRGlzdGFuY2UsXG4gIG51bWVyaWNEaXN0YW5jZSxcbiAgdGFuaW1vdG9EaXN0YW5jZUludEFycmF5LFxuICBpbnZlcnNlQ29tbW9uSXRlbXNDb3VudCxcbiAgdmVjdG9yRXVjbGlkZWFuRGlzdGFuY2UsXG4gIHZlY3Rvck1hbmhhdHRlbkRpc3RhbmNlLFxuICB2ZWN0b3JDb3NpbmVEaXN0YW5jZSxcbn0gZnJvbSAnLi4vZGlzdGFuY2UtbWV0cmljcy1tZXRob2RzJztcblxuaW1wb3J0IEJpdEFycmF5IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2JpdC1hcnJheSc7XG5pbXBvcnQge1ZlY3RvciwgU3RyaW5nRGljdGlvbmFyeX0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdHlwZS1kZWNsYXJhdGlvbnMnO1xuaW1wb3J0IHttbURpc3RhbmNlRnVuY3Rpb25zLCBNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXN9IGZyb20gJy4uL21hY3JvbW9sZWN1bGUtZGlzdGFuY2UtZnVuY3Rpb25zJztcbmltcG9ydCB7RGlzdGFuY2VNZXRyaWNzU3ViamVjdHMsIEJpdEFycmF5TWV0cmljc05hbWVzLFxuICBTdHJpbmdNZXRyaWNzTmFtZXMsIFZlY3Rvck1ldHJpY3NOYW1lcywgTnVtYmVyTWV0cmljc05hbWVzLCBJbnRBcnJheU1ldHJpY3NOYW1lcyxcbiAgTnVtYmVyQXJyYXlNZXRyaWNzTmFtZXN9IGZyb20gJy4vY29uc3RzJztcblxuXG5leHBvcnQgY29uc3QgdmVjdG9yRGlzdGFuY2VNZXRyaWNzTWV0aG9kczogeyBbbmFtZTogc3RyaW5nXTogKHg6IFZlY3RvciwgeTogVmVjdG9yKSA9PiBudW1iZXIgfSA9IHtcbiAgW1ZlY3Rvck1ldHJpY3NOYW1lcy5FdWNsaWRlYW5dOiB2ZWN0b3JFdWNsaWRlYW5EaXN0YW5jZSxcbiAgW1ZlY3Rvck1ldHJpY3NOYW1lcy5NYW5oYXR0YW5dOiB2ZWN0b3JNYW5oYXR0ZW5EaXN0YW5jZSxcbiAgW1ZlY3Rvck1ldHJpY3NOYW1lcy5Db3NpbmVdOiB2ZWN0b3JDb3NpbmVEaXN0YW5jZSxcbn07XG5cbmV4cG9ydCBjb25zdCBzdHJpbmdEaXN0YW5jZU1ldHJpY3NNZXRob2RzOiB7IFtuYW1lOiBzdHJpbmddOiAoeDogc3RyaW5nLCB5OiBzdHJpbmcpID0+IG51bWJlciB9ID0ge1xuICBbU3RyaW5nTWV0cmljc05hbWVzLkxldmVuc2h0ZWluXTogZmwuZGlzdGFuY2UsXG4gIFtTdHJpbmdNZXRyaWNzTmFtZXMuSmFyb1dpbmtsZXJdOiBqYXJvV2lua2xlcixcbiAgW1N0cmluZ01ldHJpY3NOYW1lcy5NYW5oYXR0YW5dOiBtYW5oYXR0YW5EaXN0YW5jZSxcbiAgW1N0cmluZ01ldHJpY3NOYW1lcy5PbmVob3RdOiBjYXRlZ29yaWNhbERpc3RhbmNlLFxufTtcblxuZXhwb3J0IGNvbnN0IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kczogeyBbbmFtZTogc3RyaW5nXTogKHg6IEJpdEFycmF5LCB5OiBCaXRBcnJheSkgPT4gbnVtYmVyIH0gPSB7XG4gIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5UYW5pbW90b106IHRhbmltb3RvRGlzdGFuY2UsXG4gIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5EaWNlXTogZGljZURpc3RhbmNlLFxuICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuQXN5bW1ldHJpY106IGFzeW1tZXRyaWNEaXN0YW5jZSxcbiAgW0JpdEFycmF5TWV0cmljc05hbWVzLkJyYXVuQmxhbnF1ZXRdOiBicmF1bkJsYW5xdWV0RGlzdGFuY2UsXG4gIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5Db3NpbmVdOiBjb3NpbmVEaXN0YW5jZSxcbiAgW0JpdEFycmF5TWV0cmljc05hbWVzLkt1bGN6eW5za2ldOiBrdWxjenluc2tpRGlzdGFuY2UsXG4gIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5NY0Nvbm5hdWdoZXldOiBtY0Nvbm5hdWdoZXlEaXN0YW5jZSxcbiAgW0JpdEFycmF5TWV0cmljc05hbWVzLlJvZ290R29sZGJlcmddOiByb2dvdEdvbGRiZXJnRGlzdGFuY2UsXG4gIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5SdXNzZWxdOiBydXNzZWxEaXN0YW5jZSxcbiAgW0JpdEFycmF5TWV0cmljc05hbWVzLlNva2FsXTogc29rYWxEaXN0YW5jZSxcbiAgW0JpdEFycmF5TWV0cmljc05hbWVzLkhhbW1pbmddOiBoYW1taW5nRGlzdGFuY2UsXG4gIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5FdWNsaWRlYW5dOiBldWNsaWRlYW5EaXN0YW5jZUJpdEFycmF5LFxufTtcblxuZXhwb3J0IGNvbnN0IGludEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kczogeyBbbmFtZTogc3RyaW5nXTogKHg6IFVpbnQzMkFycmF5LCB5OiBVaW50MzJBcnJheSkgPT4gbnVtYmVyIH0gPSB7XG4gIFtJbnRBcnJheU1ldHJpY3NOYW1lcy5UYW5pbW90b0ludEFycmF5XTogdGFuaW1vdG9EaXN0YW5jZUludEFycmF5LFxufTtcblxuZXhwb3J0IGNvbnN0IG51bWJlckRpc3RhbmNlTWV0cmljc01ldGhvZHM6IHsgW25hbWU6IHN0cmluZ106IChhcmdzOiBhbnkpID0+ICh4OiBudW1iZXIsIHk6IG51bWJlcikgPT4gbnVtYmVyIH0gPSB7XG4gIFtOdW1iZXJNZXRyaWNzTmFtZXMuRGlmZmVyZW5jZV06IG51bWVyaWNEaXN0YW5jZSxcbn07XG5cbmV4cG9ydCBjb25zdCBudW1iZXJBcnJheURpc3RhbmNlTWV0cmljczpcbnsgW25hbWU6IHN0cmluZ106IChhcmdzOiBhbnkpID0+ICh4OiBBcnJheUxpa2U8bnVtYmVyPiwgeTogQXJyYXlMaWtlPG51bWJlcj4pID0+IG51bWJlciB9ID0ge1xuICBbTnVtYmVyQXJyYXlNZXRyaWNzTmFtZXMuQ29tbW9uSXRlbXNdOiBpbnZlcnNlQ29tbW9uSXRlbXNDb3VudCxcbn07XG5cbmV4cG9ydCBjb25zdCBBdmFpbGFibGVNZXRyaWNzID0ge1xuICBbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuVmVjdG9yXToge1xuICAgIFtWZWN0b3JNZXRyaWNzTmFtZXMuRXVjbGlkZWFuXTogdmVjdG9yRGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tWZWN0b3JNZXRyaWNzTmFtZXMuRXVjbGlkZWFuXSxcbiAgICBbVmVjdG9yTWV0cmljc05hbWVzLk1hbmhhdHRhbl06IHZlY3RvckRpc3RhbmNlTWV0cmljc01ldGhvZHNbVmVjdG9yTWV0cmljc05hbWVzLk1hbmhhdHRhbl0sXG4gICAgW1ZlY3Rvck1ldHJpY3NOYW1lcy5Db3NpbmVdOiB2ZWN0b3JEaXN0YW5jZU1ldHJpY3NNZXRob2RzW1ZlY3Rvck1ldHJpY3NOYW1lcy5Db3NpbmVdLFxuICB9LFxuICBbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuU3RyaW5nXToge1xuICAgIFtTdHJpbmdNZXRyaWNzTmFtZXMuTGV2ZW5zaHRlaW5dOiBzdHJpbmdEaXN0YW5jZU1ldHJpY3NNZXRob2RzW1N0cmluZ01ldHJpY3NOYW1lcy5MZXZlbnNodGVpbl0sXG4gICAgW1N0cmluZ01ldHJpY3NOYW1lcy5KYXJvV2lua2xlcl06IHN0cmluZ0Rpc3RhbmNlTWV0cmljc01ldGhvZHNbU3RyaW5nTWV0cmljc05hbWVzLkphcm9XaW5rbGVyXSxcbiAgICBbU3RyaW5nTWV0cmljc05hbWVzLk1hbmhhdHRhbl06IHN0cmluZ0Rpc3RhbmNlTWV0cmljc01ldGhvZHNbU3RyaW5nTWV0cmljc05hbWVzLk1hbmhhdHRhbl0sXG4gICAgW1N0cmluZ01ldHJpY3NOYW1lcy5PbmVob3RdOiBzdHJpbmdEaXN0YW5jZU1ldHJpY3NNZXRob2RzW1N0cmluZ01ldHJpY3NOYW1lcy5PbmVob3RdLFxuICB9LFxuICBbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuQml0QXJyYXldOiB7XG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLlRhbmltb3RvXTogYml0QXJyYXlEaXN0YW5jZU1ldHJpY3NNZXRob2RzW0JpdEFycmF5TWV0cmljc05hbWVzLlRhbmltb3RvXSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuRGljZV06IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5EaWNlXSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuQXN5bW1ldHJpY106IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5Bc3ltbWV0cmljXSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuQnJhdW5CbGFucXVldF06IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5CcmF1bkJsYW5xdWV0XSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuQ29zaW5lXTogYml0QXJyYXlEaXN0YW5jZU1ldHJpY3NNZXRob2RzW0JpdEFycmF5TWV0cmljc05hbWVzLkNvc2luZV0sXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkt1bGN6eW5za2ldOiBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHNbQml0QXJyYXlNZXRyaWNzTmFtZXMuS3VsY3p5bnNraV0sXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLk1jQ29ubmF1Z2hleV06IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5NY0Nvbm5hdWdoZXldLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5Sb2dvdEdvbGRiZXJnXTogYml0QXJyYXlEaXN0YW5jZU1ldHJpY3NNZXRob2RzW0JpdEFycmF5TWV0cmljc05hbWVzLlJvZ290R29sZGJlcmddLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5SdXNzZWxdOiBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHNbQml0QXJyYXlNZXRyaWNzTmFtZXMuUnVzc2VsXSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuU29rYWxdOiBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHNbQml0QXJyYXlNZXRyaWNzTmFtZXMuU29rYWxdLFxuICB9LFxuICBbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuTWFjcm9Nb2xlY3VsZV06IHsgLy8gb3B0aW9uYWwgYXJncyBuZWVkZWQgZm9yIG1hY3JvbW9sZWN1bGUgZnVuY3Rpb25zIHdoaWNoIGluaXRpYWxpemUgdGhlbVxuICAgIFtNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXMuSEFNTUlOR106IG1tRGlzdGFuY2VGdW5jdGlvbnNbTW1EaXN0YW5jZUZ1bmN0aW9uc05hbWVzLkhBTU1JTkddLFxuICAgIFtNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXMuTEVWRU5TSFRFSU5dOiBtbURpc3RhbmNlRnVuY3Rpb25zW01tRGlzdGFuY2VGdW5jdGlvbnNOYW1lcy5MRVZFTlNIVEVJTl0sXG4gICAgW01tRGlzdGFuY2VGdW5jdGlvbnNOYW1lcy5ORUVETEVNQU5OX1dVTlNDSF06IG1tRGlzdGFuY2VGdW5jdGlvbnNbTW1EaXN0YW5jZUZ1bmN0aW9uc05hbWVzLk5FRURMRU1BTk5fV1VOU0NIXSxcbiAgICBbTW1EaXN0YW5jZUZ1bmN0aW9uc05hbWVzLk1PTk9NRVJfQ0hFTUlDQUxfRElTVEFOQ0VdOlxuICAgICAgbW1EaXN0YW5jZUZ1bmN0aW9uc1tNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXMuTU9OT01FUl9DSEVNSUNBTF9ESVNUQU5DRV0sXG4gIH0sXG4gIFtEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cy5OdW1iZXJdOiB7XG4gICAgW051bWJlck1ldHJpY3NOYW1lcy5EaWZmZXJlbmNlXTogbnVtYmVyRGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tOdW1iZXJNZXRyaWNzTmFtZXMuRGlmZmVyZW5jZV0sXG4gIH0sXG4gIFtEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cy5JbnRBcnJheV06IHtcbiAgICBbSW50QXJyYXlNZXRyaWNzTmFtZXMuVGFuaW1vdG9JbnRBcnJheV06IGludEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tJbnRBcnJheU1ldHJpY3NOYW1lcy5UYW5pbW90b0ludEFycmF5XSxcbiAgfSxcbiAgW0Rpc3RhbmNlTWV0cmljc1N1YmplY3RzLk51bWJlckFycmF5XToge1xuICAgIFtOdW1iZXJBcnJheU1ldHJpY3NOYW1lcy5Db21tb25JdGVtc106IG51bWJlckFycmF5RGlzdGFuY2VNZXRyaWNzW051bWJlckFycmF5TWV0cmljc05hbWVzLkNvbW1vbkl0ZW1zXSxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBNZXRyaWNUb0RhdGFUeXBlOiBTdHJpbmdEaWN0aW9uYXJ5ID0gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljcylcbiAgLnJlZHVjZSgocmV0OiBTdHJpbmdEaWN0aW9uYXJ5LCBrZXkpID0+IHtcbiAgICBmb3IgKGNvbnN0IHZhbCBvZiBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzW2tleSBhcyBBdmFpbGFibGVEYXRhVHlwZXNdKSlcbiAgICAgIHJldFt2YWwgYXMgQXZhaWxhYmxlRGF0YVR5cGVzXSA9IGtleTtcblxuICAgIHJldHVybiByZXQ7XG4gIH0sIHt9KTtcblxuZXhwb3J0IHR5cGUgQXZhaWxhYmxlRGF0YVR5cGVzID0ga2V5b2YgdHlwZW9mIEF2YWlsYWJsZU1ldHJpY3M7XG5leHBvcnQgdHlwZSBWZWN0b3JNZXRyaWNzID0ga2V5b2YgdHlwZW9mIEF2YWlsYWJsZU1ldHJpY3NbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuVmVjdG9yXTtcbmV4cG9ydCB0eXBlIFN0cmluZ01ldHJpY3MgPSBrZXlvZiB0eXBlb2YgQXZhaWxhYmxlTWV0cmljc1tEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cy5TdHJpbmddO1xuZXhwb3J0IHR5cGUgQml0QXJyYXlNZXRyaWNzID0ga2V5b2YgdHlwZW9mIEF2YWlsYWJsZU1ldHJpY3NbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuQml0QXJyYXldO1xuZXhwb3J0IHR5cGUgTnVtYmVyTWV0cmljcyA9IGtleW9mIHR5cGVvZiBBdmFpbGFibGVNZXRyaWNzW0Rpc3RhbmNlTWV0cmljc1N1YmplY3RzLk51bWJlcl07XG5leHBvcnQgdHlwZSBJbnRBcnJheU1ldHJpY3MgPSBrZXlvZiB0eXBlb2YgQXZhaWxhYmxlTWV0cmljc1tEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cy5JbnRBcnJheV07XG5leHBvcnQgdHlwZSBOdW1iZXJBcnJheU1ldHJpY3MgPSBrZXlvZiB0eXBlb2YgQXZhaWxhYmxlTWV0cmljc1tEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cy5OdW1iZXJBcnJheV07XG5leHBvcnQgdHlwZSBLbm93bk1ldHJpY3MgPSBTdHJpbmdNZXRyaWNzIHwgQml0QXJyYXlNZXRyaWNzIHwgVmVjdG9yTWV0cmljcyB8XG4gIE1tRGlzdGFuY2VGdW5jdGlvbnNOYW1lcyB8IE51bWJlck1ldHJpY3NOYW1lcyB8IEludEFycmF5TWV0cmljc05hbWVzIHwgTnVtYmVyQXJyYXlNZXRyaWNzTmFtZXM7XG5cbmV4cG9ydCB0eXBlIFZhbGlkVHlwZXMgPVxuICB7IGRhdGE6IHN0cmluZ1tdLCBtZXRyaWM6IFN0cmluZ01ldHJpY3MgfCBNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXMgfSB8XG4gIHsgZGF0YTogVmVjdG9yW10sIG1ldHJpYzogVmVjdG9yTWV0cmljcyB9IHxcbiAgeyBkYXRhOiBCaXRBcnJheVtdLCBtZXRyaWM6IEJpdEFycmF5TWV0cmljcyB9IHxcbiAgeyBkYXRhOiBudW1iZXJbXSwgbWV0cmljOiBOdW1iZXJNZXRyaWNzTmFtZXMgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nTWV0cmljKG5hbWU6IEtub3duTWV0cmljcykge1xuICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnU3RyaW5nJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQml0QXJyYXlNZXRyaWMobmFtZTogS25vd25NZXRyaWNzKSB7XG4gIHJldHVybiBNZXRyaWNUb0RhdGFUeXBlW25hbWVdID09ICdCaXRBcnJheSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZlY3Rvck1ldHJpYyhuYW1lOiBLbm93bk1ldHJpY3MpIHtcbiAgcmV0dXJuIE1ldHJpY1RvRGF0YVR5cGVbbmFtZV0gPT0gJ1ZlY3Rvcic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc01hY3JvTW9sZWN1bGVNZXRyaWMobmFtZTogS25vd25NZXRyaWNzKSB7XG4gIHJldHVybiBNZXRyaWNUb0RhdGFUeXBlW25hbWVdID09IERpc3RhbmNlTWV0cmljc1N1YmplY3RzLk1hY3JvTW9sZWN1bGUudG9TdHJpbmcoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtZXJpY01ldHJpYyhuYW1lOiBLbm93bk1ldHJpY3MpIHtcbiAgcmV0dXJuIE1ldHJpY1RvRGF0YVR5cGVbbmFtZV0gPT0gRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuTnVtYmVyLnRvU3RyaW5nKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlckFycmF5TWV0cmljKG5hbWU6IEtub3duTWV0cmljcykge1xuICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSBEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cy5OdW1iZXJBcnJheS50b1N0cmluZygpO1xufVxuXG4vKiogTWFuaGF0dGFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHNlcXVlbmNlcyAobWF0Y2ggLSAwLCBtaXNtYXRjaCAtIDEpIG5vcm1hbGl6ZWQgZm9yIGxlbmd0aC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYW5oYXR0YW5EaXN0YW5jZShzMTogc3RyaW5nLCBzMjogc3RyaW5nKTogbnVtYmVyIHtcbiAgaWYgKHMxLmxlbmd0aCAhPT0gczIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIDE7XG4gIH0gZWxzZSB7XG4gICAgbGV0IGRpc3Q6IG51bWJlciA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzMS5sZW5ndGg7IGkrKylcbiAgICAgIGRpc3QgKz0gczFbaV0gPT0gczJbaV0gPyAwIDogMTtcbiAgICByZXR1cm4gZGlzdCAvIHMxLmxlbmd0aDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2F0ZWdvcmljYWxEaXN0YW5jZShzMTogc3RyaW5nLCBzMjogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIHMxID09PSBzMiA/IDAgOiAxO1xufVxuXG4vKiogVW5pZmllZCBjbGFzcyBpbXBsZW1lbnRpbmcgZGlmZmVyZW50IHN0cmluZyBtZWFzdXJlcy4gKi9cbmV4cG9ydCBjbGFzcyBNZWFzdXJlIHtcbiAgcHJvdGVjdGVkIG1ldGhvZDogS25vd25NZXRyaWNzO1xuICBwcm90ZWN0ZWQgZGF0YVR5cGU6IEF2YWlsYWJsZURhdGFUeXBlcztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBNZWFzdXJlIHdpdGggLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIE1ldGhvZCB0byBjYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzdHJpbmdzLlxuICAgKiBAbWVtYmVyb2YgTWVhc3VyZXJcbiAgICovXG4gIGNvbnN0cnVjdG9yKG1ldGhvZDogS25vd25NZXRyaWNzKSB7XG4gICAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gICAgdGhpcy5kYXRhVHlwZSA9IE1ldHJpY1RvRGF0YVR5cGVbbWV0aG9kXSBhcyBBdmFpbGFibGVEYXRhVHlwZXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBtZXRyaWMgbmVlZHMgYXJndW1lbnRzIHRvIGJlIGNhbGN1bGF0ZWQuXG4gICAqIEBwYXJhbSB7S25vd25NZXRyaWNzfSBtZXRob2QgTWV0cmljIHRvIGNoZWNrIGlmIGl0IG5lZWRzIGFyZ3VtZW50cy5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgbWV0cmljIG5lZWRzIGFyZ3VtZW50cy5cbiAgICogQG1lbWJlcm9mIE1lYXN1cmVcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNOZWVkc0FyZ3MobWV0aG9kOiBLbm93bk1ldHJpY3MpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNNYWNyb01vbGVjdWxlTWV0cmljKG1ldGhvZCkgfHwgaXNOdW1lcmljTWV0cmljKG1ldGhvZCkgfHwgaXNOdW1iZXJBcnJheU1ldHJpYyhtZXRob2QpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIGN1c3RvbSBzdHJpbmcgZGlzdGFuY2UgZnVuY3Rpb24gc3BlY2lmaWVkLlxuICAgKiBAcGFyYW0ge29wdHN9IG9wdHMgT3B0aW9ucyBmb3IgdGhlIG1lYXN1cmUuIHVzZWQgZm9yIG1hY3JvbW9sZWN1bGUgZGlzdGFuY2VzXG4gICAqIEByZXR1cm4ge0Rpc3RhbmNlTWV0cmljfSBDYWxsYmFjayBvZiB0aGUgbWVhc3VyZSBjaG9zZW4uXG4gICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgKi9cbiAgcHVibGljIGdldE1lYXN1cmUob3B0cz86IGFueSk6IERpc3RhbmNlTWV0cmljIHtcbiAgICBjb25zdCBkaWN0OiB7IFtrZXk6IHN0cmluZ106XG4gICAgICB7W2tleTI6IHN0cmluZ106IERpc3RhbmNlTWV0cmljIHwgKChvcHRzOiBhbnkpID0+IERpc3RhbmNlTWV0cmljKX1cbiAgICB9ID0gQXZhaWxhYmxlTWV0cmljcztcbiAgICBpZiAoIWRpY3QuaGFzT3duUHJvcGVydHkodGhpcy5kYXRhVHlwZSkgfHwgIWRpY3RbdGhpcy5kYXRhVHlwZV0uaGFzT3duUHJvcGVydHkodGhpcy5tZXRob2QpKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIG1lYXN1cmUgJHt0aGlzLm1ldGhvZH0gZm9yIGRhdGEgdHlwZSAke3RoaXMuZGF0YVR5cGV9YCk7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljTmVlZHNBcmdzKHRoaXMubWV0aG9kKSA/XG4gICAgICAoZGljdFt0aGlzLmRhdGFUeXBlXVt0aGlzLm1ldGhvZF0gYXMgKChvcHRzOiBhbnkpID0+IERpc3RhbmNlTWV0cmljKSkob3B0cykgOlxuICAgICAgZGljdFt0aGlzLmRhdGFUeXBlXVt0aGlzLm1ldGhvZF0gYXMgRGlzdGFuY2VNZXRyaWM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBjdXN0b20gc3RyaW5nIGRpc3RhbmNlIGJ5IHRoZSBnaXZlbiBkYXRhIHR5cGUuXG4gICAqIEBwYXJhbSB7QXZhaWxhYmxlRGF0YVR5cGVzfSBkYXRhVHlwZSBNZXRyaWMncyBkYXRhIHR5cGVcbiAgICogQHJldHVybiB7c3RyaW5nW119IE1ldHJpYyBuYW1lcyB3aGljaCBleHBlY3RzIHRoZSBnaXZlbiBkYXRhIHR5cGVcbiAgICogQG1lbWJlcm9mIE1lYXN1cmVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldE1ldHJpY0J5RGF0YVR5cGUoZGF0YVR5cGU6IEF2YWlsYWJsZURhdGFUeXBlcyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljc1tkYXRhVHlwZV0pO1xuICB9XG5cbiAgLyoqIFJldHVybnMgbWV0cmljIG5hbWVzIGF2YWlsYWJsZS5cbiAgICogQG1lbWJlcm9mIE1lYXN1cmVyXG4gICAqL1xuICBzdGF0aWMgZ2V0IGF2YWlsYWJsZU1lYXN1cmVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljcyk7XG4gIH1cbn1cbiJdfQ=="],"names":["DistanceAggregationMethods","vectorDistanceMetricsMethods","Euclidean","Manhattan","Cosine","stringDistanceMetricsMethods","Levenshtein","JaroWinkler","s1","s2","length","dist","i","Onehot","bitArrayDistanceMetricsMethods","Tanimoto","Dice","Asymmetric","BraunBlanquet","Kulczynski","McConnaughey","RogotGoldberg","Russel","Sokal","Hamming","intArrayDistanceMetricsMethods","TanimotoIntArray","numberDistanceMetricsMethods","Difference","numberArrayDistanceMetrics","CommonItems","AvailableMetrics","Vector","String","BitArray","MacroMolecule","HAMMING","LEVENSHTEIN","NEEDLEMANN_WUNSCH","MONOMER_CHEMICAL_DISTANCE","Number","IntArray","NumberArray","MetricToDataType","Object","keys","reduce","ret","key","val","isBitArrayMetric","name","Measure","constructor","method","this","dataType","metricNeedsArgs","toString","isNumberArrayMetric","getMeasure","opts","dict","hasOwnProperty","Error","getMetricByDataType","availableMeasures"],"sourceRoot":""}
package/dist/603.js DELETED
@@ -1,2 +0,0 @@
1
- var eda;(()=>{"use strict";var e,r,t={603:(e,r,t)=>{var n=t(6066);const a=e=>null==e;var o=t(2780),s=t(8774);onmessage=async e=>{const{values:r,startIdx:t,endIdx:l,fnNames:i,opts:c,threshold:p,weights:h,aggregationMethod:u}=e.data;try{const e=new Array(r[0].length).fill(null).map((()=>new Array(0))),f=new Array(r[0].length).fill(null).map((()=>new Array(0))),g=function(e,r){return e===n.G.MANHATTAN?e=>e.reduce(((e,t,n)=>e+t*r[n]),0):e=>{const t=e.reduce(((e,t,n)=>e+(t*r[n])**2),0);return Math.sqrt(t)}}(u,h),v=l-t;r.forEach(((e,t)=>{if((0,o.lW)(i[t]))for(let n=0;n<e.length;++n)a(e[n])||(r[t][n]=new s.A(r[t][n]._data,r[t][n]._length))}));let d=0;const w=new Array(i.length).fill(null).map(((e,r)=>new o.t$(i[r]).getMeasure(c[r]))),m=r[0].length-2-Math.floor(Math.sqrt(-8*t+4*r[0].length*(r[0].length-1)-7)/2-.5),y=t-r[0].length*m+Math.floor((m+1)*(m+2)/2);let b=m,x=y;for(;d<v;){const t=w.map(((e,t)=>a(r[t][b])||a(r[t][x])?1:e(r[t][b],r[t][x]))),n=1===t.length?t[0]:g(t);1-n>p&&(f[b].push(n),e[b].push(x),f[x].push(n),e[x].push(b)),d++,x++,x===r[0].length&&(b++,x=b+1)}postMessage({knnDistances:f,knnIndexes:e})}catch(e){postMessage({error:e})}}}},n={};function a(e){var r=n[e];if(void 0!==r)return r.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,a),o.exports}a.m=t,a.x=()=>{var e=a.O(void 0,[242,589],(()=>a(603)));return a.O(e)},e=[],a.O=(r,t,n,o)=>{if(!t){var s=1/0;for(p=0;p<e.length;p++){for(var[t,n,o]=e[p],l=!0,i=0;i<t.length;i++)(!1&o||s>=o)&&Object.keys(a.O).every((e=>a.O[e](t[i])))?t.splice(i--,1):(l=!1,o<s&&(s=o));if(l){e.splice(p--,1);var c=n();void 0!==c&&(r=c)}}return r}o=o||0;for(var p=e.length;p>0&&e[p-1][2]>o;p--)e[p]=e[p-1];e[p]=[t,n,o]},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,t)=>(a.f[t](e,r),r)),[])),a.u=e=>e+".js",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var r=a.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{var e={603:1};a.f.i=(r,t)=>{e[r]||importScripts(a.p+a.u(r))};var r=self.webpackChunkeda=self.webpackChunkeda||[],t=r.push.bind(r);r.push=r=>{var[n,o,s]=r;for(var l in o)a.o(o,l)&&(a.m[l]=o[l]);for(s&&s(a);n.length;)e[n.pop()]=1;t(r)}})(),r=a.x,a.x=()=>Promise.all([a.e(242),a.e(589)]).then(r);var o=a.x();eda=o})();
2
- //# sourceMappingURL=603.js.map