pimath 0.0.68 → 0.0.71

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.
Files changed (70) hide show
  1. package/dist/pi.js +8 -2
  2. package/dist/pi.js.map +1 -1
  3. package/dist/pi.min.js +1 -1
  4. package/dist/pi.min.js.map +1 -1
  5. package/esm/maths/algebra/equation.js +1 -1
  6. package/esm/maths/algebra/equation.js.map +1 -1
  7. package/esm/maths/algebra/polynom.js +1 -1
  8. package/esm/maths/algebra/polynom.js.map +1 -1
  9. package/esm/maths/coefficients/fraction.d.ts +1 -0
  10. package/esm/maths/coefficients/fraction.js +3 -0
  11. package/esm/maths/coefficients/fraction.js.map +1 -1
  12. package/esm/maths/expressions/expression.d.ts +6 -0
  13. package/esm/maths/expressions/expression.js +79 -1
  14. package/esm/maths/expressions/expression.js.map +1 -1
  15. package/esm/maths/expressions/expressionFactor.d.ts +8 -1
  16. package/esm/maths/expressions/expressionFactor.js +51 -4
  17. package/esm/maths/expressions/expressionFactor.js.map +1 -1
  18. package/esm/maths/expressions/expressionMember.d.ts +12 -1
  19. package/esm/maths/expressions/expressionMember.js +128 -19
  20. package/esm/maths/expressions/expressionMember.js.map +1 -1
  21. package/esm/maths/expressions/expressionParser.d.ts +2 -0
  22. package/esm/maths/expressions/expressionParser.js +74 -34
  23. package/esm/maths/expressions/expressionParser.js.map +1 -1
  24. package/esm/maths/expressions/factors/ExpFactor.d.ts +2 -2
  25. package/esm/maths/expressions/factors/ExpFactor.js +15 -3
  26. package/esm/maths/expressions/factors/ExpFactor.js.map +1 -1
  27. package/esm/maths/expressions/factors/ExpFactorConstant.d.ts +1 -0
  28. package/esm/maths/expressions/factors/ExpFactorConstant.js +3 -0
  29. package/esm/maths/expressions/factors/ExpFactorConstant.js.map +1 -1
  30. package/esm/maths/expressions/factors/ExpFactorExponential.d.ts +1 -0
  31. package/esm/maths/expressions/factors/ExpFactorExponential.js +4 -0
  32. package/esm/maths/expressions/factors/ExpFactorExponential.js.map +1 -1
  33. package/esm/maths/expressions/factors/ExpFactorNumber.d.ts +3 -2
  34. package/esm/maths/expressions/factors/ExpFactorNumber.js +23 -0
  35. package/esm/maths/expressions/factors/ExpFactorNumber.js.map +1 -1
  36. package/esm/maths/expressions/factors/ExpFactorPower.d.ts +5 -1
  37. package/esm/maths/expressions/factors/ExpFactorPower.js +15 -2
  38. package/esm/maths/expressions/factors/ExpFactorPower.js.map +1 -1
  39. package/esm/maths/expressions/factors/ExpFactorTrigo.d.ts +1 -0
  40. package/esm/maths/expressions/factors/ExpFactorTrigo.js +8 -0
  41. package/esm/maths/expressions/factors/ExpFactorTrigo.js.map +1 -1
  42. package/esm/maths/expressions/factors/ExpFactorVariable.d.ts +1 -0
  43. package/esm/maths/expressions/factors/ExpFactorVariable.js +3 -0
  44. package/esm/maths/expressions/factors/ExpFactorVariable.js.map +1 -1
  45. package/esm/maths/expressions/polynomexp.bkp.js +0 -1
  46. package/esm/maths/expressions/polynomexp.bkp.js.map +1 -1
  47. package/esm/maths/shutingyard.js +3 -0
  48. package/esm/maths/shutingyard.js.map +1 -1
  49. package/package.json +1 -1
  50. package/src/maths/algebra/equation.ts +1 -1
  51. package/src/maths/algebra/polynom.ts +1 -1
  52. package/src/maths/coefficients/fraction.ts +4 -0
  53. package/src/maths/expressions/expression.ts +115 -20
  54. package/src/maths/expressions/expressionFactor.ts +59 -7
  55. package/src/maths/expressions/expressionMember.ts +141 -22
  56. package/src/maths/expressions/expressionParser.ts +79 -33
  57. package/src/maths/expressions/factors/ExpFactor.ts +19 -6
  58. package/src/maths/expressions/factors/ExpFactorConstant.ts +4 -0
  59. package/src/maths/expressions/factors/ExpFactorExponential.ts +7 -0
  60. package/src/maths/expressions/factors/ExpFactorNumber.ts +32 -4
  61. package/src/maths/expressions/factors/ExpFactorPower.ts +21 -3
  62. package/src/maths/expressions/factors/ExpFactorTrigo.ts +10 -1
  63. package/src/maths/expressions/factors/ExpFactorVariable.ts +5 -0
  64. package/src/maths/expressions/polynomexp.bkp.ts +0 -1
  65. package/src/maths/shutingyard.ts +4 -1
  66. package/tests/expressions/expressions.test.ts +24 -3
  67. package/tests/geometry/circle.test.ts +6 -0
  68. package/esm/maths/expressions/factors/ExpFactorSin.d.ts +0 -7
  69. package/esm/maths/expressions/factors/ExpFactorSin.js +0 -22
  70. package/esm/maths/expressions/factors/ExpFactorSin.js.map +0 -1
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExpressionFactor = void 0;
4
4
  const internals_1 = require("./internals");
