lakutata
Version:
An IoC-based universal application framework.
1,034 lines (948 loc) • 21.8 kB
JavaScript
/* Build Date: Mon Jan 05 2026 23:52:23 GMT+0800 (China Standard Time) */
function r(r) {
var t;
var e;
var n = r.length;
if (n === 1) {
t = 0;
e = r[0][1];
} else {
var a = 0;
var i = 0;
var o = 0;
var u = 0;
var h;
var f;
var s;
for (var v = 0; v < n; v++) {
h = r[v];
f = h[0];
s = h[1];
a += f;
i += s;
o += f * f;
u += f * s;
}
t = (n * u - a * i) / (n * o - a * a);
e = i / n - t * a / n;
}
return {
m: t,
b: e
};
}
function t(r) {
return function(t) {
return r.b + r.m * t;
};
}
function e(r) {
if (r.length === 0) {
return 0;
}
var t = r[0];
var e = 0;
var n;
if (typeof t !== "number") {
return Number.NaN;
}
for (var a = 1; a < r.length; a++) {
if (typeof r[a] !== "number") {
return Number.NaN;
}
n = t + r[a];
if (Math.abs(t) >= Math.abs(r[a])) {
e += t - n + r[a];
} else {
e += r[a] - n + t;
}
t = n;
}
return t + e;
}
function n(r) {
if (r.length === 0) {
throw new Error("mean requires at least one data point");
}
return e(r) / r.length;
}
function a(r, t) {
var e = n(r);
var a = 0;
var i;
var o;
if (t === 2) {
for (o = 0; o < r.length; o++) {
i = r[o] - e;
a += i * i;
}
} else {
for (o = 0; o < r.length; o++) {
a += Math.pow(r[o] - e, 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 e = 0;
for (var n = 0; n < r.length; n++) {
e += r[n][1];
}
var a = e / 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 h = 0; h < r.length; h++) {
u += Math.pow(r[h][1] - t(r[h][0]), 2);
}
return 1 - u / i;
}
function h(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 e = Number.NaN;
var n = 0;
var a = 1;
for (var i = 1; i < r.length + 1; i++) {
if (r[i] !== t) {
if (a > n) {
n = a;
e = t;
}
a = 1;
t = r[i];
} else {
a++;
}
}
return e;
}
function f(r) {
return r.slice().sort(function(r, t) {
return r - t;
});
}
function s(r) {
return h(f(r));
}
function v(r) {
if (r.length === 0) {
throw new Error("min requires at least one data point");
}
var t = r[0];
for (var e = 1; e < r.length; e++) {
if (r[e] < t) {
t = r[e];
}
}
return t;
}
function l(r) {
if (r.length === 0) {
throw new Error("max requires at least one data point");
}
var t = r[0];
for (var e = 1; e < r.length; e++) {
if (r[e] > t) {
t = r[e];
}
}
return t;
}
function g(r) {
if (r.length === 0) {
throw new Error("extent requires at least one data point");
}
var t = r[0];
var e = r[0];
for (var n = 1; n < r.length; n++) {
if (r[n] > e) {
e = r[n];
}
if (r[n] < t) {
t = r[n];
}
}
return [ t, e ];
}
function c(r) {
var t = 1;
for (var e = 0; e < r.length; e++) {
t *= r[e];
}
return t;
}
function w(r, t) {
var e = 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 (e % 1 !== 0) {
return r[Math.ceil(e) - 1];
} else if (r.length % 2 === 0) {
return (r[e - 1] + r[e]) / 2;
} else {
return r[e];
}
}
function p(r, t, e, n) {
e = e || 0;
n = n || r.length - 1;
while (n > e) {
if (n - e > 600) {
var a = n - e + 1;
var i = t - e + 1;
var o = Math.log(a);
var u = .5 * Math.exp(2 * o / 3);
var h = .5 * Math.sqrt(o * u * (a - u) / a);
if (i - a / 2 < 0) {
h *= -1;
}
var f = Math.max(e, Math.floor(t - i * u / a + h));
var s = Math.min(n, Math.floor(t + (a - i) * u / a + h));
p(r, t, f, s);
}
var v = r[t];
var l = e;
var g = n;
M(r, e, t);
if (r[n] > v) {
M(r, e, n);
}
while (l < g) {
M(r, l, g);
l++;
g--;
while (r[l] < v) {
l++;
}
while (r[g] > v) {
g--;
}
}
if (r[e] === v) {
M(r, e, g);
} else {
g++;
M(r, g, n);
}
if (g <= t) {
e = g + 1;
}
if (t <= g) {
n = g - 1;
}
}
}
function M(r, t, e) {
var n = r[t];
r[t] = r[e];
r[e] = n;
}
function m(r, t) {
var e = r.slice();
if (Array.isArray(t)) {
d(e, t);
var n = [];
for (var a = 0; a < t.length; a++) {
n[a] = w(e, t[a]);
}
return n;
} else {
var i = E(e.length, t);
b(e, i, 0, e.length - 1);
return w(e, t);
}
}
function b(r, t, e, n) {
if (t % 1 === 0) {
p(r, t, e, n);
} else {
t = Math.floor(t);
p(r, t, e, n);
p(r, t + 1, t + 1, n);
}
}
function d(r, t) {
var e = [ 0 ];
for (var n = 0; n < t.length; n++) {
e.push(E(r.length, t[n]));
}
e.push(r.length - 1);
e.sort(q);
var a = [ 0, e.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);
b(r, e[u], Math.floor(e[o]), Math.ceil(e[i]));
a.push(o, u, u, i);
}
}
function q(r, t) {
return r - t;
}
function E(r, t) {
var e = r * t;
if (t === 1) {
return r - 1;
} else if (t === 0) {
return 0;
} else if (e % 1 !== 0) {
return Math.ceil(e) - 1;
} else if (r % 2 === 0) {
return e - .5;
} else {
return e;
}
}
function y(r, t) {
if (t < r[0]) {
return 0;
}
if (t > r[r.length - 1]) {
return 1;
}
var e = I(r, t);
if (r[e] !== t) {
return e / r.length;
}
e++;
var n = N(r, t);
if (n === e) {
return e / r.length;
}
var a = n - e + 1;
var i = a * (n + e) / 2;
var o = i / a;
return o / r.length;
}
function I(r, t) {
var e = 0;
var n = 0;
var a = r.length;
while (n < a) {
e = n + a >>> 1;
if (t <= r[e]) {
a = e;
} else {
n = -~e;
}
}
return n;
}
function N(r, t) {
var e = 0;
var n = 0;
var a = r.length;
while (n < a) {
e = n + a >>> 1;
if (t >= r[e]) {
n = -~e;
} else {
a = e;
}
}
return n;
}
function P(r, t) {
var e = f(r);
return y(e, t);
}
function x(r) {
var t = m(r, .75);
var e = m(r, .25);
if (typeof t === "number" && typeof e === "number") {
return t - e;
}
}
function C(r) {
return +m(r, .5);
}
function T(r) {
var t = C(r);
var e = [];
for (var n = 0; n < r.length; n++) {
e.push(Math.abs(r[n] - t));
}
return C(e);
}
function A(r, t) {
var e = [];
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 n = 0; n < r.length; n += t) {
e.push(r.slice(n, n + t));
}
return e;
}
function S(r, t, e) {
if (r.length === 0) {
return [];
}
e = e || Math.random;
var n = r.length;
var a = [];
for (var i = 0; i < t; i++) {
var o = Math.floor(e() * n);
a.push(r[o]);
}
return a;
}
function _(r, t) {
t = t || Math.random;
var e = r.length;
var n;
var a;
while (e > 0) {
a = Math.floor(t() * e--);
n = r[e];
r[e] = r[a];
r[a] = n;
}
return r;
}
function k(r, t) {
var e = r.slice();
return _(e, t);
}
function z(r, t, e) {
var n = k(r, e);
return n.slice(0, t);
}
function V(r, t, e) {
var n = r.length;
var a = [];
var i = e;
a[e] = r[r.length - 1];
while (i > 0) {
a[i - 1] = r[t[n][i] - 1];
n = t[n][i] - 1;
i--;
}
return a;
}
function F(r, t) {
var e = [];
var n = [];
var a;
var i;
var o = 0;
for (a = 0; a < r.length + 1; a++) {
var u = [];
var h = [];
for (i = 0; i < t + 1; i++) {
u.push(0);
h.push(0);
}
e.push(u);
n.push(h);
}
for (a = 1; a < t + 1; a++) {
e[1][a] = 1;
n[1][a] = 0;
for (i = 2; i < r.length + 1; i++) {
n[i][a] = Number.POSITIVE_INFINITY;
}
}
for (var f = 2; f < r.length + 1; f++) {
var s = 0;
var v = 0;
var l = 0;
var g = 0;
for (var c = 1; c < f + 1; c++) {
var w = f - c + 1;
var p = r[w - 1];
l++;
s += p;
v += p * p;
o = v - s * s / l;
g = w - 1;
if (g !== 0) {
for (i = 2; i < t + 1; i++) {
if (n[f][i] >= o + n[g][i - 1]) {
e[f][i] = w;
n[f][i] = o + n[g][i - 1];
}
}
}
}
e[f][1] = 1;
n[f][1] = o;
}
return {
lowerClassLimits: e,
varianceCombinations: n
};
}
function L(r, t) {
if (t > r.length) {
return null;
}
r = r.slice().sort(function(r, t) {
return r - t;
});
var e = F(r, t);
var n = e.lowerClassLimits;
return V(r, n, t);
}
function O(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 e = n(r);
var a = n(t);
var i = 0;
for (var o = 0; o < r.length; o++) {
i += (r[o] - e) * (t[o] - a);
}
var u = r.length - 1;
return i / u;
}
function Y(r) {
if (r.length < 2) {
throw new Error("sampleVariance requires at least two data points");
}
var t = a(r, 2);
var e = r.length - 1;
return t / e;
}
function D(r) {
var t = Y(r);
return Math.sqrt(t);
}
function j(r, t) {
var e = O(r, t);
var n = D(r);
var a = D(t);
return e / n / a;
}
function B(r) {
if (r.length < 3) {
throw new Error("sampleSkewness requires at least three data points");
}
var t = n(r);
var e;
var a = 0;
var i = 0;
for (var o = 0; o < r.length; o++) {
e = r[o] - t;
a += e * e;
i += e * e * e;
}
var u = r.length - 1;
var h = Math.sqrt(a / u);
var f = r.length;
var s = Math.pow(h, 3);
return f * i / ((f - 1) * (f - 2) * s);
}
function G(r, t) {
var e;
var n;
var a = [];
var i;
var o;
for (e = 0; e < r.length; e++) {
if (t === 1) {
a.push([ r[e] ]);
} else {
i = G(r.slice(e + 1, r.length), t - 1);
for (n = 0; n < i.length; n++) {
o = i[n];
o.unshift(r[e]);
a.push(o);
}
}
}
return a;
}
function H(r, t) {
var e = [];
for (var n = 0; n < r.length; n++) {
if (t === 1) {
e.push([ r[n] ]);
} else {
var a = H(r.slice(n, r.length), t - 1);
for (var i = 0; i < a.length; i++) {
e.push([ r[n] ].concat(a[i]));
}
}
}
return e;
}
function J(r, t, e) {
return r + (e - r) / (t + 1);
}
function K(r, t, e, n) {
return (r * t + e * n) / (t + n);
}
function Q(r, t, e, n, a, i) {
var o = K(t, e, a, i);
return (e * (r + Math.pow(t - o, 2)) + i * (n + Math.pow(a - o, 2))) / (e + i);
}
function R(r) {
if (r.length === 0) {
throw new Error("geometricMean requires at least one data point");
}
var t = 1;
for (var e = 0; e < r.length; e++) {
if (r[e] < 0) {
throw new Error("geometricMean requires only non-negative numbers as input");
}
t *= r[e];
}
return Math.pow(t, 1 / r.length);
}
function U(r) {
if (r.length === 0) {
throw new Error("logAverage requires at least one data point");
}
var t = 0;
for (var e = 0; e < r.length; e++) {
if (r[e] < 0) {
throw new Error("logAverage requires only non-negative numbers as input");
}
t += Math.log(r[e]);
}
return Math.exp(t / r.length);
}
function W(r) {
if (r.length === 0) {
throw new Error("harmonicMean requires at least one data point");
}
var t = 0;
for (var e = 0; e < r.length; e++) {
if (r[e] <= 0) {
throw new Error("harmonicMean requires only positive numbers as input");
}
t += 1 / r[e];
}
return r.length / t;
}
function X(r, t, e) {
return (r * t - e) / (t - 1);
}
function Z(r) {
if (r.length === 0) {
throw new Error("rootMeanSquare requires at least one data point");
}
var t = 0;
for (var e = 0; e < r.length; e++) {
t += Math.pow(r[e], 2);
}
return Math.sqrt(t / r.length);
}
function $(r) {
return D(r) / n(r);
}
function rr(r, t) {
var e = n(r);
var a = o(r);
var i = Math.sqrt(r.length);
return (e - t) / (a / i);
}
function tr(r, t, e) {
var a = r.length;
var i = t.length;
if (!a || !i) {
return null;
}
if (!e) {
e = 0;
}
var o = n(r);
var u = n(t);
var h = Y(r);
var f = Y(t);
if (typeof o === "number" && typeof u === "number" && typeof h === "number" && typeof f === "number") {
var s = ((a - 1) * h + (i - 1) * f) / (a + i - 2);
return (o - u - e) / Math.sqrt(s * (1 / a + 1 / i));
}
}
var er = function r() {
this.totalCount = 0;
this.data = {};
};
er.prototype.train = function r(t, e) {
if (!this.data[e]) {
this.data[e] = {};
}
for (var n in t) {
var a = t[n];
if (this.data[e][n] === undefined) {
this.data[e][n] = {};
}
if (this.data[e][n][a] === undefined) {
this.data[e][n][a] = 0;
}
this.data[e][n][a]++;
}
this.totalCount++;
};
er.prototype.score = function r(t) {
var e = {};
var n;
for (var a in t) {
var i = t[a];
for (n in this.data) {
e[n] = {};
if (this.data[n][a]) {
e[n][a + "_" + i] = (this.data[n][a][i] || 0) / this.totalCount;
} else {
e[n][a + "_" + i] = 0;
}
}
}
var o = {};
for (n in e) {
o[n] = 0;
for (var u in e[n]) {
o[n] += e[n][u];
}
}
return o;
};
var nr = function r() {
this.weights = [];
this.bias = 0;
};
nr.prototype.predict = function r(t) {
if (t.length !== this.weights.length) {
return null;
}
var e = 0;
for (var n = 0; n < this.weights.length; n++) {
e += this.weights[n] * t[n];
}
e += this.bias;
if (e > 0) {
return 1;
} else {
return 0;
}
};
nr.prototype.train = function r(t, e) {
if (e !== 0 && e !== 1) {
return null;
}
if (t.length !== this.weights.length) {
this.weights = t;
this.bias = 1;
}
var n = this.predict(t);
if (typeof n === "number" && n !== e) {
var a = e - n;
for (var i = 0; i < this.weights.length; i++) {
this.weights[i] += a * t[i];
}
this.bias += a;
}
return this;
};
var ar = 1e-4;
function ir(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 e = 2; e <= r; e++) {
t *= e;
}
return t;
}
function or(r) {
if (Number.isInteger(r)) {
if (r <= 0) {
return Number.NaN;
} else {
return ir(r - 1);
}
}
r--;
if (r < 0) {
return Math.PI / (Math.sin(Math.PI * -r) * or(-r));
} else {
var t = Math.pow(r / Math.E, r) * Math.sqrt(2 * Math.PI * (r + 1 / 6));
var e = r + 1 / 4;
var n = 1 + 1 / 144 / Math.pow(e, 2) - 1 / 12960 / Math.pow(e, 3) - 257 / 207360 / Math.pow(e, 4) - 52 / 2612736 / Math.pow(e, 5) + 5741173 / 9405849600 / Math.pow(e, 6) + 37529 / 18811699200 / Math.pow(e, 7);
return t * n;
}
}
var ur = [ .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 hr = 607 / 128;
var fr = Math.log(Math.sqrt(2 * Math.PI));
function sr(r) {
if (r <= 0) {
return Number.POSITIVE_INFINITY;
}
r--;
var t = ur[0];
for (var e = 1; e < 15; e++) {
t += ur[e] / (r + e);
}
var n = hr + .5 + r;
return fr + Math.log(t) - n + (r + .5) * Math.log(n);
}
function vr(r) {
if (r < 0 || r > 1) {
throw new Error("bernoulliDistribution requires probability to be between 0 and 1 inclusive");
}
return [ 1 - r, r ];
}
function lr(r, t) {
if (t < 0 || t > 1 || r <= 0 || r % 1 !== 0) {
return undefined;
}
var e = 0;
var n = 0;
var a = [];
var i = 1;
do {
a[e] = i * Math.pow(t, e) * Math.pow(1 - t, r - e);
n += a[e];
e++;
i = i * (r - e + 1) / e;
} while (n < 1 - ar);
return a;
}
function gr(r) {
if (r <= 0) {
return undefined;
}
var t = 0;
var e = 0;
var n = [];
var a = 1;
do {
n[t] = Math.exp(-r) * Math.pow(r, t) / a;
e += n[t];
t++;
a *= t;
} while (e < 1 - ar);
return n;
}
function cr(r, t, e) {
return (r - t) / e;
}
var wr = Math.sqrt(2 * Math.PI);
function pr(r) {
var t = r;
var e = r;
for (var n = 1; n < 15; n++) {
e *= r * r / (2 * n + 1);
t += e;
}
return Math.round((.5 + t / wr * Math.exp(-r * r / 2)) * 1e4) / 1e4;
}
var Mr = [];
for (var mr = 0; mr <= 3.09; mr += .01) {
Mr.push(pr(mr));
}
function br(r) {
return 1 / (Math.exp(-r) + 1);
}
function dr(r) {
var t = 8 * (Math.PI - 3) / (3 * Math.PI * (4 - Math.PI));
var e = 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 e;
} else {
return -e;
}
}
function qr(r) {
if (r === 0) {
r = ar;
} else if (r >= 1) {
r = 1 - ar;
}
return Math.sqrt(2) * dr(2 * r - 1);
}
function Er(r) {
if (r <= 0 || r >= 1) {
throw new Error("p must be strictly between zero and one");
}
return Math.log(r / (1 - r));
}
function yr(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 Ir(r, t, e, n, a) {
if (typeof r !== "function") {
throw new TypeError("func must be a function");
}
for (var i = 0; i < n; i++) {
var o = (t + e) / 2;
if (r(o) === 0 || Math.abs((e - t) / 2) < a) {
return o;
}
if (yr(r(o)) === yr(r(t))) {
t = o;
} else {
e = o;
}
}
throw new Error("maximum number of iterations exceeded");
}
function Nr(r, t) {
if (r === 0 && t === 0) {
return 0;
}
return Math.abs((r - t) / t);
}
function Pr(r, t, e) {
if (e === void 0) e = ar;
return Nr(r, t) <= e;
}
export { p as $, t as A, k as B, S as C, z as D, vr as E, lr as F, gr as G, rr as H, tr as I, A as J, ir as K, or as L, Pr as M, Ir as N, $ as O, H as P, G as Q, K as R, Q as S, br as T, g as U, sr as V, L as W, U as X, Er as Y, qr as Z, P as _, l as a, X as a0, n as b, J as c, s as d, ar as e, C as f, R as g, W as h, B as i, Y as j, o as k, D as l, v as m, T as n, x as o, c as p, m as q, Z as r, e as s, a as t, j as u, i as v, O as w, u as x, r as y, cr as z };