math-exercises 2.2.41 → 2.2.43

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 (121) hide show
  1. package/lib/exercises/exercise.d.ts +54 -36
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/exercise.js +13 -1
  4. package/lib/exercises/math/calcul/fractions/fractionsSum.d.ts +4 -1
  5. package/lib/exercises/math/calcul/fractions/fractionsSum.d.ts.map +1 -1
  6. package/lib/exercises/math/calcul/fractions/fractionsSum.js +24 -4
  7. package/lib/exercises/math/calcul/rounding/rounding.d.ts.map +1 -1
  8. package/lib/exercises/math/calculLitteral/distributivity/firstIdentity.d.ts.map +1 -1
  9. package/lib/exercises/math/calculLitteral/distributivity/firstIdentity.js +3 -0
  10. package/lib/exercises/math/functions/affines/index.d.ts +1 -0
  11. package/lib/exercises/math/functions/affines/index.d.ts.map +1 -1
  12. package/lib/exercises/math/functions/affines/index.js +1 -0
  13. package/lib/exercises/math/functions/affines/isPointOnLine.d.ts +11 -0
  14. package/lib/exercises/math/functions/affines/isPointOnLine.d.ts.map +1 -0
  15. package/lib/exercises/math/functions/affines/isPointOnLine.js +97 -0
  16. package/lib/exercises/math/functions/logarithm/log10Simplifying.d.ts.map +1 -1
  17. package/lib/exercises/math/functions/logarithm/logPowerEquation.d.ts.map +1 -1
  18. package/lib/exercises/math/percent/evolutionRateFromValues.d.ts.map +1 -1
  19. package/lib/exercises/math/percent/evolutionRateFromValues.js +2 -2
  20. package/lib/exercises/math/percent/evolutionToCM.d.ts.map +1 -1
  21. package/lib/exercises/math/percent/evolutionToCM.js +3 -1
  22. package/lib/exercises/math/powers/powersDivision.d.ts.map +1 -1
  23. package/lib/exercises/math/powers/powersPower.d.ts.map +1 -1
  24. package/lib/exercises/math/powers/powersProduct.d.ts.map +1 -1
  25. package/lib/exercises/math/sequences/arithmetic/arithmeticReasonUsage.d.ts.map +1 -1
  26. package/lib/exercises/math/sequences/arithmetic/arithmeticReasonUsage.js +1 -0
  27. package/lib/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts.map +1 -1
  28. package/lib/exercises/math/trigonometry/mainAngleMeasure.d.ts.map +1 -1
  29. package/lib/exercises/math/trigonometry/mainAngleMeasure.js +0 -3
  30. package/lib/exercises/utils/getDistinctQuestions.d.ts +1 -1
  31. package/lib/exercises/utils/getDistinctQuestions.d.ts.map +1 -1
  32. package/lib/index.d.ts +518 -510
  33. package/lib/index.d.ts.map +1 -1
  34. package/lib/math/polynomials/affine.d.ts +1 -0
  35. package/lib/math/polynomials/affine.d.ts.map +1 -1
  36. package/lib/math/polynomials/affine.js +3 -0
  37. package/lib/math/sets/intervals/intervals.js +1 -1
  38. package/lib/math/systems/system.d.ts.map +1 -1
  39. package/lib/math/systems/system.js +29 -7
  40. package/lib/playground.d.ts.map +1 -1
  41. package/lib/playground.js +7 -1
  42. package/lib/server.js +9 -2
  43. package/lib/tree/nodes/algebraicNode.d.ts +1 -0
  44. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  45. package/lib/tree/nodes/functions/absNode.d.ts +1 -0
  46. package/lib/tree/nodes/functions/absNode.d.ts.map +1 -1
  47. package/lib/tree/nodes/functions/absNode.js +3 -0
  48. package/lib/tree/nodes/functions/arcSinNode.d.ts +1 -0
  49. package/lib/tree/nodes/functions/arcSinNode.d.ts.map +1 -1
  50. package/lib/tree/nodes/functions/arcSinNode.js +3 -0
  51. package/lib/tree/nodes/functions/arccosNode.d.ts +1 -0
  52. package/lib/tree/nodes/functions/arccosNode.d.ts.map +1 -1
  53. package/lib/tree/nodes/functions/arccosNode.js +3 -0
  54. package/lib/tree/nodes/functions/arctanNode.d.ts +1 -0
  55. package/lib/tree/nodes/functions/arctanNode.d.ts.map +1 -1
  56. package/lib/tree/nodes/functions/arctanNode.js +3 -0
  57. package/lib/tree/nodes/functions/cosNode.d.ts +1 -0
  58. package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
  59. package/lib/tree/nodes/functions/cosNode.js +3 -0
  60. package/lib/tree/nodes/functions/expNode.d.ts +1 -0
  61. package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
  62. package/lib/tree/nodes/functions/expNode.js +3 -0
  63. package/lib/tree/nodes/functions/log10Node.d.ts +1 -0
  64. package/lib/tree/nodes/functions/log10Node.d.ts.map +1 -1
  65. package/lib/tree/nodes/functions/log10Node.js +3 -0
  66. package/lib/tree/nodes/functions/logNode.d.ts +1 -0
  67. package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
  68. package/lib/tree/nodes/functions/logNode.js +3 -0
  69. package/lib/tree/nodes/functions/oppositeNode.d.ts +1 -0
  70. package/lib/tree/nodes/functions/oppositeNode.d.ts.map +1 -1
  71. package/lib/tree/nodes/functions/oppositeNode.js +3 -0
  72. package/lib/tree/nodes/functions/sinNode.d.ts +1 -0
  73. package/lib/tree/nodes/functions/sinNode.d.ts.map +1 -1
  74. package/lib/tree/nodes/functions/sinNode.js +3 -0
  75. package/lib/tree/nodes/functions/sqrtNode.d.ts +1 -0
  76. package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
  77. package/lib/tree/nodes/functions/sqrtNode.js +3 -0
  78. package/lib/tree/nodes/functions/tanNode.d.ts +1 -0
  79. package/lib/tree/nodes/functions/tanNode.d.ts.map +1 -1
  80. package/lib/tree/nodes/functions/tanNode.js +3 -0
  81. package/lib/tree/nodes/geometry/degree.d.ts +1 -0
  82. package/lib/tree/nodes/geometry/degree.d.ts.map +1 -1
  83. package/lib/tree/nodes/geometry/degree.js +3 -0
  84. package/lib/tree/nodes/geometry/lengthNode.d.ts +1 -0
  85. package/lib/tree/nodes/geometry/lengthNode.d.ts.map +1 -1
  86. package/lib/tree/nodes/geometry/lengthNode.js +3 -0
  87. package/lib/tree/nodes/node.d.ts.map +1 -1
  88. package/lib/tree/nodes/numbers/constantNode.d.ts +1 -0
  89. package/lib/tree/nodes/numbers/constantNode.d.ts.map +1 -1
  90. package/lib/tree/nodes/numbers/constantNode.js +3 -0
  91. package/lib/tree/nodes/numbers/numberNode.d.ts +1 -0
  92. package/lib/tree/nodes/numbers/numberNode.d.ts.map +1 -1
  93. package/lib/tree/nodes/numbers/numberNode.js +3 -0
  94. package/lib/tree/nodes/operators/addNode.d.ts +1 -0
  95. package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
  96. package/lib/tree/nodes/operators/addNode.js +44 -0
  97. package/lib/tree/nodes/operators/divideNode.d.ts +1 -0
  98. package/lib/tree/nodes/operators/divideNode.d.ts.map +1 -1
  99. package/lib/tree/nodes/operators/divideNode.js +3 -0
  100. package/lib/tree/nodes/operators/fractionNode.d.ts +1 -0
  101. package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
  102. package/lib/tree/nodes/operators/fractionNode.js +5 -2
  103. package/lib/tree/nodes/operators/limitNode.d.ts +1 -0
  104. package/lib/tree/nodes/operators/limitNode.d.ts.map +1 -1
  105. package/lib/tree/nodes/operators/limitNode.js +3 -0
  106. package/lib/tree/nodes/operators/multiplyNode.d.ts +1 -0
  107. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  108. package/lib/tree/nodes/operators/multiplyNode.js +3 -0
  109. package/lib/tree/nodes/operators/powerNode.d.ts +1 -0
  110. package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
  111. package/lib/tree/nodes/operators/powerNode.js +3 -0
  112. package/lib/tree/nodes/operators/substractNode.d.ts +1 -0
  113. package/lib/tree/nodes/operators/substractNode.d.ts.map +1 -1
  114. package/lib/tree/nodes/operators/substractNode.js +3 -0
  115. package/lib/tree/nodes/variables/variableNode.d.ts +1 -0
  116. package/lib/tree/nodes/variables/variableNode.d.ts.map +1 -1
  117. package/lib/tree/nodes/variables/variableNode.js +5 -0
  118. package/lib/tree/parsers/rationalParser.d.ts +1 -0
  119. package/lib/tree/parsers/rationalParser.d.ts.map +1 -0
  120. package/lib/tree/parsers/rationalParser.js +9 -0
  121. package/package.json +1 -1
