@graffiticode/l0179-view 0.1.1 → 0.1.3
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.
- package/dist/index.js +17101 -20503
- package/dist/index.js.map +1 -1
- package/dist/scoring-D1FbQ_qt.js +4598 -0
- package/dist/scoring-D1FbQ_qt.js.map +1 -0
- package/dist/scoring.d.ts +31 -2
- package/dist/scoring.js +2 -19
- package/dist/style.css +2 -1
- package/package.json +9 -7
- package/dist/index-3_WJgYM5.js +0 -4501
- package/dist/index-3_WJgYM5.js.map +0 -1
- package/dist/scoring.js.map +0 -1
|
@@ -0,0 +1,4598 @@
|
|
|
1
|
+
//#region ../../node_modules/decimal.js/decimal.mjs
|
|
2
|
+
var e = 9e15, t = 1e9, n = "0123456789abcdef", r = "2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058", i = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789", a = {
|
|
3
|
+
precision: 20,
|
|
4
|
+
rounding: 4,
|
|
5
|
+
modulo: 1,
|
|
6
|
+
toExpNeg: -7,
|
|
7
|
+
toExpPos: 21,
|
|
8
|
+
minE: -e,
|
|
9
|
+
maxE: e,
|
|
10
|
+
crypto: !1
|
|
11
|
+
}, o, s, c = !0, l = "[DecimalError] ", u = l + "Invalid argument: ", d = l + "Precision limit exceeded", f = l + "crypto unavailable", p = "[object Decimal]", m = Math.floor, h = Math.pow, g = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i, _ = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i, v = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i, y = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, b = 1e7, x = 7, S = 9007199254740991, C = r.length - 1, w = i.length - 1, T = { toStringTag: p };
|
|
12
|
+
T.absoluteValue = T.abs = function() {
|
|
13
|
+
var e = new this.constructor(this);
|
|
14
|
+
return e.s < 0 && (e.s = 1), j(e);
|
|
15
|
+
}, T.ceil = function() {
|
|
16
|
+
return j(new this.constructor(this), this.e + 1, 2);
|
|
17
|
+
}, T.clampedTo = T.clamp = function(e, t) {
|
|
18
|
+
var n, r = this, i = r.constructor;
|
|
19
|
+
if (e = new i(e), t = new i(t), !e.s || !t.s) return new i(NaN);
|
|
20
|
+
if (e.gt(t)) throw Error(u + t);
|
|
21
|
+
return n = r.cmp(e), n < 0 ? e : r.cmp(t) > 0 ? t : new i(r);
|
|
22
|
+
}, T.comparedTo = T.cmp = function(e) {
|
|
23
|
+
var t, n, r, i, a = this, o = a.d, s = (e = new a.constructor(e)).d, c = a.s, l = e.s;
|
|
24
|
+
if (!o || !s) return !c || !l ? NaN : c === l ? o === s ? 0 : !o ^ c < 0 ? 1 : -1 : c;
|
|
25
|
+
if (!o[0] || !s[0]) return o[0] ? c : s[0] ? -l : 0;
|
|
26
|
+
if (c !== l) return c;
|
|
27
|
+
if (a.e !== e.e) return a.e > e.e ^ c < 0 ? 1 : -1;
|
|
28
|
+
for (r = o.length, i = s.length, t = 0, n = r < i ? r : i; t < n; ++t) if (o[t] !== s[t]) return o[t] > s[t] ^ c < 0 ? 1 : -1;
|
|
29
|
+
return r === i ? 0 : r > i ^ c < 0 ? 1 : -1;
|
|
30
|
+
}, T.cosine = T.cos = function() {
|
|
31
|
+
var e, t, n = this, r = n.constructor;
|
|
32
|
+
return n.d ? n.d[0] ? (e = r.precision, t = r.rounding, r.precision = e + Math.max(n.e, n.sd()) + x, r.rounding = 1, n = k(r, ue(r, n)), r.precision = e, r.rounding = t, j(s == 2 || s == 3 ? n.neg() : n, e, t, !0)) : new r(1) : new r(NaN);
|
|
33
|
+
}, T.cubeRoot = T.cbrt = function() {
|
|
34
|
+
var e, t, n, r, i, a, o, s, l, u, d = this, f = d.constructor;
|
|
35
|
+
if (!d.isFinite() || d.isZero()) return new f(d);
|
|
36
|
+
for (c = !1, a = d.s * h(d.s * d, 1 / 3), !a || Math.abs(a) == 1 / 0 ? (n = E(d.d), e = d.e, (a = (e - n.length + 1) % 3) && (n += a == 1 || a == -2 ? "0" : "00"), a = h(n, 1 / 3), e = m((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2)), a == 1 / 0 ? n = "5e" + e : (n = a.toExponential(), n = n.slice(0, n.indexOf("e") + 1) + e), r = new f(n), r.s = d.s) : r = new f(a.toString()), o = (e = f.precision) + 3;;) if (s = r, l = s.times(s).times(s), u = l.plus(d), r = A(u.plus(d).times(s), u.plus(l), o + 2, 1), E(s.d).slice(0, o) === (n = E(r.d)).slice(0, o)) {
|
|
37
|
+
if (n = n.slice(o - 3, o + 1), n == "9999" || !i && n == "4999") {
|
|
38
|
+
if (!i && (j(s, e + 1, 0), s.times(s).times(s).eq(d))) {
|
|
39
|
+
r = s;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
o += 4, i = 1;
|
|
43
|
+
} else {
|
|
44
|
+
(!+n || !+n.slice(1) && n.charAt(0) == "5") && (j(r, e + 1, 1), t = !r.times(r).times(r).eq(d));
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return c = !0, j(r, e, f.rounding, t);
|
|
49
|
+
}, T.decimalPlaces = T.dp = function() {
|
|
50
|
+
var e, t = this.d, n = NaN;
|
|
51
|
+
if (t) {
|
|
52
|
+
if (e = t.length - 1, n = (e - m(this.e / x)) * x, e = t[e], e) for (; e % 10 == 0; e /= 10) n--;
|
|
53
|
+
n < 0 && (n = 0);
|
|
54
|
+
}
|
|
55
|
+
return n;
|
|
56
|
+
}, T.dividedBy = T.div = function(e) {
|
|
57
|
+
return A(this, new this.constructor(e));
|
|
58
|
+
}, T.dividedToIntegerBy = T.divToInt = function(e) {
|
|
59
|
+
var t = this, n = t.constructor;
|
|
60
|
+
return j(A(t, new n(e), 0, 1, 1), n.precision, n.rounding);
|
|
61
|
+
}, T.equals = T.eq = function(e) {
|
|
62
|
+
return this.cmp(e) === 0;
|
|
63
|
+
}, T.floor = function() {
|
|
64
|
+
return j(new this.constructor(this), this.e + 1, 3);
|
|
65
|
+
}, T.greaterThan = T.gt = function(e) {
|
|
66
|
+
return this.cmp(e) > 0;
|
|
67
|
+
}, T.greaterThanOrEqualTo = T.gte = function(e) {
|
|
68
|
+
var t = this.cmp(e);
|
|
69
|
+
return t == 1 || t === 0;
|
|
70
|
+
}, T.hyperbolicCosine = T.cosh = function() {
|
|
71
|
+
var e, t, n, r, i, a = this, o = a.constructor, s = new o(1);
|
|
72
|
+
if (!a.isFinite()) return new o(a.s ? 1 / 0 : NaN);
|
|
73
|
+
if (a.isZero()) return s;
|
|
74
|
+
n = o.precision, r = o.rounding, o.precision = n + Math.max(a.e, a.sd()) + 4, o.rounding = 1, i = a.d.length, i < 32 ? (e = Math.ceil(i / 3), t = (1 / le(4, e)).toString()) : (e = 16, t = "2.3283064365386962890625e-10"), a = z(o, 1, a.times(t), new o(1), !0);
|
|
75
|
+
for (var c, l = e, u = new o(8); l--;) c = a.times(a), a = s.minus(c.times(u.minus(c.times(u))));
|
|
76
|
+
return j(a, o.precision = n, o.rounding = r, !0);
|
|
77
|
+
}, T.hyperbolicSine = T.sinh = function() {
|
|
78
|
+
var e, t, n, r, i = this, a = i.constructor;
|
|
79
|
+
if (!i.isFinite() || i.isZero()) return new a(i);
|
|
80
|
+
if (t = a.precision, n = a.rounding, a.precision = t + Math.max(i.e, i.sd()) + 4, a.rounding = 1, r = i.d.length, r < 3) i = z(a, 2, i, i, !0);
|
|
81
|
+
else {
|
|
82
|
+
e = 1.4 * Math.sqrt(r), e = e > 16 ? 16 : e | 0, i = i.times(1 / le(5, e)), i = z(a, 2, i, i, !0);
|
|
83
|
+
for (var o, s = new a(5), c = new a(16), l = new a(20); e--;) o = i.times(i), i = i.times(s.plus(o.times(c.times(o).plus(l))));
|
|
84
|
+
}
|
|
85
|
+
return a.precision = t, a.rounding = n, j(i, t, n, !0);
|
|
86
|
+
}, T.hyperbolicTangent = T.tanh = function() {
|
|
87
|
+
var e, t, n = this, r = n.constructor;
|
|
88
|
+
return n.isFinite() ? n.isZero() ? new r(n) : (e = r.precision, t = r.rounding, r.precision = e + 7, r.rounding = 1, A(n.sinh(), n.cosh(), r.precision = e, r.rounding = t)) : new r(n.s);
|
|
89
|
+
}, T.inverseCosine = T.acos = function() {
|
|
90
|
+
var e = this, t = e.constructor, n = e.abs().cmp(1), r = t.precision, i = t.rounding;
|
|
91
|
+
return n === -1 ? e.isZero() ? P(t, r + 4, i).times(.5) : (t.precision = r + 6, t.rounding = 1, e = new t(1).minus(e).div(e.plus(1)).sqrt().atan(), t.precision = r, t.rounding = i, e.times(2)) : n === 0 ? e.isNeg() ? P(t, r, i) : new t(0) : new t(NaN);
|
|
92
|
+
}, T.inverseHyperbolicCosine = T.acosh = function() {
|
|
93
|
+
var e, t, n = this, r = n.constructor;
|
|
94
|
+
return n.lte(1) ? new r(n.eq(1) ? 0 : NaN) : n.isFinite() ? (e = r.precision, t = r.rounding, r.precision = e + Math.max(Math.abs(n.e), n.sd()) + 4, r.rounding = 1, c = !1, n = n.times(n).minus(1).sqrt().plus(n), c = !0, r.precision = e, r.rounding = t, n.ln()) : new r(n);
|
|
95
|
+
}, T.inverseHyperbolicSine = T.asinh = function() {
|
|
96
|
+
var e, t, n = this, r = n.constructor;
|
|
97
|
+
return !n.isFinite() || n.isZero() ? new r(n) : (e = r.precision, t = r.rounding, r.precision = e + 2 * Math.max(Math.abs(n.e), n.sd()) + 6, r.rounding = 1, c = !1, n = n.times(n).plus(1).sqrt().plus(n), c = !0, r.precision = e, r.rounding = t, n.ln());
|
|
98
|
+
}, T.inverseHyperbolicTangent = T.atanh = function() {
|
|
99
|
+
var e, t, n, r, i = this, a = i.constructor;
|
|
100
|
+
return i.isFinite() ? i.e >= 0 ? new a(i.abs().eq(1) ? i.s / 0 : i.isZero() ? i : NaN) : (e = a.precision, t = a.rounding, r = i.sd(), Math.max(r, e) < 2 * -i.e - 1 ? j(new a(i), e, t, !0) : (a.precision = n = r - i.e, i = A(i.plus(1), new a(1).minus(i), n + e, 1), a.precision = e + 4, a.rounding = 1, i = i.ln(), a.precision = e, a.rounding = t, i.times(.5))) : new a(NaN);
|
|
101
|
+
}, T.inverseSine = T.asin = function() {
|
|
102
|
+
var e, t, n, r, i = this, a = i.constructor;
|
|
103
|
+
return i.isZero() ? new a(i) : (t = i.abs().cmp(1), n = a.precision, r = a.rounding, t === -1 ? (a.precision = n + 6, a.rounding = 1, i = i.div(new a(1).minus(i.times(i)).sqrt().plus(1)).atan(), a.precision = n, a.rounding = r, i.times(2)) : t === 0 ? (e = P(a, n + 4, r).times(.5), e.s = i.s, e) : new a(NaN));
|
|
104
|
+
}, T.inverseTangent = T.atan = function() {
|
|
105
|
+
var e, t, n, r, i, a, o, s, l, u = this, d = u.constructor, f = d.precision, p = d.rounding;
|
|
106
|
+
if (!u.isFinite()) {
|
|
107
|
+
if (!u.s) return new d(NaN);
|
|
108
|
+
if (f + 4 <= w) return o = P(d, f + 4, p).times(.5), o.s = u.s, o;
|
|
109
|
+
} else if (u.isZero()) return new d(u);
|
|
110
|
+
else if (u.abs().eq(1) && f + 4 <= w) return o = P(d, f + 4, p).times(.25), o.s = u.s, o;
|
|
111
|
+
for (d.precision = s = f + 10, d.rounding = 1, n = Math.min(28, s / x + 2 | 0), e = n; e; --e) u = u.div(u.times(u).plus(1).sqrt().plus(1));
|
|
112
|
+
for (c = !1, t = Math.ceil(s / x), r = 1, l = u.times(u), o = new d(u), i = u; e !== -1;) if (i = i.times(l), a = o.minus(i.div(r += 2)), i = i.times(l), o = a.plus(i.div(r += 2)), o.d[t] !== void 0) for (e = t; o.d[e] === a.d[e] && e--;);
|
|
113
|
+
return n && (o = o.times(2 << n - 1)), c = !0, j(o, d.precision = f, d.rounding = p, !0);
|
|
114
|
+
}, T.isFinite = function() {
|
|
115
|
+
return !!this.d;
|
|
116
|
+
}, T.isInteger = T.isInt = function() {
|
|
117
|
+
return !!this.d && m(this.e / x) > this.d.length - 2;
|
|
118
|
+
}, T.isNaN = function() {
|
|
119
|
+
return !this.s;
|
|
120
|
+
}, T.isNegative = T.isNeg = function() {
|
|
121
|
+
return this.s < 0;
|
|
122
|
+
}, T.isPositive = T.isPos = function() {
|
|
123
|
+
return this.s > 0;
|
|
124
|
+
}, T.isZero = function() {
|
|
125
|
+
return !!this.d && this.d[0] === 0;
|
|
126
|
+
}, T.lessThan = T.lt = function(e) {
|
|
127
|
+
return this.cmp(e) < 0;
|
|
128
|
+
}, T.lessThanOrEqualTo = T.lte = function(e) {
|
|
129
|
+
return this.cmp(e) < 1;
|
|
130
|
+
}, T.logarithm = T.log = function(e) {
|
|
131
|
+
var t, n, r, i, a, o, s, l, u = this, d = u.constructor, f = d.precision, p = d.rounding, m = 5;
|
|
132
|
+
if (e == null) e = new d(10), t = !0;
|
|
133
|
+
else {
|
|
134
|
+
if (e = new d(e), n = e.d, e.s < 0 || !n || !n[0] || e.eq(1)) return new d(NaN);
|
|
135
|
+
t = e.eq(10);
|
|
136
|
+
}
|
|
137
|
+
if (n = u.d, u.s < 0 || !n || !n[0] || u.eq(1)) return new d(n && !n[0] ? -1 / 0 : u.s == 1 ? n ? 0 : 1 / 0 : NaN);
|
|
138
|
+
if (t) {
|
|
139
|
+
if (n.length > 1) a = !0;
|
|
140
|
+
else {
|
|
141
|
+
for (i = n[0]; i % 10 == 0;) i /= 10;
|
|
142
|
+
a = i !== 1;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (c = !1, s = f + m, o = L(u, s), r = t ? te(d, s + 10) : L(e, s), l = A(o, r, s, 1), O(l.d, i = f, p)) do
|
|
146
|
+
if (s += 10, o = L(u, s), r = t ? te(d, s + 10) : L(e, s), l = A(o, r, s, 1), !a) {
|
|
147
|
+
+E(l.d).slice(i + 1, i + 15) + 1 == 0x5af3107a4000 && (l = j(l, f + 1, 0));
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
while (O(l.d, i += 10, p));
|
|
151
|
+
return c = !0, j(l, f, p);
|
|
152
|
+
}, T.minus = T.sub = function(e) {
|
|
153
|
+
var t, n, r, i, a, o, s, l, u, d, f, p, h = this, g = h.constructor;
|
|
154
|
+
if (e = new g(e), !h.d || !e.d) return !h.s || !e.s ? e = new g(NaN) : h.d ? e.s = -e.s : e = new g(e.d || h.s !== e.s ? h : NaN), e;
|
|
155
|
+
if (h.s != e.s) return e.s = -e.s, h.plus(e);
|
|
156
|
+
if (u = h.d, p = e.d, s = g.precision, l = g.rounding, !u[0] || !p[0]) {
|
|
157
|
+
if (p[0]) e.s = -e.s;
|
|
158
|
+
else if (u[0]) e = new g(h);
|
|
159
|
+
else return new g(l === 3 ? -0 : 0);
|
|
160
|
+
return c ? j(e, s, l) : e;
|
|
161
|
+
}
|
|
162
|
+
if (n = m(e.e / x), d = m(h.e / x), u = u.slice(), a = d - n, a) {
|
|
163
|
+
for (f = a < 0, f ? (t = u, a = -a, o = p.length) : (t = p, n = d, o = u.length), r = Math.max(Math.ceil(s / x), o) + 2, a > r && (a = r, t.length = 1), t.reverse(), r = a; r--;) t.push(0);
|
|
164
|
+
t.reverse();
|
|
165
|
+
} else {
|
|
166
|
+
for (r = u.length, o = p.length, f = r < o, f && (o = r), r = 0; r < o; r++) if (u[r] != p[r]) {
|
|
167
|
+
f = u[r] < p[r];
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
a = 0;
|
|
171
|
+
}
|
|
172
|
+
for (f && (t = u, u = p, p = t, e.s = -e.s), o = u.length, r = p.length - o; r > 0; --r) u[o++] = 0;
|
|
173
|
+
for (r = p.length; r > a;) {
|
|
174
|
+
if (u[--r] < p[r]) {
|
|
175
|
+
for (i = r; i && u[--i] === 0;) u[i] = b - 1;
|
|
176
|
+
--u[i], u[r] += b;
|
|
177
|
+
}
|
|
178
|
+
u[r] -= p[r];
|
|
179
|
+
}
|
|
180
|
+
for (; u[--o] === 0;) u.pop();
|
|
181
|
+
for (; u[0] === 0; u.shift()) --n;
|
|
182
|
+
return u[0] ? (e.d = u, e.e = N(u, n), c ? j(e, s, l) : e) : new g(l === 3 ? -0 : 0);
|
|
183
|
+
}, T.modulo = T.mod = function(e) {
|
|
184
|
+
var t, n = this, r = n.constructor;
|
|
185
|
+
return e = new r(e), !n.d || !e.s || e.d && !e.d[0] ? new r(NaN) : !e.d || n.d && !n.d[0] ? j(new r(n), r.precision, r.rounding) : (c = !1, r.modulo == 9 ? (t = A(n, e.abs(), 0, 3, 1), t.s *= e.s) : t = A(n, e, 0, r.modulo, 1), t = t.times(e), c = !0, n.minus(t));
|
|
186
|
+
}, T.naturalExponential = T.exp = function() {
|
|
187
|
+
return ae(this);
|
|
188
|
+
}, T.naturalLogarithm = T.ln = function() {
|
|
189
|
+
return L(this);
|
|
190
|
+
}, T.negated = T.neg = function() {
|
|
191
|
+
var e = new this.constructor(this);
|
|
192
|
+
return e.s = -e.s, j(e);
|
|
193
|
+
}, T.plus = T.add = function(e) {
|
|
194
|
+
var t, n, r, i, a, o, s, l, u, d, f = this, p = f.constructor;
|
|
195
|
+
if (e = new p(e), !f.d || !e.d) return !f.s || !e.s ? e = new p(NaN) : f.d || (e = new p(e.d || f.s === e.s ? f : NaN)), e;
|
|
196
|
+
if (f.s != e.s) return e.s = -e.s, f.minus(e);
|
|
197
|
+
if (u = f.d, d = e.d, s = p.precision, l = p.rounding, !u[0] || !d[0]) return d[0] || (e = new p(f)), c ? j(e, s, l) : e;
|
|
198
|
+
if (a = m(f.e / x), r = m(e.e / x), u = u.slice(), i = a - r, i) {
|
|
199
|
+
for (i < 0 ? (n = u, i = -i, o = d.length) : (n = d, r = a, o = u.length), a = Math.ceil(s / x), o = a > o ? a + 1 : o + 1, i > o && (i = o, n.length = 1), n.reverse(); i--;) n.push(0);
|
|
200
|
+
n.reverse();
|
|
201
|
+
}
|
|
202
|
+
for (o = u.length, i = d.length, o - i < 0 && (i = o, n = d, d = u, u = n), t = 0; i;) t = (u[--i] = u[i] + d[i] + t) / b | 0, u[i] %= b;
|
|
203
|
+
for (t && (u.unshift(t), ++r), o = u.length; u[--o] == 0;) u.pop();
|
|
204
|
+
return e.d = u, e.e = N(u, r), c ? j(e, s, l) : e;
|
|
205
|
+
}, T.precision = T.sd = function(e) {
|
|
206
|
+
var t, n = this;
|
|
207
|
+
if (e !== void 0 && e !== !!e && e !== 1 && e !== 0) throw Error(u + e);
|
|
208
|
+
return n.d ? (t = F(n.d), e && n.e + 1 > t && (t = n.e + 1)) : t = NaN, t;
|
|
209
|
+
}, T.round = function() {
|
|
210
|
+
var e = this, t = e.constructor;
|
|
211
|
+
return j(new t(e), e.e + 1, t.rounding);
|
|
212
|
+
}, T.sine = T.sin = function() {
|
|
213
|
+
var e, t, n = this, r = n.constructor;
|
|
214
|
+
return n.isFinite() ? n.isZero() ? new r(n) : (e = r.precision, t = r.rounding, r.precision = e + Math.max(n.e, n.sd()) + x, r.rounding = 1, n = ce(r, ue(r, n)), r.precision = e, r.rounding = t, j(s > 2 ? n.neg() : n, e, t, !0)) : new r(NaN);
|
|
215
|
+
}, T.squareRoot = T.sqrt = function() {
|
|
216
|
+
var e, t, n, r, i, a, o = this, s = o.d, l = o.e, u = o.s, d = o.constructor;
|
|
217
|
+
if (u !== 1 || !s || !s[0]) return new d(!u || u < 0 && (!s || s[0]) ? NaN : s ? o : 1 / 0);
|
|
218
|
+
for (c = !1, u = Math.sqrt(+o), u == 0 || u == 1 / 0 ? (t = E(s), (t.length + l) % 2 == 0 && (t += "0"), u = Math.sqrt(t), l = m((l + 1) / 2) - (l < 0 || l % 2), u == 1 / 0 ? t = "5e" + l : (t = u.toExponential(), t = t.slice(0, t.indexOf("e") + 1) + l), r = new d(t)) : r = new d(u.toString()), n = (l = d.precision) + 3;;) if (a = r, r = a.plus(A(o, a, n + 2, 1)).times(.5), E(a.d).slice(0, n) === (t = E(r.d)).slice(0, n)) {
|
|
219
|
+
if (t = t.slice(n - 3, n + 1), t == "9999" || !i && t == "4999") {
|
|
220
|
+
if (!i && (j(a, l + 1, 0), a.times(a).eq(o))) {
|
|
221
|
+
r = a;
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
n += 4, i = 1;
|
|
225
|
+
} else {
|
|
226
|
+
(!+t || !+t.slice(1) && t.charAt(0) == "5") && (j(r, l + 1, 1), e = !r.times(r).eq(o));
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return c = !0, j(r, l, d.rounding, e);
|
|
231
|
+
}, T.tangent = T.tan = function() {
|
|
232
|
+
var e, t, n = this, r = n.constructor;
|
|
233
|
+
return n.isFinite() ? n.isZero() ? new r(n) : (e = r.precision, t = r.rounding, r.precision = e + 10, r.rounding = 1, n = n.sin(), n.s = 1, n = A(n, new r(1).minus(n.times(n)).sqrt(), e + 10, 0), r.precision = e, r.rounding = t, j(s == 2 || s == 4 ? n.neg() : n, e, t, !0)) : new r(NaN);
|
|
234
|
+
}, T.times = T.mul = function(e) {
|
|
235
|
+
var t, n, r, i, a, o, s, l, u, d = this, f = d.constructor, p = d.d, h = (e = new f(e)).d;
|
|
236
|
+
if (e.s *= d.s, !p || !p[0] || !h || !h[0]) return new f(!e.s || p && !p[0] && !h || h && !h[0] && !p ? NaN : !p || !h ? e.s / 0 : e.s * 0);
|
|
237
|
+
for (n = m(d.e / x) + m(e.e / x), l = p.length, u = h.length, l < u && (a = p, p = h, h = a, o = l, l = u, u = o), a = [], o = l + u, r = o; r--;) a.push(0);
|
|
238
|
+
for (r = u; --r >= 0;) {
|
|
239
|
+
for (t = 0, i = l + r; i > r;) s = a[i] + h[r] * p[i - r - 1] + t, a[i--] = s % b | 0, t = s / b | 0;
|
|
240
|
+
a[i] = (a[i] + t) % b | 0;
|
|
241
|
+
}
|
|
242
|
+
for (; !a[--o];) a.pop();
|
|
243
|
+
return t ? ++n : a.shift(), e.d = a, e.e = N(a, n), c ? j(e, f.precision, f.rounding) : e;
|
|
244
|
+
}, T.toBinary = function(e, t) {
|
|
245
|
+
return de(this, 2, e, t);
|
|
246
|
+
}, T.toDecimalPlaces = T.toDP = function(e, n) {
|
|
247
|
+
var r = this, i = r.constructor;
|
|
248
|
+
return r = new i(r), e === void 0 ? r : (D(e, 0, t), n === void 0 ? n = i.rounding : D(n, 0, 8), j(r, e + r.e + 1, n));
|
|
249
|
+
}, T.toExponential = function(e, n) {
|
|
250
|
+
var r, i = this, a = i.constructor;
|
|
251
|
+
return e === void 0 ? r = M(i, !0) : (D(e, 0, t), n === void 0 ? n = a.rounding : D(n, 0, 8), i = j(new a(i), e + 1, n), r = M(i, !0, e + 1)), i.isNeg() && !i.isZero() ? "-" + r : r;
|
|
252
|
+
}, T.toFixed = function(e, n) {
|
|
253
|
+
var r, i, a = this, o = a.constructor;
|
|
254
|
+
return e === void 0 ? r = M(a) : (D(e, 0, t), n === void 0 ? n = o.rounding : D(n, 0, 8), i = j(new o(a), e + a.e + 1, n), r = M(i, !1, e + i.e + 1)), a.isNeg() && !a.isZero() ? "-" + r : r;
|
|
255
|
+
}, T.toFraction = function(e) {
|
|
256
|
+
var t, n, r, i, a, o, s, l, d, f, p, m, g = this, _ = g.d, v = g.constructor;
|
|
257
|
+
if (!_) return new v(g);
|
|
258
|
+
if (d = n = new v(1), r = l = new v(0), t = new v(r), a = t.e = F(_) - g.e - 1, o = a % x, t.d[0] = h(10, o < 0 ? x + o : o), e == null) e = a > 0 ? t : d;
|
|
259
|
+
else {
|
|
260
|
+
if (s = new v(e), !s.isInt() || s.lt(d)) throw Error(u + s);
|
|
261
|
+
e = s.gt(t) ? a > 0 ? t : d : s;
|
|
262
|
+
}
|
|
263
|
+
for (c = !1, s = new v(E(_)), f = v.precision, v.precision = a = _.length * x * 2; p = A(s, t, 0, 1, 1), i = n.plus(p.times(r)), i.cmp(e) != 1;) n = r, r = i, i = d, d = l.plus(p.times(i)), l = i, i = t, t = s.minus(p.times(i)), s = i;
|
|
264
|
+
return i = A(e.minus(n), r, 0, 1, 1), l = l.plus(i.times(d)), n = n.plus(i.times(r)), l.s = d.s = g.s, m = A(d, r, a, 1).minus(g).abs().cmp(A(l, n, a, 1).minus(g).abs()) < 1 ? [d, r] : [l, n], v.precision = f, c = !0, m;
|
|
265
|
+
}, T.toHexadecimal = T.toHex = function(e, t) {
|
|
266
|
+
return de(this, 16, e, t);
|
|
267
|
+
}, T.toNearest = function(e, t) {
|
|
268
|
+
var n = this, r = n.constructor;
|
|
269
|
+
if (n = new r(n), e == null) {
|
|
270
|
+
if (!n.d) return n;
|
|
271
|
+
e = new r(1), t = r.rounding;
|
|
272
|
+
} else {
|
|
273
|
+
if (e = new r(e), t === void 0 ? t = r.rounding : D(t, 0, 8), !n.d) return e.s ? n : e;
|
|
274
|
+
if (!e.d) return e.s && (e.s = n.s), e;
|
|
275
|
+
}
|
|
276
|
+
return e.d[0] ? (c = !1, n = A(n, e, 0, t, 1).times(e), c = !0, j(n)) : (e.s = n.s, n = e), n;
|
|
277
|
+
}, T.toNumber = function() {
|
|
278
|
+
return +this;
|
|
279
|
+
}, T.toOctal = function(e, t) {
|
|
280
|
+
return de(this, 8, e, t);
|
|
281
|
+
}, T.toPower = T.pow = function(e) {
|
|
282
|
+
var t, n, r, i, a, o, s = this, l = s.constructor, u = +(e = new l(e));
|
|
283
|
+
if (!s.d || !e.d || !s.d[0] || !e.d[0]) return new l(h(+s, u));
|
|
284
|
+
if (s = new l(s), s.eq(1)) return s;
|
|
285
|
+
if (r = l.precision, a = l.rounding, e.eq(1)) return j(s, r, a);
|
|
286
|
+
if (t = m(e.e / x), t >= e.d.length - 1 && (n = u < 0 ? -u : u) <= S) return i = I(l, s, n, r), e.s < 0 ? new l(1).div(i) : j(i, r, a);
|
|
287
|
+
if (o = s.s, o < 0) {
|
|
288
|
+
if (t < e.d.length - 1) return new l(NaN);
|
|
289
|
+
if (e.d[t] & 1 || (o = 1), s.e == 0 && s.d[0] == 1 && s.d.length == 1) return s.s = o, s;
|
|
290
|
+
}
|
|
291
|
+
return n = h(+s, u), t = n == 0 || !isFinite(n) ? m(u * (Math.log("0." + E(s.d)) / Math.LN10 + s.e + 1)) : new l(n + "").e, t > l.maxE + 1 || t < l.minE - 1 ? new l(t > 0 ? o / 0 : 0) : (c = !1, l.rounding = s.s = 1, n = Math.min(12, (t + "").length), i = ae(e.times(L(s, r + n)), r), i.d && (i = j(i, r + 5, 1), O(i.d, r, a) && (t = r + 10, i = j(ae(e.times(L(s, t + n)), t), t + 5, 1), +E(i.d).slice(r + 1, r + 15) + 1 == 0x5af3107a4000 && (i = j(i, r + 1, 0)))), i.s = o, c = !0, l.rounding = a, j(i, r, a));
|
|
292
|
+
}, T.toPrecision = function(e, n) {
|
|
293
|
+
var r, i = this, a = i.constructor;
|
|
294
|
+
return e === void 0 ? r = M(i, i.e <= a.toExpNeg || i.e >= a.toExpPos) : (D(e, 1, t), n === void 0 ? n = a.rounding : D(n, 0, 8), i = j(new a(i), e, n), r = M(i, e <= i.e || i.e <= a.toExpNeg, e)), i.isNeg() && !i.isZero() ? "-" + r : r;
|
|
295
|
+
}, T.toSignificantDigits = T.toSD = function(e, n) {
|
|
296
|
+
var r = this, i = r.constructor;
|
|
297
|
+
return e === void 0 ? (e = i.precision, n = i.rounding) : (D(e, 1, t), n === void 0 ? n = i.rounding : D(n, 0, 8)), j(new i(r), e, n);
|
|
298
|
+
}, T.toString = function() {
|
|
299
|
+
var e = this, t = e.constructor, n = M(e, e.e <= t.toExpNeg || e.e >= t.toExpPos);
|
|
300
|
+
return e.isNeg() && !e.isZero() ? "-" + n : n;
|
|
301
|
+
}, T.truncated = T.trunc = function() {
|
|
302
|
+
return j(new this.constructor(this), this.e + 1, 1);
|
|
303
|
+
}, T.valueOf = T.toJSON = function() {
|
|
304
|
+
var e = this, t = e.constructor, n = M(e, e.e <= t.toExpNeg || e.e >= t.toExpPos);
|
|
305
|
+
return e.isNeg() ? "-" + n : n;
|
|
306
|
+
};
|
|
307
|
+
function E(e) {
|
|
308
|
+
var t, n, r, i = e.length - 1, a = "", o = e[0];
|
|
309
|
+
if (i > 0) {
|
|
310
|
+
for (a += o, t = 1; t < i; t++) r = e[t] + "", n = x - r.length, n && (a += ne(n)), a += r;
|
|
311
|
+
o = e[t], r = o + "", n = x - r.length, n && (a += ne(n));
|
|
312
|
+
} else if (o === 0) return "0";
|
|
313
|
+
for (; o % 10 == 0;) o /= 10;
|
|
314
|
+
return a + o;
|
|
315
|
+
}
|
|
316
|
+
function D(e, t, n) {
|
|
317
|
+
if (e !== ~~e || e < t || e > n) throw Error(u + e);
|
|
318
|
+
}
|
|
319
|
+
function O(e, t, n, r) {
|
|
320
|
+
for (var i, a = e[0], o, s; a >= 10; a /= 10) --t;
|
|
321
|
+
return --t < 0 ? (t += x, i = 0) : (i = Math.ceil((t + 1) / x), t %= x), a = h(10, x - t), s = e[i] % a | 0, r == null ? t < 3 ? (t == 0 ? s = s / 100 | 0 : t == 1 && (s = s / 10 | 0), o = n < 4 && s == 99999 || n > 3 && s == 49999 || s == 5e4 || s == 0) : o = (n < 4 && s + 1 == a || n > 3 && s + 1 == a / 2) && (e[i + 1] / a / 100 | 0) == h(10, t - 2) - 1 || (s == a / 2 || s == 0) && !(e[i + 1] / a / 100 | 0) : t < 4 ? (t == 0 ? s = s / 1e3 | 0 : t == 1 ? s = s / 100 | 0 : t == 2 && (s = s / 10 | 0), o = (r || n < 4) && s == 9999 || !r && n > 3 && s == 4999) : o = ((r || n < 4) && s + 1 == a || !r && n > 3 && s + 1 == a / 2) && (e[i + 1] / a / 1e3 | 0) == h(10, t - 3) - 1, o;
|
|
322
|
+
}
|
|
323
|
+
function ee(e, t, r) {
|
|
324
|
+
for (var i, a = [0], o, s = 0, c = e.length; s < c;) {
|
|
325
|
+
for (o = a.length; o--;) a[o] *= t;
|
|
326
|
+
for (a[0] += n.indexOf(e.charAt(s++)), i = 0; i < a.length; i++) a[i] > r - 1 && (a[i + 1] === void 0 && (a[i + 1] = 0), a[i + 1] += a[i] / r | 0, a[i] %= r);
|
|
327
|
+
}
|
|
328
|
+
return a.reverse();
|
|
329
|
+
}
|
|
330
|
+
function k(e, t) {
|
|
331
|
+
var n, r, i;
|
|
332
|
+
if (t.isZero()) return t;
|
|
333
|
+
r = t.d.length, r < 32 ? (n = Math.ceil(r / 3), i = (1 / le(4, n)).toString()) : (n = 16, i = "2.3283064365386962890625e-10"), e.precision += n, t = z(e, 1, t.times(i), new e(1));
|
|
334
|
+
for (var a = n; a--;) {
|
|
335
|
+
var o = t.times(t);
|
|
336
|
+
t = o.times(o).minus(o).times(8).plus(1);
|
|
337
|
+
}
|
|
338
|
+
return e.precision -= n, t;
|
|
339
|
+
}
|
|
340
|
+
var A = (function() {
|
|
341
|
+
function e(e, t, n) {
|
|
342
|
+
var r, i = 0, a = e.length;
|
|
343
|
+
for (e = e.slice(); a--;) r = e[a] * t + i, e[a] = r % n | 0, i = r / n | 0;
|
|
344
|
+
return i && e.unshift(i), e;
|
|
345
|
+
}
|
|
346
|
+
function t(e, t, n, r) {
|
|
347
|
+
var i, a;
|
|
348
|
+
if (n != r) a = n > r ? 1 : -1;
|
|
349
|
+
else for (i = a = 0; i < n; i++) if (e[i] != t[i]) {
|
|
350
|
+
a = e[i] > t[i] ? 1 : -1;
|
|
351
|
+
break;
|
|
352
|
+
}
|
|
353
|
+
return a;
|
|
354
|
+
}
|
|
355
|
+
function n(e, t, n, r) {
|
|
356
|
+
for (var i = 0; n--;) e[n] -= i, i = +(e[n] < t[n]), e[n] = i * r + e[n] - t[n];
|
|
357
|
+
for (; !e[0] && e.length > 1;) e.shift();
|
|
358
|
+
}
|
|
359
|
+
return function(r, i, a, s, c, l) {
|
|
360
|
+
var u, d, f, p, h, g, _, v, y, S, C, w, T, E, D, O, ee, k, A, M, N = r.constructor, te = r.s == i.s ? 1 : -1, P = r.d, F = i.d;
|
|
361
|
+
if (!P || !P[0] || !F || !F[0]) return new N(!r.s || !i.s || (P ? F && P[0] == F[0] : !F) ? NaN : P && P[0] == 0 || !F ? te * 0 : te / 0);
|
|
362
|
+
for (l ? (h = 1, d = r.e - i.e) : (l = b, h = x, d = m(r.e / h) - m(i.e / h)), A = F.length, ee = P.length, y = new N(te), S = y.d = [], f = 0; F[f] == (P[f] || 0); f++);
|
|
363
|
+
if (F[f] > (P[f] || 0) && d--, a == null ? (E = a = N.precision, s = N.rounding) : E = c ? a + (r.e - i.e) + 1 : a, E < 0) S.push(1), g = !0;
|
|
364
|
+
else {
|
|
365
|
+
if (E = E / h + 2 | 0, f = 0, A == 1) {
|
|
366
|
+
for (p = 0, F = F[0], E++; (f < ee || p) && E--; f++) D = p * l + (P[f] || 0), S[f] = D / F | 0, p = D % F | 0;
|
|
367
|
+
g = p || f < ee;
|
|
368
|
+
} else {
|
|
369
|
+
for (p = l / (F[0] + 1) | 0, p > 1 && (F = e(F, p, l), P = e(P, p, l), A = F.length, ee = P.length), O = A, C = P.slice(0, A), w = C.length; w < A;) C[w++] = 0;
|
|
370
|
+
M = F.slice(), M.unshift(0), k = F[0], F[1] >= l / 2 && ++k;
|
|
371
|
+
do
|
|
372
|
+
p = 0, u = t(F, C, A, w), u < 0 ? (T = C[0], A != w && (T = T * l + (C[1] || 0)), p = T / k | 0, p > 1 ? (p >= l && (p = l - 1), _ = e(F, p, l), v = _.length, w = C.length, u = t(_, C, v, w), u == 1 && (p--, n(_, A < v ? M : F, v, l))) : (p == 0 && (u = p = 1), _ = F.slice()), v = _.length, v < w && _.unshift(0), n(C, _, w, l), u == -1 && (w = C.length, u = t(F, C, A, w), u < 1 && (p++, n(C, A < w ? M : F, w, l))), w = C.length) : u === 0 && (p++, C = [0]), S[f++] = p, u && C[0] ? C[w++] = P[O] || 0 : (C = [P[O]], w = 1);
|
|
373
|
+
while ((O++ < ee || C[0] !== void 0) && E--);
|
|
374
|
+
g = C[0] !== void 0;
|
|
375
|
+
}
|
|
376
|
+
S[0] || S.shift();
|
|
377
|
+
}
|
|
378
|
+
if (h == 1) y.e = d, o = g;
|
|
379
|
+
else {
|
|
380
|
+
for (f = 1, p = S[0]; p >= 10; p /= 10) f++;
|
|
381
|
+
y.e = f + d * h - 1, j(y, c ? a + y.e + 1 : a, s, g);
|
|
382
|
+
}
|
|
383
|
+
return y;
|
|
384
|
+
};
|
|
385
|
+
})();
|
|
386
|
+
function j(e, t, n, r) {
|
|
387
|
+
var i, a, o, s, l, u, d, f, p, m = e.constructor;
|
|
388
|
+
out: if (t != null) {
|
|
389
|
+
if (f = e.d, !f) return e;
|
|
390
|
+
for (i = 1, s = f[0]; s >= 10; s /= 10) i++;
|
|
391
|
+
if (a = t - i, a < 0) a += x, o = t, d = f[p = 0], l = d / h(10, i - o - 1) % 10 | 0;
|
|
392
|
+
else if (p = Math.ceil((a + 1) / x), s = f.length, p >= s) {
|
|
393
|
+
if (r) {
|
|
394
|
+
for (; s++ <= p;) f.push(0);
|
|
395
|
+
d = l = 0, i = 1, a %= x, o = a - x + 1;
|
|
396
|
+
} else break out;
|
|
397
|
+
} else {
|
|
398
|
+
for (d = s = f[p], i = 1; s >= 10; s /= 10) i++;
|
|
399
|
+
a %= x, o = a - x + i, l = o < 0 ? 0 : d / h(10, i - o - 1) % 10 | 0;
|
|
400
|
+
}
|
|
401
|
+
if (r = r || t < 0 || f[p + 1] !== void 0 || (o < 0 ? d : d % h(10, i - o - 1)), u = n < 4 ? (l || r) && (n == 0 || n == (e.s < 0 ? 3 : 2)) : l > 5 || l == 5 && (n == 4 || r || n == 6 && (a > 0 ? o > 0 ? d / h(10, i - o) : 0 : f[p - 1]) % 10 & 1 || n == (e.s < 0 ? 8 : 7)), t < 1 || !f[0]) return f.length = 0, u ? (t -= e.e + 1, f[0] = h(10, (x - t % x) % x), e.e = -t || 0) : f[0] = e.e = 0, e;
|
|
402
|
+
if (a == 0 ? (f.length = p, s = 1, p--) : (f.length = p + 1, s = h(10, x - a), f[p] = o > 0 ? (d / h(10, i - o) % h(10, o) | 0) * s : 0), u) for (;;) if (p == 0) {
|
|
403
|
+
for (a = 1, o = f[0]; o >= 10; o /= 10) a++;
|
|
404
|
+
for (o = f[0] += s, s = 1; o >= 10; o /= 10) s++;
|
|
405
|
+
a != s && (e.e++, f[0] == b && (f[0] = 1));
|
|
406
|
+
break;
|
|
407
|
+
} else {
|
|
408
|
+
if (f[p] += s, f[p] != b) break;
|
|
409
|
+
f[p--] = 0, s = 1;
|
|
410
|
+
}
|
|
411
|
+
for (a = f.length; f[--a] === 0;) f.pop();
|
|
412
|
+
}
|
|
413
|
+
return c && (e.e > m.maxE ? (e.d = null, e.e = NaN) : e.e < m.minE && (e.e = 0, e.d = [0])), e;
|
|
414
|
+
}
|
|
415
|
+
function M(e, t, n) {
|
|
416
|
+
if (!e.isFinite()) return R(e);
|
|
417
|
+
var r, i = e.e, a = E(e.d), o = a.length;
|
|
418
|
+
return t ? (n && (r = n - o) > 0 ? a = a.charAt(0) + "." + a.slice(1) + ne(r) : o > 1 && (a = a.charAt(0) + "." + a.slice(1)), a = a + (e.e < 0 ? "e" : "e+") + e.e) : i < 0 ? (a = "0." + ne(-i - 1) + a, n && (r = n - o) > 0 && (a += ne(r))) : i >= o ? (a += ne(i + 1 - o), n && (r = n - i - 1) > 0 && (a = a + "." + ne(r))) : ((r = i + 1) < o && (a = a.slice(0, r) + "." + a.slice(r)), n && (r = n - o) > 0 && (i + 1 === o && (a += "."), a += ne(r))), a;
|
|
419
|
+
}
|
|
420
|
+
function N(e, t) {
|
|
421
|
+
var n = e[0];
|
|
422
|
+
for (t *= x; n >= 10; n /= 10) t++;
|
|
423
|
+
return t;
|
|
424
|
+
}
|
|
425
|
+
function te(e, t, n) {
|
|
426
|
+
if (t > C) throw c = !0, n && (e.precision = n), Error(d);
|
|
427
|
+
return j(new e(r), t, 1, !0);
|
|
428
|
+
}
|
|
429
|
+
function P(e, t, n) {
|
|
430
|
+
if (t > w) throw Error(d);
|
|
431
|
+
return j(new e(i), t, n, !0);
|
|
432
|
+
}
|
|
433
|
+
function F(e) {
|
|
434
|
+
var t = e.length - 1, n = t * x + 1;
|
|
435
|
+
if (t = e[t], t) {
|
|
436
|
+
for (; t % 10 == 0; t /= 10) n--;
|
|
437
|
+
for (t = e[0]; t >= 10; t /= 10) n++;
|
|
438
|
+
}
|
|
439
|
+
return n;
|
|
440
|
+
}
|
|
441
|
+
function ne(e) {
|
|
442
|
+
for (var t = ""; e--;) t += "0";
|
|
443
|
+
return t;
|
|
444
|
+
}
|
|
445
|
+
function I(e, t, n, r) {
|
|
446
|
+
var i, a = new e(1), o = Math.ceil(r / x + 4);
|
|
447
|
+
for (c = !1;;) {
|
|
448
|
+
if (n % 2 && (a = a.times(t), B(a.d, o) && (i = !0)), n = m(n / 2), n === 0) {
|
|
449
|
+
n = a.d.length - 1, i && a.d[n] === 0 && ++a.d[n];
|
|
450
|
+
break;
|
|
451
|
+
}
|
|
452
|
+
t = t.times(t), B(t.d, o);
|
|
453
|
+
}
|
|
454
|
+
return c = !0, a;
|
|
455
|
+
}
|
|
456
|
+
function re(e) {
|
|
457
|
+
return e.d[e.d.length - 1] & 1;
|
|
458
|
+
}
|
|
459
|
+
function ie(e, t, n) {
|
|
460
|
+
for (var r, i, a = new e(t[0]), o = 0; ++o < t.length;) {
|
|
461
|
+
if (i = new e(t[o]), !i.s) {
|
|
462
|
+
a = i;
|
|
463
|
+
break;
|
|
464
|
+
}
|
|
465
|
+
r = a.cmp(i), (r === n || r === 0 && a.s === n) && (a = i);
|
|
466
|
+
}
|
|
467
|
+
return a;
|
|
468
|
+
}
|
|
469
|
+
function ae(e, t) {
|
|
470
|
+
var n, r, i, a, o, s, l, u = 0, d = 0, f = 0, p = e.constructor, m = p.rounding, g = p.precision;
|
|
471
|
+
if (!e.d || !e.d[0] || e.e > 17) return new p(e.d ? e.d[0] ? e.s < 0 ? 0 : 1 / 0 : 1 : e.s ? e.s < 0 ? 0 : e : NaN);
|
|
472
|
+
for (t == null ? (c = !1, l = g) : l = t, s = new p(.03125); e.e > -2;) e = e.times(s), f += 5;
|
|
473
|
+
for (r = Math.log(h(2, f)) / Math.LN10 * 2 + 5 | 0, l += r, n = a = o = new p(1), p.precision = l;;) {
|
|
474
|
+
if (a = j(a.times(e), l, 1), n = n.times(++d), s = o.plus(A(a, n, l, 1)), E(s.d).slice(0, l) === E(o.d).slice(0, l)) {
|
|
475
|
+
for (i = f; i--;) o = j(o.times(o), l, 1);
|
|
476
|
+
if (t == null) {
|
|
477
|
+
if (u < 3 && O(o.d, l - r, m, u)) p.precision = l += 10, n = a = s = new p(1), d = 0, u++;
|
|
478
|
+
else return j(o, p.precision = g, m, c = !0);
|
|
479
|
+
} else return p.precision = g, o;
|
|
480
|
+
}
|
|
481
|
+
o = s;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
function L(e, t) {
|
|
485
|
+
var n, r, i, a, o, s, l, u, d, f, p, m = 1, h = 10, g = e, _ = g.d, v = g.constructor, y = v.rounding, b = v.precision;
|
|
486
|
+
if (g.s < 0 || !_ || !_[0] || !g.e && _[0] == 1 && _.length == 1) return new v(_ && !_[0] ? -1 / 0 : g.s == 1 ? _ ? 0 : g : NaN);
|
|
487
|
+
if (t == null ? (c = !1, d = b) : d = t, v.precision = d += h, n = E(_), r = n.charAt(0), Math.abs(a = g.e) < 0x5543df729c000) {
|
|
488
|
+
for (; r < 7 && r != 1 || r == 1 && n.charAt(1) > 3;) g = g.times(e), n = E(g.d), r = n.charAt(0), m++;
|
|
489
|
+
a = g.e, r > 1 ? (g = new v("0." + n), a++) : g = new v(r + "." + n.slice(1));
|
|
490
|
+
} else return u = te(v, d + 2, b).times(a + ""), g = L(new v(r + "." + n.slice(1)), d - h).plus(u), v.precision = b, t == null ? j(g, b, y, c = !0) : g;
|
|
491
|
+
for (f = g, l = o = g = A(g.minus(1), g.plus(1), d, 1), p = j(g.times(g), d, 1), i = 3;;) {
|
|
492
|
+
if (o = j(o.times(p), d, 1), u = l.plus(A(o, new v(i), d, 1)), E(u.d).slice(0, d) === E(l.d).slice(0, d)) {
|
|
493
|
+
if (l = l.times(2), a !== 0 && (l = l.plus(te(v, d + 2, b).times(a + ""))), l = A(l, new v(m), d, 1), t == null) {
|
|
494
|
+
if (O(l.d, d - h, y, s)) v.precision = d += h, u = o = g = A(f.minus(1), f.plus(1), d, 1), p = j(g.times(g), d, 1), i = s = 1;
|
|
495
|
+
else return j(l, v.precision = b, y, c = !0);
|
|
496
|
+
} else return v.precision = b, l;
|
|
497
|
+
}
|
|
498
|
+
l = u, i += 2;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
function R(e) {
|
|
502
|
+
return String(e.s * e.s / 0);
|
|
503
|
+
}
|
|
504
|
+
function oe(e, t) {
|
|
505
|
+
var n, r, i;
|
|
506
|
+
for ((n = t.indexOf(".")) > -1 && (t = t.replace(".", "")), (r = t.search(/e/i)) > 0 ? (n < 0 && (n = r), n += +t.slice(r + 1), t = t.substring(0, r)) : n < 0 && (n = t.length), r = 0; t.charCodeAt(r) === 48; r++);
|
|
507
|
+
for (i = t.length; t.charCodeAt(i - 1) === 48; --i);
|
|
508
|
+
if (t = t.slice(r, i), t) {
|
|
509
|
+
if (i -= r, e.e = n = n - r - 1, e.d = [], r = (n + 1) % x, n < 0 && (r += x), r < i) {
|
|
510
|
+
for (r && e.d.push(+t.slice(0, r)), i -= x; r < i;) e.d.push(+t.slice(r, r += x));
|
|
511
|
+
t = t.slice(r), r = x - t.length;
|
|
512
|
+
} else r -= i;
|
|
513
|
+
for (; r--;) t += "0";
|
|
514
|
+
e.d.push(+t), c && (e.e > e.constructor.maxE ? (e.d = null, e.e = NaN) : e.e < e.constructor.minE && (e.e = 0, e.d = [0]));
|
|
515
|
+
} else e.e = 0, e.d = [0];
|
|
516
|
+
return e;
|
|
517
|
+
}
|
|
518
|
+
function se(e, t) {
|
|
519
|
+
var n, r, i, a, o, s, l, d, f;
|
|
520
|
+
if (t.indexOf("_") > -1) {
|
|
521
|
+
if (t = t.replace(/(\d)_(?=\d)/g, "$1"), y.test(t)) return oe(e, t);
|
|
522
|
+
} else if (t === "Infinity" || t === "NaN") return +t || (e.s = NaN), e.e = NaN, e.d = null, e;
|
|
523
|
+
if (_.test(t)) n = 16, t = t.toLowerCase();
|
|
524
|
+
else if (g.test(t)) n = 2;
|
|
525
|
+
else if (v.test(t)) n = 8;
|
|
526
|
+
else throw Error(u + t);
|
|
527
|
+
for (a = t.search(/p/i), a > 0 ? (l = +t.slice(a + 1), t = t.substring(2, a)) : t = t.slice(2), a = t.indexOf("."), o = a >= 0, r = e.constructor, o && (t = t.replace(".", ""), s = t.length, a = s - a, i = I(r, new r(n), a, a * 2)), d = ee(t, n, b), f = d.length - 1, a = f; d[a] === 0; --a) d.pop();
|
|
528
|
+
return a < 0 ? new r(e.s * 0) : (e.e = N(d, f), e.d = d, c = !1, o && (e = A(e, i, s * 4)), l && (e = e.times(Math.abs(l) < 54 ? h(2, l) : G.pow(2, l))), c = !0, e);
|
|
529
|
+
}
|
|
530
|
+
function ce(e, t) {
|
|
531
|
+
var n, r = t.d.length;
|
|
532
|
+
if (r < 3) return t.isZero() ? t : z(e, 2, t, t);
|
|
533
|
+
n = 1.4 * Math.sqrt(r), n = n > 16 ? 16 : n | 0, t = t.times(1 / le(5, n)), t = z(e, 2, t, t);
|
|
534
|
+
for (var i, a = new e(5), o = new e(16), s = new e(20); n--;) i = t.times(t), t = t.times(a.plus(i.times(o.times(i).minus(s))));
|
|
535
|
+
return t;
|
|
536
|
+
}
|
|
537
|
+
function z(e, t, n, r, i) {
|
|
538
|
+
var a, o, s, l, u = 1, d = e.precision, f = Math.ceil(d / x);
|
|
539
|
+
for (c = !1, l = n.times(n), s = new e(r);;) {
|
|
540
|
+
if (o = A(s.times(l), new e(t++ * t++), d, 1), s = i ? r.plus(o) : r.minus(o), r = A(o.times(l), new e(t++ * t++), d, 1), o = s.plus(r), o.d[f] !== void 0) {
|
|
541
|
+
for (a = f; o.d[a] === s.d[a] && a--;);
|
|
542
|
+
if (a == -1) break;
|
|
543
|
+
}
|
|
544
|
+
a = s, s = r, r = o, o = a, u++;
|
|
545
|
+
}
|
|
546
|
+
return c = !0, o.d.length = f + 1, o;
|
|
547
|
+
}
|
|
548
|
+
function le(e, t) {
|
|
549
|
+
for (var n = e; --t;) n *= e;
|
|
550
|
+
return n;
|
|
551
|
+
}
|
|
552
|
+
function ue(e, t) {
|
|
553
|
+
var n, r = t.s < 0, i = P(e, e.precision, 1), a = i.times(.5);
|
|
554
|
+
if (t = t.abs(), t.lte(a)) return s = r ? 4 : 1, t;
|
|
555
|
+
if (n = t.divToInt(i), n.isZero()) s = r ? 3 : 2;
|
|
556
|
+
else {
|
|
557
|
+
if (t = t.minus(n.times(i)), t.lte(a)) return s = re(n) ? r ? 2 : 3 : r ? 4 : 1, t;
|
|
558
|
+
s = re(n) ? r ? 1 : 4 : r ? 3 : 2;
|
|
559
|
+
}
|
|
560
|
+
return t.minus(i).abs();
|
|
561
|
+
}
|
|
562
|
+
function de(e, r, i, a) {
|
|
563
|
+
var s, c, l, u, d, f, p, m, h, g = e.constructor, _ = i !== void 0;
|
|
564
|
+
if (_ ? (D(i, 1, t), a === void 0 ? a = g.rounding : D(a, 0, 8)) : (i = g.precision, a = g.rounding), !e.isFinite()) p = R(e);
|
|
565
|
+
else {
|
|
566
|
+
for (p = M(e), l = p.indexOf("."), _ ? (s = 2, r == 16 ? i = i * 4 - 3 : r == 8 && (i = i * 3 - 2)) : s = r, l >= 0 && (p = p.replace(".", ""), h = new g(1), h.e = p.length - l, h.d = ee(M(h), 10, s), h.e = h.d.length), m = ee(p, 10, s), c = d = m.length; m[--d] == 0;) m.pop();
|
|
567
|
+
if (!m[0]) p = _ ? "0p+0" : "0";
|
|
568
|
+
else {
|
|
569
|
+
if (l < 0 ? c-- : (e = new g(e), e.d = m, e.e = c, e = A(e, h, i, a, 0, s), m = e.d, c = e.e, f = o), l = m[i], u = s / 2, f ||= m[i + 1] !== void 0, f = a < 4 ? (l !== void 0 || f) && (a === 0 || a === (e.s < 0 ? 3 : 2)) : l > u || l === u && (a === 4 || f || a === 6 && m[i - 1] & 1 || a === (e.s < 0 ? 8 : 7)), m.length = i, f) for (; ++m[--i] > s - 1;) m[i] = 0, i || (++c, m.unshift(1));
|
|
570
|
+
for (d = m.length; !m[d - 1]; --d);
|
|
571
|
+
for (l = 0, p = ""; l < d; l++) p += n.charAt(m[l]);
|
|
572
|
+
if (_) {
|
|
573
|
+
if (d > 1) {
|
|
574
|
+
if (r == 16 || r == 8) {
|
|
575
|
+
for (l = r == 16 ? 4 : 3, --d; d % l; d++) p += "0";
|
|
576
|
+
for (m = ee(p, s, r), d = m.length; !m[d - 1]; --d);
|
|
577
|
+
for (l = 1, p = "1."; l < d; l++) p += n.charAt(m[l]);
|
|
578
|
+
} else p = p.charAt(0) + "." + p.slice(1);
|
|
579
|
+
}
|
|
580
|
+
p = p + (c < 0 ? "p" : "p+") + c;
|
|
581
|
+
} else if (c < 0) {
|
|
582
|
+
for (; ++c;) p = "0" + p;
|
|
583
|
+
p = "0." + p;
|
|
584
|
+
} else if (++c > d) for (c -= d; c--;) p += "0";
|
|
585
|
+
else c < d && (p = p.slice(0, c) + "." + p.slice(c));
|
|
586
|
+
}
|
|
587
|
+
p = (r == 16 ? "0x" : r == 2 ? "0b" : r == 8 ? "0o" : "") + p;
|
|
588
|
+
}
|
|
589
|
+
return e.s < 0 ? "-" + p : p;
|
|
590
|
+
}
|
|
591
|
+
function B(e, t) {
|
|
592
|
+
if (e.length > t) return e.length = t, !0;
|
|
593
|
+
}
|
|
594
|
+
function fe(e) {
|
|
595
|
+
return new this(e).abs();
|
|
596
|
+
}
|
|
597
|
+
function pe(e) {
|
|
598
|
+
return new this(e).acos();
|
|
599
|
+
}
|
|
600
|
+
function me(e) {
|
|
601
|
+
return new this(e).acosh();
|
|
602
|
+
}
|
|
603
|
+
function he(e, t) {
|
|
604
|
+
return new this(e).plus(t);
|
|
605
|
+
}
|
|
606
|
+
function ge(e) {
|
|
607
|
+
return new this(e).asin();
|
|
608
|
+
}
|
|
609
|
+
function _e(e) {
|
|
610
|
+
return new this(e).asinh();
|
|
611
|
+
}
|
|
612
|
+
function ve(e) {
|
|
613
|
+
return new this(e).atan();
|
|
614
|
+
}
|
|
615
|
+
function ye(e) {
|
|
616
|
+
return new this(e).atanh();
|
|
617
|
+
}
|
|
618
|
+
function be(e, t) {
|
|
619
|
+
e = new this(e), t = new this(t);
|
|
620
|
+
var n, r = this.precision, i = this.rounding, a = r + 4;
|
|
621
|
+
return !e.s || !t.s ? n = new this(NaN) : !e.d && !t.d ? (n = P(this, a, 1).times(t.s > 0 ? .25 : .75), n.s = e.s) : !t.d || e.isZero() ? (n = t.s < 0 ? P(this, r, i) : new this(0), n.s = e.s) : !e.d || t.isZero() ? (n = P(this, a, 1).times(.5), n.s = e.s) : t.s < 0 ? (this.precision = a, this.rounding = 1, n = this.atan(A(e, t, a, 1)), t = P(this, a, 1), this.precision = r, this.rounding = i, n = e.s < 0 ? n.minus(t) : n.plus(t)) : n = this.atan(A(e, t, a, 1)), n;
|
|
622
|
+
}
|
|
623
|
+
function xe(e) {
|
|
624
|
+
return new this(e).cbrt();
|
|
625
|
+
}
|
|
626
|
+
function V(e) {
|
|
627
|
+
return j(e = new this(e), e.e + 1, 2);
|
|
628
|
+
}
|
|
629
|
+
function Se(e, t, n) {
|
|
630
|
+
return new this(e).clamp(t, n);
|
|
631
|
+
}
|
|
632
|
+
function Ce(n) {
|
|
633
|
+
if (!n || typeof n != "object") throw Error(l + "Object expected");
|
|
634
|
+
var r, i, o, s = n.defaults === !0, c = [
|
|
635
|
+
"precision",
|
|
636
|
+
1,
|
|
637
|
+
t,
|
|
638
|
+
"rounding",
|
|
639
|
+
0,
|
|
640
|
+
8,
|
|
641
|
+
"toExpNeg",
|
|
642
|
+
-e,
|
|
643
|
+
0,
|
|
644
|
+
"toExpPos",
|
|
645
|
+
0,
|
|
646
|
+
e,
|
|
647
|
+
"maxE",
|
|
648
|
+
0,
|
|
649
|
+
e,
|
|
650
|
+
"minE",
|
|
651
|
+
-e,
|
|
652
|
+
0,
|
|
653
|
+
"modulo",
|
|
654
|
+
0,
|
|
655
|
+
9
|
|
656
|
+
];
|
|
657
|
+
for (r = 0; r < c.length; r += 3) if (i = c[r], s && (this[i] = a[i]), (o = n[i]) !== void 0) {
|
|
658
|
+
if (m(o) === o && o >= c[r + 1] && o <= c[r + 2]) this[i] = o;
|
|
659
|
+
else throw Error(u + i + ": " + o);
|
|
660
|
+
}
|
|
661
|
+
if (i = "crypto", s && (this[i] = a[i]), (o = n[i]) !== void 0) {
|
|
662
|
+
if (o === !0 || o === !1 || o === 0 || o === 1) {
|
|
663
|
+
if (o) {
|
|
664
|
+
if (typeof crypto < "u" && crypto && (crypto.getRandomValues || crypto.randomBytes)) this[i] = !0;
|
|
665
|
+
else throw Error(f);
|
|
666
|
+
} else this[i] = !1;
|
|
667
|
+
} else throw Error(u + i + ": " + o);
|
|
668
|
+
}
|
|
669
|
+
return this;
|
|
670
|
+
}
|
|
671
|
+
function we(e) {
|
|
672
|
+
return new this(e).cos();
|
|
673
|
+
}
|
|
674
|
+
function Te(e) {
|
|
675
|
+
return new this(e).cosh();
|
|
676
|
+
}
|
|
677
|
+
function Ee(e) {
|
|
678
|
+
var t, n, r;
|
|
679
|
+
function i(e) {
|
|
680
|
+
var t, n, r, a = this;
|
|
681
|
+
if (!(a instanceof i)) return new i(e);
|
|
682
|
+
if (a.constructor = i, je(e)) {
|
|
683
|
+
a.s = e.s, c ? !e.d || e.e > i.maxE ? (a.e = NaN, a.d = null) : e.e < i.minE ? (a.e = 0, a.d = [0]) : (a.e = e.e, a.d = e.d.slice()) : (a.e = e.e, a.d = e.d ? e.d.slice() : e.d);
|
|
684
|
+
return;
|
|
685
|
+
}
|
|
686
|
+
if (r = typeof e, r === "number") {
|
|
687
|
+
if (e === 0) {
|
|
688
|
+
a.s = 1 / e < 0 ? -1 : 1, a.e = 0, a.d = [0];
|
|
689
|
+
return;
|
|
690
|
+
}
|
|
691
|
+
if (e < 0 ? (e = -e, a.s = -1) : a.s = 1, e === ~~e && e < 1e7) {
|
|
692
|
+
for (t = 0, n = e; n >= 10; n /= 10) t++;
|
|
693
|
+
c ? t > i.maxE ? (a.e = NaN, a.d = null) : t < i.minE ? (a.e = 0, a.d = [0]) : (a.e = t, a.d = [e]) : (a.e = t, a.d = [e]);
|
|
694
|
+
return;
|
|
695
|
+
}
|
|
696
|
+
if (e * 0 != 0) {
|
|
697
|
+
e || (a.s = NaN), a.e = NaN, a.d = null;
|
|
698
|
+
return;
|
|
699
|
+
}
|
|
700
|
+
return oe(a, e.toString());
|
|
701
|
+
}
|
|
702
|
+
if (r === "string") return (n = e.charCodeAt(0)) === 45 ? (e = e.slice(1), a.s = -1) : (n === 43 && (e = e.slice(1)), a.s = 1), y.test(e) ? oe(a, e) : se(a, e);
|
|
703
|
+
if (r === "bigint") return e < 0 ? (e = -e, a.s = -1) : a.s = 1, oe(a, e.toString());
|
|
704
|
+
throw Error(u + e);
|
|
705
|
+
}
|
|
706
|
+
if (i.prototype = T, i.ROUND_UP = 0, i.ROUND_DOWN = 1, i.ROUND_CEIL = 2, i.ROUND_FLOOR = 3, i.ROUND_HALF_UP = 4, i.ROUND_HALF_DOWN = 5, i.ROUND_HALF_EVEN = 6, i.ROUND_HALF_CEIL = 7, i.ROUND_HALF_FLOOR = 8, i.EUCLID = 9, i.config = i.set = Ce, i.clone = Ee, i.isDecimal = je, i.abs = fe, i.acos = pe, i.acosh = me, i.add = he, i.asin = ge, i.asinh = _e, i.atan = ve, i.atanh = ye, i.atan2 = be, i.cbrt = xe, i.ceil = V, i.clamp = Se, i.cos = we, i.cosh = Te, i.div = De, i.exp = Oe, i.floor = ke, i.hypot = Ae, i.ln = Me, i.log = Ne, i.log10 = Fe, i.log2 = Pe, i.max = Ie, i.min = Le, i.mod = H, i.mul = U, i.pow = W, i.random = Re, i.round = ze, i.sign = Be, i.sin = Ve, i.sinh = He, i.sqrt = Ue, i.sub = We, i.sum = Ge, i.tan = Ke, i.tanh = qe, i.trunc = Je, e === void 0 && (e = {}), e && e.defaults !== !0) for (r = [
|
|
707
|
+
"precision",
|
|
708
|
+
"rounding",
|
|
709
|
+
"toExpNeg",
|
|
710
|
+
"toExpPos",
|
|
711
|
+
"maxE",
|
|
712
|
+
"minE",
|
|
713
|
+
"modulo",
|
|
714
|
+
"crypto"
|
|
715
|
+
], t = 0; t < r.length;) e.hasOwnProperty(n = r[t++]) || (e[n] = this[n]);
|
|
716
|
+
return i.config(e), i;
|
|
717
|
+
}
|
|
718
|
+
function De(e, t) {
|
|
719
|
+
return new this(e).div(t);
|
|
720
|
+
}
|
|
721
|
+
function Oe(e) {
|
|
722
|
+
return new this(e).exp();
|
|
723
|
+
}
|
|
724
|
+
function ke(e) {
|
|
725
|
+
return j(e = new this(e), e.e + 1, 3);
|
|
726
|
+
}
|
|
727
|
+
function Ae() {
|
|
728
|
+
var e, t, n = new this(0);
|
|
729
|
+
for (c = !1, e = 0; e < arguments.length;) if (t = new this(arguments[e++]), t.d) n.d && (n = n.plus(t.times(t)));
|
|
730
|
+
else {
|
|
731
|
+
if (t.s) return c = !0, new this(1 / 0);
|
|
732
|
+
n = t;
|
|
733
|
+
}
|
|
734
|
+
return c = !0, n.sqrt();
|
|
735
|
+
}
|
|
736
|
+
function je(e) {
|
|
737
|
+
return e instanceof G || e && e.toStringTag === p || !1;
|
|
738
|
+
}
|
|
739
|
+
function Me(e) {
|
|
740
|
+
return new this(e).ln();
|
|
741
|
+
}
|
|
742
|
+
function Ne(e, t) {
|
|
743
|
+
return new this(e).log(t);
|
|
744
|
+
}
|
|
745
|
+
function Pe(e) {
|
|
746
|
+
return new this(e).log(2);
|
|
747
|
+
}
|
|
748
|
+
function Fe(e) {
|
|
749
|
+
return new this(e).log(10);
|
|
750
|
+
}
|
|
751
|
+
function Ie() {
|
|
752
|
+
return ie(this, arguments, -1);
|
|
753
|
+
}
|
|
754
|
+
function Le() {
|
|
755
|
+
return ie(this, arguments, 1);
|
|
756
|
+
}
|
|
757
|
+
function H(e, t) {
|
|
758
|
+
return new this(e).mod(t);
|
|
759
|
+
}
|
|
760
|
+
function U(e, t) {
|
|
761
|
+
return new this(e).mul(t);
|
|
762
|
+
}
|
|
763
|
+
function W(e, t) {
|
|
764
|
+
return new this(e).pow(t);
|
|
765
|
+
}
|
|
766
|
+
function Re(e) {
|
|
767
|
+
var n, r, i, a, o = 0, s = new this(1), c = [];
|
|
768
|
+
if (e === void 0 ? e = this.precision : D(e, 1, t), i = Math.ceil(e / x), !this.crypto) for (; o < i;) c[o++] = Math.random() * 1e7 | 0;
|
|
769
|
+
else if (crypto.getRandomValues) for (n = crypto.getRandomValues(new Uint32Array(i)); o < i;) a = n[o], a >= 429e7 ? n[o] = crypto.getRandomValues(/* @__PURE__ */ new Uint32Array(1))[0] : c[o++] = a % 1e7;
|
|
770
|
+
else if (crypto.randomBytes) {
|
|
771
|
+
for (n = crypto.randomBytes(i *= 4); o < i;) a = n[o] + (n[o + 1] << 8) + (n[o + 2] << 16) + ((n[o + 3] & 127) << 24), a >= 214e7 ? crypto.randomBytes(4).copy(n, o) : (c.push(a % 1e7), o += 4);
|
|
772
|
+
o = i / 4;
|
|
773
|
+
} else throw Error(f);
|
|
774
|
+
for (i = c[--o], e %= x, i && e && (a = h(10, x - e), c[o] = (i / a | 0) * a); c[o] === 0; o--) c.pop();
|
|
775
|
+
if (o < 0) r = 0, c = [0];
|
|
776
|
+
else {
|
|
777
|
+
for (r = -1; c[0] === 0; r -= x) c.shift();
|
|
778
|
+
for (i = 1, a = c[0]; a >= 10; a /= 10) i++;
|
|
779
|
+
i < x && (r -= x - i);
|
|
780
|
+
}
|
|
781
|
+
return s.e = r, s.d = c, s;
|
|
782
|
+
}
|
|
783
|
+
function ze(e) {
|
|
784
|
+
return j(e = new this(e), e.e + 1, this.rounding);
|
|
785
|
+
}
|
|
786
|
+
function Be(e) {
|
|
787
|
+
return e = new this(e), e.d ? e.d[0] ? e.s : 0 * e.s : e.s || NaN;
|
|
788
|
+
}
|
|
789
|
+
function Ve(e) {
|
|
790
|
+
return new this(e).sin();
|
|
791
|
+
}
|
|
792
|
+
function He(e) {
|
|
793
|
+
return new this(e).sinh();
|
|
794
|
+
}
|
|
795
|
+
function Ue(e) {
|
|
796
|
+
return new this(e).sqrt();
|
|
797
|
+
}
|
|
798
|
+
function We(e, t) {
|
|
799
|
+
return new this(e).sub(t);
|
|
800
|
+
}
|
|
801
|
+
function Ge() {
|
|
802
|
+
var e = 0, t = arguments, n = new this(t[e]);
|
|
803
|
+
for (c = !1; n.s && ++e < t.length;) n = n.plus(t[e]);
|
|
804
|
+
return c = !0, j(n, this.precision, this.rounding);
|
|
805
|
+
}
|
|
806
|
+
function Ke(e) {
|
|
807
|
+
return new this(e).tan();
|
|
808
|
+
}
|
|
809
|
+
function qe(e) {
|
|
810
|
+
return new this(e).tanh();
|
|
811
|
+
}
|
|
812
|
+
function Je(e) {
|
|
813
|
+
return j(e = new this(e), e.e + 1, 1);
|
|
814
|
+
}
|
|
815
|
+
T[Symbol.for("nodejs.util.inspect.custom")] = T.toString, T[Symbol.toStringTag] = "Decimal";
|
|
816
|
+
var G = T.constructor = Ee(a);
|
|
817
|
+
r = new G(r), i = new G(i);
|
|
818
|
+
//#endregion
|
|
819
|
+
//#region ../../node_modules/@graffiticode/parselatex/src/assert.js
|
|
820
|
+
var K = (e, t, n) => {
|
|
821
|
+
if (t === void 0 && (t = "failed!"), !e) {
|
|
822
|
+
let e = Error(t);
|
|
823
|
+
throw e.location = n || q.location, e;
|
|
824
|
+
}
|
|
825
|
+
}, q = {
|
|
826
|
+
assert: K,
|
|
827
|
+
message: (e, t) => {
|
|
828
|
+
let n = q.messages[e];
|
|
829
|
+
return t && t.forEach((e, t) => {
|
|
830
|
+
n = n.replace(`%${t + 1}`, e);
|
|
831
|
+
}), `${e}: ${n}`;
|
|
832
|
+
},
|
|
833
|
+
messages: {},
|
|
834
|
+
reserveCodeRange: (e, t, n) => {
|
|
835
|
+
K(e <= t, "Invalid code range"), K(q.reservedCodes.every((n) => t < n.first || e > n.last), "Conflicting request for error code range"), q.reservedCodes.push({
|
|
836
|
+
first: e,
|
|
837
|
+
last: t,
|
|
838
|
+
name: n
|
|
839
|
+
});
|
|
840
|
+
},
|
|
841
|
+
reservedCodes: [],
|
|
842
|
+
setLocation: (e) => {
|
|
843
|
+
q.location = e;
|
|
844
|
+
},
|
|
845
|
+
clearLocation: () => {
|
|
846
|
+
q.location = null;
|
|
847
|
+
},
|
|
848
|
+
checkTimeout: () => {
|
|
849
|
+
K(!q.timeout || q.timeout > Date.now(), q.timeoutMessage);
|
|
850
|
+
},
|
|
851
|
+
setTimeout: (e, t) => {
|
|
852
|
+
e !== void 0 && (q.timeout = e ? Date.now() + e : 0, q.timeoutMessage = t || "ERROR timeout exceeded");
|
|
853
|
+
},
|
|
854
|
+
setCounter: (e, t) => {
|
|
855
|
+
q.count = e, q.countMessage = t || "ERROR count exceeded";
|
|
856
|
+
},
|
|
857
|
+
checkCounter: () => {
|
|
858
|
+
let { count: e } = q;
|
|
859
|
+
if (typeof e != "number" || Number.isNaN(e)) {
|
|
860
|
+
K(!1, "ERROR counter not set");
|
|
861
|
+
return;
|
|
862
|
+
}
|
|
863
|
+
K(q.count--, q.countMessage);
|
|
864
|
+
}
|
|
865
|
+
}, Ye = (() => {
|
|
866
|
+
function e() {
|
|
867
|
+
this.nodePool = ["unused"], this.nodeMap = {};
|
|
868
|
+
}
|
|
869
|
+
e.prototype.arg = function(e) {
|
|
870
|
+
if (!t(this)) throw Error("Malformed node");
|
|
871
|
+
return this.args.push(e), this;
|
|
872
|
+
}, e.prototype.argN = function(e, n) {
|
|
873
|
+
if (!t(this)) throw Error("Malformed node");
|
|
874
|
+
return n === void 0 ? this.args[e] : (this.args[e] = n, this);
|
|
875
|
+
}, e.prototype.args = function(e) {
|
|
876
|
+
if (!t(this)) throw Error("Malformed node");
|
|
877
|
+
return e === void 0 ? this.args : (this.args = e, this);
|
|
878
|
+
}, e.prototype.isNode = t;
|
|
879
|
+
function t(e) {
|
|
880
|
+
return e === void 0 && (e = this), e.op && e.args;
|
|
881
|
+
}
|
|
882
|
+
return e.prototype.intern = function(n) {
|
|
883
|
+
this instanceof e && n === void 0 && t(this) && (n = this), K(typeof n == "object", "node not an object");
|
|
884
|
+
let { op: r } = n, i = n.args.length, a = "", o = [];
|
|
885
|
+
for (let e = 0; e < i; e++) a += " ", typeof n.args[e] == "string" ? a += o[e] = n.args[e] : a += o[e] = this.intern(n.args[e]);
|
|
886
|
+
n.lbrk && n.lbrk !== 123 && n.lbrk !== 371 && (a += String.fromCharCode(n.lbrk), a += String.fromCharCode(n.rbrk));
|
|
887
|
+
let s = r + i + a, c = this.nodeMap[s];
|
|
888
|
+
return c === void 0 && (this.nodePool.push({
|
|
889
|
+
op: r,
|
|
890
|
+
args: o
|
|
891
|
+
}), c = this.nodePool.length - 1, this.nodeMap[s] = c), c;
|
|
892
|
+
}, e.prototype.node = function(e) {
|
|
893
|
+
let t = JSON.parse(JSON.stringify(this.nodePool[e]));
|
|
894
|
+
for (let e = 0; e < t.args.length; e++) typeof t.args[e] != "string" && (t.args[e] = this.node(t.args[e]));
|
|
895
|
+
return t;
|
|
896
|
+
}, e.prototype.dumpAll = function() {
|
|
897
|
+
let t = "";
|
|
898
|
+
return this.nodePool.forEach((n, r) => {
|
|
899
|
+
t += `\n${r}: ${e.dump(n)}`;
|
|
900
|
+
}), t;
|
|
901
|
+
}, e.dump = e.prototype.dump = function e(t) {
|
|
902
|
+
let n;
|
|
903
|
+
if (typeof t == "string") n = `"${t}"`;
|
|
904
|
+
else if (typeof t == "number") n = t;
|
|
905
|
+
else {
|
|
906
|
+
n = `{ op: "${t.op}", args: [ `;
|
|
907
|
+
for (let r = 0; r < t.args.length; r++) r > 0 && (n += " , "), n += e(t.args[r]);
|
|
908
|
+
n += " ] }";
|
|
909
|
+
}
|
|
910
|
+
return n;
|
|
911
|
+
}, e;
|
|
912
|
+
})(), Xe = (() => {
|
|
913
|
+
function e() {}
|
|
914
|
+
let t = [], n = {};
|
|
915
|
+
e.fn = {}, e.env = n, e.pushEnv = (r) => {
|
|
916
|
+
t.push(n), e.env = n = r;
|
|
917
|
+
}, e.popEnv = () => {
|
|
918
|
+
K(t.length > 0, "1000: Empty envStack"), e.env = n = t.pop();
|
|
919
|
+
}, e.option = (e, t) => e[t];
|
|
920
|
+
function r() {
|
|
921
|
+
return !!e.env.Au;
|
|
922
|
+
}
|
|
923
|
+
let i = e.prototype = new Ye();
|
|
924
|
+
q.reserveCodeRange(1e3, 1999, "model"), q.messages[1e3] = "Internal error. %1.", q.messages[1001] = "Invalid syntax. \"%1\" expected, \"%2\" found.", q.messages[1002] = "Only one decimal separator can be specified.", q.messages[1003] = "Extra characters in input at position: %1, lexeme: %2, prefix: %3.", q.messages[1004] = "Invalid character \"%1\" (%2) in input.", q.messages[1005] = "Misplaced thousands separator.", q.messages[1006] = "Invalid syntax. Expression expected, %1 found.", q.messages[1007] = "Unexpected character: \"%1\" in \"%2\".", q.messages[1008] = "The same character \"%1\" is being used as a thousands and decimal separators.", q.messages[1009] = "Missing argument for \"%1\" command.", q.messages[1010] = "Expecting an operator between numbers.", q.messages[1011] = "Invalid grouping bracket. %1", q.messages[1012] = "Misplaced subscript in \"%1\"", q.messages[1013] = "Mismatched thousands separators: \"%1\" and \"%2\".", q.messages[1014] = "Missing integration variable in \"%1\".";
|
|
925
|
+
let { message: a } = q;
|
|
926
|
+
e.create = i.create = function t(n, r, a) {
|
|
927
|
+
if (K(r instanceof Array || typeof r == "object" && (r.op || r instanceof e) || typeof r == "string", JSON.stringify(r)), K(r !== void 0, "1000: Internal error. Node undefined."), r instanceof e) return a && (r.location = a), r;
|
|
928
|
+
let o;
|
|
929
|
+
return r instanceof Array ? (o = [], r.forEach((e) => {
|
|
930
|
+
o.push(t(n, e, a));
|
|
931
|
+
}), o) : this instanceof e ? (o = t(n, this), o.location = a, r = typeof r == "string" ? E(n, r, e.env).expr() : JSON.parse(JSON.stringify(r)), Object.keys(e.fn).forEach((t) => {
|
|
932
|
+
i[t] || (i[t] = function(...n) {
|
|
933
|
+
let r = e.fn[t];
|
|
934
|
+
if (n.length > 1 && n[1] instanceof e) return r.apply(this, n);
|
|
935
|
+
let i = [this];
|
|
936
|
+
for (let e = 0; e < n.length; e++) i.push(n[e]);
|
|
937
|
+
return r.apply(this, i);
|
|
938
|
+
});
|
|
939
|
+
}), Object.keys(r).forEach((e) => {
|
|
940
|
+
o[e] = r[e];
|
|
941
|
+
}), o) : new e().create(n, r, a);
|
|
942
|
+
}, e.fromLaTeX = i.fromLaTeX = function(t, n) {
|
|
943
|
+
return K(typeof n == "string", "1000: Model.prototype.fromLaTex"), this ? this.create(t, n) : e.create(t, n);
|
|
944
|
+
}, e.toLaTeX = i.toLaTeX = function(e) {
|
|
945
|
+
return m(e);
|
|
946
|
+
};
|
|
947
|
+
let o = {
|
|
948
|
+
ADD: "+",
|
|
949
|
+
SUB: "-",
|
|
950
|
+
MUL: "mul",
|
|
951
|
+
TIMES: "\\times",
|
|
952
|
+
DIV: "\\div",
|
|
953
|
+
FRAC: "\\frac",
|
|
954
|
+
EQL: "=",
|
|
955
|
+
ATAN2: "atan2",
|
|
956
|
+
SQRT: "sqrt",
|
|
957
|
+
VEC: "vec",
|
|
958
|
+
PM: "pm",
|
|
959
|
+
NOT: "not",
|
|
960
|
+
SIN: "sin",
|
|
961
|
+
COS: "cos",
|
|
962
|
+
TAN: "tan",
|
|
963
|
+
SEC: "sec",
|
|
964
|
+
COT: "cot",
|
|
965
|
+
CSC: "csc",
|
|
966
|
+
ARCSIN: "arcsin",
|
|
967
|
+
ARCCOS: "arccos",
|
|
968
|
+
ARCTAN: "arctan",
|
|
969
|
+
ARCSEC: "arcsec",
|
|
970
|
+
ARCCOT: "arccot",
|
|
971
|
+
ARCCSC: "arccsc",
|
|
972
|
+
SINH: "sinh",
|
|
973
|
+
COSH: "cosh",
|
|
974
|
+
TANH: "tanh",
|
|
975
|
+
SECH: "sech",
|
|
976
|
+
COTH: "coth",
|
|
977
|
+
CSCH: "csch",
|
|
978
|
+
ARCSINH: "arcsinh",
|
|
979
|
+
ARCCOSH: "arccosh",
|
|
980
|
+
ARCTANH: "arctanh",
|
|
981
|
+
ARCSECH: "arcsech",
|
|
982
|
+
ARCCSCH: "arccsch",
|
|
983
|
+
ARCCOTH: "arccoth",
|
|
984
|
+
LOG: "log",
|
|
985
|
+
LN: "ln",
|
|
986
|
+
LG: "lg",
|
|
987
|
+
VAR: "var",
|
|
988
|
+
TEXT: "text",
|
|
989
|
+
NUM: "num",
|
|
990
|
+
COMMA: ",",
|
|
991
|
+
POW: "^",
|
|
992
|
+
SUBSCRIPT: "_",
|
|
993
|
+
ABS: "abs",
|
|
994
|
+
PAREN: "()",
|
|
995
|
+
BRACE: "{}",
|
|
996
|
+
BRACKET: "[]",
|
|
997
|
+
ANGLEBRACKET: "anglebracket",
|
|
998
|
+
HIGHLIGHT: "hi",
|
|
999
|
+
LT: "lt",
|
|
1000
|
+
LE: "le",
|
|
1001
|
+
GT: "gt",
|
|
1002
|
+
GE: "ge",
|
|
1003
|
+
NE: "ne",
|
|
1004
|
+
NGTR: "ngtr",
|
|
1005
|
+
NLESS: "nless",
|
|
1006
|
+
NI: "ni",
|
|
1007
|
+
SUBSETEQ: "subseteq",
|
|
1008
|
+
SUPSETEQ: "supseteq",
|
|
1009
|
+
SUBSET: "subset",
|
|
1010
|
+
SUPSET: "supset",
|
|
1011
|
+
NNI: "nni",
|
|
1012
|
+
NSUBSETEQ: "nsubseteq",
|
|
1013
|
+
NSUPSETEQ: "nsupseteq",
|
|
1014
|
+
NSUBSET: "nsubset",
|
|
1015
|
+
NSUPSET: "nsupset",
|
|
1016
|
+
APPROX: "approx",
|
|
1017
|
+
IMPLIES: "implies",
|
|
1018
|
+
CAPRIGHTARROW: "caprightarrow",
|
|
1019
|
+
RIGHTARROW: "rightarrow",
|
|
1020
|
+
LEFTARROW: "leftarrrow",
|
|
1021
|
+
LONGRIGHTARROW: "longrightarrow",
|
|
1022
|
+
LONGLEFTARROW: "longleftarrow",
|
|
1023
|
+
OVERRIGHTARROW: "overrightarrow",
|
|
1024
|
+
OVERLEFTARROW: "overleftarrow",
|
|
1025
|
+
CAPLEFTRIGHTARROW: "capleftrightarrow",
|
|
1026
|
+
LEFTRIGHTARROW: "leftrightarrow",
|
|
1027
|
+
LONGLEFTRIGHTARROW: "longleftrightarrow",
|
|
1028
|
+
OVERLEFTRIGHTARROW: "overleftrightarrow",
|
|
1029
|
+
PERP: "perp",
|
|
1030
|
+
PROPTO: "propto",
|
|
1031
|
+
PARALLEL: "parallel",
|
|
1032
|
+
NPARALLEL: "nparallel",
|
|
1033
|
+
SIM: "sim",
|
|
1034
|
+
CONG: "cong",
|
|
1035
|
+
INTERVAL: "interval",
|
|
1036
|
+
INTERVALOPEN: "intervalopen",
|
|
1037
|
+
INTERVALLEFTOPEN: "intervalleftopen",
|
|
1038
|
+
INTERVALRIGHTOPEN: "intervalrightopen",
|
|
1039
|
+
EVALAT: "eval-at",
|
|
1040
|
+
LIST: "list",
|
|
1041
|
+
SET: "set",
|
|
1042
|
+
EXISTS: "exists",
|
|
1043
|
+
IN: "in",
|
|
1044
|
+
FORALL: "forall",
|
|
1045
|
+
LIM: "lim",
|
|
1046
|
+
EXP: "exp",
|
|
1047
|
+
TO: "to",
|
|
1048
|
+
SUM: "sum",
|
|
1049
|
+
DERIV: "deriv",
|
|
1050
|
+
PIPE: "pipe",
|
|
1051
|
+
INTEGRAL: "integral",
|
|
1052
|
+
PROD: "prod",
|
|
1053
|
+
CUP: "cup",
|
|
1054
|
+
BIGCUP: "bigcup",
|
|
1055
|
+
CAP: "cap",
|
|
1056
|
+
BIGCAP: "bigcap",
|
|
1057
|
+
PERCENT: "%",
|
|
1058
|
+
QMARK: "?",
|
|
1059
|
+
M: "M",
|
|
1060
|
+
FACT: "fact",
|
|
1061
|
+
BINOM: "binom",
|
|
1062
|
+
ROW: "row",
|
|
1063
|
+
COL: "col",
|
|
1064
|
+
COLON: "colon",
|
|
1065
|
+
MATRIX: "matrix",
|
|
1066
|
+
TYPE: "type",
|
|
1067
|
+
FORMAT: "format",
|
|
1068
|
+
OVERSET: "overset",
|
|
1069
|
+
UNDERSET: "underset",
|
|
1070
|
+
OVERLINE: "overline",
|
|
1071
|
+
DEGREE: "degree",
|
|
1072
|
+
BACKSLASH: "backslash",
|
|
1073
|
+
MATHBF: "mathbf",
|
|
1074
|
+
CDOT: "\\cdot",
|
|
1075
|
+
MATHFIELD: "mathfield",
|
|
1076
|
+
DELTA: "delta",
|
|
1077
|
+
OPERATORNAME: "operatorname",
|
|
1078
|
+
DOT: "dot",
|
|
1079
|
+
NONE: "none"
|
|
1080
|
+
};
|
|
1081
|
+
Object.keys(o).forEach((t) => {
|
|
1082
|
+
e[t] = o[t];
|
|
1083
|
+
});
|
|
1084
|
+
let s = {};
|
|
1085
|
+
s[o.ADD] = "+", s[o.SUB] = "-", s[o.MUL] = "\\times", s[o.TIMES] = "\\times", s[o.DIV] = "\\div", s[o.FRAC] = "\\frac", s[o.EQL] = "=", s[o.ATAN2] = "\\atan2", s[o.POW] = "^", s[o.SUBSCRIPT] = "_", s[o.PM] = "\\pm", s[o.NOT] = "\\not", s[o.SIN] = "\\sin", s[o.COS] = "\\cos", s[o.TAN] = "\\tan", s[o.SEC] = "\\sec", s[o.COT] = "\\cot", s[o.CSC] = "\\csc", s[o.ARCSIN] = "\\arcsin", s[o.ARCCOS] = "\\arccos", s[o.ARCTAN] = "\\arctan", s[o.ARCSEC] = "\\arcsec", s[o.ARCCOT] = "\\arccot", s[o.ARCCSC] = "\\arccsc", s[o.SEC] = "\\sec", s[o.COT] = "\\cot", s[o.CSC] = "\\csc", s[o.SINH] = "\\sinh", s[o.COSH] = "\\cosh", s[o.TANH] = "\\tanh", s[o.ARCSINH] = "\\arcsinh", s[o.ARCCOSH] = "\\arccosh", s[o.ARCTANH] = "\\arctanh", s[o.ARCSECH] = "\\arcsech", s[o.ARCCSCH] = "\\arccsch", s[o.ARCCOTH] = "\\arccoth", s[o.SECH] = "\\sech", s[o.COTH] = "\\coth", s[o.CSCH] = "\\csch", s[o.LN] = "\\ln", s[o.COMMA] = ",", s[o.M] = "\\M", s[o.BINOM] = "\\binom", s[o.COLON] = "\\colon", s[o.INT] = "\\int", e.fold = function e(t, n) {
|
|
1086
|
+
let r = [], i;
|
|
1087
|
+
switch (t.args.forEach((t) => {
|
|
1088
|
+
r.push(e(t, n));
|
|
1089
|
+
}), t.args = r, t.op) {
|
|
1090
|
+
case o.VAR: (i = n[t.args[0]]) && (t = i);
|
|
1091
|
+
}
|
|
1092
|
+
return t;
|
|
1093
|
+
};
|
|
1094
|
+
function c(e) {
|
|
1095
|
+
return e >= 1 && e <= 31 && e !== 9 || e >= 127 && e <= 159;
|
|
1096
|
+
}
|
|
1097
|
+
function l(e) {
|
|
1098
|
+
return e === v || e === g || e === _ || e === S || e === y || e === b || e === x || e === h;
|
|
1099
|
+
}
|
|
1100
|
+
function u(e) {
|
|
1101
|
+
let t = "", n, r, i = 0;
|
|
1102
|
+
for (; i < e.length;) {
|
|
1103
|
+
for (; i < e.length && d(n = e.charCodeAt(i++));) r !== 32 && (n = 9, r = n);
|
|
1104
|
+
n === 92 && (t += String.fromCharCode(n), i < e.length && (n = e.charCodeAt(i++))), t += String.fromCharCode(n);
|
|
1105
|
+
}
|
|
1106
|
+
return t;
|
|
1107
|
+
}
|
|
1108
|
+
function d(e) {
|
|
1109
|
+
return c(e);
|
|
1110
|
+
}
|
|
1111
|
+
function f(e) {
|
|
1112
|
+
return e === 32 || e === 9 || e === 10 || e === 13;
|
|
1113
|
+
}
|
|
1114
|
+
function p(e) {
|
|
1115
|
+
return e >= 48 && e <= 57;
|
|
1116
|
+
}
|
|
1117
|
+
let m = function e(t) {
|
|
1118
|
+
let n = "";
|
|
1119
|
+
if (typeof t == "string") n = t;
|
|
1120
|
+
else if (typeof t == "number") n = t;
|
|
1121
|
+
else if (typeof t == "object") {
|
|
1122
|
+
let r = [];
|
|
1123
|
+
switch (t.args.forEach((t) => {
|
|
1124
|
+
r.push(e(t));
|
|
1125
|
+
}), t.op) {
|
|
1126
|
+
case o.NUM:
|
|
1127
|
+
case o.VAR:
|
|
1128
|
+
n = `${t.args[0]}`;
|
|
1129
|
+
break;
|
|
1130
|
+
case o.TEXT:
|
|
1131
|
+
n = `\\text{${r[0]}}`;
|
|
1132
|
+
break;
|
|
1133
|
+
case o.SUBSCRIPT:
|
|
1134
|
+
r.reverse().forEach((e, i) => {
|
|
1135
|
+
n = i === r.length - 1 ? `${e}${n}` : `${s[t.op]}{${e}${n}}`;
|
|
1136
|
+
});
|
|
1137
|
+
break;
|
|
1138
|
+
case o.SUB:
|
|
1139
|
+
n = t.args.length === 1 ? `${s[t.op]}${r[0]}` : `${r[0]} ${s[t.op]} ${r[1]}`;
|
|
1140
|
+
break;
|
|
1141
|
+
case o.DIV:
|
|
1142
|
+
case o.PM:
|
|
1143
|
+
case o.EQL:
|
|
1144
|
+
n = `${r[0]} ${s[t.op]} ${r[1]}`;
|
|
1145
|
+
break;
|
|
1146
|
+
case o.POW: {
|
|
1147
|
+
let e = t.args[0], i = t.args[1];
|
|
1148
|
+
(e.args && e.args.length === 2 || i.args && i.args.length === 2) && (e.op === o.ADD || e.op === o.SUB || e.op === o.MUL || e.op === o.DIV || e.op === o.SQRT) && (r[0] = ` (${r[0]}) `), n = `{${r[0]}^{${r[1]}}}`;
|
|
1149
|
+
break;
|
|
1150
|
+
}
|
|
1151
|
+
case o.SIN:
|
|
1152
|
+
case o.COS:
|
|
1153
|
+
case o.TAN:
|
|
1154
|
+
case o.ARCSIN:
|
|
1155
|
+
case o.ARCCOS:
|
|
1156
|
+
case o.ARCTAN:
|
|
1157
|
+
case o.ARCSEC:
|
|
1158
|
+
case o.ARCCSC:
|
|
1159
|
+
case o.ARCCOT:
|
|
1160
|
+
case o.SEC:
|
|
1161
|
+
case o.COT:
|
|
1162
|
+
case o.CSC:
|
|
1163
|
+
case o.SINH:
|
|
1164
|
+
case o.COSH:
|
|
1165
|
+
case o.TANH:
|
|
1166
|
+
case o.ARCSINH:
|
|
1167
|
+
case o.ARCCOSH:
|
|
1168
|
+
case o.ARCTANH:
|
|
1169
|
+
case o.ARCSECH:
|
|
1170
|
+
case o.ARCCSCH:
|
|
1171
|
+
case o.ARCCOTH:
|
|
1172
|
+
case o.SECH:
|
|
1173
|
+
case o.COTH:
|
|
1174
|
+
case o.CSCH:
|
|
1175
|
+
case o.LN:
|
|
1176
|
+
case o.M:
|
|
1177
|
+
n = `{${s[t.op]}{${r[0]}}}`;
|
|
1178
|
+
break;
|
|
1179
|
+
case o.FRAC:
|
|
1180
|
+
n = `\\frac{${r[0]}}{${r[1]}}`;
|
|
1181
|
+
break;
|
|
1182
|
+
case o.BINOM:
|
|
1183
|
+
n = `\\binom{${r[0]}}{${r[1]}}`;
|
|
1184
|
+
break;
|
|
1185
|
+
case o.SQRT:
|
|
1186
|
+
switch (r.length) {
|
|
1187
|
+
case 1:
|
|
1188
|
+
n = `\\sqrt{${r[0]}}`;
|
|
1189
|
+
break;
|
|
1190
|
+
case 2: n = `\\sqrt[${r[0]}]{${r[1]}}`;
|
|
1191
|
+
}
|
|
1192
|
+
break;
|
|
1193
|
+
case o.INTEGRAL:
|
|
1194
|
+
n = r.length === 4 ? `\\int_{${r[0]}}^{${r[1]}} ${r[2]} d${r[3]}` : `\\int ${r[0]} d${r[1]}`;
|
|
1195
|
+
break;
|
|
1196
|
+
case o.VEC:
|
|
1197
|
+
n = `\\vec{${r[0]}}`;
|
|
1198
|
+
break;
|
|
1199
|
+
case o.MUL: {
|
|
1200
|
+
let e;
|
|
1201
|
+
n = "", t.args.forEach((i, a) => {
|
|
1202
|
+
i.args && i.args.length >= 2 ? ((i.op === o.ADD || i.op === o.SUB) && (r[a] = `(${r[a]})`), a !== 0 && typeof i == "number" ? n += `${s[t.op]} ` : t.isMixedNumber || t.isScientific && (n += "\\times "), n += r[a]) : (i.op === o.PAREN || i.op === o.VAR || typeof e == "number" && typeof i != "number" || a !== 0 && (n += ` ${s[t.op]} `), n += r[a]), e = i;
|
|
1203
|
+
});
|
|
1204
|
+
break;
|
|
1205
|
+
}
|
|
1206
|
+
case o.TIMES:
|
|
1207
|
+
case o.CDOT:
|
|
1208
|
+
case o.ADD:
|
|
1209
|
+
case o.COMMA:
|
|
1210
|
+
r.forEach((e, r) => {
|
|
1211
|
+
n = r === 0 ? e : `${n}${s[t.op]} ${e}`;
|
|
1212
|
+
});
|
|
1213
|
+
break;
|
|
1214
|
+
case o.NONE:
|
|
1215
|
+
n = "";
|
|
1216
|
+
break;
|
|
1217
|
+
default: K(!1, `1000: Unimplemented operator translating to LaTeX: ${t.op}`);
|
|
1218
|
+
}
|
|
1219
|
+
} else K(!1, "1000: Invalid expression type");
|
|
1220
|
+
return n;
|
|
1221
|
+
}, h = 0, g = 125, _ = 93, v = 41, y = 286, b = 287, x = 289, S = 376, C = {};
|
|
1222
|
+
C[47] = o.FRAC, C[256] = o.FRAC, C[257] = o.SQRT, C[290] = o.VEC, C[43] = o.ADD, C[45] = o.SUB, C[258] = o.PM, C[351] = o.NOT, C[94] = o.POW, C[95] = o.SUBSCRIPT, C[42] = o.MUL, C[304] = o.CDOT, C[373] = o.TIMES, C[294] = o.DIV, C[259] = o.SIN, C[261] = o.COS, C[260] = o.TAN, C[291] = o.ARCSIN, C[292] = o.ARCCOS, C[293] = o.ARCTAN, C[337] = o.ARCSEC, C[338] = o.ARCCSC, C[339] = o.ARCCOT, C[262] = o.SEC, C[264] = o.COT, C[265] = o.CSC, C[307] = o.SINH, C[308] = o.COSH, C[309] = o.TANH, C[313] = o.ARCSINH, C[314] = o.ARCCOSH, C[315] = o.ARCTANH, C[334] = o.ARCSECH, C[335] = o.ARCCSCH, C[336] = o.ARCCOTH, C[310] = o.SECH, C[311] = o.COTH, C[312] = o.CSCH, C[263] = o.LN, C[267] = o.LG, C[268] = o.LOG, C[61] = o.EQL, C[44] = o.COMMA, C[269] = o.TEXT, C[368] = o.OPERATORNAME, C[270] = o.LT, C[271] = o.LE, C[272] = o.GT, C[273] = o.GE, C[301] = o.NE, C[305] = o.NGTR, C[306] = o.NLESS, C[333] = o.NI, C[347] = o.SUBSETEQ, C[348] = o.SUPSETEQ, C[349] = o.SUBSET, C[350] = o.SUPSET, C[302] = o.APPROX, C[345] = o.PERP, C[346] = o.PROPTO, C[352] = o.PARALLEL, C[353] = o.NPARALLEL, C[354] = o.SIM, C[355] = o.CONG, C[274] = o.EXISTS, C[275] = o.IN, C[276] = o.FORALL, C[277] = o.LIM, C[278] = o.EXP, C[279] = o.TO, C[124] = o.PIPE, C[280] = o.SUM, C[281] = o.INTEGRAL, C[282] = o.PROD, C[341] = o.CUP, C[342] = o.BIGCUP, C[343] = o.CAP, C[344] = o.BIGCAP, C[283] = o.M, C[363] = o.IMPLIES, C[366] = o.CAPRIGHTARROW, C[284] = o.RIGHTARROW, C[356] = o.LEFTARROW, C[357] = o.LONGRIGHTARROW, C[358] = o.LONGLEFTARROW, C[359] = o.OVERRIGHTARROW, C[360] = o.OVERLEFTARROW, C[364] = o.LEFTRIGHTARROW, C[365] = o.CAPLEFTRIGHTARROW, C[361] = o.LONGLEFTRIGHTARROW, C[362] = o.OVERLEFTRIGHTARROW, C[33] = o.FACT, C[285] = o.BINOM, C[286] = o.ROW, C[287] = o.COL, C[58] = o.COLON, C[59] = o.SEMICOLON, C[295] = o.TYPE, C[296] = o.OVERLINE, C[377] = o.DOT, C[297] = o.OVERSET, C[298] = o.UNDERSET, C[299] = o.BACKSLASH, C[300] = o.MATHBF, C[340] = o.MATHFIELD, C[367] = o.DELTA;
|
|
1223
|
+
function w(e, t) {
|
|
1224
|
+
return {
|
|
1225
|
+
op: e,
|
|
1226
|
+
args: t
|
|
1227
|
+
};
|
|
1228
|
+
}
|
|
1229
|
+
let T = w(e.NONE, [w(e.VAR, ["None"])]), E = function(t, n, i) {
|
|
1230
|
+
let s = Object.keys(i);
|
|
1231
|
+
s.push("to"), n = u(n);
|
|
1232
|
+
function c(n, r) {
|
|
1233
|
+
let i = "";
|
|
1234
|
+
if (e.option(t, "allowThousandsSeparator") || e.option(t, "setThousandsSeparator")) {
|
|
1235
|
+
let o = e.option(t, "setThousandsSeparator");
|
|
1236
|
+
o = [].concat(o === void 0 ? "," : o), o.indexOf(n) >= 0 && (K(!r || n === r, a(1013, [r, n])), i = n);
|
|
1237
|
+
}
|
|
1238
|
+
return i;
|
|
1239
|
+
}
|
|
1240
|
+
function d(n) {
|
|
1241
|
+
let r = e.option(t, "setDecimalSeparator"), i = e.option(t, "setThousandsSeparator");
|
|
1242
|
+
if (typeof r == "string") {
|
|
1243
|
+
K(r.length === 1, a(1002));
|
|
1244
|
+
let e = r;
|
|
1245
|
+
return i instanceof Array && i.indexOf(e) >= 0 && K(!1, a(1008, [e])), n === e;
|
|
1246
|
+
}
|
|
1247
|
+
return r instanceof Array ? (r.forEach((e) => {
|
|
1248
|
+
i instanceof Array && i.indexOf(e) >= 0 && K(!1, a(1008, [e]));
|
|
1249
|
+
}), r.indexOf(n) >= 0) : i instanceof Array && i.indexOf(".") >= 0 || i === "." ? (K(r === void 0, a(1008, ["."])), n === ",") : n === ".";
|
|
1250
|
+
}
|
|
1251
|
+
let m = w(e.NUM, ["Infinity"]);
|
|
1252
|
+
function h(t, n, r, i) {
|
|
1253
|
+
if (n === "\\infty") return m;
|
|
1254
|
+
let o = "", s, l, u, f = 0, p = "integer";
|
|
1255
|
+
for (n === "." && K(!1, a(1004, [n, n.charCodeAt(0)])), s = 0; s < n.length; s++) c(l = n.charAt(s)) ? ((f && u !== s - 4 || !f && s > 4) && K(!1, a(1005)), u = s, f++) : (d(l) && (p === "decimal" && K(!1, a(1007, [l, o + l])), l = ".", p = "decimal", f && u !== s - 4 && K(!1, a(1005)), u = s, f++), o += l);
|
|
1256
|
+
if (p !== "decimal" && u && u !== s - 4 && K(!1, a(1005)), r) {
|
|
1257
|
+
let n = e.option(t, "decimalPlaces");
|
|
1258
|
+
(!i || o.scale() > n) && (o = o.setScale(n, G.ROUND_HALF_UP), o = String(o));
|
|
1259
|
+
} else o = String(o);
|
|
1260
|
+
let h = e.option(t, "strict") && n || o;
|
|
1261
|
+
return {
|
|
1262
|
+
op: e.NUM,
|
|
1263
|
+
args: [h],
|
|
1264
|
+
separatorCount: f,
|
|
1265
|
+
lastSeparatorIndex: u,
|
|
1266
|
+
numberFormat: p
|
|
1267
|
+
};
|
|
1268
|
+
}
|
|
1269
|
+
function g(t, n) {
|
|
1270
|
+
return t.length === 0 && (t = [y]), v(e.MUL, t, n);
|
|
1271
|
+
}
|
|
1272
|
+
function _(e, t) {
|
|
1273
|
+
return K(t.length === 1, "1000: Wrong number of arguments for unary node"), w(e, t);
|
|
1274
|
+
}
|
|
1275
|
+
function v(e, t, n) {
|
|
1276
|
+
if (K(t.length > 0, "1000: Too few argument for binary node"), t.length < 2) return t[0];
|
|
1277
|
+
let r = [];
|
|
1278
|
+
return t.forEach((t) => {
|
|
1279
|
+
n && t.op === e && t.args.length > 1 ? r = r.concat(t.args) : r.push(t);
|
|
1280
|
+
}), w(e, r);
|
|
1281
|
+
}
|
|
1282
|
+
let y = h(t, "1"), b = h(t, "-1"), x = 0, S = 0, E, D, O = q(n);
|
|
1283
|
+
function ee(e) {
|
|
1284
|
+
x = O.start(e), E = O.lexeme();
|
|
1285
|
+
}
|
|
1286
|
+
function k() {
|
|
1287
|
+
return x;
|
|
1288
|
+
}
|
|
1289
|
+
function A() {
|
|
1290
|
+
return K(E !== void 0, `1000: Lexeme for token T0=${x} is missing.`), E;
|
|
1291
|
+
}
|
|
1292
|
+
function j(e) {
|
|
1293
|
+
S === 0 ? (x = O.start(e), E = O.lexeme()) : (K(D !== void 0, `1000: Lexeme for token=${S} is missing.`), x = S, E = D, S = 0);
|
|
1294
|
+
}
|
|
1295
|
+
function M(e) {
|
|
1296
|
+
return S === 0 && (S = O.start(e), D = O.lexeme()), S;
|
|
1297
|
+
}
|
|
1298
|
+
function N(e, t) {
|
|
1299
|
+
let n = k();
|
|
1300
|
+
if (n !== e) {
|
|
1301
|
+
let t = String.fromCharCode(e), r = n ? String.fromCharCode(n) : "EOS";
|
|
1302
|
+
K(!1, a(1001, [`${t}[${e}]`, `${r}[${n}]`]));
|
|
1303
|
+
}
|
|
1304
|
+
j(t);
|
|
1305
|
+
}
|
|
1306
|
+
function te(t) {
|
|
1307
|
+
if (t.op === e.FRAC && (t.args[0].op === e.NUM || t.args[1].op === e.NUM)) {
|
|
1308
|
+
let n = (t.args[0].op === e.SUB || t.args[0].op === e.ADD) && t.args[0].args.length === 1 && t.args[0].args[0] || t.args[0], r = (t.args[1].op === e.SUB || t.args[1].op === e.ADD) && t.args[1].args.length === 1 && t.args[1].args[0] || t.args[1];
|
|
1309
|
+
return n.op === e.NUM && n.numberFormat === "integer" && r.op === e.NUM && r.numberFormat === "integer" && +r.args[0] != 0;
|
|
1310
|
+
}
|
|
1311
|
+
return !1;
|
|
1312
|
+
}
|
|
1313
|
+
function P(t) {
|
|
1314
|
+
if (t.op === e.FRAC) {
|
|
1315
|
+
let n = t.args[0], r = t.args[1];
|
|
1316
|
+
return n.op === e.NUM && n.numberFormat === "integer" && r.op === e.NUM && r.numberFormat === "integer" && +n.args[0] < r.args[0];
|
|
1317
|
+
}
|
|
1318
|
+
return !1;
|
|
1319
|
+
}
|
|
1320
|
+
let F = [
|
|
1321
|
+
"K",
|
|
1322
|
+
"C",
|
|
1323
|
+
"F"
|
|
1324
|
+
], ne = [
|
|
1325
|
+
"g",
|
|
1326
|
+
"L",
|
|
1327
|
+
"m",
|
|
1328
|
+
"s"
|
|
1329
|
+
];
|
|
1330
|
+
function I() {
|
|
1331
|
+
let n, i, o, c, l, u = [], d, f, p, m;
|
|
1332
|
+
switch (o = k()) {
|
|
1333
|
+
case 65:
|
|
1334
|
+
case 97:
|
|
1335
|
+
if (u = [A()], j(), k() === 48) {
|
|
1336
|
+
let n = u[0].toUpperCase() + A(), r = s.some((e) => e.indexOf(n) === 0);
|
|
1337
|
+
i = w(e.VAR, u), r && (i = g([i, h(t, A())]), j());
|
|
1338
|
+
} else u[0] === "\\emptyset" ? u[0] = "\\varnothing" : u[0] === "\\mu" && k() === 269 && ne.includes(A()) ? (u[0] = `\\mu${A()}`, j()) : u[0] === "\\degree" && k() === 269 && F.includes(A()) && (u[0] = `\\degree ${A()}`, j()), i = w(e.VAR, u), r() && k() === 123 && M() === 125 && (N(123), N(125));
|
|
1339
|
+
break;
|
|
1340
|
+
case 269:
|
|
1341
|
+
u = [A()], j(), i = w(e.TEXT, [w(e.VAR, u)]);
|
|
1342
|
+
break;
|
|
1343
|
+
case 48:
|
|
1344
|
+
i = h(t, A()), j();
|
|
1345
|
+
break;
|
|
1346
|
+
case 369:
|
|
1347
|
+
i = M() === 123 || M() === 371 ? R(o) : M() === 124 ? L(o) : z(o);
|
|
1348
|
+
break;
|
|
1349
|
+
case 295:
|
|
1350
|
+
i = w(e.TYPE, [w(e.VAR, [A()])]), j();
|
|
1351
|
+
break;
|
|
1352
|
+
case 91:
|
|
1353
|
+
case 40:
|
|
1354
|
+
case 375:
|
|
1355
|
+
i = z(o);
|
|
1356
|
+
break;
|
|
1357
|
+
case 93:
|
|
1358
|
+
i = ce ? T : z(o);
|
|
1359
|
+
break;
|
|
1360
|
+
case 123:
|
|
1361
|
+
case 371:
|
|
1362
|
+
i = R(o);
|
|
1363
|
+
break;
|
|
1364
|
+
case 288: {
|
|
1365
|
+
j();
|
|
1366
|
+
let t = R();
|
|
1367
|
+
if (t.op === e.VAR) {
|
|
1368
|
+
if (t.args[0].indexOf("array") === 0) {
|
|
1369
|
+
if (k() === 123) {
|
|
1370
|
+
for (; k() !== 125;) j();
|
|
1371
|
+
j();
|
|
1372
|
+
}
|
|
1373
|
+
} else if (t.args[0].indexOf("matrix") >= 0 && k() === 91) {
|
|
1374
|
+
for (; k() !== 93;) j();
|
|
1375
|
+
j();
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
let n = re();
|
|
1379
|
+
N(289), R(), t.op === e.VAR && (t.args[0].indexOf("matrix") >= 0 || t.args[0].indexOf("array") === 0 ? i = w(e.MATRIX, [n]) : K(!1, "1000: Unrecognized LaTeX name"));
|
|
1380
|
+
break;
|
|
1381
|
+
}
|
|
1382
|
+
case 124:
|
|
1383
|
+
i = L();
|
|
1384
|
+
break;
|
|
1385
|
+
case 303:
|
|
1386
|
+
j(), i = _(e.ABS, [R()]);
|
|
1387
|
+
break;
|
|
1388
|
+
case 256:
|
|
1389
|
+
j(), f = R(), p = R(), f = f.args.length === 0 ? w(e.COMMA, [T]) : f, p = f.args.length === 0 ? w(e.COMMA, [T]) : p, i = w(e.FRAC, [f, p]), i.isFraction = te(i);
|
|
1390
|
+
break;
|
|
1391
|
+
case 285: {
|
|
1392
|
+
j();
|
|
1393
|
+
let t = R(), n = R();
|
|
1394
|
+
i = v(e.BINOM, [t, n]);
|
|
1395
|
+
break;
|
|
1396
|
+
}
|
|
1397
|
+
case 257:
|
|
1398
|
+
switch (j(), k()) {
|
|
1399
|
+
case 91: {
|
|
1400
|
+
let t = se(), n = R();
|
|
1401
|
+
i = w(e.SQRT, [n, t]);
|
|
1402
|
+
break;
|
|
1403
|
+
}
|
|
1404
|
+
case 123:
|
|
1405
|
+
l = R(), i = w(e.SQRT, [l, w(e.NUM, ["2"])]);
|
|
1406
|
+
break;
|
|
1407
|
+
default: K(!1, a(1001, ["{ or (", String.fromCharCode(k())]));
|
|
1408
|
+
}
|
|
1409
|
+
break;
|
|
1410
|
+
case 290:
|
|
1411
|
+
j(), i = w(e.VEC, [R()]);
|
|
1412
|
+
break;
|
|
1413
|
+
case 368: {
|
|
1414
|
+
let t = A();
|
|
1415
|
+
j(), i = w(e.OPERATORNAME, [w(e.VAR, [t]), I()]);
|
|
1416
|
+
break;
|
|
1417
|
+
}
|
|
1418
|
+
case 259:
|
|
1419
|
+
case 261:
|
|
1420
|
+
case 260:
|
|
1421
|
+
case 262:
|
|
1422
|
+
case 264:
|
|
1423
|
+
case 265:
|
|
1424
|
+
case 307:
|
|
1425
|
+
case 308:
|
|
1426
|
+
case 309:
|
|
1427
|
+
case 310:
|
|
1428
|
+
case 311:
|
|
1429
|
+
case 312:
|
|
1430
|
+
for (j(); k() === 94;) j({ oneCharToken: !0 }), u.push(B());
|
|
1431
|
+
return u.length === 1 && _e(u[0]) ? (c = `arc${C[o]}`, u.pop()) : c = C[o], (n = k()) === 369 ? (i = M() === 123 || M() === 371 ? R(n) : M() === 124 ? L(n) : z(n), u.unshift(w(c, [i]))) : (n = k()) === 123 || n === 371 ? u.unshift(w(c, [R(n)])) : (n = k()) === 40 || n === 91 ? u.unshift(w(c, [z(n)])) : (d = H(V(!0)), m = U(t, d), d = m && W(d) || d, u.unshift(w(c, [d]))), i = u.length > 1 ? w(e.POW, u) : u[0], m && (i = g([
|
|
1432
|
+
i,
|
|
1433
|
+
w(e.VAR, ["d"]),
|
|
1434
|
+
m
|
|
1435
|
+
])), i;
|
|
1436
|
+
case 291:
|
|
1437
|
+
case 292:
|
|
1438
|
+
case 293:
|
|
1439
|
+
case 337:
|
|
1440
|
+
case 338:
|
|
1441
|
+
case 339:
|
|
1442
|
+
case 313:
|
|
1443
|
+
case 314:
|
|
1444
|
+
case 315:
|
|
1445
|
+
case 334:
|
|
1446
|
+
case 335:
|
|
1447
|
+
case 336:
|
|
1448
|
+
for (j(); (n = k()) === 94;) j({ oneCharToken: !0 }), u.push(B());
|
|
1449
|
+
return (n = k()) === 369 ? (i = M() === 123 || M() === 371 ? R(n) : M() === 124 ? L(n) : z(n), u.unshift(w(C[o], [i]))) : (n = k()) === 123 || n === 371 ? u.unshift(w(C[o], [R(n)])) : (n = k()) === 40 || n === 91 ? u.unshift(w(C[o], [z(n)])) : (n = k()) === 124 ? u.unshift(w(C[o], [L(n)])) : (d = H(V(!0)), m = U(t, d), d = m && W(d) || d, u.unshift(w(C[o], [d]))), i = u.length > 1 ? w(e.POW, u) : u[0], m && (i = g([
|
|
1450
|
+
i,
|
|
1451
|
+
w(e.VAR, ["d"]),
|
|
1452
|
+
m
|
|
1453
|
+
])), i;
|
|
1454
|
+
case 263: return j(), (n = k()) === 369 ? (i = M() === 123 || M() === 371 ? R(n) : M() === 124 ? L(n) : z(n), u.push(i)) : (n = k()) === 123 || n === 371 ? u.push(R(n)) : (n = k()) === 40 || n === 91 ? u.push(z(n)) : (n = k()) === 124 ? u.push(L(n)) : (d = H(V(!0)), m = U(t, d), d = m && W(d) || d, u.push(d)), i = w(e.LOG, [w(e.VAR, ["e"])].concat(u)), m && (i = g([
|
|
1455
|
+
i,
|
|
1456
|
+
w(e.VAR, ["d"]),
|
|
1457
|
+
m
|
|
1458
|
+
])), i;
|
|
1459
|
+
case 267: return j(), (n = k()) === 369 ? (i = M() === 123 || M() === 371 ? R(n) : M() === 124 ? L(n) : z(n), u.push(i)) : (n = k()) === 123 || n === 371 ? u.push(R(n)) : (n = k()) === 40 || n === 91 ? u.push(z(n)) : (n = k()) === 124 ? u.push(L(n)) : (d = H(V(!0)), m = U(t, d), d = m && W(d) || d, u.push(d)), i = w(e.LOG, [w(e.NUM, ["10"])].concat(u)), m && (i = g([
|
|
1460
|
+
i,
|
|
1461
|
+
w(e.VAR, ["d"]),
|
|
1462
|
+
m
|
|
1463
|
+
])), i;
|
|
1464
|
+
case 268: return j(), (n = k()) === 95 ? (j({ oneCharToken: !0 }), u.push(I())) : u.push(w(e.NUM, ["10"])), (n = k()) === 369 ? (i = M() === 123 || M() === 371 ? R(n) : M() === 124 ? L(n) : z(n), u.push(i)) : (n = k()) === 123 || n === 371 ? u.push(R(n)) : (n = k()) === 40 || n === 91 ? u.push(z(n)) : (n = k()) === 124 ? u.push(L(n)) : (d = H(V(!0)), m = U(t, d), d = m && W(d) || d, u.push(d)), i = w(e.LOG, u), m && (i = g([
|
|
1465
|
+
i,
|
|
1466
|
+
w(e.VAR, ["d"]),
|
|
1467
|
+
m
|
|
1468
|
+
])), i;
|
|
1469
|
+
case 277: return ze();
|
|
1470
|
+
case 281:
|
|
1471
|
+
case 378:
|
|
1472
|
+
case 379: return Re();
|
|
1473
|
+
case 280:
|
|
1474
|
+
case 282:
|
|
1475
|
+
case 341:
|
|
1476
|
+
case 342:
|
|
1477
|
+
case 343:
|
|
1478
|
+
case 344: return j(), k() === 95 && (j({ oneCharToken: !0 }), u.push(I()), k() === 94 && (N(94, { oneCharToken: !0 }), u.push(I()))), u.push(V()), w(C[o], u);
|
|
1479
|
+
case 274: return j(), w(e.EXISTS, [We()]);
|
|
1480
|
+
case 276:
|
|
1481
|
+
case 366:
|
|
1482
|
+
case 284:
|
|
1483
|
+
case 356:
|
|
1484
|
+
case 357:
|
|
1485
|
+
case 358:
|
|
1486
|
+
case 359:
|
|
1487
|
+
case 360:
|
|
1488
|
+
case 365:
|
|
1489
|
+
case 364:
|
|
1490
|
+
case 361:
|
|
1491
|
+
case 362: return j(), w(C[o], [qe()]);
|
|
1492
|
+
case 278: return j(), w(e.EXP, [Ie()]);
|
|
1493
|
+
case 283: return j(), w(e.M, [V()]);
|
|
1494
|
+
case 332: return j(), w(e.FORMAT, [R()]);
|
|
1495
|
+
case 296: return j(), w(e.OVERLINE, [R()]);
|
|
1496
|
+
case 377:
|
|
1497
|
+
j();
|
|
1498
|
+
{
|
|
1499
|
+
let n, r = "";
|
|
1500
|
+
n = R(), K(n.op === e.NUM), r += n.args[0], k() === 48 && M() === 377 && (n = I(), K(n.op === e.NUM), r += n.args[0]), k() === 377 && (j(), n = R(), K(n.op === e.NUM), r += n.args[0]), d = w(e.OVERLINE, [h(t, r)]);
|
|
1501
|
+
}
|
|
1502
|
+
return d;
|
|
1503
|
+
case 340: return j(), w(C[o], [R()]);
|
|
1504
|
+
case 297:
|
|
1505
|
+
case 298: return j(), f = R(), p = R(), p.args.push(w(C[o], [f])), p;
|
|
1506
|
+
case 300: return j(), f = R(), w(e.MATHBF, [f]);
|
|
1507
|
+
case 63: return j(), w(e.VAR, ["?"]);
|
|
1508
|
+
case 367: {
|
|
1509
|
+
j();
|
|
1510
|
+
let t;
|
|
1511
|
+
return k() === 97 ? (t = A(), j()) : t = "", w(e.VAR, [`Delta_${t}`]);
|
|
1512
|
+
}
|
|
1513
|
+
case 46: return j(), T;
|
|
1514
|
+
default: K(!e.option(t, "strict"), a(1006, [o])), i = T;
|
|
1515
|
+
}
|
|
1516
|
+
return i;
|
|
1517
|
+
}
|
|
1518
|
+
function re() {
|
|
1519
|
+
let e = [];
|
|
1520
|
+
for (e.push(ie()); k() === 286;) j(), e.push(ie());
|
|
1521
|
+
return w(C[286], e);
|
|
1522
|
+
}
|
|
1523
|
+
function ie() {
|
|
1524
|
+
let e = [];
|
|
1525
|
+
for (e.push(qe()); k() === 287;) j(), e.push(We());
|
|
1526
|
+
return w(C[287], e);
|
|
1527
|
+
}
|
|
1528
|
+
let ae = 0;
|
|
1529
|
+
function L(t) {
|
|
1530
|
+
t ||= 124, ae++, N(t);
|
|
1531
|
+
let n, r;
|
|
1532
|
+
t === 369 ? N(n = k()) : n = t;
|
|
1533
|
+
let i = Ie();
|
|
1534
|
+
return N(r = t === 369 && 370 || n), r === 370 && N(r = n), ae--, _(e.ABS, [i]);
|
|
1535
|
+
}
|
|
1536
|
+
function R(t) {
|
|
1537
|
+
t ||= 123, N(t);
|
|
1538
|
+
let n, r;
|
|
1539
|
+
t === 369 ? N(n = k() === 371 && 371 || 123) : n = t;
|
|
1540
|
+
let i;
|
|
1541
|
+
return k() === 370 || k() === 125 || k() === 372 ? (N(r = k()), r === 370 && N(r = k() === 46 && 46 || k() === 372 && 372 || 125), i = w(e.COMMA, [])) : (i = qe(), N(r = t === 369 && 370 || t === 371 && 372 || 125), r === 370 && N(r = k() === 46 && 46 || k() === 372 && 372 || 125), i.op === T.op && i.args[0] === T.args[0] && (i = w(e.COMMA, []))), i.lbrk = n, i.rbrk = r, i;
|
|
1542
|
+
}
|
|
1543
|
+
let oe = 0;
|
|
1544
|
+
function se(e) {
|
|
1545
|
+
e ||= 91, K(e === 369 || e === 91, "1000: Internal error"), oe++, N(e);
|
|
1546
|
+
let t;
|
|
1547
|
+
e === 369 && N(91);
|
|
1548
|
+
let n = qe();
|
|
1549
|
+
return N(t = e === 369 && 369 || 93), t === 370 && N(t = 93), oe--, n;
|
|
1550
|
+
}
|
|
1551
|
+
let ce;
|
|
1552
|
+
function z(t) {
|
|
1553
|
+
oe++, N(t);
|
|
1554
|
+
let n, r, i;
|
|
1555
|
+
t === 369 ? (N(n = k()), i = !0) : n = t;
|
|
1556
|
+
let o;
|
|
1557
|
+
return k() === 370 || k() === 41 || k() === 93 ? (N(r = i && 370 || k()), r === 370 && N(r = n === 40 && 41 || n === 91 && 93 || n === 375 && 376), o = w(e.COMMA, [])) : (ce = !0, o = qe(!0), N(r = i && 370 || k() === 41 && 41 || k() === 376 && 376 || t === 369 && 370 || k() === 91 && 91 || 93), r === 370 && N(r = k() === 41 && 41 || k() === 376 && 376 || k() === 91 && 91 || 93)), n = n === 93 ? 40 : n, r = r === 91 ? 41 : r, (n === 40 || n === 91 || n === 93) && (r === 41 || r === 93 || r === 91) ? o = w(o.op === e.COMMA && o.args.length === 2 && (n === 40 && r === 41 && e.INTERVALOPEN || n === 91 && r === 93 && e.INTERVAL) || n === 40 && r === 41 && e.PAREN || n === 91 && r === 93 && e.BRACKET || n === 40 && r === 93 && e.INTERVALLEFTOPEN || n === 91 && r === 41 && e.INTERVALRIGHTOPEN, [o]) : o.lbrk === 46 && o.rbrk === 124 ? o = w(e.EVALAT, [o]) : n === 375 && r === 376 ? o = w(e.ANGLEBRACKET, [o]) : (o.op === e.COMMA || n === 40 || n === 91) && (K(n === 40 && r === 41 || n === 91 && r === 93 || n === r, a(1011, [`tk1=${n} tk2=${r}`])), o = w(n === 91 && e.BRACKET || e.PAREN, [o])), oe--, ce = !1, o.lbrk = n, o.rbrk = r, o;
|
|
1558
|
+
}
|
|
1559
|
+
function le() {
|
|
1560
|
+
let t = [I()];
|
|
1561
|
+
for (; k() === 94;) {
|
|
1562
|
+
j({ oneCharToken: !0 });
|
|
1563
|
+
let n;
|
|
1564
|
+
if ((me(t[0]) || r()) && ((n = k()) === 43 || n === 45)) j(), t.push(_(C[n], [y]));
|
|
1565
|
+
else {
|
|
1566
|
+
let n = B();
|
|
1567
|
+
n.op === e.VAR && n.args[0] === "\\circ" && (k() === 269 && (A() === "K" || A() === "C" || A() === "F") ? (n = g([t.pop(), _(e.VAR, [`\\degree ${A()}`])]), j()) : n = g([t.pop(), _(e.VAR, ["\\degree"])])), t.push(n);
|
|
1568
|
+
}
|
|
1569
|
+
}
|
|
1570
|
+
if (t.length > 1) {
|
|
1571
|
+
let n = t.pop();
|
|
1572
|
+
return t.reverse().forEach((t) => {
|
|
1573
|
+
n = w(e.POW, [t, n]);
|
|
1574
|
+
}), n.isPolynomial = Oe(n), n;
|
|
1575
|
+
}
|
|
1576
|
+
let n = t[0];
|
|
1577
|
+
return n.isPolynomial = Oe(n), n;
|
|
1578
|
+
}
|
|
1579
|
+
function ue() {
|
|
1580
|
+
let t, n = le();
|
|
1581
|
+
switch (t = k()) {
|
|
1582
|
+
case 37:
|
|
1583
|
+
j(), n = w(e.PERCENT, [n]);
|
|
1584
|
+
break;
|
|
1585
|
+
case 33:
|
|
1586
|
+
j(), n = w(e.FACT, [n]);
|
|
1587
|
+
break;
|
|
1588
|
+
default: if (t === 124 && M() === 95) {
|
|
1589
|
+
j();
|
|
1590
|
+
let t = [n];
|
|
1591
|
+
j({ oneCharToken: !0 }), t.push(w(e.SUBSCRIPT, [We()])), n = w(e.PIPE, t);
|
|
1592
|
+
} else r() && (t === 43 || t === 45) && M() === 125 && (j(), n = _(C[t], [n]));
|
|
1593
|
+
}
|
|
1594
|
+
return n;
|
|
1595
|
+
}
|
|
1596
|
+
function de(e) {
|
|
1597
|
+
return e === 43 || e === 45 || e === 44 || e === 125 || e === 41 || e === 93 || e === 376 || e === 370 || e === 0;
|
|
1598
|
+
}
|
|
1599
|
+
function B() {
|
|
1600
|
+
let t, n, r;
|
|
1601
|
+
switch (t = k()) {
|
|
1602
|
+
case 43:
|
|
1603
|
+
case 351:
|
|
1604
|
+
case 45:
|
|
1605
|
+
j(), n = w(C[t], [B()]);
|
|
1606
|
+
break;
|
|
1607
|
+
case 258:
|
|
1608
|
+
j(), n = V(!0), n = w(C[t], [n]);
|
|
1609
|
+
break;
|
|
1610
|
+
case 95:
|
|
1611
|
+
if (r = C[t], j({ oneCharToken: !0 }), (t = k()) === 43 || t === 45 ? (j(), n = y) : n = B(), n = w(r, [n]), (t = k()) === 94) {
|
|
1612
|
+
let e = [n];
|
|
1613
|
+
r = C[t], j({ oneCharToken: !0 }), (t = k()) === 43 || t === 45 ? (j(), n = y) : n = B(), e.push(n), n = w(r, e);
|
|
1614
|
+
}
|
|
1615
|
+
break;
|
|
1616
|
+
case 94:
|
|
1617
|
+
r = C[t], j({ oneCharToken: !0 }), (t = k()) === 43 || t === 45 ? (j(), n = y) : n = B(), n = w(r, [n]);
|
|
1618
|
+
break;
|
|
1619
|
+
default: t === 97 && A() === "$" ? (j(), de(k()) ? n = w(e.VAR, ["$"]) : (n = g([w(e.VAR, ["$"]), ue()]), n.args[1].isPolynomialTerm = !0)) : n = ue();
|
|
1620
|
+
}
|
|
1621
|
+
return n;
|
|
1622
|
+
}
|
|
1623
|
+
function fe() {
|
|
1624
|
+
let t = [B()];
|
|
1625
|
+
for (; k() === 95;) j({ oneCharToken: !0 }), t.push(le()), r() && k() === 123 && (N(123), N(125));
|
|
1626
|
+
let i;
|
|
1627
|
+
return t.length === 1 ? (i = t[0], K(i.op !== e.SUBSCRIPT || i.args.length !== 1, a(1012, [n]))) : i = o(t), i;
|
|
1628
|
+
function o(t) {
|
|
1629
|
+
let n, r;
|
|
1630
|
+
return t.forEach((t) => {
|
|
1631
|
+
t.op === e.SUBSCRIPT && (t = o(t.args));
|
|
1632
|
+
let i, a;
|
|
1633
|
+
t.op === e.POW && !t.lbrk ? (n = t.args[1], i = r && r.op === e.SUBSCRIPT && r.args || r && [r] || [], a = t.args[0].op === e.SUBSCRIPT && t.args[0].args || [t.args[0]]) : r && r.op === e.POW ? (n = r.args[1], i = r.args[0].op === e.SUBSCRIPT && r.args[0].args || [r.args[0]], a = t.op === e.SUBSCRIPT && t.args || [t]) : (i = r && r.op === e.SUBSCRIPT && r.args || r && [r] || [], a = t.op === e.SUBSCRIPT && t.args || [t]);
|
|
1634
|
+
let s = i.concat(a);
|
|
1635
|
+
r = s.length > 1 && w(e.SUBSCRIPT, s) || s[0];
|
|
1636
|
+
}), n && v(e.POW, [r, n]) || r;
|
|
1637
|
+
}
|
|
1638
|
+
}
|
|
1639
|
+
function pe() {
|
|
1640
|
+
let t, n = fe();
|
|
1641
|
+
if (be(n)) return xe(n);
|
|
1642
|
+
if (Ce(n) && (k() === 256 || k() === 48 && M() === 47)) {
|
|
1643
|
+
let t = pe();
|
|
1644
|
+
if (be(t)) return xe(t);
|
|
1645
|
+
if (we(n, t)) {
|
|
1646
|
+
let r;
|
|
1647
|
+
t.op === e.PERCENT && (t = t.args[0], r = !0);
|
|
1648
|
+
let i;
|
|
1649
|
+
Ne(n) && (i = !0, n = Pe(n)), n = v(e.ADD, [n, t]), n.isMixedNumber = !0, i && (n = Pe(n)), r === !0 && (n = w(e.PERCENT, [n]));
|
|
1650
|
+
} else n = v(e.MUL, [n, t]), t.isImplicit = !0;
|
|
1651
|
+
}
|
|
1652
|
+
for (; (t === void 0 || t === k()) && (t = k()) === 47;) j(), n = w(C[t], [n, fe()]), n.isFraction = te(n), n.isSlash = t === 47;
|
|
1653
|
+
return n.op === e.FRAC && n.args[1].op === e.PERCENT && (n = w(e.PERCENT, [w(e.FRAC, [n.args[0], n.args[1].args[0]])])), n;
|
|
1654
|
+
}
|
|
1655
|
+
function me(t) {
|
|
1656
|
+
if (t.op !== e.VAR) return !1;
|
|
1657
|
+
let n = e.env[t.args[0]];
|
|
1658
|
+
return !!(n && n.name);
|
|
1659
|
+
}
|
|
1660
|
+
function he(t, n) {
|
|
1661
|
+
return K(n === void 0 || typeof n == "string", "1000: Invalid id"), t.op === e.VAR ? n === void 0 || t.args[0] === n : t.op === e.POW && he(t.args[0]) && Te(t.args[1]) ? n === void 0 || t.args[0].args[0] === n : !1;
|
|
1662
|
+
}
|
|
1663
|
+
function ge(t) {
|
|
1664
|
+
return t.op === e.NUM && (t.args[0] === "1" || t.args[0] === "1.");
|
|
1665
|
+
}
|
|
1666
|
+
function _e(t) {
|
|
1667
|
+
return t.op === e.SUB && t.args.length === 1 && ge(t.args[0]);
|
|
1668
|
+
}
|
|
1669
|
+
function ve(e) {
|
|
1670
|
+
return e === 42 || e === 294 || e === 47 || e === 373 || e === 304;
|
|
1671
|
+
}
|
|
1672
|
+
function ye(e) {
|
|
1673
|
+
return e === 259 || e === 261 || e === 260 || e === 262 || e === 264 || e === 265 || e === 307 || e === 308 || e === 309 || e === 310 || e === 311 || e === 312 || e === 291 || e === 292 || e === 293 || e === 337 || e === 339 || e === 338 || e === 313 || e === 314 || e === 315 || e === 334 || e === 336 || e === 335 || e === 263 || e === 268 || e === 267;
|
|
1674
|
+
}
|
|
1675
|
+
function be(t) {
|
|
1676
|
+
if (t.op !== e.FRAC) return !1;
|
|
1677
|
+
let n = t.args[0], r = n.op === e.MUL && n.args[0].op === e.VAR && n.args[0].args[0] || n.op === e.VAR && n.args[0] || n.op === e.POW && n.args[0].op === e.VAR && n.args[0].args[0], i = t.args[1], a = i.op === e.MUL && i.args[0].op === e.VAR && i.args[0].args[0];
|
|
1678
|
+
return r === "d" && a === "d" && (i.args[1] && i.args[1].op === e.VAR || i.args[1] && i.args[1].op === e.POW && i.args[1].args[0] && i.args[1].args[0].op === e.VAR);
|
|
1679
|
+
}
|
|
1680
|
+
function xe(t) {
|
|
1681
|
+
if (t.op !== e.FRAC) return null;
|
|
1682
|
+
let n = t.args[0], r = t.args[1], i = n.op === e.MUL && g(n.args.slice(1)) || V();
|
|
1683
|
+
K(r.args.length === 2);
|
|
1684
|
+
let a = r.args[1], o = a.op === e.POW && a.args[0] || a, s = a.op === e.POW && a.args[1] || y;
|
|
1685
|
+
return t = w(e.DERIV, [
|
|
1686
|
+
i,
|
|
1687
|
+
o,
|
|
1688
|
+
s
|
|
1689
|
+
]), t;
|
|
1690
|
+
}
|
|
1691
|
+
function V(n = !1) {
|
|
1692
|
+
let i, o, s = !1, c = [], l;
|
|
1693
|
+
o = pe(), c = [o];
|
|
1694
|
+
let u = 0;
|
|
1695
|
+
for (; (i = k()) && !Fe(i) && !Ve(i) && !Ge(i) && i !== 44 && i !== 59 && i !== 58 && !Ue(i) && i !== 125 && i !== 372 && i !== 41 && i !== 370 && i !== 376 && !((i === 91 || i === 93) && oe > 0) && i !== 284 && i !== 366 && i !== 270 && !(i === 124 && ae > 0) && i !== 286 && i !== 287 && i !== 289 && !(n && (ve(i) || ye(i) || i === 40 || i === 369 || i === 91 || i === 375 || i === 300) || U(t, H(o)));) {
|
|
1696
|
+
if (s = !1, ve(i) && (j(), s = !0), o = pe(), (i === 304 || i === 373 || i === 294) && (o = v(C[i], [c.pop(), o], !0)), s || c.length === 0 || o.lbrk || c[c.length - 1].op !== e.NUM || c[c.length - 1].numberFormat !== "decimal" || c[c.length - 1].lastSeparatorIndex !== c[c.length - 1].args[0].length - 1 || c[c.length - 1].lastSeparatorIndex === c[c.length - 1].args[0].length || c[c.length - 1].lbrk || Ae([c[c.length - 1], o]) || o.op !== e.NUM || K(!1, "Shouldn't get here"), K(s || c.length === 0 || o.lbrk || c[c.length - 1].op !== e.NUM || c[c.length - 1].lbrk || Ae([c[c.length - 1], o]) || o.op !== e.NUM, a(1010)), r() && i === 40 && he(c[c.length - 1], "M")) c.pop(), o = _(e.M, [o]);
|
|
1697
|
+
else if (!s && c.length > 0) {
|
|
1698
|
+
if (c.length > 0 && we(c[c.length - 1], o)) i = c.pop(), Ne(i) && (o = v(e.MUL, [b, o])), o = v(e.ADD, [i, o]), o.isMixedNumber = !0;
|
|
1699
|
+
else if (c.length > 0 && c[c.length - 1].op === e.VAR && o.op === e.VAR && o.args[0].indexOf("'") === 0) o = v(e.POW, [c.pop(), o]), o.isImplicit = o.args[0].isImplicit;
|
|
1700
|
+
else if (c.length > 0 && (c[c.length - 1].op === e.MUL || c[c.length - 1].op === e.DOT) && c[c.length - 1].args[c[c.length - 1].args.length - 1].op === e.VAR && o.op === e.VAR && o.args[0].indexOf("'") === 0) i = c.pop(), o = g(i.args.concat(v(e.POW, [i.args.pop(), o]))), o.isImplicit = o.args[0].isImplicit;
|
|
1701
|
+
else if (c.length > 0 && c[c.length - 1].op === e.VAR && o.op === e.POW && o.args[0].op === e.VAR && o.args[0].args[0].indexOf("'") === 0) o = w(e.POW, [v(e.POW, [c.pop(), o.args[0]])].concat(o.args.slice(1)));
|
|
1702
|
+
else if (c.length > 0 && (l = Ae([c[c.length - 1], o]))) c.pop(), o = l;
|
|
1703
|
+
else if (je(c, o)) {
|
|
1704
|
+
let n = c.pop();
|
|
1705
|
+
o = v(e.POW, [h(t, "10"), B()]), o = v(e.TIMES, [n, o]), Me(o.args) && (o.isScientific = !0);
|
|
1706
|
+
} else o.op === e.VAR && o.args[0] === "\\degree" && c.length === 1 && c[0].op === e.SUB && c[0].args.length === 1 ? (o = _(e.SUB, [g([c[0].args[0], o])]), c.pop()) : o = g([c.pop(), o], !0);
|
|
1707
|
+
} else (i === 373 || i === 304) && Me(o.args) && (o.isScientific = !0);
|
|
1708
|
+
c.push(o), K(u++ < 1e3, "1000: Stuck in loop in multiplicativeExpr()");
|
|
1709
|
+
}
|
|
1710
|
+
let d = c[0];
|
|
1711
|
+
return d.op === e.MUL && d.args.length > 1 ? Se(d) : d;
|
|
1712
|
+
}
|
|
1713
|
+
function Se(t) {
|
|
1714
|
+
K(t.op === e.MUL, "1000: Internal error");
|
|
1715
|
+
let { args: n } = t, r = n[0];
|
|
1716
|
+
return r.op === e.COMMA && r.args.length === 0 && (n = n.slice(1, n.length), n[0].isImplicit = !1), r = n[n.length - 1], r.op === e.COMMA && r.args.length === 0 && (n = n.slice(0, n.length - 1)), w(t.op, n);
|
|
1717
|
+
}
|
|
1718
|
+
function Ce(t) {
|
|
1719
|
+
return (t.op === e.SUB || t.op === e.ADD) && t.args.length === 1 && (t = t.args[0]), t.op === e.NUM && t;
|
|
1720
|
+
}
|
|
1721
|
+
function we(t, n) {
|
|
1722
|
+
return (t.op === e.SUB || t.op === e.ADD) && t.args.length === 1 && (t = t.args[0]), n.op === e.PERCENT && (n = n.args[0]), !!(t.op === e.NUM && P(n));
|
|
1723
|
+
}
|
|
1724
|
+
function Te(t) {
|
|
1725
|
+
let n;
|
|
1726
|
+
return t ? ((t.op === e.SUB || t.op === e.ADD) && t.args.length === 1 && (t = t.args[0]), t.op === e.NUM && (n = new G(t.args[0])) && Te(n) ? !0 : t instanceof G && t.modulo(De).cmp(Ee) === 0) : !1;
|
|
1727
|
+
}
|
|
1728
|
+
let Ee = new G("0"), De = new G("1");
|
|
1729
|
+
function Oe(t) {
|
|
1730
|
+
let n = 0;
|
|
1731
|
+
if (t.op === e.POW) {
|
|
1732
|
+
let r = t.args[0], i = t.args[1];
|
|
1733
|
+
(r.op === e.VAR || r.isPolynomial || r.op === e.PAREN && Oe(r.args[0])) && Te(i) && (n = parseInt(i.args[0], 10));
|
|
1734
|
+
} else t.op === e.VAR ? n = 1 : (t.op === e.ADD || t.op === e.SUB || t.op === e.MUL) && t.args.forEach((e) => {
|
|
1735
|
+
let t = Oe(e);
|
|
1736
|
+
n = t > n && t || n;
|
|
1737
|
+
});
|
|
1738
|
+
return n;
|
|
1739
|
+
}
|
|
1740
|
+
function ke(t) {
|
|
1741
|
+
return t.op === e.MUL || t.op === e.TIMES || t.op === e.CDOT;
|
|
1742
|
+
}
|
|
1743
|
+
function Ae(t) {
|
|
1744
|
+
if (!Ce(t[0])) return null;
|
|
1745
|
+
let n, r = !1;
|
|
1746
|
+
t[0].op === e.SUB && t[0].args[0].op === e.NUM && (t[0] = t[0].args[0], r = !0), ke(t[0]) && t[0].args[t[0].args.length - 1].numberFormat === "decimal" && (n = t[0].args.slice(0, t[0].args.length - 1), t = t[0].args.slice(t[0].args.length - 1).concat(t[1]));
|
|
1747
|
+
let i, a, o;
|
|
1748
|
+
if (!t[0].lbrk && (t[0].op === e.NUM && t[0].numberFormat === "decimal" || t[0].op === e.VAR && t[0].args[0] === "?" || t[0].op === e.TYPE && t[0].args[0].op === e.VAR && t[0].args[0].args[0] === "decimal")) {
|
|
1749
|
+
if (!t[1].lbrk && t[1].op === e.OVERLINE) a = t[0], o = t[1].args[0];
|
|
1750
|
+
else return null;
|
|
1751
|
+
a.isRepeating = !0, o.isRepeating = !0, i = v(e.ADD, [a, o]), i.numberFormat = "decimal", i.isRepeating = !0, n && (i = g(n.concat(i)));
|
|
1752
|
+
} else i = null;
|
|
1753
|
+
return i = i !== null && r && _(e.SUB, [i]) || i, i;
|
|
1754
|
+
}
|
|
1755
|
+
function je(t, n) {
|
|
1756
|
+
return !!(t.length > 0 && Ce(t[t.length - 1]) && n.op === e.TEXT && (n.args[0].args[0] === "E" || n.args[0].args[0] === "e") && (k() === 48 || (k() === 45 || k() === 43) && M() === 48));
|
|
1757
|
+
}
|
|
1758
|
+
function Me(t) {
|
|
1759
|
+
let n;
|
|
1760
|
+
if (t.length === 2) {
|
|
1761
|
+
let r = t[0], i = t[1];
|
|
1762
|
+
return !!((n = Ce(r)) && +n.args[0] >= 1 && +n.args[0] < 10 && i.op === e.POW && (n = Ce(i.args[0])) && n.args[0] === "10" && Te(i.args[1]));
|
|
1763
|
+
}
|
|
1764
|
+
return !1;
|
|
1765
|
+
}
|
|
1766
|
+
function Ne(t) {
|
|
1767
|
+
return typeof t == "number" ? t < 0 : t.args.length === 1 ? t.op === o.SUB && t.args[0].args[0] > 0 || t.op === e.NUM && +t.args[0] < 0 : t.args.length === 2 && t.op === o.MUL && Ne(t.args[0]);
|
|
1768
|
+
}
|
|
1769
|
+
function Pe(t) {
|
|
1770
|
+
if (typeof t == "number") return -t;
|
|
1771
|
+
if (t.op === e.SUB && t.args.length === 1) return t.args[0];
|
|
1772
|
+
if (t.op === e.MUL) {
|
|
1773
|
+
let e = t.args.slice(0);
|
|
1774
|
+
return g([Pe(e.shift())].concat(e));
|
|
1775
|
+
}
|
|
1776
|
+
return t.op === e.POW && _e(t.args[1]) ? v(e.POW, [Pe(t.args[0]), b]) : _(e.SUB, [t]);
|
|
1777
|
+
}
|
|
1778
|
+
function Fe(e) {
|
|
1779
|
+
return e === 43 || e === 45 || e === 258 || e === 299 || e === 341 || e === 343;
|
|
1780
|
+
}
|
|
1781
|
+
function Ie() {
|
|
1782
|
+
let n = V(), r;
|
|
1783
|
+
for (; Fe(r = k());) {
|
|
1784
|
+
j();
|
|
1785
|
+
let i = V();
|
|
1786
|
+
switch (r) {
|
|
1787
|
+
case 299:
|
|
1788
|
+
case 341:
|
|
1789
|
+
case 343:
|
|
1790
|
+
n.lbrk === 371 && n.rbrk === 372 && (n = w(e.SET, [n])), i.lbrk === 371 && i.rbrk === 372 && (i = w(e.SET, [i])), n = v(C[r], [n, i]);
|
|
1791
|
+
break;
|
|
1792
|
+
case 258:
|
|
1793
|
+
n = v(e.PM, [n, i]);
|
|
1794
|
+
break;
|
|
1795
|
+
case 45:
|
|
1796
|
+
n = v(e.SUB, [n, i]);
|
|
1797
|
+
break;
|
|
1798
|
+
default: {
|
|
1799
|
+
let r = !e.option(t, "compareGrouping") && !(n.isMixedNumber || i.isMixedNumber);
|
|
1800
|
+
n = v(e.ADD, [n, i], r);
|
|
1801
|
+
break;
|
|
1802
|
+
}
|
|
1803
|
+
}
|
|
1804
|
+
}
|
|
1805
|
+
return n.isPolynomial = Oe(n), n;
|
|
1806
|
+
}
|
|
1807
|
+
function Le(t) {
|
|
1808
|
+
return t.op === e.SIN || t.op === e.COS || t.op === e.TAN || t.op === e.SEC || t.op === e.COT || t.op === e.CSC || t.op === e.SINH || t.op === e.COSH || t.op === e.TANH || t.op === e.SECH || t.op === e.COTH || t.op === e.CSCH || t.op === e.ARCSIN || t.op === e.ARCCOS || t.op === e.ARCTAN || t.op === e.ARCSEC || t.op === e.ARCCOT || t.op === e.ARCCSC || t.op === e.ARCSINH || t.op === e.ARCCOSH || t.op === e.ARCTANH || t.op === e.ARCSECH || t.op === e.ARCCOTH || t.op === e.ARCCSCH || t.op === e.LN || t.op === e.LOG || t.op === e.LG;
|
|
1809
|
+
}
|
|
1810
|
+
function H(t) {
|
|
1811
|
+
let n = [], r = t.op;
|
|
1812
|
+
if (r === e.NUM || r === e.VAR) return t;
|
|
1813
|
+
(r === e.CDOT || r === e.TIMES) && (r = e.MUL), t.args.forEach((t) => {
|
|
1814
|
+
t = H(t), r !== e.INTEGRAL && t.op === r && t.args.length > 1 ? n = n.concat(t.args) : n.push(t);
|
|
1815
|
+
});
|
|
1816
|
+
let { isMixedNumber: i } = t;
|
|
1817
|
+
return t = w(r, n), t.isMixedNumber = i, t;
|
|
1818
|
+
}
|
|
1819
|
+
function U(t, n) {
|
|
1820
|
+
if (!e.option(t, "parsingIntegralExpr")) return null;
|
|
1821
|
+
let r = n.args.length;
|
|
1822
|
+
if (n.op === e.MUL && n.args[r - 1].op === e.FRAC || ke(n) && Le(n.args[r - 1])) return U(t, n.args[r - 1]);
|
|
1823
|
+
if (n.op === e.FRAC) return U(t, n.args[0]);
|
|
1824
|
+
if (Le(n)) return U(t, n.args[r - 1]);
|
|
1825
|
+
let i = n.args[r - 2], a = n.args[r - 1];
|
|
1826
|
+
return n && n.op === e.MUL && i.op === e.VAR && i.args[0] === "d" && a.op === e.VAR && a || null;
|
|
1827
|
+
}
|
|
1828
|
+
function W(t) {
|
|
1829
|
+
K(ke(t) || t.op === e.FRAC || Le(t));
|
|
1830
|
+
let n = t.args[t.args.length - 1];
|
|
1831
|
+
return t.op === e.MUL && n.op === e.FRAC ? (n = W(n), t = g(t.args.slice(0, t.args.length - 1).concat(n))) : ke(t) && Le(n) ? (n = W(n), t = w(t.op, t.args.slice(0, t.args.length - 1).concat(n))) : t = t.op === e.FRAC ? w(e.FRAC, [W(t.args[0]), t.args[1]]) : Le(t) ? w(t.op, [W(t.args[t.args.length - 1])]) : g(t.args.slice(0, t.args.length - 2)), t;
|
|
1832
|
+
}
|
|
1833
|
+
function Re(r) {
|
|
1834
|
+
let i, o, s = e.option(t, "parsingIntegralExpr", !0), c = [];
|
|
1835
|
+
if (k() === 379) N(379), i = Re(379), o = U(t, H(V()));
|
|
1836
|
+
else if (k() === 378 || r === 379) r !== 379 && N(378), i = Re(378), o = U(t, H(V()));
|
|
1837
|
+
else if (r !== 378 && N(281), k() === 95 && (j({ oneCharToken: !0 }), c.push(I()), k() === 94 && (N(94, { oneCharToken: !0 }), c.push(I()))), k() === 281) i = Re(), o = U(t, H(V()));
|
|
1838
|
+
else {
|
|
1839
|
+
i = H(V());
|
|
1840
|
+
let n;
|
|
1841
|
+
for (o = U(t, i), i = o && W(i) || i; Fe(n = k()) && !o;) {
|
|
1842
|
+
j();
|
|
1843
|
+
let r = H(V());
|
|
1844
|
+
switch (o = U(t, r), r = o && W(r) || r, n) {
|
|
1845
|
+
case 45:
|
|
1846
|
+
i = v(e.SUB, [i, r]);
|
|
1847
|
+
break;
|
|
1848
|
+
default: i = v(e.ADD, [i, r], !0);
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1851
|
+
}
|
|
1852
|
+
return c.push(i), c.push(o || T), e.option(t, "parsingIntegralExpr", s), K(o, a(1014, [n.replace(/\\\\/g, "\\")])), w(e.INTEGRAL, c);
|
|
1853
|
+
}
|
|
1854
|
+
function ze() {
|
|
1855
|
+
N(277);
|
|
1856
|
+
let t = [];
|
|
1857
|
+
return k() === 95 && (j({ oneCharToken: !0 }), t.push(I())), t.push(V()), w(e.LIM, t);
|
|
1858
|
+
}
|
|
1859
|
+
function Be() {
|
|
1860
|
+
let t = Ie();
|
|
1861
|
+
for (; k() === 58;) {
|
|
1862
|
+
j();
|
|
1863
|
+
let n = Ie();
|
|
1864
|
+
t = v(e.COLON, [t, n], !0);
|
|
1865
|
+
}
|
|
1866
|
+
return t;
|
|
1867
|
+
}
|
|
1868
|
+
function Ve(e) {
|
|
1869
|
+
return e === 270 || e === 271 || e === 272 || e === 273 || e === 305 || e === 306 || e === 275 || e === 279 || e === 345 || e === 346 || e === 333 || e === 351 || e === 347 || e === 348 || e === 349 || e === 350 || e === 352 || e === 353 || e === 354 || e === 355;
|
|
1870
|
+
}
|
|
1871
|
+
function He() {
|
|
1872
|
+
let n = k(), r = Be(), i = [], a = !1;
|
|
1873
|
+
for (; Ve(n = k());) {
|
|
1874
|
+
if (j(), n === 351) {
|
|
1875
|
+
a = !0;
|
|
1876
|
+
continue;
|
|
1877
|
+
}
|
|
1878
|
+
let o = Be();
|
|
1879
|
+
r = w(C[n], [r, o]), a &&= (r.op = `n${r.op}`, !1), i.push(r), r = e.create(t, o);
|
|
1880
|
+
}
|
|
1881
|
+
return i.length === 0 ? r : i.length === 1 ? i[0] : w(e.COMMA, i);
|
|
1882
|
+
}
|
|
1883
|
+
function Ue(e) {
|
|
1884
|
+
return e === 61 || e === 301 || e === 302;
|
|
1885
|
+
}
|
|
1886
|
+
function We() {
|
|
1887
|
+
let n = He(), r, i = [];
|
|
1888
|
+
for (; Ue(r = k()) || r === 284;) {
|
|
1889
|
+
j();
|
|
1890
|
+
let a = Be();
|
|
1891
|
+
n = w(C[r], [n, a]), i.push(n), n = e.create(t, a);
|
|
1892
|
+
}
|
|
1893
|
+
return i.length === 0 ? n : i.length === 1 ? i[0] : w(e.COMMA, i);
|
|
1894
|
+
}
|
|
1895
|
+
function Ge(e) {
|
|
1896
|
+
return e === 363 || e === 284 || e === 366 || e === 356 || e === 357 || e === 358 || e === 359 || e === 360 || e === 365 || e === 364 || e === 361 || e === 362;
|
|
1897
|
+
}
|
|
1898
|
+
function Ke() {
|
|
1899
|
+
let e = We(), t;
|
|
1900
|
+
for (; Ge(t = k());) {
|
|
1901
|
+
j();
|
|
1902
|
+
let n = We();
|
|
1903
|
+
e = w(C[t], [e, n]);
|
|
1904
|
+
}
|
|
1905
|
+
return e;
|
|
1906
|
+
}
|
|
1907
|
+
function qe(e) {
|
|
1908
|
+
let t = Ke(), n = [t], r;
|
|
1909
|
+
for (; (r = k()) === 44 || e && r === 59;) j(), l(k()) || n.push(Ke());
|
|
1910
|
+
return n.length > 1 ? w(C[44], n) : t;
|
|
1911
|
+
}
|
|
1912
|
+
function Je() {
|
|
1913
|
+
try {
|
|
1914
|
+
if (ee(), k()) {
|
|
1915
|
+
let t = qe();
|
|
1916
|
+
return K(!k(), a(1003, [
|
|
1917
|
+
O.pos(),
|
|
1918
|
+
O.lexeme(),
|
|
1919
|
+
`"${n.substring(O.pos() - 1)}"`
|
|
1920
|
+
])), t.lbrk === 371 && (t = w(e.SET, [t])), t;
|
|
1921
|
+
}
|
|
1922
|
+
} catch (e) {
|
|
1923
|
+
throw console.log(`SYNTAX ERROR in: ${n}\n${e.stack}`), e;
|
|
1924
|
+
}
|
|
1925
|
+
return T;
|
|
1926
|
+
}
|
|
1927
|
+
return { expr: Je };
|
|
1928
|
+
function q(n) {
|
|
1929
|
+
let r = 0, i = "", o = {
|
|
1930
|
+
"\\Delta": 367,
|
|
1931
|
+
"\\cdot": 304,
|
|
1932
|
+
"\\times": 373,
|
|
1933
|
+
"\\div": 294,
|
|
1934
|
+
"\\dfrac": 256,
|
|
1935
|
+
"\\frac": 256,
|
|
1936
|
+
"\\sqrt": 257,
|
|
1937
|
+
"\\vec": 290,
|
|
1938
|
+
"\\pm": 258,
|
|
1939
|
+
"\\not": 351,
|
|
1940
|
+
"\\sin": 259,
|
|
1941
|
+
"\\cos": 261,
|
|
1942
|
+
"\\tan": 260,
|
|
1943
|
+
"\\sec": 262,
|
|
1944
|
+
"\\cot": 264,
|
|
1945
|
+
"\\csc": 265,
|
|
1946
|
+
"\\arcsin": 291,
|
|
1947
|
+
"\\arccos": 292,
|
|
1948
|
+
"\\arctan": 293,
|
|
1949
|
+
"\\arcsec": 337,
|
|
1950
|
+
"\\arccsc": 338,
|
|
1951
|
+
"\\arccot": 339,
|
|
1952
|
+
"\\asin": 291,
|
|
1953
|
+
"\\acos": 292,
|
|
1954
|
+
"\\atan": 293,
|
|
1955
|
+
"\\asec": 337,
|
|
1956
|
+
"\\acsc": 338,
|
|
1957
|
+
"\\acot": 339,
|
|
1958
|
+
"\\sinh": 307,
|
|
1959
|
+
"\\cosh": 308,
|
|
1960
|
+
"\\tanh": 309,
|
|
1961
|
+
"\\sech": 310,
|
|
1962
|
+
"\\coth": 311,
|
|
1963
|
+
"\\csch": 312,
|
|
1964
|
+
"\\arcsinh": 313,
|
|
1965
|
+
"\\arccosh": 314,
|
|
1966
|
+
"\\arctanh": 315,
|
|
1967
|
+
"\\arcsech": 334,
|
|
1968
|
+
"\\arccsch": 335,
|
|
1969
|
+
"\\arccoth": 336,
|
|
1970
|
+
"\\ln": 263,
|
|
1971
|
+
"\\lg": 267,
|
|
1972
|
+
"\\log": 268,
|
|
1973
|
+
"\\left": 369,
|
|
1974
|
+
"\\right": 370,
|
|
1975
|
+
"\\big": null,
|
|
1976
|
+
"\\Big": null,
|
|
1977
|
+
"\\bigg": null,
|
|
1978
|
+
"\\Bigg": null,
|
|
1979
|
+
"\\ ": null,
|
|
1980
|
+
"\\quad": null,
|
|
1981
|
+
"\\qquad": null,
|
|
1982
|
+
"\\text": 269,
|
|
1983
|
+
"\\textrm": 269,
|
|
1984
|
+
"\\textit": 269,
|
|
1985
|
+
"\\textbf": 269,
|
|
1986
|
+
"\\operatorname": 368,
|
|
1987
|
+
"\\lt": 270,
|
|
1988
|
+
"\\le": 271,
|
|
1989
|
+
"\\leq": 271,
|
|
1990
|
+
"\\gt": 272,
|
|
1991
|
+
"\\ge": 273,
|
|
1992
|
+
"\\geq": 273,
|
|
1993
|
+
"\\ne": 301,
|
|
1994
|
+
"\\neq": 301,
|
|
1995
|
+
"\\ngtr": 305,
|
|
1996
|
+
"\\nless": 306,
|
|
1997
|
+
"\\ni": 333,
|
|
1998
|
+
"\\subseteq": 347,
|
|
1999
|
+
"\\supseteq": 348,
|
|
2000
|
+
"\\subset": 349,
|
|
2001
|
+
"\\supset": 350,
|
|
2002
|
+
"\\approx": 302,
|
|
2003
|
+
"\\implies": 363,
|
|
2004
|
+
"\\Rightarrow": 366,
|
|
2005
|
+
"\\rightarrow": 284,
|
|
2006
|
+
"\\leftarrow": 356,
|
|
2007
|
+
"\\longrightarrow": 357,
|
|
2008
|
+
"\\longleftarrow": 358,
|
|
2009
|
+
"\\overrightarrow": 359,
|
|
2010
|
+
"\\overleftarrow": 360,
|
|
2011
|
+
"\\Leftrightarrow": 365,
|
|
2012
|
+
"\\leftrightarrow": 364,
|
|
2013
|
+
"\\longleftrightarrow": 361,
|
|
2014
|
+
"\\overleftrightarrow": 362,
|
|
2015
|
+
"\\perp": 345,
|
|
2016
|
+
"\\propto": 346,
|
|
2017
|
+
"\\parallel": 352,
|
|
2018
|
+
"\\nparallel": 353,
|
|
2019
|
+
"\\sim": 354,
|
|
2020
|
+
"\\cong": 355,
|
|
2021
|
+
"\\exists": 274,
|
|
2022
|
+
"\\in": 275,
|
|
2023
|
+
"\\forall": 276,
|
|
2024
|
+
"\\lim": 277,
|
|
2025
|
+
"\\exp": 278,
|
|
2026
|
+
"\\to": 279,
|
|
2027
|
+
"\\sum": 280,
|
|
2028
|
+
"\\int": 281,
|
|
2029
|
+
"\\iint": 378,
|
|
2030
|
+
"\\iiint": 379,
|
|
2031
|
+
"\\prod": 282,
|
|
2032
|
+
"\\cup": 341,
|
|
2033
|
+
"\\bigcup": 342,
|
|
2034
|
+
"\\cap": 343,
|
|
2035
|
+
"\\bigcap": 344,
|
|
2036
|
+
"\\%": 37,
|
|
2037
|
+
"\\binom": 285,
|
|
2038
|
+
"\\begin": 288,
|
|
2039
|
+
"\\end": 289,
|
|
2040
|
+
"\\colon": 58,
|
|
2041
|
+
"\\vert": 124,
|
|
2042
|
+
"\\lvert": 124,
|
|
2043
|
+
"\\rvert": 124,
|
|
2044
|
+
"\\mid": 124,
|
|
2045
|
+
"\\type": 295,
|
|
2046
|
+
"\\format": 332,
|
|
2047
|
+
"\\overline": 296,
|
|
2048
|
+
"\\dot": 377,
|
|
2049
|
+
"\\overset": 297,
|
|
2050
|
+
"\\underset": 298,
|
|
2051
|
+
"\\backslash": 299,
|
|
2052
|
+
"\\mathbf": 300,
|
|
2053
|
+
"\\abs": 303,
|
|
2054
|
+
"\\MathQuillMathField": 340,
|
|
2055
|
+
"\\ldots": 97,
|
|
2056
|
+
"\\vdots": 97,
|
|
2057
|
+
"\\ddots": 97,
|
|
2058
|
+
"\\infty": 374,
|
|
2059
|
+
"\\langle": 375,
|
|
2060
|
+
"\\rangle": 376
|
|
2061
|
+
}, l = {
|
|
2062
|
+
162: "\\cent",
|
|
2063
|
+
176: "\\degree",
|
|
2064
|
+
8592: "\\leftarrow",
|
|
2065
|
+
8594: "\\rightarrow",
|
|
2066
|
+
8652: "\\rightleftharpoons",
|
|
2067
|
+
8704: "\\forall",
|
|
2068
|
+
8705: "\\complement",
|
|
2069
|
+
8706: "\\partial",
|
|
2070
|
+
8707: "\\exists",
|
|
2071
|
+
8708: "\\nexists",
|
|
2072
|
+
8709: "\\varnothing",
|
|
2073
|
+
8710: "\\triangle",
|
|
2074
|
+
8711: "\\nabla",
|
|
2075
|
+
8712: "\\in",
|
|
2076
|
+
8713: "\\notin",
|
|
2077
|
+
8714: "\\in",
|
|
2078
|
+
8715: "\\ni",
|
|
2079
|
+
8716: "\\notni",
|
|
2080
|
+
8717: "\\ni",
|
|
2081
|
+
8718: "\\blacksquare",
|
|
2082
|
+
8719: "\\sqcap",
|
|
2083
|
+
8720: "\\amalg",
|
|
2084
|
+
8721: "\\sigma",
|
|
2085
|
+
8722: "-",
|
|
2086
|
+
8723: "\\mp",
|
|
2087
|
+
8724: "\\dotplus",
|
|
2088
|
+
8725: "/",
|
|
2089
|
+
8726: "\\setminus",
|
|
2090
|
+
8727: "*",
|
|
2091
|
+
8728: "\\circ",
|
|
2092
|
+
8729: "\\bullet",
|
|
2093
|
+
8730: "\\sqrt",
|
|
2094
|
+
8731: null,
|
|
2095
|
+
8732: null,
|
|
2096
|
+
8733: "\\propto",
|
|
2097
|
+
8734: "\\infty",
|
|
2098
|
+
8735: "\\llcorner",
|
|
2099
|
+
8736: "\\angle",
|
|
2100
|
+
8737: "\\measuredangle",
|
|
2101
|
+
8738: "\\sphericalangle",
|
|
2102
|
+
8739: "\\divides",
|
|
2103
|
+
8740: "\\notdivides",
|
|
2104
|
+
8741: "\\parallel",
|
|
2105
|
+
8742: "\\nparallel",
|
|
2106
|
+
8743: "\\wedge",
|
|
2107
|
+
8744: "\\vee",
|
|
2108
|
+
8745: "\\cap",
|
|
2109
|
+
8746: "\\cup",
|
|
2110
|
+
8747: "\\int",
|
|
2111
|
+
8748: "\\iint",
|
|
2112
|
+
8749: "\\iiint",
|
|
2113
|
+
8750: "\\oint",
|
|
2114
|
+
8751: "\\oiint",
|
|
2115
|
+
8752: "\\oiiint",
|
|
2116
|
+
8753: null,
|
|
2117
|
+
8754: null,
|
|
2118
|
+
8755: null,
|
|
2119
|
+
8756: "\\therefore",
|
|
2120
|
+
8757: "\\because",
|
|
2121
|
+
8758: "\\colon",
|
|
2122
|
+
8759: null,
|
|
2123
|
+
8760: null,
|
|
2124
|
+
8761: null,
|
|
2125
|
+
8762: null,
|
|
2126
|
+
8763: null,
|
|
2127
|
+
8764: "\\sim",
|
|
2128
|
+
8765: "\\backsim",
|
|
2129
|
+
8766: null,
|
|
2130
|
+
8767: null,
|
|
2131
|
+
8768: "\\wr",
|
|
2132
|
+
8769: "\\nsim",
|
|
2133
|
+
8770: "\\eqsim",
|
|
2134
|
+
8771: "\\simeq",
|
|
2135
|
+
8772: null,
|
|
2136
|
+
8773: "\\cong",
|
|
2137
|
+
8774: null,
|
|
2138
|
+
8775: "\\ncong",
|
|
2139
|
+
8776: "\\approx",
|
|
2140
|
+
8777: null,
|
|
2141
|
+
8778: "\\approxeq",
|
|
2142
|
+
8779: null,
|
|
2143
|
+
8780: null,
|
|
2144
|
+
8781: "\\asymp",
|
|
2145
|
+
8782: "\\Bumpeq",
|
|
2146
|
+
8783: "\\bumpeq",
|
|
2147
|
+
8784: "\\doteq",
|
|
2148
|
+
8785: "\\doteqdot",
|
|
2149
|
+
8786: "\\fallingdotseq",
|
|
2150
|
+
8787: "\\risingdotseq",
|
|
2151
|
+
8788: null,
|
|
2152
|
+
8789: null,
|
|
2153
|
+
8790: "\\eqcirc",
|
|
2154
|
+
8791: "\\circeq",
|
|
2155
|
+
8792: null,
|
|
2156
|
+
8793: null,
|
|
2157
|
+
8794: null,
|
|
2158
|
+
8795: null,
|
|
2159
|
+
8796: "\\triangleq",
|
|
2160
|
+
8797: null,
|
|
2161
|
+
8798: null,
|
|
2162
|
+
8799: null,
|
|
2163
|
+
8800: "\\ne",
|
|
2164
|
+
8801: "\\equiv",
|
|
2165
|
+
8802: null,
|
|
2166
|
+
8803: null,
|
|
2167
|
+
8804: "\\le",
|
|
2168
|
+
8805: "\\ge",
|
|
2169
|
+
8806: "\\leqq",
|
|
2170
|
+
8807: "\\geqq",
|
|
2171
|
+
8808: "\\lneqq",
|
|
2172
|
+
8809: "\\gneqq",
|
|
2173
|
+
8810: "\\ll",
|
|
2174
|
+
8811: "\\gg",
|
|
2175
|
+
8812: "\\between",
|
|
2176
|
+
8813: null,
|
|
2177
|
+
8814: "\\nless",
|
|
2178
|
+
8815: "\\ngtr",
|
|
2179
|
+
8816: "\\nleq",
|
|
2180
|
+
8817: "\\ngeq",
|
|
2181
|
+
8818: "\\lessim",
|
|
2182
|
+
8819: "\\gtrsim",
|
|
2183
|
+
8820: null,
|
|
2184
|
+
8821: null,
|
|
2185
|
+
8822: "\\lessgtr",
|
|
2186
|
+
8823: "\\gtrless",
|
|
2187
|
+
8824: null,
|
|
2188
|
+
8825: null,
|
|
2189
|
+
8826: "\\prec",
|
|
2190
|
+
8827: "\\succ",
|
|
2191
|
+
8828: "\\preccurlyeq",
|
|
2192
|
+
8829: "\\succcurlyeq",
|
|
2193
|
+
8830: "\\precsim",
|
|
2194
|
+
8831: "\\succsim",
|
|
2195
|
+
8832: "\\nprec",
|
|
2196
|
+
8833: "\\nsucc",
|
|
2197
|
+
8834: "\\subset",
|
|
2198
|
+
8835: "\\supset",
|
|
2199
|
+
8836: null,
|
|
2200
|
+
8837: null,
|
|
2201
|
+
8838: "\\subseteq",
|
|
2202
|
+
8839: "\\supseteq",
|
|
2203
|
+
8840: "\\nsubseteq",
|
|
2204
|
+
8841: "\\nsupseteq",
|
|
2205
|
+
8842: "\\subsetneq",
|
|
2206
|
+
8843: "\\supsetneq",
|
|
2207
|
+
8844: null,
|
|
2208
|
+
8845: null,
|
|
2209
|
+
8846: null,
|
|
2210
|
+
8847: "\\sqsubset",
|
|
2211
|
+
8848: "\\sqsupset",
|
|
2212
|
+
8849: null,
|
|
2213
|
+
8850: null,
|
|
2214
|
+
8851: "\\sqcap",
|
|
2215
|
+
8852: "\\sqcup",
|
|
2216
|
+
8853: "\\oplus",
|
|
2217
|
+
8854: "\\ominus",
|
|
2218
|
+
8855: "\\otimes",
|
|
2219
|
+
8856: "\\oslash",
|
|
2220
|
+
8857: "\\odot",
|
|
2221
|
+
8858: "\\circledcirc",
|
|
2222
|
+
8859: "\\circledast",
|
|
2223
|
+
8860: null,
|
|
2224
|
+
8861: "\\circleddash",
|
|
2225
|
+
8862: "\\boxplus",
|
|
2226
|
+
8863: "\\boxminus",
|
|
2227
|
+
8864: "\\boxtimes",
|
|
2228
|
+
8865: "\\boxdot",
|
|
2229
|
+
8866: "\\vdash",
|
|
2230
|
+
8867: "\\dashv",
|
|
2231
|
+
8868: "\\top",
|
|
2232
|
+
8869: "\\bot",
|
|
2233
|
+
8870: null,
|
|
2234
|
+
8871: "\\models",
|
|
2235
|
+
8872: "\\vDash",
|
|
2236
|
+
8873: "\\Vdash",
|
|
2237
|
+
8874: "\\Vvdash",
|
|
2238
|
+
8875: "\\VDash*",
|
|
2239
|
+
8876: "\\nvdash",
|
|
2240
|
+
8877: "\\nvDash",
|
|
2241
|
+
8878: "\\nVdash",
|
|
2242
|
+
8879: "\\nVDash",
|
|
2243
|
+
8880: null,
|
|
2244
|
+
8881: null,
|
|
2245
|
+
8882: "\\vartriangleleft",
|
|
2246
|
+
8883: "\\vartriangleright",
|
|
2247
|
+
8884: "\\trianglelefteq",
|
|
2248
|
+
8885: "\\trianglerighteq",
|
|
2249
|
+
8886: null,
|
|
2250
|
+
8887: null,
|
|
2251
|
+
8888: "\\multimap",
|
|
2252
|
+
8889: null,
|
|
2253
|
+
8890: "\\intercal",
|
|
2254
|
+
8891: "\\veebar",
|
|
2255
|
+
8892: "\\barwedge",
|
|
2256
|
+
8893: null,
|
|
2257
|
+
8894: null,
|
|
2258
|
+
8895: null,
|
|
2259
|
+
8896: "\\wedge",
|
|
2260
|
+
8897: "\\vee",
|
|
2261
|
+
8898: "\\cap",
|
|
2262
|
+
8899: "\\cup",
|
|
2263
|
+
8900: "\\diamond",
|
|
2264
|
+
8901: "\\cdot",
|
|
2265
|
+
8902: "\\star",
|
|
2266
|
+
8903: null,
|
|
2267
|
+
8904: "\\bowtie",
|
|
2268
|
+
8905: "\\ltimes",
|
|
2269
|
+
8906: "\\rtimes",
|
|
2270
|
+
8907: "\\leftthreetimes",
|
|
2271
|
+
8908: "\\rightthreetimes",
|
|
2272
|
+
8909: "\\backsimeq",
|
|
2273
|
+
8910: "\\curlyvee",
|
|
2274
|
+
8911: "\\curlywedge",
|
|
2275
|
+
8912: "\\Subset",
|
|
2276
|
+
8913: "\\Supset",
|
|
2277
|
+
8914: "\\Cap",
|
|
2278
|
+
8915: "\\Cup",
|
|
2279
|
+
8916: "\\pitchfork",
|
|
2280
|
+
8917: "\\lessdot",
|
|
2281
|
+
8918: "\\gtrdot",
|
|
2282
|
+
8919: null,
|
|
2283
|
+
8920: "\\lll",
|
|
2284
|
+
8921: "\\ggg",
|
|
2285
|
+
8922: "\\lesseqgtr",
|
|
2286
|
+
8923: "\\gtreqless",
|
|
2287
|
+
8924: null,
|
|
2288
|
+
8925: null,
|
|
2289
|
+
8926: "\\curlyeqprec",
|
|
2290
|
+
8927: "\\curlyeqsucc",
|
|
2291
|
+
8928: null,
|
|
2292
|
+
8929: null,
|
|
2293
|
+
8930: null,
|
|
2294
|
+
8931: null,
|
|
2295
|
+
8932: null,
|
|
2296
|
+
8933: null,
|
|
2297
|
+
8934: "\\lnsim",
|
|
2298
|
+
8935: "\\gnsim",
|
|
2299
|
+
8936: "\\precnsim",
|
|
2300
|
+
8937: "\\succnsim",
|
|
2301
|
+
8938: "\\ntriangleleft",
|
|
2302
|
+
8939: "\\ntriangleright",
|
|
2303
|
+
8940: "\\ntrianglelefteq",
|
|
2304
|
+
8941: "\\ntrianglerighteq",
|
|
2305
|
+
8942: "\\vdots",
|
|
2306
|
+
8943: "\\cdots",
|
|
2307
|
+
8944: null,
|
|
2308
|
+
8945: "\\ddots",
|
|
2309
|
+
8946: null,
|
|
2310
|
+
8947: null,
|
|
2311
|
+
8948: null,
|
|
2312
|
+
8949: null,
|
|
2313
|
+
8950: null,
|
|
2314
|
+
8951: null,
|
|
2315
|
+
8952: null,
|
|
2316
|
+
8953: null,
|
|
2317
|
+
8954: null,
|
|
2318
|
+
8955: null,
|
|
2319
|
+
8956: null,
|
|
2320
|
+
8957: null,
|
|
2321
|
+
8958: null,
|
|
2322
|
+
8959: null,
|
|
2323
|
+
10231: "\\longleftrightarrow",
|
|
2324
|
+
945: "\\alpha",
|
|
2325
|
+
946: "\\beta",
|
|
2326
|
+
947: "\\gamma",
|
|
2327
|
+
948: "\\delta",
|
|
2328
|
+
949: "\\epsilon",
|
|
2329
|
+
950: "\\zeta",
|
|
2330
|
+
951: "\\eta",
|
|
2331
|
+
952: "\\theta",
|
|
2332
|
+
953: "\\iota",
|
|
2333
|
+
954: "\\kappa",
|
|
2334
|
+
955: "\\lambda",
|
|
2335
|
+
956: "\\mu",
|
|
2336
|
+
957: "\\nu",
|
|
2337
|
+
958: "\\xi",
|
|
2338
|
+
959: "o",
|
|
2339
|
+
960: "\\pi",
|
|
2340
|
+
961: "\\rho",
|
|
2341
|
+
962: "\\varsigma",
|
|
2342
|
+
963: "\\sigma",
|
|
2343
|
+
964: "\\tau",
|
|
2344
|
+
965: "\\upsilon",
|
|
2345
|
+
966: "\\varphi",
|
|
2346
|
+
967: "\\chi",
|
|
2347
|
+
968: "\\psi",
|
|
2348
|
+
969: "\\omega",
|
|
2349
|
+
977: "\\vartheta",
|
|
2350
|
+
981: "\\phi",
|
|
2351
|
+
982: "\\varpi",
|
|
2352
|
+
1009: "\\varrho",
|
|
2353
|
+
1013: "\\epsilon",
|
|
2354
|
+
913: "A",
|
|
2355
|
+
914: "B",
|
|
2356
|
+
915: "\\Gamma",
|
|
2357
|
+
916: "\\Delta",
|
|
2358
|
+
917: "E",
|
|
2359
|
+
918: "Z",
|
|
2360
|
+
919: "H",
|
|
2361
|
+
920: "\\Theta",
|
|
2362
|
+
921: "I",
|
|
2363
|
+
922: "K",
|
|
2364
|
+
923: "\\Lambda",
|
|
2365
|
+
924: "M",
|
|
2366
|
+
925: "N",
|
|
2367
|
+
926: "\\Xi",
|
|
2368
|
+
927: "O",
|
|
2369
|
+
928: "\\Pi",
|
|
2370
|
+
929: "P",
|
|
2371
|
+
930: null,
|
|
2372
|
+
931: "\\Sigma",
|
|
2373
|
+
932: "T",
|
|
2374
|
+
933: "\\Upsilon",
|
|
2375
|
+
934: "\\Phi",
|
|
2376
|
+
935: "X",
|
|
2377
|
+
936: "\\Psi",
|
|
2378
|
+
937: "\\Omega",
|
|
2379
|
+
1013: "\\epsilon"
|
|
2380
|
+
};
|
|
2381
|
+
function u(e) {
|
|
2382
|
+
return e >= 65 && e <= 90 || e >= 97 && e <= 122;
|
|
2383
|
+
}
|
|
2384
|
+
function m(e) {
|
|
2385
|
+
e ||= {};
|
|
2386
|
+
let t;
|
|
2387
|
+
i = "";
|
|
2388
|
+
let s;
|
|
2389
|
+
for (; r < n.length;) {
|
|
2390
|
+
let c;
|
|
2391
|
+
switch (t = n.charCodeAt(r++), t === 55349 && (n.charCodeAt(r++) === 57030 ? t = 949 : K(!1, a(1004, [String.fromCharCode(t), t]))), t) {
|
|
2392
|
+
case 32:
|
|
2393
|
+
case 9:
|
|
2394
|
+
case 10:
|
|
2395
|
+
case 13:
|
|
2396
|
+
case 160:
|
|
2397
|
+
case 8203: continue;
|
|
2398
|
+
case 38:
|
|
2399
|
+
if (n.substring(r).indexOf("nbsp;") === 0) {
|
|
2400
|
+
r += 5;
|
|
2401
|
+
continue;
|
|
2402
|
+
}
|
|
2403
|
+
return 287;
|
|
2404
|
+
case 92:
|
|
2405
|
+
switch (i += String.fromCharCode(t), n.charCodeAt(r)) {
|
|
2406
|
+
case 92: return r++, 286;
|
|
2407
|
+
case 123: return r++, 371;
|
|
2408
|
+
case 124: return r++, 124;
|
|
2409
|
+
case 125: return r++, 372;
|
|
2410
|
+
}
|
|
2411
|
+
if (c = v(), c !== null) return c;
|
|
2412
|
+
i = "";
|
|
2413
|
+
continue;
|
|
2414
|
+
case 42:
|
|
2415
|
+
case 8727: return n.charCodeAt(r) === 42 ? (r++, 94) : 373;
|
|
2416
|
+
case 45:
|
|
2417
|
+
case 8722: return n.charCodeAt(r) === 62 ? (r++, 284) : 45;
|
|
2418
|
+
case 47:
|
|
2419
|
+
case 8725: return 47;
|
|
2420
|
+
case 33: return n.charCodeAt(r) === 61 ? (r++, 301) : t;
|
|
2421
|
+
case 58:
|
|
2422
|
+
case 8758: return 58;
|
|
2423
|
+
case 59: return 59;
|
|
2424
|
+
case 37:
|
|
2425
|
+
case 40:
|
|
2426
|
+
case 41:
|
|
2427
|
+
case 43:
|
|
2428
|
+
case 44:
|
|
2429
|
+
case 61:
|
|
2430
|
+
case 63:
|
|
2431
|
+
case 91:
|
|
2432
|
+
case 93:
|
|
2433
|
+
case 94:
|
|
2434
|
+
case 95:
|
|
2435
|
+
case 123:
|
|
2436
|
+
case 124:
|
|
2437
|
+
case 125: return i += String.fromCharCode(t), t;
|
|
2438
|
+
case 36: return i += String.fromCharCode(t), 97;
|
|
2439
|
+
case 39: return y(t);
|
|
2440
|
+
case 60: return n.charCodeAt(r) === 61 ? (r++, 271) : 270;
|
|
2441
|
+
case 62: return n.charCodeAt(r) === 61 ? (r++, 273) : 272;
|
|
2442
|
+
default: return u(t) || t === 39 ? _(t) : (s = l[t]) ? (i = s, c = o[i], c === void 0 && (c = 97), c) : d(String.fromCharCode(t)) || p(t) ? e.oneCharToken ? (i += String.fromCharCode(t), 48) : g(t) : (K(!1, a(1004, [String.fromCharCode(t), t])), 0);
|
|
2443
|
+
}
|
|
2444
|
+
}
|
|
2445
|
+
return 0;
|
|
2446
|
+
}
|
|
2447
|
+
let h;
|
|
2448
|
+
function g(e) {
|
|
2449
|
+
let t;
|
|
2450
|
+
for (; p(e) || d(String.fromCharCode(e)) || (t = c(String.fromCharCode(e), h));) {
|
|
2451
|
+
if (h = t || h, i += String.fromCharCode(e), e = n.charCodeAt(r++), e === 92 && n.charCodeAt(r) === 32 && (e = 32, r++), d(String.fromCharCode(e)) || (t = c(String.fromCharCode(e), h))) for (h = t || h, i += String.fromCharCode(e), e = n.charCodeAt(r++); e === 92 && (e = n.charCodeAt(r)) === 32 && r++ || f(e);) e = n.charCodeAt(r++);
|
|
2452
|
+
e === 92 && n.charCodeAt(r) === 32 && (e = 32, r++);
|
|
2453
|
+
}
|
|
2454
|
+
return i === "." && (n.substring(r).indexOf("overline") === 0 || n.substring(r).indexOf("dot") === 0) && (i = "0."), r--, 48;
|
|
2455
|
+
}
|
|
2456
|
+
function _(e) {
|
|
2457
|
+
let t = String.fromCharCode(e);
|
|
2458
|
+
i += t;
|
|
2459
|
+
let a = i, o = r + 1;
|
|
2460
|
+
for (; (u(e) || e === 39) && (e = n.charCodeAt(r++), !(!u(e) || (t = String.fromCharCode(e), !s.some((e) => {
|
|
2461
|
+
let n = a + t;
|
|
2462
|
+
return e.indexOf(n) === 0;
|
|
2463
|
+
}))));) a += t;
|
|
2464
|
+
for (s.indexOf(a) >= 0 ? i = a : r = o; i.lastIndexOf("'") === i.length - 1 && e === 39;) i += String.fromCharCode(e), e = n.charCodeAt(r++);
|
|
2465
|
+
return r--, 97;
|
|
2466
|
+
}
|
|
2467
|
+
function v() {
|
|
2468
|
+
let a = n.charCodeAt(r++);
|
|
2469
|
+
if (a === 36) i = String.fromCharCode(a);
|
|
2470
|
+
else if (a === 37) i += String.fromCharCode(a);
|
|
2471
|
+
else if ([
|
|
2472
|
+
32,
|
|
2473
|
+
58,
|
|
2474
|
+
59,
|
|
2475
|
+
44,
|
|
2476
|
+
33
|
|
2477
|
+
].indexOf(a) >= 0) i = "\\ ";
|
|
2478
|
+
else {
|
|
2479
|
+
for (; u(a);) i += String.fromCharCode(a), a = n.charCodeAt(r++);
|
|
2480
|
+
i = i === "\\varepsilon" && "\\epsilon" || i, r--;
|
|
2481
|
+
}
|
|
2482
|
+
let s = o[i];
|
|
2483
|
+
if (s === void 0) i === "\\emptyset" && (i = "\\varnothing"), s = 97;
|
|
2484
|
+
else if (s === 368) {
|
|
2485
|
+
for (a = n.charCodeAt(r++); a && a !== 123;) a = n.charCodeAt(r++);
|
|
2486
|
+
for (i = "", a = n.charCodeAt(r++); a && a !== 125;) {
|
|
2487
|
+
let e = String.fromCharCode(a);
|
|
2488
|
+
e === "&" && n.substring(r).indexOf("nbsp;") === 0 ? r += 5 : e === " " || e === " " || (i += e), a = n.charCodeAt(r++);
|
|
2489
|
+
}
|
|
2490
|
+
s = o[`\\${i}`], s === void 0 && (s = 368);
|
|
2491
|
+
} else if (s === 269 || s === 295) {
|
|
2492
|
+
for (a = n.charCodeAt(r++); a && a !== 123;) a = n.charCodeAt(r++);
|
|
2493
|
+
i = "", a = n.charCodeAt(r++);
|
|
2494
|
+
let o = e.option(t, "keepTextWhitespace");
|
|
2495
|
+
for (; a && a !== 125;) {
|
|
2496
|
+
let e = String.fromCharCode(a);
|
|
2497
|
+
!o && e === "&" && n.substring(r).indexOf("nbsp;") === 0 ? r += 5 : !o && (e === " " || e === " ") || (i += e), a = n.charCodeAt(r++);
|
|
2498
|
+
}
|
|
2499
|
+
s !== 295 && (s = !i || e.option(t, "ignoreText") ? null : 269);
|
|
2500
|
+
} else s === 374 && (s = 48);
|
|
2501
|
+
return s;
|
|
2502
|
+
}
|
|
2503
|
+
function y(e) {
|
|
2504
|
+
for (K(e === 39), i = "'"; n.charCodeAt(r) === 39;) r++, i += "'";
|
|
2505
|
+
return 97;
|
|
2506
|
+
}
|
|
2507
|
+
return {
|
|
2508
|
+
start: m,
|
|
2509
|
+
lexeme() {
|
|
2510
|
+
return i;
|
|
2511
|
+
},
|
|
2512
|
+
pos() {
|
|
2513
|
+
return r;
|
|
2514
|
+
}
|
|
2515
|
+
};
|
|
2516
|
+
}
|
|
2517
|
+
};
|
|
2518
|
+
return e;
|
|
2519
|
+
})(), Ze = Ye, J = Xe, Y = (e, t, n) => {
|
|
2520
|
+
if (t === void 0 && (t = "failed!"), !e) {
|
|
2521
|
+
let e = Error(t);
|
|
2522
|
+
throw e.location = n || X.location, e;
|
|
2523
|
+
}
|
|
2524
|
+
}, Qe = (e, t) => {
|
|
2525
|
+
let n = X.messages[e];
|
|
2526
|
+
return t && t.forEach((e, t) => {
|
|
2527
|
+
n = n.replace(`%${t + 1}`, e);
|
|
2528
|
+
}), `${e}: ${n}`;
|
|
2529
|
+
}, X = {
|
|
2530
|
+
assert: Y,
|
|
2531
|
+
message: Qe,
|
|
2532
|
+
messages: {},
|
|
2533
|
+
reserveCodeRange: (e, t, n) => {
|
|
2534
|
+
Y(e <= t, "Invalid code range"), Y(X.reservedCodes.every((n) => t < n.first || e > n.last), "Conflicting request for error code range"), X.reservedCodes.push({
|
|
2535
|
+
first: e,
|
|
2536
|
+
last: t,
|
|
2537
|
+
name: n
|
|
2538
|
+
});
|
|
2539
|
+
},
|
|
2540
|
+
reservedCodes: [],
|
|
2541
|
+
setLocation: (e) => {
|
|
2542
|
+
X.location = e;
|
|
2543
|
+
},
|
|
2544
|
+
clearLocation: () => {
|
|
2545
|
+
X.location = null;
|
|
2546
|
+
},
|
|
2547
|
+
checkTimeout: () => {
|
|
2548
|
+
Y(!X.timeout || X.timeout > Date.now(), X.timeoutMessage);
|
|
2549
|
+
},
|
|
2550
|
+
setTimeout: (e, t) => {
|
|
2551
|
+
e !== void 0 && (X.timeout = e ? Date.now() + e : 0, X.timeoutMessage = t || "ERROR timeout exceeded");
|
|
2552
|
+
},
|
|
2553
|
+
setCounter: (e, t) => {
|
|
2554
|
+
X.count = e, X.countMessage = t || "ERROR count exceeded";
|
|
2555
|
+
},
|
|
2556
|
+
checkCounter: () => {
|
|
2557
|
+
let { count: e } = X;
|
|
2558
|
+
if (typeof e != "number" || Number.isNaN(e)) {
|
|
2559
|
+
Y(!1, "ERROR counter not set");
|
|
2560
|
+
return;
|
|
2561
|
+
}
|
|
2562
|
+
Y(X.count--, X.countMessage);
|
|
2563
|
+
}
|
|
2564
|
+
}, $e = {
|
|
2565
|
+
data: {},
|
|
2566
|
+
words: {
|
|
2567
|
+
"\\alpha": "\\alpha",
|
|
2568
|
+
"\\beta": "\\beta",
|
|
2569
|
+
"\\gamma": "\\gamma",
|
|
2570
|
+
"\\delta": "\\delta",
|
|
2571
|
+
"\\epsilon": "\\epsilon",
|
|
2572
|
+
"\\zeta": "\\zeta",
|
|
2573
|
+
"\\eta": "\\eta",
|
|
2574
|
+
"\\theta": "\\theta",
|
|
2575
|
+
"\\iota": "\\iota",
|
|
2576
|
+
"\\kappa": "\\kappa",
|
|
2577
|
+
"\\lambda": "\\lambda",
|
|
2578
|
+
"\\mu": "\\mu",
|
|
2579
|
+
"\\nu": "\\nu",
|
|
2580
|
+
"\\xi": "\\xi",
|
|
2581
|
+
"\\omicron": "\\omicron",
|
|
2582
|
+
"\\pi": "\\pi",
|
|
2583
|
+
"\\rho": "\\rho",
|
|
2584
|
+
"\\sigma": "\\simga",
|
|
2585
|
+
"\\tau": "\\tau",
|
|
2586
|
+
"\\upsilon": "\\upsilon",
|
|
2587
|
+
"\\phi": "\\phi",
|
|
2588
|
+
"\\chi": "\\chi",
|
|
2589
|
+
"\\psi": "\\psi",
|
|
2590
|
+
"\\omega": "\\omega",
|
|
2591
|
+
"\\Alpha": "\\Alpha",
|
|
2592
|
+
"\\Beta": "\\Beta",
|
|
2593
|
+
"\\Gamma": "\\Gamma",
|
|
2594
|
+
"\\Delta": "\\Delta",
|
|
2595
|
+
"\\Epsilon": "\\Epsilon",
|
|
2596
|
+
"\\Zeta": "\\Zeta",
|
|
2597
|
+
"\\Eta": "\\Eta",
|
|
2598
|
+
"\\Theta": "\\Theta",
|
|
2599
|
+
"\\Iota": "\\Iota",
|
|
2600
|
+
"\\Kappa": "\\Kappa",
|
|
2601
|
+
"\\Lambda": "\\Lambda",
|
|
2602
|
+
"\\Mu": "\\Mu",
|
|
2603
|
+
"\\Nu": "\\Nu",
|
|
2604
|
+
"\\Xi": "\\Xi",
|
|
2605
|
+
"\\Omicron": "\\Omicron",
|
|
2606
|
+
"\\Pi": "\\Pi",
|
|
2607
|
+
"\\Rho": "\\Rho",
|
|
2608
|
+
"\\Sigma": "\\Simga",
|
|
2609
|
+
"\\Tau": "\\Tau",
|
|
2610
|
+
"\\Upsilon": "\\Upsilon",
|
|
2611
|
+
"\\Phi": "\\Phi",
|
|
2612
|
+
"\\Chi": "\\Chi",
|
|
2613
|
+
"\\Psi": "\\Psi",
|
|
2614
|
+
"\\Omega": "\\Omega",
|
|
2615
|
+
"\\emptyset": "\\emptyset"
|
|
2616
|
+
},
|
|
2617
|
+
types: { numberPosNeg: [
|
|
2618
|
+
"(\\type{numberPosNeg})",
|
|
2619
|
+
"\\type{number}",
|
|
2620
|
+
"-\\type{number}"
|
|
2621
|
+
] },
|
|
2622
|
+
rules: {
|
|
2623
|
+
"\\left(?\\right]": ["\\left(%1\\right]"],
|
|
2624
|
+
"\\left[?\\right)": ["\\left[%1\\right)"],
|
|
2625
|
+
"\\left[?\\right]": ["\\left[%1\\right]"],
|
|
2626
|
+
"\\left\\{?\\right\\}": ["\\left\\{%1\\right\\}"],
|
|
2627
|
+
"?\\cup?": ["%1\\cup %2"],
|
|
2628
|
+
"?\\cap?": ["%1\\cap %2"],
|
|
2629
|
+
"?\\backslash?": ["%1\\backslash %2"],
|
|
2630
|
+
"\\mathbb{?}": ["\\mathbb{%2}"],
|
|
2631
|
+
"\\ln{?}": ["\\ln{%2}"],
|
|
2632
|
+
"\\log{?}": ["\\log{%2}"],
|
|
2633
|
+
"\\log_{?}{?}": ["\\log_{%1}{%2}"],
|
|
2634
|
+
"\\type{matrix}": [{ "\\begin{bmatrix}%1\\end{bmatrix}": {
|
|
2635
|
+
"\\type{row}": "%*\\\\",
|
|
2636
|
+
"\\type{column}": "%*&"
|
|
2637
|
+
} }],
|
|
2638
|
+
"\\frac{d}{d?}?": ["\\frac{d}{d%2}{%1}"],
|
|
2639
|
+
"\\frac{d^?}{d?^?}?": ["\\frac{d^%3}{d%2^%3}{%1}"],
|
|
2640
|
+
"\\int_?^? ? d?": ["\\int_{%1}^{%2} %3 d%4"],
|
|
2641
|
+
"\\int ? d?": ["\\int %1 d%2"],
|
|
2642
|
+
"\\lim_? ?": [{ "\\lim_{%1}{%2}": {
|
|
2643
|
+
"? \\rightarrow ?": "%1 \\rightarrow %2",
|
|
2644
|
+
"? \\to ?": "%1 \\to %2",
|
|
2645
|
+
"\\left(?,?\\right)": "\\left(%1, %2\\right)"
|
|
2646
|
+
} }],
|
|
2647
|
+
"\\sum_?^? ?": ["\\sum_{%1}^{%2}{%3}"],
|
|
2648
|
+
"\\sin{?}": ["\\sin{%1}"],
|
|
2649
|
+
"\\cos{?}": ["\\cos{%1}"],
|
|
2650
|
+
"\\tan{?}": ["\\tan{%1}"],
|
|
2651
|
+
"\\cot{?}": ["\\cot{%1}"],
|
|
2652
|
+
"\\sec{?}": ["\\sec{%1}"],
|
|
2653
|
+
"\\csc{?}": ["\\csc{%1}"],
|
|
2654
|
+
"\\sin^{-1}?": ["\\sin^{-1}{%1}"],
|
|
2655
|
+
"\\cos^{-1}{?}": ["\\cos^{-1}{%1}"],
|
|
2656
|
+
"\\tan^{-1}{?}": ["\\tan^{-1}{%1}"],
|
|
2657
|
+
"\\cot^{-1}{?}": ["\\cot^{-1}{%1}"],
|
|
2658
|
+
"\\sec^{-1}{?}": ["\\sec^{-1}{%1}"],
|
|
2659
|
+
"\\csc^{-1}{?}": ["\\csc^{-1}{%1}"],
|
|
2660
|
+
"\\sinh{?}": ["\\sinh{%1}"],
|
|
2661
|
+
"\\cosh{?}": ["\\cosh{%1}"],
|
|
2662
|
+
"\\tanh{?}": ["\\tanh{%1}"],
|
|
2663
|
+
"\\coth{?}": ["\\coth{%1}"],
|
|
2664
|
+
"\\sech{?}": ["\\sech{%1}"],
|
|
2665
|
+
"\\csch{?}": ["\\csch{%1}"],
|
|
2666
|
+
"\\sinh^{-1}{?}": ["\\sinh^{-1}{%1}"],
|
|
2667
|
+
"\\cosh^{-1}{?}": ["\\cosh^{-1}{%1}"],
|
|
2668
|
+
"\\tanh^{-1}{?}": ["\\tanh^{-1}{%1}"],
|
|
2669
|
+
"\\coth^{-1}{?}": ["\\coth^{-1}{%1}"],
|
|
2670
|
+
"\\sech^{-1}{?}": ["\\sech^{-1}{%1}"],
|
|
2671
|
+
"\\csch^{-1}{?}": ["\\csch^{-1}{%1}"],
|
|
2672
|
+
"?<?": ["%1<%2"],
|
|
2673
|
+
"?\\nless?": ["%1\\nless %2"],
|
|
2674
|
+
"?\\le?": ["%1\\le %2"],
|
|
2675
|
+
"?>?": ["%1>%2"],
|
|
2676
|
+
"?\\ge?": ["%1\\ge %2"],
|
|
2677
|
+
"?\\ngtr?": ["%1\\ngtr %2"],
|
|
2678
|
+
"?=?": ["%1=%2"],
|
|
2679
|
+
"?\\ne?": ["%1\\ne %2"],
|
|
2680
|
+
"?\\approx?": ["%1\\approx %2"],
|
|
2681
|
+
"\\infty": ["\\infty"],
|
|
2682
|
+
"\\type{mixedNumber}": ["%1%2"],
|
|
2683
|
+
"?%": ["{%1}%"],
|
|
2684
|
+
"?!": ["{%1}!"],
|
|
2685
|
+
"\\frac{?}{?}": ["\\frac{%1}{%2}"],
|
|
2686
|
+
"\\abs{?}": ["\\abs{%1}"],
|
|
2687
|
+
"?\\degree": ["{%1}\\degree"],
|
|
2688
|
+
"\\type{fraction}^?": ["\\left(%1\\right)^{%2}"],
|
|
2689
|
+
"{-?}^?": ["\\left(%1\\right)^{%2}"],
|
|
2690
|
+
"?^?": ["{%1}^{%2}"],
|
|
2691
|
+
"\\sqrt{?}": ["\\sqrt{%1}"],
|
|
2692
|
+
"\\sqrt[?]{?}": ["\\sqrt[%2]{%1}"],
|
|
2693
|
+
"-?": ["-%1"],
|
|
2694
|
+
"?+{-?}": ["%1+\\left(%2\\right)"],
|
|
2695
|
+
"?+?": ["%1+%2"],
|
|
2696
|
+
"?-{-?}": ["%1-\\left(%2\\right)"],
|
|
2697
|
+
"?-?": ["%1-%2"],
|
|
2698
|
+
"?*{-?}": ["%1\\times\\left(%2\\right)"],
|
|
2699
|
+
"?*?": ["%1\\times %2"],
|
|
2700
|
+
"?\\cdot{-?}": ["%1\\cdot\\left(%2\\right)"],
|
|
2701
|
+
"?\\cdot?": ["%1\\cdot %2"],
|
|
2702
|
+
"?\\div?": ["%1\\div %2"],
|
|
2703
|
+
"?:?": ["%1:%2"],
|
|
2704
|
+
"?_?": ["%1_{%2}"],
|
|
2705
|
+
"\\left(?\\right)": ["\\left(%1\\right)"],
|
|
2706
|
+
"{\\type{numberPosNeg}}{\\type{numberPosNeg}}": ["(%1)(%2)"],
|
|
2707
|
+
"? ?": ["%1 %2"],
|
|
2708
|
+
"?,?": ["%1,%2"],
|
|
2709
|
+
"?": ["%1"]
|
|
2710
|
+
},
|
|
2711
|
+
allowInterval: !0,
|
|
2712
|
+
parsingIntegralExpr: !1,
|
|
2713
|
+
RHS: !1
|
|
2714
|
+
};
|
|
2715
|
+
//#endregion
|
|
2716
|
+
//#region ../../node_modules/@graffiticode/translatex/src/core.js
|
|
2717
|
+
(function(e) {
|
|
2718
|
+
function t(e, t) {
|
|
2719
|
+
return {
|
|
2720
|
+
op: e,
|
|
2721
|
+
args: t
|
|
2722
|
+
};
|
|
2723
|
+
}
|
|
2724
|
+
function n(e, t) {
|
|
2725
|
+
return t.length > 1 ? {
|
|
2726
|
+
op: e,
|
|
2727
|
+
args: t
|
|
2728
|
+
} : t[0];
|
|
2729
|
+
}
|
|
2730
|
+
let r = (e, t) => {
|
|
2731
|
+
let n = e.indexOf("{"), r = (n > 0 && e.slice(0, n) || e).trim();
|
|
2732
|
+
Y(t && t[r]);
|
|
2733
|
+
let i = n > 0 && e.slice(n);
|
|
2734
|
+
return r === "$fmt" ? { rawConfig: i } : i && JSON.parse(i) || {};
|
|
2735
|
+
};
|
|
2736
|
+
function i(e) {
|
|
2737
|
+
function i(e, n, r, i) {
|
|
2738
|
+
switch (Y(n.op && n.args, `Visitor.visit() op=${n.op} args = ${n.args}`), n.op) {
|
|
2739
|
+
case J.NUM:
|
|
2740
|
+
n = r.numeric(n, i);
|
|
2741
|
+
break;
|
|
2742
|
+
case J.ADD:
|
|
2743
|
+
case J.SUB:
|
|
2744
|
+
case J.PM:
|
|
2745
|
+
case J.BACKSLASH:
|
|
2746
|
+
case J.DIV:
|
|
2747
|
+
case J.FRAC:
|
|
2748
|
+
case J.BINOM:
|
|
2749
|
+
case J.LOG:
|
|
2750
|
+
case J.COLON:
|
|
2751
|
+
case J.FUNC:
|
|
2752
|
+
case J.TYPE:
|
|
2753
|
+
case J.SUBSCRIPT:
|
|
2754
|
+
n = n.args.length === 1 ? r.unary(n, i) : r.binary(n, i);
|
|
2755
|
+
break;
|
|
2756
|
+
case J.MUL:
|
|
2757
|
+
case J.TIMES:
|
|
2758
|
+
case J.COEFF:
|
|
2759
|
+
case J.CDOT:
|
|
2760
|
+
n = r.multiplicative(n, i);
|
|
2761
|
+
break;
|
|
2762
|
+
case J.POW:
|
|
2763
|
+
n = r.exponential(n, i);
|
|
2764
|
+
break;
|
|
2765
|
+
case J.VAR:
|
|
2766
|
+
n = r.variable(n, i);
|
|
2767
|
+
break;
|
|
2768
|
+
case J.SQRT:
|
|
2769
|
+
case J.SIN:
|
|
2770
|
+
case J.COS:
|
|
2771
|
+
case J.TAN:
|
|
2772
|
+
case J.SEC:
|
|
2773
|
+
case J.CSC:
|
|
2774
|
+
case J.COT:
|
|
2775
|
+
case J.ARCSIN:
|
|
2776
|
+
case J.ARCCOS:
|
|
2777
|
+
case J.ARCTAN:
|
|
2778
|
+
case J.ARCSEC:
|
|
2779
|
+
case J.ARCCSC:
|
|
2780
|
+
case J.ARCCOT:
|
|
2781
|
+
case J.SINH:
|
|
2782
|
+
case J.COSH:
|
|
2783
|
+
case J.TANH:
|
|
2784
|
+
case J.ARCSINH:
|
|
2785
|
+
case J.ARCCOSH:
|
|
2786
|
+
case J.ARCTANH:
|
|
2787
|
+
case J.ARCSECH:
|
|
2788
|
+
case J.ARCCSCH:
|
|
2789
|
+
case J.ARCCOTH:
|
|
2790
|
+
case J.SECH:
|
|
2791
|
+
case J.CSCH:
|
|
2792
|
+
case J.COTH:
|
|
2793
|
+
case J.PERCENT:
|
|
2794
|
+
case J.M:
|
|
2795
|
+
case J.ABS:
|
|
2796
|
+
case J.FACT:
|
|
2797
|
+
case J.FORALL:
|
|
2798
|
+
case J.EXISTS:
|
|
2799
|
+
case J.IN:
|
|
2800
|
+
case J.SUM:
|
|
2801
|
+
case J.LIM:
|
|
2802
|
+
case J.EXP:
|
|
2803
|
+
case J.TO:
|
|
2804
|
+
case J.DERIV:
|
|
2805
|
+
case J.INTEGRAL:
|
|
2806
|
+
case J.PROD:
|
|
2807
|
+
case J.CUP:
|
|
2808
|
+
case J.BIGCUP:
|
|
2809
|
+
case J.CAP:
|
|
2810
|
+
case J.BIGCAP:
|
|
2811
|
+
case J.PIPE:
|
|
2812
|
+
case J.ION:
|
|
2813
|
+
case J.OVERLINE:
|
|
2814
|
+
case J.OVERSET:
|
|
2815
|
+
case J.UNDERSET:
|
|
2816
|
+
case J.MATHBF:
|
|
2817
|
+
case J.TEXT:
|
|
2818
|
+
case J.NONE:
|
|
2819
|
+
case J.DEGREE:
|
|
2820
|
+
case J.DOT:
|
|
2821
|
+
case J.MATHFIELD:
|
|
2822
|
+
case J.SET:
|
|
2823
|
+
case J.NOT:
|
|
2824
|
+
case J.OPERATORNAME:
|
|
2825
|
+
n = r.unary(n, i);
|
|
2826
|
+
break;
|
|
2827
|
+
case J.COMMA:
|
|
2828
|
+
case J.MATRIX:
|
|
2829
|
+
case J.VEC:
|
|
2830
|
+
case J.ROW:
|
|
2831
|
+
case J.COL:
|
|
2832
|
+
case J.LIST:
|
|
2833
|
+
case J.ANGLEBRACKET:
|
|
2834
|
+
n = r.comma(n, i);
|
|
2835
|
+
break;
|
|
2836
|
+
case J.EQL:
|
|
2837
|
+
case J.LT:
|
|
2838
|
+
case J.LE:
|
|
2839
|
+
case J.GT:
|
|
2840
|
+
case J.GE:
|
|
2841
|
+
case J.NE:
|
|
2842
|
+
case J.NGTR:
|
|
2843
|
+
case J.NLESS:
|
|
2844
|
+
case J.NI:
|
|
2845
|
+
case J.SUBSETEQ:
|
|
2846
|
+
case J.SUPSETEQ:
|
|
2847
|
+
case J.SUBSET:
|
|
2848
|
+
case J.SUPSET:
|
|
2849
|
+
case J.NNI:
|
|
2850
|
+
case J.NSUBSETEQ:
|
|
2851
|
+
case J.NSUPSETEQ:
|
|
2852
|
+
case J.NSUBSET:
|
|
2853
|
+
case J.NSUPSET:
|
|
2854
|
+
case J.APPROX:
|
|
2855
|
+
case J.IMPLIES:
|
|
2856
|
+
case J.PERP:
|
|
2857
|
+
case J.PROPTO:
|
|
2858
|
+
case J.PARALLEL:
|
|
2859
|
+
case J.NPARALLEL:
|
|
2860
|
+
case J.SIM:
|
|
2861
|
+
case J.CONG:
|
|
2862
|
+
case J.CAPRIGHTARROW:
|
|
2863
|
+
case J.RIGHTARROW:
|
|
2864
|
+
case J.LEFTARROW:
|
|
2865
|
+
case J.LONGRIGHTARROW:
|
|
2866
|
+
case J.LONGLEFTARROW:
|
|
2867
|
+
case J.OVERRIGHTARROW:
|
|
2868
|
+
case J.OVERLEFTARROW:
|
|
2869
|
+
case J.CAPLEFTRIGHTARROW:
|
|
2870
|
+
case J.LEFTRIGHTARROW:
|
|
2871
|
+
case J.LONGLEFTRIGHTARROW:
|
|
2872
|
+
case J.OVERLEFTRIGHTARROW:
|
|
2873
|
+
n = r.equals(n, i);
|
|
2874
|
+
break;
|
|
2875
|
+
case J.PAREN:
|
|
2876
|
+
case J.BRACKET:
|
|
2877
|
+
case J.BRACE:
|
|
2878
|
+
case J.INTERVAL:
|
|
2879
|
+
case J.INTERVALOPEN:
|
|
2880
|
+
case J.INTERVALLEFTOPEN:
|
|
2881
|
+
case J.INTERVALRIGHTOPEN:
|
|
2882
|
+
n = r.paren(n);
|
|
2883
|
+
break;
|
|
2884
|
+
default: r.name !== "normalizeLiteral" && r.name !== "sort" && (n = t(J.VAR, [`INTERNAL ERROR Should not get here. Unhandled node operator ${n.op}`]));
|
|
2885
|
+
}
|
|
2886
|
+
return n;
|
|
2887
|
+
}
|
|
2888
|
+
function s(e, t) {
|
|
2889
|
+
if (!t) return "";
|
|
2890
|
+
let n = J.option(e, "words"), r;
|
|
2891
|
+
return n && (r = n[t.toLowerCase()]), r || (r = t, r.charAt(0) === "\\" && (r = r.substring(1))), r;
|
|
2892
|
+
}
|
|
2893
|
+
function c(e) {
|
|
2894
|
+
let t = [];
|
|
2895
|
+
switch (e.op) {
|
|
2896
|
+
case J.VAR:
|
|
2897
|
+
t.push({ code: e.args[0] });
|
|
2898
|
+
break;
|
|
2899
|
+
case J.MUL:
|
|
2900
|
+
{
|
|
2901
|
+
let n = "", r;
|
|
2902
|
+
e.args.forEach((e) => {
|
|
2903
|
+
e.op === J.VAR ? n += e.args[0] : e.op === J.NUM && (r = +e.args[0]);
|
|
2904
|
+
}), t.push({
|
|
2905
|
+
code: n,
|
|
2906
|
+
length: r
|
|
2907
|
+
});
|
|
2908
|
+
}
|
|
2909
|
+
break;
|
|
2910
|
+
case J.COMMA: e.args.forEach((e) => {
|
|
2911
|
+
t = t.concat(c(e));
|
|
2912
|
+
});
|
|
2913
|
+
}
|
|
2914
|
+
return t;
|
|
2915
|
+
}
|
|
2916
|
+
function l(e) {
|
|
2917
|
+
let [t, n] = e.split("[");
|
|
2918
|
+
return {
|
|
2919
|
+
name: t,
|
|
2920
|
+
arg: n && n.substring(0, n.indexOf("]")) || void 0
|
|
2921
|
+
};
|
|
2922
|
+
}
|
|
2923
|
+
function u(e, t) {
|
|
2924
|
+
return c(e).some((e) => {
|
|
2925
|
+
let n = e.code, r = e.length;
|
|
2926
|
+
switch (n) {
|
|
2927
|
+
case "integer":
|
|
2928
|
+
if (t.numberFormat === "integer" && (r === void 0 || r === t.args[0].length)) return !0;
|
|
2929
|
+
break;
|
|
2930
|
+
case "decimal":
|
|
2931
|
+
if (t.numberFormat === "decimal" && t.isRepeating) return r === void 0;
|
|
2932
|
+
if (t.numberFormat === "decimal" && (r === void 0 || r === 0 && t.args[0].indexOf(".") === -1 || r === t.args[0].substring(t.args[0].indexOf(".") + 1).length)) return !0;
|
|
2933
|
+
break;
|
|
2934
|
+
case "repeatingDecimal": return t.numberFormat === "decimal" && t.isRepeating ? (Y(!r, "The repeatingDecimal pattern does not take a length"), !0) : !1;
|
|
2935
|
+
case "number":
|
|
2936
|
+
if (t.numberFormat === "decimal" && t.isRepeating) return r === void 0;
|
|
2937
|
+
if (t.numberFormat === "integer" || t.numberFormat === "decimal") {
|
|
2938
|
+
let e = t.args[0].indexOf(".");
|
|
2939
|
+
if (r === void 0 || r === 0 && e === -1 || e >= 0 && r === t.args[0].substring(e + 1).length) return !0;
|
|
2940
|
+
}
|
|
2941
|
+
break;
|
|
2942
|
+
case "scientific":
|
|
2943
|
+
if (t.isScientific) {
|
|
2944
|
+
let e = t.args[0].args[0];
|
|
2945
|
+
if (r === void 0 || r === 0 && e.indexOf(".") === -1 || r === e.substring(e.indexOf(".") + 1).length) return !0;
|
|
2946
|
+
}
|
|
2947
|
+
break;
|
|
2948
|
+
case "fraction":
|
|
2949
|
+
if (t.isFraction || t.isMixedNumber) return !0;
|
|
2950
|
+
break;
|
|
2951
|
+
case "simpleFraction":
|
|
2952
|
+
case "nonMixedFraction":
|
|
2953
|
+
if (t.isFraction) return !0;
|
|
2954
|
+
break;
|
|
2955
|
+
case "mixedFraction":
|
|
2956
|
+
case "mixedNumber":
|
|
2957
|
+
if (t.isMixedNumber) return !0;
|
|
2958
|
+
break;
|
|
2959
|
+
case "fractionOrDecimal":
|
|
2960
|
+
if (t.isFraction || t.isMixedNumber || t.numberFormat === "decimal") return !0;
|
|
2961
|
+
break;
|
|
2962
|
+
default: Y(!1, Qe(2015, [n]));
|
|
2963
|
+
}
|
|
2964
|
+
return !1;
|
|
2965
|
+
});
|
|
2966
|
+
}
|
|
2967
|
+
function d(e, t) {
|
|
2968
|
+
return c(e).some((e) => {
|
|
2969
|
+
switch (e.code) {
|
|
2970
|
+
case "simpleSmallRowMatrix":
|
|
2971
|
+
case "smallRowMatrix": return t.op === J.MATRIX && t.m === 1 && t.n < 4;
|
|
2972
|
+
case "simpleSmallColumnMatrix":
|
|
2973
|
+
case "smallColumnMatrix": return t.op === J.MATRIX && t.m < 4 && t.n === 1;
|
|
2974
|
+
case "simpleSmallMatrix":
|
|
2975
|
+
case "smallMatrix": return t.op === J.MATRIX && t.m < 4 && t.n < 4;
|
|
2976
|
+
case "matrix": return t.op === J.MATRIX;
|
|
2977
|
+
case "row": return t.op === J.ROW;
|
|
2978
|
+
case "column": return t.op === J.COL;
|
|
2979
|
+
default: return !1;
|
|
2980
|
+
}
|
|
2981
|
+
});
|
|
2982
|
+
}
|
|
2983
|
+
function f(e, t) {
|
|
2984
|
+
let n = l(e), r = n.name, i = n.arg;
|
|
2985
|
+
switch (r) {
|
|
2986
|
+
case "polynomial":
|
|
2987
|
+
if (i) {
|
|
2988
|
+
if (i.indexOf(">") === 0) {
|
|
2989
|
+
let e = parseInt(i.substring(1), 10);
|
|
2990
|
+
return t.isPolynomial > e;
|
|
2991
|
+
}
|
|
2992
|
+
let e = parseInt(i, 10);
|
|
2993
|
+
return t.isPolynomial > e;
|
|
2994
|
+
}
|
|
2995
|
+
return t.isPolynomial;
|
|
2996
|
+
default: return !1;
|
|
2997
|
+
}
|
|
2998
|
+
}
|
|
2999
|
+
function p(e) {
|
|
3000
|
+
return e.op === J.NUM || e.op === J.VAR || typeof e == "string";
|
|
3001
|
+
}
|
|
3002
|
+
function m(e) {
|
|
3003
|
+
return Y(e.op === J.MATRIX || e.op === J.ROW || e.op === J.COL), e.args.every((e) => e.op === J.MATRIX || e.op === J.ROW || e.op === J.COL ? m(e) : p(e));
|
|
3004
|
+
}
|
|
3005
|
+
function h(e, t, n) {
|
|
3006
|
+
if (t.op === J.TYPE && t.args[0].op === J.VAR) {
|
|
3007
|
+
let r = t.args[0].args[0];
|
|
3008
|
+
switch (r = r.indexOf("[") > 0 && r.slice(0, r.indexOf("[")) || r, r) {
|
|
3009
|
+
case "number":
|
|
3010
|
+
case "integer":
|
|
3011
|
+
case "decimal":
|
|
3012
|
+
case "scientific":
|
|
3013
|
+
case "fraction":
|
|
3014
|
+
case "simpleFraction":
|
|
3015
|
+
case "mixedFraction":
|
|
3016
|
+
case "mixedNumber":
|
|
3017
|
+
case "fractionOrDecimal":
|
|
3018
|
+
case "repeatingDecimal": return u(t.args[0], n);
|
|
3019
|
+
case "variable": return n.op === J.VAR;
|
|
3020
|
+
case "simpleSmallRowMatrix":
|
|
3021
|
+
case "simpleSmallColumnMatrix":
|
|
3022
|
+
case "simpleSmallMatrix": return d(t.args[0], n) && m(n);
|
|
3023
|
+
case "smallRowMatrix":
|
|
3024
|
+
case "smallColumnMatrix":
|
|
3025
|
+
case "smallMatrix":
|
|
3026
|
+
case "matrix":
|
|
3027
|
+
case "row":
|
|
3028
|
+
case "column": return d(t.args[0], n);
|
|
3029
|
+
case "polynomial": return f(t.args[0].args[0], n);
|
|
3030
|
+
default: {
|
|
3031
|
+
let t = J.option(e, "types")[r];
|
|
3032
|
+
if (t) return Y(t instanceof Array), t.some((t) => g(e, [J.create(e, t)], n).length > 0);
|
|
3033
|
+
}
|
|
3034
|
+
}
|
|
3035
|
+
return !1;
|
|
3036
|
+
}
|
|
3037
|
+
if (t.op === J.COLON && t.args[0].op === J.VAR && t.args[0].args[0] === "?") {
|
|
3038
|
+
switch (Y(t.args[1].op === J.VAR), t.args[1].args[0]) {
|
|
3039
|
+
case "N": return n.op === J.NUM;
|
|
3040
|
+
case "V": return n.op === J.VAR;
|
|
3041
|
+
}
|
|
3042
|
+
return !1;
|
|
3043
|
+
}
|
|
3044
|
+
return t.op === J.VAR && t.args[0] === "?" || t.op === J.MATRIX && n.op === J.MATRIX;
|
|
3045
|
+
}
|
|
3046
|
+
function g(n, r, i) {
|
|
3047
|
+
return r.size === 0 || i === void 0 ? !1 : r.filter((r) => {
|
|
3048
|
+
if (r.op === void 0 || i.op === void 0) return !1;
|
|
3049
|
+
if (e.intern(r) === e.intern(i) || h(n, r, i)) return !0;
|
|
3050
|
+
if (r.op === i.op) {
|
|
3051
|
+
if (r.args.length === i.args.length) return r.args.every((e, t) => r.op === J.VAR ? e.toLowerCase() === i.args[t].toLowerCase() : g(n, [e], i.args[t]).length === 1);
|
|
3052
|
+
if (r.args.length < i.args.length) {
|
|
3053
|
+
let e = i.args.slice(1);
|
|
3054
|
+
if (r.args.length === 2) return g(n, [r.args[0]], i.args[0]).length > 0 && g(n, [r.args[1]], t(i.op, e)).length > 0;
|
|
3055
|
+
}
|
|
3056
|
+
}
|
|
3057
|
+
return !1;
|
|
3058
|
+
});
|
|
3059
|
+
}
|
|
3060
|
+
function _(e, n, r) {
|
|
3061
|
+
let i = e;
|
|
3062
|
+
return n.forEach((t, n) => {
|
|
3063
|
+
e = e.replace(RegExp(`%${n + 1}`, "g"), t.args[0]);
|
|
3064
|
+
}), n.length > 2 ? _(i, [t(J.VAR, [e])].concat(n.slice(2)), r) : e;
|
|
3065
|
+
}
|
|
3066
|
+
function v(e, n, i, a) {
|
|
3067
|
+
i ||= {}, a ||= {};
|
|
3068
|
+
let o = e.template;
|
|
3069
|
+
if (n.length === 0 && n.push(t(J.VAR, [""])), o && o.indexOf("%OP") >= 0 && i.op && (o = o.replace(/* @__PURE__ */ RegExp("%OP", "g"), i.op)), o && n) {
|
|
3070
|
+
o.indexOf("%%") >= 0 && (o = o.replace(/* @__PURE__ */ RegExp("%%", "g"), n[0].args[0]));
|
|
3071
|
+
let t = o.indexOf("{"), s = (t > 0 && o.slice(0, t) || o).trim();
|
|
3072
|
+
if (a[s]) {
|
|
3073
|
+
let e = a[s].fn, t = e({
|
|
3074
|
+
config: r(o, a),
|
|
3075
|
+
env: i
|
|
3076
|
+
}), c = [];
|
|
3077
|
+
n.forEach((e) => {
|
|
3078
|
+
c.push(e.args[0]);
|
|
3079
|
+
}), o = t(c);
|
|
3080
|
+
}
|
|
3081
|
+
if (o.indexOf("%*") >= 0) {
|
|
3082
|
+
let e = "";
|
|
3083
|
+
n.forEach((t, r) => {
|
|
3084
|
+
e !== "" && (e += " "), r === n.length - 1 && (o = o.slice(0, 2 * o.indexOf("%*") + 2)), e += o.replace("%*", t.args[0]).replace("%M", t.m).replace("%N", t.n);
|
|
3085
|
+
}), o = e;
|
|
3086
|
+
}
|
|
3087
|
+
return o.indexOf("%IP") >= 0 && (o = o.replace(/* @__PURE__ */ RegExp("%IP", "g"), i.ip)), o.indexOf("%FP0") >= 0 && (o = o.replace(/* @__PURE__ */ RegExp("%FP0", "g"), i.fp)), o.indexOf("%FP") >= 0 && (o = o.replace(/* @__PURE__ */ RegExp("%FP", "g"), i.fp.split("").join(" "))), o.indexOf("%M") >= 0 && (Y(i.m), o = o.replace(/* @__PURE__ */ RegExp("%M", "g"), i.m)), o.indexOf("%N") >= 0 && (Y(i.n), o = o.replace(/* @__PURE__ */ RegExp("%N", "g"), i.n)), e.isBinary && n.length > 2 ? o = _(o, n, i) : n.forEach((e, t) => {
|
|
3088
|
+
o = o.replace(RegExp(`%${t + 1}`, "g"), e ? e.args[0] : "");
|
|
3089
|
+
}), {
|
|
3090
|
+
op: J.VAR,
|
|
3091
|
+
args: [o]
|
|
3092
|
+
};
|
|
3093
|
+
}
|
|
3094
|
+
return n[0];
|
|
3095
|
+
}
|
|
3096
|
+
function y(e, t, n) {
|
|
3097
|
+
let r = [];
|
|
3098
|
+
return n.forEach((e) => {
|
|
3099
|
+
r = r.concat(t[JSON.stringify(e)]);
|
|
3100
|
+
}), r.length === 0 && r.push({ template: "" }), r[0];
|
|
3101
|
+
}
|
|
3102
|
+
function b(e, t) {
|
|
3103
|
+
return Y(typeof t.template == "string"), t.template.indexOf("%%") >= 0 ? [e] : e.args;
|
|
3104
|
+
}
|
|
3105
|
+
function x(e) {
|
|
3106
|
+
if (e.args.length <= 2) return e;
|
|
3107
|
+
let t = e.args.pop();
|
|
3108
|
+
return n(e.op, [x(e), t]);
|
|
3109
|
+
}
|
|
3110
|
+
function S(e) {
|
|
3111
|
+
if (e.args.length <= 2) return e;
|
|
3112
|
+
let t = e.args.shift();
|
|
3113
|
+
return n(e.op, [t, S(e)]);
|
|
3114
|
+
}
|
|
3115
|
+
function C(e, n, r) {
|
|
3116
|
+
r instanceof Array && (r = r.length === 1 ? r[0] : o(e, r[1], r[0]));
|
|
3117
|
+
let c = r, l = Object.keys(r), u = [];
|
|
3118
|
+
return l.forEach((e) => {
|
|
3119
|
+
u.push(JSON.parse(e));
|
|
3120
|
+
}), !n || !n.args ? (Y(!1, "Should not get here. Illformed node."), 0) : i(e, n, {
|
|
3121
|
+
name: "translate",
|
|
3122
|
+
numeric(t) {
|
|
3123
|
+
let n = [{
|
|
3124
|
+
op: J.VAR,
|
|
3125
|
+
args: [s(e, t.args[0])]
|
|
3126
|
+
}], i = e.env || {};
|
|
3127
|
+
if (t.numberFormat === "decimal") {
|
|
3128
|
+
let e = t.args[0].split(".");
|
|
3129
|
+
i.ip = e[0], i.fp = e[1] || "0";
|
|
3130
|
+
}
|
|
3131
|
+
let a = g(e, u, t);
|
|
3132
|
+
return a.length === 0 ? t : v(y(e, r, a, 1), n, i, e.expanderBuilders);
|
|
3133
|
+
},
|
|
3134
|
+
binary(t) {
|
|
3135
|
+
t = t.op === J.SUBSCRIPT ? S(t) : x(t);
|
|
3136
|
+
let n = g(e, u, t);
|
|
3137
|
+
if (n.length === 0) return t;
|
|
3138
|
+
let i = y(e, r, n, t.args.length), o = a(i), s = b(t, i), l = [];
|
|
3139
|
+
return s.forEach((t, n) => {
|
|
3140
|
+
let r = J.option(e, "RHS", n > 0);
|
|
3141
|
+
l = l.concat(C(e, t, [c, o])), J.option(e, "RHS", r);
|
|
3142
|
+
}), i.isBinary = !0, v(i, l, {
|
|
3143
|
+
...e.env,
|
|
3144
|
+
op: t.op
|
|
3145
|
+
}, e.expanderBuilders);
|
|
3146
|
+
},
|
|
3147
|
+
multiplicative(t) {
|
|
3148
|
+
t = x(t);
|
|
3149
|
+
let n = g(e, u, t);
|
|
3150
|
+
if (n.length === 0) return t;
|
|
3151
|
+
let i = y(e, r, n, t.args.length), o = a(i, r), s = b(t, i), l = [];
|
|
3152
|
+
return s.forEach((t, n) => {
|
|
3153
|
+
let r = J.option(e, "RHS", n > 0);
|
|
3154
|
+
l = l.concat(C(e, t, [c, o])), J.option(e, "RHS", r);
|
|
3155
|
+
}), i.isBinary = !0, v(i, l, {
|
|
3156
|
+
...e.env,
|
|
3157
|
+
op: t.op
|
|
3158
|
+
}, e.expanderBuilders);
|
|
3159
|
+
},
|
|
3160
|
+
unary(t) {
|
|
3161
|
+
let n = g(e, u, t);
|
|
3162
|
+
if (n.length === 0) return t;
|
|
3163
|
+
let i = y(e, r, n, t.args.length), o = a(i, r), s = b(t, i), l = [];
|
|
3164
|
+
return s.forEach((t) => {
|
|
3165
|
+
l = l.concat(C(e, t, [c, o]));
|
|
3166
|
+
}), v(i, l, {
|
|
3167
|
+
...e.env,
|
|
3168
|
+
op: t.op
|
|
3169
|
+
}, e.expanderBuilders);
|
|
3170
|
+
},
|
|
3171
|
+
exponential(t) {
|
|
3172
|
+
let n = g(e, u, t);
|
|
3173
|
+
if (n.length === 0) return t;
|
|
3174
|
+
let i = y(e, r, n, t.args.length), o = a(i, r), s = b(t, i), l = [];
|
|
3175
|
+
return s.forEach((t) => {
|
|
3176
|
+
l = l.concat(C(e, t, [c, o]));
|
|
3177
|
+
}), v(i, l, e.env, e.expanderBuilders);
|
|
3178
|
+
},
|
|
3179
|
+
variable(n) {
|
|
3180
|
+
let i = g(e, u, n);
|
|
3181
|
+
if (i.length === 0) return n;
|
|
3182
|
+
let o = y(e, r, i, n.args.length), l = a(o, r), d = b(n, o), f = [];
|
|
3183
|
+
return f.push(t(J.VAR, [s(e, d.shift())])), d.forEach((t) => {
|
|
3184
|
+
f = f.concat(C(e, t, [c, l]));
|
|
3185
|
+
}), v(o, f, e.env, e.expanderBuilders);
|
|
3186
|
+
},
|
|
3187
|
+
comma(t) {
|
|
3188
|
+
let n = e.env || {};
|
|
3189
|
+
if (t.op === J.MATRIX || t.op === J.ROW || t.op === J.COL) {
|
|
3190
|
+
t.op === J.MATRIX ? (Y(t.args[0].op === J.ROW), Y(t.args[0].args[0].op === J.COL), t.m = n.m = t.args[0].args.length, t.n = n.n = t.args[0].args[0].args.length, t.args.forEach((e, t) => {
|
|
3191
|
+
e.m = t + 1;
|
|
3192
|
+
})) : t.op === J.ROW ? t.args.forEach((e, t) => {
|
|
3193
|
+
e.m = t + 1, e.n = void 0;
|
|
3194
|
+
}) : t.args.forEach((e, n) => {
|
|
3195
|
+
e.m = t.m, e.n = n + 1;
|
|
3196
|
+
});
|
|
3197
|
+
let i = g(e, u, t);
|
|
3198
|
+
if (i.length === 0) return t;
|
|
3199
|
+
let o = y(e, r, i, t.args.length), s = [], l = a(o, r);
|
|
3200
|
+
return b(t, o).forEach((t, n) => {
|
|
3201
|
+
s = s.concat(C(e, t, [c, l])), s[n].m = t.m, s[n].n = t.n;
|
|
3202
|
+
}), v(o, s, n, e.expanderBuilders);
|
|
3203
|
+
}
|
|
3204
|
+
let i = g(e, u, t);
|
|
3205
|
+
if (i.length === 0) return t;
|
|
3206
|
+
let o = y(e, r, i, t.args.length), s = a(o, r), l = b(t, o), d = [];
|
|
3207
|
+
return l.forEach((t) => {
|
|
3208
|
+
d = d.concat(C(e, t, [c, s]));
|
|
3209
|
+
}), o.isBinary = !0, v(o, d, n, e.expanderBuilders);
|
|
3210
|
+
},
|
|
3211
|
+
equals(t) {
|
|
3212
|
+
let n = g(e, u, t);
|
|
3213
|
+
if (n.length === 0) return t;
|
|
3214
|
+
let i = y(e, r, n, t.args.length), o = a(i, r), s = b(t, i), l = [];
|
|
3215
|
+
return s.forEach((t) => {
|
|
3216
|
+
l = l.concat(C(e, t, [c, o]));
|
|
3217
|
+
}), i.isBinary = !0, v(i, l, e.env, e.expanderBuilders);
|
|
3218
|
+
},
|
|
3219
|
+
paren(t) {
|
|
3220
|
+
let n = g(e, u, t);
|
|
3221
|
+
if (n.length === 0) return t;
|
|
3222
|
+
let i = y(e, r, n, 1), o = a(i, r), s = b(t, i), l = [];
|
|
3223
|
+
return s.forEach((t) => {
|
|
3224
|
+
l.push(C(e, t, [c, o]));
|
|
3225
|
+
}), v(i, l, e.env, e.expanderBuilders);
|
|
3226
|
+
}
|
|
3227
|
+
});
|
|
3228
|
+
}
|
|
3229
|
+
this.translate = C;
|
|
3230
|
+
}
|
|
3231
|
+
function a(e) {
|
|
3232
|
+
return e.rules;
|
|
3233
|
+
}
|
|
3234
|
+
function o(e, t, n) {
|
|
3235
|
+
let r = {};
|
|
3236
|
+
if (t) {
|
|
3237
|
+
if (t instanceof Array) {
|
|
3238
|
+
let n = {};
|
|
3239
|
+
t.some((t) => t.context ? (t.context && t.context.split(" ") || []).some((r) => e[r] ? (n = t.value, !0) : !1) : (n = t, !0)), t = n;
|
|
3240
|
+
}
|
|
3241
|
+
Object.keys(t).forEach((e) => {
|
|
3242
|
+
r[e] = t[e];
|
|
3243
|
+
});
|
|
3244
|
+
}
|
|
3245
|
+
let i = Object.keys(n), a;
|
|
3246
|
+
return i.forEach((e) => {
|
|
3247
|
+
Number.isNaN(parseInt(e, 10)) ? a = n : (a = n[e], e = Object.keys(a)[0]), r[e] || (r[e] = a[e]);
|
|
3248
|
+
}), r;
|
|
3249
|
+
}
|
|
3250
|
+
function s(e) {
|
|
3251
|
+
let t, n = e.indexOf("\\context");
|
|
3252
|
+
if (n >= 0) {
|
|
3253
|
+
e = e.slice(n + 8);
|
|
3254
|
+
let r = e.indexOf("}");
|
|
3255
|
+
t = e.slice(1, r), e = e.slice(r + 1);
|
|
3256
|
+
}
|
|
3257
|
+
return {
|
|
3258
|
+
context: t,
|
|
3259
|
+
template: e
|
|
3260
|
+
};
|
|
3261
|
+
}
|
|
3262
|
+
function c(e, t) {
|
|
3263
|
+
let n;
|
|
3264
|
+
if (t instanceof Array) Y(t.length === 1), n = c(e, t[0]);
|
|
3265
|
+
else if (typeof t == "string") n = s(t);
|
|
3266
|
+
else {
|
|
3267
|
+
let r = "", i = Object.keys(t);
|
|
3268
|
+
Y(i.length === 1);
|
|
3269
|
+
let a = i[0], o = t[a], s;
|
|
3270
|
+
o instanceof Array ? (s = [], o.forEach((t) => {
|
|
3271
|
+
t.options ? (r += t.options.RHS ? " RHS" : "", r += t.options.EndRoot ? " EndRoot" : "", r += t.options.NoParens ? " NoParens" : "", s.push({
|
|
3272
|
+
context: r,
|
|
3273
|
+
value: l(e, t.value)
|
|
3274
|
+
})) : s.push(l(e, t));
|
|
3275
|
+
})) : s = l(e, o), n = {
|
|
3276
|
+
template: a,
|
|
3277
|
+
rules: s
|
|
3278
|
+
};
|
|
3279
|
+
}
|
|
3280
|
+
return n;
|
|
3281
|
+
}
|
|
3282
|
+
function l(e, t) {
|
|
3283
|
+
let n = {};
|
|
3284
|
+
return Object.keys(t).forEach((r) => {
|
|
3285
|
+
let i = JSON.stringify(J.create(e, r)), a = c(e, t[r]);
|
|
3286
|
+
n[i] ? n[i].push(a) : n[i] = [a];
|
|
3287
|
+
}), n;
|
|
3288
|
+
}
|
|
3289
|
+
function u(t, n, r) {
|
|
3290
|
+
let a = new i(e), o = l(t, r);
|
|
3291
|
+
return a.translate(t, n, o);
|
|
3292
|
+
}
|
|
3293
|
+
function d(e) {
|
|
3294
|
+
let t = 0, n = "";
|
|
3295
|
+
for (; t < e.length; t++) switch (e.charAt(t)) {
|
|
3296
|
+
case " ":
|
|
3297
|
+
case " ":
|
|
3298
|
+
case "\n":
|
|
3299
|
+
if (n.length === 0 || n.charAt(n.length - 1) === " ") continue;
|
|
3300
|
+
n += " ";
|
|
3301
|
+
break;
|
|
3302
|
+
default: n += e.charAt(t);
|
|
3303
|
+
}
|
|
3304
|
+
for (; n.charAt(n.length - 1) === " ";) n = n.substring(0, n.length - 1);
|
|
3305
|
+
for (; n.lastIndexOf("baseline") !== -1 && n.lastIndexOf(" baseline") === n.length - 9;) n = n.substring(0, n.length - 9);
|
|
3306
|
+
return n;
|
|
3307
|
+
}
|
|
3308
|
+
J.fn.translate = function(e, n) {
|
|
3309
|
+
let r = u(n, e, J.option(n, "rules"));
|
|
3310
|
+
return (!r || r.op !== J.VAR) && (r = t(J.VAR, [""])), d(r.args[0]);
|
|
3311
|
+
}, J.option = function(e, t, n) {
|
|
3312
|
+
Y(e);
|
|
3313
|
+
let r = e && e[t];
|
|
3314
|
+
if (n !== void 0 && (J.options = e ||= {}, e[t] = n), r === void 0) switch (t) {
|
|
3315
|
+
case "field":
|
|
3316
|
+
r = "integer";
|
|
3317
|
+
break;
|
|
3318
|
+
case "decimalPlaces":
|
|
3319
|
+
r = 10;
|
|
3320
|
+
break;
|
|
3321
|
+
case "toleranceAbsolute":
|
|
3322
|
+
case "tolerancePercent":
|
|
3323
|
+
case "toleranceRange":
|
|
3324
|
+
case "setThousandsSeparator":
|
|
3325
|
+
case "setDecimalSeparator":
|
|
3326
|
+
case "dontExpandPowers":
|
|
3327
|
+
case "dontFactorDenominators":
|
|
3328
|
+
case "dontFactorTerms":
|
|
3329
|
+
case "dontConvertDecimalToFraction":
|
|
3330
|
+
case "strict":
|
|
3331
|
+
case "antiderivative":
|
|
3332
|
+
r = void 0;
|
|
3333
|
+
break;
|
|
3334
|
+
case "types":
|
|
3335
|
+
r = {};
|
|
3336
|
+
break;
|
|
3337
|
+
default: r = !1;
|
|
3338
|
+
}
|
|
3339
|
+
return r;
|
|
3340
|
+
};
|
|
3341
|
+
})(new Ze());
|
|
3342
|
+
var et = function() {
|
|
3343
|
+
X.reserveCodeRange(4e3, 4999, "core");
|
|
3344
|
+
let e = X.messages, t = X.message, n = X.assert;
|
|
3345
|
+
e[4001] = "No Math Core spec provided.", e[4002] = "No Math Core solution provided.", e[4003] = "No Math Core spec value provided.", e[4004] = "Invalid Math Core spec method '%1'.", e[4005] = "Operation taking too long.", e[4006] = "Invalid option name '%1'.", e[4007] = "Invalid option value '%2' for option '%1'.", e[4008] = "Internal error: %1";
|
|
3346
|
+
let r = {
|
|
3347
|
+
ROUND: {},
|
|
3348
|
+
SUM: {},
|
|
3349
|
+
MUL: {},
|
|
3350
|
+
IF: {},
|
|
3351
|
+
matrix: {},
|
|
3352
|
+
pmatrix: {},
|
|
3353
|
+
bmatrix: {},
|
|
3354
|
+
Bmatrix: {},
|
|
3355
|
+
vmatrix: {},
|
|
3356
|
+
Vmatrix: {},
|
|
3357
|
+
array: {},
|
|
3358
|
+
"\\alpha": { type: "var" },
|
|
3359
|
+
"\\beta": { type: "var" },
|
|
3360
|
+
"\\gamma": { type: "var" },
|
|
3361
|
+
"\\delta": { type: "var" },
|
|
3362
|
+
"\\epsilon": { type: "var" },
|
|
3363
|
+
"\\zeta": { type: "var" },
|
|
3364
|
+
"\\eta": { type: "var" },
|
|
3365
|
+
"\\theta": { type: "var" },
|
|
3366
|
+
"\\iota": { type: "var" },
|
|
3367
|
+
"\\kappa": { type: "var" },
|
|
3368
|
+
"\\lambda": { type: "var" },
|
|
3369
|
+
"\\mu": {
|
|
3370
|
+
type: "const",
|
|
3371
|
+
value: 10 ** -6
|
|
3372
|
+
},
|
|
3373
|
+
"\\nu": { type: "var" },
|
|
3374
|
+
"\\xi": { type: "var" },
|
|
3375
|
+
"\\pi": {
|
|
3376
|
+
type: "const",
|
|
3377
|
+
value: Math.PI
|
|
3378
|
+
},
|
|
3379
|
+
"\\rho": { type: "var" },
|
|
3380
|
+
"\\sigma": { type: "var" },
|
|
3381
|
+
"\\tau": { type: "var" },
|
|
3382
|
+
"\\upsilon": { type: "var" },
|
|
3383
|
+
"\\phi": { type: "var" },
|
|
3384
|
+
"\\chi": { type: "var" },
|
|
3385
|
+
"\\psi": { type: "var" },
|
|
3386
|
+
"\\omega": { type: "var" },
|
|
3387
|
+
"\\sin": { type: "var" },
|
|
3388
|
+
"\\cos": { type: "var" },
|
|
3389
|
+
"\\tan": { type: "var" },
|
|
3390
|
+
"\\sec": { type: "var" },
|
|
3391
|
+
"\\csc": { type: "var" },
|
|
3392
|
+
"\\cot": { type: "var" },
|
|
3393
|
+
"\\arcsin": { type: "var" },
|
|
3394
|
+
"\\arccos": { type: "var" },
|
|
3395
|
+
"\\arctan": { type: "var" },
|
|
3396
|
+
"\\arcsec": { type: "var" },
|
|
3397
|
+
"\\arccsc": { type: "var" },
|
|
3398
|
+
"\\arccot": { type: "var" },
|
|
3399
|
+
"\\sinh": { type: "var" },
|
|
3400
|
+
"\\cosh": { type: "var" },
|
|
3401
|
+
"\\tanh": { type: "var" },
|
|
3402
|
+
"\\sech": { type: "var" },
|
|
3403
|
+
"\\csch": { type: "var" },
|
|
3404
|
+
"\\coth": { type: "var" },
|
|
3405
|
+
"\\log": { type: "var" },
|
|
3406
|
+
"\\ln": { type: "var" },
|
|
3407
|
+
"\\lg": { type: "var" }
|
|
3408
|
+
};
|
|
3409
|
+
function i(e, r) {
|
|
3410
|
+
switch (e) {
|
|
3411
|
+
case "field":
|
|
3412
|
+
switch (r) {
|
|
3413
|
+
case void 0:
|
|
3414
|
+
case "integer":
|
|
3415
|
+
case "real":
|
|
3416
|
+
case "complex": break;
|
|
3417
|
+
default: n(!1, t(4007, [e, r]));
|
|
3418
|
+
}
|
|
3419
|
+
break;
|
|
3420
|
+
case "decimalPlaces":
|
|
3421
|
+
if (r === void 0 || +r >= 0 && +r <= 20) break;
|
|
3422
|
+
n(!1, t(4007, [e, r]));
|
|
3423
|
+
break;
|
|
3424
|
+
case "toleranceAbsolute":
|
|
3425
|
+
if (r === void 0 || +r >= 0 || typeof r == "string") break;
|
|
3426
|
+
n(!1, t(4007, [e, r]));
|
|
3427
|
+
break;
|
|
3428
|
+
case "tolerancePercent":
|
|
3429
|
+
if (r === void 0 || +r >= 0) break;
|
|
3430
|
+
n(!1, t(4007, [e, r]));
|
|
3431
|
+
break;
|
|
3432
|
+
case "toleranceRange":
|
|
3433
|
+
if (r === void 0 || r instanceof Array && r.length === 2) break;
|
|
3434
|
+
n(!1, t(4007, [e, r]));
|
|
3435
|
+
break;
|
|
3436
|
+
case "antiderivative":
|
|
3437
|
+
if (r === void 0 || typeof r == "string") break;
|
|
3438
|
+
n(!1, t(4007, [e, r]));
|
|
3439
|
+
break;
|
|
3440
|
+
case "RHS":
|
|
3441
|
+
case "NoParens":
|
|
3442
|
+
case "EndRoot":
|
|
3443
|
+
case "allowDecimal":
|
|
3444
|
+
case "allowInterval":
|
|
3445
|
+
case "dontExpandPowers":
|
|
3446
|
+
case "dontFactorDenominators":
|
|
3447
|
+
case "dontFactorTerms":
|
|
3448
|
+
case "dontConvertDecimalToFraction":
|
|
3449
|
+
case "dontSimplifyImaginary":
|
|
3450
|
+
case "ignoreOrder":
|
|
3451
|
+
case "inverseResult":
|
|
3452
|
+
case "requireThousandsSeparator":
|
|
3453
|
+
case "ignoreText":
|
|
3454
|
+
case "ignoreTrailingZeros":
|
|
3455
|
+
case "allowThousandsSeparator":
|
|
3456
|
+
case "compareSides":
|
|
3457
|
+
case "ignoreCoefficientOne":
|
|
3458
|
+
case "strict":
|
|
3459
|
+
case "integrationConstant":
|
|
3460
|
+
case "absoluteValue":
|
|
3461
|
+
case "parsingIntegralExpr":
|
|
3462
|
+
case "keepTextWhitespace":
|
|
3463
|
+
if (r === void 0 || typeof r == "boolean") break;
|
|
3464
|
+
n(!1, t(4007, [e, r]));
|
|
3465
|
+
break;
|
|
3466
|
+
case "setThousandsSeparator":
|
|
3467
|
+
if (r === void 0 || typeof r == "string" && r.length === 1 || r instanceof Array) break;
|
|
3468
|
+
n(!1, t(4007, [e, r]));
|
|
3469
|
+
break;
|
|
3470
|
+
case "setDecimalSeparator":
|
|
3471
|
+
if (r === void 0 || typeof r == "string" && r.length === 1 || r instanceof Array && r.length > 0 && r[0].length === 1) break;
|
|
3472
|
+
n(!1, t(4007, [e, JSON.stringify(r)]));
|
|
3473
|
+
break;
|
|
3474
|
+
case "words":
|
|
3475
|
+
case "rules":
|
|
3476
|
+
case "types":
|
|
3477
|
+
case "data":
|
|
3478
|
+
case "env":
|
|
3479
|
+
case "expanderBuilders":
|
|
3480
|
+
if (r === void 0 || typeof r == "object") break;
|
|
3481
|
+
n(!1, t(4007, [e, r]));
|
|
3482
|
+
break;
|
|
3483
|
+
default: n(!1, t(4006, [e]));
|
|
3484
|
+
}
|
|
3485
|
+
}
|
|
3486
|
+
function a(e) {
|
|
3487
|
+
e && Object.keys(e).forEach((t) => {
|
|
3488
|
+
i(t, e[t]);
|
|
3489
|
+
});
|
|
3490
|
+
}
|
|
3491
|
+
function o(e, t, n) {
|
|
3492
|
+
e ||= {}, e.rules || (e.words = $e.words, e.rules = $e.rules, e.types = $e.types);
|
|
3493
|
+
let r = {
|
|
3494
|
+
method: "translate",
|
|
3495
|
+
options: e
|
|
3496
|
+
};
|
|
3497
|
+
e.allowInterval = !0, d(r).evaluate(t, (e, t) => {
|
|
3498
|
+
n(e, t);
|
|
3499
|
+
});
|
|
3500
|
+
}
|
|
3501
|
+
let s = null;
|
|
3502
|
+
function c(e) {
|
|
3503
|
+
s = typeof e == "function" ? e : null;
|
|
3504
|
+
}
|
|
3505
|
+
function l(e) {
|
|
3506
|
+
s && s(e());
|
|
3507
|
+
}
|
|
3508
|
+
function u(e, t) {
|
|
3509
|
+
return e ||= {}, e.rules || (e.words = $e.words, e.rules = $e.rules, e.types = $e.types), e.expanderBuilders = t || {}, e.allowInterval = !0, function(t, n) {
|
|
3510
|
+
d({
|
|
3511
|
+
method: "translate",
|
|
3512
|
+
options: e
|
|
3513
|
+
}).evaluate(t, (e, t) => {
|
|
3514
|
+
n(e, t);
|
|
3515
|
+
});
|
|
3516
|
+
};
|
|
3517
|
+
}
|
|
3518
|
+
function d(e) {
|
|
3519
|
+
let i, o = e.method, s = e.value, c = J.options = e.options, u = c.words ? Object.fromEntries(Object.keys(c.words).flatMap((e) => [[e.toLowerCase(), { type: "var" }], [e.toUpperCase(), { type: "var" }]])) : {}, d;
|
|
3520
|
+
try {
|
|
3521
|
+
X.setLocation("spec"), a(c), J.pushEnv({
|
|
3522
|
+
...r,
|
|
3523
|
+
...u,
|
|
3524
|
+
...c.env
|
|
3525
|
+
}), i = s === void 0 ? void 0 : J.create(c, s, "spec"), J.popEnv();
|
|
3526
|
+
} catch (e) {
|
|
3527
|
+
d = e;
|
|
3528
|
+
}
|
|
3529
|
+
return {
|
|
3530
|
+
evaluate: function(e, i) {
|
|
3531
|
+
try {
|
|
3532
|
+
if (d) throw d;
|
|
3533
|
+
X.setLocation("user"), n(e !== void 0, t(4002)), J.pushEnv({
|
|
3534
|
+
...r,
|
|
3535
|
+
...u,
|
|
3536
|
+
...c.env
|
|
3537
|
+
});
|
|
3538
|
+
let a = J.create(c, e, "user");
|
|
3539
|
+
n(a, t(4008, ["invalid input"])), X.setLocation("spec");
|
|
3540
|
+
let s;
|
|
3541
|
+
switch (o) {
|
|
3542
|
+
case "translate":
|
|
3543
|
+
s = a.translate(c);
|
|
3544
|
+
break;
|
|
3545
|
+
default: n(!1, t(4004, [o]));
|
|
3546
|
+
}
|
|
3547
|
+
J.popEnv(), i([], s);
|
|
3548
|
+
} catch (e) {
|
|
3549
|
+
l(() => `ERROR evaluate() ${e.stack}`);
|
|
3550
|
+
let t = e.message;
|
|
3551
|
+
i([{
|
|
3552
|
+
result: null,
|
|
3553
|
+
errorCode: f(e),
|
|
3554
|
+
message: m(t),
|
|
3555
|
+
stack: e.stack,
|
|
3556
|
+
location: e.location,
|
|
3557
|
+
toString() {
|
|
3558
|
+
return `${this.errorCode}: (${this.location}) ${this.message}\n${this.stack}`;
|
|
3559
|
+
}
|
|
3560
|
+
}], "");
|
|
3561
|
+
}
|
|
3562
|
+
},
|
|
3563
|
+
model: i
|
|
3564
|
+
};
|
|
3565
|
+
function f(e) {
|
|
3566
|
+
return e && typeof e.errorCode == "number" ? e.errorCode : p(e && e.message);
|
|
3567
|
+
}
|
|
3568
|
+
function p(e) {
|
|
3569
|
+
e = typeof e == "string" && e || "";
|
|
3570
|
+
let t = +e.slice(0, e.indexOf(":"));
|
|
3571
|
+
return Number.isNaN(t) ? 0 : t;
|
|
3572
|
+
}
|
|
3573
|
+
function m(e) {
|
|
3574
|
+
return p(e) ? e.slice(e.indexOf(":") + 2) : e;
|
|
3575
|
+
}
|
|
3576
|
+
}
|
|
3577
|
+
return {
|
|
3578
|
+
translate: o,
|
|
3579
|
+
buildTranslator: u,
|
|
3580
|
+
setLogger: c
|
|
3581
|
+
};
|
|
3582
|
+
}();
|
|
3583
|
+
typeof window < "u" && (window.Core = et);
|
|
3584
|
+
//#endregion
|
|
3585
|
+
//#region ../../node_modules/@graffiticode/translatex/src/spreadsheetExpanders.js
|
|
3586
|
+
var tt = (e, t) => Array.from({ length: t.charCodeAt(0) - e.charCodeAt(0) + 1 }, (t, n) => String.fromCharCode(e.charCodeAt(0) + n)), nt = (e, t) => {
|
|
3587
|
+
let n = +e, r = +t;
|
|
3588
|
+
return Array.from({ length: r - n + 1 }, (e, t) => String(n + t));
|
|
3589
|
+
}, Z = (e) => {
|
|
3590
|
+
try {
|
|
3591
|
+
return new G(e) !== null;
|
|
3592
|
+
} catch {
|
|
3593
|
+
return !1;
|
|
3594
|
+
}
|
|
3595
|
+
}, rt = (e) => [e.slice(0, 1), e.slice(1)], it = (e) => e.toUpperCase() >= "A" && e.toUpperCase() <= "Z", at = (e) => /^-?\d+$/.test(e), ot = (e) => rt(e).reduce((e, t, n) => n === 0 && it(t) || at(t), !1), st = (e = ",") => (t = {}, n, r) => {
|
|
3596
|
+
if (r === 0) return { start: rt(n) };
|
|
3597
|
+
let i = t.start, a = rt(n), o = tt(i[0], a[0]), s = nt(i[1], a[1]);
|
|
3598
|
+
return o.flatMap((e) => s.map((t) => e.toUpperCase() + t)).filter((e) => e !== void 0).join(e);
|
|
3599
|
+
}, ct = (e) => e, lt = () => (e = [], t) => [...e, t.toUpperCase()], ut = (e) => {
|
|
3600
|
+
let t = {
|
|
3601
|
+
currency: "",
|
|
3602
|
+
thousandsSeparator: ",",
|
|
3603
|
+
decimalSeparator: ".",
|
|
3604
|
+
decimalPlaces: 0,
|
|
3605
|
+
prefix: "",
|
|
3606
|
+
suffix: "",
|
|
3607
|
+
showThousands: !1,
|
|
3608
|
+
accountingStyle: !1,
|
|
3609
|
+
isPercent: !1
|
|
3610
|
+
};
|
|
3611
|
+
e.startsWith("(") && e.endsWith(")") && (t.accountingStyle = !0, e = e.slice(1, -1));
|
|
3612
|
+
let n = [
|
|
3613
|
+
"$",
|
|
3614
|
+
"€",
|
|
3615
|
+
"¥",
|
|
3616
|
+
"£",
|
|
3617
|
+
"₹",
|
|
3618
|
+
"₽",
|
|
3619
|
+
"¢"
|
|
3620
|
+
], r = e;
|
|
3621
|
+
n.some((e) => r.startsWith(e) ? (t.currency = e, t.prefix = e, r = r.slice(1), !0) : !1), t.currency || n.some((e) => r.includes(`_${e}`) ? (t.currency = e, t.suffix = e, r = r.replace(`_${e}`, ""), !0) : !1), r.includes("%") && (t.isPercent = !0, t.suffix += "%", r = r.replace(/%/g, "")), (r.includes("#,##0") || r.includes("#.##0") || r.includes("# ##0")) && (t.showThousands = !0, r.includes("#,##0.") ? (t.thousandsSeparator = ",", t.decimalSeparator = ".") : r.includes("#.##0,") ? (t.thousandsSeparator = ".", t.decimalSeparator = ",") : r.includes("# ##0,") ? (t.thousandsSeparator = " ", t.decimalSeparator = ",") : r.includes("# ##0.") || r.includes("# ##0") ? (t.thousandsSeparator = " ", t.decimalSeparator = ".") : r.includes("#.##0") && (t.thousandsSeparator = ".", t.decimalSeparator = ","));
|
|
3622
|
+
let i = r.match(/[.,]0+$/);
|
|
3623
|
+
return i && (t.decimalPlaces = i[0].length - 1), t;
|
|
3624
|
+
}, dt = (e, t) => {
|
|
3625
|
+
let n = Number(e);
|
|
3626
|
+
if (Number.isNaN(n)) return e;
|
|
3627
|
+
let { thousandsSeparator: r, decimalSeparator: i, decimalPlaces: a, prefix: o, suffix: s, showThousands: c, accountingStyle: l, isPercent: u } = t, d = u ? Number(new G(String(e)).times(100)) : n, f = d < 0, p = Math.abs(d).toFixed(a);
|
|
3628
|
+
if (i !== "." && (p = p.replace(".", i)), c) {
|
|
3629
|
+
let e = p.split(i), t = e[0], n = e[1] || "", a = t.replace(/\B(?=(\d{3})+(?!\d))/g, r);
|
|
3630
|
+
p = n ? `${a}${i}${n}` : a;
|
|
3631
|
+
}
|
|
3632
|
+
return p = `${o}${p}${s}`, l && f ? `(${p})` : f ? `-${p}` : p;
|
|
3633
|
+
}, ft = (e, t = 2) => dt(e, {
|
|
3634
|
+
currency: "$",
|
|
3635
|
+
thousandsSeparator: ",",
|
|
3636
|
+
decimalSeparator: ".",
|
|
3637
|
+
decimalPlaces: t,
|
|
3638
|
+
prefix: "$",
|
|
3639
|
+
suffix: "",
|
|
3640
|
+
showThousands: !0
|
|
3641
|
+
}), pt = (e) => {
|
|
3642
|
+
let t = [
|
|
3643
|
+
"m/",
|
|
3644
|
+
"d/",
|
|
3645
|
+
"y",
|
|
3646
|
+
"mmm",
|
|
3647
|
+
"mmmm",
|
|
3648
|
+
"ddd",
|
|
3649
|
+
"dddd"
|
|
3650
|
+
], n = e.toLowerCase();
|
|
3651
|
+
return t.some((e) => n.includes(e));
|
|
3652
|
+
}, mt = (e) => {
|
|
3653
|
+
if (e instanceof Date) return Number.isNaN(e.getTime()) ? null : e;
|
|
3654
|
+
let t = Number(e);
|
|
3655
|
+
if (!Number.isNaN(t)) {
|
|
3656
|
+
if (t >= 0 && t < 2957004) {
|
|
3657
|
+
let e = Math.floor(t), n = new Date(Date.UTC(1904, 0, 1));
|
|
3658
|
+
return new Date(n.getTime() + e * 24 * 60 * 60 * 1e3);
|
|
3659
|
+
}
|
|
3660
|
+
if (t > 2957004) return new Date(t);
|
|
3661
|
+
}
|
|
3662
|
+
let n = new Date(e);
|
|
3663
|
+
return Number.isNaN(n.getTime()) ? null : n;
|
|
3664
|
+
}, ht = (e, t) => {
|
|
3665
|
+
if (!e || !(e instanceof Date) || Number.isNaN(e.getTime())) return String(e || "");
|
|
3666
|
+
let n = (e, t = 2) => String(e).padStart(t, "0"), r = {
|
|
3667
|
+
yyyy: String(e.getFullYear()),
|
|
3668
|
+
yy: n(e.getFullYear() % 100),
|
|
3669
|
+
mmmm: [
|
|
3670
|
+
"January",
|
|
3671
|
+
"February",
|
|
3672
|
+
"March",
|
|
3673
|
+
"April",
|
|
3674
|
+
"May",
|
|
3675
|
+
"June",
|
|
3676
|
+
"July",
|
|
3677
|
+
"August",
|
|
3678
|
+
"September",
|
|
3679
|
+
"October",
|
|
3680
|
+
"November",
|
|
3681
|
+
"December"
|
|
3682
|
+
][e.getMonth()],
|
|
3683
|
+
mmm: [
|
|
3684
|
+
"Jan",
|
|
3685
|
+
"Feb",
|
|
3686
|
+
"Mar",
|
|
3687
|
+
"Apr",
|
|
3688
|
+
"May",
|
|
3689
|
+
"Jun",
|
|
3690
|
+
"Jul",
|
|
3691
|
+
"Aug",
|
|
3692
|
+
"Sep",
|
|
3693
|
+
"Oct",
|
|
3694
|
+
"Nov",
|
|
3695
|
+
"Dec"
|
|
3696
|
+
][e.getMonth()],
|
|
3697
|
+
mm: n(e.getMonth() + 1),
|
|
3698
|
+
m: String(e.getMonth() + 1),
|
|
3699
|
+
dd: n(e.getDate()),
|
|
3700
|
+
d: String(e.getDate())
|
|
3701
|
+
}, i = "", a = 0;
|
|
3702
|
+
for (; a < t.length;) {
|
|
3703
|
+
let e = !1;
|
|
3704
|
+
Object.keys(r).sort((e, t) => t.length - e.length).some((n) => t.substring(a, a + n.length).toLowerCase() === n && (i += r[n], a += n.length, e = !0, !0)), e || (i += t[a], a++);
|
|
3705
|
+
}
|
|
3706
|
+
return i;
|
|
3707
|
+
}, gt = ({ env: e, args: t }) => {
|
|
3708
|
+
let n = t[1] || e.format || "", r;
|
|
3709
|
+
if (n.toLowerCase() === "currency") r = ft(t[0]);
|
|
3710
|
+
else if (n.includes("#") || n.includes("0")) {
|
|
3711
|
+
let e = ut(n);
|
|
3712
|
+
r = dt(t[0], e);
|
|
3713
|
+
} else if (pt(n)) {
|
|
3714
|
+
let e = mt(t[0]);
|
|
3715
|
+
r = e ? ht(e, n) : t[0];
|
|
3716
|
+
} else r = t[0];
|
|
3717
|
+
return r;
|
|
3718
|
+
}, Q = ({ env: e, str: t }) => ot(t) && e[t.toUpperCase()]?.val || t, _t = (e) => {
|
|
3719
|
+
if (e == null || e === "") return !1;
|
|
3720
|
+
if (typeof e == "string") {
|
|
3721
|
+
let t = e.trim();
|
|
3722
|
+
if (t === "" || t === "0" || t.toUpperCase() === "FALSE") return !1;
|
|
3723
|
+
}
|
|
3724
|
+
return typeof e == "number" || e instanceof G ? +e != 0 : !0;
|
|
3725
|
+
}, $ = {
|
|
3726
|
+
round: (e) => (t = "", n, r) => {
|
|
3727
|
+
let i = Q({
|
|
3728
|
+
env: e,
|
|
3729
|
+
str: n
|
|
3730
|
+
});
|
|
3731
|
+
if (Z(i)) {
|
|
3732
|
+
if (r === 0) return new G(i);
|
|
3733
|
+
if (r === 1) return new G(t).toDecimalPlaces(+i, G.ROUND_HALF_UP);
|
|
3734
|
+
}
|
|
3735
|
+
return t;
|
|
3736
|
+
},
|
|
3737
|
+
sum: (e) => (t = 0, n) => {
|
|
3738
|
+
let r = Q({
|
|
3739
|
+
env: e,
|
|
3740
|
+
str: n
|
|
3741
|
+
});
|
|
3742
|
+
return Z(r) ? new G(t).plus(new G(r)) : t;
|
|
3743
|
+
},
|
|
3744
|
+
minus: (e) => (t = "", n, r) => {
|
|
3745
|
+
let i = Q({
|
|
3746
|
+
env: e,
|
|
3747
|
+
str: n
|
|
3748
|
+
});
|
|
3749
|
+
return Z(i) ? r === 0 ? new G(i) : new G(t).minus(new G(i)) : t;
|
|
3750
|
+
},
|
|
3751
|
+
multiply: (e) => (t = 1, n) => {
|
|
3752
|
+
let r = Q({
|
|
3753
|
+
env: e,
|
|
3754
|
+
str: n
|
|
3755
|
+
});
|
|
3756
|
+
return Z(r) ? new G(t).times(new G(r)) : t;
|
|
3757
|
+
},
|
|
3758
|
+
mul: (e) => (t = 1, n) => {
|
|
3759
|
+
let r = Q({
|
|
3760
|
+
env: e,
|
|
3761
|
+
str: n
|
|
3762
|
+
});
|
|
3763
|
+
return Z(r) ? new G(t).times(new G(r)) : t;
|
|
3764
|
+
},
|
|
3765
|
+
divide: (e) => (t = "", n, r) => {
|
|
3766
|
+
let i = Q({
|
|
3767
|
+
env: e,
|
|
3768
|
+
str: n
|
|
3769
|
+
});
|
|
3770
|
+
return Z(i) ? r === 0 ? new G(i) : new G(t).dividedBy(new G(i)) : t;
|
|
3771
|
+
},
|
|
3772
|
+
normalize: lt,
|
|
3773
|
+
range: st,
|
|
3774
|
+
if: (e) => (t = null, n, r) => (n = Q({
|
|
3775
|
+
env: e,
|
|
3776
|
+
str: n
|
|
3777
|
+
}), r === 0 ? {
|
|
3778
|
+
condition: _t(n),
|
|
3779
|
+
trueValue: null,
|
|
3780
|
+
falseValue: null
|
|
3781
|
+
} : r === 1 ? {
|
|
3782
|
+
...t,
|
|
3783
|
+
trueValue: n
|
|
3784
|
+
} : r === 2 ? t.condition ? t.trueValue : n : t),
|
|
3785
|
+
average: (e) => {
|
|
3786
|
+
let t = new G(0), n = 0;
|
|
3787
|
+
return (r, i) => (i = Q({
|
|
3788
|
+
env: e,
|
|
3789
|
+
str: i
|
|
3790
|
+
}), Z(i) && (t = t.plus(new G(i)), n++), n > 0 ? t.dividedBy(n) : new G(0));
|
|
3791
|
+
}
|
|
3792
|
+
}, vt = (e, t, n) => {
|
|
3793
|
+
let r = Q({
|
|
3794
|
+
env: e,
|
|
3795
|
+
str: t[0]
|
|
3796
|
+
}), i = Q({
|
|
3797
|
+
env: e,
|
|
3798
|
+
str: t[1]
|
|
3799
|
+
}), a;
|
|
3800
|
+
if (Z(r) && Z(i)) a = new G(r).comparedTo(new G(i));
|
|
3801
|
+
else {
|
|
3802
|
+
let e = String(r), t = String(i);
|
|
3803
|
+
a = e === t ? 0 : e < t ? -1 : 1;
|
|
3804
|
+
}
|
|
3805
|
+
return String(n(a));
|
|
3806
|
+
}, yt = (e) => ({
|
|
3807
|
+
type: "fn",
|
|
3808
|
+
fn: ({ env: t }) => ((n) => vt(t, n, e))
|
|
3809
|
+
}), bt = {
|
|
3810
|
+
$cell: {
|
|
3811
|
+
type: "fn",
|
|
3812
|
+
fn: ({ env: e }) => ((t) => e[t[1].toUpperCase()]?.val || "0")
|
|
3813
|
+
},
|
|
3814
|
+
$fmt: {
|
|
3815
|
+
type: "fn",
|
|
3816
|
+
fn: ({ config: e, env: t }) => ((n) => {
|
|
3817
|
+
if (e.rawConfig) {
|
|
3818
|
+
let r = e.rawConfig.slice(1, -1);
|
|
3819
|
+
if (r.includes("isNegative:true")) {
|
|
3820
|
+
let e = t.format?.formatString || t.format || "";
|
|
3821
|
+
n = [`-${n[0]}`, e];
|
|
3822
|
+
} else if (r.includes("isNegative:false")) {
|
|
3823
|
+
let e = t.format?.formatString || t.format || "";
|
|
3824
|
+
n = [n[0], e];
|
|
3825
|
+
} else {
|
|
3826
|
+
let e = r.indexOf(",");
|
|
3827
|
+
if (e >= 0) {
|
|
3828
|
+
let t = r.slice(0, e), i = r.slice(e + 1);
|
|
3829
|
+
t = t.replace("%1", n[0]), n = [t, i];
|
|
3830
|
+
}
|
|
3831
|
+
}
|
|
3832
|
+
} else if (n.length === 1) {
|
|
3833
|
+
let e = t.format?.formatString || t.format || "";
|
|
3834
|
+
n = [n[0], e];
|
|
3835
|
+
}
|
|
3836
|
+
return gt({
|
|
3837
|
+
env: t,
|
|
3838
|
+
args: n
|
|
3839
|
+
});
|
|
3840
|
+
})
|
|
3841
|
+
},
|
|
3842
|
+
$range: {
|
|
3843
|
+
type: "fn",
|
|
3844
|
+
fn: ({ config: e }) => ((t) => t.reduce($.range(e && e.sep === "list" ? "" : ","), void 0))
|
|
3845
|
+
},
|
|
3846
|
+
$add: {
|
|
3847
|
+
type: "fn",
|
|
3848
|
+
fn: ({ env: e }) => ((t) => `${t.reduce($.sum(e), void 0)}`)
|
|
3849
|
+
},
|
|
3850
|
+
$minus: {
|
|
3851
|
+
type: "fn",
|
|
3852
|
+
fn: ({ env: e }) => ((t) => (t.length === 1 && t.unshift("0"), `${t.reduce($.minus(e), void 0)}`))
|
|
3853
|
+
},
|
|
3854
|
+
$multiply: {
|
|
3855
|
+
type: "fn",
|
|
3856
|
+
fn: ({ env: e }) => ((t) => `${t.reduce($.multiply(e), void 0)}`)
|
|
3857
|
+
},
|
|
3858
|
+
$percent: {
|
|
3859
|
+
type: "fn",
|
|
3860
|
+
fn: ({ env: e }) => ((t) => (t.push("0.01"), `${t.reduce($.multiply(e), void 0)}`))
|
|
3861
|
+
},
|
|
3862
|
+
$divide: {
|
|
3863
|
+
type: "fn",
|
|
3864
|
+
fn: ({ env: e }) => ((t) => `${t.reduce($.divide(e), void 0)}`)
|
|
3865
|
+
},
|
|
3866
|
+
$gt: yt((e) => e > 0),
|
|
3867
|
+
$lt: yt((e) => e < 0),
|
|
3868
|
+
$ge: yt((e) => e >= 0),
|
|
3869
|
+
$le: yt((e) => e <= 0),
|
|
3870
|
+
$eq: yt((e) => e === 0),
|
|
3871
|
+
$ne: yt((e) => e !== 0),
|
|
3872
|
+
$argsep: {
|
|
3873
|
+
type: "fn",
|
|
3874
|
+
fn: () => ((e) => e.join(""))
|
|
3875
|
+
},
|
|
3876
|
+
$call: {
|
|
3877
|
+
type: "fn",
|
|
3878
|
+
fn: ({ env: e }) => ((t) => {
|
|
3879
|
+
let n = String(t[0]).toLowerCase(), r = String(t[1] === void 0 ? "" : t[1]).split(""), i = $[n];
|
|
3880
|
+
return i ? `${r.reduce(i(e), void 0)}` : `${t[0]}${r.join("")}`;
|
|
3881
|
+
})
|
|
3882
|
+
},
|
|
3883
|
+
$fn: {
|
|
3884
|
+
type: "fn",
|
|
3885
|
+
fn: ({ env: e }) => ((t) => `${t[1].split(",").reduce($[t[0].toLowerCase()](e), void 0)}`)
|
|
3886
|
+
},
|
|
3887
|
+
$normalize: {
|
|
3888
|
+
type: "fn",
|
|
3889
|
+
fn: ({ config: e, env: t }) => ((n) => `${n.reduce(ct($.normalize(t)), e?.acc)}`)
|
|
3890
|
+
}
|
|
3891
|
+
}, xt = (e) => {
|
|
3892
|
+
let t = String(e ?? "");
|
|
3893
|
+
return t.includes("") ? t.split("").join(", ") : null;
|
|
3894
|
+
}, St = et, Ct = { rules: {
|
|
3895
|
+
"??": ["%1%2"],
|
|
3896
|
+
"-\\type{number}": [{ "%1": { "\\type{number}": "$fmt{isNegative:true}" } }],
|
|
3897
|
+
"\\type{number}": ["$fmt{isNegative:false}"],
|
|
3898
|
+
"?": ["%1"]
|
|
3899
|
+
} }, wt = {
|
|
3900
|
+
types: {
|
|
3901
|
+
cellName: ["\\type{variable}\\type{integer}"],
|
|
3902
|
+
cellRange: ["\\type{cellName}:\\type{cellName}"],
|
|
3903
|
+
fn: [
|
|
3904
|
+
"average",
|
|
3905
|
+
"if",
|
|
3906
|
+
"mul",
|
|
3907
|
+
"power",
|
|
3908
|
+
"round",
|
|
3909
|
+
"sum"
|
|
3910
|
+
]
|
|
3911
|
+
},
|
|
3912
|
+
rules: {
|
|
3913
|
+
"=\\type{cellName}": ["$cell"],
|
|
3914
|
+
"=?": [{ "%2": {
|
|
3915
|
+
"\\type{cellRange}": "%1:%2",
|
|
3916
|
+
"\\type{fn}(\\type{cellRange})": "$normalize",
|
|
3917
|
+
"?+?": "$normalize {\"acc\": [\"SUM\"]}",
|
|
3918
|
+
"?-?": "$normalize {\"acc\": [\"SUB\"]}",
|
|
3919
|
+
"?*?": "$normalize {\"acc\": [\"MUL\"]}",
|
|
3920
|
+
"?/?": "$normalize {\"acc\": [\"DIV\"]}",
|
|
3921
|
+
"?%": "$percent",
|
|
3922
|
+
"-?": "$minus"
|
|
3923
|
+
} }],
|
|
3924
|
+
"\\type{cellRange}": ["$range"],
|
|
3925
|
+
"\\type{cellName}": ["%1%2"],
|
|
3926
|
+
"\\type{fn}(\\type{cellRange})": ["%1(%2)"],
|
|
3927
|
+
"??": ["%1%2"],
|
|
3928
|
+
"?": ["%1"]
|
|
3929
|
+
}
|
|
3930
|
+
}, Tt = {
|
|
3931
|
+
UNKNOWN_FUNCTION: 4100,
|
|
3932
|
+
WRONG_ARITY: 4101,
|
|
3933
|
+
BAD_ARGUMENT: 4102,
|
|
3934
|
+
UNRESOLVED: 4103,
|
|
3935
|
+
DIVIDE_BY_ZERO: 4104
|
|
3936
|
+
}, Et = {
|
|
3937
|
+
[Tt.UNKNOWN_FUNCTION]: "#NAME!",
|
|
3938
|
+
[Tt.WRONG_ARITY]: "#N/A",
|
|
3939
|
+
[Tt.BAD_ARGUMENT]: "#VALUE!",
|
|
3940
|
+
[Tt.UNRESOLVED]: "#NAME!",
|
|
3941
|
+
[Tt.DIVIDE_BY_ZERO]: "#DIV/0!"
|
|
3942
|
+
};
|
|
3943
|
+
function Dt(e) {
|
|
3944
|
+
return Et[e] || null;
|
|
3945
|
+
}
|
|
3946
|
+
function Ot(e, t) {
|
|
3947
|
+
let n = /* @__PURE__ */ Error(`${e}: ${t}`);
|
|
3948
|
+
return n.errorCode = e, n;
|
|
3949
|
+
}
|
|
3950
|
+
function kt(e, t, n) {
|
|
3951
|
+
if (!Z(n)) throw Ot(Tt.BAD_ARGUMENT, `argument ${t + 1} of ${e} is not a number: ${JSON.stringify(String(n))}`);
|
|
3952
|
+
return new G(n);
|
|
3953
|
+
}
|
|
3954
|
+
var At = [
|
|
3955
|
+
{
|
|
3956
|
+
name: "SUM",
|
|
3957
|
+
minArgs: 1,
|
|
3958
|
+
maxArgs: Infinity,
|
|
3959
|
+
reduce: $.sum
|
|
3960
|
+
},
|
|
3961
|
+
{
|
|
3962
|
+
name: "AVERAGE",
|
|
3963
|
+
minArgs: 1,
|
|
3964
|
+
maxArgs: Infinity,
|
|
3965
|
+
reduce: $.average
|
|
3966
|
+
},
|
|
3967
|
+
{
|
|
3968
|
+
name: "MUL",
|
|
3969
|
+
minArgs: 1,
|
|
3970
|
+
maxArgs: Infinity,
|
|
3971
|
+
reduce: $.mul
|
|
3972
|
+
},
|
|
3973
|
+
{
|
|
3974
|
+
name: "ROUND",
|
|
3975
|
+
minArgs: 1,
|
|
3976
|
+
maxArgs: 2,
|
|
3977
|
+
reduce: $.round
|
|
3978
|
+
},
|
|
3979
|
+
{
|
|
3980
|
+
name: "IF",
|
|
3981
|
+
minArgs: 3,
|
|
3982
|
+
maxArgs: 3,
|
|
3983
|
+
reduce: $.if
|
|
3984
|
+
}
|
|
3985
|
+
], jt = {
|
|
3986
|
+
"+": "SUM",
|
|
3987
|
+
"-": "MINUS",
|
|
3988
|
+
"*": "MULTIPLY",
|
|
3989
|
+
"/": "DIVIDE",
|
|
3990
|
+
"%": "PERCENT"
|
|
3991
|
+
}, Mt = [
|
|
3992
|
+
{
|
|
3993
|
+
name: "MINUS",
|
|
3994
|
+
minArgs: 1,
|
|
3995
|
+
maxArgs: Infinity,
|
|
3996
|
+
operatorOnly: !0,
|
|
3997
|
+
reduce: $.minus
|
|
3998
|
+
},
|
|
3999
|
+
{
|
|
4000
|
+
name: "MULTIPLY",
|
|
4001
|
+
minArgs: 1,
|
|
4002
|
+
maxArgs: Infinity,
|
|
4003
|
+
operatorOnly: !0,
|
|
4004
|
+
reduce: $.multiply
|
|
4005
|
+
},
|
|
4006
|
+
{
|
|
4007
|
+
name: "DIVIDE",
|
|
4008
|
+
minArgs: 1,
|
|
4009
|
+
maxArgs: Infinity,
|
|
4010
|
+
operatorOnly: !0,
|
|
4011
|
+
reduce: $.divide
|
|
4012
|
+
},
|
|
4013
|
+
{
|
|
4014
|
+
name: "PERCENT",
|
|
4015
|
+
minArgs: 1,
|
|
4016
|
+
maxArgs: Infinity,
|
|
4017
|
+
operatorOnly: !0,
|
|
4018
|
+
reduce: $.multiply
|
|
4019
|
+
}
|
|
4020
|
+
], Nt = {
|
|
4021
|
+
getCellValue: (e, t) => Q({
|
|
4022
|
+
env: t,
|
|
4023
|
+
str: e
|
|
4024
|
+
}),
|
|
4025
|
+
isValidDecimal: Z,
|
|
4026
|
+
evaluateCondition: _t,
|
|
4027
|
+
toDecimal: kt,
|
|
4028
|
+
fail: (e, t) => {
|
|
4029
|
+
throw Ot(e, t);
|
|
4030
|
+
},
|
|
4031
|
+
Decimal: G
|
|
4032
|
+
}, Pt = { eval: {
|
|
4033
|
+
"=\\type{cellName}": ["$cell"],
|
|
4034
|
+
"=?": [{ "%2": {
|
|
4035
|
+
"\\type{fn}(\\type{args})": "$call",
|
|
4036
|
+
"\\type{fn}(?,?)": "$call",
|
|
4037
|
+
"\\type{fn}(?)": "$call",
|
|
4038
|
+
"?>=?": "$ge",
|
|
4039
|
+
"?<=?": "$le",
|
|
4040
|
+
"?!=?": "$ne",
|
|
4041
|
+
"?>?": "$gt",
|
|
4042
|
+
"?<?": "$lt",
|
|
4043
|
+
"?=?": "$eq",
|
|
4044
|
+
"?+?": "$add",
|
|
4045
|
+
"?-?": "$minus",
|
|
4046
|
+
"?*?": "$multiply",
|
|
4047
|
+
"?/?": "$divide",
|
|
4048
|
+
"?%": "$percent",
|
|
4049
|
+
"-?": "$minus"
|
|
4050
|
+
} }],
|
|
4051
|
+
"-?": ["-%1"],
|
|
4052
|
+
"\\type{cellRange}": ["$range{\"sep\":\"list\"}"],
|
|
4053
|
+
"\\type{args}": ["$argsep"],
|
|
4054
|
+
"\\type{cellName}": ["%1%2"],
|
|
4055
|
+
"\\type{fn}(\\type{cellRange})": ["%1(%2)"],
|
|
4056
|
+
"??": ["%1%2"],
|
|
4057
|
+
"?": ["%1"]
|
|
4058
|
+
} }, Ft = {
|
|
4059
|
+
args: ["\\type{cellName}:\\type{cellName}", "?,?"],
|
|
4060
|
+
cellName: ["\\type{variable}\\type{integer}"],
|
|
4061
|
+
cellRange: ["\\type{cellName}:\\type{cellName}"]
|
|
4062
|
+
};
|
|
4063
|
+
function It(e) {
|
|
4064
|
+
let t = /* @__PURE__ */ new Map();
|
|
4065
|
+
for (let n of [
|
|
4066
|
+
...At,
|
|
4067
|
+
...Mt,
|
|
4068
|
+
...e || []
|
|
4069
|
+
]) n && n.name && t.set(String(n.name).toUpperCase(), {
|
|
4070
|
+
minArgs: 1,
|
|
4071
|
+
maxArgs: Infinity,
|
|
4072
|
+
...n,
|
|
4073
|
+
name: String(n.name).toUpperCase()
|
|
4074
|
+
});
|
|
4075
|
+
return t;
|
|
4076
|
+
}
|
|
4077
|
+
function Lt(e, t, n, r) {
|
|
4078
|
+
if (r && (t.length < e.minArgs || t.length > e.maxArgs)) {
|
|
4079
|
+
let n;
|
|
4080
|
+
throw n = e.maxArgs === Infinity ? `at least ${e.minArgs}` : e.minArgs === e.maxArgs ? `${e.minArgs}` : `${e.minArgs} to ${e.maxArgs}`, Ot(Tt.WRONG_ARITY, `${e.name} expects ${n} arguments, got ${t.length}`);
|
|
4081
|
+
}
|
|
4082
|
+
return e.apply ? String(e.apply({
|
|
4083
|
+
args: t,
|
|
4084
|
+
env: n,
|
|
4085
|
+
helpers: {
|
|
4086
|
+
...Nt,
|
|
4087
|
+
getCellValue: (e) => Q({
|
|
4088
|
+
env: n,
|
|
4089
|
+
str: e
|
|
4090
|
+
})
|
|
4091
|
+
}
|
|
4092
|
+
})) : `${t.reduce(e.reduce(n), void 0)}`;
|
|
4093
|
+
}
|
|
4094
|
+
function Rt(e = {}) {
|
|
4095
|
+
let { functions: t = [], operators: n = jt, patterns: r = Pt, strict: i = !1 } = e, a = It(t), o = [...a.values()].filter((e) => !e.operatorOnly).map((e) => e.name.toLowerCase()).sort(), s = Object.fromEntries(o.map((e) => [e, e])), c = {
|
|
4096
|
+
...Ft,
|
|
4097
|
+
fn: o
|
|
4098
|
+
}, l = (e, t, n) => {
|
|
4099
|
+
let r = a.get(String(e).toUpperCase());
|
|
4100
|
+
if (!r) {
|
|
4101
|
+
if (i) throw Ot(Tt.UNKNOWN_FUNCTION, `unknown function ${String(e).toUpperCase()}`);
|
|
4102
|
+
return `${e}${t.join("")}`;
|
|
4103
|
+
}
|
|
4104
|
+
return Lt(r, t, n, i);
|
|
4105
|
+
}, u = (e, t) => ({
|
|
4106
|
+
type: "fn",
|
|
4107
|
+
fn: ({ env: r }) => ((i) => {
|
|
4108
|
+
let a = t ? t([...i]) : [...i];
|
|
4109
|
+
return l(n[e], a, r);
|
|
4110
|
+
})
|
|
4111
|
+
});
|
|
4112
|
+
return {
|
|
4113
|
+
expanders: {
|
|
4114
|
+
...bt,
|
|
4115
|
+
$call: {
|
|
4116
|
+
type: "fn",
|
|
4117
|
+
fn: ({ env: e }) => ((t) => l(t[0], String(t[1] === void 0 ? "" : t[1]).split(""), e))
|
|
4118
|
+
},
|
|
4119
|
+
$add: u("+"),
|
|
4120
|
+
$minus: u("-", (e) => e.length === 1 ? ["0", ...e] : e),
|
|
4121
|
+
$multiply: u("*"),
|
|
4122
|
+
$divide: u("/"),
|
|
4123
|
+
$percent: u("%", (e) => [...e, "0.01"])
|
|
4124
|
+
},
|
|
4125
|
+
rules: { evalRules: {
|
|
4126
|
+
words: s,
|
|
4127
|
+
types: c,
|
|
4128
|
+
rules: r.eval
|
|
4129
|
+
} },
|
|
4130
|
+
functions: [...a.values()],
|
|
4131
|
+
helpers: Nt,
|
|
4132
|
+
strict: i,
|
|
4133
|
+
checkResult(e) {
|
|
4134
|
+
let t = xt(e);
|
|
4135
|
+
return t ? Ot(Tt.UNRESOLVED, `unresolved expression: ${t}`) : null;
|
|
4136
|
+
}
|
|
4137
|
+
};
|
|
4138
|
+
}
|
|
4139
|
+
//#endregion
|
|
4140
|
+
//#region src/scoring/normalize.ts
|
|
4141
|
+
var zt = (e) => [
|
|
4142
|
+
"\"",
|
|
4143
|
+
"'",
|
|
4144
|
+
"`"
|
|
4145
|
+
].includes(e), Bt = (e) => (typeof e != "string" && (e = e == null ? "" : String(e)), e && e.split("").reduce((e, t) => ({
|
|
4146
|
+
inString: zt(t) ? !e.inString : e.inString,
|
|
4147
|
+
text: e.text + (e.inString && t || t.toUpperCase())
|
|
4148
|
+
}), {
|
|
4149
|
+
inString: !1,
|
|
4150
|
+
text: ""
|
|
4151
|
+
}).text || e), Vt = (e) => {
|
|
4152
|
+
if (typeof e != "string" || e.indexOf("$") < 0) return e;
|
|
4153
|
+
let t = "", n = "";
|
|
4154
|
+
for (let r = 0; r < e.length; r++) {
|
|
4155
|
+
let i = e[r];
|
|
4156
|
+
if (n) i === n && (n = "");
|
|
4157
|
+
else if (zt(i)) n = i;
|
|
4158
|
+
else if (i === "$" && (/^[A-Za-z]+\$?[0-9]/.test(e.slice(r + 1)) || /[A-Za-z]/.test(e[r - 1] || "") && /[0-9]/.test(e[r + 1] || ""))) continue;
|
|
4159
|
+
t += i;
|
|
4160
|
+
}
|
|
4161
|
+
return t;
|
|
4162
|
+
}, Ht = (e) => {
|
|
4163
|
+
if (!e || typeof e != "string") return !1;
|
|
4164
|
+
let t = e.trim();
|
|
4165
|
+
return !isNaN(Number(t)) && !isNaN(parseFloat(t));
|
|
4166
|
+
}, Ut = (e) => {
|
|
4167
|
+
if (!e || typeof e != "string") return !1;
|
|
4168
|
+
let t = e.trim();
|
|
4169
|
+
return [
|
|
4170
|
+
/^\d{1,2}\/\d{1,2}\/\d{2,4}$/,
|
|
4171
|
+
/^\d{1,2}-\d{1,2}-\d{2,4}$/,
|
|
4172
|
+
/^\d{4}-\d{1,2}-\d{1,2}$/,
|
|
4173
|
+
/^\d{1,2}\/\d{1,2}$/,
|
|
4174
|
+
/^\d{1,2}-\d{1,2}$/
|
|
4175
|
+
].some((e) => e.test(t)) && !isNaN(Date.parse(t));
|
|
4176
|
+
}, Wt = (e) => (typeof e != "string" && (e = e == null ? "" : String(e)), !e || e.length === 0 || e.indexOf("=") === 0 || e.trim().startsWith("\\text{") && e.trim().endsWith("}") || e.includes("\\") || Ht(e) || Ut(e) ? e : `\\text{${e}}`), Gt = (e) => {
|
|
4177
|
+
if (!e || typeof e != "string") return null;
|
|
4178
|
+
let t = e.trim();
|
|
4179
|
+
if (!t || /%\s+\S/.test(t) || /^[\d,.$€£¥₹₽-]+\s+[a-zA-Z]{4,}/.test(t)) return null;
|
|
4180
|
+
let n = t;
|
|
4181
|
+
[
|
|
4182
|
+
"$",
|
|
4183
|
+
"€",
|
|
4184
|
+
"£",
|
|
4185
|
+
"¥",
|
|
4186
|
+
"₹",
|
|
4187
|
+
"₽",
|
|
4188
|
+
"R$",
|
|
4189
|
+
"C$",
|
|
4190
|
+
"A$",
|
|
4191
|
+
"NZ$",
|
|
4192
|
+
"HK$",
|
|
4193
|
+
"S$"
|
|
4194
|
+
].forEach((e) => {
|
|
4195
|
+
let n = e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
4196
|
+
t = t.replace(new RegExp(n, "g"), "");
|
|
4197
|
+
});
|
|
4198
|
+
let r = t.includes("%");
|
|
4199
|
+
t = t.replace(/%/g, "");
|
|
4200
|
+
let i = /^\s*\([^)]+\)\s*$/.test(n) && /\d/.test(n);
|
|
4201
|
+
i && (t = t.replace(/[()]/g, "")), t = t.replace(/\s/g, "");
|
|
4202
|
+
let a = t.startsWith("-");
|
|
4203
|
+
a && (t = t.substring(1));
|
|
4204
|
+
let o = (t.match(/,/g) || []).length, s = (t.match(/\./g) || []).length, c = t.lastIndexOf(","), l = t.lastIndexOf("."), u;
|
|
4205
|
+
if (u = o === 0 && s === 0 || o === 0 && s === 1 ? t : o === 1 && s === 0 ? t.substring(c + 1).length === 3 && t.length > 4 ? t.replace(/,/g, "") : t.replace(",", ".") : c > l ? t.replace(/\./g, "").replace(",", ".") : t.replace(/,/g, ""), !Ht(u)) return null;
|
|
4206
|
+
let d = parseFloat(u);
|
|
4207
|
+
return (a || i) && (d = -Math.abs(d)), r && (d /= 100), d;
|
|
4208
|
+
}, Kt = (e) => {
|
|
4209
|
+
let t = new Date(1904, 0, 1);
|
|
4210
|
+
return Math.floor((e.getTime() - t.getTime()) / 864e5) + 1;
|
|
4211
|
+
}, qt = (e) => {
|
|
4212
|
+
if (!e || typeof e != "string") return null;
|
|
4213
|
+
let t = e.trim();
|
|
4214
|
+
if (!t) return null;
|
|
4215
|
+
let n = /* @__PURE__ */ new Date(), r = t.toLowerCase();
|
|
4216
|
+
if (r === "today") return Kt(new Date(n.getFullYear(), n.getMonth(), n.getDate()));
|
|
4217
|
+
if (r === "tomorrow") {
|
|
4218
|
+
let e = new Date(n);
|
|
4219
|
+
return e.setDate(n.getDate() + 1), Kt(new Date(e.getFullYear(), e.getMonth(), e.getDate()));
|
|
4220
|
+
}
|
|
4221
|
+
if (r === "yesterday") {
|
|
4222
|
+
let e = new Date(n);
|
|
4223
|
+
return e.setDate(n.getDate() - 1), Kt(new Date(e.getFullYear(), e.getMonth(), e.getDate()));
|
|
4224
|
+
}
|
|
4225
|
+
if (/^-?\d+(\.\d+)?$/.test(t) || /^[$€£¥₹₽]?\s*-?\d{1,3}([,.]?\d{3})*([,.]\d+)?$|^-?\d{1,3}([,.]?\d{3})*([,.]\d+)?\s*[$€£¥₹₽%]?$/.test(t)) return null;
|
|
4226
|
+
if (/^[\dA-Za-z\s/\-.,:T]+$/.test(t)) {
|
|
4227
|
+
let e = Date.parse(t);
|
|
4228
|
+
if (!isNaN(e)) return Kt(new Date(e));
|
|
4229
|
+
}
|
|
4230
|
+
let i = t.match(/^(\d{1,2})[/\-.](\d{1,2})[/\-.](\d{4})$/);
|
|
4231
|
+
if (i) {
|
|
4232
|
+
let e = parseInt(i[1], 10), t = parseInt(i[2], 10), n = parseInt(i[3], 10);
|
|
4233
|
+
if (e >= 1 && e <= 12 && t >= 1 && t <= 31) return Kt(new Date(n, e - 1, t));
|
|
4234
|
+
}
|
|
4235
|
+
let a = t.match(/^(\d{1,2})[/\-.](\d{1,2})[/\-.](\d{4})$/);
|
|
4236
|
+
if (a) {
|
|
4237
|
+
let e = parseInt(a[1], 10), t = parseInt(a[2], 10), n = parseInt(a[3], 10);
|
|
4238
|
+
if (t >= 1 && t <= 12 && e >= 1 && e <= 31 && e > 12) return Kt(new Date(n, t - 1, e));
|
|
4239
|
+
}
|
|
4240
|
+
let o = t.match(/^(\d{1,2})[/-](\d{1,2})$/);
|
|
4241
|
+
if (o) {
|
|
4242
|
+
let e = parseInt(o[1], 10), t = parseInt(o[2], 10);
|
|
4243
|
+
if (e >= 1 && e <= 12 && t >= 1 && t <= 31) return Kt(new Date(n.getFullYear(), e - 1, t));
|
|
4244
|
+
}
|
|
4245
|
+
let s = t.match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/);
|
|
4246
|
+
if (s) {
|
|
4247
|
+
let e = parseInt(s[1], 10), t = parseInt(s[2], 10), n = parseInt(s[3], 10);
|
|
4248
|
+
if (t >= 1 && t <= 12 && n >= 1 && n <= 31) return Kt(new Date(e, t - 1, n));
|
|
4249
|
+
}
|
|
4250
|
+
return null;
|
|
4251
|
+
}, Jt = Rt({ functions: [{
|
|
4252
|
+
name: "POWER",
|
|
4253
|
+
minArgs: 2,
|
|
4254
|
+
maxArgs: 2,
|
|
4255
|
+
apply: ({ args: e, helpers: t }) => {
|
|
4256
|
+
let [n, r] = e.map((e) => t.getCellValue(e));
|
|
4257
|
+
try {
|
|
4258
|
+
let e = t.toDecimal("POWER", 0, n).pow(t.toDecimal("POWER", 1, r));
|
|
4259
|
+
return e.isFinite() ? `${e}` : "#NUM!";
|
|
4260
|
+
} catch {
|
|
4261
|
+
return "#NUM!";
|
|
4262
|
+
}
|
|
4263
|
+
}
|
|
4264
|
+
}] }), Yt = Jt.expanders, Xt = Jt.rules.evalRules, Zt = 9e8, Qt = "EMPTY", $t = /[-+*/^%&]/, en = (e) => {
|
|
4265
|
+
let t = {}, n, r = 0;
|
|
4266
|
+
return typeof e != "string" || e.indexOf("\"") < 0 ? {
|
|
4267
|
+
text: e,
|
|
4268
|
+
env: t,
|
|
4269
|
+
error: n,
|
|
4270
|
+
decode: (e) => e
|
|
4271
|
+
} : {
|
|
4272
|
+
text: e.replace(/"((?:[^"]|"")*)"/g, (i, a, o) => {
|
|
4273
|
+
let s = a.replace(/""/g, "\""), c = e.slice(0, o).trimEnd().slice(-1), l = e.slice(o + i.length).trimStart().charAt(0);
|
|
4274
|
+
($t.test(c) || $t.test(l)) && (s.trim() === "" || isNaN(Number(s))) && (n ??= `Text used as a number: ${i}`);
|
|
4275
|
+
let u = `Z${Zt + r++}`;
|
|
4276
|
+
return t[u] = {
|
|
4277
|
+
val: s === "" ? Qt : s,
|
|
4278
|
+
type: "text"
|
|
4279
|
+
}, u;
|
|
4280
|
+
}),
|
|
4281
|
+
env: t,
|
|
4282
|
+
error: n,
|
|
4283
|
+
decode: (e) => typeof e == "string" && e.indexOf(Qt) >= 0 ? e.split(Qt).join("") : e
|
|
4284
|
+
};
|
|
4285
|
+
}, tn = new Set(Xt.types.fn.map((e) => e.toUpperCase())), nn = (e) => e === "\"" || e === "'" || e === "`", rn = (e, t) => {
|
|
4286
|
+
let n = 0, r = !1;
|
|
4287
|
+
for (let i = t; i < e.length; i++) {
|
|
4288
|
+
let t = e[i];
|
|
4289
|
+
if (nn(t)) {
|
|
4290
|
+
r = !r;
|
|
4291
|
+
continue;
|
|
4292
|
+
}
|
|
4293
|
+
if (!r) {
|
|
4294
|
+
if (t === "(") n++;
|
|
4295
|
+
else if (t === ")" && --n === 0) return i;
|
|
4296
|
+
}
|
|
4297
|
+
}
|
|
4298
|
+
return -1;
|
|
4299
|
+
}, an = (e) => {
|
|
4300
|
+
if (e.indexOf("<>") < 0) return e;
|
|
4301
|
+
let t = "", n = "";
|
|
4302
|
+
for (let r = 0; r < e.length; r++) {
|
|
4303
|
+
let i = e[r];
|
|
4304
|
+
if (n) i === n && (n = "");
|
|
4305
|
+
else if (nn(i)) n = i;
|
|
4306
|
+
else if (i === "<" && e[r + 1] === ">") {
|
|
4307
|
+
t += "!=", r++;
|
|
4308
|
+
continue;
|
|
4309
|
+
}
|
|
4310
|
+
t += i;
|
|
4311
|
+
}
|
|
4312
|
+
return t;
|
|
4313
|
+
}, on = /[A-Z0-9_.:]/, sn = /[=(,<>+\-*/^&!]/, cn = (e, t) => {
|
|
4314
|
+
let n = t;
|
|
4315
|
+
for (; n >= 0 && e[n] === " ";) n--;
|
|
4316
|
+
for (; n >= 0 && e[n] === "%";) for (n--; n >= 0 && e[n] === " ";) n--;
|
|
4317
|
+
if (e[n] === ")") {
|
|
4318
|
+
let t = 0;
|
|
4319
|
+
for (; n >= 0; n--) if (e[n] === ")") t++;
|
|
4320
|
+
else if (e[n] === "(" && --t === 0) break;
|
|
4321
|
+
for (n--; n >= 0 && on.test(e[n]);) n--;
|
|
4322
|
+
} else if (nn(e[n])) {
|
|
4323
|
+
let t = e[n];
|
|
4324
|
+
for (n--; n >= 0 && e[n] !== t;) n--;
|
|
4325
|
+
n--;
|
|
4326
|
+
} else for (; n >= 0 && on.test(e[n]);) n--;
|
|
4327
|
+
let r = n + 1;
|
|
4328
|
+
for (;;) {
|
|
4329
|
+
let t = r - 1;
|
|
4330
|
+
for (; t >= 0 && e[t] === " ";) t--;
|
|
4331
|
+
if (t < 1 || e[t] !== "-" && e[t] !== "+") break;
|
|
4332
|
+
let n = t - 1;
|
|
4333
|
+
for (; n >= 0 && e[n] === " ";) n--;
|
|
4334
|
+
if (n >= 0 && !sn.test(e[n])) break;
|
|
4335
|
+
r = t;
|
|
4336
|
+
}
|
|
4337
|
+
return r;
|
|
4338
|
+
}, ln = (e, t) => {
|
|
4339
|
+
let n = t;
|
|
4340
|
+
for (; n < e.length && (e[n] === " " || e[n] === "-" || e[n] === "+");) n++;
|
|
4341
|
+
if (nn(e[n])) {
|
|
4342
|
+
let t = e[n];
|
|
4343
|
+
for (n++; n < e.length && e[n] !== t;) n++;
|
|
4344
|
+
n++;
|
|
4345
|
+
} else {
|
|
4346
|
+
for (; n < e.length && on.test(e[n]);) n++;
|
|
4347
|
+
let t = n;
|
|
4348
|
+
for (; t < e.length && e[t] === " ";) t++;
|
|
4349
|
+
if (e[t] === "(") {
|
|
4350
|
+
let r = rn(e, t);
|
|
4351
|
+
n = r < 0 ? e.length : r + 1;
|
|
4352
|
+
}
|
|
4353
|
+
}
|
|
4354
|
+
let r = n;
|
|
4355
|
+
for (; r < e.length && (e[r] === " " || e[r] === "%");) r++;
|
|
4356
|
+
return e[r - 1] === "%" ? r : n;
|
|
4357
|
+
}, un = (e) => {
|
|
4358
|
+
let t = "";
|
|
4359
|
+
for (let n = 0; n < e.length; n++) {
|
|
4360
|
+
let r = e[n];
|
|
4361
|
+
if (t) r === t && (t = "");
|
|
4362
|
+
else if (nn(r)) t = r;
|
|
4363
|
+
else if (r === "^") return n;
|
|
4364
|
+
}
|
|
4365
|
+
return -1;
|
|
4366
|
+
}, dn = (e) => {
|
|
4367
|
+
for (let t = un(e); t > 0; t = un(e)) {
|
|
4368
|
+
let n = cn(e, t - 1), r = ln(e, t + 1), i = e.slice(n, t).trim(), a = e.slice(t + 1, r).trim();
|
|
4369
|
+
if (!i || !a) break;
|
|
4370
|
+
e = `${e.slice(0, n)}POWER(${i},${a})${e.slice(r)}`;
|
|
4371
|
+
}
|
|
4372
|
+
return e;
|
|
4373
|
+
}, fn = (e) => {
|
|
4374
|
+
let t = dn(an(Bt(Vt(e))));
|
|
4375
|
+
if (!t || t.indexOf("=") !== 0 || !/[*/]/.test(t)) return t;
|
|
4376
|
+
let n = (e) => {
|
|
4377
|
+
for (; e < t.length && t[e] === " ";) e++;
|
|
4378
|
+
return t[e] || "";
|
|
4379
|
+
}, r = (e) => e === "*" || e === "/", i = /* @__PURE__ */ new Map(), a = "", o = !1, s = "";
|
|
4380
|
+
for (let e = 0; e < t.length; e++) {
|
|
4381
|
+
let c = t[e];
|
|
4382
|
+
if (nn(c)) {
|
|
4383
|
+
o = !o, a += c, s = c;
|
|
4384
|
+
continue;
|
|
4385
|
+
}
|
|
4386
|
+
if (o) {
|
|
4387
|
+
a += c;
|
|
4388
|
+
continue;
|
|
4389
|
+
}
|
|
4390
|
+
if (/[A-Z]/.test(c) && (s === "" || !/[A-Z0-9_]/.test(s))) {
|
|
4391
|
+
let o = e;
|
|
4392
|
+
for (; o < t.length && /[A-Z0-9_]/.test(t[o]);) o++;
|
|
4393
|
+
let c = o;
|
|
4394
|
+
for (; c < t.length && t[c] === " ";) c++;
|
|
4395
|
+
if (t[c] === "(" && tn.has(t.slice(e, o))) {
|
|
4396
|
+
let e = rn(t, c);
|
|
4397
|
+
e >= 0 && (r(s) || r(n(e + 1))) && (a += "(", i.set(e, (i.get(e) || 0) + 1));
|
|
4398
|
+
}
|
|
4399
|
+
}
|
|
4400
|
+
a += c, c === ")" && (a += ")".repeat(i.get(e) || 0)), c !== " " && (s = c);
|
|
4401
|
+
}
|
|
4402
|
+
return a;
|
|
4403
|
+
};
|
|
4404
|
+
//#endregion
|
|
4405
|
+
//#region src/scoring/sheets.ts
|
|
4406
|
+
function pn(e) {
|
|
4407
|
+
let t = e.indexOf("!");
|
|
4408
|
+
return t < 0 ? [void 0, e] : [e.slice(0, t), e.slice(t + 1)];
|
|
4409
|
+
}
|
|
4410
|
+
var mn = (e, t) => `${e}!${t}`;
|
|
4411
|
+
function hn(e, t) {
|
|
4412
|
+
return Object.keys(t || {}).reduce((n, r) => (n[mn(e, r)] = t[r], n), {});
|
|
4413
|
+
}
|
|
4414
|
+
function gn(e, t) {
|
|
4415
|
+
let n = {};
|
|
4416
|
+
for (let r of Object.keys(e || {})) {
|
|
4417
|
+
let [i, a] = pn(r);
|
|
4418
|
+
i === t && (n[a] = e[r]);
|
|
4419
|
+
}
|
|
4420
|
+
return n;
|
|
4421
|
+
}
|
|
4422
|
+
function _n(e, t) {
|
|
4423
|
+
let n = {};
|
|
4424
|
+
for (let e of t) n[e] = {};
|
|
4425
|
+
for (let r of Object.keys(e || {})) {
|
|
4426
|
+
let [i, a] = pn(r), o = i ?? t[0];
|
|
4427
|
+
n[o] || (n[o] = {}), n[o][a] = e[r];
|
|
4428
|
+
}
|
|
4429
|
+
return n;
|
|
4430
|
+
}
|
|
4431
|
+
//#endregion
|
|
4432
|
+
//#region src/scoring/score.ts
|
|
4433
|
+
var vn = () => ({
|
|
4434
|
+
normalized: /* @__PURE__ */ new Map(),
|
|
4435
|
+
expected: /* @__PURE__ */ new Map()
|
|
4436
|
+
}), yn = (e, t) => {
|
|
4437
|
+
if (typeof e == "number" || e == null) return [e];
|
|
4438
|
+
let n = String(e), r = t && t.get(n);
|
|
4439
|
+
if (r) return r;
|
|
4440
|
+
let i = [n];
|
|
4441
|
+
try {
|
|
4442
|
+
let e = {
|
|
4443
|
+
keepTextWhitespace: !0,
|
|
4444
|
+
...wt
|
|
4445
|
+
};
|
|
4446
|
+
if (n && n.length > 0) {
|
|
4447
|
+
let t = n.indexOf("=") === 0 ? Bt(Vt(n)) : Wt(n);
|
|
4448
|
+
St.buildTranslator(e, Yt)(t, (e, t) => {
|
|
4449
|
+
e && e.length && console.error(e), i = n.indexOf("=") === 0 ? t.split(",") : [t];
|
|
4450
|
+
});
|
|
4451
|
+
}
|
|
4452
|
+
} catch (e) {
|
|
4453
|
+
console.log("parse error: " + e.stack);
|
|
4454
|
+
}
|
|
4455
|
+
return t && t.set(n, i), i;
|
|
4456
|
+
}, bn = (e, t, n) => {
|
|
4457
|
+
let r = yn(e, n), i = yn(t, n);
|
|
4458
|
+
return r.length === i.length && r.every((e, t) => e === i[t]);
|
|
4459
|
+
}, xn = (e, t, n, r) => n && r && n !== r ? !1 : e !== void 0 && e === t, Sn = (e, t, n) => {
|
|
4460
|
+
if (!e || !e.startsWith("=") || !t) return e;
|
|
4461
|
+
let r = n && n.expected.get(e);
|
|
4462
|
+
if (r !== void 0) return r;
|
|
4463
|
+
let i = n && n.env;
|
|
4464
|
+
if (!i) {
|
|
4465
|
+
i = {};
|
|
4466
|
+
for (let [e, n] of Object.entries(t)) i[e] = {
|
|
4467
|
+
...n,
|
|
4468
|
+
val: n.val || n.text
|
|
4469
|
+
};
|
|
4470
|
+
n && (n.env = i);
|
|
4471
|
+
}
|
|
4472
|
+
let a = en(e);
|
|
4473
|
+
if (a.error) return n && n.expected.set(e, "#VALUE!"), "#VALUE!";
|
|
4474
|
+
let o = {
|
|
4475
|
+
keepTextWhitespace: !0,
|
|
4476
|
+
env: a.text === e ? i : {
|
|
4477
|
+
...i,
|
|
4478
|
+
...a.env
|
|
4479
|
+
},
|
|
4480
|
+
...Xt
|
|
4481
|
+
}, s = fn(a.text), c = St.buildTranslator(o, Yt), l = e;
|
|
4482
|
+
return c(s, (e, t) => {
|
|
4483
|
+
(!e || !e.length) && (l = String(a.decode(t)));
|
|
4484
|
+
}), n && n.expected.set(e, l), l;
|
|
4485
|
+
}, Cn = ({ method: e, expected: t, points: n = 1 }, { val: r, formula: i, type: a } = {
|
|
4486
|
+
val: void 0,
|
|
4487
|
+
formula: void 0,
|
|
4488
|
+
type: void 0
|
|
4489
|
+
}, o = void 0, s = void 0) => {
|
|
4490
|
+
if (e === "value") {
|
|
4491
|
+
let e = t;
|
|
4492
|
+
typeof t == "string" && t.startsWith("=") && (e = Sn(t, o, s));
|
|
4493
|
+
let i = "text", c = e;
|
|
4494
|
+
if (e != null) {
|
|
4495
|
+
let t = String(e), n = qt(t);
|
|
4496
|
+
if (n) i = "date", c = String(n);
|
|
4497
|
+
else {
|
|
4498
|
+
let e = Gt(t);
|
|
4499
|
+
e !== null && (i = "number", c = String(e));
|
|
4500
|
+
}
|
|
4501
|
+
}
|
|
4502
|
+
if (xn(r, c, a, i)) return {
|
|
4503
|
+
points: n,
|
|
4504
|
+
isValid: !0
|
|
4505
|
+
};
|
|
4506
|
+
} else if (e === "formula" && bn(i, t, s && s.normalized)) return {
|
|
4507
|
+
points: n,
|
|
4508
|
+
isValid: !0
|
|
4509
|
+
};
|
|
4510
|
+
return {
|
|
4511
|
+
points: 0,
|
|
4512
|
+
isValid: !1
|
|
4513
|
+
};
|
|
4514
|
+
}, wn = (e) => e.text || e.val, Tn = (e) => e?.text || e?.attrs?.assess?.expected, En = ({ cells: e, primaryColumn: t }) => {
|
|
4515
|
+
let n = Object.keys(e).sort((e, t) => +e.slice(1) - t.slice(1)).map((e) => e.slice(0, 1) === t && e || null).filter((e) => e !== null).map((t) => wn(e[t]) || null), r = /* @__PURE__ */ new Set();
|
|
4516
|
+
return n.map((e) => r.has(e) ? null : (r.add(e), e)).filter((e) => e !== null);
|
|
4517
|
+
}, Dn = ({ cells: e, region: t }) => {
|
|
4518
|
+
let { primaryColumn: n, rows: r } = t, i = En({
|
|
4519
|
+
cells: e,
|
|
4520
|
+
primaryColumn: n
|
|
4521
|
+
}), a = new Map(r.map((e) => [Tn(e[n]), e]));
|
|
4522
|
+
return i.map((e) => e === null ? null : a.get(e) || null);
|
|
4523
|
+
}, On = ({ cells: e, region: t }) => {
|
|
4524
|
+
let n = t?.order === "actual" && Dn({
|
|
4525
|
+
cells: e,
|
|
4526
|
+
region: t
|
|
4527
|
+
}) || t?.rows || [];
|
|
4528
|
+
if (!t) throw Error("getCellsValidationFromRegionValidation() missing region value");
|
|
4529
|
+
return n.reduce((e, t, n) => (n = t?.id || n + 1, t && Object.keys(t).forEach((r) => t[r]?.assess && (e[r + n] = t[r])), e), {}) || {};
|
|
4530
|
+
}, kn = ({ cells: e, validation: t }) => {
|
|
4531
|
+
let n = t.regions || t.ranges;
|
|
4532
|
+
return [{
|
|
4533
|
+
region: n[Object.keys(n).find((e) => e)] || {},
|
|
4534
|
+
cells: e
|
|
4535
|
+
}];
|
|
4536
|
+
}, An = /* @__PURE__ */ new WeakMap(), jn = (e) => Object.values(e?.regions || e?.ranges || {}).some((e) => e?.order === "actual"), Mn = ({ cells: e, validation: t }) => {
|
|
4537
|
+
let n = () => kn({
|
|
4538
|
+
cells: e,
|
|
4539
|
+
validation: t
|
|
4540
|
+
}).map((e) => On(e))[0];
|
|
4541
|
+
if (!t || typeof t != "object") return n();
|
|
4542
|
+
let r = An.get(t);
|
|
4543
|
+
if (r || An.set(t, r = {}), !jn(t)) return r.plain === void 0 && (r.plain = n()), r.plain;
|
|
4544
|
+
if (!e || typeof e != "object") return n();
|
|
4545
|
+
r.byCells || (r.byCells = /* @__PURE__ */ new WeakMap());
|
|
4546
|
+
let i = r.byCells.get(e);
|
|
4547
|
+
return i === void 0 && r.byCells.set(e, i = n()), i;
|
|
4548
|
+
}, Nn = (e) => {
|
|
4549
|
+
let t = e?.sheets ? Object.keys(e.sheets) : null;
|
|
4550
|
+
return t && t.length ? t : null;
|
|
4551
|
+
}, Pn = (e, t, n) => {
|
|
4552
|
+
if (!e) return;
|
|
4553
|
+
let r = _n(e, n);
|
|
4554
|
+
return Object.keys(r[t] || {}).length ? r[t] : e;
|
|
4555
|
+
}, Fn = ({ cells: e, validation: t }) => {
|
|
4556
|
+
let n = Nn(t);
|
|
4557
|
+
if (!n) return Mn({
|
|
4558
|
+
cells: e,
|
|
4559
|
+
validation: t
|
|
4560
|
+
});
|
|
4561
|
+
let r = _n(e || {}, n);
|
|
4562
|
+
return n.reduce((e, n) => Object.assign(e, hn(n, Mn({
|
|
4563
|
+
cells: r[n],
|
|
4564
|
+
validation: t.sheets[n]
|
|
4565
|
+
}))), {});
|
|
4566
|
+
}, In = ({ cells: e, validation: t, interactionCells: n = void 0 }) => {
|
|
4567
|
+
let r = vn(), i = Nn(t);
|
|
4568
|
+
if (!i) return Ln(e, Mn({
|
|
4569
|
+
cells: e,
|
|
4570
|
+
validation: t
|
|
4571
|
+
}), n, r);
|
|
4572
|
+
let a = _n(e || {}, i);
|
|
4573
|
+
return i.reduce((e, o) => {
|
|
4574
|
+
let s = Mn({
|
|
4575
|
+
cells: a[o],
|
|
4576
|
+
validation: t.sheets[o]
|
|
4577
|
+
}), c = {
|
|
4578
|
+
normalized: r.normalized,
|
|
4579
|
+
expected: /* @__PURE__ */ new Map()
|
|
4580
|
+
}, l = Ln(a[o], s, Pn(n, o, i), c);
|
|
4581
|
+
return Object.assign(e, hn(o, l));
|
|
4582
|
+
}, {});
|
|
4583
|
+
};
|
|
4584
|
+
function Ln(e, t, n, r) {
|
|
4585
|
+
let i = { ...e };
|
|
4586
|
+
for (let e of Object.keys(t)) {
|
|
4587
|
+
let a = i[e];
|
|
4588
|
+
i[e] = a && {
|
|
4589
|
+
...a,
|
|
4590
|
+
score: Cn(t[e].assess, a, n, r)
|
|
4591
|
+
} || void 0;
|
|
4592
|
+
}
|
|
4593
|
+
return i;
|
|
4594
|
+
}
|
|
4595
|
+
//#endregion
|
|
4596
|
+
export { St as C, Ct as S, Gt as _, hn as a, Wt as b, _n as c, Xt as d, Yt as f, qt as g, Ht as h, In as i, pn as l, Ut as m, Fn as n, mn as o, fn as p, Cn as r, gn as s, Sn as t, en as u, Vt as v, Dt as x, Bt as y };
|
|
4597
|
+
|
|
4598
|
+
//# sourceMappingURL=scoring-D1FbQ_qt.js.map
|