pimath 0.0.67 → 0.0.70
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 +6 -3
- package/dist/pi.js.map +1 -1
- package/dist/pi.min.js +1 -1
- package/dist/pi.min.js.map +1 -1
- package/esm/maths/algebra/equation.js +2 -2
- package/esm/maths/algebra/equation.js.map +1 -1
- package/esm/maths/algebra/polynom.js +1 -1
- package/esm/maths/algebra/polynom.js.map +1 -1
- package/esm/maths/expressions/expression.d.ts +6 -0
- package/esm/maths/expressions/expression.js +79 -1
- package/esm/maths/expressions/expression.js.map +1 -1
- package/esm/maths/expressions/expressionFactor.d.ts +8 -1
- package/esm/maths/expressions/expressionFactor.js +51 -4
- package/esm/maths/expressions/expressionFactor.js.map +1 -1
- package/esm/maths/expressions/expressionMember.d.ts +12 -1
- package/esm/maths/expressions/expressionMember.js +128 -19
- package/esm/maths/expressions/expressionMember.js.map +1 -1
- package/esm/maths/expressions/expressionParser.d.ts +2 -0
- package/esm/maths/expressions/expressionParser.js +74 -34
- package/esm/maths/expressions/expressionParser.js.map +1 -1
- package/esm/maths/expressions/factors/ExpFactor.d.ts +2 -2
- package/esm/maths/expressions/factors/ExpFactor.js +15 -3
- package/esm/maths/expressions/factors/ExpFactor.js.map +1 -1
- package/esm/maths/expressions/factors/ExpFactorConstant.d.ts +1 -0
- package/esm/maths/expressions/factors/ExpFactorConstant.js +3 -0
- package/esm/maths/expressions/factors/ExpFactorConstant.js.map +1 -1
- package/esm/maths/expressions/factors/ExpFactorExponential.d.ts +1 -0
- package/esm/maths/expressions/factors/ExpFactorExponential.js +4 -0
- package/esm/maths/expressions/factors/ExpFactorExponential.js.map +1 -1
- package/esm/maths/expressions/factors/ExpFactorNumber.d.ts +3 -2
- package/esm/maths/expressions/factors/ExpFactorNumber.js +23 -0
- package/esm/maths/expressions/factors/ExpFactorNumber.js.map +1 -1
- package/esm/maths/expressions/factors/ExpFactorPower.d.ts +5 -1
- package/esm/maths/expressions/factors/ExpFactorPower.js +15 -2
- package/esm/maths/expressions/factors/ExpFactorPower.js.map +1 -1
- package/esm/maths/expressions/factors/ExpFactorTrigo.d.ts +1 -0
- package/esm/maths/expressions/factors/ExpFactorTrigo.js +8 -0
- package/esm/maths/expressions/factors/ExpFactorTrigo.js.map +1 -1
- package/esm/maths/expressions/factors/ExpFactorVariable.d.ts +1 -0
- package/esm/maths/expressions/factors/ExpFactorVariable.js +3 -0
- package/esm/maths/expressions/factors/ExpFactorVariable.js.map +1 -1
- package/esm/maths/expressions/polynomexp.bkp.js +0 -1
- package/esm/maths/expressions/polynomexp.bkp.js.map +1 -1
- package/esm/maths/shutingyard.js +3 -0
- package/esm/maths/shutingyard.js.map +1 -1
- package/package.json +1 -1
- package/src/maths/algebra/equation.ts +2 -2
- package/src/maths/algebra/polynom.ts +1 -1
- package/src/maths/expressions/expression.ts +115 -20
- package/src/maths/expressions/expressionFactor.ts +59 -7
- package/src/maths/expressions/expressionMember.ts +141 -22
- package/src/maths/expressions/expressionParser.ts +79 -33
- package/src/maths/expressions/factors/ExpFactor.ts +19 -6
- package/src/maths/expressions/factors/ExpFactorConstant.ts +4 -0
- package/src/maths/expressions/factors/ExpFactorExponential.ts +7 -0
- package/src/maths/expressions/factors/ExpFactorNumber.ts +32 -4
- package/src/maths/expressions/factors/ExpFactorPower.ts +21 -3
- package/src/maths/expressions/factors/ExpFactorTrigo.ts +10 -1
- package/src/maths/expressions/factors/ExpFactorVariable.ts +5 -0
- package/src/maths/expressions/polynomexp.bkp.ts +0 -1
- package/src/maths/shutingyard.ts +4 -1
- package/tests/expressions/expressions.test.ts +24 -3
- package/tests/geometry/circle.test.ts +6 -0
- package/esm/maths/expressions/factors/ExpFactorSin.d.ts +0 -7
- package/esm/maths/expressions/factors/ExpFactorSin.js +0 -22
- package/esm/maths/expressions/factors/ExpFactorSin.js.map +0 -1
|
@@ -7,10 +7,21 @@ export declare class ExpressionMember {
|
|
|
7
7
|
get numerator(): ExpressionFactor[];
|
|
8
8
|
get denominator(): ExpressionFactor[];
|
|
9
9
|
get tex(): string;
|
|
10
|
-
|
|
10
|
+
get display(): string;
|
|
11
|
+
toString(asTex: boolean): string;
|
|
11
12
|
add(value: ExpressionFactor): ExpressionMember;
|
|
12
13
|
addFactors(...values: ExpressionFactor[]): ExpressionMember;
|
|
13
14
|
isZero(): Boolean;
|
|
14
15
|
hasVariable(variable?: string): boolean;
|
|
15
16
|
isNumeric(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Returns the "coefficient", ie a member with only numeric values factors.
|
|
19
|
+
*/
|
|
20
|
+
coefficient(): ExpressionMember;
|
|
21
|
+
/**
|
|
22
|
+
* Returns a member with all factors containing a literal part.
|
|
23
|
+
*/
|
|
24
|
+
literal(): ExpressionMember;
|
|
25
|
+
similarTo(member: ExpressionMember): boolean;
|
|
26
|
+
reduce(): ExpressionMember;
|
|
16
27
|
}
|
|
@@ -19,32 +19,82 @@ class ExpressionMember {
|
|
|
19
19
|
return this._factors.filter(factor => factor.power < 0);
|
|
20
20
|
}
|
|
21
21
|
get tex() {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
else {
|
|
27
|
-
return numTex.join("");
|
|
28
|
-
}
|
|
22
|
+
return this.toString(true);
|
|
23
|
+
}
|
|
24
|
+
get display() {
|
|
25
|
+
return this.toString(false);
|
|
29
26
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return this;
|
|
27
|
+
toString(asTex) {
|
|
28
|
+
if (asTex === undefined) {
|
|
29
|
+
asTex = true;
|
|
34
30
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
+
}
|
|
38
48
|
}
|
|
39
49
|
else {
|
|
40
|
-
|
|
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
|
+
}
|
|
41
75
|
}
|
|
42
76
|
}
|
|
43
|
-
|
|
44
|
-
this.factors.unshift(new internals_1.ExpFactorNumber(-1));
|
|
45
|
-
}
|
|
46
|
-
return this;
|
|
77
|
+
return output;
|
|
47
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
|
+
// }
|
|
48
98
|
add(value) {
|
|
49
99
|
this._factors.push(value);
|
|
50
100
|
return this;
|
|
@@ -85,6 +135,65 @@ class ExpressionMember {
|
|
|
85
135
|
}
|
|
86
136
|
return true;
|
|
87
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
|
+
}
|
|
88
197
|
}
|
|
89
198
|
exports.ExpressionMember = ExpressionMember;
|
|
90
199
|
//# sourceMappingURL=expressionMember.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressionMember.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionMember.ts"],"names":[],"mappings":";;;AAAA,2CAAiF;AAEjF,MAAa,gBAAgB;IAGzB,YAAY,GAAG,MAA0B;QACrC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAA;IAC1B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,CAAC,KAAyB;QACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,GAAG;QACH,IAAI,
|
|
1
|
+
{"version":3,"file":"expressionMember.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionMember.ts"],"names":[],"mappings":";;;AAAA,2CAAiF;AAEjF,MAAa,gBAAgB;IAGzB,YAAY,GAAG,MAA0B;QACrC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAA;IAC1B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,CAAC,KAAyB;QACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,QAAQ,CAAC,KAAc;QACnB,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,KAAK,GAAG,IAAI,CAAA;SACf;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACnC,OAAO;gBACH,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;gBAChC,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpE,WAAW,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;gBACxB,MAAM,EAAE,CAAC,CAAC,YAAY,2BAAe,CAAC;aACzC,CAAA;QACL,CAAC,CAAC,EAAE,MAAM,GAAW,EAAE,CAAA;QAEvB,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,CAAA;YAE9B,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,KAAK,EAAE;oBACP,MAAM,IAAI,cAAc,IAAI,CAAC,uBAAuB,IAAI,CAAA;iBAC3D;qBAAM;oBACH,MAAM,IAAI,MAAM,IAAI,CAAC,uBAAuB,GAAG,CAAA;iBAClD;aACJ;iBAAM;gBACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;oBACtD,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,CAAA;oBAC/B,IAAI,KAAK,EAAE;wBACP,MAAM,IAAI,WAAW,IAAI,CAAC,uBAAuB,OAAO,KAAK,CAAC,uBAAuB,IAAI,CAAA;qBAC5F;yBAAM;wBACH,MAAM,IAAI,IAAI,IAAI,CAAC,uBAAuB,MAAM,KAAK,CAAC,uBAAuB,GAAG,CAAA;qBACnF;iBACJ;qBAAM;oBACH,MAAM,IAAI,IAAI,CAAC,KAAK,CAAA;oBAEpB,mDAAmD;oBACnD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wBACxB,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;4BACtC,IAAG,WAAW,CAAC,MAAM,GAAC,CAAC,EAAC;gCACpB,IAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAC;oCAC3B,MAAM,IAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAA;iCACpC;6BACJ;iCAAI;gCACD,MAAM,IAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAA;6BACpC;yBAEJ;qBACJ;iBACJ;aACJ;SACJ;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,gCAAgC;IAChC,wCAAwC;IACxC,EAAE;IACF,uCAAuC;IACvC,sBAAsB;IACtB,QAAQ;IACR,EAAE;IACF,oDAAoD;IACpD,iEAAiE;IACjE,4DAA4D;IAC5D,mBAAmB;IACnB,uDAAuD;IACvD,YAAY;IACZ,eAAe;IACf,wDAAwD;IACxD,QAAQ;IACR,EAAE;IACF,kBAAkB;IAClB,IAAI;IAEJ,GAAG,CAAC,KAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,UAAU,CAAC,GAAG,MAA0B;QAEpC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SAC5B;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM;QAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAA;SACd;QAED,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE;gBACjB,OAAO,IAAI,CAAA;aACd;SACJ;QAED,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,WAAW,CAAC,QAAiB;QAEzB,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;SAC3B;QAGD,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9B,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;gBAC9B,OAAO,IAAI,CAAA;aACd;SACJ;QAED,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,SAAS;QACL,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9B,IAAI,MAAM,YAAY,6BAAiB,EAAE;gBACrC,OAAO,KAAK,CAAA;aACf;SACJ;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;OAEG;IACH,WAAW;QACP,IAAI,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAA;QAE/B,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE;gBACpB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;aACjB;SACJ;QACD,OAAO,EAAE,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO;QACH,IAAI,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAA;QAE/B,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE;gBACrB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;aACjB;SACJ;QACD,OAAO,EAAE,CAAA;IACb,CAAC;IAED,SAAS,CAAC,MAAwB;QAC9B,uEAAuE;QACvE,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM;QACF,6CAA6C;QAC7C,IAAI,SAAS,GAAG,IAAI,2BAAe,CAAC,CAAC,CAAC,EAClC,WAAW,GAAG,IAAI,2BAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACxC,OAAO,GAAuB,EAAE,CAAA;QAEpC,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,oBAAoB;YACpB,MAAM,CAAC,MAAM,EAAE,CAAA;YAEf,IAAI,MAAM,YAAY,2BAAe,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;gBACxD,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE;oBAClB,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAA;iBACxE;qBAAM;oBACH,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;iBAC/E;aACJ;iBAAM;gBACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aACvB;SACJ;QAED,IAAI,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAA;QAE/B,uBAAuB;QACvB,IAAG,SAAS,CAAC,MAAM,KAAG,CAAC,EAAC;YACpB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;SAC3B;QAED,kBAAkB;QAClB,IAAG,WAAW,CAAC,MAAM,KAAG,CAAC,EAAC;YACtB,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;SAC7B;QAED,wBAAwB;QACxB,EAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,CAAA;QACzB,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAtOD,4CAsOC"}
|
|
@@ -60,29 +60,10 @@ class ExpressionParser {
|
|
|
60
60
|
case internals_1.ShutingyardType.FUNCTION:
|
|
61
61
|
let a = stack.pop();
|
|
62
62
|
if (item.token === 'sqrt') {
|
|
63
|
-
|
|
64
|
-
// Transform the argument to expression
|
|
65
|
-
if (!(a instanceof internals_1.Expression)) {
|
|
66
|
-
a = new internals_1.Expression(a);
|
|
67
|
-
}
|
|
68
|
-
stack.push(new internals_1.ExpFactor(a, 1, 2));
|
|
63
|
+
stack.push(this.tokenOperationSqrt(a));
|
|
69
64
|
}
|
|
70
65
|
else if (item.token === 'nthrt') {
|
|
71
|
-
|
|
72
|
-
let b = stack.pop();
|
|
73
|
-
// Transform the argument to expression
|
|
74
|
-
if (!(b instanceof internals_1.Expression)) {
|
|
75
|
-
b = new internals_1.Expression(b);
|
|
76
|
-
}
|
|
77
|
-
// the "a" value is the nth root. It must be a number
|
|
78
|
-
let n = 2;
|
|
79
|
-
if (a instanceof internals_1.ExpFactorNumber) {
|
|
80
|
-
n = a.number;
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
throw "The nth root value must be a number, not " + a.tex;
|
|
84
|
-
}
|
|
85
|
-
stack.push(new internals_1.ExpFactor(b, 1, n));
|
|
66
|
+
stack.push(this.tokenOperationRoot(a, stack.pop()));
|
|
86
67
|
}
|
|
87
68
|
else if (item.token in internals_1.TRIGONOMETRIC) {
|
|
88
69
|
if (!(a instanceof internals_1.Expression)) {
|
|
@@ -126,49 +107,58 @@ class ExpressionParser {
|
|
|
126
107
|
return a.add(b);
|
|
127
108
|
}
|
|
128
109
|
tokenOperationMultiply(a, b) {
|
|
110
|
+
let EM = new internals_1.ExpressionMember();
|
|
129
111
|
if (a instanceof internals_1.Expression) {
|
|
130
|
-
|
|
112
|
+
EM.addFactors(new internals_1.ExpFactor(a));
|
|
113
|
+
// a = new ExpFactor(a)
|
|
131
114
|
}
|
|
132
115
|
else if (a instanceof internals_1.ExpressionMember) {
|
|
133
|
-
a
|
|
116
|
+
// a.add()
|
|
117
|
+
EM.addFactors(...a.factors);
|
|
118
|
+
// a = new ExpFactor(new Expression(a))
|
|
134
119
|
}
|
|
135
120
|
else if (a instanceof internals_1.ExpressionFactor) {
|
|
136
121
|
// Do nothing
|
|
122
|
+
EM.addFactors(a);
|
|
137
123
|
}
|
|
138
124
|
if (b instanceof internals_1.Expression) {
|
|
139
|
-
b = new
|
|
125
|
+
// b = new ExpFactor(b)
|
|
126
|
+
EM.addFactors(new internals_1.ExpFactor(b));
|
|
140
127
|
}
|
|
141
128
|
else if (b instanceof internals_1.ExpressionMember) {
|
|
142
|
-
b = new
|
|
129
|
+
// b = new ExpFactor(new Expression(b))
|
|
130
|
+
EM.addFactors(...b.factors);
|
|
143
131
|
}
|
|
144
132
|
else if (b instanceof internals_1.ExpressionFactor) {
|
|
145
133
|
// Do nothing
|
|
134
|
+
EM.addFactors(b);
|
|
146
135
|
}
|
|
147
|
-
|
|
148
|
-
return new internals_1.ExpressionMember(a, b);
|
|
136
|
+
return EM;
|
|
149
137
|
}
|
|
150
138
|
tokenOperationDivide(a, b) {
|
|
139
|
+
let EM = new internals_1.ExpressionMember();
|
|
151
140
|
if (a instanceof internals_1.Expression) {
|
|
152
|
-
|
|
141
|
+
EM.addFactors(new internals_1.ExpFactor(a));
|
|
153
142
|
}
|
|
154
143
|
else if (a instanceof internals_1.ExpressionMember) {
|
|
155
|
-
|
|
144
|
+
EM.addFactors(...a.factors);
|
|
156
145
|
}
|
|
157
146
|
else if (a instanceof internals_1.ExpressionFactor) {
|
|
158
147
|
// Do nothing
|
|
148
|
+
EM.addFactors(a);
|
|
159
149
|
}
|
|
160
150
|
if (b instanceof internals_1.Expression) {
|
|
161
|
-
|
|
151
|
+
EM.addFactors(new internals_1.ExpFactor(b, -1));
|
|
162
152
|
}
|
|
163
153
|
else if (b instanceof internals_1.ExpressionMember) {
|
|
164
|
-
|
|
154
|
+
EM.addFactors(new internals_1.ExpFactor(new internals_1.Expression(b), -1));
|
|
165
155
|
}
|
|
166
156
|
else if (b instanceof internals_1.ExpressionFactor) {
|
|
167
157
|
// Do nothing
|
|
168
158
|
b.power = -b.power;
|
|
159
|
+
EM.addFactors(b);
|
|
169
160
|
}
|
|
170
|
-
|
|
171
|
-
return new internals_1.ExpressionMember(a, b);
|
|
161
|
+
return EM;
|
|
172
162
|
}
|
|
173
163
|
tokenOperationPower(a, b) {
|
|
174
164
|
if (a instanceof internals_1.Expression) {
|
|
@@ -179,7 +169,14 @@ class ExpressionParser {
|
|
|
179
169
|
}
|
|
180
170
|
else if (a instanceof internals_1.ExpressionFactor) {
|
|
181
171
|
// Make a new factor of itself
|
|
182
|
-
|
|
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
|
+
}
|
|
183
180
|
}
|
|
184
181
|
// b can be :
|
|
185
182
|
// number 3
|
|
@@ -214,6 +211,49 @@ class ExpressionParser {
|
|
|
214
211
|
}
|
|
215
212
|
return a.subtract(b);
|
|
216
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
|
+
}
|
|
217
257
|
}
|
|
218
258
|
exports.ExpressionParser = ExpressionParser;
|
|
219
259
|
//# sourceMappingURL=expressionParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressionParser.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionParser.ts"],"names":[],"mappings":";;;AAAA,2CAcqB;AAErB,SAAS,IAAI,CAAC,GAAG,MAAiB;IAC9B,IAAI,KAAK,EAAE;QACP,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;KACzB;AACL,CAAC;AAED,MAAa,gBAAgB;IAGzB,YAAY,KAAa;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"expressionParser.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Expression } from "../internals";
|
|
2
|
-
import { ExpressionFactor } from "../internals";
|
|
1
|
+
import { Expression, ExpressionFactor } from "../internals";
|
|
3
2
|
export declare class ExpFactor extends ExpressionFactor {
|
|
4
3
|
derivative(variable: string): Expression;
|
|
5
4
|
integrate(variable: string): Expression;
|
|
6
5
|
makeTeX(numberOfFactors?: number, position?: number): string;
|
|
6
|
+
makeDisplay(numberOfFactors?: number, position?: number): string;
|
|
7
7
|
}
|
|
@@ -10,12 +10,24 @@ class ExpFactor extends internals_1.ExpressionFactor {
|
|
|
10
10
|
return undefined;
|
|
11
11
|
}
|
|
12
12
|
makeTeX(numberOfFactors, position) {
|
|
13
|
-
// If there is a root value, no need to make further checks
|
|
14
13
|
// TODO: no need to wrap if it's single ?
|
|
15
14
|
if (this.hasRoot() || this.hasPower()) {
|
|
16
|
-
return this.texPower(this.texRoot(this.
|
|
15
|
+
return this.texPower(this.texRoot(this.argument.tex
|
|
16
|
+
// this.wrapWithParentheses(this.argument.tex)
|
|
17
|
+
));
|
|
17
18
|
}
|
|
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);
|
|
19
31
|
}
|
|
20
32
|
}
|
|
21
33
|
exports.ExpFactor = ExpFactor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpFactor.js","sourceRoot":"","sources":["../../../../src/maths/expressions/factors/ExpFactor.ts"],"names":[],"mappings":";;;
|
|
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"}
|
|
@@ -10,4 +10,5 @@ export declare class ExpFactorConstant extends ExpressionFactor {
|
|
|
10
10
|
derivative(variable: string): Expression;
|
|
11
11
|
integrate(variable: string): Expression;
|
|
12
12
|
hasVariable(variable?: string): boolean;
|
|
13
|
+
makeDisplay(numberOfFactors?: number, position?: number): string;
|
|
13
14
|
}
|
|
@@ -44,6 +44,9 @@ class ExpFactorConstant extends internals_1.ExpressionFactor {
|
|
|
44
44
|
hasVariable(variable) {
|
|
45
45
|
return false;
|
|
46
46
|
}
|
|
47
|
+
makeDisplay(numberOfFactors, position) {
|
|
48
|
+
return this._constant;
|
|
49
|
+
}
|
|
47
50
|
}
|
|
48
51
|
exports.ExpFactorConstant = ExpFactorConstant;
|
|
49
52
|
//# sourceMappingURL=ExpFactorConstant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpFactorConstant.js","sourceRoot":"","sources":["../../../../src/maths/expressions/factors/ExpFactorConstant.ts"],"names":[],"mappings":";;;AACA,4CAA8C;AAE9C,MAAa,iBAAkB,SAAQ,4BAAgB;IAGnD,YAAY,KAAa,EAAE,KAAc,EAAE,IAAa;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,MAAM,cAAc,KAAK,wBAAwB,CAAA;SACpD;QAED,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC,kBAAkB,GAAG;YACtB,IAAI,EAAE;gBACF,KAAK,EAAE,IAAI,CAAC,EAAE;gBACd,GAAG,EAAE,MAAM;aACd;YACD,GAAG,EAAE;gBACD,KAAK,EAAE,IAAI,CAAC,CAAC;gBACb,GAAG,EAAE,WAAW;aACnB;YACD,KAAK,EAAE;gBACH,KAAK,EAAE,CAAC,CAAC,GAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC;gBAC1B,GAAG,EAAE,OAAO;aACf;SACJ,CAAA;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,CAAC;IAED,IAAI,KAAK;QACL,uBAAuB;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAA;IACzB,CAAC;IACD,OAAO;QACH,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAA;QACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,UAAU,CAAC,QAAgB;QACvB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,QAAiB;QACzB,OAAO,KAAK,CAAA;IAChB,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"ExpFactorConstant.js","sourceRoot":"","sources":["../../../../src/maths/expressions/factors/ExpFactorConstant.ts"],"names":[],"mappings":";;;AACA,4CAA8C;AAE9C,MAAa,iBAAkB,SAAQ,4BAAgB;IAGnD,YAAY,KAAa,EAAE,KAAc,EAAE,IAAa;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,MAAM,cAAc,KAAK,wBAAwB,CAAA;SACpD;QAED,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC,kBAAkB,GAAG;YACtB,IAAI,EAAE;gBACF,KAAK,EAAE,IAAI,CAAC,EAAE;gBACd,GAAG,EAAE,MAAM;aACd;YACD,GAAG,EAAE;gBACD,KAAK,EAAE,IAAI,CAAC,CAAC;gBACb,GAAG,EAAE,WAAW;aACnB;YACD,KAAK,EAAE;gBACH,KAAK,EAAE,CAAC,CAAC,GAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC;gBAC1B,GAAG,EAAE,OAAO;aACf;SACJ,CAAA;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,CAAC;IAED,IAAI,KAAK;QACL,uBAAuB;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAA;IACzB,CAAC;IACD,OAAO;QACH,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAA;QACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,UAAU,CAAC,QAAgB;QACvB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,QAAiB;QACzB,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,WAAW,CAAC,eAAwB,EAAE,QAAiB;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AAxDD,8CAwDC"}
|
|
@@ -13,6 +13,10 @@ class ExpFactorExponential extends internals_1.ExpressionFactor {
|
|
|
13
13
|
let tex = `\\text{e}^{ ${this.argument.tex} }`;
|
|
14
14
|
return this.texPowerAndRoot(tex);
|
|
15
15
|
}
|
|
16
|
+
makeDisplay(numberOfFactors, position) {
|
|
17
|
+
let display = `e^( ${this.argument.tex} )`;
|
|
18
|
+
return this.displayPowerAndRoot(display);
|
|
19
|
+
}
|
|
16
20
|
}
|
|
17
21
|
exports.ExpFactorExponential = ExpFactorExponential;
|
|
18
22
|
//# sourceMappingURL=ExpFactorExponential.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpFactorExponential.js","sourceRoot":"","sources":["../../../../src/maths/expressions/factors/ExpFactorExponential.ts"],"names":[],"mappings":";;;AACA,4CAA8C;AAE9C,MAAa,oBAAqB,SAAQ,4BAAgB;IAEtD,UAAU,CAAC,QAAgB;QACvB,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,OAAO;QACH,IAAI,GAAG,GAAW,eAAgB,IAAI,CAAC,QAAQ,CAAC,GAAI,IAAI,CAAA;QAExD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpFactorExponential.js","sourceRoot":"","sources":["../../../../src/maths/expressions/factors/ExpFactorExponential.ts"],"names":[],"mappings":";;;AACA,4CAA8C;AAE9C,MAAa,oBAAqB,SAAQ,4BAAgB;IAEtD,UAAU,CAAC,QAAgB;QACvB,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,OAAO;QACH,IAAI,GAAG,GAAW,eAAgB,IAAI,CAAC,QAAQ,CAAC,GAAI,IAAI,CAAA;QAExD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IAED,WAAW,CAAC,eAAwB,EAAE,QAAiB;QACnD,IAAI,OAAO,GAAW,OAAQ,IAAI,CAAC,QAAQ,CAAC,GAAI,IAAI,CAAA;QAEpD,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;CAEJ;AAtBD,oDAsBC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Expression } from "../internals";
|
|
2
|
-
import { ExpressionFactor } from "../internals";
|
|
1
|
+
import { Expression, ExpressionFactor } from "../internals";
|
|
3
2
|
export declare class ExpFactorNumber extends ExpressionFactor {
|
|
4
3
|
private _number;
|
|
5
4
|
constructor(value: number, power?: number, root?: number);
|
|
@@ -7,7 +6,9 @@ export declare class ExpFactorNumber extends ExpressionFactor {
|
|
|
7
6
|
get number(): number;
|
|
8
7
|
set number(value: number);
|
|
9
8
|
makeTeX(): string;
|
|
9
|
+
makeDisplay(numberOfFactors?: number, position?: number): string;
|
|
10
10
|
derivative(variable: string): Expression;
|
|
11
11
|
integrate(variable: string): Expression;
|
|
12
12
|
hasVariable(variable?: string): boolean;
|
|
13
|
+
reduce(): ExpressionFactor;
|
|
13
14
|
}
|
|
@@ -22,6 +22,9 @@ class ExpFactorNumber extends internals_1.ExpressionFactor {
|
|
|
22
22
|
makeTeX() {
|
|
23
23
|
return this.texPower(this.texRoot(this._number.toString()));
|
|
24
24
|
}
|
|
25
|
+
makeDisplay(numberOfFactors, position) {
|
|
26
|
+
return this.displayPower(this.displayRoot(this._number.toString()));
|
|
27
|
+
}
|
|
25
28
|
derivative(variable) {
|
|
26
29
|
return undefined;
|
|
27
30
|
}
|
|
@@ -31,6 +34,26 @@ class ExpFactorNumber extends internals_1.ExpressionFactor {
|
|
|
31
34
|
hasVariable(variable) {
|
|
32
35
|
return false;
|
|
33
36
|
}
|
|
37
|
+
reduce() {
|
|
38
|
+
// Reduce the power / root value
|
|
39
|
+
super.reduce();
|
|
40
|
+
if (this.power > 1) {
|
|
41
|
+
this.number = this.number ** this.power;
|
|
42
|
+
this.power = 1;
|
|
43
|
+
}
|
|
44
|
+
if (this.power < -1) {
|
|
45
|
+
this.number = this.number ** (-this.power);
|
|
46
|
+
this.power = -1;
|
|
47
|
+
}
|
|
48
|
+
if (this.root > 1) {
|
|
49
|
+
// Maybe it's a perfect root ?
|
|
50
|
+
if (Number.isSafeInteger(Math.pow(this.number, 1 / this.root))) {
|
|
51
|
+
this.number = Math.pow(this.number, 1 / this.root);
|
|
52
|
+
this.root = 1;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
34
57
|
}
|
|
35
58
|
exports.ExpFactorNumber = ExpFactorNumber;
|
|
36
59
|
//# sourceMappingURL=ExpFactorNumber.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpFactorNumber.js","sourceRoot":"","sources":["../../../../src/maths/expressions/factors/ExpFactorNumber.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ExpFactorNumber.js","sourceRoot":"","sources":["../../../../src/maths/expressions/factors/ExpFactorNumber.ts"],"names":[],"mappings":";;;AAAA,4CAA0D;AAE1D,MAAa,eAAgB,SAAQ,4BAAgB;IAGjD,YAAY,KAAa,EAAE,KAAc,EAAE,IAAa;QACpD,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEzB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,MAAM,cAAc,KAAK,wBAAwB,CAAA;SACpD;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACxB,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAGD,IAAI,MAAM,CAAC,KAAa;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,WAAW,CAAC,eAAwB,EAAE,QAAiB;QACnD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACvE,CAAC;IAED,UAAU,CAAC,QAAgB;QACvB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,QAAiB;QACzB,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,MAAM;QACF,gCAAgC;QAChC,KAAK,CAAC,MAAM,EAAE,CAAA;QAEd,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAA;YACvC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;SACjB;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC1C,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;SAClB;QAED,IAAG,IAAI,CAAC,IAAI,GAAC,CAAC,EAAC;YACX,8BAA8B;YAC9B,IAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAC;gBACxD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAChD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;aAChB;SACJ;QAED,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AArED,0CAqEC"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { Expression } from "../internals";
|
|
2
2
|
import { ExpressionFactor } from "../internals";
|
|
3
3
|
export declare class ExpFactorPower extends ExpressionFactor {
|
|
4
|
-
|
|
4
|
+
get powerArgument(): Expression;
|
|
5
|
+
set powerArgument(value: Expression);
|
|
6
|
+
private _powerArgument;
|
|
5
7
|
constructor(radical: Expression, power: Expression, power2?: number, root?: number);
|
|
6
8
|
derivative(variable: string): Expression;
|
|
7
9
|
integrate(variable: string): Expression;
|
|
8
10
|
makeTeX(): string;
|
|
11
|
+
getArguments(): Expression[];
|
|
12
|
+
makeDisplay(numberOfFactors?: number, position?: number): string;
|
|
9
13
|
}
|
|
@@ -5,7 +5,13 @@ const internals_1 = require("../internals");
|
|
|
5
5
|
class ExpFactorPower extends internals_1.ExpressionFactor {
|
|
6
6
|
constructor(radical, power, power2, root) {
|
|
7
7
|
super(radical, power2, root);
|
|
8
|
-
this.
|
|
8
|
+
this._powerArgument = power;
|
|
9
|
+
}
|
|
10
|
+
get powerArgument() {
|
|
11
|
+
return this._powerArgument;
|
|
12
|
+
}
|
|
13
|
+
set powerArgument(value) {
|
|
14
|
+
this._powerArgument = value;
|
|
9
15
|
}
|
|
10
16
|
derivative(variable) {
|
|
11
17
|
return undefined;
|
|
@@ -14,9 +20,16 @@ class ExpFactorPower extends internals_1.ExpressionFactor {
|
|
|
14
20
|
return undefined;
|
|
15
21
|
}
|
|
16
22
|
makeTeX() {
|
|
17
|
-
let tex = `{ ${this.argument.tex} }^{ ${this.
|
|
23
|
+
let tex = `{ ${this.argument.tex} }^{ ${this._powerArgument.tex} }`;
|
|
18
24
|
return this.texPowerAndRoot(this.wrapWithParentheses(tex));
|
|
19
25
|
}
|
|
26
|
+
getArguments() {
|
|
27
|
+
return [this.argument, this.powerArgument];
|
|
28
|
+
}
|
|
29
|
+
makeDisplay(numberOfFactors, position) {
|
|
30
|
+
let display = `( ${this.argument.display} )^( ${this._powerArgument.display} )`;
|
|
31
|
+
return this.displayPowerAndRoot(this.wrapWithParentheses(display, false));
|
|
32
|
+
}
|
|
20
33
|
}
|
|
21
34
|
exports.ExpFactorPower = ExpFactorPower;
|
|
22
35
|
//# sourceMappingURL=ExpFactorPower.js.map
|