@@ -28,5 +28,6 @@ export declare class AddNode implements CommutativeOperatorNode {
28
28
  } & Record<string, any>;
29
29
  };
30
30
  equals(node: AlgebraicNode): boolean;
31
+ toDetailedEvaluation(vars: Record<string, AlgebraicNode>): AddNode;
31
32
  }
32
33
  //# sourceMappingURL=addNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/addNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EACL,uBAAuB,EACvB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAED,qBAAa,OAAQ,YAAW,uBAAuB;IACrD,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IASpB,OAAO,aAGL;IAEF,YAAY,IAAI,MAAM;IAItB,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAoCtD,SAAS,IAAI,MAAM,EAAE;IAIrB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAK5C,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAerC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IA0K/C,aAAa;;;;;;;;;IAOb,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAUrC"}
1
+ {"version":3,"file":"addNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/addNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EACL,uBAAuB,EACvB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAED,qBAAa,OAAQ,YAAW,uBAAuB;IACrD,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IASpB,OAAO,aAGL;IAEF,YAAY,IAAI,MAAM;IAItB,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAoCtD,SAAS,IAAI,MAAM,EAAE;IAIrB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAK5C,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAerC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAgP/C,aAAa;;;;;;;;;IAOb,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAUpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAMzD"}
@@ -131,18 +131,59 @@ class AddNode {
131
131
  const f = b.rightChild;
132
132
  return new fractionNode_1.FractionNode(new AddNode(new multiplyNode_1.MultiplyNode(c, f), new multiplyNode_1.MultiplyNode(e, d)), new multiplyNode_1.MultiplyNode(d, f)).simplify(opts);
133
133
  }
