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.
Files changed (140) hide show
  1. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  2. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]/shelved.patch +192 -0
  3. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30_[Default_Changelist]1/shelved.patch +0 -0
  4. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_07_11_2023_08_30__Default_Changelist_.xml +4 -0
  5. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43_[Default_Changelist]/shelved.patch +2404 -0
  6. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_10_43__Default_Changelist_.xml +4 -0
  7. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01_[Default_Changelist]/shelved.patch +1362 -0
  8. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_09_11_2023_11_01__Default_Changelist_.xml +4 -0
  9. package/dev/pimath.js +7940 -7930
  10. package/dev/pimath.js.map +1 -1
  11. package/dist/pimath.js +219 -227
  12. package/dist/pimath.js.map +1 -1
  13. package/dist/pimath.min.js +1 -1
  14. package/dist/pimath.min.js.map +1 -1
  15. package/docs/assets/main.js +59 -58
  16. package/docs/assets/navigation.js +1 -0
  17. package/docs/assets/search.js +1 -1
  18. package/docs/assets/style.css +1383 -1367
  19. package/docs/classes/Logicalset.Logicalset.html +217 -221
  20. package/docs/classes/Polynom.Rational.html +397 -391
  21. package/docs/classes/Vector-1.Vector.html +490 -494
  22. package/docs/classes/Vector.Point.html +337 -341
  23. package/docs/classes/algebra_equation.Equation.html +790 -796
  24. package/docs/classes/algebra_linearSystem.LinearSystem.html +404 -408
  25. package/docs/classes/algebra_monom.Monom.html +962 -967
  26. package/docs/classes/algebra_polynom.Polynom.html +1275 -1281
  27. package/docs/classes/coefficients_fraction.Fraction.html +934 -939
  28. package/docs/classes/geometry_circle.Circle.html +472 -476
  29. package/docs/classes/geometry_line.Line.html +774 -779
  30. package/docs/classes/geometry_triangle.Triangle.html +429 -429
  31. package/docs/classes/numeric.Numeric.html +265 -269
  32. package/docs/classes/shutingyard.Shutingyard.html +250 -259
  33. package/docs/enums/algebra_equation.PARTICULAR_SOLUTION.html +83 -89
  34. package/docs/enums/geometry_line.LinePropriety.html +97 -102
  35. package/docs/enums/shutingyard.ShutingyardMode.html +97 -106
  36. package/docs/enums/shutingyard.ShutingyardType.html +111 -120
  37. package/docs/index.html +63 -63
  38. package/docs/interfaces/algebra_equation.ISolution.html +105 -111
  39. package/docs/interfaces/algebra_polynom.IEuclidian.html +87 -93
  40. package/docs/interfaces/geometry_triangle.remarquableLines.html +163 -150
  41. package/docs/modules/Logicalset.html +65 -69
  42. package/docs/modules/Polynom.html +65 -69
  43. package/docs/modules/Vector-1.html +65 -69
  44. package/docs/modules/Vector.html +65 -69
  45. package/docs/modules/algebra_equation.html +69 -75
  46. package/docs/modules/algebra_linearSystem.html +61 -65
  47. package/docs/modules/algebra_monom.html +65 -70
  48. package/docs/modules/algebra_polynom.html +69 -75
  49. package/docs/modules/coefficients_fraction.html +65 -70
  50. package/docs/modules/geometry_circle.html +61 -65
  51. package/docs/modules/geometry_line.html +65 -70
  52. package/docs/modules/geometry_triangle.html +65 -70
  53. package/docs/modules/numeric.html +61 -65
  54. package/docs/modules/shutingyard.html +75 -84
  55. package/docs/types/algebra_monom.literalType.html +61 -66
  56. package/docs/types/algebra_polynom.PolynomParsingType.html +56 -62
  57. package/docs/types/coefficients_fraction.FractionParsingType.html +56 -61
  58. package/docs/types/shutingyard.Token.html +63 -72
  59. package/docs/types/shutingyard.tokenType.html +68 -77
  60. package/docs/variables/shutingyard.tokenConstant.html +61 -70
  61. package/esm/index.js +1 -1
  62. package/esm/index.js.map +1 -1
  63. package/esm/maths/algebra/monom.d.ts +19 -19
  64. package/esm/maths/algebra/monom.js +66 -66
  65. package/esm/maths/algebra/monom.js.map +1 -1
  66. package/esm/maths/algebra/polynom.d.ts +14 -14
  67. package/esm/maths/algebra/polynom.js +72 -50
  68. package/esm/maths/algebra/polynom.js.map +1 -1
  69. package/esm/maths/numeric.js +3 -48
  70. package/esm/maths/numeric.js.map +1 -1
  71. package/esm/maths/randomization/random.d.ts +1 -1
  72. package/esm/maths/randomization/random.js +2 -2
  73. package/esm/maths/randomization/random.js.map +1 -1
  74. package/esm/maths/randomization/rndHelpers.d.ts +1 -1
  75. package/esm/maths/randomization/rndHelpers.js +25 -4
  76. package/esm/maths/randomization/rndHelpers.js.map +1 -1
  77. package/package.json +1 -1
  78. package/src/index.ts +1 -1
  79. package/src/maths/algebra/monom.ts +138 -130
  80. package/src/maths/algebra/polynom.ts +107 -85
  81. package/src/maths/numeric.ts +61 -90
  82. package/src/maths/randomization/random.ts +2 -2
  83. package/src/maths/randomization/rndHelpers.ts +49 -18
  84. package/tests/algebra/linear.test.ts +1 -1
  85. package/tests/algebra/polynom.test.ts +152 -1
  86. package/tests/algebra/study.test.ts +1 -0
  87. package/tests/geometry/circle.test.ts +124 -25
  88. package/tests/geometry/line.test.ts +8 -17
  89. package/tests/numexp.test.ts +10 -2
  90. package/esm/maths/expressions/ExpressionTree.d.ts +0 -17
  91. package/esm/maths/expressions/ExpressionTree.js +0 -150
  92. package/esm/maths/expressions/ExpressionTree.js.map +0 -1
  93. package/esm/maths/expressions/expression.d.ts +0 -27
  94. package/esm/maths/expressions/expression.js +0 -239
  95. package/esm/maths/expressions/expression.js.map +0 -1
  96. package/esm/maths/expressions/expressionFactor.d.ts +0 -36
  97. package/esm/maths/expressions/expressionFactor.js +0 -156
  98. package/esm/maths/expressions/expressionFactor.js.map +0 -1
  99. package/esm/maths/expressions/expressionMember.d.ts +0 -27
  100. package/esm/maths/expressions/expressionMember.js +0 -199
  101. package/esm/maths/expressions/expressionMember.js.map +0 -1
  102. package/esm/maths/expressions/expressionOperators.d.ts +0 -8
  103. package/esm/maths/expressions/expressionOperators.js +0 -42
  104. package/esm/maths/expressions/expressionOperators.js.map +0 -1
  105. package/esm/maths/expressions/expressionParser.d.ts +0 -14
  106. package/esm/maths/expressions/expressionParser.js +0 -259
  107. package/esm/maths/expressions/expressionParser.js.map +0 -1
  108. package/esm/maths/expressions/factors/ExpFactor.d.ts +0 -7
  109. package/esm/maths/expressions/factors/ExpFactor.js +0 -34
  110. package/esm/maths/expressions/factors/ExpFactor.js.map +0 -1
  111. package/esm/maths/expressions/factors/ExpFactorConstant.d.ts +0 -14
  112. package/esm/maths/expressions/factors/ExpFactorConstant.js +0 -52
  113. package/esm/maths/expressions/factors/ExpFactorConstant.js.map +0 -1
  114. package/esm/maths/expressions/factors/ExpFactorExponential.d.ts +0 -8
  115. package/esm/maths/expressions/factors/ExpFactorExponential.js +0 -22
  116. package/esm/maths/expressions/factors/ExpFactorExponential.js.map +0 -1
  117. package/esm/maths/expressions/factors/ExpFactorNumber.d.ts +0 -14
  118. package/esm/maths/expressions/factors/ExpFactorNumber.js +0 -59
  119. package/esm/maths/expressions/factors/ExpFactorNumber.js.map +0 -1
  120. package/esm/maths/expressions/factors/ExpFactorPower.d.ts +0 -13
  121. package/esm/maths/expressions/factors/ExpFactorPower.js +0 -35
  122. package/esm/maths/expressions/factors/ExpFactorPower.js.map +0 -1
  123. package/esm/maths/expressions/factors/ExpFactorTrigo.d.ts +0 -20
  124. package/esm/maths/expressions/factors/ExpFactorTrigo.js +0 -48
  125. package/esm/maths/expressions/factors/ExpFactorTrigo.js.map +0 -1
  126. package/esm/maths/expressions/factors/ExpFactorVariable.d.ts +0 -13
  127. package/esm/maths/expressions/factors/ExpFactorVariable.js +0 -36
  128. package/esm/maths/expressions/factors/ExpFactorVariable.js.map +0 -1
  129. package/esm/maths/expressions/internals.d.ts +0 -12
  130. package/esm/maths/expressions/internals.js +0 -29
  131. package/esm/maths/expressions/internals.js.map +0 -1
  132. package/esm/maths/expressions/numexp.d.ts +0 -19
  133. package/esm/maths/expressions/numexp.js +0 -186
  134. package/esm/maths/expressions/numexp.js.map +0 -1
  135. package/esm/maths/expressions/polynomexp.bkp.d.ts +0 -33
  136. package/esm/maths/expressions/polynomexp.bkp.js +0 -184
  137. package/esm/maths/expressions/polynomexp.bkp.js.map +0 -1
  138. package/esm/maths/expressions/polynomexp.d.ts +0 -52
  139. package/esm/maths/expressions/polynomexp.js +0 -246
  140. 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