UNPKG

lakutata

Version:

An IoC-based universal application framework.

2,140 lines (2,016 loc) 43.4 kB
function r(r) { var t; var n; var e = r.length; if (e === 1) { t = 0; n = r[0][1]; } else { var a = 0; var i = 0; var o = 0; var u = 0; var f; var h; var v; for (var l = 0; l < e; l++) { f = r[l]; h = f[0]; v = f[1]; a += h; i += v; o += h * h; u += h * v; } t = (e * u - a * i) / (e * o - a * a); n = i / e - t * a / e; } return { m: t, b: n }; } function t(r) { return function(t) { return r.b + r.m * t; }; } function n(r) { if (r.length === 0) { return 0; } var t = r[0]; var n = 0; var e; if (typeof t !== "number") { return Number.NaN; } for (var a = 1; a < r.length; a++) { if (typeof r[a] !== "number") { return Number.NaN; } e = t + r[a]; if (Math.abs(t) >= Math.abs(r[a])) { n += t - e + r[a]; } else { n += r[a] - e + t; } t = e; } return t + n; } function e(r) { if (r.length === 0) { throw new Error("mean requires at least one data point"); } return n(r) / r.length; } function a(r, t) { var n = e(r); var a = 0; var i; var o; if (t === 2) { for (o = 0; o < r.length; o++) { i = r[o] - n; a += i * i; } } else { for (o = 0; o < r.length; o++) { a += Math.pow(r[o] - n, t); } } return a; } function i(r) { if (r.length === 0) { throw new Error("variance requires at least one data point"); } return a(r, 2) / r.length; } function o(r) { if (r.length === 1) { return 0; } var t = i(r); return Math.sqrt(t); } function u(r, t) { if (r.length < 2) { return 1; } var n = 0; for (var e = 0; e < r.length; e++) { n += r[e][1]; } var a = n / r.length; var i = 0; for (var o = 0; o < r.length; o++) { i += Math.pow(a - r[o][1], 2); } var u = 0; for (var f = 0; f < r.length; f++) { u += Math.pow(r[f][1] - t(r[f][0]), 2); } return 1 - u / i; } function f(r) { if (r.length === 0) { throw new Error("mode requires at least one data point"); } if (r.length === 1) { return r[0]; } var t = r[0]; var n = Number.NaN; var e = 0; var a = 1; for (var i = 1; i < r.length + 1; i++) { if (r[i] !== t) { if (a > e) { e = a; n = t; } a = 1; t = r[i]; } else { a++; } } return n; } function h(r) { return r.slice().sort((function(r, t) { return r - t; })); } function v(r) { return f(h(r)); } function l(r) { var t = new Map; var n; var e = 0; for (var a = 0; a < r.length; a++) { var i = t.get(r[a]); if (i === undefined) { i = 1; } else { i++; } if (i > e) { n = r[a]; e = i; } t.set(r[a], i); } if (e === 0) { throw new Error("mode requires at last one data point"); } return n; } function s(r) { if (r.length === 0) { throw new Error("min requires at least one data point"); } var t = r[0]; for (var n = 1; n < r.length; n++) { if (r[n] < t) { t = r[n]; } } return t; } function g(r) { if (r.length === 0) { throw new Error("max requires at least one data point"); } var t = r[0]; for (var n = 1; n < r.length; n++) { if (r[n] > t) { t = r[n]; } } return t; } function c(r) { if (r.length === 0) { throw new Error("extent requires at least one data point"); } var t = r[0]; var n = r[0]; for (var e = 1; e < r.length; e++) { if (r[e] > n) { n = r[e]; } if (r[e] < t) { t = r[e]; } } return [ t, n ]; } function p(r) { return r[0]; } function w(r) { return r[r.length - 1]; } function M(r) { return [ r[0], r[r.length - 1] ]; } function d(r) { var t = 0; for (var n = 0; n < r.length; n++) { if (typeof r[n] !== "number") { return Number.NaN; } t += r[n]; } return t; } function m(r) { var t = 1; for (var n = 0; n < r.length; n++) { t *= r[n]; } return t; } function b(r, t) { var n = r.length * t; if (r.length === 0) { throw new Error("quantile requires at least one data point."); } else if (t < 0 || t > 1) { throw new Error("quantiles must be between 0 and 1"); } else if (t === 1) { return r[r.length - 1]; } else if (t === 0) { return r[0]; } else if (n % 1 !== 0) { return r[Math.ceil(n) - 1]; } else if (r.length % 2 === 0) { return (r[n - 1] + r[n]) / 2; } else { return r[n]; } } function E(r, t, n, e) { n = n || 0; e = e || r.length - 1; while (e > n) { if (e - n > 600) { var a = e - n + 1; var i = t - n + 1; var o = Math.log(a); var u = .5 * Math.exp(2 * o / 3); var f = .5 * Math.sqrt(o * u * (a - u) / a); if (i - a / 2 < 0) { f *= -1; } var h = Math.max(n, Math.floor(t - i * u / a + f)); var v = Math.min(e, Math.floor(t + (a - i) * u / a + f)); E(r, t, h, v); } var l = r[t]; var s = n; var g = e; q(r, n, t); if (r[e] > l) { q(r, n, e); } while (s < g) { q(r, s, g); s++; g--; while (r[s] < l) { s++; } while (r[g] > l) { g--; } } if (r[n] === l) { q(r, n, g); } else { g++; q(r, g, e); } if (g <= t) { n = g + 1; } if (t <= g) { e = g - 1; } } } function q(r, t, n) { var e = r[t]; r[t] = r[n]; r[n] = e; } function y(r, t) { var n = r.slice(); if (Array.isArray(t)) { I(n, t); var e = []; for (var a = 0; a < t.length; a++) { e[a] = b(n, t[a]); } return e; } else { var i = A(n.length, t); N(n, i, 0, n.length - 1); return b(n, t); } } function N(r, t, n, e) { if (t % 1 === 0) { E(r, t, n, e); } else { t = Math.floor(t); E(r, t, n, e); E(r, t + 1, t + 1, e); } } function I(r, t) { var n = [ 0 ]; for (var e = 0; e < t.length; e++) { n.push(A(r.length, t[e])); } n.push(r.length - 1); n.sort(x); var a = [ 0, n.length - 1 ]; while (a.length) { var i = Math.ceil(a.pop()); var o = Math.floor(a.pop()); if (i - o <= 1) { continue; } var u = Math.floor((o + i) / 2); N(r, n[u], Math.floor(n[o]), Math.ceil(n[i])); a.push(o, u, u, i); } } function x(r, t) { return r - t; } function A(r, t) { var n = r * t; if (t === 1) { return r - 1; } else if (t === 0) { return 0; } else if (n % 1 !== 0) { return Math.ceil(n) - 1; } else if (r % 2 === 0) { return n - .5; } else { return n; } } function k(r, t) { if (t < r[0]) { return 0; } if (t > r[r.length - 1]) { return 1; } var n = P(r, t); if (r[n] !== t) { return n / r.length; } n++; var e = _(r, t); if (e === n) { return n / r.length; } var a = e - n + 1; var i = a * (e + n) / 2; var o = i / a; return o / r.length; } function P(r, t) { var n = 0; var e = 0; var a = r.length; while (e < a) { n = e + a >>> 1; if (t <= r[n]) { a = n; } else { e = -~n; } } return e; } function _(r, t) { var n = 0; var e = 0; var a = r.length; while (e < a) { n = e + a >>> 1; if (t >= r[n]) { e = -~n; } else { a = n; } } return e; } function C(r, t) { var n = h(r); return k(n, t); } function T(r) { var t = y(r, .75); var n = y(r, .25); if (typeof t === "number" && typeof n === "number") { return t - n; } } function V(r) { return +y(r, .5); } function L(r) { var t = V(r); var n = []; for (var e = 0; e < r.length; e++) { n.push(Math.abs(r[e] - t)); } return V(n); } function S(r, t) { var n = []; if (t < 1) { throw new Error("chunk size must be a positive number"); } if (Math.floor(t) !== t) { throw new Error("chunk size must be an integer"); } for (var e = 0; e < r.length; e += t) { n.push(r.slice(e, e + t)); } return n; } function U(r, t, n) { if (r.length === 0) { return []; } n = n || Math.random; var e = r.length; var a = []; for (var i = 0; i < t; i++) { var o = Math.floor(n() * e); a.push(r[o]); } return a; } function z(r, t) { t = t || Math.random; var n = r.length; var e; var a; while (n > 0) { a = Math.floor(t() * n--); e = r[n]; r[n] = r[a]; r[a] = e; } return r; } function X(r, t) { var n = r.slice(); return z(n, t); } function F(r, t, n) { var e = X(r, n); return e.slice(0, t); } function O(r, t) { var n = []; for (var e = 0; e < r; e++) { var a = []; for (var i = 0; i < t; i++) { a.push(0); } n.push(a); } return n; } function Y(r) { var t = 0; var n; for (var e = 0; e < r.length; e++) { if (e === 0 || r[e] !== n) { n = r[e]; t++; } } return t; } function D(r, t, n, e) { var a; if (r > 0) { var i = (n[t] - n[r - 1]) / (t - r + 1); a = e[t] - e[r - 1] - (t - r + 1) * i * i; } else { a = e[t] - n[t] * n[t] / (t + 1); } if (a < 0) { return 0; } return a; } function K(r, t, n, e, a, i, o) { if (r > t) { return; } var u = Math.floor((r + t) / 2); e[n][u] = e[n - 1][u - 1]; a[n][u] = u; var f = n; if (r > n) { f = Math.max(f, a[n][r - 1] || 0); } f = Math.max(f, a[n - 1][u] || 0); var h = u - 1; if (t < e[0].length - 1) { h = Math.min(h, a[n][t + 1] || 0); } var v; var l; var s; var g; for (var c = h; c >= f; --c) { v = D(c, u, i, o); if (v + e[n - 1][f - 1] >= e[n][u]) { break; } l = D(f, u, i, o); s = l + e[n - 1][f - 1]; if (s < e[n][u]) { e[n][u] = s; a[n][u] = f; } f++; g = v + e[n - 1][c - 1]; if (g < e[n][u]) { e[n][u] = g; a[n][u] = c; } } K(r, u - 1, n, e, a, i, o); K(u + 1, t, n, e, a, i, o); } function j(r, t, n) { var e = t[0].length; var a = r[Math.floor(e / 2)]; var i = []; var o = []; for (var u = 0, f = void 0; u < e; ++u) { f = r[u] - a; if (u === 0) { i.push(f); o.push(f * f); } else { i.push(i[u - 1] + f); o.push(o[u - 1] + f * f); } t[0][u] = D(0, u, i, o); n[0][u] = 0; } var h; for (var v = 1; v < t.length; ++v) { if (v < t.length - 1) { h = v; } else { h = e - 1; } K(h, e - 1, v, t, n, i, o); } } function B(r, t) { if (t > r.length) { throw new Error("cannot generate more classes than there are data values"); } var n = h(r); var e = Y(n); if (e === 1) { return [ n ]; } var a = O(t, n.length); var i = O(t, n.length); j(n, a, i); var o = []; var u = i[0].length - 1; for (var f = i.length - 1; f >= 0; f--) { var v = i[f][u]; o[f] = n.slice(v, u + 1); if (f > 0) { u = v - 1; } } return o; } function G(r, t, n) { var e = r.length; var a = []; var i = n; a[n] = r[r.length - 1]; while (i > 0) { a[i - 1] = r[t[e][i] - 1]; e = t[e][i] - 1; i--; } return a; } function H(r, t) { var n = []; var e = []; var a; var i; var o = 0; for (a = 0; a < r.length + 1; a++) { var u = []; var f = []; for (i = 0; i < t + 1; i++) { u.push(0); f.push(0); } n.push(u); e.push(f); } for (a = 1; a < t + 1; a++) { n[1][a] = 1; e[1][a] = 0; for (i = 2; i < r.length + 1; i++) { e[i][a] = Number.POSITIVE_INFINITY; } } for (var h = 2; h < r.length + 1; h++) { var v = 0; var l = 0; var s = 0; var g = 0; for (var c = 1; c < h + 1; c++) { var p = h - c + 1; var w = r[p - 1]; s++; v += w; l += w * w; o = l - v * v / s; g = p - 1; if (g !== 0) { for (i = 2; i < t + 1; i++) { if (e[h][i] >= o + e[g][i - 1]) { n[h][i] = p; e[h][i] = o + e[g][i - 1]; } } } } n[h][1] = 1; e[h][1] = o; } return { lowerClassLimits: n, varianceCombinations: e }; } function J(r, t) { if (t > r.length) { return null; } r = r.slice().sort((function(r, t) { return r - t; })); var n = H(r, t); var e = n.lowerClassLimits; return G(r, e, t); } function Q(r, t) { if (r.length < 2) { return r; } var n = s(r); var e = g(r); var a = [ n ]; var i = (e - n) / t; for (var o = 1; o < t; o++) { a.push(a[0] + i * o); } a.push(e); return a; } function R(r, t) { if (r.length !== t.length) { throw new Error("sampleCovariance requires samples with equal lengths"); } if (r.length < 2) { throw new Error("sampleCovariance requires at least two data points in each sample"); } var n = e(r); var a = e(t); var i = 0; for (var o = 0; o < r.length; o++) { i += (r[o] - n) * (t[o] - a); } var u = r.length - 1; return i / u; } function W(r) { if (r.length < 2) { throw new Error("sampleVariance requires at least two data points"); } var t = a(r, 2); var n = r.length - 1; return t / n; } function Z(r) { var t = W(r); return Math.sqrt(t); } function $(r, t) { var n = R(r, t); var e = Z(r); var a = Z(t); return n / e / a; } function rr(r, t) { var n = r.map((function(r, t) { return [ r, t ]; })).sort((function(r, t) { return r[0] - t[0]; })).map((function(r) { return r[1]; })); var e = t.map((function(r, t) { return [ r, t ]; })).sort((function(r, t) { return r[0] - t[0]; })).map((function(r) { return r[1]; })); var a = Array(n.length); var i = Array(n.length); for (var o = 0; o < n.length; o++) { a[n[o]] = o; i[e[o]] = o; } return $(a, i); } function tr(r) { if (r.length < 3) { throw new Error("sampleSkewness requires at least three data points"); } var t = e(r); var n; var a = 0; var i = 0; for (var o = 0; o < r.length; o++) { n = r[o] - t; a += n * n; i += n * n * n; } var u = r.length - 1; var f = Math.sqrt(a / u); var h = r.length; var v = Math.pow(f, 3); return h * i / ((h - 1) * (h - 2) * v); } function nr(r) { var t = r.length; if (t < 4) { throw new Error("sampleKurtosis requires at least four data points"); } var n = e(r); var a; var i = 0; var o = 0; for (var u = 0; u < t; u++) { a = r[u] - n; i += a * a; o += a * a * a * a; } return (t - 1) / ((t - 2) * (t - 3)) * (t * (t + 1) * o / (i * i) - 3 * (t - 1)); } function er(r) { var t = new Array(r.length); var n = [ r.slice() ]; for (var e = 0; e < r.length; e++) { t[e] = 0; } for (var a = 0; a < r.length; ) { if (t[a] < a) { var i = 0; if (a % 2 !== 0) { i = t[a]; } var o = r[i]; r[i] = r[a]; r[a] = o; n.push(r.slice()); t[a]++; a = 0; } else { t[a] = 0; a++; } } return n; } function ar(r, t) { var n; var e; var a = []; var i; var o; for (n = 0; n < r.length; n++) { if (t === 1) { a.push([ r[n] ]); } else { i = ar(r.slice(n + 1, r.length), t - 1); for (e = 0; e < i.length; e++) { o = i[e]; o.unshift(r[n]); a.push(o); } } } return a; } function ir(r, t) { var n = []; for (var e = 0; e < r.length; e++) { if (t === 1) { n.push([ r[e] ]); } else { var a = ir(r.slice(e, r.length), t - 1); for (var i = 0; i < a.length; i++) { n.push([ r[e] ].concat(a[i])); } } } return n; } function or(r, t, n) { return r + (n - r) / (t + 1); } function ur(r, t, n, e) { return (r * t + n * e) / (t + e); } function fr(r, t, n, e, a, i) { var o = ur(t, n, a, i); return (n * (r + Math.pow(t - o, 2)) + i * (e + Math.pow(a - o, 2))) / (n + i); } function hr(r) { if (r.length === 0) { throw new Error("geometricMean requires at least one data point"); } var t = 1; for (var n = 0; n < r.length; n++) { if (r[n] < 0) { throw new Error("geometricMean requires only non-negative numbers as input"); } t *= r[n]; } return Math.pow(t, 1 / r.length); } function vr(r) { if (r.length === 0) { throw new Error("logAverage requires at least one data point"); } var t = 0; for (var n = 0; n < r.length; n++) { if (r[n] < 0) { throw new Error("logAverage requires only non-negative numbers as input"); } t += Math.log(r[n]); } return Math.exp(t / r.length); } function lr(r) { if (r.length === 0) { throw new Error("harmonicMean requires at least one data point"); } var t = 0; for (var n = 0; n < r.length; n++) { if (r[n] <= 0) { throw new Error("harmonicMean requires only positive numbers as input"); } t += 1 / r[n]; } return r.length / t; } function sr(r) { if (r.length === 0) { throw new Error("meanSimple requires at least one data point"); } return d(r) / r.length; } function gr(r) { return b(r, .5); } function cr(r, t, n) { return (r * t - n) / (t - 1); } function pr(r) { if (r.length === 0) { throw new Error("rootMeanSquare requires at least one data point"); } var t = 0; for (var n = 0; n < r.length; n++) { t += Math.pow(r[n], 2); } return Math.sqrt(t / r.length); } function wr(r) { return Z(r) / e(r); } function Mr(r, t) { var n = e(r); var a = o(r); var i = Math.sqrt(r.length); return (n - t) / (a / i); } function dr(r, t, n) { var a = r.length; var i = t.length; if (!a || !i) { return null; } if (!n) { n = 0; } var o = e(r); var u = e(t); var f = W(r); var h = W(t); if (typeof o === "number" && typeof u === "number" && typeof f === "number" && typeof h === "number") { var v = ((a - 1) * f + (i - 1) * h) / (a + i - 2); return (o - u - n) / Math.sqrt(v * (1 / a + 1 / i)); } } function mr(r, t) { if (!r.length || !t.length) { throw new Error("Neither sample can be empty"); } var n = r.map((function(r) { return { label: "x", value: r }; })).concat(t.map((function(r) { return { label: "y", value: r }; }))).sort((function(r, t) { return r.value - t.value; })); for (var e = 0; e < n.length; e++) { n[e].rank = e; } var a = [ n[0].rank ]; for (var i = 1; i < n.length; i++) { if (n[i].value === n[i - 1].value) { a.push(n[i].rank); if (i === n.length - 1) { o(n, a); } } else if (a.length > 1) { o(n, a); } else { a = [ n[i].rank ]; } } function o(r, t) { var n = (t[0] + t[t.length - 1]) / 2; for (var e = 0; e < t.length; e++) { r[t[e]].rank = n; } } var u = 0; for (var f = 0; f < n.length; f++) { var h = n[f]; if (h.label === "x") { u += h.rank + 1; } } return u; } var br = function r() { this.totalCount = 0; this.data = {}; }; br.prototype.train = function r(t, n) { if (!this.data[n]) { this.data[n] = {}; } for (var e in t) { var a = t[e]; if (this.data[n][e] === undefined) { this.data[n][e] = {}; } if (this.data[n][e][a] === undefined) { this.data[n][e][a] = 0; } this.data[n][e][a]++; } this.totalCount++; }; br.prototype.score = function r(t) { var n = {}; var e; for (var a in t) { var i = t[a]; for (e in this.data) { n[e] = {}; if (this.data[e][a]) { n[e][a + "_" + i] = (this.data[e][a][i] || 0) / this.totalCount; } else { n[e][a + "_" + i] = 0; } } } var o = {}; for (e in n) { o[e] = 0; for (var u in n[e]) { o[e] += n[e][u]; } } return o; }; var Er = function r() { this.weights = []; this.bias = 0; }; Er.prototype.predict = function r(t) { if (t.length !== this.weights.length) { return null; } var n = 0; for (var e = 0; e < this.weights.length; e++) { n += this.weights[e] * t[e]; } n += this.bias; if (n > 0) { return 1; } else { return 0; } }; Er.prototype.train = function r(t, n) { if (n !== 0 && n !== 1) { return null; } if (t.length !== this.weights.length) { this.weights = t; this.bias = 1; } var e = this.predict(t); if (typeof e === "number" && e !== n) { var a = n - e; for (var i = 0; i < this.weights.length; i++) { this.weights[i] += a * t[i]; } this.bias += a; } return this; }; var qr = 1e-4; function yr(r) { if (r < 0) { throw new Error("factorial requires a non-negative value"); } if (Math.floor(r) !== r) { throw new Error("factorial requires an integer input"); } var t = 1; for (var n = 2; n <= r; n++) { t *= n; } return t; } function Nr(r) { if (Number.isInteger(r)) { if (r <= 0) { return Number.NaN; } else { return yr(r - 1); } } r--; if (r < 0) { return Math.PI / (Math.sin(Math.PI * -r) * Nr(-r)); } else { var t = Math.pow(r / Math.E, r) * Math.sqrt(2 * Math.PI * (r + 1 / 6)); var n = r + 1 / 4; var e = 1 + 1 / 144 / Math.pow(n, 2) - 1 / 12960 / Math.pow(n, 3) - 257 / 207360 / Math.pow(n, 4) - 52 / 2612736 / Math.pow(n, 5) + 5741173 / 9405849600 / Math.pow(n, 6) + 37529 / 18811699200 / Math.pow(n, 7); return t * e; } } var Ir = [ .9999999999999971, 57.15623566586292, -59.59796035547549, 14.136097974741746, -.4919138160976202, 3399464998481189e-20, 4652362892704858e-20, -9837447530487956e-20, .0001580887032249125, -.00021026444172410488, .00021743961811521265, -.0001643181065367639, 8441822398385275e-20, -26190838401581408e-21, 36899182659531625e-22 ]; var xr = 607 / 128; var Ar = Math.log(Math.sqrt(2 * Math.PI)); function kr(r) { if (r <= 0) { return Number.POSITIVE_INFINITY; } r--; var t = Ir[0]; for (var n = 1; n < 15; n++) { t += Ir[n] / (r + n); } var e = xr + .5 + r; return Ar + Math.log(t) - e + (r + .5) * Math.log(e); } function Pr(r) { if (r < 0 || r > 1) { throw new Error("bernoulliDistribution requires probability to be between 0 and 1 inclusive"); } return [ 1 - r, r ]; } function _r(r, t) { if (t < 0 || t > 1 || r <= 0 || r % 1 !== 0) { return undefined; } var n = 0; var e = 0; var a = []; var i = 1; do { a[n] = i * Math.pow(t, n) * Math.pow(1 - t, r - n); e += a[n]; n++; i = i * (r - n + 1) / n; } while (e < 1 - qr); return a; } function Cr(r) { if (r <= 0) { return undefined; } var t = 0; var n = 0; var e = []; var a = 1; do { e[t] = Math.exp(-r) * Math.pow(r, t) / a; n += e[t]; t++; a *= t; } while (n < 1 - qr); return e; } var Tr = { 1: { .995: 0, .99: 0, .975: 0, .95: 0, .9: .02, .5: .45, .1: 2.71, .05: 3.84, .025: 5.02, .01: 6.63, .005: 7.88 }, 2: { .995: .01, .99: .02, .975: .05, .95: .1, .9: .21, .5: 1.39, .1: 4.61, .05: 5.99, .025: 7.38, .01: 9.21, .005: 10.6 }, 3: { .995: .07, .99: .11, .975: .22, .95: .35, .9: .58, .5: 2.37, .1: 6.25, .05: 7.81, .025: 9.35, .01: 11.34, .005: 12.84 }, 4: { .995: .21, .99: .3, .975: .48, .95: .71, .9: 1.06, .5: 3.36, .1: 7.78, .05: 9.49, .025: 11.14, .01: 13.28, .005: 14.86 }, 5: { .995: .41, .99: .55, .975: .83, .95: 1.15, .9: 1.61, .5: 4.35, .1: 9.24, .05: 11.07, .025: 12.83, .01: 15.09, .005: 16.75 }, 6: { .995: .68, .99: .87, .975: 1.24, .95: 1.64, .9: 2.2, .5: 5.35, .1: 10.65, .05: 12.59, .025: 14.45, .01: 16.81, .005: 18.55 }, 7: { .995: .99, .99: 1.25, .975: 1.69, .95: 2.17, .9: 2.83, .5: 6.35, .1: 12.02, .05: 14.07, .025: 16.01, .01: 18.48, .005: 20.28 }, 8: { .995: 1.34, .99: 1.65, .975: 2.18, .95: 2.73, .9: 3.49, .5: 7.34, .1: 13.36, .05: 15.51, .025: 17.53, .01: 20.09, .005: 21.96 }, 9: { .995: 1.73, .99: 2.09, .975: 2.7, .95: 3.33, .9: 4.17, .5: 8.34, .1: 14.68, .05: 16.92, .025: 19.02, .01: 21.67, .005: 23.59 }, 10: { .995: 2.16, .99: 2.56, .975: 3.25, .95: 3.94, .9: 4.87, .5: 9.34, .1: 15.99, .05: 18.31, .025: 20.48, .01: 23.21, .005: 25.19 }, 11: { .995: 2.6, .99: 3.05, .975: 3.82, .95: 4.57, .9: 5.58, .5: 10.34, .1: 17.28, .05: 19.68, .025: 21.92, .01: 24.72, .005: 26.76 }, 12: { .995: 3.07, .99: 3.57, .975: 4.4, .95: 5.23, .9: 6.3, .5: 11.34, .1: 18.55, .05: 21.03, .025: 23.34, .01: 26.22, .005: 28.3 }, 13: { .995: 3.57, .99: 4.11, .975: 5.01, .95: 5.89, .9: 7.04, .5: 12.34, .1: 19.81, .05: 22.36, .025: 24.74, .01: 27.69, .005: 29.82 }, 14: { .995: 4.07, .99: 4.66, .975: 5.63, .95: 6.57, .9: 7.79, .5: 13.34, .1: 21.06, .05: 23.68, .025: 26.12, .01: 29.14, .005: 31.32 }, 15: { .995: 4.6, .99: 5.23, .975: 6.27, .95: 7.26, .9: 8.55, .5: 14.34, .1: 22.31, .05: 25, .025: 27.49, .01: 30.58, .005: 32.8 }, 16: { .995: 5.14, .99: 5.81, .975: 6.91, .95: 7.96, .9: 9.31, .5: 15.34, .1: 23.54, .05: 26.3, .025: 28.85, .01: 32, .005: 34.27 }, 17: { .995: 5.7, .99: 6.41, .975: 7.56, .95: 8.67, .9: 10.09, .5: 16.34, .1: 24.77, .05: 27.59, .025: 30.19, .01: 33.41, .005: 35.72 }, 18: { .995: 6.26, .99: 7.01, .975: 8.23, .95: 9.39, .9: 10.87, .5: 17.34, .1: 25.99, .05: 28.87, .025: 31.53, .01: 34.81, .005: 37.16 }, 19: { .995: 6.84, .99: 7.63, .975: 8.91, .95: 10.12, .9: 11.65, .5: 18.34, .1: 27.2, .05: 30.14, .025: 32.85, .01: 36.19, .005: 38.58 }, 20: { .995: 7.43, .99: 8.26, .975: 9.59, .95: 10.85, .9: 12.44, .5: 19.34, .1: 28.41, .05: 31.41, .025: 34.17, .01: 37.57, .005: 40 }, 21: { .995: 8.03, .99: 8.9, .975: 10.28, .95: 11.59, .9: 13.24, .5: 20.34, .1: 29.62, .05: 32.67, .025: 35.48, .01: 38.93, .005: 41.4 }, 22: { .995: 8.64, .99: 9.54, .975: 10.98, .95: 12.34, .9: 14.04, .5: 21.34, .1: 30.81, .05: 33.92, .025: 36.78, .01: 40.29, .005: 42.8 }, 23: { .995: 9.26, .99: 10.2, .975: 11.69, .95: 13.09, .9: 14.85, .5: 22.34, .1: 32.01, .05: 35.17, .025: 38.08, .01: 41.64, .005: 44.18 }, 24: { .995: 9.89, .99: 10.86, .975: 12.4, .95: 13.85, .9: 15.66, .5: 23.34, .1: 33.2, .05: 36.42, .025: 39.36, .01: 42.98, .005: 45.56 }, 25: { .995: 10.52, .99: 11.52, .975: 13.12, .95: 14.61, .9: 16.47, .5: 24.34, .1: 34.28, .05: 37.65, .025: 40.65, .01: 44.31, .005: 46.93 }, 26: { .995: 11.16, .99: 12.2, .975: 13.84, .95: 15.38, .9: 17.29, .5: 25.34, .1: 35.56, .05: 38.89, .025: 41.92, .01: 45.64, .005: 48.29 }, 27: { .995: 11.81, .99: 12.88, .975: 14.57, .95: 16.15, .9: 18.11, .5: 26.34, .1: 36.74, .05: 40.11, .025: 43.19, .01: 46.96, .005: 49.65 }, 28: { .995: 12.46, .99: 13.57, .975: 15.31, .95: 16.93, .9: 18.94, .5: 27.34, .1: 37.92, .05: 41.34, .025: 44.46, .01: 48.28, .005: 50.99 }, 29: { .995: 13.12, .99: 14.26, .975: 16.05, .95: 17.71, .9: 19.77, .5: 28.34, .1: 39.09, .05: 42.56, .025: 45.72, .01: 49.59, .005: 52.34 }, 30: { .995: 13.79, .99: 14.95, .975: 16.79, .95: 18.49, .9: 20.6, .5: 29.34, .1: 40.26, .05: 43.77, .025: 46.98, .01: 50.89, .005: 53.67 }, 40: { .995: 20.71, .99: 22.16, .975: 24.43, .95: 26.51, .9: 29.05, .5: 39.34, .1: 51.81, .05: 55.76, .025: 59.34, .01: 63.69, .005: 66.77 }, 50: { .995: 27.99, .99: 29.71, .975: 32.36, .95: 34.76, .9: 37.69, .5: 49.33, .1: 63.17, .05: 67.5, .025: 71.42, .01: 76.15, .005: 79.49 }, 60: { .995: 35.53, .99: 37.48, .975: 40.48, .95: 43.19, .9: 46.46, .5: 59.33, .1: 74.4, .05: 79.08, .025: 83.3, .01: 88.38, .005: 91.95 }, 70: { .995: 43.28, .99: 45.44, .975: 48.76, .95: 51.74, .9: 55.33, .5: 69.33, .1: 85.53, .05: 90.53, .025: 95.02, .01: 100.42, .005: 104.22 }, 80: { .995: 51.17, .99: 53.54, .975: 57.15, .95: 60.39, .9: 64.28, .5: 79.33, .1: 96.58, .05: 101.88, .025: 106.63, .01: 112.33, .005: 116.32 }, 90: { .995: 59.2, .99: 61.75, .975: 65.65, .95: 69.13, .9: 73.29, .5: 89.33, .1: 107.57, .05: 113.14, .025: 118.14, .01: 124.12, .005: 128.3 }, 100: { .995: 67.33, .99: 70.06, .975: 74.22, .95: 77.93, .9: 82.36, .5: 99.33, .1: 118.5, .05: 124.34, .025: 129.56, .01: 135.81, .005: 140.17 } }; function Vr(r, t, n) { var a = e(r); var i = 0; var o = 1; var u = t(a); var f = []; var h = []; for (var v = 0; v < r.length; v++) { if (f[r[v]] === undefined) { f[r[v]] = 0; } f[r[v]]++; } for (var l = 0; l < f.length; l++) { if (f[l] === undefined) { f[l] = 0; } } for (var s in u) { if (s in f) { h[+s] = u[s] * r.length; } } for (var g = h.length - 1; g >= 0; g--) { if (h[g] < 3) { h[g - 1] += h[g]; h.pop(); f[g - 1] += f[g]; f.pop(); } } for (var c = 0; c < f.length; c++) { i += Math.pow(f[c] - h[c], 2) / h[c]; } var p = f.length - o - 1; return Tr[p][n] < i; } var Lr = Math.sqrt(2 * Math.PI); var Sr = { gaussian: function(r) { return Math.exp(-.5 * r * r) / Lr; } }; var Ur = { nrd: function(r) { var t = Z(r); var n = T(r); if (typeof n === "number") { t = Math.min(t, n / 1.34); } return 1.06 * t * Math.pow(r.length, -.2); } }; function zr(r, t, n) { var e; if (t === undefined) { e = Sr.gaussian; } else if (typeof t === "string") { if (!Sr[t]) { throw new Error('Unknown kernel "' + t + '"'); } e = Sr[t]; } else { e = t; } var a; if (typeof n === "undefined") { a = Ur.nrd(r); } else if (typeof n === "string") { if (!Ur[n]) { throw new Error('Unknown bandwidth method "' + n + '"'); } a = Ur[n](r); } else { a = n; } return function(t) { var n = 0; var i = 0; for (n = 0; n < r.length; n++) { i += e((t - r[n]) / a); } return i / a / r.length; }; } function Xr(r, t, n) { return (r - t) / n; } var Fr = Math.sqrt(2 * Math.PI); function Or(r) { var t = r; var n = r; for (var e = 1; e < 15; e++) { n *= r * r / (2 * e + 1); t += n; } return Math.round((.5 + t / Fr * Math.exp(-r * r / 2)) * 1e4) / 1e4; } var Yr = []; for (var Dr = 0; Dr <= 3.09; Dr += .01) { Yr.push(Or(Dr)); } function Kr(r) { var t = Math.abs(r); var n = Math.min(Math.round(t * 100), Yr.length - 1); if (r >= 0) { return Yr[n]; } else { return Math.round((1 - Yr[n]) * 1e4) / 1e4; } } function jr(r) { return 1 / (Math.exp(-r) + 1); } function Br(r) { var t = 1 / (1 + .5 * Math.abs(r)); var n = t * Math.exp(-r * r + ((((((((.17087277 * t - .82215223) * t + 1.48851587) * t - 1.13520398) * t + .27886807) * t - .18628806) * t + .09678418) * t + .37409196) * t + 1.00002368) * t - 1.26551223); if (r >= 0) { return 1 - n; } else { return n - 1; } } function Gr(r) { var t = 8 * (Math.PI - 3) / (3 * Math.PI * (4 - Math.PI)); var n = Math.sqrt(Math.sqrt(Math.pow(2 / (Math.PI * t) + Math.log(1 - r * r) / 2, 2) - Math.log(1 - r * r) / t) - (2 / (Math.PI * t) + Math.log(1 - r * r) / 2)); if (r >= 0) { return n; } else { return -n; } } function Hr(r) { if (r === 0) { r = qr; } else if (r >= 1) { r = 1 - qr; } return Math.sqrt(2) * Gr(2 * r - 1); } function Jr(r) { if (r <= 0 || r >= 1) { throw new Error("p must be strictly between zero and one"); } return Math.log(r / (1 - r)); } function Qr(r, t, n, a, i) { if (a === undefined) { a = 1e4; } if (n === undefined) { n = "two_side"; } if (n !== "two_side" && n !== "greater" && n !== "less") { throw new Error("`alternative` must be either 'two_side', 'greater', or 'less'."); } var o = e(r); var u = e(t); var f = o - u; var h = new Array(a); var v = r.concat(t); var l = Math.floor(v.length / 2); for (var s = 0; s < a; s++) { z(v, i); var g = v.slice(0, l); var c = v.slice(l, v.length); var p = e(g) - e(c); h[s] = p; } var w = 0; if (n === "two_side") { for (var M = 0; M <= a; M++) { if (Math.abs(h[M]) >= Math.abs(f)) { w += 1; } } } else if (n === "greater") { for (var d = 0; d <= a; d++) { if (h[d] >= f) { w += 1; } } } else { for (var m = 0; m <= a; m++) { if (h[m] <= f) { w += 1; } } } return w / a; } function Rr(r) { if (typeof r === "number") { if (r < 0) { return -1; } else if (r === 0) { return 0; } else { return 1; } } else { throw new TypeError("not a number"); } } function Wr(r, t, n, e, a) { if (typeof r !== "function") { throw new TypeError("func must be a function"); } for (var i = 0; i < e; i++) { var o = (t + n) / 2; if (r(o) === 0 || Math.abs((n - t) / 2) < a) { return o; } if (Rr(r(o)) === Rr(r(t))) { t = o; } else { n = o; } } throw new Error("maximum number of iterations exceeded"); } function Zr(r, t) { var n = 0; for (var e = 0; e < r.length; e++) { var a = r[e] - t[e]; n += a * a; } return Math.sqrt(n); } function $r(r, t, n) { if (n === void 0) n = Math.random; var e = null; var a = F(r, t, n); var i = null; var o = Number.MAX_VALUE; while (o !== 0) { i = rt(r, a); e = a; a = tt(r, i, t); o = nt(a, e); } return { labels: i, centroids: a }; } function rt(r, t) { return r.map((function(r) { var n = Number.MAX_VALUE; var e = -1; for (var a = 0; a < t.length; a++) { var i = Zr(r, t[a]); if (i < n) { n = i; e = a; } } return e; })); } function tt(r, t, n) { var e = r[0].length; var a = O(n, e); var i = Array(n).fill(0); var o = r.length; for (var u = 0; u < o; u++) { var f = r[u]; var h = t[u]; var v = a[h]; for (var l = 0; l < e; l++) { v[l] += f[l]; } i[h] += 1; } for (var s = 0; s < n; s++) { if (i[s] === 0) { throw new Error("Centroid " + s + " has no friends"); } var g = a[s]; for (var c = 0; c < e; c++) { g[c] /= i[s]; } } return a; } function nt(r, t) { var n = 0; for (var e = 0; e < r.length; e++) { n += Zr(r[e], t[e]); } return n; } function et(r, t) { if (r.length !== t.length) { throw new Error("must have exactly as many labels as points"); } var n = at(t); var e = it(r); var a = []; for (var i = 0; i < r.length; i++) { var o = 0; if (n[t[i]].length > 1) { var u = ut(i, n[t[i]], e); var f = ot(i, t, n, e); o = (f - u) / Math.max(u, f); } a.push(o); } return a; } function at(r) { var t = 1 + g(r); var n = Array(t); for (var e = 0; e < r.length; e++) { var a = r[e]; if (n[a] === undefined) { n[a] = []; } n[a].push(e); } return n; } function it(r) { var t = r.length; var n = O(t, t); for (var e = 0; e < t; e++) { for (var a = 0; a < e; a++) { n[e][a] = Zr(r[e], r[a]); n[a][e] = n[e][a]; } } return n; } function ot(r, t, n, e) { var a = t[r]; var i = Number.MAX_VALUE; for (var o = 0; o < n.length; o++) { if (o !== a) { var u = ut(r, n[o], e); if (u < i) { i = u; } } } return i; } function ut(r, t, n) { var e = 0; for (var a = 0; a < t.length; a++) { e += n[r][t[a]]; } return e / t.length; } function ft(r, t) { var n = et(r, t); return g(n); } function ht(r, t) { if (r === 0 && t === 0) { return 0; } return Math.abs((r - t) / t); } function vt(r, t, n) { if (n === void 0) n = qr; return ht(r, t) <= n; } export { E as $, t as A, X as B, U as C, F as D, Pr as E, _r as F, Cr as G, Mr as H, dr as I, S as J, yr as K, Nr as L, vt as M, Wr as N, wr as O, ir as P, ar as Q, ur as R, fr as S, jr as T, c as U, kr as V, J as W, vr as X, Jr as Y, Hr as Z, C as _, g as a, cr as a0, e as b, or as c, v as d, qr as e, V as f, hr as g, lr as h, tr as i, W as j, o as k, Z as l, s as m, L as n, T as o, m as p, y as q, pr as r, n as s, a as t, $ as u, i as v, R as w, u as x, r as y, Xr as z };