134
+ if ((0, oppositeNode_1.isOppositeNode)(a) && (0, fractionNode_1.isFractionNode)(a.child) && (0, fractionNode_1.isFractionNode)(b)) {
135
+ //-(c/d) + e/f = -cf+ed / df
136
+ const c = a.child.leftChild;
137
+ const d = a.child.rightChild;
138
+ const e = b.leftChild;
139
+ const f = b.rightChild;
140
+ return new fractionNode_1.FractionNode(new AddNode(new multiplyNode_1.MultiplyNode(new oppositeNode_1.OppositeNode(c), f), new multiplyNode_1.MultiplyNode(e, d)), new multiplyNode_1.MultiplyNode(d, f)).simplify(opts);
141
+ }
142
+ if ((0, oppositeNode_1.isOppositeNode)(b) && (0, fractionNode_1.isFractionNode)(b.child) && (0, fractionNode_1.isFractionNode)(a)) {
143
+ //(c/d) + (-e/f) = cf-ed / df
144
+ const c = a.leftChild;
145
+ const d = a.rightChild;
146
+ const e = b.child.leftChild;
147
+ const f = b.child.rightChild;
148
+ return new fractionNode_1.FractionNode(new AddNode(new multiplyNode_1.MultiplyNode(c, f), new multiplyNode_1.MultiplyNode(new oppositeNode_1.OppositeNode(e), d)), new multiplyNode_1.MultiplyNode(d, f)).simplify(opts);
149
+ }
150
+ if ((0, oppositeNode_1.isOppositeNode)(b) &&
151
+ (0, fractionNode_1.isFractionNode)(b.child) &&
152
+ (0, oppositeNode_1.isOppositeNode)(a) &&
153
+ (0, fractionNode_1.isFractionNode)(a.child)) {
154
+ //-(c/d) + (-e/f) = -cf-ed / df
155
+ const c = a.child.leftChild;
156
+ const d = a.child.rightChild;
157
+ const e = b.child.leftChild;
158
+ const f = b.child.rightChild;
159
+ return new fractionNode_1.FractionNode(new AddNode(new multiplyNode_1.MultiplyNode(new oppositeNode_1.OppositeNode(c), f), new multiplyNode_1.MultiplyNode(new oppositeNode_1.OppositeNode(e), d)), new multiplyNode_1.MultiplyNode(d, f)).simplify(opts);
160
+ }
134
161
  if ((0, fractionNode_1.isFractionNode)(a)) {
135
162
  //c/d + b
136
163
  const c = a.leftChild;
137
164
  const d = a.rightChild;
138
165
  return new fractionNode_1.FractionNode(new AddNode(c, new multiplyNode_1.MultiplyNode(d, b)), d).simplify(opts);
139
166
  }