5
+ const numeric_1 = require("../numeric");
5
6
  class ExpressionFactor {
6
7
  constructor(_argument, _power, _root, _inline) {
7
8
  this._argument = _argument;
@@ -27,6 +28,9 @@ class ExpressionFactor {
27
28
  get tex() {
28
29
  return this.makeTeX();
29
30
  }
31
+ get display() {
32
+ return this.makeDisplay();
33
+ }
30
34
  get power() {
31
35
  return this._power;
32
36
  }
@@ -51,6 +55,12 @@ class ExpressionFactor {
51
55
  set argument(value) {
52
56
  this._argument = value;
53
57
  }
58
+ getArguments() {
59
+ if (this._argument !== null) {
60
+ return [this.argument];
61
+ }
62
+ return [];
63
+ }
54
64
  hasVariable(variable) {
55
65
  if (variable === undefined) {
56
66
  return !this.isNumeric();
@@ -62,9 +72,12 @@ class ExpressionFactor {
62
72
  return false;
63
73
  }
64
74
  isNumeric() {
65
- if (this._argument instanceof internals_1.Expression) {
66
- return this.isNumeric();
75
+ for (let expressionArgument of this.getArguments()) {
76
+ if (!expressionArgument.isNumeric()) {
77
+ return false;
78
+ }
67
79
  }
80
+ return true;
68
81
  }
69
82
  hasRoot() {
70
83
  return this.root > 1;
@@ -80,14 +93,37 @@ class ExpressionFactor {
80
93
  texPowerAndRoot(tex) {
81
94
  return this.texPower(this.texRoot(tex));
82
95
  }
96
+ displayPowerAndRoot(display) {
97
+ return this.displayPower(this.displayRoot(display));
98
+ }
99
+ displayPower(display) {
100
+ if (this.hasPower(this.inline)) {
101
+ return `${display}^(${Math.abs(this.power)})`;
102
+ }
103
+ return display;
104
+ }
105
+ displayRoot(display) {
106
+ if (this.root === 2) {
107
+ return `sqrt( ${display} )`;
108
+ }
109
+ else if (this.root > 2) {
110
+ return `nthrt(${display},${this.root})`;
111
+ }
112
+ return display;
113
+ }
83
114
  texPower(tex) {
84
115
  if (this.hasPower(this.inline)) {
85
116
  return `${tex}^{ ${Math.abs(this.power)} }`;
86
117
  }
87
118
  return tex;
88
119
  }
89
- wrapWithParentheses(tex) {
90
- return `\\left( ${tex} \\right)`;
120
+ wrapWithParentheses(tex, asTex) {
121
+ if (asTex === undefined || asTex === true) {
122
+ return `\\left( ${tex} \\right)`;
123
+ }
124
+ else {
125
+ return `( ${tex} )`;
126
+ }
91
127
  }
92
128
  texRoot(tex) {
93
129
  if (this.root === 2) {
@@ -104,6 +140,17 @@ class ExpressionFactor {
104
140
  }
105
141
  return this._argument === 0;
106
142
  }
143
+ reduce() {
144
+ let gcd = numeric_1.Numeric.gcd(this.root, this.power);
145
+ if (gcd > 1) {
146
+ this.root = this.root / gcd;
147
+ this.power = this.power / gcd;
148
+ }
149
+ for (let expressionArgument of this.getArguments()) {
150
+ expressionArgument.reduce();
151
+ }
152
+ return this;
153
+ }
107
154
  }
108
155
  exports.ExpressionFactor = ExpressionFactor;
109
156
  //# sourceMappingURL=expressionFactor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expressionFactor.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionFactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expressionFactor.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionFactor.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,21 @@ export declare class ExpressionMember {
7
7
  get numerator(): ExpressionFactor[];
8
8
  get denominator(): ExpressionFactor[];
9
9
  get tex(): string;
10
- opposed(): ExpressionMember;
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
- let num = this.numerator, den = this.denominator, numTex = num.map((x, index) => x.makeTeX(num.length, index)), denTex = den.map((x, index) => x.makeTeX(den.length, index));
23
- if (den.length > 0) {
24
- return `\\frac{ ${numTex.join("")} }{ ${denTex.join("")} }`;
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
- opposed() {
31
- let firstMember = this.factors[0];
32
- if (firstMember === undefined) {
33
- return this;
27
+ toString(asTex) {
28
+ if (asTex === undefined) {
29
+ asTex = true;
34
30
  }
35
- if (firstMember instanceof internals_1.ExpFactorNumber) {
36
- if (firstMember.hasPower() || firstMember.hasRoot()) {
37
- this.factors.unshift(new internals_1.ExpFactorNumber(-1));
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
- firstMember.number = -firstMember.number;
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
- else {
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":"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"}
1
+ {"version":3,"file":"expressionMember.js","sourceRoot":"","sources":["../../../src/maths/expressions/expressionMember.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,6 @@ export declare class ExpressionParser {
9
9
  private tokenOperationDivide;
10
10
  private tokenOperationPower;
11
11
  private tokenOperationMinus;
12
+ private tokenOperationSqrt;
13
+ private tokenOperationRoot;
12
14
  }
@@ -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
- let b = stack.pop();
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
- // TODO: suppose it's a number
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
- a = new internals_1.ExpFactor(a);
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 = new internals_1.ExpFactor(new internals_1.Expression(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 internals_1.ExpFactor(b);
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 internals_1.ExpFactor(new internals_1.Expression(b));
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
- // a and b are ExpressionFactors - multiply them
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
- a = new internals_1.ExpFactor(a);
141
+ EM.addFactors(new internals_1.ExpFactor(a));
153
142
  }
154
143
  else if (a instanceof internals_1.ExpressionMember) {
155
- a = new internals_1.ExpFactor(new internals_1.Expression(a));
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
- b = new internals_1.ExpFactor(b, -1);
151
+ EM.addFactors(new internals_1.ExpFactor(b, -1));
162
152
  }
163
153
  else if (b instanceof internals_1.ExpressionMember) {
164
- b = new internals_1.ExpFactor(new internals_1.Expression(b), -1);
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
- // a and b are ExpressionFactors - multiply them
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
- a = new internals_1.Expression(new internals_1.ExpressionMember(a));
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":"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"}
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.wrapWithParentheses(this.argument.tex)));
15
+ return this.texPower(this.texRoot(this.argument.tex
16
+ // this.wrapWithParentheses(this.argument.tex)
17
+ ));
17
18
  }
18
- return this.argument.isFactor() ? this.argument.tex : this.wrapWithParentheses(this.argument.tex);
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":";;;AACA,4CAA8C;AAG9C,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,2DAA2D;QAC3D,yCAAyC;QACzC,IAAG,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAC;YACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAC7B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC9C,CAAC,CAAA;SACL;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAA,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACpG,CAAC;CACJ;AArBD,8BAqBC"}
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;AApDD,8CAoDC"}
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"}
@@ -4,4 +4,5 @@ export declare class ExpFactorExponential extends ExpressionFactor {
4
4
  derivative(variable: string): Expression;
5
5
  integrate(variable: string): Expression;
6
6
  makeTeX(): string;
7
+ makeDisplay(numberOfFactors?: number, position?: number): string;
7
8
  }
@@ -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