pimath 0.0.33 → 0.0.36
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/pi.js +6468 -1
- package/dist/pi.js.map +1 -1
- package/dist/pi.min.js +2 -0
- package/dist/pi.min.js.map +1 -0
- 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 +37 -37
- package/docs/classes/algebra.Polynom.html +10 -10
- package/docs/classes/algebra.PolynomExpFactor.html +1 -1
- package/docs/classes/algebra.PolynomExpProduct.html +1 -1
- 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 +5 -5
- package/docs/classes/geometry.Vector.html +1 -1
- package/docs/classes/numeric.Numeric.html +5 -5
- package/docs/classes/shutingyard.Shutingyard.html +4 -4
- package/docs/enums/geometry.LinePropriety.html +1 -0
- package/docs/enums/shutingyard.ShutingyardMode.html +1 -1
- package/docs/enums/shutingyard.ShutingyardType.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/random.Random.html +1 -1
- package/docs/modules/random.html +1 -1
- package/docs/modules/shutingyard.html +1 -1
- package/esm/main.d.ts +41 -1
- package/esm/main.js +34 -20
- package/esm/main.js.map +1 -1
- package/esm/maths/algebra/equation.d.ts +63 -18
- package/esm/maths/algebra/equation.js +599 -503
- package/esm/maths/algebra/equation.js.map +1 -1
- package/esm/maths/algebra/linearSystem.d.ts +1 -1
- package/esm/maths/algebra/linearSystem.js +157 -104
- package/esm/maths/algebra/linearSystem.js.map +1 -1
- package/esm/maths/algebra/logicalset.d.ts +11 -0
- package/esm/maths/algebra/logicalset.js +18 -6
- package/esm/maths/algebra/logicalset.js.map +1 -1
- package/esm/maths/algebra/monom.d.ts +142 -1
- package/esm/maths/algebra/monom.js +633 -405
- package/esm/maths/algebra/monom.js.map +1 -1
- package/esm/maths/algebra/polynom.d.ts +52 -3
- package/esm/maths/algebra/polynom.js +1003 -720
- package/esm/maths/algebra/polynom.js.map +1 -1
- package/esm/maths/algebra/rational.d.ts +13 -1
- package/esm/maths/algebra/rational.js +98 -83
- package/esm/maths/algebra/rational.js.map +1 -1
- package/esm/maths/coefficients/fraction.d.ts +18 -0
- package/esm/maths/coefficients/fraction.js +390 -332
- package/esm/maths/coefficients/fraction.js.map +1 -1
- package/esm/maths/coefficients/nthroot.d.ts +3 -0
- package/esm/maths/coefficients/nthroot.js +48 -33
- package/esm/maths/coefficients/nthroot.js.map +1 -1
- package/esm/maths/expressions/numexp.js +13 -5
- package/esm/maths/expressions/numexp.js.map +1 -1
- package/esm/maths/expressions/polynomexp.bkp.d.ts +2 -2
- package/esm/maths/expressions/polynomexp.bkp.js +95 -95
- package/esm/maths/expressions/polynomexp.bkp.js.map +1 -1
- package/esm/maths/expressions/polynomexp.d.ts +2 -2
- package/esm/maths/expressions/polynomexp.js +27 -14
- package/esm/maths/expressions/polynomexp.js.map +1 -1
- package/esm/maths/geometry/circle.d.ts +20 -8
- package/esm/maths/geometry/circle.js +148 -50
- package/esm/maths/geometry/circle.js.map +1 -1
- package/esm/maths/geometry/line.d.ts +11 -4
- package/esm/maths/geometry/line.js +251 -193
- package/esm/maths/geometry/line.js.map +1 -1
- package/esm/maths/geometry/point.d.ts +13 -1
- package/esm/maths/geometry/point.js +124 -76
- package/esm/maths/geometry/point.js.map +1 -1
- package/esm/maths/geometry/triangle.d.ts +23 -1
- package/esm/maths/geometry/triangle.js +197 -158
- package/esm/maths/geometry/triangle.js.map +1 -1
- package/esm/maths/geometry/vector.d.ts +5 -1
- package/esm/maths/geometry/vector.js +139 -115
- package/esm/maths/geometry/vector.js.map +1 -1
- package/esm/maths/numeric.d.ts +17 -0
- package/esm/maths/numeric.js +40 -0
- package/esm/maths/numeric.js.map +1 -1
- package/esm/maths/{random/index.d.ts → randomization/random.d.ts} +3 -2
- package/esm/maths/{random/index.js → randomization/random.js} +6 -2
- package/esm/maths/randomization/random.js.map +1 -0
- package/esm/maths/{random → randomization}/randomCore.d.ts +0 -0
- package/esm/maths/randomization/randomCore.js +22 -0
- package/esm/maths/randomization/randomCore.js.map +1 -0
- package/esm/maths/{random → randomization}/rndFraction.d.ts +4 -1
- package/esm/maths/randomization/rndFraction.js +40 -0
- package/esm/maths/randomization/rndFraction.js.map +1 -0
- package/esm/maths/randomization/rndHelpers.d.ts +25 -0
- package/esm/maths/{random → randomization}/rndHelpers.js +20 -0
- package/esm/maths/randomization/rndHelpers.js.map +1 -0
- package/esm/maths/{random → randomization}/rndMonom.d.ts +4 -1
- package/esm/maths/randomization/rndMonom.js +53 -0
- package/esm/maths/randomization/rndMonom.js.map +1 -0
- package/esm/maths/{random → randomization}/rndPolynom.d.ts +4 -1
- package/esm/maths/randomization/rndPolynom.js +75 -0
- package/esm/maths/randomization/rndPolynom.js.map +1 -0
- package/esm/maths/{random → randomization}/rndTypes.d.ts +0 -0
- package/esm/maths/{random → randomization}/rndTypes.js +0 -0
- package/esm/maths/randomization/rndTypes.js.map +1 -0
- package/esm/maths/shutingyard.d.ts +21 -0
- package/esm/maths/shutingyard.js +86 -9
- package/esm/maths/shutingyard.js.map +1 -1
- package/package.json +2 -2
- package/public/index.html +47 -0
- package/src/main.ts +17 -15
- package/src/maths/algebra/equation.ts +144 -129
- package/src/maths/algebra/linearSystem.ts +2 -2
- package/src/maths/algebra/monom.ts +1 -1
- package/src/maths/algebra/polynom.ts +136 -136
- package/src/maths/algebra/rational.ts +1 -1
- package/src/maths/expressions/numexp.ts +1 -1
- package/src/maths/expressions/polynomexp.bkp.ts +2 -2
- package/src/maths/expressions/polynomexp.ts +2 -2
- package/src/maths/geometry/circle.ts +172 -77
- package/src/maths/geometry/line.ts +4 -3
- package/src/maths/geometry/point.ts +26 -3
- package/src/maths/geometry/triangle.ts +1 -1
- package/src/maths/geometry/vector.ts +1 -1
- package/src/maths/numeric.ts +15 -0
- package/src/maths/{random/index.ts → randomization/random.ts} +3 -2
- package/src/maths/{random → randomization}/randomCore.ts +0 -0
- package/src/maths/{random → randomization}/rndFraction.ts +2 -2
- package/src/maths/{random → randomization}/rndHelpers.ts +0 -0
- package/src/maths/{random → randomization}/rndMonom.ts +2 -2
- package/src/maths/{random → randomization}/rndPolynom.ts +3 -3
- package/src/maths/{random → randomization}/rndTypes.ts +0 -0
- package/tests/algebra/monom.test.ts +1 -1
- package/tests/algebra/polynom.test.ts +8 -9
- package/tests/geometry/circle.test.ts +33 -0
- package/tsconfig.json +2 -2
- package/webpack-production-min.config.js +26 -0
- package/webpack-production.config.js +1 -1
- package/dev/pi.js +0 -5392
- package/dev/pi.js.map +0 -1
- package/esm/maths/algebra/index.d.ts +0 -7
- package/esm/maths/algebra/index.js +0 -20
- package/esm/maths/algebra/index.js.map +0 -1
- package/esm/maths/coefficients/index.d.ts +0 -2
- package/esm/maths/coefficients/index.js +0 -15
- package/esm/maths/coefficients/index.js.map +0 -1
- package/esm/maths/geometry/index.d.ts +0 -5
- package/esm/maths/geometry/index.js +0 -18
- package/esm/maths/geometry/index.js.map +0 -1
- package/esm/maths/random/index.js.map +0 -1
- package/esm/maths/random/randomCore.js +0 -22
- package/esm/maths/random/randomCore.js.map +0 -1
- package/esm/maths/random/rndFraction.js +0 -37
- package/esm/maths/random/rndFraction.js.map +0 -1
- package/esm/maths/random/rndHelpers.d.ts +0 -8
- package/esm/maths/random/rndHelpers.js.map +0 -1
- package/esm/maths/random/rndMonom.js +0 -46
- package/esm/maths/random/rndMonom.js.map +0 -1
- package/esm/maths/random/rndPolynom.js +0 -63
- package/esm/maths/random/rndPolynom.js.map +0 -1
- package/esm/maths/random/rndTypes.js.map +0 -1
- package/src/maths/algebra/index.ts +0 -7
- package/src/maths/coefficients/index.ts +0 -2
- package/src/maths/geometry/index.ts +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutingyard.js","sourceRoot":"","sources":["../../src/maths/shutingyard.ts"],"names":[],"mappings":";;;AAWa,QAAA,aAAa,GAAyB;IAC/C,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CACjB,CAAA;AAED,IAAY,eAOX;AAPD,WAAY,eAAe;IACvB,wCAAmB,CAAA;IACnB,8CAAyB,CAAA;IACzB,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IACrB,wCAAqB,CAAA;IACrB,kCAAe,CAAA;AACnB,CAAC,EAPW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAO1B;AAED,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,sCAAkB,CAAA;IAClB,8BAAW,CAAA;IACX,sCAAmB,CAAA;AACvB,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AAID,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"shutingyard.js","sourceRoot":"","sources":["../../src/maths/shutingyard.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pimath",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.36",
|
|
4
4
|
"description": "A math library for teacher :)",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "mocha -r ts-node/register 'tests/**/*.test.ts'",
|
|
7
7
|
"dev": "webpack --watch --config webpack.config.js",
|
|
8
|
-
"production": "webpack --config webpack-production.config.js && tsc --build",
|
|
8
|
+
"production": "webpack --config webpack-production.config.js && webpack --config webpack-production-min.config.js && tsc --build",
|
|
9
9
|
"docs": "typedoc"
|
|
10
10
|
},
|
|
11
11
|
"keywords": [
|
package/public/index.html
CHANGED
|
@@ -38,7 +38,54 @@
|
|
|
38
38
|
<div x-html="d"></div>
|
|
39
39
|
<div x-html="i"></div>
|
|
40
40
|
</div>
|
|
41
|
+
|
|
42
|
+
<div x-data="triplets">
|
|
43
|
+
<template x-for="(item, index) of tripletsPytha" :key="index">
|
|
44
|
+
<div x-text="item.join(',')"></div>
|
|
45
|
+
</template>
|
|
46
|
+
</div>
|
|
41
47
|
<script>
|
|
48
|
+
function triplets() {
|
|
49
|
+
let triplets = []
|
|
50
|
+
let n = 9, v
|
|
51
|
+
|
|
52
|
+
for(let u = 2; u<=n; u++){
|
|
53
|
+
v = ( u%2===0 )?1:2
|
|
54
|
+
while(v < u){
|
|
55
|
+
if(Pi.Numeric.gcd(u, v)===1){
|
|
56
|
+
triplets.push([
|
|
57
|
+
u, v,
|
|
58
|
+
u**2-v**2,
|
|
59
|
+
2*u*v,
|
|
60
|
+
u**2+v**2
|
|
61
|
+
])
|
|
62
|
+
}
|
|
63
|
+
v = v + 2
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
let target = 13
|
|
68
|
+
// Filtrer les triplets pour n'avoir que les valeurs 15.
|
|
69
|
+
triplets = triplets.filter(x=>x[x.length-1]===target)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
// méthode inverse, à partir du triplet.
|
|
74
|
+
triplets = []
|
|
75
|
+
for(let u = 0; u <= target; u++){
|
|
76
|
+
for(let v = 0; v <=target; v++){
|
|
77
|
+
if(u**2+v**2===target**2){
|
|
78
|
+
triplets.push([u, v, target])
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return {
|
|
84
|
+
tripletsPytha: triplets
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
42
89
|
// Should be
|
|
43
90
|
function examplePolynomExpSimple () {
|
|
44
91
|
const F1 = new Pi.PolynomExpFactor('x^2-4x+7', -1),
|
package/src/main.ts
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import {Numeric} from "./maths/numeric";
|
|
2
2
|
import {NumExp} from "./maths/expressions/numexp";
|
|
3
3
|
import {Shutingyard} from "./maths/shutingyard";
|
|
4
|
-
import {Random} from "./maths/random";
|
|
5
|
-
import {Fraction
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
} from "./maths/
|
|
16
|
-
import {
|
|
4
|
+
import {Random} from "./maths/randomization/random";
|
|
5
|
+
import {Fraction} from "./maths/coefficients/fraction";
|
|
6
|
+
import {Nthroot} from "./maths/coefficients/nthroot";
|
|
7
|
+
import {Monom} from "./maths/algebra/monom";
|
|
8
|
+
import {Polynom} from "./maths/algebra/polynom";
|
|
9
|
+
import {Equation} from "./maths/algebra/equation";
|
|
10
|
+
import {LinearSystem} from "./maths/algebra/linearSystem";
|
|
11
|
+
import {Rational} from "./maths/algebra/rational";
|
|
12
|
+
import {Logicalset} from "./maths/algebra/logicalset";
|
|
13
|
+
import {PolynomExpFactor, PolynomExpProduct} from "./maths/expressions/polynomexp";
|
|
14
|
+
import {Vector} from "./maths/geometry/vector";
|
|
15
|
+
import {Line} from "./maths/geometry/line";
|
|
16
|
+
import {Triangle} from "./maths/geometry/triangle";
|
|
17
|
+
import {Circle} from "./maths/geometry/circle";
|
|
18
|
+
import {Point} from "./maths/geometry/point";
|
|
17
19
|
|
|
18
20
|
// Expose as global
|
|
19
|
-
|
|
20
|
-
(<any>window).Pi = {
|
|
21
|
+
export const Pi = {
|
|
21
22
|
ShutingYard: Shutingyard,
|
|
22
23
|
Numeric: Numeric,
|
|
23
24
|
NumExp: NumExp,
|
|
@@ -40,3 +41,4 @@ import {Line, Circle, Triangle, Point, Vector} from "./maths/geometry";
|
|
|
40
41
|
Circle: Circle
|
|
41
42
|
}
|
|
42
43
|
};
|
|
44
|
+
(<any>window).Pi = Pi
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import {Polynom} from "./polynom";
|
|
2
|
-
import {Monom} from "./monom";
|
|
2
|
+
import {literalType, Monom} from "./monom";
|
|
3
3
|
import {Numeric} from "../numeric";
|
|
4
|
-
import {Fraction
|
|
4
|
+
import {Fraction} from "../coefficients/fraction";
|
|
5
|
+
import {Nthroot} from "../coefficients/nthroot";
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Equation is a class to manage equations...
|
|
@@ -13,13 +14,7 @@ interface ISolution {
|
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
export class Equation {
|
|
16
|
-
private _left: Polynom; // Left part of the equation
|
|
17
|
-
private _right: Polynom; // Right part of the equation
|
|
18
|
-
private _sign: string; // Signe of the equation, by default =
|
|
19
|
-
|
|
20
17
|
private _polynom: Polynom; // Used to solve the equation // TODO: remove the private value ?
|
|
21
|
-
private _solutions: ISolution[]
|
|
22
|
-
|
|
23
18
|
// Undetermined texSolutions.
|
|
24
19
|
private _varnothing: string = '\\varnothing';
|
|
25
20
|
private _real: string = '\\mathbb{R}';
|
|
@@ -36,21 +31,21 @@ export class Equation {
|
|
|
36
31
|
this._sign = '=';
|
|
37
32
|
|
|
38
33
|
if (equations.length === 1) {
|
|
39
|
-
if(equations[0] instanceof Equation) {
|
|
34
|
+
if (equations[0] instanceof Equation) {
|
|
40
35
|
return equations[0].clone();
|
|
41
|
-
} else if(typeof equations[0] === 'string') {
|
|
36
|
+
} else if (typeof equations[0] === 'string') {
|
|
42
37
|
this.parse(equations[0]);
|
|
43
38
|
}
|
|
44
39
|
} else if (equations.length === 2) {
|
|
45
|
-
if(equations[0] instanceof Polynom){
|
|
40
|
+
if (equations[0] instanceof Polynom) {
|
|
46
41
|
this.left = equations[0].clone()
|
|
47
|
-
}else if(typeof equations[0] === 'string'){
|
|
42
|
+
} else if (typeof equations[0] === 'string') {
|
|
48
43
|
this.left = new Polynom(equations[0])
|
|
49
44
|
}
|
|
50
45
|
|
|
51
|
-
if(equations[1] instanceof Polynom){
|
|
46
|
+
if (equations[1] instanceof Polynom) {
|
|
52
47
|
this.right = equations[1].clone()
|
|
53
|
-
}else if(typeof equations[1] === 'string'){
|
|
48
|
+
} else if (typeof equations[1] === 'string') {
|
|
54
49
|
this.right = new Polynom(equations[1])
|
|
55
50
|
}
|
|
56
51
|
} else {
|
|
@@ -61,16 +56,51 @@ export class Equation {
|
|
|
61
56
|
return this;
|
|
62
57
|
}
|
|
63
58
|
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
private _left: Polynom; // Left part of the equation
|
|
60
|
+
|
|
61
|
+
get left(): Polynom {
|
|
62
|
+
return this._left;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
set left(value: Polynom) {
|
|
66
|
+
this._left = value;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
private _right: Polynom; // Right part of the equation
|
|
70
|
+
|
|
71
|
+
get right(): Polynom {
|
|
72
|
+
return this._right;
|
|
66
73
|
}
|
|
67
74
|
|
|
68
75
|
// ------------------------------------------
|
|
69
76
|
// Getter and setter
|
|
77
|
+
|
|
78
|
+
set right(value: Polynom) {
|
|
79
|
+
this._right = value;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
private _sign: string; // Signe of the equation, by default =
|
|
83
|
+
|
|
84
|
+
get sign(): string {
|
|
85
|
+
return this._sign;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
set sign(value: string) {
|
|
89
|
+
// Set the sign value as formatted.
|
|
90
|
+
this._sign = this._formatSign(value);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
private _solutions: ISolution[]
|
|
94
|
+
|
|
70
95
|
// ------------------------------------------
|
|
71
96
|
get solutions(): ISolution[] {
|
|
72
97
|
return this._solutions
|
|
73
98
|
}
|
|
99
|
+
|
|
100
|
+
get isEquation() {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
|
|
74
104
|
get solution(): string {
|
|
75
105
|
if (this._solutions.length === 1
|
|
76
106
|
&&
|
|
@@ -117,7 +147,6 @@ export class Equation {
|
|
|
117
147
|
return `${this._left.display}${this.signAsTex}${this._right.display}`;
|
|
118
148
|
}
|
|
119
149
|
|
|
120
|
-
|
|
121
150
|
get raw(): string {
|
|
122
151
|
return `${this._left.raw}${this.signAsTex}${this._right.raw}`;
|
|
123
152
|
}
|
|
@@ -130,34 +159,23 @@ export class Equation {
|
|
|
130
159
|
return this.variables.length;
|
|
131
160
|
}
|
|
132
161
|
|
|
133
|
-
get left(): Polynom {
|
|
134
|
-
return this._left;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
set left(value: Polynom) {
|
|
138
|
-
this._left = value;
|
|
139
|
-
}
|
|
140
162
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
163
|
+
// ------------------------------------------
|
|
164
|
+
// Creation / parsing functions
|
|
144
165
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
166
|
+
// -----------------------------------------------
|
|
167
|
+
private _randomizeDefaults: { [key: string]: number | string | boolean } = {
|
|
168
|
+
degree: 2
|
|
169
|
+
};
|
|
148
170
|
|
|
149
|
-
get
|
|
150
|
-
return this.
|
|
171
|
+
get randomizeDefaults(): { [key: string]: number | string | boolean } {
|
|
172
|
+
return this._randomizeDefaults;
|
|
151
173
|
}
|
|
152
174
|
|
|
153
|
-
set
|
|
154
|
-
|
|
155
|
-
this._sign = this._formatSign(value);
|
|
175
|
+
set randomizeDefaults(value) {
|
|
176
|
+
this._randomizeDefaults = value;
|
|
156
177
|
}
|
|
157
178
|
|
|
158
|
-
|
|
159
|
-
// ------------------------------------------
|
|
160
|
-
// Creation / parsing functions
|
|
161
179
|
// ------------------------------------------
|
|
162
180
|
parse = (equationString: string): Equation => {
|
|
163
181
|
let pStr: string[], strSign: string | false;
|
|
@@ -175,77 +193,6 @@ export class Equation {
|
|
|
175
193
|
return this.create(new Polynom(pStr[0]), new Polynom(pStr[1]), this._formatSign(strSign));
|
|
176
194
|
};
|
|
177
195
|
|
|
178
|
-
private _findSign = (equationString: string): string | false => {
|
|
179
|
-
let strSign: string = '';
|
|
180
|
-
|
|
181
|
-
if (equationString.includes('geq')) {
|
|
182
|
-
return (equationString.includes('\\geq')) ? '\\geq' : 'geq';
|
|
183
|
-
} else if (equationString.includes('leq')) {
|
|
184
|
-
return (equationString.includes('\\leq')) ? '\\leq' : 'leq';
|
|
185
|
-
} else if (equationString.includes('>=')) {
|
|
186
|
-
return '>=';
|
|
187
|
-
} else if (equationString.includes('=>')) {
|
|
188
|
-
return '=>';
|
|
189
|
-
} else if (equationString.includes('>')) {
|
|
190
|
-
return '>';
|
|
191
|
-
} else if (equationString.includes('<=')) {
|
|
192
|
-
return '<=';
|
|
193
|
-
} else if (equationString.includes('=<')) {
|
|
194
|
-
return '=<';
|
|
195
|
-
} else if (equationString.includes('<')) {
|
|
196
|
-
return '<';
|
|
197
|
-
} else if (equationString.includes('=')) {
|
|
198
|
-
return '='
|
|
199
|
-
}
|
|
200
|
-
if (strSign === '') {
|
|
201
|
-
console.log('Equation: parse string : sign not found');
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
private _formatSign = (signStr: string): string => {
|
|
207
|
-
if (signStr === undefined) {
|
|
208
|
-
return '=';
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
if (signStr.includes('geq')) {
|
|
212
|
-
return '>=';
|
|
213
|
-
} else if (signStr.includes('>=')) {
|
|
214
|
-
return '>=';
|
|
215
|
-
} else if (signStr.includes('=>')) {
|
|
216
|
-
return '>=';
|
|
217
|
-
} else if (signStr.includes('>')) {
|
|
218
|
-
return '>';
|
|
219
|
-
} else if (signStr.includes('leq')) {
|
|
220
|
-
return '<=';
|
|
221
|
-
} else if (signStr.includes('<=')) {
|
|
222
|
-
return '<=';
|
|
223
|
-
} else if (signStr.includes('=<')) {
|
|
224
|
-
return '<=';
|
|
225
|
-
} else if (signStr.includes('<')) {
|
|
226
|
-
return '<';
|
|
227
|
-
} else {
|
|
228
|
-
return '='
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
private _reverseSign = (): Equation => {
|
|
233
|
-
if (this._sign === '=') {
|
|
234
|
-
return this;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
if (this._sign.includes('<')) {
|
|
238
|
-
this._sign.replace('<', '>');
|
|
239
|
-
return this;
|
|
240
|
-
}
|
|
241
|
-
if (this._sign.includes('>')) {
|
|
242
|
-
this._sign.replace('>', '<');
|
|
243
|
-
return this;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
return this;
|
|
247
|
-
};
|
|
248
|
-
|
|
249
196
|
create = (left: Polynom, right: Polynom, sign?: string): Equation => {
|
|
250
197
|
this._left = left;
|
|
251
198
|
this._right = right;
|
|
@@ -259,26 +206,12 @@ export class Equation {
|
|
|
259
206
|
|
|
260
207
|
// -----------------------------------------------
|
|
261
208
|
// Equations generators and randomizers
|
|
262
|
-
// -----------------------------------------------
|
|
263
|
-
private _randomizeDefaults: { [key: string]: number | string | boolean } = {
|
|
264
|
-
degree: 2
|
|
265
|
-
};
|
|
266
|
-
get randomizeDefaults(): { [key: string]: number | string | boolean } {
|
|
267
|
-
return this._randomizeDefaults;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
set randomizeDefaults(value) {
|
|
271
|
-
this._randomizeDefaults = value;
|
|
272
|
-
}
|
|
273
209
|
|
|
274
210
|
randomize = (opts?: {}, sign?: string): Equation => {
|
|
275
211
|
// TODO: Generate equations randomly, using config.
|
|
276
212
|
return new Equation().create(new Polynom(), new Polynom(), sign);
|
|
277
213
|
};
|
|
278
214
|
|
|
279
|
-
|
|
280
|
-
// -----------------------------------------------
|
|
281
|
-
// Equations operations
|
|
282
215
|
// -----------------------------------------------
|
|
283
216
|
/**
|
|
284
217
|
* Reorder will move all monoms containing a letter on the left, all the other on the right.
|
|
@@ -288,6 +221,7 @@ export class Equation {
|
|
|
288
221
|
this._right.zero()
|
|
289
222
|
return this;
|
|
290
223
|
}
|
|
224
|
+
|
|
291
225
|
reorder = (allLeft?: boolean): Equation => {
|
|
292
226
|
// Move all monoms of degree greater than 0 to the left.
|
|
293
227
|
// and all zero degree monoms to the right.
|
|
@@ -321,6 +255,10 @@ export class Equation {
|
|
|
321
255
|
return this;
|
|
322
256
|
}
|
|
323
257
|
|
|
258
|
+
|
|
259
|
+
// -----------------------------------------------
|
|
260
|
+
// Equations operations
|
|
261
|
+
|
|
324
262
|
/**
|
|
325
263
|
* Reorder the polynom to have only one letter on the left, the rest on the right.
|
|
326
264
|
* @param letter
|
|
@@ -415,10 +353,6 @@ export class Equation {
|
|
|
415
353
|
}
|
|
416
354
|
}
|
|
417
355
|
|
|
418
|
-
// -----------------------------------------------
|
|
419
|
-
// Equations helpers
|
|
420
|
-
// -----------------------------------------------
|
|
421
|
-
|
|
422
356
|
/**
|
|
423
357
|
* Get the degree of the equation
|
|
424
358
|
* @param letter
|
|
@@ -440,7 +374,9 @@ export class Equation {
|
|
|
440
374
|
}
|
|
441
375
|
|
|
442
376
|
// -----------------------------------------------
|
|
443
|
-
// Equations
|
|
377
|
+
// Equations helpers
|
|
378
|
+
// -----------------------------------------------
|
|
379
|
+
|
|
444
380
|
// -----------------------------------------------
|
|
445
381
|
solve = (): Equation => {
|
|
446
382
|
// Initialise the variables:
|
|
@@ -464,6 +400,84 @@ export class Equation {
|
|
|
464
400
|
return this;
|
|
465
401
|
};
|
|
466
402
|
|
|
403
|
+
test = (values: literalType): Boolean => {
|
|
404
|
+
return this.left.evaluate(values).isEqual(this.right.evaluate(values))
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
private _findSign = (equationString: string): string | false => {
|
|
408
|
+
let strSign: string = '';
|
|
409
|
+
|
|
410
|
+
if (equationString.includes('geq')) {
|
|
411
|
+
return (equationString.includes('\\geq')) ? '\\geq' : 'geq';
|
|
412
|
+
} else if (equationString.includes('leq')) {
|
|
413
|
+
return (equationString.includes('\\leq')) ? '\\leq' : 'leq';
|
|
414
|
+
} else if (equationString.includes('>=')) {
|
|
415
|
+
return '>=';
|
|
416
|
+
} else if (equationString.includes('=>')) {
|
|
417
|
+
return '=>';
|
|
418
|
+
} else if (equationString.includes('>')) {
|
|
419
|
+
return '>';
|
|
420
|
+
} else if (equationString.includes('<=')) {
|
|
421
|
+
return '<=';
|
|
422
|
+
} else if (equationString.includes('=<')) {
|
|
423
|
+
return '=<';
|
|
424
|
+
} else if (equationString.includes('<')) {
|
|
425
|
+
return '<';
|
|
426
|
+
} else if (equationString.includes('=')) {
|
|
427
|
+
return '='
|
|
428
|
+
}
|
|
429
|
+
if (strSign === '') {
|
|
430
|
+
console.log('Equation: parse string : sign not found');
|
|
431
|
+
return false;
|
|
432
|
+
}
|
|
433
|
+
};
|
|
434
|
+
|
|
435
|
+
// -----------------------------------------------
|
|
436
|
+
// Equations solving algorithms
|
|
437
|
+
|
|
438
|
+
private _formatSign = (signStr: string): string => {
|
|
439
|
+
if (signStr === undefined) {
|
|
440
|
+
return '=';
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
if (signStr.includes('geq')) {
|
|
444
|
+
return '>=';
|
|
445
|
+
} else if (signStr.includes('>=')) {
|
|
446
|
+
return '>=';
|
|
447
|
+
} else if (signStr.includes('=>')) {
|
|
448
|
+
return '>=';
|
|
449
|
+
} else if (signStr.includes('>')) {
|
|
450
|
+
return '>';
|
|
451
|
+
} else if (signStr.includes('leq')) {
|
|
452
|
+
return '<=';
|
|
453
|
+
} else if (signStr.includes('<=')) {
|
|
454
|
+
return '<=';
|
|
455
|
+
} else if (signStr.includes('=<')) {
|
|
456
|
+
return '<=';
|
|
457
|
+
} else if (signStr.includes('<')) {
|
|
458
|
+
return '<';
|
|
459
|
+
} else {
|
|
460
|
+
return '='
|
|
461
|
+
}
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
private _reverseSign = (): Equation => {
|
|
465
|
+
if (this._sign === '=') {
|
|
466
|
+
return this;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
if (this._sign.includes('<')) {
|
|
470
|
+
this._sign.replace('<', '>');
|
|
471
|
+
return this;
|
|
472
|
+
}
|
|
473
|
+
if (this._sign.includes('>')) {
|
|
474
|
+
this._sign.replace('>', '<');
|
|
475
|
+
return this;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
return this;
|
|
479
|
+
};
|
|
480
|
+
|
|
467
481
|
private isGreater = (): boolean => {
|
|
468
482
|
if (this._sign.indexOf('>') !== -1) {
|
|
469
483
|
return true;
|
|
@@ -471,9 +485,11 @@ export class Equation {
|
|
|
471
485
|
return this._sign.indexOf('geq') !== -1;
|
|
472
486
|
|
|
473
487
|
};
|
|
488
|
+
|
|
474
489
|
private isStrictEqual = (): boolean => {
|
|
475
490
|
return this._sign === '=';
|
|
476
491
|
};
|
|
492
|
+
|
|
477
493
|
private isAlsoEqual = (): boolean => {
|
|
478
494
|
if (this._sign.indexOf('=') !== -1) {
|
|
479
495
|
return true;
|
|
@@ -752,5 +768,4 @@ export class Equation {
|
|
|
752
768
|
this._solutions = [{tex: 'solve x - not yet handled', value: NaN, exact: false}]; // ESLint remove system :(
|
|
753
769
|
return this._solutions;
|
|
754
770
|
};
|
|
755
|
-
|
|
756
771
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {Fraction} from "../coefficients";
|
|
2
1
|
import {Equation} from "./equation";
|
|
3
2
|
import {Polynom} from "./polynom";
|
|
4
3
|
import {Monom} from "./monom";
|
|
5
|
-
import {Random} from "../random";
|
|
4
|
+
import {Random} from "../randomization/random";
|
|
5
|
+
import {Fraction} from "../coefficients/fraction";
|
|
6
6
|
|
|
7
7
|
// TODO: Must check and rework
|
|
8
8
|
export class LinearSystem {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/***
|
|
2
2
|
* Monom class
|
|
3
3
|
*/
|
|
4
|
-
import {Fraction} from "../coefficients";
|
|
5
4
|
import {Numeric} from "../numeric";
|
|
6
5
|
import {Shutingyard, ShutingyardType, Token, tokenType} from "../shutingyard";
|
|
7
6
|
import {log} from "util";
|
|
7
|
+
import {Fraction} from "../coefficients/fraction";
|
|
8
8
|
|
|
9
9
|
export type literalType = {
|
|
10
10
|
[Key: string]: Fraction
|