167
+ if ((0, oppositeNode_1.isOppositeNode)(a) && (0, fractionNode_1.isFractionNode)(a.child)) {
168
+ //-(c/d) + b = (-c+bd)/d
169
+ const c = a.child.leftChild;
170
+ const d = a.child.rightChild;
171
+ return new fractionNode_1.FractionNode(new AddNode(new oppositeNode_1.OppositeNode(c), new multiplyNode_1.MultiplyNode(d, b)), d).simplify(opts);
172
+ }
140
173
  if ((0, fractionNode_1.isFractionNode)(b) && !opts?.forceDistributeFractions) {
141
174
  //a+c/d
142
175
  const c = b.leftChild;
143
176
  const d = b.rightChild;
144
177
  return new fractionNode_1.FractionNode(new AddNode(c, new multiplyNode_1.MultiplyNode(d, a)), d).simplify(opts);
145
178
  }
179
+ if ((0, oppositeNode_1.isOppositeNode)(b) &&
180
+ (0, fractionNode_1.isFractionNode)(b.child) &&
181
+ !opts?.forceDistributeFractions) {
182
+ //a+-(c/d) = (da-c)/d
183
+ const c = b.child.leftChild;
184
+ const d = b.child.rightChild;
185
+ return new fractionNode_1.FractionNode(new AddNode(new oppositeNode_1.OppositeNode(c), new multiplyNode_1.MultiplyNode(d, a)), d).simplify(opts);
186
+ }
146
187
  if ((0, numberNode_1.isNumberNode)(a) && (0, numberNode_1.isNumberNode)(b)) {
147
188
  return new numberNode_1.NumberNode(a.value + b.value);
148
189
  }
@@ -269,5 +310,8 @@ class AddNode {
269
310
  (node.leftChild.equals(this.rightChild) &&
270
311
  node.rightChild.equals(this.leftChild))));
271
312
  }
313
+ toDetailedEvaluation(vars) {
314
+ return new AddNode(this.leftChild.toDetailedEvaluation(vars), this.rightChild.toDetailedEvaluation(vars));
315
+ }
272
316
  }
273
317
  exports.AddNode = AddNode;
@@ -30,5 +30,6 @@ export declare class DivideNode implements OperatorNode {
30
30
  evaluate(vars: Record<string, number>): number;
31
31
  simplify(): this;
32
32
  equals(node: AlgebraicNode): boolean;
33
+ toDetailedEvaluation(vars: Record<string, AlgebraicNode>): DivideNode;
33
34
  }
34
35
  //# sourceMappingURL=divideNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"divideNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/divideNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AA0BD,qBAAa,UAAW,YAAW,YAAY;IAC7C,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;gBAES,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa;IAQ/D,YAAY,IAAI,MAAM;IAGtB,kBAAkB;IAIlB,aAAa;;;;;;;;;IAQb,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAYpC,cAAc,IAAI,MAAM,EAAE;IAI1B,KAAK,IAAI,MAAM;IAGf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;CAO3B"}
1
+ {"version":3,"file":"divideNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/divideNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AA0BD,qBAAa,UAAW,YAAW,YAAY;IAC7C,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;gBAES,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa;IAQ/D,YAAY,IAAI,MAAM;IAGtB,kBAAkB;IAIlB,aAAa;;;;;;;;;IAQb,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAYpC,cAAc,IAAI,MAAM,EAAE;IAI1B,KAAK,IAAI,MAAM;IAGf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;IAO1B,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAMzD"}
@@ -86,5 +86,8 @@ class DivideNode {
86
86
  node.leftChild.equals(this.leftChild) &&
87
87
  node.rightChild.equals(this.rightChild));
88
88
  }
89
+ toDetailedEvaluation(vars) {
90
+ return new DivideNode(this.leftChild.toDetailedEvaluation(vars), this.rightChild.toDetailedEvaluation(vars));
91
+ }
89
92
  }
