pimath 0.1.14 → 0.1.15
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/pimath.js
CHANGED
|
@@ -406,22 +406,22 @@ var m = /* @__PURE__ */ ((o) => (o.VARIABLE = "variable", o.COEFFICIENT = "coeff
|
|
|
406
406
|
function Ui(o, e) {
|
|
407
407
|
if (o.length <= 1)
|
|
408
408
|
return o;
|
|
409
|
-
const t = Object.keys(e).filter((
|
|
410
|
-
t.sort((
|
|
409
|
+
const t = Object.keys(e).filter((E) => e[E].type === m.FUNCTION).map((E) => E);
|
|
410
|
+
t.sort((E, L) => L.length - E.length);
|
|
411
411
|
const i = new RegExp(`^(${t.join("|")})\\(`), n = Object.keys(li);
|
|
412
|
-
n.sort((
|
|
412
|
+
n.sort((E, L) => L.length - E.length);
|
|
413
413
|
const r = new RegExp(`^(${n.join("|")})`), l = /^(\d+(\.\d+)?)/;
|
|
414
414
|
let c = "", d, f, g;
|
|
415
415
|
for (; o.length > 0; ) {
|
|
416
416
|
if (d = f, g = void 0, t.length > 0 && i.exec(o)) {
|
|
417
|
-
const
|
|
418
|
-
|
|
417
|
+
const E = t.find((L) => o.startsWith(L));
|
|
418
|
+
E && (g = E + "(", o = o.slice(E.length + 1), f = m.FUNCTION);
|
|
419
419
|
} else if (n.length > 0 && r.exec(o)) {
|
|
420
|
-
const
|
|
421
|
-
|
|
420
|
+
const E = n.find((L) => o.startsWith(L));
|
|
421
|
+
E && (g = E, o = o.slice(E.length), f = m.CONSTANT);
|
|
422
422
|
} else if (l.exec(o)) {
|
|
423
|
-
const
|
|
424
|
-
|
|
423
|
+
const E = l.exec(o);
|
|
424
|
+
E && (g = E[0], o = o.slice(E[0].length), f = m.COEFFICIENT);
|
|
425
425
|
} else
|
|
426
426
|
switch (g = o[0], o = o.slice(1), g) {
|
|
427
427
|
case "(":
|
|
@@ -573,17 +573,17 @@ class Xt {
|
|
|
573
573
|
break;
|
|
574
574
|
case m.OPERATION:
|
|
575
575
|
if (n.length > 0) {
|
|
576
|
-
let
|
|
577
|
-
for (g = +d;
|
|
578
|
-
(_(this, te)[r].associative === "left" && _(this, te)[r].precedence <= _(this, te)[
|
|
579
|
-
_(this, te)[r].associative === "right" && _(this, te)[r].precedence < _(this, te)[
|
|
576
|
+
let E = n[n.length - 1];
|
|
577
|
+
for (g = +d; E.token in _(this, te) && //either o1 is left-associative and its precedence is less than or equal to that of o2,
|
|
578
|
+
(_(this, te)[r].associative === "left" && _(this, te)[r].precedence <= _(this, te)[E.token].precedence || //or o1 is right associative, and has precedence less than that of o2,
|
|
579
|
+
_(this, te)[r].associative === "right" && _(this, te)[r].precedence < _(this, te)[E.token].precedence); ) {
|
|
580
580
|
if (g--, g === 0) {
|
|
581
581
|
console.log("SECURITY LEVEL 2 OPERATION EXIT");
|
|
582
582
|
break;
|
|
583
583
|
}
|
|
584
584
|
if (i.push(n.pop() ?? { token: "", tokenType: m.OPERATION }), n.length === 0)
|
|
585
585
|
break;
|
|
586
|
-
|
|
586
|
+
E = n[n.length - 1];
|
|
587
587
|
}
|
|
588
588
|
}
|
|
589
589
|
n.push({ token: r, tokenType: c });
|
|
@@ -1198,37 +1198,37 @@ a(I, "xMultiply", (...e) => {
|
|
|
1198
1198
|
return t;
|
|
1199
1199
|
});
|
|
1200
1200
|
let k = I;
|
|
1201
|
-
var
|
|
1201
|
+
var ue, Fe, P, ht, ye, wi, _t, vi, bi, xi;
|
|
1202
1202
|
const ui = class ui {
|
|
1203
1203
|
constructor(e, t, i = "x") {
|
|
1204
1204
|
p(this, P);
|
|
1205
|
-
p(this,
|
|
1205
|
+
p(this, ue);
|
|
1206
1206
|
p(this, Fe);
|
|
1207
1207
|
if (h(this, Fe, i), Object.hasOwn(e, "moveLeft")) {
|
|
1208
1208
|
const n = e;
|
|
1209
|
-
h(this,
|
|
1209
|
+
h(this, ue, n.left.clone().subtract(n.right));
|
|
1210
1210
|
} else
|
|
1211
|
-
h(this,
|
|
1211
|
+
h(this, ue, e.clone().subtract(t ?? 0));
|
|
1212
1212
|
}
|
|
1213
1213
|
solve() {
|
|
1214
|
-
if (s(this,
|
|
1214
|
+
if (s(this, ue).degree().isOne())
|
|
1215
1215
|
return q(this, P, vi).call(this);
|
|
1216
|
-
if (s(this,
|
|
1216
|
+
if (s(this, ue).degree().value === 2)
|
|
1217
1217
|
return q(this, P, bi).call(this);
|
|
1218
1218
|
const e = q(this, P, wi).call(this);
|
|
1219
1219
|
if (e.length > 0)
|
|
1220
1220
|
return e;
|
|
1221
|
-
if (s(this,
|
|
1221
|
+
if (s(this, ue).degree().value === 3)
|
|
1222
1222
|
return q(this, P, _t).call(this);
|
|
1223
1223
|
throw new Error("The equation degree is too high.");
|
|
1224
1224
|
}
|
|
1225
1225
|
solveAsCardan() {
|
|
1226
|
-
if (s(this,
|
|
1226
|
+
if (s(this, ue).degree().value !== 3)
|
|
1227
1227
|
throw new Error("The equation is not cubic.");
|
|
1228
1228
|
return q(this, P, _t).call(this);
|
|
1229
1229
|
}
|
|
1230
1230
|
};
|
|
1231
|
-
|
|
1231
|
+
ue = new WeakMap(), Fe = new WeakMap(), P = new WeakSet(), ht = function(e, t) {
|
|
1232
1232
|
return {
|
|
1233
1233
|
variable: s(this, Fe),
|
|
1234
1234
|
exact: !1,
|
|
@@ -1248,7 +1248,7 @@ ce = new WeakMap(), Fe = new WeakMap(), P = new WeakSet(), ht = function(e, t) {
|
|
|
1248
1248
|
display: t.display
|
|
1249
1249
|
};
|
|
1250
1250
|
}, wi = function() {
|
|
1251
|
-
let e = s(this,
|
|
1251
|
+
let e = s(this, ue).clone(), t = [];
|
|
1252
1252
|
const i = e.lcmDenominator();
|
|
1253
1253
|
i !== 1 && e.multiply(i);
|
|
1254
1254
|
const n = e.monomByDegree().coefficient;
|
|
@@ -1258,13 +1258,13 @@ ce = new WeakMap(), Fe = new WeakMap(), P = new WeakSet(), ht = function(e, t) {
|
|
|
1258
1258
|
const l = G.dividers(n.value), c = G.dividers(r.value);
|
|
1259
1259
|
for (const f of l)
|
|
1260
1260
|
for (const g of c) {
|
|
1261
|
-
const
|
|
1262
|
-
e.evaluate(
|
|
1261
|
+
const E = new u(g, f);
|
|
1262
|
+
e.evaluate(E).isZero() && !t.find((L) => L.value === E.value) && t.push(q(this, P, ye).call(this, E)), E.opposite(), e.evaluate(E).isZero() && !t.find((L) => L.value === E.value) && t.push(q(this, P, ye).call(this, E));
|
|
1263
1263
|
}
|
|
1264
1264
|
for (const f of t) {
|
|
1265
1265
|
if (f.exact !== !1 && f.exact.isZero())
|
|
1266
1266
|
continue;
|
|
1267
|
-
const g = s(this,
|
|
1267
|
+
const g = s(this, ue).clone().parse("x", f.exact.denominator, -f.exact.numerator);
|
|
1268
1268
|
for (; e.isDividableBy(g); )
|
|
1269
1269
|
e = e.divide(g);
|
|
1270
1270
|
}
|
|
@@ -1275,7 +1275,7 @@ ce = new WeakMap(), Fe = new WeakMap(), P = new WeakSet(), ht = function(e, t) {
|
|
|
1275
1275
|
const d = new ui(e, e.clone().parse("0"), s(this, Fe));
|
|
1276
1276
|
return t = t.concat(d.solve()), t.sort((f, g) => f.value - g.value);
|
|
1277
1277
|
}, _t = function() {
|
|
1278
|
-
const e = s(this,
|
|
1278
|
+
const e = s(this, ue), t = e.monomByDegree(3).coefficient, i = e.monomByDegree(2).coefficient, n = e.monomByDegree(1).coefficient, r = e.monomByDegree(0).coefficient, l = i.clone().divide(t), c = n.clone().divide(t), d = r.clone().divide(t), f = c.clone().subtract(l.clone().pow(2).divide(3)), g = d.clone().subtract(l.clone().multiply(c).divide(3)).add(l.clone().pow(3).multiply(2).divide(27)), E = g.clone().opposite(), L = f.clone().opposite().pow(3).divide(27), de = E.clone().pow(2).subtract(L.clone().multiply(4)).opposite();
|
|
1279
1279
|
if (de.isNegative()) {
|
|
1280
1280
|
const he = g.clone().opposite().add(de.clone().opposite().sqrt()).divide(2).root(3), ae = g.clone().opposite().subtract(de.clone().opposite().sqrt()).divide(2).root(3), ge = he.clone().add(ae).subtract(l.clone().divide(3));
|
|
1281
1281
|
return [q(this, P, ye).call(this, ge)];
|
|
@@ -1285,22 +1285,22 @@ ce = new WeakMap(), Fe = new WeakMap(), P = new WeakSet(), ht = function(e, t) {
|
|
|
1285
1285
|
return ae.isEqual(ge) ? [q(this, P, ye).call(this, ae)] : [
|
|
1286
1286
|
q(this, P, ye).call(this, ge),
|
|
1287
1287
|
q(this, P, ye).call(this, ae)
|
|
1288
|
-
].sort((pe,
|
|
1288
|
+
].sort((pe, ce) => pe.value - ce.value);
|
|
1289
1289
|
}
|
|
1290
1290
|
if (de.isPositive()) {
|
|
1291
1291
|
const he = [], ae = f.value, ge = g.value, pe = l.value;
|
|
1292
|
-
for (let
|
|
1293
|
-
he.push(2 * Math.sqrt(-ae / 3) * Math.cos(Math.acos(3 * ge / (2 * ae) * Math.sqrt(-3 / ae)) / 3 + 2 * Math.PI *
|
|
1294
|
-
return he.map((
|
|
1292
|
+
for (let ce = 0; ce < 3; ce++)
|
|
1293
|
+
he.push(2 * Math.sqrt(-ae / 3) * Math.cos(Math.acos(3 * ge / (2 * ae) * Math.sqrt(-3 / ae)) / 3 + 2 * Math.PI * ce / 3) - pe / 3);
|
|
1294
|
+
return he.map((ce) => q(this, P, ht).call(this, ce)).sort((ce, nt) => ce.value - nt.value);
|
|
1295
1295
|
}
|
|
1296
1296
|
return [];
|
|
1297
1297
|
}, vi = function() {
|
|
1298
|
-
const e = s(this,
|
|
1298
|
+
const e = s(this, ue).monomByDegree(0).coefficient.clone().opposite().divide(s(this, ue).monomByDegree(1).coefficient);
|
|
1299
1299
|
return [
|
|
1300
1300
|
q(this, P, ye).call(this, e)
|
|
1301
1301
|
];
|
|
1302
1302
|
}, bi = function() {
|
|
1303
|
-
const e = s(this,
|
|
1303
|
+
const e = s(this, ue), t = e.monomByDegree(2).coefficient, i = e.monomByDegree(1).coefficient, n = e.monomByDegree(0).coefficient, r = i.clone().pow(2).subtract(t.clone().multiply(n).multiply(4));
|
|
1304
1304
|
if (r.isNegative())
|
|
1305
1305
|
return [];
|
|
1306
1306
|
if (r.isSquare()) {
|
|
@@ -1312,12 +1312,12 @@ ce = new WeakMap(), Fe = new WeakMap(), P = new WeakSet(), ht = function(e, t) {
|
|
|
1312
1312
|
}
|
|
1313
1313
|
return q(this, P, xi).call(this, t, i, r);
|
|
1314
1314
|
}, xi = function(e, t, i) {
|
|
1315
|
-
const n = G.dividers(i.value).filter((pe) => Math.sqrt(pe) % 1 === 0).map((pe) => Math.sqrt(pe)).pop() ?? 1, r = G.gcd(2 * e.value, t.value, n) * (e.isNegative() ? -1 : 1), l = t.clone().divide(r).opposite(), c = e.clone().divide(r).multiply(2), d = i.clone().divide(n ** 2), f = Math.abs(n / r), g = n === 1 ? "-" : `-${f} `,
|
|
1316
|
-
function L(pe,
|
|
1317
|
-
return `\\frac{ ${
|
|
1315
|
+
const n = G.dividers(i.value).filter((pe) => Math.sqrt(pe) % 1 === 0).map((pe) => Math.sqrt(pe)).pop() ?? 1, r = G.gcd(2 * e.value, t.value, n) * (e.isNegative() ? -1 : 1), l = t.clone().divide(r).opposite(), c = e.clone().divide(r).multiply(2), d = i.clone().divide(n ** 2), f = Math.abs(n / r), g = n === 1 ? "-" : `-${f} `, E = n === 1 ? "+" : `+${f} `;
|
|
1316
|
+
function L(pe, ce, nt, Yt) {
|
|
1317
|
+
return `\\frac{ ${ce} ${nt}\\sqrt{ ${Yt} } }{ ${pe} }`;
|
|
1318
1318
|
}
|
|
1319
|
-
function de(pe,
|
|
1320
|
-
return `(${
|
|
1319
|
+
function de(pe, ce, nt, Yt) {
|
|
1320
|
+
return `(${ce}${nt}sqrt(${Yt}))/${pe}`;
|
|
1321
1321
|
}
|
|
1322
1322
|
const he = i.value ** 0.5, ae = (-t.value - he) / (2 * e.value), ge = (-t.value + he) / (2 * e.value);
|
|
1323
1323
|
return [
|
|
@@ -1326,10 +1326,10 @@ ce = new WeakMap(), Fe = new WeakMap(), P = new WeakSet(), ht = function(e, t) {
|
|
|
1326
1326
|
display: de(c.display, l.display, g.toString(), d.display)
|
|
1327
1327
|
}),
|
|
1328
1328
|
q(this, P, ht).call(this, ge, {
|
|
1329
|
-
tex: L(c.tex, l.tex,
|
|
1330
|
-
display: de(c.display, l.display,
|
|
1329
|
+
tex: L(c.tex, l.tex, E.toString(), d.tex),
|
|
1330
|
+
display: de(c.display, l.display, E.toString(), d.display)
|
|
1331
1331
|
})
|
|
1332
|
-
].sort((pe,
|
|
1332
|
+
].sort((pe, ce) => pe.value - ce.value);
|
|
1333
1333
|
};
|
|
1334
1334
|
let Et = ui;
|
|
1335
1335
|
function pi(o, e = !0) {
|
|
@@ -1480,8 +1480,8 @@ const C = class C {
|
|
|
1480
1480
|
else {
|
|
1481
1481
|
const f = i.euclidean(d);
|
|
1482
1482
|
t.push(d), i = f.quotient.clone(), c = c.filter((g) => {
|
|
1483
|
-
const
|
|
1484
|
-
return L.isDivisible(he) ?
|
|
1483
|
+
const E = i.monoms[0], L = i.monoms[i.monoms.length - 1], de = g.monoms[0], he = g.monoms[g.monoms.length - 1];
|
|
1484
|
+
return L.isDivisible(he) ? E.isDivisible(de) : !1;
|
|
1485
1485
|
});
|
|
1486
1486
|
}
|
|
1487
1487
|
}
|
|
@@ -1691,7 +1691,7 @@ const C = class C {
|
|
|
1691
1691
|
}), t;
|
|
1692
1692
|
});
|
|
1693
1693
|
p(this, Ct, (e) => {
|
|
1694
|
-
var
|
|
1694
|
+
var E;
|
|
1695
1695
|
let t, i, n, r, l, c, d, f, g;
|
|
1696
1696
|
if (this.numberOfVars === 1)
|
|
1697
1697
|
return n = this.monomByDegree(2, e).coefficient, r = this.monomByDegree(1, e).coefficient, l = this.monomByDegree(0, e).coefficient, c = r.clone().pow(2).subtract(n.clone().multiply(l).multiply(4)), c.isZero() ? (d = r.clone().opposite().divide(n.clone().multiply(2)), t = new C(e).subtract(d.display).multiply(d.denominator), i = new C(e).subtract(d.display).multiply(d.denominator), g = n.divide(d.denominator).divide(d.denominator), g.isOne() ? [t, i] : [new C(g.display), t, i]) : c.isPositive() && c.isSquare() ? (d = r.clone().opposite().add(c.clone().sqrt()).divide(n.clone().multiply(2)), f = r.clone().opposite().subtract(c.clone().sqrt()).divide(n.clone().multiply(2)), g = n.divide(d.denominator).divide(f.denominator), g.isOne() ? [
|
|
@@ -1703,7 +1703,7 @@ const C = class C {
|
|
|
1703
1703
|
new C(e).subtract(f.display).multiply(f.denominator)
|
|
1704
1704
|
]) : [this.clone()];
|
|
1705
1705
|
if (n = this.monomByDegree(2, e), r = this.monomByDegree(1, e), l = this.monomByDegree(0, e), n.isLiteralSquare() && l.isLiteralSquare() && r.clone().pow(2).isSameAs(n.clone().multiply(l))) {
|
|
1706
|
-
const L = new C("x", n.coefficient, r.coefficient, l.coefficient), de = s(
|
|
1706
|
+
const L = new C("x", n.coefficient, r.coefficient, l.coefficient), de = s(E = L, Ct).call(E, "x"), he = [];
|
|
1707
1707
|
let ae;
|
|
1708
1708
|
if (de.length >= 2) {
|
|
1709
1709
|
for (const ge of de)
|
|
@@ -1879,8 +1879,8 @@ const C = class C {
|
|
|
1879
1879
|
0,
|
|
1880
1880
|
l
|
|
1881
1881
|
)), r = g * 2 + 1, l = f === i.length - 1 ? n.length : t.findIndex((L) => L.value === i[f + 1].value) * 2 + 1;
|
|
1882
|
-
const
|
|
1883
|
-
c = this.evaluate(
|
|
1882
|
+
const E = f === i.length - 1 ? d.value + 1 : (d.value + i[f + 1].value) / 2;
|
|
1883
|
+
c = this.evaluate(E, !0) < 0 ? "-" : "+", n[r] = "z", n = Be(n, "", c, r, l), r = +l, l = n.length;
|
|
1884
1884
|
});
|
|
1885
1885
|
}
|
|
1886
1886
|
return { roots: t, signs: n };
|
|
@@ -2075,29 +2075,29 @@ const we = class we {
|
|
|
2075
2075
|
}
|
|
2076
2076
|
};
|
|
2077
2077
|
Te = new WeakMap(), et = new WeakMap(), Ee = new WeakMap(), Ne = new WeakMap();
|
|
2078
|
-
let
|
|
2079
|
-
var He = /* @__PURE__ */ ((o) => (o[o.ROOT = 0] = "ROOT", o[o.POWER = 1] = "POWER", o))(He || {}), Ue,
|
|
2078
|
+
let le = we;
|
|
2079
|
+
var He = /* @__PURE__ */ ((o) => (o[o.ROOT = 0] = "ROOT", o[o.POWER = 1] = "POWER", o))(He || {}), Ue, N, pt, ti;
|
|
2080
2080
|
const me = class me {
|
|
2081
2081
|
// #endregion Class fields (1)
|
|
2082
2082
|
// #region Constructors (1)
|
|
2083
2083
|
constructor(...e) {
|
|
2084
2084
|
// #region Class fields (1)
|
|
2085
2085
|
p(this, Ue, He.POWER);
|
|
2086
|
-
p(this,
|
|
2086
|
+
p(this, N, []);
|
|
2087
2087
|
return this.parse(...e), this;
|
|
2088
2088
|
}
|
|
2089
2089
|
// #endregion Constructors (1)
|
|
2090
2090
|
// #region Properties and methods (25)
|
|
2091
2091
|
parse(...e) {
|
|
2092
|
-
return e.length === 0 ? this : (h(this,
|
|
2092
|
+
return e.length === 0 ? this : (h(this, N, []), e.forEach((t) => {
|
|
2093
2093
|
if (typeof t == "string") {
|
|
2094
2094
|
const i = t.split(")(").join(")*(").split("*");
|
|
2095
|
-
s(this,
|
|
2096
|
-
} else t instanceof me ? s(this,
|
|
2095
|
+
s(this, N).push(...i.map((n) => new le(n)));
|
|
2096
|
+
} else t instanceof me ? s(this, N).push(...t.factors.map((i) => i.clone())) : s(this, N).push(new le(t));
|
|
2097
2097
|
}), this);
|
|
2098
2098
|
}
|
|
2099
2099
|
clone() {
|
|
2100
|
-
return new me(...s(this,
|
|
2100
|
+
return new me(...s(this, N).map((e) => e.clone()));
|
|
2101
2101
|
}
|
|
2102
2102
|
static gcd(...e) {
|
|
2103
2103
|
var i;
|
|
@@ -2118,9 +2118,9 @@ const me = class me {
|
|
|
2118
2118
|
const i = me.gcd(...t);
|
|
2119
2119
|
t = t.map((r) => r.divide(i).reduce());
|
|
2120
2120
|
const n = new A("0");
|
|
2121
|
-
return t.forEach((r) => n.add(r.develop())), h(this,
|
|
2121
|
+
return t.forEach((r) => n.add(r.develop())), h(this, N, [
|
|
2122
2122
|
...i.factors,
|
|
2123
|
-
new
|
|
2123
|
+
new le(n)
|
|
2124
2124
|
]), this;
|
|
2125
2125
|
}
|
|
2126
2126
|
get asPower() {
|
|
@@ -2130,51 +2130,51 @@ const me = class me {
|
|
|
2130
2130
|
return h(this, Ue, He.ROOT), this;
|
|
2131
2131
|
}
|
|
2132
2132
|
degree(e) {
|
|
2133
|
-
return s(this,
|
|
2133
|
+
return s(this, N).reduce((t, i) => t.add(i.degree(e)), new u("0"));
|
|
2134
2134
|
}
|
|
2135
2135
|
get denominator() {
|
|
2136
|
-
return s(this,
|
|
2136
|
+
return s(this, N).filter((e) => e.power.isNegative());
|
|
2137
2137
|
}
|
|
2138
2138
|
derivative() {
|
|
2139
|
-
const e = [], t = s(this,
|
|
2139
|
+
const e = [], t = s(this, N).length;
|
|
2140
2140
|
for (let n = 0; n < t; n++) {
|
|
2141
|
-
const r = s(this,
|
|
2141
|
+
const r = s(this, N).slice(), l = r.splice(n, 1)[0];
|
|
2142
2142
|
e.push(new me(...r).multiply(new me(...l.derivative())));
|
|
2143
2143
|
}
|
|
2144
2144
|
e.forEach((n) => n.reduce());
|
|
2145
2145
|
const i = e.shift();
|
|
2146
|
-
return i !== void 0 && h(this,
|
|
2146
|
+
return i !== void 0 && h(this, N, i.factors), this.add(...e);
|
|
2147
2147
|
}
|
|
2148
2148
|
develop() {
|
|
2149
2149
|
const e = new A("1");
|
|
2150
|
-
return s(this,
|
|
2150
|
+
return s(this, N).forEach((t) => {
|
|
2151
2151
|
e.multiply(t.develop());
|
|
2152
2152
|
}), e;
|
|
2153
2153
|
}
|
|
2154
2154
|
get display() {
|
|
2155
2155
|
let e = [], t = [];
|
|
2156
|
-
if (s(this, Ue) === He.ROOT ? (e = this.numerator, t = this.denominator.map((r) => r.clone().inverse())) : e = s(this,
|
|
2156
|
+
if (s(this, Ue) === He.ROOT ? (e = this.numerator, t = this.denominator.map((r) => r.clone().inverse())) : e = s(this, N), e.length === 0 && (e = [new le("1")]), t.length === 0)
|
|
2157
2157
|
return e.length === 1 ? e[0].asSingle.display : e.map((r) => r.display).join("");
|
|
2158
2158
|
const i = e.length === 1 ? e[0].asSingle.display : e.map((r) => r.display).join(""), n = t.length === 1 ? t[0].asSingle.display : t.map((r) => r.display).join("");
|
|
2159
2159
|
return `(${i})/(${n})`;
|
|
2160
2160
|
}
|
|
2161
2161
|
divide(e) {
|
|
2162
|
-
return h(this,
|
|
2162
|
+
return h(this, N, s(this, N).concat(e.clone().factors.map((t) => t.inverse()))), this;
|
|
2163
2163
|
}
|
|
2164
2164
|
evaluate(e, t) {
|
|
2165
|
-
return t ? s(this,
|
|
2165
|
+
return t ? s(this, N).reduce((i, n) => i * n.evaluate(e, t), 1) : s(this, N).reduce((i, n) => i.multiply(n.evaluate(e)), new u("1"));
|
|
2166
2166
|
}
|
|
2167
2167
|
get factors() {
|
|
2168
|
-
return s(this,
|
|
2168
|
+
return s(this, N);
|
|
2169
2169
|
}
|
|
2170
2170
|
set factors(e) {
|
|
2171
|
-
h(this,
|
|
2171
|
+
h(this, N, e);
|
|
2172
2172
|
}
|
|
2173
2173
|
fromPolynom(e, t) {
|
|
2174
|
-
return h(this,
|
|
2174
|
+
return h(this, N, new A(e).factorize(t).map((i) => new le(i))), this;
|
|
2175
2175
|
}
|
|
2176
2176
|
getZeroes() {
|
|
2177
|
-
const e = [].concat(...s(this,
|
|
2177
|
+
const e = [].concat(...s(this, N).map((t) => t.polynom.getZeroes()));
|
|
2178
2178
|
return e.sort((t, i) => t.value - i.value), e.filter(
|
|
2179
2179
|
(t, i, n) => i === n.findIndex(
|
|
2180
2180
|
(r) => r.value === t.value
|
|
@@ -2182,66 +2182,66 @@ const me = class me {
|
|
|
2182
2182
|
);
|
|
2183
2183
|
}
|
|
2184
2184
|
hasVariable(e) {
|
|
2185
|
-
return s(this,
|
|
2185
|
+
return s(this, N).some((t) => t.hasVariable(e));
|
|
2186
2186
|
}
|
|
2187
2187
|
inverse() {
|
|
2188
|
-
return h(this,
|
|
2188
|
+
return h(this, N, s(this, N).map((e) => e.inverse())), this;
|
|
2189
2189
|
}
|
|
2190
2190
|
isEqual(e) {
|
|
2191
2191
|
const t = me.gcd(this, e), i = this.clone().divide(t).reduce(), n = e.clone().divide(t).reduce();
|
|
2192
2192
|
return i.isOne() && n.isOne();
|
|
2193
2193
|
}
|
|
2194
2194
|
isOne() {
|
|
2195
|
-
return s(this,
|
|
2195
|
+
return s(this, N).every((e) => e.isOne());
|
|
2196
2196
|
}
|
|
2197
2197
|
isZero() {
|
|
2198
|
-
return s(this,
|
|
2198
|
+
return s(this, N).every((e) => e.isZero());
|
|
2199
2199
|
}
|
|
2200
2200
|
multiply(...e) {
|
|
2201
2201
|
return e.forEach((t) => {
|
|
2202
|
-
h(this,
|
|
2202
|
+
h(this, N, s(this, N).concat(t.clone().factors));
|
|
2203
2203
|
}), this;
|
|
2204
2204
|
}
|
|
2205
2205
|
get numerator() {
|
|
2206
|
-
return s(this,
|
|
2206
|
+
return s(this, N).filter((e) => e.power.isPositive());
|
|
2207
2207
|
}
|
|
2208
2208
|
one() {
|
|
2209
|
-
return h(this,
|
|
2209
|
+
return h(this, N, [new le("1", "1")]), this;
|
|
2210
2210
|
}
|
|
2211
2211
|
// #endregion Properties and methods (25)
|
|
2212
2212
|
// #region Getters And Setters (5)
|
|
2213
2213
|
opposite() {
|
|
2214
|
-
const e = s(this,
|
|
2215
|
-
return e >= 0 ? s(this,
|
|
2214
|
+
const e = s(this, N).findIndex((t) => t.display === "(-1)");
|
|
2215
|
+
return e >= 0 ? s(this, N).splice(e, 1) : s(this, N).push(new le("-1", "1")), this;
|
|
2216
2216
|
}
|
|
2217
2217
|
pow(e) {
|
|
2218
|
-
return h(this,
|
|
2218
|
+
return h(this, N, s(this, N).map((t) => t.pow(e))), this;
|
|
2219
2219
|
}
|
|
2220
2220
|
primitive() {
|
|
2221
2221
|
throw new Error("Method not implemented.");
|
|
2222
2222
|
}
|
|
2223
2223
|
reduce() {
|
|
2224
2224
|
const e = Jt(this);
|
|
2225
|
-
return h(this,
|
|
2225
|
+
return h(this, N, Object.values(e).map((t) => {
|
|
2226
2226
|
const i = t[0].polynom, n = t.reduce((r, l) => r.add(l.power), new u("0"));
|
|
2227
|
-
return new
|
|
2227
|
+
return new le(i, n.reduce());
|
|
2228
2228
|
}).filter((t) => !t.power.isZero())), this;
|
|
2229
2229
|
}
|
|
2230
2230
|
root(e) {
|
|
2231
|
-
return h(this,
|
|
2231
|
+
return h(this, N, s(this, N).map((t) => t.root(e))), this;
|
|
2232
2232
|
}
|
|
2233
2233
|
sort() {
|
|
2234
|
-
return h(this,
|
|
2234
|
+
return h(this, N, s(this, N).sort((e, t) => e.degree().isLeq(t.degree()) ? -1 : 1)), this;
|
|
2235
2235
|
}
|
|
2236
2236
|
sqrt() {
|
|
2237
|
-
return h(this,
|
|
2237
|
+
return h(this, N, s(this, N).map((e) => e.sqrt())), this;
|
|
2238
2238
|
}
|
|
2239
2239
|
subtract(...e) {
|
|
2240
2240
|
return this.add(...e.map((t) => t.opposite()));
|
|
2241
2241
|
}
|
|
2242
2242
|
tableOfSigns() {
|
|
2243
|
-
const e = this.getZeroes(), t =
|
|
2244
|
-
return { signs: t.map((n) => n.
|
|
2243
|
+
const e = this.getZeroes(), t = this.factors.map((n) => ({ factor: new le(n), ...n.tableOfSigns(e) }));
|
|
2244
|
+
return { signs: t.map((n) => n.signs).reduce((n, r) => (n.length === 0 ? n = r : r.forEach((l, c) => {
|
|
2245
2245
|
switch (l) {
|
|
2246
2246
|
case "d":
|
|
2247
2247
|
n[c] = "d";
|
|
@@ -2260,25 +2260,25 @@ const me = class me {
|
|
|
2260
2260
|
}
|
|
2261
2261
|
get tex() {
|
|
2262
2262
|
let e = [], t = [];
|
|
2263
|
-
if (s(this, Ue) === He.ROOT ? (e = this.numerator, t = this.denominator.map((r) => r.clone().inverse())) : e = s(this,
|
|
2263
|
+
if (s(this, Ue) === He.ROOT ? (e = this.numerator, t = this.denominator.map((r) => r.clone().inverse())) : e = s(this, N), e.length === 0 && (e = [new le("1")]), t.length === 0)
|
|
2264
2264
|
return e.length === 1 ? e[0].asSingle.tex : e.map((r) => r.tex).join("");
|
|
2265
2265
|
const i = e.length === 1 ? e[0].asSingle.tex : e.map((r) => r.tex).join(""), n = t.length === 1 ? t[0].asSingle.tex : t.map((r) => r.tex).join("");
|
|
2266
2266
|
return `\\frac{ ${i} }{ ${n} }`;
|
|
2267
2267
|
}
|
|
2268
2268
|
get variables() {
|
|
2269
|
-
return s(this,
|
|
2269
|
+
return s(this, N).reduce((e, t) => e.concat(t.variables), []);
|
|
2270
2270
|
}
|
|
2271
2271
|
// #endregion Getters And Setters (5)
|
|
2272
2272
|
// #region Private methods (1)
|
|
2273
2273
|
zero() {
|
|
2274
|
-
return h(this,
|
|
2274
|
+
return h(this, N, [new le("0", "1")]), this;
|
|
2275
2275
|
}
|
|
2276
2276
|
// #endregion Private methods (1)
|
|
2277
2277
|
};
|
|
2278
|
-
Ue = new WeakMap(),
|
|
2278
|
+
Ue = new WeakMap(), N = new WeakMap(), pt = new WeakSet(), ti = function(e, t) {
|
|
2279
2279
|
const i = Jt(e), n = Jt(t), l = Object.keys(i).filter((c) => Object.hasOwn(n, c)).map((c) => {
|
|
2280
|
-
const d = i[c].reduce((g,
|
|
2281
|
-
return new
|
|
2280
|
+
const d = i[c].reduce((g, E) => g.add(E.power), new u("0")), f = n[c].reduce((g, E) => g.add(E.power), new u("0"));
|
|
2281
|
+
return new le(c, u.min(d, f));
|
|
2282
2282
|
});
|
|
2283
2283
|
return new me(...l);
|
|
2284
2284
|
}, p(me, pt);
|
|
@@ -2290,7 +2290,7 @@ function Jt(o) {
|
|
|
2290
2290
|
const r = n.polynom.display;
|
|
2291
2291
|
return Object.hasOwn(i, r) ? i[r].push(n) : i[r] = [n], i;
|
|
2292
2292
|
}, {});
|
|
2293
|
-
return e.isOne() || (t[e.display] = [new
|
|
2293
|
+
return e.isOne() || (t[e.display] = [new le(e.display, 1)]), t;
|
|
2294
2294
|
}
|
|
2295
2295
|
var O, M, se, zt, tt, Lt;
|
|
2296
2296
|
const xe = class xe {
|
|
@@ -4208,7 +4208,7 @@ const fs = {
|
|
|
4208
4208
|
Equation: H,
|
|
4209
4209
|
Matrix: ns,
|
|
4210
4210
|
LinearSystem: ii,
|
|
4211
|
-
Factor:
|
|
4211
|
+
Factor: le,
|
|
4212
4212
|
PolyFactor: ei,
|
|
4213
4213
|
LogicalSet: us,
|
|
4214
4214
|
Random: cs,
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IAlgebra, IExpression, InputAlgebra, InputValue, IPiMathObject, ISolution, literalType,
|
|
1
|
+
import { IAlgebra, IExpression, InputAlgebra, InputValue, IPiMathObject, ISolution, literalType, POLYFACTOR_TABLE_OF_SIGNS } from '../pimath.interface';
|
|
2
2
|
import { Fraction } from '../coefficients/fraction';
|
|
3
3
|
import { Factor } from './factor';
|
|
4
4
|
import { Polynom } from './polynom';
|
|
@@ -38,12 +38,7 @@ export declare class PolyFactor implements IPiMathObject<PolyFactor>, IExpressio
|
|
|
38
38
|
sort(): this;
|
|
39
39
|
sqrt(): this;
|
|
40
40
|
subtract(...values: PolyFactor[]): this;
|
|
41
|
-
tableOfSigns():
|
|
42
|
-
factors: {
|
|
43
|
-
factor: Factor;
|
|
44
|
-
tableOfSigns: TABLE_OF_SIGNS;
|
|
45
|
-
}[];
|
|
46
|
-
};
|
|
41
|
+
tableOfSigns(): POLYFACTOR_TABLE_OF_SIGNS;
|
|
47
42
|
get tex(): string;
|
|
48
43
|
get variables(): string[];
|
|
49
44
|
zero(): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polyFactor.d.ts","sourceRoot":"","sources":["../../src/algebra/polyFactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"polyFactor.d.ts","sourceRoot":"","sources":["../../src/algebra/polyFactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,aAAa,EACb,SAAS,EACT,WAAW,EACX,yBAAyB,EAE5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAC,MAAM,EAAiB,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAKjC,qBAAa,UAAW,YAAW,aAAa,CAAC,UAAU,CAAC,EACxD,WAAW,CAAC,UAAU,CAAC,EACvB,QAAQ,CAAC,UAAU,CAAC;;gBASR,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAE;IAQ/D,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,EAAE,GAAG,IAAI;IAqBvE,KAAK,IAAI,UAAU;WAuBZ,GAAG,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU;IAmB/C,GAAG,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAuBzC,IAAI,OAAO,IAAI,IAAI,CAGlB;IAED,IAAI,MAAM,IAAI,IAAI,CAGjB;IAEM,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ;IAIxC,IAAI,WAAW,IAAI,MAAM,EAAE,CAE1B;IAEM,UAAU,IAAI,IAAI;IAsBlB,OAAO,IAAI,OAAO;IAWzB,IAAW,OAAO,IAAI,MAAM,CA+B3B;IAEM,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAK/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ;IAUtH,IAAW,OAAO,IAAI,MAAM,EAAE,CAE7B;IAED,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAEjC;IAEM,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAMlE,SAAS,IAAI,SAAS,EAAE;IAiBxB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIpC,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IASnC,KAAK,IAAI,OAAO;IAIhB,MAAM,IAAI,OAAO;IAIjB,QAAQ,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAQ9C,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAEM,GAAG,IAAI,IAAI;IASX,QAAQ,IAAI,IAAI;IAahB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAKnC,SAAS,IAAI,UAAU;IAIvB,MAAM,IAAI,IAAI;IAgBd,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,IAAI,IAAI,IAAI;IAMZ,IAAI,IAAI,IAAI;IAKZ,QAAQ,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAIvC,YAAY,IAAI,yBAAyB;IA+FhD,IAAW,GAAG,IAAI,MAAM,CA+BvB;IAED,IAAW,SAAS,IAAI,MAAM,EAAE,CAG/B;IAMM,IAAI,IAAI,IAAI;CAMtB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Fraction } from './coefficients/fraction';
|
|
2
2
|
import { NthRoot } from './coefficients/nthRoot';
|
|
3
3
|
import { Monom } from './algebra/monom';
|
|
4
|
+
import { Factor } from './algebra/factor';
|
|
4
5
|
export type InputValue<T> = T | string | number | Fraction | NthRoot;
|
|
5
6
|
export type InputAlgebra<T> = InputValue<T> | Monom;
|
|
6
7
|
export type literalType<T> = Record<string, T>;
|
|
@@ -59,3 +60,9 @@ export interface TABLE_OF_SIGNS {
|
|
|
59
60
|
roots: ISolution[];
|
|
60
61
|
signs: TABLE_OF_SIGNS_VALUES[];
|
|
61
62
|
}
|
|
63
|
+
export interface FACTOR_TABLE_OF_SIGNS extends TABLE_OF_SIGNS {
|
|
64
|
+
factor: Factor;
|
|
65
|
+
}
|
|
66
|
+
export interface POLYFACTOR_TABLE_OF_SIGNS extends TABLE_OF_SIGNS {
|
|
67
|
+
factors: FACTOR_TABLE_OF_SIGNS[];
|
|
68
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pimath.interface.d.ts","sourceRoot":"","sources":["../src/pimath.interface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pimath.interface.d.ts","sourceRoot":"","sources":["../src/pimath.interface.ts"],"names":[],"mappings":"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"}
|