pimath 0.0.124 → 0.0.126
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/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]/shelved.patch +192 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]1/shelved.patch +0 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30__Default_Changelist_.xml +4 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43_[Default_Changelist]/shelved.patch +2404 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43__Default_Changelist_.xml +4 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01_[Default_Changelist]/shelved.patch +1362 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01__Default_Changelist_.xml +4 -0
- package/dev/pimath.js +7940 -7930
- package/dev/pimath.js.map +1 -1
- package/dist/pimath.js +219 -227
- package/dist/pimath.js.map +1 -1
- package/dist/pimath.min.js +1 -1
- package/dist/pimath.min.js.map +1 -1
- package/docs/assets/main.js +59 -58
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -1
- package/docs/assets/style.css +1383 -1367
- package/docs/classes/Logicalset.Logicalset.html +217 -221
- package/docs/classes/Polynom.Rational.html +397 -391
- package/docs/classes/Vector-1.Vector.html +490 -494
- package/docs/classes/Vector.Point.html +337 -341
- package/docs/classes/algebra_equation.Equation.html +790 -796
- package/docs/classes/algebra_linearSystem.LinearSystem.html +404 -408
- package/docs/classes/algebra_monom.Monom.html +962 -967
- package/docs/classes/algebra_polynom.Polynom.html +1275 -1281
- package/docs/classes/coefficients_fraction.Fraction.html +934 -939
- package/docs/classes/geometry_circle.Circle.html +472 -476
- package/docs/classes/geometry_line.Line.html +774 -779
- package/docs/classes/geometry_triangle.Triangle.html +429 -429
- package/docs/classes/numeric.Numeric.html +265 -269
- package/docs/classes/shutingyard.Shutingyard.html +250 -259
- package/docs/enums/algebra_equation.PARTICULAR_SOLUTION.html +83 -89
- package/docs/enums/geometry_line.LinePropriety.html +97 -102
- package/docs/enums/shutingyard.ShutingyardMode.html +97 -106
- package/docs/enums/shutingyard.ShutingyardType.html +111 -120
- package/docs/index.html +63 -63
- package/docs/interfaces/algebra_equation.ISolution.html +105 -111
- package/docs/interfaces/algebra_polynom.IEuclidian.html +87 -93
- package/docs/interfaces/geometry_triangle.remarquableLines.html +163 -150
- package/docs/modules/Logicalset.html +65 -69
- package/docs/modules/Polynom.html +65 -69
- package/docs/modules/Vector-1.html +65 -69
- package/docs/modules/Vector.html +65 -69
- package/docs/modules/algebra_equation.html +69 -75
- package/docs/modules/algebra_linearSystem.html +61 -65
- package/docs/modules/algebra_monom.html +65 -70
- package/docs/modules/algebra_polynom.html +69 -75
- package/docs/modules/coefficients_fraction.html +65 -70
- package/docs/modules/geometry_circle.html +61 -65
- package/docs/modules/geometry_line.html +65 -70
- package/docs/modules/geometry_triangle.html +65 -70
- package/docs/modules/numeric.html +61 -65
- package/docs/modules/shutingyard.html +75 -84
- package/docs/types/algebra_monom.literalType.html +61 -66
- package/docs/types/algebra_polynom.PolynomParsingType.html +56 -62
- package/docs/types/coefficients_fraction.FractionParsingType.html +56 -61
- package/docs/types/shutingyard.Token.html +63 -72
- package/docs/types/shutingyard.tokenType.html +68 -77
- package/docs/variables/shutingyard.tokenConstant.html +61 -70
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/maths/algebra/monom.d.ts +19 -19
- package/esm/maths/algebra/monom.js +66 -66
- package/esm/maths/algebra/monom.js.map +1 -1
- package/esm/maths/algebra/polynom.d.ts +14 -14
- package/esm/maths/algebra/polynom.js +72 -50
- package/esm/maths/algebra/polynom.js.map +1 -1
- package/esm/maths/numeric.js +3 -48
- package/esm/maths/numeric.js.map +1 -1
- package/esm/maths/randomization/random.d.ts +1 -1
- package/esm/maths/randomization/random.js +2 -2
- package/esm/maths/randomization/random.js.map +1 -1
- package/esm/maths/randomization/rndHelpers.d.ts +1 -1
- package/esm/maths/randomization/rndHelpers.js +25 -4
- package/esm/maths/randomization/rndHelpers.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/maths/algebra/monom.ts +138 -130
- package/src/maths/algebra/polynom.ts +107 -85
- package/src/maths/numeric.ts +61 -90
- package/src/maths/randomization/random.ts +2 -2
- package/src/maths/randomization/rndHelpers.ts +49 -18
- package/tests/algebra/linear.test.ts +1 -1
- package/tests/algebra/polynom.test.ts +152 -1
- package/tests/algebra/study.test.ts +1 -0
- package/tests/geometry/circle.test.ts +124 -25
- package/tests/geometry/line.test.ts +8 -17
- package/tests/numexp.test.ts +10 -2
- package/esm/maths/expressions/ExpressionTree.d.ts +0 -17
- package/esm/maths/expressions/ExpressionTree.js +0 -150
- package/esm/maths/expressions/ExpressionTree.js.map +0 -1
- package/esm/maths/expressions/expression.d.ts +0 -27
- package/esm/maths/expressions/expression.js +0 -239
- package/esm/maths/expressions/expression.js.map +0 -1
- package/esm/maths/expressions/expressionFactor.d.ts +0 -36
- package/esm/maths/expressions/expressionFactor.js +0 -156
- package/esm/maths/expressions/expressionFactor.js.map +0 -1
- package/esm/maths/expressions/expressionMember.d.ts +0 -27
- package/esm/maths/expressions/expressionMember.js +0 -199
- package/esm/maths/expressions/expressionMember.js.map +0 -1
- package/esm/maths/expressions/expressionOperators.d.ts +0 -8
- package/esm/maths/expressions/expressionOperators.js +0 -42
- package/esm/maths/expressions/expressionOperators.js.map +0 -1
- package/esm/maths/expressions/expressionParser.d.ts +0 -14
- package/esm/maths/expressions/expressionParser.js +0 -259
- package/esm/maths/expressions/expressionParser.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactor.d.ts +0 -7
- package/esm/maths/expressions/factors/ExpFactor.js +0 -34
- package/esm/maths/expressions/factors/ExpFactor.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorConstant.d.ts +0 -14
- package/esm/maths/expressions/factors/ExpFactorConstant.js +0 -52
- package/esm/maths/expressions/factors/ExpFactorConstant.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorExponential.d.ts +0 -8
- package/esm/maths/expressions/factors/ExpFactorExponential.js +0 -22
- package/esm/maths/expressions/factors/ExpFactorExponential.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorNumber.d.ts +0 -14
- package/esm/maths/expressions/factors/ExpFactorNumber.js +0 -59
- package/esm/maths/expressions/factors/ExpFactorNumber.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorPower.d.ts +0 -13
- package/esm/maths/expressions/factors/ExpFactorPower.js +0 -35
- package/esm/maths/expressions/factors/ExpFactorPower.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorTrigo.d.ts +0 -20
- package/esm/maths/expressions/factors/ExpFactorTrigo.js +0 -48
- package/esm/maths/expressions/factors/ExpFactorTrigo.js.map +0 -1
- package/esm/maths/expressions/factors/ExpFactorVariable.d.ts +0 -13
- package/esm/maths/expressions/factors/ExpFactorVariable.js +0 -36
- package/esm/maths/expressions/factors/ExpFactorVariable.js.map +0 -1
- package/esm/maths/expressions/internals.d.ts +0 -12
- package/esm/maths/expressions/internals.js +0 -29
- package/esm/maths/expressions/internals.js.map +0 -1
- package/esm/maths/expressions/numexp.d.ts +0 -19
- package/esm/maths/expressions/numexp.js +0 -186
- package/esm/maths/expressions/numexp.js.map +0 -1
- package/esm/maths/expressions/polynomexp.bkp.d.ts +0 -33
- package/esm/maths/expressions/polynomexp.bkp.js +0 -184
- package/esm/maths/expressions/polynomexp.bkp.js.map +0 -1
- package/esm/maths/expressions/polynomexp.d.ts +0 -52
- package/esm/maths/expressions/polynomexp.js +0 -246
- package/esm/maths/expressions/polynomexp.js.map +0 -1
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExpressionMember = void 0;
|
|
4
|
-
const internals_1 = require("./internals");
|
|
5
|
-
class ExpressionMember {
|
|
6
|
-
constructor(...values) {
|
|
7
|
-
this._factors = values;
|
|
8
|
-
}
|
|
9
|
-
get factors() {
|
|
10
|
-
return this._factors;
|
|
11
|
-
}
|
|
12
|
-
set factors(value) {
|
|
13
|
-
this._factors = value;
|
|
14
|
-
}
|
|
15
|
-
get numerator() {
|
|
16
|
-
return this._factors.filter(factor => factor.power > 0);
|
|
17
|
-
}
|
|
18
|
-
get denominator() {
|
|
19
|
-
return this._factors.filter(factor => factor.power < 0);
|
|
20
|
-
}
|
|
21
|
-
get tex() {
|
|
22
|
-
return this.toString(true);
|
|
23
|
-
}
|
|
24
|
-
get display() {
|
|
25
|
-
return this.toString(false);
|
|
26
|
-
}
|
|
27
|
-
toString(asTex) {
|
|
28
|
-
if (asTex === undefined) {
|
|
29
|
-
asTex = true;
|
|
30
|
-
}
|
|
31
|
-
let outputArray = this.factors.map(x => {
|
|
32
|
-
return {
|
|
33
|
-
value: asTex ? x.tex : x.display,
|
|
34
|
-
valueWithoutParentheses: asTex ? x.makeTeX(1, 0) : x.makeDisplay(1, 0),
|
|
35
|
-
denominator: x.power < 0,
|
|
36
|
-
number: (x instanceof internals_1.ExpFactorNumber)
|
|
37
|
-
};
|
|
38
|
-
}), output = '';
|
|
39
|
-
while (outputArray.length > 0) {
|
|
40
|
-
let item = outputArray.shift();
|
|
41
|
-
if (item.denominator) {
|
|
42
|
-
if (asTex) {
|
|
43
|
-
output += `\\frac{1}{ ${item.valueWithoutParentheses} }`;
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
output += `1/(${item.valueWithoutParentheses})`;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
if (outputArray.length > 0 && outputArray[0].denominator) {
|
|
51
|
-
let item2 = outputArray.shift();
|
|
52
|
-
if (asTex) {
|
|
53
|
-
output += `\\frac{ ${item.valueWithoutParentheses} }{ ${item2.valueWithoutParentheses} }`;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
output += `(${item.valueWithoutParentheses})/(${item2.valueWithoutParentheses})`;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
output += item.value;
|
|
61
|
-
// Check if we need to add the multiplication sign.
|
|
62
|
-
if (outputArray.length > 0) {
|
|
63
|
-
if (item.number && outputArray[0].number) {
|
|
64
|
-
if (outputArray.length > 1) {
|
|
65
|
-
if (!outputArray[1].denominator) {
|
|
66
|
-
output += asTex ? " \\cdot " : "*";
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
output += asTex ? " \\cdot " : "*";
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return output;
|
|
78
|
-
}
|
|
79
|
-
// opposed(): ExpressionMember {
|
|
80
|
-
// let firstMember = this.factors[0]
|
|
81
|
-
//
|
|
82
|
-
// if (firstMember === undefined) {
|
|
83
|
-
// return this
|
|
84
|
-
// }
|
|
85
|
-
//
|
|
86
|
-
// if (firstMember instanceof ExpFactorNumber) {
|
|
87
|
-
// if (firstMember.hasPower() || firstMember.hasRoot()) {
|
|
88
|
-
// this.factors.unshift(new ExpFactorNumber(-1))
|
|
89
|
-
// } else {
|
|
90
|
-
// firstMember.number = -firstMember.number
|
|
91
|
-
// }
|
|
92
|
-
// } else {
|
|
93
|
-
// this.factors.unshift(new ExpFactorNumber(-1))
|
|
94
|
-
// }
|
|
95
|
-
//
|
|
96
|
-
// return this
|
|
97
|
-
// }
|
|
98
|
-
add(value) {
|
|
99
|
-
this._factors.push(value);
|
|
100
|
-
return this;
|
|
101
|
-
}
|
|
102
|
-
addFactors(...values) {
|
|
103
|
-
for (let value of values) {
|
|
104
|
-
this._factors.push(value);
|
|
105
|
-
}
|
|
106
|
-
return this;
|
|
107
|
-
}
|
|
108
|
-
isZero() {
|
|
109
|
-
if (this._factors.length === 0) {
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
for (let factor of this._factors) {
|
|
113
|
-
if (factor.isZero()) {
|
|
114
|
-
return true;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
hasVariable(variable) {
|
|
120
|
-
if (variable === undefined) {
|
|
121
|
-
return !this.isNumeric();
|
|
122
|
-
}
|
|
123
|
-
for (let factor of this._factors) {
|
|
124
|
-
if (factor.hasVariable(variable)) {
|
|
125
|
-
return true;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return false;
|
|
129
|
-
}
|
|
130
|
-
isNumeric() {
|
|
131
|
-
for (let factor of this._factors) {
|
|
132
|
-
if (factor instanceof internals_1.ExpFactorVariable) {
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return true;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Returns the "coefficient", ie a member with only numeric values factors.
|
|
140
|
-
*/
|
|
141
|
-
coefficient() {
|
|
142
|
-
let EM = new ExpressionMember();
|
|
143
|
-
for (let factor of this.factors) {
|
|
144
|
-
if (factor.isNumeric()) {
|
|
145
|
-
EM.add(factor);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return EM;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Returns a member with all factors containing a literal part.
|
|
152
|
-
*/
|
|
153
|
-
literal() {
|
|
154
|
-
let EM = new ExpressionMember();
|
|
155
|
-
for (let factor of this.factors) {
|
|
156
|
-
if (!factor.isNumeric()) {
|
|
157
|
-
EM.add(factor);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
return EM;
|
|
161
|
-
}
|
|
162
|
-
similarTo(member) {
|
|
163
|
-
// TODO: identify two "similar" member, ie with the same literal parts.
|
|
164
|
-
return true;
|
|
165
|
-
}
|
|
166
|
-
reduce() {
|
|
167
|
-
// Merge all ExpFactorNumbers that are number
|
|
168
|
-
let numerator = new internals_1.ExpFactorNumber(1), denominator = new internals_1.ExpFactorNumber(1, -1), literal = [];
|
|
169
|
-
for (let factor of this.factors) {
|
|
170
|
-
// Reduce the factor
|
|
171
|
-
factor.reduce();
|
|
172
|
-
if (factor instanceof internals_1.ExpFactorNumber && factor.root === 1) {
|
|
173
|
-
if (factor.power > 0) {
|
|
174
|
-
numerator.number = numerator.number * (factor.number ** factor.power);
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
denominator.number = denominator.number * (factor.number ** (-factor.power));
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
literal.push(factor);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
let EM = new ExpressionMember();
|
|
185
|
-
// There is a numerator
|
|
186
|
-
if (numerator.number !== 1) {
|
|
187
|
-
EM.addFactors(numerator);
|
|
188
|
-
}
|
|
189
|
-
// No denominator.
|
|
190
|
-
if (denominator.number !== 1) {
|
|
191
|
-
EM.addFactors(denominator);
|
|
192
|
-
}
|
|
193
|
-
// Add the other factors
|
|
194
|
-
EM.addFactors(...literal);
|
|
195
|
-
return EM;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
exports.ExpressionMember = ExpressionMember;
|
|
199
|
-
//# sourceMappingURL=expressionMember.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expressionMember.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionMember.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Expression } from "./expression";
|
|
2
|
-
export declare class expressionOperators {
|
|
3
|
-
static reduce(expr: Expression): Expression;
|
|
4
|
-
static add(...values: Expression[]): Expression;
|
|
5
|
-
static subtract(a: Expression, b: Expression): Expression;
|
|
6
|
-
static multiply(...values: Expression[]): Expression;
|
|
7
|
-
static divide(a: Expression, b: Expression): Expression;
|
|
8
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.expressionOperators = void 0;
|
|
4
|
-
const expression_1 = require("./expression");
|
|
5
|
-
const ExpFactor_1 = require("./factors/ExpFactor");
|
|
6
|
-
const expressionMember_1 = require("./expressionMember");
|
|
7
|
-
class expressionOperators {
|
|
8
|
-
static reduce(expr) {
|
|
9
|
-
let output = new expression_1.Expression();
|
|
10
|
-
return null;
|
|
11
|
-
}
|
|
12
|
-
static add(...values) {
|
|
13
|
-
let output = new expression_1.Expression();
|
|
14
|
-
for (let expr of values) {
|
|
15
|
-
output.addMembers(...expr.members);
|
|
16
|
-
}
|
|
17
|
-
return output;
|
|
18
|
-
}
|
|
19
|
-
static subtract(a, b) {
|
|
20
|
-
let output = new expression_1.Expression();
|
|
21
|
-
output.add(a);
|
|
22
|
-
output.subtract(b);
|
|
23
|
-
return output;
|
|
24
|
-
}
|
|
25
|
-
static multiply(...values) {
|
|
26
|
-
let output = new expression_1.Expression(), member = new expressionMember_1.ExpressionMember();
|
|
27
|
-
for (let expr of values) {
|
|
28
|
-
member.add(new ExpFactor_1.ExpFactor(expr));
|
|
29
|
-
}
|
|
30
|
-
return output.add(member);
|
|
31
|
-
}
|
|
32
|
-
static divide(a, b) {
|
|
33
|
-
let output = new expression_1.Expression(), member = new expressionMember_1.ExpressionMember();
|
|
34
|
-
// Add the first element as factor
|
|
35
|
-
member.add(new ExpFactor_1.ExpFactor(a));
|
|
36
|
-
// Divide by the second element.
|
|
37
|
-
member.add(new ExpFactor_1.ExpFactor(b, -1));
|
|
38
|
-
return output.add(member);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
exports.expressionOperators = expressionOperators;
|
|
42
|
-
//# sourceMappingURL=expressionOperators.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expressionOperators.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionOperators.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AACxC,mDAA8C;AAC9C,yDAAoD;AAEpD,MAAa,mBAAmB;IAC5B,MAAM,CAAC,MAAM,CAAC,IAAe;QACzB,IAAI,MAAM,GAAG,IAAI,uBAAU,EAAE,CAAA;QAE7B,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAoB;QAC9B,IAAI,MAAM,GAAG,IAAI,uBAAU,EAAE,CAAA;QAC7B,KAAI,IAAI,IAAI,IAAI,MAAM,EAAC;YACnB,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;SACrC;QACD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,CAAa,EAAE,CAAa;QACxC,IAAI,MAAM,GAAG,IAAI,uBAAU,EAAE,CAAA;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACb,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAClB,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAoB;QACnC,IAAI,MAAM,GAAG,IAAI,uBAAU,EAAE,EACzB,MAAM,GAAG,IAAI,mCAAgB,EAAE,CAAA;QAEnC,KAAI,IAAI,IAAI,IAAI,MAAM,EAAC;YACnB,MAAM,CAAC,GAAG,CAAC,IAAI,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAA;SAClC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,CAAa,EAAE,CAAa;QACtC,IAAI,MAAM,GAAG,IAAI,uBAAU,EAAE,EACzB,MAAM,GAAG,IAAI,mCAAgB,EAAE,CAAA;QAEnC,kCAAkC;QAClC,MAAM,CAAC,GAAG,CAAC,IAAI,qBAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5B,gCAAgC;QAChC,MAAM,CAAC,GAAG,CAAC,IAAI,qBAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAEhC,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;CACJ;AA5CD,kDA4CC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Expression } from "./internals";
|
|
2
|
-
export declare class ExpressionParser {
|
|
3
|
-
private _expression;
|
|
4
|
-
constructor(value: string);
|
|
5
|
-
get expression(): Expression;
|
|
6
|
-
private parse;
|
|
7
|
-
private tokenOperationPlus;
|
|
8
|
-
private tokenOperationMultiply;
|
|
9
|
-
private tokenOperationDivide;
|
|
10
|
-
private tokenOperationPower;
|
|
11
|
-
private tokenOperationMinus;
|
|
12
|
-
private tokenOperationSqrt;
|
|
13
|
-
private tokenOperationRoot;
|
|
14
|
-
}
|
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExpressionParser = void 0;
|
|
4
|
-
const internals_1 = require("./internals");
|
|
5
|
-
function dlog(...values) {
|
|
6
|
-
if (false) {
|
|
7
|
-
console.log(...values);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
class ExpressionParser {
|
|
11
|
-
constructor(value) {
|
|
12
|
-
this._expression = this.parse(value);
|
|
13
|
-
}
|
|
14
|
-
get expression() {
|
|
15
|
-
return this._expression;
|
|
16
|
-
}
|
|
17
|
-
parse(value) {
|
|
18
|
-
let expr, SY = new internals_1.Shutingyard(internals_1.ShutingyardMode.EXPRESSION).parse(value), rpn = SY.rpn, stack = [];
|
|
19
|
-
dlog(SY.rpn);
|
|
20
|
-
dlog(SY.normalize(value));
|
|
21
|
-
for (let item of rpn) {
|
|
22
|
-
dlog('BEFORE', item.token, stack.map(s => s.tex));
|
|
23
|
-
switch (item.tokenType) {
|
|
24
|
-
case internals_1.ShutingyardType.COEFFICIENT:
|
|
25
|
-
stack.push(new internals_1.ExpFactorNumber(+item.token));
|
|
26
|
-
break;
|
|
27
|
-
case internals_1.ShutingyardType.CONSTANT:
|
|
28
|
-
stack.push(new internals_1.ExpFactorConstant(item.token));
|
|
29
|
-
break;
|
|
30
|
-
case internals_1.ShutingyardType.VARIABLE:
|
|
31
|
-
stack.push(new internals_1.ExpFactorVariable(item.token));
|
|
32
|
-
break;
|
|
33
|
-
case internals_1.ShutingyardType.OPERATION:
|
|
34
|
-
// for an operation, the stack length should be two
|
|
35
|
-
if (stack.length >= 2) {
|
|
36
|
-
let b = stack.pop(), a = stack.pop();
|
|
37
|
-
// dlog('OPERATION A - B', stack.map(s=>s.tex))
|
|
38
|
-
switch (item.token) {
|
|
39
|
-
case "+":
|
|
40
|
-
stack.push(this.tokenOperationPlus(a, b));
|
|
41
|
-
break;
|
|
42
|
-
case "-":
|
|
43
|
-
stack.push(this.tokenOperationMinus(a, b));
|
|
44
|
-
break;
|
|
45
|
-
case "*":
|
|
46
|
-
stack.push(this.tokenOperationMultiply(a, b));
|
|
47
|
-
break;
|
|
48
|
-
case "/":
|
|
49
|
-
stack.push(this.tokenOperationDivide(a, b));
|
|
50
|
-
break;
|
|
51
|
-
case "^":
|
|
52
|
-
stack.push(this.tokenOperationPower(a, b));
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
// TODO: handle stack size of one when applying an operation
|
|
58
|
-
}
|
|
59
|
-
break;
|
|
60
|
-
case internals_1.ShutingyardType.FUNCTION:
|
|
61
|
-
let a = stack.pop();
|
|
62
|
-
if (item.token === 'sqrt') {
|
|
63
|
-
stack.push(this.tokenOperationSqrt(a));
|
|
64
|
-
}
|
|
65
|
-
else if (item.token === 'nthrt') {
|
|
66
|
-
stack.push(this.tokenOperationRoot(a, stack.pop()));
|
|
67
|
-
}
|
|
68
|
-
else if (item.token in internals_1.TRIGONOMETRIC) {
|
|
69
|
-
if (!(a instanceof internals_1.Expression)) {
|
|
70
|
-
a = new internals_1.Expression(a);
|
|
71
|
-
}
|
|
72
|
-
stack.push(new internals_1.ExpFactorTrigo(item.token, a));
|
|
73
|
-
}
|
|
74
|
-
break;
|
|
75
|
-
default:
|
|
76
|
-
throw ('Something went wrong while parsing ' + value + ' at ' + item.token);
|
|
77
|
-
}
|
|
78
|
-
dlog('AFTER', item.token, stack.map(s => s.tex));
|
|
79
|
-
dlog('----------');
|
|
80
|
-
}
|
|
81
|
-
// Build the output expression.
|
|
82
|
-
let output = new internals_1.Expression();
|
|
83
|
-
for (let item of stack) {
|
|
84
|
-
if (item instanceof internals_1.Expression) {
|
|
85
|
-
output.addMembers(...item.members);
|
|
86
|
-
}
|
|
87
|
-
else if (item instanceof internals_1.ExpressionMember) {
|
|
88
|
-
output.addMembers(item);
|
|
89
|
-
}
|
|
90
|
-
else if (item instanceof internals_1.ExpressionFactor) {
|
|
91
|
-
output.addMembers(item);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return output;
|
|
95
|
-
// TODO: in the stack, there might be an Expression, ExpressionMember or an ExpressionFactor.
|
|
96
|
-
// @ts-ignore
|
|
97
|
-
// return new Expression(...stack.map(
|
|
98
|
-
// item=>{
|
|
99
|
-
// return item instanceof ExpressionFactor ? new ExpressionMember(item) : item;
|
|
100
|
-
// }
|
|
101
|
-
// ))
|
|
102
|
-
}
|
|
103
|
-
tokenOperationPlus(a, b) {
|
|
104
|
-
if (a instanceof internals_1.ExpressionMember || a instanceof internals_1.ExpressionFactor) {
|
|
105
|
-
a = new internals_1.Expression(a);
|
|
106
|
-
}
|
|
107
|
-
return a.add(b);
|
|
108
|
-
}
|
|
109
|
-
tokenOperationMultiply(a, b) {
|
|
110
|
-
let EM = new internals_1.ExpressionMember();
|
|
111
|
-
if (a instanceof internals_1.Expression) {
|
|
112
|
-
EM.addFactors(new internals_1.ExpFactor(a));
|
|
113
|
-
// a = new ExpFactor(a)
|
|
114
|
-
}
|
|
115
|
-
else if (a instanceof internals_1.ExpressionMember) {
|
|
116
|
-
// a.add()
|
|
117
|
-
EM.addFactors(...a.factors);
|
|
118
|
-
// a = new ExpFactor(new Expression(a))
|
|
119
|
-
}
|
|
120
|
-
else if (a instanceof internals_1.ExpressionFactor) {
|
|
121
|
-
// Do nothing
|
|
122
|
-
EM.addFactors(a);
|
|
123
|
-
}
|
|
124
|
-
if (b instanceof internals_1.Expression) {
|
|
125
|
-
// b = new ExpFactor(b)
|
|
126
|
-
EM.addFactors(new internals_1.ExpFactor(b));
|
|
127
|
-
}
|
|
128
|
-
else if (b instanceof internals_1.ExpressionMember) {
|
|
129
|
-
// b = new ExpFactor(new Expression(b))
|
|
130
|
-
EM.addFactors(...b.factors);
|
|
131
|
-
}
|
|
132
|
-
else if (b instanceof internals_1.ExpressionFactor) {
|
|
133
|
-
// Do nothing
|
|
134
|
-
EM.addFactors(b);
|
|
135
|
-
}
|
|
136
|
-
return EM;
|
|
137
|
-
}
|
|
138
|
-
tokenOperationDivide(a, b) {
|
|
139
|
-
let EM = new internals_1.ExpressionMember();
|
|
140
|
-
if (a instanceof internals_1.Expression) {
|
|
141
|
-
EM.addFactors(new internals_1.ExpFactor(a));
|
|
142
|
-
}
|
|
143
|
-
else if (a instanceof internals_1.ExpressionMember) {
|
|
144
|
-
EM.addFactors(...a.factors);
|
|
145
|
-
}
|
|
146
|
-
else if (a instanceof internals_1.ExpressionFactor) {
|
|
147
|
-
// Do nothing
|
|
148
|
-
EM.addFactors(a);
|
|
149
|
-
}
|
|
150
|
-
if (b instanceof internals_1.Expression) {
|
|
151
|
-
EM.addFactors(new internals_1.ExpFactor(b, -1));
|
|
152
|
-
}
|
|
153
|
-
else if (b instanceof internals_1.ExpressionMember) {
|
|
154
|
-
EM.addFactors(new internals_1.ExpFactor(new internals_1.Expression(b), -1));
|
|
155
|
-
}
|
|
156
|
-
else if (b instanceof internals_1.ExpressionFactor) {
|
|
157
|
-
// Do nothing
|
|
158
|
-
b.power = -b.power;
|
|
159
|
-
EM.addFactors(b);
|
|
160
|
-
}
|
|
161
|
-
return EM;
|
|
162
|
-
}
|
|
163
|
-
tokenOperationPower(a, b) {
|
|
164
|
-
if (a instanceof internals_1.Expression) {
|
|
165
|
-
// Do nothing
|
|
166
|
-
}
|
|
167
|
-
else if (a instanceof internals_1.ExpressionMember) {
|
|
168
|
-
a = new internals_1.Expression(a);
|
|
169
|
-
}
|
|
170
|
-
else if (a instanceof internals_1.ExpressionFactor) {
|
|
171
|
-
// Make a new factor of itself
|
|
172
|
-
console.log(a);
|
|
173
|
-
if (a.power === 1 && b instanceof internals_1.ExpFactorNumber) {
|
|
174
|
-
a.power = b.value;
|
|
175
|
-
return a;
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
a = new internals_1.Expression(new internals_1.ExpressionMember(a));
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
// b can be :
|
|
182
|
-
// number 3
|
|
183
|
-
// any other expression
|
|
184
|
-
//
|
|
185
|
-
if (b instanceof internals_1.Expression) {
|
|
186
|
-
// Do nothing
|
|
187
|
-
}
|
|
188
|
-
else if (b instanceof internals_1.ExpressionMember) {
|
|
189
|
-
b = new internals_1.Expression(b);
|
|
190
|
-
}
|
|
191
|
-
else if (b instanceof internals_1.ExpFactorNumber) {
|
|
192
|
-
return new internals_1.ExpFactor(a, b.value);
|
|
193
|
-
}
|
|
194
|
-
else if (b instanceof internals_1.ExpressionFactor) {
|
|
195
|
-
b = new internals_1.Expression(new internals_1.ExpressionMember(b));
|
|
196
|
-
}
|
|
197
|
-
return new internals_1.ExpFactorPower(a, b);
|
|
198
|
-
}
|
|
199
|
-
tokenOperationMinus(a, b) {
|
|
200
|
-
if (a instanceof internals_1.ExpressionMember) {
|
|
201
|
-
a = new internals_1.Expression(a);
|
|
202
|
-
}
|
|
203
|
-
else if (a instanceof internals_1.ExpressionFactor) {
|
|
204
|
-
a = new internals_1.Expression(new internals_1.ExpressionMember(a));
|
|
205
|
-
}
|
|
206
|
-
if (b instanceof internals_1.ExpressionMember) {
|
|
207
|
-
b = new internals_1.Expression(b);
|
|
208
|
-
}
|
|
209
|
-
else if (b instanceof internals_1.ExpressionFactor) {
|
|
210
|
-
b = new internals_1.Expression(new internals_1.ExpressionMember(b));
|
|
211
|
-
}
|
|
212
|
-
return a.subtract(b);
|
|
213
|
-
}
|
|
214
|
-
tokenOperationSqrt(a) {
|
|
215
|
-
// Transform the argument to expression
|
|
216
|
-
if (a instanceof internals_1.Expression) {
|
|
217
|
-
return new internals_1.ExpFactor(a, 1, 2);
|
|
218
|
-
}
|
|
219
|
-
else if (a instanceof internals_1.ExpressionMember) {
|
|
220
|
-
if (a.factors.length === 1 && !a.factors[0].hasPower()) {
|
|
221
|
-
a.factors[0].root = 2;
|
|
222
|
-
return a.factors[0];
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
return new internals_1.ExpFactor(new internals_1.Expression(a), 1, 2);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
else if (a instanceof internals_1.ExpressionFactor) {
|
|
229
|
-
if (!a.hasPower()) {
|
|
230
|
-
a.root = 2;
|
|
231
|
-
return a;
|
|
232
|
-
}
|
|
233
|
-
else {
|
|
234
|
-
return new internals_1.ExpFactor(new internals_1.Expression(a), 1, 2);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
// Fallback
|
|
238
|
-
return a;
|
|
239
|
-
}
|
|
240
|
-
tokenOperationRoot(a, b) {
|
|
241
|
-
// a is the power
|
|
242
|
-
// b is the argument
|
|
243
|
-
// Transform the argument to expression
|
|
244
|
-
if (!(b instanceof internals_1.Expression)) {
|
|
245
|
-
b = new internals_1.Expression(b);
|
|
246
|
-
}
|
|
247
|
-
// the "a" value is the nth root. It must be a number
|
|
248
|
-
let n = 2;
|
|
249
|
-
if (a instanceof internals_1.ExpFactorNumber) {
|
|
250
|
-
n = a.number;
|
|
251
|
-
}
|
|
252
|
-
else {
|
|
253
|
-
throw "The nth root value must be a number, not " + a.tex;
|
|
254
|
-
}
|
|
255
|
-
return new internals_1.ExpFactor(b, 1, n);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
exports.ExpressionParser = ExpressionParser;
|
|
259
|
-
//# sourceMappingURL=expressionParser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expressionParser.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Expression, ExpressionFactor } from "../internals";
|
|
2
|
-
export declare class ExpFactor extends ExpressionFactor {
|
|
3
|
-
derivative(variable: string): Expression;
|
|
4
|
-
integrate(variable: string): Expression;
|
|
5
|
-
makeTeX(numberOfFactors?: number, position?: number): string;
|
|
6
|
-
makeDisplay(numberOfFactors?: number, position?: number): string;
|
|
7
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExpFactor = void 0;
|
|
4
|
-
const internals_1 = require("../internals");
|
|
5
|
-
class ExpFactor extends internals_1.ExpressionFactor {
|
|
6
|
-
derivative(variable) {
|
|
7
|
-
return undefined;
|
|
8
|
-
}
|
|
9
|
-
integrate(variable) {
|
|
10
|
-
return undefined;
|
|
11
|
-
}
|
|
12
|
-
makeTeX(numberOfFactors, position) {
|
|
13
|
-
// TODO: no need to wrap if it's single ?
|
|
14
|
-
if (this.hasRoot() || this.hasPower()) {
|
|
15
|
-
return this.texPower(this.texRoot(this.argument.tex
|
|
16
|
-
// this.wrapWithParentheses(this.argument.tex)
|
|
17
|
-
));
|
|
18
|
-
}
|
|
19
|
-
if (numberOfFactors === 1) {
|
|
20
|
-
return this.argument.tex;
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
return this.argument.isFactor() ? this.argument.tex : this.wrapWithParentheses(this.argument.tex);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
makeDisplay(numberOfFactors, position) {
|
|
27
|
-
if (this.hasRoot() || this.hasPower()) {
|
|
28
|
-
return this.displayPower(this.texRoot(this.wrapWithParentheses(this.argument.display, false)));
|
|
29
|
-
}
|
|
30
|
-
return this.argument.isFactor() ? this.argument.display : this.wrapWithParentheses(this.argument.display);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.ExpFactor = ExpFactor;
|
|
34
|
-
//# sourceMappingURL=ExpFactor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExpFactor.js","sourceRoot":"","sources":["../../../../src/maths/expressions/factors/ExpFactor.ts"],"names":[],"mappings":";;;AAAA,4CAA0D;AAG1D,MAAa,SAAU,SAAQ,4BAAgB;IAE3C,UAAU,CAAC,QAAgB;QACvB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,eAAwB,EAAE,QAAiB;QAC/C,yCAAyC;QACzC,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG;YACjB,8CAA8C;aACjD,CAAC,CAAA;SACL;QAED,IAAI,eAAe,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAA;SAC3B;aAAM;YACH,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;SACpG;IACL,CAAC;IAED,WAAW,CAAC,eAAwB,EAAE,QAAiB;QACnD,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CACjC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CACzD,CAAC,CAAA;SACL;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7G,CAAC;CACJ;AAnCD,8BAmCC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Expression } from "../internals";
|
|
2
|
-
import { ExpressionFactor } from "../internals";
|
|
3
|
-
export declare class ExpFactorConstant extends ExpressionFactor {
|
|
4
|
-
private _constant;
|
|
5
|
-
private _availableConstant;
|
|
6
|
-
constructor(value: string, power?: number, root?: number);
|
|
7
|
-
get value(): number;
|
|
8
|
-
get constant(): string;
|
|
9
|
-
makeTeX(): string;
|
|
10
|
-
derivative(variable: string): Expression;
|
|
11
|
-
integrate(variable: string): Expression;
|
|
12
|
-
hasVariable(variable?: string): boolean;
|
|
13
|
-
makeDisplay(numberOfFactors?: number, position?: number): string;
|
|
14
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExpFactorConstant = void 0;
|
|
4
|
-
const internals_1 = require("../internals");
|
|
5
|
-
class ExpFactorConstant extends internals_1.ExpressionFactor {
|
|
6
|
-
constructor(value, power, root) {
|
|
7
|
-
if (typeof value !== "string") {
|
|
8
|
-
throw `The number ${value} is not a valid value.`;
|
|
9
|
-
}
|
|
10
|
-
super(null, power, root);
|
|
11
|
-
this._availableConstant = {
|
|
12
|
-
'pi': {
|
|
13
|
-
value: Math.PI,
|
|
14
|
-
tex: '\\pi'
|
|
15
|
-
},
|
|
16
|
-
'e': {
|
|
17
|
-
value: Math.E,
|
|
18
|
-
tex: '\\text{e}'
|
|
19
|
-
},
|
|
20
|
-
'phi': {
|
|
21
|
-
value: (1 + Math.sqrt(5)) / 2,
|
|
22
|
-
tex: '\\phi'
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
this._constant = value;
|
|
26
|
-
}
|
|
27
|
-
get value() {
|
|
28
|
-
// TODO: constant value
|
|
29
|
-
return Math.pow(0, this.root / this.root);
|
|
30
|
-
}
|
|
31
|
-
get constant() {
|
|
32
|
-
return this._constant;
|
|
33
|
-
}
|
|
34
|
-
makeTeX() {
|
|
35
|
-
let tex = this._availableConstant[this._constant].tex;
|
|
36
|
-
return this.texPower(this.texRoot(tex));
|
|
37
|
-
}
|
|
38
|
-
derivative(variable) {
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
integrate(variable) {
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
hasVariable(variable) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
makeDisplay(numberOfFactors, position) {
|
|
48
|
-
return this._constant;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
exports.ExpFactorConstant = ExpFactorConstant;
|
|
52
|
-
//# sourceMappingURL=ExpFactorConstant.js.map
|