90
93
  exports.DivideNode = DivideNode;
@@ -31,5 +31,6 @@ export declare class FractionNode implements OperatorNode {
31
31
  evaluate(vars: Record<string, number>): number;
32
32
  simplify(opts?: SimplifyOptions): AlgebraicNode;
33
33
  equals(node: AlgebraicNode): boolean;
34
+ toDetailedEvaluation(vars: Record<string, AlgebraicNode>): FractionNode;
34
35
  }
35
36
  //# sourceMappingURL=fractionNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fractionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/fractionNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAK3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKlE,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AACD,qBAAa,YAAa,YAAW,YAAY;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAItB,aAAa;;;;;;;;;IAQb,UAAU;IAGV,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IA+BpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAI5C,KAAK,IAAI,MAAM;IAcf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IA0J/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAOrC"}
1
+ {"version":3,"file":"fractionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/fractionNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAK3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKlE,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AACD,qBAAa,YAAa,YAAW,YAAY;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAItB,aAAa;;;;;;;;;IAQb,UAAU;IAGV,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IA+BpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAI5C,KAAK,IAAI,MAAM;IAcf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IA2J/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAOpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAMzD"}
@@ -122,11 +122,11 @@ class FractionNode {
122
122
  }
123
123
  else if ((0, oppositeNode_1.isOppositeNode)(node)) {
124
124
  oppositesCount++;
125
- recursiveNums(node.child);
125
+ recursiveDenums(node.child);
126
126
  }
127
127
  else if ((0, numberNode_1.isNumberNode)(node) && node.value < 0) {
128
128
  oppositesCount++;
129
- externalsNums.push(new numberNode_1.NumberNode(Math.abs(node.value)));
129
+ externalsDenums.push(new numberNode_1.NumberNode(Math.abs(node.value)));
130
130
  }
131
131
  else {
132
132
  externalsDenums.push(node);
@@ -222,5 +222,8 @@ class FractionNode {
222
222
  node.leftChild.equals(this.leftChild) &&
223
223
  node.rightChild.equals(this.rightChild));
224
224
  }
225
+ toDetailedEvaluation(vars) {
226
+ return new FractionNode(this.leftChild.toDetailedEvaluation(vars), this.rightChild.toDetailedEvaluation(vars));
227
+ }
225
228
  }
226
229
  exports.FractionNode = FractionNode;
@@ -35,5 +35,6 @@ export declare class LimitNode implements OperatorNode {
35
35
  evaluate(vars: Record<string, number>): number;
36
36
  simplify(opts?: SimplifyOptions): AlgebraicNode;
37
37
  equals(node: AlgebraicNode): boolean;
38
+ toDetailedEvaluation(vars: Record<string, AlgebraicNode>): LimitNode;
38
39
  }
39
40
  //# sourceMappingURL=limitNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"limitNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/limitNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AAED,qBAAa,SAAU,YAAW,YAAY;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;IAE5B;;;;;;OAMG;gBAED,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,EAChB,IAAI,CAAC,EAAE,WAAW;IAWpB,YAAY,IAAI,MAAM;IAItB,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS;IAGhD,aAAa;;;;;;;;;;IAQb,cAAc,IAAI,MAAM,EAAE;IAI1B,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM;IAWlC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAI9C,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAG/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAOrC"}
1
+ {"version":3,"file":"limitNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/limitNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AAED,qBAAa,SAAU,YAAW,YAAY;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;IAE5B;;;;;;OAMG;gBAED,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,EAChB,IAAI,CAAC,EAAE,WAAW;IAWpB,YAAY,IAAI,MAAM;IAItB,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS;IAGhD,aAAa;;;;;;;;;;IAQb,cAAc,IAAI,MAAM,EAAE;IAI1B,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM;IAWlC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAI9C,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAG/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAOpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAOzD"}
@@ -60,5 +60,8 @@ class LimitNode {
60
60
  node.leftChild.equals(this.leftChild) &&
61
61
  node.rightChild.equals(this.rightChild));
62
62
  }
63
+ toDetailedEvaluation(vars) {
64
+ return new LimitNode(this.leftChild.toDetailedEvaluation(vars), this.rightChild.toDetailedEvaluation(vars), this.from);
65
+ }
63
66
  }
