pimath 0.0.30 → 0.0.31
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/dev/pi.js +850 -486
- package/dev/pi.js.map +1 -1
- package/dist/pi.js +1 -1
- package/dist/pi.js.map +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/algebra.Equation.html +9 -9
- package/docs/classes/algebra.LinearSystem.html +1 -1
- package/docs/classes/algebra.Logicalset.html +2 -2
- package/docs/classes/algebra.Monom.html +42 -40
- package/docs/classes/algebra.Polynom.html +10 -10
- package/docs/classes/algebra.PolynomExpFactor.html +1 -0
- package/docs/classes/algebra.PolynomExpProduct.html +1 -0
- package/docs/classes/algebra.Rational.html +2 -2
- package/docs/classes/coefficients.Fraction.html +4 -4
- package/docs/classes/coefficients.Nthroot.html +1 -1
- package/docs/classes/geometry.Circle.html +2 -2
- package/docs/classes/geometry.Line.html +2 -2
- package/docs/classes/geometry.Point.html +1 -1
- package/docs/classes/geometry.Triangle.html +6 -6
- package/docs/classes/geometry.Vector.html +1 -1
- package/docs/classes/numeric.Numeric.html +5 -5
- package/docs/classes/shutingyard.Shutingyard.html +7 -8
- package/docs/enums/shutingyard.ShutingyardMode.html +1 -0
- package/docs/enums/shutingyard.ShutingyardType.html +1 -0
- package/docs/index.html +1 -1
- package/docs/interfaces/geometry.remarquableLines.html +1 -1
- package/docs/modules/algebra.html +1 -1
- package/docs/modules/coefficients.html +1 -1
- package/docs/modules/geometry.html +1 -1
- package/docs/modules/numeric.html +1 -1
- package/docs/modules/random.Random.html +1 -1
- package/docs/modules/random.html +1 -1
- package/docs/modules/shutingyard.html +1 -1
- package/docs/modules.html +1 -1
- package/esm/main.js +3 -1
- package/esm/main.js.map +1 -1
- package/esm/maths/algebra/equation.js +1 -1
- package/esm/maths/algebra/equation.js.map +1 -1
- package/esm/maths/algebra/index.d.ts +1 -0
- package/esm/maths/algebra/index.js +1 -0
- package/esm/maths/algebra/index.js.map +1 -1
- package/esm/maths/algebra/monom.d.ts +4 -1
- package/esm/maths/algebra/monom.js +52 -37
- package/esm/maths/algebra/monom.js.map +1 -1
- package/esm/maths/algebra/polynom.d.ts +19 -15
- package/esm/maths/algebra/polynom.js +242 -174
- package/esm/maths/algebra/polynom.js.map +1 -1
- package/esm/maths/coefficients/fraction.d.ts +3 -0
- package/esm/maths/coefficients/fraction.js +21 -8
- package/esm/maths/coefficients/fraction.js.map +1 -1
- package/esm/maths/expressions/numexp.d.ts +19 -0
- package/esm/maths/expressions/numexp.js +147 -0
- package/esm/maths/expressions/numexp.js.map +1 -0
- package/esm/maths/expressions/polynomexp.bkp.d.ts +33 -0
- package/esm/maths/expressions/polynomexp.bkp.js +186 -0
- package/esm/maths/expressions/polynomexp.bkp.js.map +1 -0
- package/esm/maths/expressions/polynomexp.d.ts +52 -0
- package/esm/maths/expressions/polynomexp.js +233 -0
- package/esm/maths/expressions/polynomexp.js.map +1 -0
- package/esm/maths/geometry/line.d.ts +3 -2
- package/esm/maths/geometry/line.js +3 -2
- package/esm/maths/geometry/line.js.map +1 -1
- package/esm/maths/shutingyard.d.ts +6 -6
- package/esm/maths/shutingyard.js +1 -5
- package/esm/maths/shutingyard.js.map +1 -1
- package/package.json +1 -1
- package/{dev → public}/demo.css +0 -0
- package/{dev → public}/index.html +43 -13
- package/{dev → public}/playground.html +1 -1
- package/src/main.ts +13 -2
- package/src/maths/algebra/equation.ts +1 -1
- package/src/maths/algebra/index.ts +2 -1
- package/src/maths/algebra/monom.ts +71 -49
- package/src/maths/algebra/polynom.ts +432 -309
- package/src/maths/coefficients/fraction.ts +28 -11
- package/src/maths/{numexp.ts → expressions/numexp.ts} +40 -20
- package/src/maths/expressions/polynomexp.bkp.ts +223 -0
- package/src/maths/expressions/polynomexp.ts +309 -0
- package/src/maths/geometry/line.ts +4 -2
- package/src/maths/shutingyard.ts +11 -7
- package/tests/algebra/monom.test.ts +12 -8
- package/tests/algebra/polynom.test.ts +28 -2
- package/tests/numexp.test.ts +10 -3
- package/tests/polynomexp.test.ts +15 -0
- package/tests/shutingyard.test.ts +4 -4
|
@@ -7,9 +7,6 @@ const numeric_1 = require("../numeric");
|
|
|
7
7
|
const coefficients_1 = require("../coefficients");
|
|
8
8
|
class Polynom {
|
|
9
9
|
_rawString;
|
|
10
|
-
_monoms;
|
|
11
|
-
_factors;
|
|
12
|
-
_texString;
|
|
13
10
|
constructor(polynomString, ...values) {
|
|
14
11
|
this._monoms = [];
|
|
15
12
|
this._factors = [];
|
|
@@ -18,18 +15,24 @@ class Polynom {
|
|
|
18
15
|
}
|
|
19
16
|
return this;
|
|
20
17
|
}
|
|
18
|
+
_monoms;
|
|
21
19
|
get monoms() {
|
|
22
20
|
return this._monoms;
|
|
23
21
|
}
|
|
24
22
|
set monoms(M) {
|
|
25
23
|
this._monoms = M;
|
|
26
24
|
}
|
|
25
|
+
_factors;
|
|
27
26
|
get factors() {
|
|
28
27
|
return this._factors;
|
|
29
28
|
}
|
|
30
29
|
set factors(value) {
|
|
31
30
|
this._factors = value;
|
|
32
31
|
}
|
|
32
|
+
_texString;
|
|
33
|
+
get texString() {
|
|
34
|
+
return this._texString;
|
|
35
|
+
}
|
|
33
36
|
get texFactors() {
|
|
34
37
|
this.factorize();
|
|
35
38
|
let tex = '';
|
|
@@ -43,9 +46,6 @@ class Polynom {
|
|
|
43
46
|
}
|
|
44
47
|
return tex;
|
|
45
48
|
}
|
|
46
|
-
get texString() {
|
|
47
|
-
return this._texString;
|
|
48
|
-
}
|
|
49
49
|
get length() {
|
|
50
50
|
return this._monoms.length;
|
|
51
51
|
}
|
|
@@ -78,28 +78,23 @@ class Polynom {
|
|
|
78
78
|
get numberOfVars() {
|
|
79
79
|
return this.variables.length;
|
|
80
80
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
P += `${(k.coefficient.sign() === 1 && (P !== '' || forceSign === true)) ? '+' : ''}${(output === 'tex') ? k.tex : k.display}`;
|
|
81
|
+
parse = (inputStr, ...values) => {
|
|
82
|
+
this._monoms = [];
|
|
83
|
+
this._factors = [];
|
|
84
|
+
if (typeof inputStr === 'string') {
|
|
85
|
+
return this._parseString(inputStr, ...values);
|
|
88
86
|
}
|
|
89
|
-
if (
|
|
90
|
-
|
|
91
|
-
P = `\\left( ${P} \\right)`;
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
P = `(${P})`;
|
|
95
|
-
}
|
|
87
|
+
else if (typeof inputStr === 'number' || inputStr instanceof coefficients_1.Fraction || inputStr instanceof monom_1.Monom) {
|
|
88
|
+
this._monoms.push(new monom_1.Monom(inputStr));
|
|
96
89
|
}
|
|
97
|
-
if (
|
|
98
|
-
|
|
90
|
+
else if (inputStr instanceof Polynom) {
|
|
91
|
+
for (const m of inputStr.monoms) {
|
|
92
|
+
this._monoms.push(m.clone());
|
|
93
|
+
}
|
|
99
94
|
}
|
|
100
|
-
return
|
|
95
|
+
return this;
|
|
101
96
|
};
|
|
102
|
-
|
|
97
|
+
_parseString(inputStr, ...values) {
|
|
103
98
|
if (values === undefined || values.length === 0) {
|
|
104
99
|
inputStr = '' + inputStr;
|
|
105
100
|
this._rawString = inputStr;
|
|
@@ -139,41 +134,7 @@ class Polynom {
|
|
|
139
134
|
else {
|
|
140
135
|
return this.zero();
|
|
141
136
|
}
|
|
142
|
-
}
|
|
143
|
-
shutingYardToReducedPolynom = (inputStr) => {
|
|
144
|
-
const SY = new shutingyard_1.Shutingyard().parse(inputStr);
|
|
145
|
-
const rpn = SY.rpn;
|
|
146
|
-
let m1;
|
|
147
|
-
let m2;
|
|
148
|
-
let stack = [], previousToken = null, tempPolynom;
|
|
149
|
-
for (const element of rpn) {
|
|
150
|
-
if (element.tokenType === 'coefficient' || element.tokenType === 'variable') {
|
|
151
|
-
tempPolynom = new Polynom().zero();
|
|
152
|
-
tempPolynom.monoms = [new monom_1.Monom(element.token)];
|
|
153
|
-
stack.push(tempPolynom.clone());
|
|
154
|
-
}
|
|
155
|
-
else if (element.tokenType === 'operation') {
|
|
156
|
-
m2 = (stack.pop()) || new Polynom().zero();
|
|
157
|
-
m1 = (stack.pop()) || new Polynom().zero();
|
|
158
|
-
switch (element.token) {
|
|
159
|
-
case '+':
|
|
160
|
-
stack.push(m1.add(m2));
|
|
161
|
-
break;
|
|
162
|
-
case '-':
|
|
163
|
-
stack.push(m1.subtract(m2));
|
|
164
|
-
break;
|
|
165
|
-
case '*':
|
|
166
|
-
stack.push(m1.multiply(m2));
|
|
167
|
-
break;
|
|
168
|
-
case '^':
|
|
169
|
-
stack.push(m1.pow(+previousToken));
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
previousToken = element.token;
|
|
173
|
-
}
|
|
174
|
-
this._monoms = stack[0].monoms;
|
|
175
|
-
return this;
|
|
176
|
-
};
|
|
137
|
+
}
|
|
177
138
|
clone = () => {
|
|
178
139
|
const P = new Polynom();
|
|
179
140
|
const M = [];
|
|
@@ -253,31 +214,6 @@ class Polynom {
|
|
|
253
214
|
}
|
|
254
215
|
return this;
|
|
255
216
|
};
|
|
256
|
-
multiplyByPolynom = (P) => {
|
|
257
|
-
const M = [];
|
|
258
|
-
for (const m1 of this._monoms) {
|
|
259
|
-
for (const m2 of P.monoms) {
|
|
260
|
-
M.push(monom_1.Monom.xmultiply(m1, m2));
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
this._monoms = M;
|
|
264
|
-
return this.reduce();
|
|
265
|
-
};
|
|
266
|
-
multiplyByFraction = (F) => {
|
|
267
|
-
for (const m of this._monoms) {
|
|
268
|
-
m.coefficient.multiply(F);
|
|
269
|
-
}
|
|
270
|
-
return this.reduce();
|
|
271
|
-
};
|
|
272
|
-
multiplyByInteger = (nb) => {
|
|
273
|
-
return this.multiplyByFraction(new coefficients_1.Fraction(nb));
|
|
274
|
-
};
|
|
275
|
-
multiplyByMonom = (M) => {
|
|
276
|
-
for (const m of this._monoms) {
|
|
277
|
-
m.multiply(M);
|
|
278
|
-
}
|
|
279
|
-
return this.reduce();
|
|
280
|
-
};
|
|
281
217
|
euclidian = (P) => {
|
|
282
218
|
const letter = P.variables[0];
|
|
283
219
|
const quotient = new Polynom().zero();
|
|
@@ -298,29 +234,18 @@ class Polynom {
|
|
|
298
234
|
quotient.add(newM);
|
|
299
235
|
reminder.subtract(P.clone().multiply(newM));
|
|
300
236
|
}
|
|
237
|
+
quotient.reduce();
|
|
238
|
+
reminder.reduce();
|
|
301
239
|
return { quotient, reminder };
|
|
302
240
|
};
|
|
303
241
|
divide = (value) => {
|
|
304
242
|
if (value instanceof coefficients_1.Fraction) {
|
|
305
|
-
this.divideByFraction(value);
|
|
243
|
+
return this.divideByFraction(value);
|
|
306
244
|
}
|
|
307
245
|
else if (typeof value === 'number' && Number.isSafeInteger(value)) {
|
|
308
246
|
return this.divideByInteger(value);
|
|
309
247
|
}
|
|
310
248
|
};
|
|
311
|
-
divideByInteger = (nb) => {
|
|
312
|
-
const nbF = new coefficients_1.Fraction(nb);
|
|
313
|
-
for (const m of this._monoms) {
|
|
314
|
-
m.coefficient.divide(nbF);
|
|
315
|
-
}
|
|
316
|
-
return this;
|
|
317
|
-
};
|
|
318
|
-
divideByFraction = (F) => {
|
|
319
|
-
for (const m of this._monoms) {
|
|
320
|
-
m.coefficient.divide(F);
|
|
321
|
-
}
|
|
322
|
-
return this;
|
|
323
|
-
};
|
|
324
249
|
pow = (nb) => {
|
|
325
250
|
if (!Number.isSafeInteger(nb)) {
|
|
326
251
|
return this.zero();
|
|
@@ -577,82 +502,6 @@ class Polynom {
|
|
|
577
502
|
this.factors = factors;
|
|
578
503
|
return factors;
|
|
579
504
|
};
|
|
580
|
-
_factorize2ndDegree = (letter) => {
|
|
581
|
-
let P1, P2, a, b, c, delta, x1, x2, factor;
|
|
582
|
-
if (this.numberOfVars === 1) {
|
|
583
|
-
a = this.monomByDegree(2, letter).coefficient;
|
|
584
|
-
b = this.monomByDegree(1, letter).coefficient;
|
|
585
|
-
c = this.monomByDegree(0, letter).coefficient;
|
|
586
|
-
delta = b.clone().pow(2).subtract(a.clone().multiply(c).multiply(4));
|
|
587
|
-
if (delta.isZero()) {
|
|
588
|
-
x1 = b.clone().opposed().divide(a.clone().multiply(2));
|
|
589
|
-
P1 = new Polynom(letter).subtract(x1.display).multiply(x1.denominator);
|
|
590
|
-
P2 = new Polynom(letter).subtract(x1.display).multiply(x1.denominator);
|
|
591
|
-
factor = a.divide(x1.denominator).divide(x1.denominator);
|
|
592
|
-
if (!factor.isOne()) {
|
|
593
|
-
return [new Polynom(factor.display), P1, P2];
|
|
594
|
-
}
|
|
595
|
-
else {
|
|
596
|
-
return [P1, P2];
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
else if (delta.isPositive() && delta.isSquare()) {
|
|
600
|
-
x1 = b.clone().opposed()
|
|
601
|
-
.add(delta.clone().sqrt())
|
|
602
|
-
.divide(a.clone().multiply(2));
|
|
603
|
-
x2 = b.clone().opposed()
|
|
604
|
-
.subtract(delta.clone().sqrt())
|
|
605
|
-
.divide(a.clone().multiply(2));
|
|
606
|
-
factor = a.divide(x1.denominator).divide(x2.denominator);
|
|
607
|
-
if (factor.isOne()) {
|
|
608
|
-
return [
|
|
609
|
-
new Polynom(letter).subtract(x1.display).multiply(x1.denominator),
|
|
610
|
-
new Polynom(letter).subtract(x2.display).multiply(x2.denominator),
|
|
611
|
-
];
|
|
612
|
-
}
|
|
613
|
-
else {
|
|
614
|
-
return [
|
|
615
|
-
new Polynom(factor.display),
|
|
616
|
-
new Polynom(letter).subtract(x1.display).multiply(x1.denominator),
|
|
617
|
-
new Polynom(letter).subtract(x2.display).multiply(x2.denominator),
|
|
618
|
-
];
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
else {
|
|
622
|
-
return [this.clone()];
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
else {
|
|
626
|
-
a = this.monomByDegree(2, letter);
|
|
627
|
-
b = this.monomByDegree(1, letter);
|
|
628
|
-
c = this.monomByDegree(0, letter);
|
|
629
|
-
if (a.isLiteralSquare() && c.isLiteralSquare()) {
|
|
630
|
-
if (b.clone().pow(2).isSameAs(a.clone().multiply(c))) {
|
|
631
|
-
let xPolynom = new Polynom('x', a.coefficient, b.coefficient, c.coefficient);
|
|
632
|
-
let xFactors = xPolynom._factorize2ndDegree('x');
|
|
633
|
-
let factors = [], xyzPolynom;
|
|
634
|
-
if (xFactors.length >= 2) {
|
|
635
|
-
for (let p of xFactors) {
|
|
636
|
-
if (p.degree().isZero()) {
|
|
637
|
-
factors.push(p.clone());
|
|
638
|
-
}
|
|
639
|
-
else {
|
|
640
|
-
xyzPolynom = p.clone();
|
|
641
|
-
xyzPolynom.monoms[0].literal = a.literalSqrt;
|
|
642
|
-
xyzPolynom.monoms[1].literal = c.literalSqrt;
|
|
643
|
-
factors.push(xyzPolynom.clone());
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
|
-
return factors;
|
|
647
|
-
}
|
|
648
|
-
}
|
|
649
|
-
}
|
|
650
|
-
return [this.clone()];
|
|
651
|
-
}
|
|
652
|
-
};
|
|
653
|
-
_factorizeByGroups = () => {
|
|
654
|
-
return [];
|
|
655
|
-
};
|
|
656
505
|
getZeroes = () => {
|
|
657
506
|
const Z = [];
|
|
658
507
|
switch (this.degree().value) {
|
|
@@ -784,6 +633,225 @@ class Polynom {
|
|
|
784
633
|
}
|
|
785
634
|
return M;
|
|
786
635
|
};
|
|
636
|
+
genDisplay = (output, forceSign, wrapParentheses) => {
|
|
637
|
+
let P = '';
|
|
638
|
+
for (const k of this._monoms) {
|
|
639
|
+
if (k.coefficient.value === 0) {
|
|
640
|
+
continue;
|
|
641
|
+
}
|
|
642
|
+
P += `${(k.coefficient.sign() === 1 && (P !== '' || forceSign === true)) ? '+' : ''}${(output === 'tex') ? k.tex : k.display}`;
|
|
643
|
+
}
|
|
644
|
+
if (wrapParentheses === true && this.length > 1) {
|
|
645
|
+
if (output === 'tex') {
|
|
646
|
+
P = `\\left( ${P} \\right)`;
|
|
647
|
+
}
|
|
648
|
+
else {
|
|
649
|
+
P = `(${P})`;
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
if (P === '') {
|
|
653
|
+
P = '0';
|
|
654
|
+
}
|
|
655
|
+
return P;
|
|
656
|
+
};
|
|
657
|
+
static addToken = (stack, element) => {
|
|
658
|
+
switch (element.tokenType) {
|
|
659
|
+
case shutingyard_1.ShutingyardType.COEFFICIENT:
|
|
660
|
+
stack.push(new Polynom(element.token));
|
|
661
|
+
break;
|
|
662
|
+
case shutingyard_1.ShutingyardType.VARIABLE:
|
|
663
|
+
stack.push(new Polynom().add(new monom_1.Monom(element.token)));
|
|
664
|
+
break;
|
|
665
|
+
case shutingyard_1.ShutingyardType.CONSTANT:
|
|
666
|
+
console.log('Actually, not supported - will be added later !');
|
|
667
|
+
break;
|
|
668
|
+
case shutingyard_1.ShutingyardType.OPERATION:
|
|
669
|
+
if (stack.length >= 2) {
|
|
670
|
+
const b = stack.pop(), a = stack.pop();
|
|
671
|
+
if (element.token === '+') {
|
|
672
|
+
stack.push(a.add(b));
|
|
673
|
+
}
|
|
674
|
+
else if (element.token === '-') {
|
|
675
|
+
stack.push(a.subtract(b));
|
|
676
|
+
}
|
|
677
|
+
else if (element.token === '*') {
|
|
678
|
+
stack.push(a.multiply(b));
|
|
679
|
+
}
|
|
680
|
+
else if (element.token === '/') {
|
|
681
|
+
if (b.degree().isStrictlyPositive()) {
|
|
682
|
+
console.log('divide by a polynom -> should create a rational polynom !');
|
|
683
|
+
}
|
|
684
|
+
else {
|
|
685
|
+
stack.push(a.divide(b.monoms[0].coefficient));
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
else if (element.token === '^') {
|
|
689
|
+
if (b.degree().isStrictlyPositive()) {
|
|
690
|
+
console.error('Cannot elevate a polynom with another polynom !');
|
|
691
|
+
}
|
|
692
|
+
else {
|
|
693
|
+
if (b.monoms[0].coefficient.isRelative()) {
|
|
694
|
+
stack.push(a.pow(b.monoms[0].coefficient.value));
|
|
695
|
+
}
|
|
696
|
+
else {
|
|
697
|
+
if (a.monoms.length === 1 && a.monoms[0].coefficient.isOne()) {
|
|
698
|
+
for (let letter in a.monoms[0].literal) {
|
|
699
|
+
a.monoms[0].literal[letter].multiply(b.monoms[0].coefficient);
|
|
700
|
+
}
|
|
701
|
+
stack.push(a);
|
|
702
|
+
}
|
|
703
|
+
else {
|
|
704
|
+
console.error('Cannot have power with fraction');
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
else {
|
|
711
|
+
console.log('Stack size: ', stack.length);
|
|
712
|
+
if (element.token === '-') {
|
|
713
|
+
stack.push(stack.pop().opposed());
|
|
714
|
+
}
|
|
715
|
+
else {
|
|
716
|
+
console.log('While parsing, cannot apply ', element.token, 'to', stack[0].tex);
|
|
717
|
+
}
|
|
718
|
+
}
|
|
719
|
+
break;
|
|
720
|
+
case shutingyard_1.ShutingyardType.MONOM:
|
|
721
|
+
console.error('The monom token should not appear here');
|
|
722
|
+
break;
|
|
723
|
+
case shutingyard_1.ShutingyardType.FUNCTION:
|
|
724
|
+
console.log('The function token should not appear here - might be introduced later.');
|
|
725
|
+
break;
|
|
726
|
+
}
|
|
727
|
+
};
|
|
728
|
+
shutingYardToReducedPolynom = (inputStr) => {
|
|
729
|
+
const SY = new shutingyard_1.Shutingyard().parse(inputStr);
|
|
730
|
+
const rpn = SY.rpn;
|
|
731
|
+
this.zero();
|
|
732
|
+
let stack = [], monom = new monom_1.Monom();
|
|
733
|
+
for (const element of rpn) {
|
|
734
|
+
Polynom.addToken(stack, element);
|
|
735
|
+
}
|
|
736
|
+
if (stack.length === 1) {
|
|
737
|
+
this.add(stack[0]);
|
|
738
|
+
}
|
|
739
|
+
return this;
|
|
740
|
+
};
|
|
741
|
+
multiplyByPolynom = (P) => {
|
|
742
|
+
const M = [];
|
|
743
|
+
for (const m1 of this._monoms) {
|
|
744
|
+
for (const m2 of P.monoms) {
|
|
745
|
+
M.push(monom_1.Monom.xmultiply(m1, m2));
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
this._monoms = M;
|
|
749
|
+
return this.reduce();
|
|
750
|
+
};
|
|
751
|
+
multiplyByFraction = (F) => {
|
|
752
|
+
for (const m of this._monoms) {
|
|
753
|
+
m.coefficient.multiply(F);
|
|
754
|
+
}
|
|
755
|
+
return this.reduce();
|
|
756
|
+
};
|
|
757
|
+
multiplyByInteger = (nb) => {
|
|
758
|
+
return this.multiplyByFraction(new coefficients_1.Fraction(nb));
|
|
759
|
+
};
|
|
760
|
+
multiplyByMonom = (M) => {
|
|
761
|
+
for (const m of this._monoms) {
|
|
762
|
+
m.multiply(M);
|
|
763
|
+
}
|
|
764
|
+
return this.reduce();
|
|
765
|
+
};
|
|
766
|
+
divideByInteger = (nb) => {
|
|
767
|
+
const nbF = new coefficients_1.Fraction(nb);
|
|
768
|
+
for (const m of this._monoms) {
|
|
769
|
+
m.coefficient.divide(nbF);
|
|
770
|
+
}
|
|
771
|
+
return this;
|
|
772
|
+
};
|
|
773
|
+
divideByFraction = (F) => {
|
|
774
|
+
for (const m of this._monoms) {
|
|
775
|
+
m.coefficient.divide(F);
|
|
776
|
+
}
|
|
777
|
+
return this;
|
|
778
|
+
};
|
|
779
|
+
_factorize2ndDegree = (letter) => {
|
|
780
|
+
let P1, P2, a, b, c, delta, x1, x2, factor;
|
|
781
|
+
if (this.numberOfVars === 1) {
|
|
782
|
+
a = this.monomByDegree(2, letter).coefficient;
|
|
783
|
+
b = this.monomByDegree(1, letter).coefficient;
|
|
784
|
+
c = this.monomByDegree(0, letter).coefficient;
|
|
785
|
+
delta = b.clone().pow(2).subtract(a.clone().multiply(c).multiply(4));
|
|
786
|
+
if (delta.isZero()) {
|
|
787
|
+
x1 = b.clone().opposed().divide(a.clone().multiply(2));
|
|
788
|
+
P1 = new Polynom(letter).subtract(x1.display).multiply(x1.denominator);
|
|
789
|
+
P2 = new Polynom(letter).subtract(x1.display).multiply(x1.denominator);
|
|
790
|
+
factor = a.divide(x1.denominator).divide(x1.denominator);
|
|
791
|
+
if (!factor.isOne()) {
|
|
792
|
+
return [new Polynom(factor.display), P1, P2];
|
|
793
|
+
}
|
|
794
|
+
else {
|
|
795
|
+
return [P1, P2];
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
else if (delta.isPositive() && delta.isSquare()) {
|
|
799
|
+
x1 = b.clone().opposed()
|
|
800
|
+
.add(delta.clone().sqrt())
|
|
801
|
+
.divide(a.clone().multiply(2));
|
|
802
|
+
x2 = b.clone().opposed()
|
|
803
|
+
.subtract(delta.clone().sqrt())
|
|
804
|
+
.divide(a.clone().multiply(2));
|
|
805
|
+
factor = a.divide(x1.denominator).divide(x2.denominator);
|
|
806
|
+
if (factor.isOne()) {
|
|
807
|
+
return [
|
|
808
|
+
new Polynom(letter).subtract(x1.display).multiply(x1.denominator),
|
|
809
|
+
new Polynom(letter).subtract(x2.display).multiply(x2.denominator),
|
|
810
|
+
];
|
|
811
|
+
}
|
|
812
|
+
else {
|
|
813
|
+
return [
|
|
814
|
+
new Polynom(factor.display),
|
|
815
|
+
new Polynom(letter).subtract(x1.display).multiply(x1.denominator),
|
|
816
|
+
new Polynom(letter).subtract(x2.display).multiply(x2.denominator),
|
|
817
|
+
];
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
else {
|
|
821
|
+
return [this.clone()];
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
else {
|
|
825
|
+
a = this.monomByDegree(2, letter);
|
|
826
|
+
b = this.monomByDegree(1, letter);
|
|
827
|
+
c = this.monomByDegree(0, letter);
|
|
828
|
+
if (a.isLiteralSquare() && c.isLiteralSquare()) {
|
|
829
|
+
if (b.clone().pow(2).isSameAs(a.clone().multiply(c))) {
|
|
830
|
+
let xPolynom = new Polynom('x', a.coefficient, b.coefficient, c.coefficient);
|
|
831
|
+
let xFactors = xPolynom._factorize2ndDegree('x');
|
|
832
|
+
let factors = [], xyzPolynom;
|
|
833
|
+
if (xFactors.length >= 2) {
|
|
834
|
+
for (let p of xFactors) {
|
|
835
|
+
if (p.degree().isZero()) {
|
|
836
|
+
factors.push(p.clone());
|
|
837
|
+
}
|
|
838
|
+
else {
|
|
839
|
+
xyzPolynom = p.clone();
|
|
840
|
+
xyzPolynom.monoms[0].literal = a.literalSqrt;
|
|
841
|
+
xyzPolynom.monoms[1].literal = c.literalSqrt;
|
|
842
|
+
factors.push(xyzPolynom.clone());
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
return factors;
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
return [this.clone()];
|
|
850
|
+
}
|
|
851
|
+
};
|
|
852
|
+
_factorizeByGroups = () => {
|
|
853
|
+
return [];
|
|
854
|
+
};
|
|
787
855
|
}
|
|
788
856
|
exports.Polynom = Polynom;
|
|
789
857
|
//# sourceMappingURL=polynom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polynom.js","sourceRoot":"","sources":["../../../src/maths/algebra/polynom.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"polynom.js","sourceRoot":"","sources":["../../../src/maths/algebra/polynom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare type FractionParsingType = number | string | Fraction;
|
|
1
2
|
export declare class Fraction {
|
|
2
3
|
private _numerator;
|
|
3
4
|
private _denominator;
|
|
@@ -12,6 +13,7 @@ export declare class Fraction {
|
|
|
12
13
|
get display(): string;
|
|
13
14
|
get frac(): string;
|
|
14
15
|
get dfrac(): string;
|
|
16
|
+
get tfrac(): string;
|
|
15
17
|
parse: (value: unknown, denominatorOrPeriodic?: number) => Fraction;
|
|
16
18
|
clone: () => Fraction;
|
|
17
19
|
zero: () => Fraction;
|
|
@@ -55,6 +57,7 @@ export declare class Fraction {
|
|
|
55
57
|
isSquare: () => boolean;
|
|
56
58
|
isReduced: () => boolean;
|
|
57
59
|
isNatural: () => boolean;
|
|
60
|
+
isRelative: () => boolean;
|
|
58
61
|
isRational: () => boolean;
|
|
59
62
|
isEven: () => boolean;
|
|
60
63
|
isOdd: () => boolean;
|