pimath 0.0.29 → 0.0.33
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 +852 -488
- 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 +54 -39
- 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/{numexp.d.ts → expressions/numexp.d.ts} +3 -0
- package/esm/maths/{numexp.js → expressions/numexp.js} +43 -15
- 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 +48 -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 +77 -51
- package/src/maths/algebra/polynom.ts +445 -327
- 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 +35 -2
- package/tests/numexp.test.ts +21 -1
- package/tests/polynomexp.test.ts +15 -0
- package/tests/shutingyard.test.ts +4 -4
- package/esm/maths/numexp.js.map +0 -1
|
@@ -56,6 +56,9 @@ class Fraction {
|
|
|
56
56
|
get dfrac() {
|
|
57
57
|
return this.tex.replace('\\frac', '\\dfrac');
|
|
58
58
|
}
|
|
59
|
+
get tfrac() {
|
|
60
|
+
return this.tex.replace('\\frac', '\\tfrac');
|
|
61
|
+
}
|
|
59
62
|
parse = (value, denominatorOrPeriodic) => {
|
|
60
63
|
let S;
|
|
61
64
|
if (value === null || value === "") {
|
|
@@ -108,6 +111,7 @@ class Fraction {
|
|
|
108
111
|
this._numerator = value * Math.pow(10, p) - Math.floor(value * Math.pow(10, p - denominatorOrPeriodic));
|
|
109
112
|
this.denominator = Math.pow(10, p) - Math.pow(10, p - denominatorOrPeriodic);
|
|
110
113
|
}
|
|
114
|
+
this.reduce();
|
|
111
115
|
}
|
|
112
116
|
break;
|
|
113
117
|
case "object":
|
|
@@ -194,15 +198,21 @@ class Fraction {
|
|
|
194
198
|
if (p instanceof Fraction) {
|
|
195
199
|
return this.pow(p.value);
|
|
196
200
|
}
|
|
197
|
-
if (!Number.isSafeInteger(p)) {
|
|
198
|
-
return this.invalid();
|
|
199
|
-
}
|
|
200
201
|
this.reduce();
|
|
201
202
|
if (p < 0) {
|
|
202
203
|
this.invert();
|
|
203
204
|
}
|
|
204
|
-
this._numerator = this.
|
|
205
|
-
|
|
205
|
+
let controlNumerator = Math.floor(Math.pow(this._numerator, Math.abs(p))), controlDenominator = Math.floor(Math.pow(this._denominator, Math.abs(p)));
|
|
206
|
+
if (controlNumerator ** Math.abs(p) === this._numerator
|
|
207
|
+
&&
|
|
208
|
+
controlDenominator ** Math.abs(p) === this._denominator) {
|
|
209
|
+
this._numerator = this._numerator ** Math.abs(p);
|
|
210
|
+
this._denominator = this._denominator ** Math.abs(p);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
this._numerator = this._numerator ** Math.abs(p);
|
|
214
|
+
this._denominator = this._denominator ** Math.abs(p);
|
|
215
|
+
}
|
|
206
216
|
return this;
|
|
207
217
|
};
|
|
208
218
|
root = (p) => {
|
|
@@ -354,16 +364,19 @@ class Fraction {
|
|
|
354
364
|
return Math.abs(numeric_1.Numeric.gcd(this._numerator, this._denominator)) === 1;
|
|
355
365
|
};
|
|
356
366
|
isNatural = () => {
|
|
367
|
+
return this.isRelative() && this.isPositive();
|
|
368
|
+
};
|
|
369
|
+
isRelative = () => {
|
|
357
370
|
return this.clone().reduce().denominator === 1;
|
|
358
371
|
};
|
|
359
372
|
isRational = () => {
|
|
360
|
-
return !this.
|
|
373
|
+
return !this.isRelative();
|
|
361
374
|
};
|
|
362
375
|
isEven = () => {
|
|
363
|
-
return this.
|
|
376
|
+
return this.isRelative() && this.value % 2 === 0;
|
|
364
377
|
};
|
|
365
378
|
isOdd = () => {
|
|
366
|
-
return this.
|
|
379
|
+
return this.isRelative() && this.value % 2 === 1;
|
|
367
380
|
};
|
|
368
381
|
sign = () => {
|
|
369
382
|
return (this._numerator * this._denominator >= 0) ? 1 : -1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fraction.js","sourceRoot":"","sources":["../../../src/maths/coefficients/fraction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fraction.js","sourceRoot":"","sources":["../../../src/maths/coefficients/fraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
export declare class NumExp {
|
|
2
2
|
private _rpn;
|
|
3
3
|
private _expression;
|
|
4
|
+
private _isValid;
|
|
4
5
|
constructor(value: string);
|
|
5
6
|
get rpn(): {
|
|
6
7
|
token: string;
|
|
7
8
|
tokenType: string;
|
|
8
9
|
}[];
|
|
10
|
+
get isValid(): boolean;
|
|
11
|
+
set isValid(value: boolean);
|
|
9
12
|
get expression(): string;
|
|
10
13
|
private _extractDecimalPart;
|
|
11
14
|
private _numberCorrection;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NumExp = void 0;
|
|
4
|
-
const shutingyard_1 = require("
|
|
5
|
-
const coefficients_1 = require("
|
|
4
|
+
const shutingyard_1 = require("../shutingyard");
|
|
5
|
+
const coefficients_1 = require("../coefficients");
|
|
6
6
|
class NumExp {
|
|
7
7
|
_rpn;
|
|
8
8
|
_expression;
|
|
9
|
+
_isValid;
|
|
9
10
|
constructor(value) {
|
|
10
11
|
this._expression = value;
|
|
11
12
|
this._rpn = new shutingyard_1.Shutingyard(shutingyard_1.ShutingyardMode.NUMERIC).parse(value).rpn;
|
|
@@ -13,6 +14,15 @@ class NumExp {
|
|
|
13
14
|
get rpn() {
|
|
14
15
|
return this._rpn;
|
|
15
16
|
}
|
|
17
|
+
get isValid() {
|
|
18
|
+
if (this._isValid === undefined) {
|
|
19
|
+
this.evaluate({ x: 0 });
|
|
20
|
+
}
|
|
21
|
+
return this._isValid;
|
|
22
|
+
}
|
|
23
|
+
set isValid(value) {
|
|
24
|
+
this._isValid = value;
|
|
25
|
+
}
|
|
16
26
|
get expression() {
|
|
17
27
|
return this._expression;
|
|
18
28
|
}
|
|
@@ -26,20 +36,20 @@ class NumExp {
|
|
|
26
36
|
}
|
|
27
37
|
_numberCorrection(value) {
|
|
28
38
|
const epsilon = 0.00000000000001, number_of_digits = 6;
|
|
29
|
-
|
|
39
|
+
const decimal = this._extractDecimalPart(value);
|
|
30
40
|
if (decimal === '') {
|
|
31
41
|
return value;
|
|
32
42
|
}
|
|
33
43
|
const n9 = decimal.match(/9+$/g);
|
|
34
44
|
const n0 = decimal.match(/0+$/g);
|
|
35
45
|
if (n9 && n9[0].length >= number_of_digits) {
|
|
36
|
-
|
|
46
|
+
const mod = this._extractDecimalPart(value + epsilon), mod0 = mod.match(/0+$/g);
|
|
37
47
|
if (mod0 && mod0[0].length >= number_of_digits) {
|
|
38
48
|
return +((value + epsilon).toString().split(mod0[0])[0]);
|
|
39
49
|
}
|
|
40
50
|
}
|
|
41
51
|
if (n0 && n0[0].length >= number_of_digits) {
|
|
42
|
-
|
|
52
|
+
const mod = this._extractDecimalPart(value - epsilon), mod9 = mod.match(/9+$/g);
|
|
43
53
|
if (mod9 && mod9[0].length >= number_of_digits) {
|
|
44
54
|
return +(value.toString().split(n0[0])[0]);
|
|
45
55
|
}
|
|
@@ -50,7 +60,8 @@ class NumExp {
|
|
|
50
60
|
stack.push(this._numberCorrection(value));
|
|
51
61
|
}
|
|
52
62
|
evaluate(values) {
|
|
53
|
-
|
|
63
|
+
const stack = [];
|
|
64
|
+
this.isValid = true;
|
|
54
65
|
for (const element of this._rpn) {
|
|
55
66
|
if (element.tokenType === shutingyard_1.ShutingyardType.COEFFICIENT) {
|
|
56
67
|
if (!isNaN(+element.token)) {
|
|
@@ -70,28 +81,46 @@ class NumExp {
|
|
|
70
81
|
}
|
|
71
82
|
else if (element.tokenType === shutingyard_1.ShutingyardType.OPERATION) {
|
|
72
83
|
if (element.token === '*') {
|
|
73
|
-
const b =
|
|
84
|
+
const b = stack.pop(), a = stack.pop();
|
|
85
|
+
if (a === undefined || b === undefined) {
|
|
86
|
+
this.isValid = false;
|
|
87
|
+
}
|
|
74
88
|
this._addToStack(stack, a * b);
|
|
75
89
|
}
|
|
76
90
|
else if (element.token === '/') {
|
|
77
|
-
const b =
|
|
91
|
+
const b = stack.pop(), a = stack.pop();
|
|
92
|
+
if (a === undefined || b === undefined) {
|
|
93
|
+
this.isValid = false;
|
|
94
|
+
}
|
|
78
95
|
this._addToStack(stack, a / b);
|
|
79
96
|
}
|
|
80
97
|
else if (element.token === '+') {
|
|
81
|
-
const b =
|
|
82
|
-
|
|
98
|
+
const b = stack.pop(), a = stack.pop();
|
|
99
|
+
if (a === undefined || b === undefined) {
|
|
100
|
+
this.isValid = false;
|
|
101
|
+
}
|
|
102
|
+
this._addToStack(stack, (+a) + (+b));
|
|
83
103
|
}
|
|
84
104
|
else if (element.token === '-') {
|
|
85
|
-
const b =
|
|
105
|
+
const b = stack.pop(), a = stack.pop() || 0;
|
|
106
|
+
if (b === undefined) {
|
|
107
|
+
this.isValid = false;
|
|
108
|
+
}
|
|
86
109
|
this._addToStack(stack, a - b);
|
|
87
110
|
}
|
|
88
111
|
else if (element.token === '^') {
|
|
89
|
-
const b =
|
|
112
|
+
const b = stack.pop(), a = stack.pop();
|
|
113
|
+
if (a === undefined || b === undefined) {
|
|
114
|
+
this.isValid = false;
|
|
115
|
+
}
|
|
90
116
|
this._addToStack(stack, Math.pow(a, b));
|
|
91
117
|
}
|
|
92
118
|
}
|
|
93
119
|
else if (element.tokenType === shutingyard_1.ShutingyardType.FUNCTION) {
|
|
94
|
-
const a =
|
|
120
|
+
const a = stack.pop();
|
|
121
|
+
if (a === undefined) {
|
|
122
|
+
this.isValid = false;
|
|
123
|
+
}
|
|
95
124
|
if (element.token === 'sin') {
|
|
96
125
|
this._addToStack(stack, Math.sin(a));
|
|
97
126
|
}
|
|
@@ -110,8 +139,7 @@ class NumExp {
|
|
|
110
139
|
return stack[0];
|
|
111
140
|
}
|
|
112
141
|
else {
|
|
113
|
-
|
|
114
|
-
return 0;
|
|
142
|
+
throw `There was a problem parsing: ${this._expression}`;
|
|
115
143
|
}
|
|
116
144
|
}
|
|
117
145
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numexp.js","sourceRoot":"","sources":["../../../src/maths/expressions/numexp.ts"],"names":[],"mappings":";;;AAAA,gDAA4F;AAC5F,kDAAyC;AAEzC,MAAa,MAAM;IACP,IAAI,CAAwC;IAC5C,WAAW,CAAQ;IACnB,QAAQ,CAAS;IAEzB,YAAY,KAAa;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,yBAAW,CAAC,6BAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAA;IACzE,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACP,IAAG,IAAI,CAAC,QAAQ,KAAG,SAAS,EAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAA;SACxB;QACD,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAED,IAAI,OAAO,CAAC,KAAc;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;IACzB,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEO,mBAAmB,CAAC,KAAa;QACrC,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QAE9B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,EAAE,CAAA;SACZ;QAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAE/B,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACnD,CAAC;IAEO,iBAAiB,CAAC,KAAa;QAQnC,MAAM,OAAO,GAAG,gBAAgB,EAC5B,gBAAgB,GAAG,CAAC,CAAA;QAExB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAG,OAAO,KAAG,EAAE,EAAC;YAAC,OAAO,KAAK,CAAA;SAAC;QAE9B,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAChC,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEhC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,gBAAgB,EAAE;YAExC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,OAAO,CAAC,EACjD,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,IAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAG,gBAAgB,EAAC;gBAEzC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aACzD;SACJ;QAED,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,gBAAgB,EAAE;YAExC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,OAAO,CAAC,EACjD,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,IAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAG,gBAAgB,EAAC;gBAEzC,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aAC7C;SACJ;QAED,OAAO,KAAK,CAAA;IAChB,CAAC;IAEO,WAAW,CAAC,KAAc,EAAE,KAAa;QAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,QAAQ,CAAC,MAAiC;QACtC,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;YAC7B,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,WAAW,EAAE;gBAEnD,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACxB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;iBAC1C;qBAAM;oBACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,uBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAA;iBAC7D;aACJ;iBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,QAAQ,EAAE;gBACvD,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;oBACrC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;iBAClD;aACJ;iBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,QAAQ,EAAE;gBACvD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,2BAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;aACxD;iBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,SAAS,EAAE;gBACxD,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,EAAE;oBACvB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EACjB,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;oBACnB,IAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAC;wBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;qBAAC;oBAC5D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;iBACjC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,EAAE;oBAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EACjB,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;oBACnB,IAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAC;wBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;qBAAC;oBAC5D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;iBACjC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,EAAE;oBAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EACjB,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;oBACnB,IAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAC;wBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;qBAAC;oBAC5D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;iBACvC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,EAAE;oBAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EACjB,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;oBACxB,IAAG,CAAC,KAAK,SAAS,EAAC;wBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;qBAAC;oBACzC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;iBACjC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,EAAE;oBAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EACjB,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;oBACnB,IAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAC;wBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;qBAAC;oBAC5D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;iBAC1C;aACJ;iBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,6BAAe,CAAC,QAAQ,EAAE;gBACvD,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;gBACrB,IAAG,CAAC,KAAK,SAAS,EAAC;oBAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;iBAAC;gBACzC,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;oBACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;iBACvC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;oBAChC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;iBACvC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;oBAChC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;iBACvC;qBAAM,IAAG,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE;oBAChC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;iBACxC;aACJ;SACJ;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;SAClB;aAAM;YACH,MAAM,gCAAgC,IAAI,CAAC,WAAW,EAAE,CAAA;SAC3D;IACL,CAAC;CACJ;AA1JD,wBA0JC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Polynom } from "../algebra";
|
|
2
|
+
import { Fraction } from "../coefficients";
|
|
3
|
+
declare type Factor = {
|
|
4
|
+
polynom: Polynom;
|
|
5
|
+
degree: Fraction;
|
|
6
|
+
};
|
|
7
|
+
export declare function isFactor(value: any): value is Factor;
|
|
8
|
+
export declare class PolynomExpFactor {
|
|
9
|
+
constructor(...values: unknown[]);
|
|
10
|
+
private _factors;
|
|
11
|
+
get factors(): Factor[];
|
|
12
|
+
private _powerAsInteger;
|
|
13
|
+
get powerAsInteger(): boolean;
|
|
14
|
+
set powerAsInteger(value: boolean);
|
|
15
|
+
get tex(): string;
|
|
16
|
+
addFactor: (value: Factor) => PolynomExpFactor;
|
|
17
|
+
multiply: (value: PolynomExpFactor) => PolynomExpFactor;
|
|
18
|
+
divide: (value: PolynomExpFactor) => PolynomExpFactor;
|
|
19
|
+
derivative: (letter: string) => PolynomExp;
|
|
20
|
+
private _factorDerivative;
|
|
21
|
+
private _factorAsTex;
|
|
22
|
+
}
|
|
23
|
+
export declare class PolynomExp {
|
|
24
|
+
private _factors;
|
|
25
|
+
constructor(...values: PolynomExpFactor[]);
|
|
26
|
+
private _powerAsInteger;
|
|
27
|
+
get powerAsInteger(): boolean;
|
|
28
|
+
set powerAsInteger(value: boolean);
|
|
29
|
+
get tex(): string;
|
|
30
|
+
add: (value: PolynomExpFactor) => PolynomExp;
|
|
31
|
+
subtract: (value: PolynomExpFactor) => PolynomExp;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PolynomExp = exports.PolynomExpFactor = exports.isFactor = void 0;
|
|
4
|
+
const algebra_1 = require("../algebra");
|
|
5
|
+
const coefficients_1 = require("../coefficients");
|
|
6
|
+
function isFactor(value) {
|
|
7
|
+
return value && 'polynom' in value && 'degree' in value;
|
|
8
|
+
}
|
|
9
|
+
exports.isFactor = isFactor;
|
|
10
|
+
class PolynomExpFactor {
|
|
11
|
+
constructor(...values) {
|
|
12
|
+
this._powerAsInteger = true;
|
|
13
|
+
this._factors = [];
|
|
14
|
+
for (let factor of values) {
|
|
15
|
+
if (isFactor(factor)) {
|
|
16
|
+
this.addFactor({
|
|
17
|
+
polynom: factor.polynom,
|
|
18
|
+
degree: factor.degree
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
_factors;
|
|
24
|
+
get factors() {
|
|
25
|
+
return this._factors;
|
|
26
|
+
}
|
|
27
|
+
_powerAsInteger;
|
|
28
|
+
get powerAsInteger() {
|
|
29
|
+
return this._powerAsInteger;
|
|
30
|
+
}
|
|
31
|
+
set powerAsInteger(value) {
|
|
32
|
+
this._powerAsInteger = value;
|
|
33
|
+
}
|
|
34
|
+
get tex() {
|
|
35
|
+
const numerators = [], denominators = [];
|
|
36
|
+
for (const k of this._factors) {
|
|
37
|
+
if (k.degree.isPositive()) {
|
|
38
|
+
numerators.push(this._factorAsTex(k));
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
denominators.push(this._factorAsTex({
|
|
42
|
+
polynom: k.polynom,
|
|
43
|
+
degree: k.degree.clone().opposed()
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
console.log(numerators.length);
|
|
48
|
+
if (denominators.length > 0) {
|
|
49
|
+
return `\\dfrac{ ${numerators.length > 0 ? numerators.join('') : 1} }{ ${denominators.join('')} }`;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return numerators.join('');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
addFactor = (value) => {
|
|
56
|
+
this._factors.push({
|
|
57
|
+
polynom: new algebra_1.Polynom(value.polynom),
|
|
58
|
+
degree: new coefficients_1.Fraction(value.degree)
|
|
59
|
+
});
|
|
60
|
+
return this;
|
|
61
|
+
};
|
|
62
|
+
multiply = (value) => {
|
|
63
|
+
for (const k of value.factors) {
|
|
64
|
+
this.addFactor(k);
|
|
65
|
+
}
|
|
66
|
+
return this;
|
|
67
|
+
};
|
|
68
|
+
divide = (value) => {
|
|
69
|
+
for (const k of value.factors) {
|
|
70
|
+
this.addFactor({
|
|
71
|
+
polynom: k.polynom,
|
|
72
|
+
degree: k.degree.clone().opposed()
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return this;
|
|
76
|
+
};
|
|
77
|
+
derivative = (letter) => {
|
|
78
|
+
if (this._factors.length === 2) {
|
|
79
|
+
const A = this._factors[0], B = this._factors[1], P = new PolynomExp();
|
|
80
|
+
let Ad = this._factorDerivative(A), Bd = this._factorDerivative(B);
|
|
81
|
+
P.add(new PolynomExpFactor({
|
|
82
|
+
polynom: A.polynom.derivative(letter),
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
return;
|
|
86
|
+
};
|
|
87
|
+
_factorDerivative = (factor, letter) => {
|
|
88
|
+
let derivativeExpression = new PolynomExpFactor();
|
|
89
|
+
derivativeExpression.addFactor({ polynom: new algebra_1.Polynom(factor.degree), degree: new coefficients_1.Fraction().one() });
|
|
90
|
+
derivativeExpression.addFactor({ polynom: factor.polynom, degree: factor.degree.subtract(1) });
|
|
91
|
+
derivativeExpression.addFactor({
|
|
92
|
+
polynom: factor.polynom.clone().derivative(letter),
|
|
93
|
+
degree: new coefficients_1.Fraction().one()
|
|
94
|
+
});
|
|
95
|
+
return derivativeExpression;
|
|
96
|
+
};
|
|
97
|
+
_factorAsTex = (factor, withParenthesis) => {
|
|
98
|
+
let tex = '';
|
|
99
|
+
if (factor.degree.isOne()) {
|
|
100
|
+
if (withParenthesis === undefined || withParenthesis) {
|
|
101
|
+
tex = `\\left(${factor.polynom.tex}\\right)`;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
tex = factor.polynom.tex;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else if (factor.degree.isNatural()) {
|
|
108
|
+
tex = `\\left(${factor.polynom.tex}\\right)^{ ${factor.degree.tex} }`;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
if (this._powerAsInteger) {
|
|
112
|
+
if (factor.degree.denominator === 2) {
|
|
113
|
+
tex = `\\sqrt{${factor.polynom.tex}}`;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
tex = `\\sqrt[${factor.degree.denominator}]{${factor.polynom.tex}}`;
|
|
117
|
+
}
|
|
118
|
+
if (factor.degree.numerator !== 1) {
|
|
119
|
+
tex += `^{ ${factor.degree.numerator} }`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
tex = `\\left(${factor.polynom.tex}\\right)^{ ${factor.degree.tex} }`;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return tex;
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
exports.PolynomExpFactor = PolynomExpFactor;
|
|
130
|
+
class PolynomExp {
|
|
131
|
+
_factors;
|
|
132
|
+
constructor(...values) {
|
|
133
|
+
this._factors = [];
|
|
134
|
+
if (values !== undefined) {
|
|
135
|
+
for (const factor of values) {
|
|
136
|
+
console.log('ADDING', factor.tex);
|
|
137
|
+
this._factors.push({
|
|
138
|
+
factors: factor,
|
|
139
|
+
positive: true
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
this._powerAsInteger = true;
|
|
144
|
+
}
|
|
145
|
+
_powerAsInteger;
|
|
146
|
+
get powerAsInteger() {
|
|
147
|
+
return this._powerAsInteger;
|
|
148
|
+
}
|
|
149
|
+
set powerAsInteger(value) {
|
|
150
|
+
for (const factor of this._factors) {
|
|
151
|
+
factor.factors.powerAsInteger = value;
|
|
152
|
+
}
|
|
153
|
+
this._powerAsInteger = value;
|
|
154
|
+
}
|
|
155
|
+
get tex() {
|
|
156
|
+
let tex = '';
|
|
157
|
+
for (const factor of this._factors) {
|
|
158
|
+
if (factor.factors.tex === '') {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
if (tex !== '' || !factor.positive) {
|
|
162
|
+
tex += factor.positive ? '+' : '-';
|
|
163
|
+
}
|
|
164
|
+
tex += factor.factors.tex;
|
|
165
|
+
}
|
|
166
|
+
return tex;
|
|
167
|
+
}
|
|
168
|
+
add = (value) => {
|
|
169
|
+
value.powerAsInteger = this._powerAsInteger;
|
|
170
|
+
this._factors.push({
|
|
171
|
+
factors: value,
|
|
172
|
+
positive: true
|
|
173
|
+
});
|
|
174
|
+
return this;
|
|
175
|
+
};
|
|
176
|
+
subtract = (value) => {
|
|
177
|
+
value.powerAsInteger = this._powerAsInteger;
|
|
178
|
+
this._factors.push({
|
|
179
|
+
factors: value,
|
|
180
|
+
positive: false
|
|
181
|
+
});
|
|
182
|
+
return this;
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
exports.PolynomExp = PolynomExp;
|
|
186
|
+
//# sourceMappingURL=polynomexp.bkp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polynomexp.bkp.js","sourceRoot":"","sources":["../../../src/maths/expressions/polynomexp.bkp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Polynom, PolynomParsingType } from "../algebra";
|
|
2
|
+
import { Fraction, FractionParsingType } from "../coefficients";
|
|
3
|
+
declare type PolynomExpMathFunctionType = {
|
|
4
|
+
name: string;
|
|
5
|
+
fn: Function;
|
|
6
|
+
tex: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class PolynomExpFactor {
|
|
9
|
+
constructor(polynom: PolynomParsingType, degree?: FractionParsingType, mathFunction?: PolynomExpMathFunctionType);
|
|
10
|
+
private _forceParenthesis;
|
|
11
|
+
get forceParenthesis(): boolean;
|
|
12
|
+
set forceParenthesis(value: boolean);
|
|
13
|
+
private _fn;
|
|
14
|
+
get fn(): PolynomExpMathFunctionType;
|
|
15
|
+
set fn(value: PolynomExpMathFunctionType);
|
|
16
|
+
private _powerAsInteger;
|
|
17
|
+
get powerAsInteger(): boolean;
|
|
18
|
+
set powerAsInteger(value: boolean);
|
|
19
|
+
private _polynom;
|
|
20
|
+
get polynom(): Polynom;
|
|
21
|
+
set polynom(value: Polynom);
|
|
22
|
+
private _degree;
|
|
23
|
+
get degree(): Fraction;
|
|
24
|
+
set degree(value: Fraction);
|
|
25
|
+
get tex(): string;
|
|
26
|
+
get isCoefficient(): boolean;
|
|
27
|
+
get firstCoefficient(): Fraction;
|
|
28
|
+
private get _texDegree();
|
|
29
|
+
setForceParenthesis(value?: boolean): PolynomExpFactor;
|
|
30
|
+
derivative(letter?: string): PolynomExpProduct;
|
|
31
|
+
}
|
|
32
|
+
export declare class PolynomExpProduct {
|
|
33
|
+
constructor(...values: PolynomExpFactor[]);
|
|
34
|
+
private _fn;
|
|
35
|
+
get fn(): PolynomExpMathFunctionType;
|
|
36
|
+
set fn(value: PolynomExpMathFunctionType);
|
|
37
|
+
private _factors;
|
|
38
|
+
get factors(): PolynomExpFactor[];
|
|
39
|
+
set factors(value: PolynomExpFactor[]);
|
|
40
|
+
private _positive;
|
|
41
|
+
get positive(): boolean;
|
|
42
|
+
set positive(value: boolean);
|
|
43
|
+
private _asPositiveDegree;
|
|
44
|
+
get asPositiveDegree(): boolean;
|
|
45
|
+
set asPositiveDegree(value: boolean);
|
|
46
|
+
get tex(): string;
|
|
47
|
+
reduce(): PolynomExpProduct;
|
|
48
|
+
integrate(letter?: string): PolynomExpProduct;
|
|
49
|
+
applyMathFunction(mathFn: PolynomExpMathFunctionType): PolynomExpProduct;
|
|
50
|
+
private _integrateWithInternalDerivative;
|
|
51
|
+
}
|
|
52
|
+
export {};
|