64
67
  exports.LimitNode = LimitNode;
@@ -31,5 +31,6 @@ export declare class MultiplyNode implements CommutativeOperatorNode {
31
31
  canonicalOrder(): void;
32
32
  simplify(opts?: SimplifyOptions): AlgebraicNode;
33
33
  equals(node: AlgebraicNode): boolean;
34
+ toDetailedEvaluation(vars: Record<string, AlgebraicNode>): MultiplyNode;
34
35
  }
35
36
  //# sourceMappingURL=multiplyNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiplyNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/multiplyNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EACL,uBAAuB,EACvB,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AAYxB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQlE,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,eAAO,MAAM,iBAAiB,QAAS,aAAa,EAAE,SAWrD,CAAC;AACF,qBAAa,YAAa,YAAW,uBAAuB;IAC1D,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,OAAO,aAGL;IAEF,YAAY,IAAI,MAAM;IAItB,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAoErC,SAAS;IAkDT,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE;IAyFrD,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAG5C,aAAa;;;;;;;;;IAYb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,IAAI;IAGJ,cAAc;IACd,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IA0H/C,MAAM,CAAC,IAAI,EAAE,aAAa;CAU3B"}
1
+ {"version":3,"file":"multiplyNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/multiplyNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EACL,uBAAuB,EACvB,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AAYxB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQlE,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,eAAO,MAAM,iBAAiB,QAAS,aAAa,EAAE,SAWrD,CAAC;AACF,qBAAa,YAAa,YAAW,uBAAuB;IAC1D,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,OAAO,aAGL;IAEF,YAAY,IAAI,MAAM;IAItB,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAoErC,SAAS;IAkDT,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE;IAyFrD,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAG5C,aAAa;;;;;;;;;IAYb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,IAAI;IAGJ,cAAc;IACd,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IA0H/C,MAAM,CAAC,IAAI,EAAE,aAAa;IAU1B,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAMzD"}
@@ -347,6 +347,9 @@ class MultiplyNode {
347
347
  (node.leftChild.equals(this.rightChild) &&
348
348
  node.rightChild.equals(this.leftChild))));
349
349
  }
350
+ toDetailedEvaluation(vars) {
351
+ return new MultiplyNode(this.leftChild.toDetailedEvaluation(vars), this.rightChild.toDetailedEvaluation(vars));
352
+ }
350
353
  }
351
354
  exports.MultiplyNode = MultiplyNode;
352
355
  const powerSimplify = (a, b, opts) => {
@@ -24,6 +24,7 @@ export declare class PowerNode implements OperatorNode {
24
24
  toAllValidTexs(): string[];
25
25
  toTex(): string;
26
26
  evaluate(vars: Record<string, number>): number;
27
+ toDetailedEvaluation(vars: Record<string, AlgebraicNode>): PowerNode;
27
28
  simplify(opts?: SimplifyOptions): AlgebraicNode;
28
29
  equals(node: AlgebraicNode): boolean;
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"powerNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/powerNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AAED,qBAAa,SAAU,YAAW,YAAY;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAGtB,aAAa;;;;;;;;;IAOb,iBAAiB;IAqBjB,cAAc,IAAI,MAAM,EAAE;IAI1B,KAAK,IAAI,MAAM;IAuBf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IA+FrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAqC/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAOrC;AAED,qBAAa,UAAW,SAAQ,SAAS;gBAC3B,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;CAGrD"}
1
+ {"version":3,"file":"powerNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/powerNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,SAAS,CAEnD;AAED,qBAAa,SAAU,YAAW,YAAY;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAGtB,aAAa;;;;;;;;;IAOb,iBAAiB;IAqBjB,cAAc,IAAI,MAAM,EAAE;IAI1B,KAAK,IAAI,MAAM;IAuBf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IA8FxD,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAqC/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAOrC;AAED,qBAAa,UAAW,SAAQ,SAAS;gBAC3B,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;CAGrD"}
@@ -81,6 +81,9 @@ class PowerNode {
81
81
  evaluate(vars) {
82
82
  return Math.pow(this.leftChild.evaluate(vars), this.rightChild.evaluate(vars));
83
83
  }
84
+ toDetailedEvaluation(vars) {
85
+ return new PowerNode(this.leftChild.toDetailedEvaluation(vars), this.rightChild.toDetailedEvaluation(vars));
86
+ }
84
87
  // simplify(): AlgebraicNode {
85
88
  // const leftSimplified = this.leftChild.simplify();
86
89
  // const rightSimplified = this.rightChild.simplify();
@@ -27,5 +27,6 @@ export declare class SubstractNode implements OperatorNode {
27
27
  evaluate(vars: Record<string, number>): number;
28
28
  simplify(opts?: SimplifyOptions): AlgebraicNode;
29
29
  equals(node: AlgebraicNode): boolean;
30
+ toDetailedEvaluation(vars: Record<string, AlgebraicNode>): SubstractNode;
30
31
  }
31
32
  //# sourceMappingURL=substractNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"substractNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/substractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGlE,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,aAAa,CAE3D;AACD,qBAAa,aAAc,YAAW,YAAY;IAChD,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAGtB,aAAa;;;;;;;;;IAOb,iBAAiB,IAAI,aAAa,EAAE;IAapC,cAAc,IAAI,MAAM,EAAE;IAG1B,kBAAkB;IAIlB,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAoBrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAM/B,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAOrC"}
1
+ {"version":3,"file":"substractNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/substractNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGlE,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,aAAa,CAE3D;AACD,qBAAa,aAAc,YAAW,YAAY;IAChD,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAGtB,aAAa;;;;;;;;;IAOb,iBAAiB,IAAI,aAAa,EAAE;IAapC,cAAc,IAAI,MAAM,EAAE;IAG1B,kBAAkB;IAIlB,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAoBrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAM/B,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAOpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAMzD"}
@@ -79,5 +79,8 @@ class SubstractNode {
79
79
  node.leftChild.equals(this.leftChild) &&
80
80
  node.rightChild.equals(this.rightChild));
81
81
  }
82
+ toDetailedEvaluation(vars) {
83
+ return new SubstractNode(this.leftChild.toDetailedEvaluation(vars), this.rightChild.toDetailedEvaluation(vars));
84
+ }
82
85
  }
