UNPKG

piling.js

Version:

A WebGL-based Library for Visual Piling/Stacking

13 lines (10 loc) 136 kB
// @flekschas/utils v0.29.0 Copyright 2021 Fritz Lekschas /** * Create a worker from a function * @param {function} fn - Function to be turned into a worker * @return {Worker} Worker function */ const createWorker = fn => new Worker(window.URL.createObjectURL(new Blob([`(${fn.toString()})()`], { type: 'text/javascript' }))); var umapScriptStr = "!function (t, r) {\n if (\"object\" == typeof exports && \"object\" == typeof module) module.exports = r();else if (\"function\" == typeof define && define.amd) define([], r);else {\n var e = r();\n\n for (var n in e) (\"object\" == typeof exports ? exports : t)[n] = e[n];\n }\n}(window, function () {\n return function (t) {\n var r = {};\n\n function e(n) {\n if (r[n]) return r[n].exports;\n var i = r[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return t[n].call(i.exports, i, i.exports, e), i.l = !0, i.exports;\n }\n\n return e.m = t, e.c = r, e.d = function (t, r, n) {\n e.o(t, r) || Object.defineProperty(t, r, {\n enumerable: !0,\n get: n\n });\n }, e.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, e.t = function (t, r) {\n if (1 & r && (t = e(t)), 8 & r) return t;\n if (4 & r && \"object\" == typeof t && t && t.__esModule) return t;\n var n = Object.create(null);\n if (e.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & r && \"string\" != typeof t) for (var i in t) e.d(n, i, function (r) {\n return t[r];\n }.bind(null, i));\n return n;\n }, e.n = function (t) {\n var r = t && t.__esModule ? function () {\n return t.default;\n } : function () {\n return t;\n };\n return e.d(r, \"a\", r), r;\n }, e.o = function (t, r) {\n return Object.prototype.hasOwnProperty.call(t, r);\n }, e.p = \"\", e(e.s = 5);\n }([function (t, r, e) {\n \"use strict\";\n\n const n = Object.prototype.toString;\n\n t.exports = function (t) {\n return n.call(t).endsWith(\"Array]\");\n };\n }, function (t, r, e) {\n \"use strict\";\n\n var n = this && this.__values || function (t) {\n var r = \"function\" == typeof Symbol && t[Symbol.iterator],\n e = 0;\n return r ? r.call(t) : {\n next: function () {\n return t && e >= t.length && (t = void 0), {\n value: t && t[e++],\n done: !t\n };\n }\n };\n };\n\n function i(t, r) {\n return Math.floor(r() * t);\n }\n\n function o(t) {\n for (var r = [], e = 0; e < t; e++) r.push(void 0);\n\n return r;\n }\n\n function s(t, r) {\n return o(t).map(function () {\n return r;\n });\n }\n\n function a(t) {\n return s(t, 0);\n }\n\n function h(t) {\n return t.reduce(function (t, r) {\n return t + r;\n });\n }\n\n Object.defineProperty(r, \"__esModule\", {\n value: !0\n }), r.tauRandInt = i, r.tauRand = function (t) {\n return t();\n }, r.norm = function (t) {\n var r,\n e,\n i = 0;\n\n try {\n for (var o = n(t), s = o.next(); !s.done; s = o.next()) {\n var a = s.value;\n i += Math.pow(a, 2);\n }\n } catch (t) {\n r = {\n error: t\n };\n } finally {\n try {\n s && !s.done && (e = o.return) && e.call(o);\n } finally {\n if (r) throw r.error;\n }\n }\n\n return Math.sqrt(i);\n }, r.empty = o, r.range = function (t) {\n return o(t).map(function (t, r) {\n return r;\n });\n }, r.filled = s, r.zeros = a, r.ones = function (t) {\n return s(t, 1);\n }, r.linear = function (t, r, e) {\n return o(e).map(function (n, i) {\n return t + i * ((r - t) / (e - 1));\n });\n }, r.sum = h, r.mean = function (t) {\n return h(t) / t.length;\n }, r.max = function (t) {\n for (var r = 0, e = 0; e < t.length; e++) r = t[e] > r ? t[e] : r;\n\n return r;\n }, r.max2d = function (t) {\n for (var r = 0, e = 0; e < t.length; e++) for (var n = 0; n < t[e].length; n++) r = t[e][n] > r ? t[e][n] : r;\n\n return r;\n }, r.rejectionSample = function (t, r, e) {\n for (var n = a(t), o = 0; o < t; o++) for (var s = !0; s;) {\n for (var h = i(r, e), u = !1, l = 0; l < o; l++) if (h === n[l]) {\n u = !0;\n break;\n }\n\n u || (s = !1), n[o] = h;\n }\n\n return n;\n }, r.reshape2d = function (t, r, e) {\n var n = [],\n i = 0;\n if (t.length !== r * e) throw new Error(\"Array dimensions must match input length.\");\n\n for (var o = 0; o < r; o++) {\n for (var s = [], a = 0; a < e; a++) s.push(t[i]), i += 1;\n\n n.push(s);\n }\n\n return n;\n };\n }, function (t, r, e) {\n \"use strict\";\n\n var n = this && this.__importStar || function (t) {\n if (t && t.__esModule) return t;\n var r = {};\n if (null != t) for (var e in t) Object.hasOwnProperty.call(t, e) && (r[e] = t[e]);\n return r.default = t, r;\n };\n\n Object.defineProperty(r, \"__esModule\", {\n value: !0\n });\n var i = n(e(1));\n\n function o(t, r) {\n var e = function (e) {\n return i.empty(t).map(function () {\n return i.filled(r, e);\n });\n },\n n = [];\n\n return n.push(e(-1)), n.push(e(1 / 0)), n.push(e(0)), n;\n }\n\n function s(t, r, e, n, i) {\n r = Math.floor(r);\n var o = t[0][r],\n s = t[1][r];\n t[2][r];\n if (e >= s[0]) return 0;\n\n for (var h = 0; h < o.length; h++) if (n === o[h]) return 0;\n\n return a(t, r, e, n, i);\n }\n\n function a(t, r, e, n, i) {\n var o = t[0][r],\n s = t[1][r],\n a = t[2][r];\n if (e >= s[0]) return 0;\n s[0] = e, o[0] = n, a[0] = i;\n\n for (var h = 0, u = 0;;) {\n var l = 2 * h + 1,\n c = l + 1,\n f = t[0][0].length;\n if (l >= f) break;\n\n if (c >= f) {\n if (!(s[l] > e)) break;\n u = l;\n } else if (s[l] >= s[c]) {\n if (!(e < s[l])) break;\n u = l;\n } else {\n if (!(e < s[c])) break;\n u = c;\n }\n\n s[h] = s[u], o[h] = o[u], a[h] = a[u], h = u;\n }\n\n return s[h] = e, o[h] = n, a[h] = i, 1;\n }\n\n function h(t, r, e, n) {\n for (; 2 * n + 1 < e;) {\n var i = 2 * n + 1,\n o = i + 1,\n s = n;\n if (t[s] < t[i] && (s = i), o < e && t[s] < t[o] && (s = o), s === n) break;\n var a = t[n];\n t[n] = t[s], t[s] = a;\n var h = r[n];\n r[n] = r[s], r[s] = h, n = s;\n }\n }\n\n r.makeHeap = o, r.rejectionSample = function (t, r, e) {\n for (var n = i.zeros(t), o = 0; o < t; o++) {\n for (var s = !0, a = 0; s;) {\n a = i.tauRandInt(r, e);\n\n for (var h = !1, u = 0; u < o; u++) if (a === n[u]) {\n h = !0;\n break;\n }\n\n h || (s = !1);\n }\n\n n[o] = a;\n }\n\n return n;\n }, r.heapPush = s, r.uncheckedHeapPush = a, r.buildCandidates = function (t, r, e, n, a) {\n for (var h = o(r, n), u = 0; u < r; u++) for (var l = 0; l < e; l++) if (!(t[0][u][l] < 0)) {\n var c = t[0][u][l],\n f = t[2][u][l],\n m = i.tauRand(a);\n s(h, u, m, c, f), s(h, c, m, u, f), t[2][u][l] = 0;\n }\n\n return h;\n }, r.deheapSort = function (t) {\n for (var r = t[0], e = t[1], n = 0; n < r.length; n++) for (var i = r[n], o = e[n], s = 0; s < i.length - 1; s++) {\n var a = i.length - s - 1,\n u = o.length - s - 1,\n l = i[0];\n i[0] = i[a], i[a] = l;\n var c = o[0];\n o[0] = o[u], o[u] = c, h(o, i, u, 0);\n }\n\n return {\n indices: r,\n weights: e\n };\n }, r.smallestFlagged = function (t, r) {\n for (var e = t[0][r], n = t[1][r], i = t[2][r], o = 1 / 0, s = -1, a = 0; a > e.length; a++) 1 === i[a] && n[a] < o && (o = n[a], s = a);\n\n return s >= 0 ? (i[s] = 0, Math.floor(e[s])) : -1;\n };\n }, function (t, r, e) {\n \"use strict\";\n\n var n,\n i = this && this.__read || function (t, r) {\n var e = \"function\" == typeof Symbol && t[Symbol.iterator];\n if (!e) return t;\n var n,\n i,\n o = e.call(t),\n s = [];\n\n try {\n for (; (void 0 === r || r-- > 0) && !(n = o.next()).done;) s.push(n.value);\n } catch (t) {\n i = {\n error: t\n };\n } finally {\n try {\n n && !n.done && (e = o.return) && e.call(o);\n } finally {\n if (i) throw i.error;\n }\n }\n\n return s;\n },\n o = this && this.__values || function (t) {\n var r = \"function\" == typeof Symbol && t[Symbol.iterator],\n e = 0;\n return r ? r.call(t) : {\n next: function () {\n return t && e >= t.length && (t = void 0), {\n value: t && t[e++],\n done: !t\n };\n }\n };\n },\n s = this && this.__importStar || function (t) {\n if (t && t.__esModule) return t;\n var r = {};\n if (null != t) for (var e in t) Object.hasOwnProperty.call(t, e) && (r[e] = t[e]);\n return r.default = t, r;\n };\n\n Object.defineProperty(r, \"__esModule\", {\n value: !0\n });\n\n var a = s(e(1)),\n h = function () {\n function t(t, r, e, n) {\n if (this.entries = new Map(), this.nRows = 0, this.nCols = 0, t.length !== r.length || t.length !== e.length) throw new Error(\"rows, cols and values arrays must all have the same length\");\n this.nRows = n[0], this.nCols = n[1];\n\n for (var i = 0; i < e.length; i++) {\n var o = t[i],\n s = r[i];\n this.checkDims(o, s);\n var a = this.makeKey(o, s);\n this.entries.set(a, {\n value: e[i],\n row: o,\n col: s\n });\n }\n }\n\n return t.prototype.makeKey = function (t, r) {\n return t + \":\" + r;\n }, t.prototype.checkDims = function (t, r) {\n if (!(t < this.nRows && r < this.nCols)) throw new Error(\"row and/or col specified outside of matrix dimensions\");\n }, t.prototype.set = function (t, r, e) {\n this.checkDims(t, r);\n var n = this.makeKey(t, r);\n this.entries.has(n) ? this.entries.get(n).value = e : this.entries.set(n, {\n value: e,\n row: t,\n col: r\n });\n }, t.prototype.get = function (t, r, e) {\n void 0 === e && (e = 0), this.checkDims(t, r);\n var n = this.makeKey(t, r);\n return this.entries.has(n) ? this.entries.get(n).value : e;\n }, t.prototype.getAll = function (t) {\n void 0 === t && (t = !0);\n var r = [];\n return this.entries.forEach(function (t) {\n r.push(t);\n }), t && r.sort(function (t, r) {\n return t.row === r.row ? t.col - r.col : t.row - r.row;\n }), r;\n }, t.prototype.getDims = function () {\n return [this.nRows, this.nCols];\n }, t.prototype.getRows = function () {\n return Array.from(this.entries, function (t) {\n var r = i(t, 2);\n r[0];\n return r[1].row;\n });\n }, t.prototype.getCols = function () {\n return Array.from(this.entries, function (t) {\n var r = i(t, 2);\n r[0];\n return r[1].col;\n });\n }, t.prototype.getValues = function () {\n return Array.from(this.entries, function (t) {\n var r = i(t, 2);\n r[0];\n return r[1].value;\n });\n }, t.prototype.forEach = function (t) {\n this.entries.forEach(function (r) {\n return t(r.value, r.row, r.col);\n });\n }, t.prototype.map = function (r) {\n var e = [];\n this.entries.forEach(function (t) {\n e.push(r(t.value, t.row, t.col));\n });\n var n = [this.nRows, this.nCols];\n return new t(this.getRows(), this.getCols(), e, n);\n }, t.prototype.toArray = function () {\n var t = this,\n r = a.empty(this.nRows).map(function () {\n return a.zeros(t.nCols);\n });\n return this.entries.forEach(function (t) {\n r[t.row][t.col] = t.value;\n }), r;\n }, t;\n }();\n\n r.SparseMatrix = h, r.transpose = function (t) {\n var r = [],\n e = [],\n n = [];\n t.forEach(function (t, i, o) {\n r.push(i), e.push(o), n.push(t);\n });\n var i = [t.nCols, t.nRows];\n return new h(e, r, n, i);\n }, r.identity = function (t) {\n for (var r = i(t, 1)[0], e = new h([], [], [], t), n = 0; n < r; n++) e.set(n, n, 1);\n\n return e;\n }, r.pairwiseMultiply = function (t, r) {\n return l(t, r, function (t, r) {\n return t * r;\n });\n }, r.add = function (t, r) {\n return l(t, r, function (t, r) {\n return t + r;\n });\n }, r.subtract = function (t, r) {\n return l(t, r, function (t, r) {\n return t - r;\n });\n }, r.maximum = function (t, r) {\n return l(t, r, function (t, r) {\n return t > r ? t : r;\n });\n }, r.multiplyScalar = function (t, r) {\n return t.map(function (t) {\n return t * r;\n });\n }, r.eliminateZeros = function (t) {\n for (var r = new Set(), e = t.getValues(), n = t.getRows(), i = t.getCols(), o = 0; o < e.length; o++) 0 === e[o] && r.add(o);\n\n var s = function (t, e) {\n return !r.has(e);\n },\n a = e.filter(s),\n u = n.filter(s),\n l = i.filter(s);\n\n return new h(u, l, a, t.getDims());\n }, r.normalize = function (t, r) {\n var e, n;\n void 0 === r && (r = \"l2\");\n var i = u[r],\n s = new Map();\n t.forEach(function (t, r, e) {\n var n = s.get(r) || [];\n n.push(e), s.set(r, n);\n });\n\n var a = new h([], [], [], t.getDims()),\n l = function (r) {\n for (var e = s.get(r).sort(), n = e.map(function (e) {\n return t.get(r, e);\n }), o = i(n), h = 0; h < o.length; h++) a.set(r, e[h], o[h]);\n };\n\n try {\n for (var c = o(s.keys()), f = c.next(); !f.done; f = c.next()) l(f.value);\n } catch (t) {\n e = {\n error: t\n };\n } finally {\n try {\n f && !f.done && (n = c.return) && n.call(c);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return a;\n };\n var u = ((n = {}).max = function (t) {\n for (var r = -1 / 0, e = 0; e < t.length; e++) r = t[e] > r ? t[e] : r;\n\n return t.map(function (t) {\n return t / r;\n });\n }, n.l1 = function (t) {\n for (var r = 0, e = 0; e < t.length; e++) r += t[e];\n\n return t.map(function (t) {\n return t / r;\n });\n }, n.l2 = function (t) {\n for (var r = 0, e = 0; e < t.length; e++) r += Math.pow(t[e], 2);\n\n return t.map(function (t) {\n return Math.sqrt(Math.pow(t, 2) / r);\n });\n }, n);\n\n function l(t, r, e) {\n for (var n = new Set(), i = [], o = [], s = [], a = function (n, a) {\n i.push(n), o.push(a);\n var h = e(t.get(n, a), r.get(n, a));\n s.push(h);\n }, u = t.getValues(), l = t.getRows(), c = t.getCols(), f = 0; f < u.length; f++) {\n var m = (d = l[f]) + \":\" + (w = c[f]);\n n.add(m), a(d, w);\n }\n\n var g = r.getValues(),\n p = r.getRows(),\n v = r.getCols();\n\n for (f = 0; f < g.length; f++) {\n var d, w;\n m = (d = p[f]) + \":\" + (w = v[f]);\n n.has(m) || a(d, w);\n }\n\n var y = [t.nRows, t.nCols];\n return new h(i, o, s, y);\n }\n\n r.getCSR = function (t) {\n var r = [];\n t.forEach(function (t, e, n) {\n r.push({\n value: t,\n row: e,\n col: n\n });\n }), r.sort(function (t, r) {\n return t.row === r.row ? t.col - r.col : t.row - r.row;\n });\n\n for (var e = [], n = [], i = [], o = -1, s = 0; s < r.length; s++) {\n var a = r[s],\n h = a.row,\n u = a.col,\n l = a.value;\n h !== o && (o = h, i.push(s)), e.push(u), n.push(l);\n }\n\n return {\n indices: e,\n values: n,\n indptr: i\n };\n };\n }, function (t, r, e) {\n \"use strict\";\n\n var n = this && this.__read || function (t, r) {\n var e = \"function\" == typeof Symbol && t[Symbol.iterator];\n if (!e) return t;\n var n,\n i,\n o = e.call(t),\n s = [];\n\n try {\n for (; (void 0 === r || r-- > 0) && !(n = o.next()).done;) s.push(n.value);\n } catch (t) {\n i = {\n error: t\n };\n } finally {\n try {\n n && !n.done && (e = o.return) && e.call(o);\n } finally {\n if (i) throw i.error;\n }\n }\n\n return s;\n },\n i = this && this.__spread || function () {\n for (var t = [], r = 0; r < arguments.length; r++) t = t.concat(n(arguments[r]));\n\n return t;\n },\n o = this && this.__values || function (t) {\n var r = \"function\" == typeof Symbol && t[Symbol.iterator],\n e = 0;\n return r ? r.call(t) : {\n next: function () {\n return t && e >= t.length && (t = void 0), {\n value: t && t[e++],\n done: !t\n };\n }\n };\n },\n s = this && this.__importStar || function (t) {\n if (t && t.__esModule) return t;\n var r = {};\n if (null != t) for (var e in t) Object.hasOwnProperty.call(t, e) && (r[e] = t[e]);\n return r.default = t, r;\n };\n\n Object.defineProperty(r, \"__esModule\", {\n value: !0\n });\n\n var a = s(e(1)),\n h = function () {\n return function (t, r, e, n) {\n this.hyperplanes = t, this.offsets = r, this.children = e, this.indices = n;\n };\n }();\n\n function u(t, r, e, n) {\n for (var i = r, o = 0; o < e.length; o++) i += t[o] * e[o];\n\n return 0 === i ? a.tauRandInt(2, n) : i > 0 ? 0 : 1;\n }\n\n r.FlatTree = h, r.makeForest = function (t, r, e, n) {\n var o = Math.max(10, r);\n return a.range(e).map(function (r, e) {\n return function (t, r, e, n) {\n void 0 === r && (r = 30);\n var i = a.range(t.length);\n return function t(r, e, n, i, o) {\n if (void 0 === n && (n = 30), e.length > n) {\n var s = function (t, r, e) {\n var n = t[0].length,\n i = a.tauRandInt(r.length, e),\n o = a.tauRandInt(r.length, e);\n o = (o += i === o ? 1 : 0) % r.length;\n\n for (var s = r[i], h = r[o], u = 0, l = a.zeros(n), c = 0; c < l.length; c++) l[c] = t[s][c] - t[h][c], u -= l[c] * (t[s][c] + t[h][c]) / 2;\n\n for (var f = 0, m = 0, g = a.zeros(r.length), c = 0; c < r.length; c++) {\n for (var p = u, v = 0; v < n; v++) p += l[v] * t[r[c]][v];\n\n 0 === p ? (g[c] = a.tauRandInt(2, e), 0 === g[c] ? f += 1 : m += 1) : p > 0 ? (g[c] = 0, f += 1) : (g[c] = 1, m += 1);\n }\n\n var d = a.zeros(f),\n w = a.zeros(m);\n\n for (var c in f = 0, m = 0, a.range(g.length)) 0 === g[c] ? (d[f] = r[c], f += 1) : (w[m] = r[c], m += 1);\n\n return {\n indicesLeft: d,\n indicesRight: w,\n hyperplane: l,\n offset: u\n };\n }(r, e, o),\n h = s.indicesLeft,\n u = s.indicesRight,\n l = s.hyperplane,\n c = s.offset,\n f = t(r, h, n, i + 1, o),\n m = t(r, u, n, i + 1, o),\n g = {\n leftChild: f,\n rightChild: m,\n isLeaf: !1,\n hyperplane: l,\n offset: c\n };\n\n return g;\n }\n\n var g = {\n indices: e,\n isLeaf: !0\n };\n return g;\n }(t, i, r, e, n);\n }(t, o, e, n);\n }).map(function (t) {\n return function (t, r) {\n var e = function t(r) {\n return r.isLeaf ? 1 : 1 + t(r.leftChild) + t(r.rightChild);\n }(t),\n n = function t(r) {\n return r.isLeaf ? 1 : t(r.leftChild) + t(r.rightChild);\n }(t),\n o = a.range(e).map(function () {\n return a.zeros(t.hyperplane ? t.hyperplane.length : 0);\n }),\n s = a.zeros(e),\n u = a.range(e).map(function () {\n return [-1, -1];\n }),\n l = a.range(n).map(function () {\n return a.range(r).map(function () {\n return -1;\n });\n });\n\n return function t(r, e, n, o, s, a, h) {\n var u;\n if (r.isLeaf) return o[a][0] = -h, (u = s[h]).splice.apply(u, i([0, r.indices.length], r.indices)), {\n nodeNum: a,\n leafNum: h += 1\n };\n e[a] = r.hyperplane, n[a] = r.offset, o[a][0] = a + 1;\n var l = a,\n c = t(r.leftChild, e, n, o, s, a + 1, h);\n return a = c.nodeNum, h = c.leafNum, o[l][1] = a + 1, {\n nodeNum: (c = t(r.rightChild, e, n, o, s, a + 1, h)).nodeNum,\n leafNum: c.leafNum\n };\n }(t, o, s, u, l, 0, 0), new h(o, s, u, l);\n }(t, o);\n });\n }, r.makeLeafArray = function (t) {\n var r, e;\n\n if (t.length > 0) {\n var n = [];\n\n try {\n for (var s = o(t), a = s.next(); !a.done; a = s.next()) {\n var h = a.value;\n n.push.apply(n, i(h.indices));\n }\n } catch (t) {\n r = {\n error: t\n };\n } finally {\n try {\n a && !a.done && (e = s.return) && e.call(s);\n } finally {\n if (r) throw r.error;\n }\n }\n\n return n;\n }\n\n return [[-1]];\n }, r.searchFlatTree = function (t, r, e) {\n for (var n = 0; r.children[n][0] > 0;) n = 0 === u(r.hyperplanes[n], r.offsets[n], t, e) ? r.children[n][0] : r.children[n][1];\n\n var i = -1 * r.children[n][0];\n return r.indices[i];\n };\n }, function (t, r, e) {\n \"use strict\";\n\n Object.defineProperty(r, \"__esModule\", {\n value: !0\n });\n var n = e(6);\n r.UMAP = n.UMAP;\n }, function (t, r, e) {\n \"use strict\";\n\n var n = this && this.__awaiter || function (t, r, e, n) {\n return new (e || (e = Promise))(function (i, o) {\n function s(t) {\n try {\n h(n.next(t));\n } catch (t) {\n o(t);\n }\n }\n\n function a(t) {\n try {\n h(n.throw(t));\n } catch (t) {\n o(t);\n }\n }\n\n function h(t) {\n t.done ? i(t.value) : new e(function (r) {\n r(t.value);\n }).then(s, a);\n }\n\n h((n = n.apply(t, r || [])).next());\n });\n },\n i = this && this.__generator || function (t, r) {\n var e,\n n,\n i,\n o,\n s = {\n label: 0,\n sent: function () {\n if (1 & i[0]) throw i[1];\n return i[1];\n },\n trys: [],\n ops: []\n };\n return o = {\n next: a(0),\n throw: a(1),\n return: a(2)\n }, \"function\" == typeof Symbol && (o[Symbol.iterator] = function () {\n return this;\n }), o;\n\n function a(o) {\n return function (a) {\n return function (o) {\n if (e) throw new TypeError(\"Generator is already executing.\");\n\n for (; s;) try {\n if (e = 1, n && (i = 2 & o[0] ? n.return : o[0] ? n.throw || ((i = n.return) && i.call(n), 0) : n.next) && !(i = i.call(n, o[1])).done) return i;\n\n switch (n = 0, i && (o = [2 & o[0], i.value]), o[0]) {\n case 0:\n case 1:\n i = o;\n break;\n\n case 4:\n return s.label++, {\n value: o[1],\n done: !1\n };\n\n case 5:\n s.label++, n = o[1], o = [0];\n continue;\n\n case 7:\n o = s.ops.pop(), s.trys.pop();\n continue;\n\n default:\n if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {\n s = 0;\n continue;\n }\n\n if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {\n s.label = o[1];\n break;\n }\n\n if (6 === o[0] && s.label < i[1]) {\n s.label = i[1], i = o;\n break;\n }\n\n if (i && s.label < i[2]) {\n s.label = i[2], s.ops.push(o);\n break;\n }\n\n i[2] && s.ops.pop(), s.trys.pop();\n continue;\n }\n\n o = r.call(t, s);\n } catch (t) {\n o = [6, t], n = 0;\n } finally {\n e = i = 0;\n }\n\n if (5 & o[0]) throw o[1];\n return {\n value: o[0] ? o[1] : void 0,\n done: !0\n };\n }([o, a]);\n };\n }\n },\n o = this && this.__read || function (t, r) {\n var e = \"function\" == typeof Symbol && t[Symbol.iterator];\n if (!e) return t;\n var n,\n i,\n o = e.call(t),\n s = [];\n\n try {\n for (; (void 0 === r || r-- > 0) && !(n = o.next()).done;) s.push(n.value);\n } catch (t) {\n i = {\n error: t\n };\n } finally {\n try {\n n && !n.done && (e = o.return) && e.call(o);\n } finally {\n if (i) throw i.error;\n }\n }\n\n return s;\n },\n s = this && this.__spread || function () {\n for (var t = [], r = 0; r < arguments.length; r++) t = t.concat(o(arguments[r]));\n\n return t;\n },\n a = this && this.__importStar || function (t) {\n if (t && t.__esModule) return t;\n var r = {};\n if (null != t) for (var e in t) Object.hasOwnProperty.call(t, e) && (r[e] = t[e]);\n return r.default = t, r;\n },\n h = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(r, \"__esModule\", {\n value: !0\n });\n\n var u = a(e(2)),\n l = a(e(3)),\n c = a(e(7)),\n f = a(e(4)),\n m = a(e(1)),\n g = h(e(8)),\n p = function () {\n function t(t) {\n void 0 === t && (t = {});\n var r = this;\n this.learningRate = 1, this.localConnectivity = 1, this.minDist = .1, this.nComponents = 2, this.nEpochs = 0, this.nNeighbors = 15, this.negativeSampleRate = 5, this.random = Math.random, this.repulsionStrength = 1, this.setOpMixRatio = 1, this.spread = 1, this.transformQueueSize = 4, this.targetMetric = \"categorical\", this.targetWeight = .5, this.targetNNeighbors = this.nNeighbors, this.distanceFn = v, this.isInitialized = !1, this.rpForest = [], this.embedding = [], this.optimizationState = new d();\n\n var e = function (e) {\n void 0 !== t[e] && (r[e] = t[e]);\n };\n\n e(\"distanceFn\"), e(\"learningRate\"), e(\"localConnectivity\"), e(\"minDist\"), e(\"nComponents\"), e(\"nEpochs\"), e(\"nNeighbors\"), e(\"negativeSampleRate\"), e(\"random\"), e(\"repulsionStrength\"), e(\"setOpMixRatio\"), e(\"spread\"), e(\"transformQueueSize\");\n }\n\n return t.prototype.fit = function (t) {\n return this.initializeFit(t), this.optimizeLayout(), this.embedding;\n }, t.prototype.fitAsync = function (t, r) {\n return void 0 === r && (r = function () {\n return !0;\n }), n(this, void 0, void 0, function () {\n return i(this, function (e) {\n switch (e.label) {\n case 0:\n return this.initializeFit(t), [4, this.optimizeLayoutAsync(r)];\n\n case 1:\n return e.sent(), [2, this.embedding];\n }\n });\n });\n }, t.prototype.setSupervisedProjection = function (t, r) {\n void 0 === r && (r = {}), this.Y = t, this.targetMetric = r.targetMetric || this.targetMetric, this.targetWeight = r.targetWeight || this.targetWeight, this.targetNNeighbors = r.targetNNeighbors || this.targetNNeighbors;\n }, t.prototype.setPrecomputedKNN = function (t, r) {\n this.knnIndices = t, this.knnDistances = r;\n }, t.prototype.initializeFit = function (t) {\n if (t.length <= this.nNeighbors) throw new Error(\"Not enough data points (\" + t.length + \") to create nNeighbors: \" + this.nNeighbors + \". Add more data points or adjust the configuration.\");\n if (this.X === t && this.isInitialized) return this.getNEpochs();\n\n if (this.X = t, !this.knnIndices && !this.knnDistances) {\n var r = this.nearestNeighbors(t);\n this.knnIndices = r.knnIndices, this.knnDistances = r.knnDistances;\n }\n\n this.graph = this.fuzzySimplicialSet(t, this.nNeighbors, this.setOpMixRatio), this.makeSearchFns(), this.searchGraph = this.makeSearchGraph(t), this.processGraphForSupervisedProjection();\n var e = this.initializeSimplicialSetEmbedding(),\n n = e.head,\n i = e.tail,\n o = e.epochsPerSample;\n return this.optimizationState.head = n, this.optimizationState.tail = i, this.optimizationState.epochsPerSample = o, this.initializeOptimization(), this.prepareForOptimizationLoop(), this.isInitialized = !0, this.getNEpochs();\n }, t.prototype.makeSearchFns = function () {\n var t = c.makeInitializations(this.distanceFn),\n r = t.initFromTree,\n e = t.initFromRandom;\n this.initFromTree = r, this.initFromRandom = e, this.search = c.makeInitializedNNSearch(this.distanceFn);\n }, t.prototype.makeSearchGraph = function (t) {\n for (var r = this.knnIndices, e = this.knnDistances, n = [t.length, t.length], i = new l.SparseMatrix([], [], [], n), o = 0; o < r.length; o++) for (var s = r[o], a = e[o], h = 0; h < s.length; h++) {\n var u = s[h],\n c = a[h];\n c > 0 && i.set(o, u, c);\n }\n\n var f = l.transpose(i);\n return l.maximum(i, f);\n }, t.prototype.transform = function (t) {\n var r = this,\n e = this.X;\n if (void 0 === e || 0 === e.length) throw new Error(\"No data has been fit.\");\n var n = Math.floor(this.nNeighbors * this.transformQueueSize);\n n = Math.min(e.length, n);\n var i = c.initializeSearch(this.rpForest, e, t, n, this.initFromRandom, this.initFromTree, this.random),\n o = this.search(e, this.searchGraph, i, t),\n s = u.deheapSort(o),\n a = s.indices,\n h = s.weights;\n a = a.map(function (t) {\n return t.slice(0, r.nNeighbors);\n }), h = h.map(function (t) {\n return t.slice(0, r.nNeighbors);\n });\n var f = Math.max(0, this.localConnectivity - 1),\n g = this.smoothKNNDistance(h, this.nNeighbors, f),\n p = g.sigmas,\n v = g.rhos,\n d = this.computeMembershipStrengths(a, h, p, v),\n w = d.rows,\n y = d.cols,\n b = d.vals,\n M = [t.length, e.length],\n x = new l.SparseMatrix(w, y, b, M),\n E = l.normalize(x, \"l1\"),\n R = l.getCSR(E),\n k = t.length,\n z = S(m.reshape2d(R.indices, k, this.nNeighbors), m.reshape2d(R.values, k, this.nNeighbors), this.embedding),\n N = this.nEpochs ? this.nEpochs / 3 : x.nRows <= 1e4 ? 100 : 30,\n A = x.getValues().reduce(function (t, r) {\n return r > t ? r : t;\n }, 0);\n x = x.map(function (t) {\n return t < A / N ? 0 : t;\n }), x = l.eliminateZeros(x);\n\n var V = this.makeEpochsPerSample(x.getValues(), N),\n C = x.getRows(),\n _ = x.getCols();\n\n return this.assignOptimizationStateParameters({\n headEmbedding: z,\n tailEmbedding: this.embedding,\n head: C,\n tail: _,\n currentEpoch: 0,\n nEpochs: N,\n nVertices: x.getDims()[1],\n epochsPerSample: V\n }), this.prepareForOptimizationLoop(), this.optimizeLayout();\n }, t.prototype.processGraphForSupervisedProjection = function () {\n var t = this.Y,\n r = this.X;\n\n if (t) {\n if (t.length !== r.length) throw new Error(\"Length of X and y must be equal\");\n\n if (\"categorical\" === this.targetMetric) {\n var e = this.targetWeight < 1 ? 1 / (1 - this.targetWeight) * 2.5 : 1e12;\n this.graph = this.categoricalSimplicialSetIntersection(this.graph, t, e);\n }\n }\n }, t.prototype.step = function () {\n var t = this.optimizationState.currentEpoch;\n return t < this.getNEpochs() && this.optimizeLayoutStep(t), this.optimizationState.currentEpoch;\n }, t.prototype.getEmbedding = function () {\n return this.embedding;\n }, t.prototype.nearestNeighbors = function (t) {\n var r,\n e = this.distanceFn,\n n = this.nNeighbors,\n i = c.makeNNDescent(e, this.random),\n o = 5 + Math.floor(.5 === (r = Math.pow(t.length, .5) / 20) ? 0 : Math.round(r)),\n s = Math.max(5, Math.floor(Math.round(function (t) {\n return Math.log(t) / Math.log(2);\n }(t.length))));\n this.rpForest = f.makeForest(t, n, o, this.random);\n var a = i(t, f.makeLeafArray(this.rpForest), n, s);\n return {\n knnIndices: a.indices,\n knnDistances: a.weights\n };\n }, t.prototype.fuzzySimplicialSet = function (t, r, e) {\n void 0 === e && (e = 1);\n var n = this.knnIndices,\n i = void 0 === n ? [] : n,\n o = this.knnDistances,\n s = void 0 === o ? [] : o,\n a = this.localConnectivity,\n h = this.smoothKNNDistance(s, r, a),\n u = h.sigmas,\n c = h.rhos,\n f = this.computeMembershipStrengths(i, s, u, c),\n m = f.rows,\n g = f.cols,\n p = f.vals,\n v = [t.length, t.length],\n d = new l.SparseMatrix(m, g, p, v),\n w = l.transpose(d),\n y = l.pairwiseMultiply(d, w),\n b = l.subtract(l.add(d, w), y),\n M = l.multiplyScalar(b, e),\n x = l.multiplyScalar(y, 1 - e);\n return l.add(M, x);\n }, t.prototype.categoricalSimplicialSetIntersection = function (t, r, e, n) {\n void 0 === n && (n = 1);\n var i = M(t, r, n, e);\n return x(i = l.eliminateZeros(i));\n }, t.prototype.smoothKNNDistance = function (t, r, e, n, i) {\n void 0 === e && (e = 1), void 0 === n && (n = 64), void 0 === i && (i = 1);\n\n for (var o = Math.log(r) / Math.log(2) * i, s = m.zeros(t.length), a = m.zeros(t.length), h = 0; h < t.length; h++) {\n var u = 0,\n l = 1 / 0,\n c = 1,\n f = t[h],\n g = f.filter(function (t) {\n return t > 0;\n });\n\n if (g.length >= e) {\n var p = Math.floor(e),\n v = e - p;\n p > 0 ? (s[h] = g[p - 1], v > 1e-5 && (s[h] += v * (g[p] - g[p - 1]))) : s[h] = v * g[0];\n } else g.length > 0 && (s[h] = m.max(g));\n\n for (var d = 0; d < n; d++) {\n for (var w = 0, y = 1; y < t[h].length; y++) {\n var b = t[h][y] - s[h];\n w += b > 0 ? Math.exp(-b / c) : 1;\n }\n\n if (Math.abs(w - o) < 1e-5) break;\n w > o ? c = (u + (l = c)) / 2 : (u = c, l === 1 / 0 ? c *= 2 : c = (u + l) / 2);\n }\n\n if (a[h] = c, s[h] > 0) {\n var M = m.mean(f);\n a[h] < .001 * M && (a[h] = .001 * M);\n } else {\n var x = m.mean(t.map(m.mean));\n a[h] < .001 * x && (a[h] = .001 * x);\n }\n }\n\n return {\n sigmas: a,\n rhos: s\n };\n }, t.prototype.computeMembershipStrengths = function (t, r, e, n) {\n for (var i = t.length, o = t[0].length, s = m.zeros(i * o), a = m.zeros(i * o), h = m.zeros(i * o), u = 0; u < i; u++) for (var l = 0; l < o; l++) {\n var c = 0;\n -1 !== t[u][l] && (c = t[u][l] === u ? 0 : r[u][l] - n[u] <= 0 ? 1 : Math.exp(-(r[u][l] - n[u]) / e[u]), s[u * o + l] = u, a[u * o + l] = t[u][l], h[u * o + l] = c);\n }\n\n return {\n rows: s,\n cols: a,\n vals: h\n };\n }, t.prototype.initializeSimplicialSetEmbedding = function () {\n for (var t = this, r = this.getNEpochs(), e = this.nComponents, n = this.graph.getValues(), i = 0, o = 0; o < n.length; o++) {\n var s = n[o];\n i < n[o] && (i = s);\n }\n\n var a = this.graph.map(function (t) {\n return t < i / r ? 0 : t;\n });\n this.embedding = m.zeros(a.nRows).map(function () {\n return m.zeros(e).map(function () {\n return 20 * m.tauRand(t.random) - 10;\n });\n });\n var h = [],\n u = [],\n l = [],\n c = a.getAll();\n\n for (o = 0; o < c.length; o++) {\n var f = c[o];\n f.value && (h.push(f.value), l.push(f.row), u.push(f.col));\n }\n\n return {\n head: u,\n tail: l,\n epochsPerSample: this.makeEpochsPerSample(h, r)\n };\n }, t.prototype.makeEpochsPerSample = function (t, r) {\n var e = m.filled(t.length, -1),\n n = m.max(t),\n i = t.map(function (t) {\n return t / n * r;\n });\n return i.forEach(function (t, n) {\n t > 0 && (e[n] = r / i[n]);\n }), e;\n }, t.prototype.assignOptimizationStateParameters = function (t) {\n Object.assign(this.optimizationState, t);\n }, t.prototype.prepareForOptimizationLoop = function () {\n var t = this.repulsionStrength,\n r = this.learningRate,\n e = this.negativeSampleRate,\n n = this.optimizationState,\n i = n.epochsPerSample,\n o = n.headEmbedding,\n a = n.tailEmbedding,\n h = o[0].length,\n u = o.length === a.length,\n l = i.map(function (t) {\n return t / e;\n }),\n c = s(l),\n f = s(i);\n this.assignOptimizationStateParameters({\n epochOfNextSample: f,\n epochOfNextNegativeSample: c,\n epochsPerNegativeSample: l,\n moveOther: u,\n initialAlpha: r,\n alpha: r,\n gamma: t,\n dim: h\n });\n }, t.prototype.initializeOptimization = function () {\n var t = this.embedding,\n r = this.embedding,\n e = this.optimizationState,\n n = e.head,\n i = e.tail,\n o = e.epochsPerSample,\n s = this.getNEpochs(),\n a = this.graph.nCols,\n h = b(this.spread, this.minDist),\n u = h.a,\n l = h.b;\n this.assignOptimizationStateParameters({\n headEmbedding: t,\n tailEmbedding: r,\n head: n,\n tail: i,\n epochsPerSample: o,\n a: u,\n b: l,\n nEpochs: s,\n nVertices: a\n });\n }, t.prototype.optimizeLayoutStep = function (t) {\n for (var r = this.optimizationState, e = r.head, n = r.tail, i = r.headEmbedding, o = r.tailEmbedding, s = r.epochsPerSample, a = r.epochOfNextSample, h = r.epochOfNextNegativeSample, u = r.epochsPerNegativeSample, l = r.moveOther, c = r.initialAlpha, f = r.alpha, g = r.gamma, p = r.a, v = r.b, d = r.dim, b = r.nEpochs, M = r.nVertices, x = 0; x < s.length; x++) if (!(a[x] > t)) {\n var S = e[x],\n E = n[x],\n R = i[S],\n k = o[E],\n z = y(R, k),\n N = 0;\n z > 0 && (N = -2 * p * v * Math.pow(z, v - 1), N /= p * Math.pow(z, v) + 1);\n\n for (var A = 0; A < d; A++) {\n var V = w(N * (R[A] - k[A]), 4);\n R[A] += V * f, l && (k[A] += -V * f);\n }\n\n a[x] += s[x];\n\n for (var C = Math.floor((t - h[x]) / u[x]), _ = 0; _ < C; _++) {\n var P = m.tauRandInt(M, this.random),\n j = o[P],\n I = y(R, j),\n O = 0;\n if (I > 0) O = 2 * g * v, O /= (.001 + I) * (p * Math.pow(I, v) + 1);else if (S === P) continue;\n\n for (A = 0; A < d; A++) {\n V = 4;\n O > 0 && (V = w(O * (R[A] - j[A]), 4)), R[A] += V * f;\n }\n }\n\n h[x] += C * u[x];\n }\n\n return r.alpha = c * (1 - t / b), r.currentEpoch += 1, i;\n }, t.prototype.optimizeLayoutAsync = function (t) {\n var r = this;\n return void 0 === t && (t = function () {\n return !0;\n }), new Promise(function (e, o) {\n var s = function () {\n return n(r, void 0, void 0, function () {\n var r, n, a, h, u, l;\n return i(this, function (i) {\n try {\n if (r = this.optimizationState, n = r.nEpochs, a = r.currentEpoch, this.embedding = this.optimizeLayoutStep(a), h = this.optimizationState.currentEpoch, u = !1 === t(h), l = h === n, u || l) return [2, e(l)];\n setTimeout(function () {\n return s();\n }, 0);\n } catch (t) {\n o(t);\n }\n\n return [2];\n });\n });\n };\n\n setTimeout(function () {\n return s();\n }, 0);\n });\n }, t.prototype.optimizeLayout = function (t) {\n void 0 === t && (t = function () {\n return !0;\n });\n\n for (var r = !1, e = []; !r;) {\n var n = this.optimizationState,\n i = n.nEpochs,\n o = n.currentEpoch;\n e = this.optimizeLayoutStep(o);\n var s = this.optimizationState.currentEpoch,\n a = !1 === t(s);\n r = s === i || a;\n }\n\n return e;\n }, t.prototype.getNEpochs = function () {\n var t = this.graph;\n if (this.nEpochs > 0) return this.nEpochs;\n var r = t.nRows;\n return r <= 2500 ? 500 : r <= 5e3 ? 400 : r <= 7500 ? 300 : 200;\n }, t;\n }();\n\n function v(t, r) {\n for (var e = 0, n = 0; n < t.length; n++) e += Math.pow(t[n] - r[n], 2);\n\n return Math.sqrt(e);\n }\n\n r.UMAP = p, r.euclidean = v, r.cosine = function (t, r) {\n for (var e = 0, n = 0, i = 0, o = 0; o < t.length; o++) e += t[o] * r[o], n += Math.pow(t[o], 2), i += Math.pow(r[o], 2);\n\n return 0 === n && 0 === i ? 0 : 0 === n || 0 === i ? 1 : 1 - e / Math.sqrt(n * i);\n };\n\n var d = function () {\n return function () {\n this.currentEpoch = 0, this.headEmbedding = [], this.tailEmbedding = [], this.head = [], this.tail = [], this.epochsPerSample = [], this.epochOfNextSample = [], this.epochOfNextNegativeSample = [], this.epochsPerNegativeSample = [], this.moveOther = !0, this.initialAlpha = 1, this.alpha = 1, this.gamma = 1, this.a = 1.5769434603113077, this.b = .8950608779109733, this.dim = 2, this.nEpochs = 500, this.nVertices = 0;\n };\n }();\n\n function w(t, r) {\n return t > r ? r : t < -r ? -r : t;\n }\n\n function y(t, r) {\n for (var e = 0, n = 0; n < t.length; n++) e += Math.pow(t[n] - r[n], 2);\n\n return e;\n }\n\n function b(t, r) {\n var e = m.linear(0, 3 * t, 300).map(function (t) {\n return t < r ? 1 : t;\n }),\n n = m.zeros(e.length).map(function (n, i) {\n return e[i] >= r ? Math.exp(-(e[i] - r) / t) : n;\n }),\n i = {\n x: e,\n y: n\n },\n s = {\n damping: 1.5,\n initialValues: [.5, .5],\n gradientDifference: .1,\n maxIterations: 100,\n errorTolerance: .01\n },\n a = g.default(i, function (t) {\n var r = o(t, 2),\n e = r[0],\n n = r[1];\n return function (t) {\n return 1 / (1 + e * Math.pow(t, 2 * n));\n };\n }, s).parameterValues,\n h = o(a, 2);\n return {\n a: h[0],\n b: h[1]\n };\n }\n\n function M(t, r, e, n) {\n return void 0 === e && (e = 1), void 0 === n && (n = 5), t.map(function (t, i, o) {\n return -1 === r[i] || -1 === r[o] ? t * Math.exp(-e) : r[i] !== r[o] ? t * Math.exp(-n) : t;\n });\n }\n\n function x(t) {\n t = l.normalize(t, \"max\");\n var r = l.transpose(t),\n e = l.pairwiseMultiply(r, t);\n return t = l.add(t, l.subtract(r, e)), l.eliminateZeros(t);\n }\n\n function S(t, r, e) {\n for (var n = m.zeros(t.length).map(function (t) {\n return m.zeros(e[0].length);\n }), i = 0; i < t.length; i++) for (var o = 0; o < t[0].length; o++) for (var s = 0; s < e[0].length; s++) {\n var a = t[i][o];\n n[i][s] += r[i][o] * e[a][s];\n }\n\n return n;\n }\n\n r.findABParams = b, r.fastIntersection = M, r.resetLocalConnectivity = x, r.initTransform = S;\n }, function (t, r, e) {\n \"use strict\";\n\n var n = this && this.__values || function (t) {\n var r = \"function\" == typeof Symbol && t[Symbol.iterator],\n e = 0;\n return r ? r.call(t) : {\n next: function () {\n return t && e >= t.length && (t = void 0), {\n value: t && t[e++],\n done: !t\n };\n }\n };\n },\n i = this && this.__importStar || function (t) {\n if (t && t.__esModule) return t;\n var r = {};\n if (null != t) for (var e in t) Object.hasOwnProperty.call(t, e) && (r[e] = t[e]);\n return r.default = t, r;\n };\n\n Object.defineProperty(r, \"__esModule\", {\n value: !0\n });\n var o = i(e(2)),\n s = i(e(3)),\n a = i(e(4)),\n h = i(e(1));\n r.makeNNDescent = function (t, r) {\n return function (e, n, i, s, a, u, l, c) {\n void 0 === s && (s = 10), void 0 === a && (a = 50), void 0 === u && (u = .001), void 0 === l && (l = .5), void 0 === c && (c = !0);\n\n for (var f = e.length, m = o.makeHeap(e.length, i), g = 0; g < e.length; g++) for (var p = o.rejectionSample(i, e.length, r), v = 0; v < p.length; v++) {\n var d = t(e[g], e[p[v]]);\n o.heapPush(m, g, d, p[v], 1), o.heapPush(m, p[v], d, g, 1);\n }\n\n if (c) for (var w = 0; w < n.length; w++) for (g = 0; g < n[w].length && !(n[w][g] < 0); g++) for (v = g + 1; v < n[w].length && !(n[w][v] < 0); v++) d = t(e[n[w][g]], e[n[w][v]]), o.heapPush(m, n[w][g], d, n[w][v], 1), o.heapPush(m, n[w][v], d, n[w][g], 1);\n\n for (w = 0; w < s; w++) {\n var y = o.buildCandidates(m, f, i, a, r),\n b = 0;\n\n for (g = 0; g < f; g++) for (v = 0; v < a; v++) {\n var M = Math.floor(y[0][g][v]);\n if (!(M < 0 || h.tauRand(r) < l)) for (var x = 0; x < a; x++) {\n var S = Math.floor(y[0][g][x]),\n E = y[2][g][v],\n R = y[2][g][x];\n S < 0 || !E && !R || (d = t(e[M], e[S]), b += o.heapPush(m, M, d, S, 1), b += o.heapPush(m, S, d, M, 1));\n }\n }\n\n if (b <= u * i * e.length) break;\n }\n\n return o.deheapSort(m);\n };\n }, r.makeInitializations = function (t) {\n return {\n initFromRandom: function (r, e, n, i, s) {\n for (var a = 0; a < n.length; a++) for (var u = h.rejectionSample(r, e.length, s), l = 0; l < u.length; l++) if (!(u[l] < 0)) {\n var c = t(e[u[l]], n[a]);\n o.heapPush(i, a, c, u[l], 1);\n }\n },\n initFromTree: function (r, e, n, i, s) {\n for (var h = 0; h < n.length; h++) for