83
86
  exports.SubstractNode = SubstractNode;
@@ -18,5 +18,6 @@ export declare class VariableNode implements AlgebraicNode {
18
18
  evaluate(vars: Record<string, number>): number;
19
19
  simplify(): this;
20
20
  equals(node: AlgebraicNode): boolean;
21
+ toDetailedEvaluation(vars: Record<string, AlgebraicNode>): AlgebraicNode;
21
22
  }
22
23
  //# sourceMappingURL=variableNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"variableNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/variables/variableNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AACD,qBAAa,YAAa,YAAW,aAAa;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,WAAqB;IACzB,SAAS,EAAE,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;IAIxB,aAAa;;;;IAMb,KAAK,IAAI,MAAM;IAGf,YAAY,IAAI,MAAM;IAGtB,QAAQ;IAGR,cAAc;IAGd,iBAAiB;IAIjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IASrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
1
+ {"version":3,"file":"variableNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/variables/variableNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AACD,qBAAa,YAAa,YAAW,aAAa;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,WAAqB;IACzB,SAAS,EAAE,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;IAIxB,aAAa;;;;IAMb,KAAK,IAAI,MAAM;IAGf,YAAY,IAAI,MAAM;IAGtB,QAAQ;IAGR,cAAc;IAGd,iBAAiB;IAIjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IASrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;IAG1B,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAKzD"}
@@ -48,5 +48,10 @@ class VariableNode {
48
48
  equals(node) {
49
49
  return isVariableNode(node) && node.name === this.name;
50
50
  }
51
+ toDetailedEvaluation(vars) {
52
+ if (!vars[this.name])
53
+ throw Error("Detailed Evaluation variable non handled");
54
+ return vars[this.name];
55
+ }
51
56
  }
52
57
  exports.VariableNode = VariableNode;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=rationalParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rationalParser.d.ts","sourceRoot":"","sources":["../../../src/tree/parsers/rationalParser.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ // export const rationalParser = (ans: string) => {
3
+ // if(ans.startsWith("\\frac")){
4
+ // const num
5
+ // }
6
+ // const nb = ans.unfrenchify();
7
+ // if (isNaN(nb)) return false;
8
+ // return nb.frenchify();
9
+ // };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "math-exercises",
3
- "version": "2.2.41",
3
+ "version": "2.2.43",
4
4
  "description": "Math exercises generator for middle school and high school",
5
5
  "main": "lib/index.js",
6
6
  "files": [