math-exercises 2.2.8 → 2.2.10

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 (237) hide show
  1. package/lib/exercises/math/calcul/arithmetics/commonDivisorsList.d.ts.map +1 -1
  2. package/lib/exercises/math/calcul/arithmetics/commonDivisorsList.js +24 -7
  3. package/lib/exercises/math/calcul/fractions/fractionsSumsSameDenominators.d.ts.map +1 -1
  4. package/lib/exercises/math/calcul/fractions/fractionsSumsSameDenominators.js +33 -1
  5. package/lib/exercises/math/calcul/operations/expressionNature.d.ts +8 -0
  6. package/lib/exercises/math/calcul/operations/expressionNature.d.ts.map +1 -1
  7. package/lib/exercises/math/calcul/operations/expressionNature.js +180 -80
  8. package/lib/exercises/math/calcul/operations/index.d.ts +1 -0
  9. package/lib/exercises/math/calcul/operations/index.d.ts.map +1 -1
  10. package/lib/exercises/math/calcul/operations/index.js +1 -0
  11. package/lib/exercises/math/calculLitteral/distributivity/doubleDistributivity.d.ts.map +1 -1
  12. package/lib/exercises/math/calculLitteral/distributivity/firstIdentity.d.ts.map +1 -1
  13. package/lib/exercises/math/calculLitteral/distributivity/secondIdentity.d.ts.map +1 -1
  14. package/lib/exercises/math/calculLitteral/distributivity/simpleDistributivity.d.ts.map +1 -1
  15. package/lib/exercises/math/calculLitteral/distributivity/thirdIdentity.d.ts.map +1 -1
  16. package/lib/exercises/math/calculLitteral/equation/equationType2Exercise.d.ts.map +1 -1
  17. package/lib/exercises/math/calculLitteral/equation/equationType4Exercise.d.ts.map +1 -1
  18. package/lib/exercises/math/calculLitteral/factorisation/factoIdRmq1.d.ts.map +1 -1
  19. package/lib/exercises/math/calculLitteral/factorisation/factoIdRmq2.d.ts.map +1 -1
  20. package/lib/exercises/math/derivation/derivative/convexityQuadrinomials.d.ts.map +1 -1
  21. package/lib/exercises/math/functions/basics/graphicInequation.d.ts.map +1 -1
  22. package/lib/exercises/math/functions/basics/graphicInequation.js +4 -1
  23. package/lib/exercises/math/functions/basics/twoFunctionsInequation.d.ts.map +1 -1
  24. package/lib/exercises/math/functions/basics/twoFunctionsInequation.js +12 -1
  25. package/lib/exercises/math/functions/trinoms/canonicalFromDevForm.d.ts.map +1 -1
  26. package/lib/exercises/math/geometry/cartesian/directionVector.d.ts.map +1 -1
  27. package/lib/exercises/math/geometry/cartesian/directionVectorEquation.d.ts.map +1 -1
  28. package/lib/exercises/math/geometry/cartesian/placeAPoint.d.ts.map +1 -1
  29. package/lib/exercises/math/geometry/cartesian/placeAPoint.js +0 -4
  30. package/lib/exercises/math/geometry/vectors/equalCaracteristicFromGraph.d.ts.map +1 -1
  31. package/lib/exercises/math/geometry/vectors/equalCaracteristicFromGraph.js +2 -3
  32. package/lib/exercises/math/geometry/vectors/vectorCoordinatesFromTwoPoints.d.ts.map +1 -1
  33. package/lib/exercises/math/geometry/vectors/vectorCoordinatesFromTwoPoints.js +17 -0
  34. package/lib/exercises/math/geometry/volumes/volumeOfCube.d.ts.map +1 -1
  35. package/lib/exercises/math/geometry/volumes/volumeOfCube.js +7 -1
  36. package/lib/exercises/math/index.d.ts +0 -1
  37. package/lib/exercises/math/index.d.ts.map +1 -1
  38. package/lib/exercises/math/index.js +0 -1
  39. package/lib/exercises/math/limits/rationalFracForbiddenValueLimit.d.ts.map +1 -1
  40. package/lib/exercises/math/powers/powersDivision.d.ts.map +1 -1
  41. package/lib/exercises/math/powers/powersDivision.js +35 -2
  42. package/lib/exercises/math/probaStat/calculateProbaOfBinomialDistribution.d.ts.map +1 -1
  43. package/lib/exercises/math/probaStat/calculateProbaOfBinomialDistribution.js +21 -0
  44. package/lib/exercises/math/probaStat/probaFromTableWithContext.js +1 -1
  45. package/lib/exercises/math/probaStat/stats1var/averageList.d.ts +7 -0
  46. package/lib/exercises/math/probaStat/stats1var/averageList.d.ts.map +1 -0
  47. package/lib/exercises/math/probaStat/stats1var/averageList.js +52 -0
  48. package/lib/exercises/math/probaStat/stats1var/etendueList.d.ts +7 -0
  49. package/lib/exercises/math/probaStat/stats1var/etendueList.d.ts.map +1 -0
  50. package/lib/exercises/math/probaStat/stats1var/etendueList.js +49 -0
  51. package/lib/exercises/math/probaStat/stats1var/index.d.ts +2 -0
  52. package/lib/exercises/math/probaStat/stats1var/index.d.ts.map +1 -1
  53. package/lib/exercises/math/probaStat/stats1var/index.js +2 -0
  54. package/lib/exercises/math/sequences/arithmetic/arithmeticFindTerm.d.ts.map +1 -1
  55. package/lib/exercises/math/sequences/arithmetic/arithmeticFindTerm.js +42 -0
  56. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromFirstTerms.d.ts.map +1 -1
  57. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromFirstTerms.js +7 -2
  58. package/lib/exercises/math/sequences/geometric/geometricFindTerm.d.ts.map +1 -1
  59. package/lib/exercises/math/sequences/geometric/geometricFindTerm.js +42 -0
  60. package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.d.ts +10 -0
  61. package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.d.ts.map +1 -0
  62. package/lib/exercises/math/sequences/geometric/geometricFirstTermsGeneralSum.js +56 -0
  63. package/lib/exercises/math/sequences/geometric/index.d.ts +1 -0
  64. package/lib/exercises/math/sequences/geometric/index.d.ts.map +1 -1
  65. package/lib/exercises/math/sequences/geometric/index.js +1 -0
  66. package/lib/exercises/math/sequences/index.d.ts +2 -0
  67. package/lib/exercises/math/sequences/index.d.ts.map +1 -1
  68. package/lib/exercises/math/sequences/index.js +2 -0
  69. package/lib/exercises/math/sequences/sequenceEvaluation.d.ts +10 -0
  70. package/lib/exercises/math/sequences/sequenceEvaluation.d.ts.map +1 -0
  71. package/lib/exercises/math/sequences/sequenceEvaluation.js +143 -0
  72. package/lib/exercises/math/sequences/sequencePlot.d.ts +9 -0
  73. package/lib/exercises/math/sequences/sequencePlot.d.ts.map +1 -0
  74. package/lib/exercises/math/sequences/sequencePlot.js +94 -0
  75. package/lib/exercises/math/sets/intervals/index.d.ts +1 -0
  76. package/lib/exercises/math/sets/intervals/index.d.ts.map +1 -1
  77. package/lib/exercises/math/sets/intervals/index.js +1 -0
  78. package/lib/exercises/math/sets/intervals/intervalToInequality.d.ts +1 -1
  79. package/lib/exercises/math/sets/intervals/intervalToInequality.js +2 -2
  80. package/lib/exercises/math/sets/intervals/intervalsIntersection.d.ts.map +1 -1
  81. package/lib/exercises/math/sets/intervals/intervalsIntersection.js +19 -1
  82. package/lib/exercises/math/sets/intervals/intervalsUnion.js +1 -1
  83. package/lib/exercises/math/trigonometry/arcValue.d.ts.map +1 -1
  84. package/lib/exercises/math/trigonometry/arcValue.js +23 -0
  85. package/lib/index.d.ts +26 -9
  86. package/lib/index.d.ts.map +1 -1
  87. package/lib/math/geometry/point.d.ts +11 -0
  88. package/lib/math/geometry/point.d.ts.map +1 -1
  89. package/lib/math/geometry/point.js +8 -0
  90. package/lib/math/numbers/reals/extendedRingElement.d.ts +3 -1
  91. package/lib/math/numbers/reals/extendedRingElement.d.ts.map +1 -1
  92. package/lib/math/numbers/reals/real.d.ts +1 -1
  93. package/lib/math/polynomials/trinom.d.ts +1 -1
  94. package/lib/math/sets/intervals/intervals.d.ts +3 -1
  95. package/lib/math/sets/intervals/intervals.d.ts.map +1 -1
  96. package/lib/math/sets/intervals/intervals.js +7 -3
  97. package/lib/math/sets/mathSet.d.ts +2 -2
  98. package/lib/math/sets/mathSet.d.ts.map +1 -1
  99. package/lib/math/sets/mathSetInterface.d.ts +1 -1
  100. package/lib/playground.d.ts.map +1 -1
  101. package/lib/playground.js +18 -2
  102. package/lib/server.d.ts.map +1 -1
  103. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  104. package/lib/tree/nodes/algebraicNode.js +0 -3
  105. package/lib/tree/nodes/complex/complexNode.d.ts +10 -1
  106. package/lib/tree/nodes/complex/complexNode.d.ts.map +1 -1
  107. package/lib/tree/nodes/complex/complexNode.js +7 -0
  108. package/lib/tree/nodes/equations/equalNode.d.ts +10 -1
  109. package/lib/tree/nodes/equations/equalNode.d.ts.map +1 -1
  110. package/lib/tree/nodes/equations/equalNode.js +7 -0
  111. package/lib/tree/nodes/equations/equationSolutionNode.d.ts +10 -1
  112. package/lib/tree/nodes/equations/equationSolutionNode.d.ts.map +1 -1
  113. package/lib/tree/nodes/equations/equationSolutionNode.js +6 -0
  114. package/lib/tree/nodes/equations/multiEqualNode.d.ts +7 -1
  115. package/lib/tree/nodes/equations/multiEqualNode.d.ts.map +1 -1
  116. package/lib/tree/nodes/equations/multiEqualNode.js +6 -0
  117. package/lib/tree/nodes/functions/absNode.d.ts +7 -1
  118. package/lib/tree/nodes/functions/absNode.d.ts.map +1 -1
  119. package/lib/tree/nodes/functions/absNode.js +6 -0
  120. package/lib/tree/nodes/functions/arcSinNode.d.ts +7 -1
  121. package/lib/tree/nodes/functions/arcSinNode.d.ts.map +1 -1
  122. package/lib/tree/nodes/functions/arcSinNode.js +8 -1
  123. package/lib/tree/nodes/functions/arccosNode.d.ts +7 -1
  124. package/lib/tree/nodes/functions/arccosNode.d.ts.map +1 -1
  125. package/lib/tree/nodes/functions/arccosNode.js +8 -1
  126. package/lib/tree/nodes/functions/arctanNode.d.ts +7 -1
  127. package/lib/tree/nodes/functions/arctanNode.d.ts.map +1 -1
  128. package/lib/tree/nodes/functions/arctanNode.js +8 -1
  129. package/lib/tree/nodes/functions/cosNode.d.ts +7 -1
  130. package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
  131. package/lib/tree/nodes/functions/cosNode.js +8 -1
  132. package/lib/tree/nodes/functions/expNode.d.ts +7 -1
  133. package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
  134. package/lib/tree/nodes/functions/expNode.js +6 -0
  135. package/lib/tree/nodes/functions/integralNode.d.ts +19 -2
  136. package/lib/tree/nodes/functions/integralNode.d.ts.map +1 -1
  137. package/lib/tree/nodes/functions/integralNode.js +20 -0
  138. package/lib/tree/nodes/functions/log10Node.d.ts +7 -1
  139. package/lib/tree/nodes/functions/log10Node.d.ts.map +1 -1
  140. package/lib/tree/nodes/functions/log10Node.js +6 -0
  141. package/lib/tree/nodes/functions/logNode.d.ts +7 -1
  142. package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
  143. package/lib/tree/nodes/functions/logNode.js +6 -0
  144. package/lib/tree/nodes/functions/oppositeNode.d.ts +7 -1
  145. package/lib/tree/nodes/functions/oppositeNode.d.ts.map +1 -1
  146. package/lib/tree/nodes/functions/oppositeNode.js +6 -0
  147. package/lib/tree/nodes/functions/sinNode.d.ts +7 -1
  148. package/lib/tree/nodes/functions/sinNode.d.ts.map +1 -1
  149. package/lib/tree/nodes/functions/sinNode.js +8 -1
  150. package/lib/tree/nodes/functions/sqrtNode.d.ts +7 -1
  151. package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
  152. package/lib/tree/nodes/functions/sqrtNode.js +6 -0
  153. package/lib/tree/nodes/functions/tanNode.d.ts +7 -1
  154. package/lib/tree/nodes/functions/tanNode.d.ts.map +1 -1
  155. package/lib/tree/nodes/functions/tanNode.js +8 -1
  156. package/lib/tree/nodes/geometry/degree.d.ts +5 -1
  157. package/lib/tree/nodes/geometry/degree.d.ts.map +1 -1
  158. package/lib/tree/nodes/geometry/degree.js +6 -0
  159. package/lib/tree/nodes/geometry/lengthNode.d.ts +5 -1
  160. package/lib/tree/nodes/geometry/lengthNode.d.ts.map +1 -1
  161. package/lib/tree/nodes/geometry/lengthNode.js +6 -0
  162. package/lib/tree/nodes/geometry/pointNode.d.ts +14 -1
  163. package/lib/tree/nodes/geometry/pointNode.d.ts.map +1 -1
  164. package/lib/tree/nodes/geometry/pointNode.js +6 -0
  165. package/lib/tree/nodes/geometry/vectorNode.d.ts +5 -1
  166. package/lib/tree/nodes/geometry/vectorNode.d.ts.map +1 -1
  167. package/lib/tree/nodes/geometry/vectorNode.js +6 -0
  168. package/lib/tree/nodes/hasVariableNode.d.ts +3 -0
  169. package/lib/tree/nodes/hasVariableNode.d.ts.map +1 -0
  170. package/lib/tree/nodes/hasVariableNode.js +16 -0
  171. package/lib/tree/nodes/inequations/inequationNode.d.ts +8 -1
  172. package/lib/tree/nodes/inequations/inequationNode.d.ts.map +1 -1
  173. package/lib/tree/nodes/inequations/inequationNode.js +7 -0
  174. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts +19 -1
  175. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts.map +1 -1
  176. package/lib/tree/nodes/inequations/inequationSolutionNode.js +6 -0
  177. package/lib/tree/nodes/node.d.ts +50 -8
  178. package/lib/tree/nodes/node.d.ts.map +1 -1
  179. package/lib/tree/nodes/node.js +49 -21
  180. package/lib/tree/nodes/nodeConstructor.d.ts +7 -0
  181. package/lib/tree/nodes/nodeConstructor.d.ts.map +1 -0
  182. package/lib/tree/nodes/nodeConstructor.js +170 -0
  183. package/lib/tree/nodes/numbers/constantNode.d.ts +7 -1
  184. package/lib/tree/nodes/numbers/constantNode.d.ts.map +1 -1
  185. package/lib/tree/nodes/numbers/constantNode.js +9 -1
  186. package/lib/tree/nodes/numbers/numberNode.d.ts +5 -1
  187. package/lib/tree/nodes/numbers/numberNode.d.ts.map +1 -1
  188. package/lib/tree/nodes/numbers/numberNode.js +6 -0
  189. package/lib/tree/nodes/numbers/percentNode.d.ts +5 -1
  190. package/lib/tree/nodes/numbers/percentNode.d.ts.map +1 -1
  191. package/lib/tree/nodes/numbers/percentNode.js +6 -0
  192. package/lib/tree/nodes/operators/addNode.d.ts +10 -1
  193. package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
  194. package/lib/tree/nodes/operators/addNode.js +7 -0
  195. package/lib/tree/nodes/operators/divideNode.d.ts +11 -1
  196. package/lib/tree/nodes/operators/divideNode.d.ts.map +1 -1
  197. package/lib/tree/nodes/operators/divideNode.js +12 -0
  198. package/lib/tree/nodes/operators/fractionNode.d.ts +10 -1
  199. package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
  200. package/lib/tree/nodes/operators/fractionNode.js +7 -0
  201. package/lib/tree/nodes/operators/limitNode.d.ts +11 -1
  202. package/lib/tree/nodes/operators/limitNode.d.ts.map +1 -1
  203. package/lib/tree/nodes/operators/limitNode.js +8 -0
  204. package/lib/tree/nodes/operators/multiplyNode.d.ts +10 -1
  205. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  206. package/lib/tree/nodes/operators/multiplyNode.js +7 -0
  207. package/lib/tree/nodes/operators/powerNode.d.ts +10 -1
  208. package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
  209. package/lib/tree/nodes/operators/powerNode.js +7 -0
  210. package/lib/tree/nodes/operators/substractNode.d.ts +11 -1
  211. package/lib/tree/nodes/operators/substractNode.d.ts.map +1 -1
  212. package/lib/tree/nodes/operators/substractNode.js +12 -0
  213. package/lib/tree/nodes/sets/belongsNode.d.ts +10 -1
  214. package/lib/tree/nodes/sets/belongsNode.d.ts.map +1 -1
  215. package/lib/tree/nodes/sets/belongsNode.js +7 -0
  216. package/lib/tree/nodes/sets/closure.d.ts +2 -0
  217. package/lib/tree/nodes/sets/closure.d.ts.map +1 -1
  218. package/lib/tree/nodes/sets/closure.js +20 -0
  219. package/lib/tree/nodes/sets/discreteSetNode.d.ts +10 -2
  220. package/lib/tree/nodes/sets/discreteSetNode.d.ts.map +1 -1
  221. package/lib/tree/nodes/sets/discreteSetNode.js +13 -3
  222. package/lib/tree/nodes/sets/intervalNode.d.ts +14 -2
  223. package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
  224. package/lib/tree/nodes/sets/intervalNode.js +21 -0
  225. package/lib/tree/nodes/sets/setNode.d.ts +1 -0
  226. package/lib/tree/nodes/sets/setNode.d.ts.map +1 -1
  227. package/lib/tree/nodes/sets/unionIntervalNode.d.ts +7 -1
  228. package/lib/tree/nodes/sets/unionIntervalNode.d.ts.map +1 -1
  229. package/lib/tree/nodes/sets/unionIntervalNode.js +6 -0
  230. package/lib/tree/nodes/variables/variableNode.d.ts +5 -1
  231. package/lib/tree/nodes/variables/variableNode.d.ts.map +1 -1
  232. package/lib/tree/nodes/variables/variableNode.js +6 -0
  233. package/lib/tree/utilities/operatorComposition.js +4 -2
  234. package/lib/utils/alignTex.js +11 -9
  235. package/lib/utils/diceFlip.d.ts.map +1 -1
  236. package/lib/utils/diceFlip.js +2 -6
  237. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"inequationSolutionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/inequations/inequationSolutionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,YAAY,EAAkB,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,KAAK,6BAA6B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAC/E,qBAAa,sBAAuB,YAAW,IAAI;IACjD,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,YAAY,GAAG,iBAAiB,CAAC;IACnD,IAAI,CAAC,EAAE,WAAW,CAAC;gBAEjB,gBAAgB,EAAE,YAAY,GAAG,iBAAiB,EAClD,MAAM,CAAC,EAAE,6BAA6B;IAcxC,SAAS;IAUT,cAAc;IAId,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAepC,YAAY;IAGZ,QAAQ;IAGR,KAAK;CAGN"}
1
+ {"version":3,"file":"inequationSolutionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/inequations/inequationSolutionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAkB,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,KAAK,6BAA6B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAC/E,qBAAa,sBAAuB,YAAW,IAAI;IACjD,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,YAAY,GAAG,iBAAiB,CAAC;IACnD,IAAI,CAAC,EAAE,WAAW,CAAC;gBAEjB,gBAAgB,EAAE,YAAY,GAAG,iBAAiB,EAClD,MAAM,CAAC,EAAE,6BAA6B;IAaxC,aAAa;;;;;;;;;;;;;;;;;;IAMb,SAAS;IAUT,cAAc;IAId,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAepC,YAAY;IAGZ,QAAQ;IAGR,KAAK;CAGN"}
@@ -15,6 +15,12 @@ class InequationSolutionNode {
15
15
  }
16
16
  : { allowRawRightChildAsSolution: true };
17
17
  }
18
+ toIdentifiers() {
19
+ return {
20
+ id: node_1.NodeIds.inequationSolution,
21
+ intervalSolution: this.intervalSolution.toIdentifiers(),
22
+ };
23
+ }
18
24
  toAllTexs() {
19
25
  const intervalTex = this.intervalSolution.toTex();
20
26
  const res = [
@@ -4,13 +4,13 @@ export declare enum NodeType {
4
4
  variable = 2,
5
5
  operator = 3,
6
6
  function = 4,
7
- set = 5,
8
- inequation = 6,
9
- point = 7,
10
- mesure = 8,
11
- equality = 9,
12
- belongs = 10,
13
- vector = 11
7
+ inequation = 5,
8
+ point = 6,
9
+ mesure = 7,
10
+ equality = 8,
11
+ belongs = 9,
12
+ vector = 10,
13
+ set = 11
14
14
  }
15
15
  export type NodeOptions = {
16
16
  forceTimesSign?: boolean;
@@ -31,6 +31,46 @@ export type ToTexOptions = {
31
31
  notScientific?: boolean;
32
32
  forceNoSimplification?: boolean;
33
33
  };
34
+ export declare enum NodeIds {
35
+ add = 0,
36
+ substract = 1,
37
+ multiply = 2,
38
+ fraction = 3,
39
+ divide = 4,
40
+ power = 5,
41
+ limit = 6,
42
+ number = 7,
43
+ percent = 8,
44
+ constant = 9,
45
+ variable = 10,
46
+ belongs = 11,
47
+ discreteSet = 12,
48
+ interval = 13,
49
+ union = 14,
50
+ complex = 15,
51
+ equal = 16,
52
+ multiEqual = 17,
53
+ equationSolution = 18,
54
+ abs = 19,
55
+ arccos = 20,
56
+ arcsin = 21,
57
+ arctan = 22,
58
+ cos = 23,
59
+ sin = 24,
60
+ tan = 25,
61
+ log = 26,
62
+ log10 = 27,
63
+ exp = 28,
64
+ sqrt = 29,
65
+ integral = 30,
66
+ opposite = 31,
67
+ degree = 32,
68
+ length = 33,
69
+ point = 34,
70
+ vector = 35,
71
+ inequation = 36,
72
+ inequationSolution = 37
73
+ }
34
74
  export interface Node {
35
75
  type: NodeType;
36
76
  opts?: NodeOptions;
@@ -38,6 +78,8 @@ export interface Node {
38
78
  toEquivalentNodes: (opts?: NodeOptions) => Node[];
39
79
  toAllValidTexs: (opts?: NodeOptions) => string[];
40
80
  toTex: (opts?: ToTexOptions) => string;
81
+ toIdentifiers: () => {
82
+ id: NodeIds;
83
+ } & Record<string, any>;
41
84
  }
42
- export declare const hasVariableNode: (n: Node) => boolean;
43
85
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/tree/nodes/node.ts"],"names":[],"mappings":"AAIA,oBAAY,QAAQ;IAClB,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,GAAG,IAAA;IACH,UAAU,IAAA;IACV,KAAK,IAAA;IACL,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,OAAO,KAAA;IACP,MAAM,KAAA;CACP;AACD,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AACF,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;IAClD,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,MAAM,EAAE,CAAC;IACjD,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,MAAM,CAAC;CAGxC;AAED,eAAO,MAAM,eAAe,MAAO,IAAI,KAAG,OAMzC,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/tree/nodes/node.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,UAAU,IAAA;IACV,KAAK,IAAA;IACL,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,MAAM,KAAA;IACN,GAAG,KAAA;CACJ;AACD,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,oBAAY,OAAO;IACjB,GAAG,IAAA;IACH,SAAS,IAAA;IACT,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,KAAK,IAAA;IACL,KAAK,IAAA;IACL,MAAM,IAAA;IACN,OAAO,IAAA;IACP,QAAQ,IAAA;IACR,QAAQ,KAAA;IACR,OAAO,KAAA;IACP,WAAW,KAAA;IACX,QAAQ,KAAA;IACR,KAAK,KAAA;IACL,OAAO,KAAA;IACP,KAAK,KAAA;IACL,UAAU,KAAA;IACV,gBAAgB,KAAA;IAChB,GAAG,KAAA;IACH,MAAM,KAAA;IACN,MAAM,KAAA;IACN,MAAM,KAAA;IACN,GAAG,KAAA;IACH,GAAG,KAAA;IACH,GAAG,KAAA;IACH,GAAG,KAAA;IACH,KAAK,KAAA;IACL,GAAG,KAAA;IACH,IAAI,KAAA;IACJ,QAAQ,KAAA;IACR,QAAQ,KAAA;IACR,MAAM,KAAA;IACN,MAAM,KAAA;IACN,KAAK,KAAA;IACL,MAAM,KAAA;IACN,UAAU,KAAA;IACV,kBAAkB,KAAA;CACnB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;IAClD,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,MAAM,EAAE,CAAC;IACjD,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,MAAM,CAAC;IAGvC,aAAa,EAAE,MAAM;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5D"}
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasVariableNode = exports.NodeType = void 0;
4
- const functionNode_1 = require("./functions/functionNode");
5
- const operatorNode_1 = require("./operators/operatorNode");
6
- const variableNode_1 = require("./variables/variableNode");
3
+ exports.NodeIds = exports.NodeType = void 0;
7
4
  var NodeType;
8
5
  (function (NodeType) {
9
6
  NodeType[NodeType["number"] = 0] = "number";
@@ -11,21 +8,52 @@ var NodeType;
11
8
  NodeType[NodeType["variable"] = 2] = "variable";
12
9
  NodeType[NodeType["operator"] = 3] = "operator";
13
10
  NodeType[NodeType["function"] = 4] = "function";
14
- NodeType[NodeType["set"] = 5] = "set";
15
- NodeType[NodeType["inequation"] = 6] = "inequation";
16
- NodeType[NodeType["point"] = 7] = "point";
17
- NodeType[NodeType["mesure"] = 8] = "mesure";
18
- NodeType[NodeType["equality"] = 9] = "equality";
19
- NodeType[NodeType["belongs"] = 10] = "belongs";
20
- NodeType[NodeType["vector"] = 11] = "vector";
11
+ NodeType[NodeType["inequation"] = 5] = "inequation";
12
+ NodeType[NodeType["point"] = 6] = "point";
13
+ NodeType[NodeType["mesure"] = 7] = "mesure";
14
+ NodeType[NodeType["equality"] = 8] = "equality";
15
+ NodeType[NodeType["belongs"] = 9] = "belongs";
16
+ NodeType[NodeType["vector"] = 10] = "vector";
17
+ NodeType[NodeType["set"] = 11] = "set";
21
18
  })(NodeType || (exports.NodeType = NodeType = {}));
22
- const hasVariableNode = (n) => {
23
- if ((0, variableNode_1.isVariableNode)(n))
24
- return true;
25
- if ((0, operatorNode_1.isOperatorNode)(n))
26
- return (0, exports.hasVariableNode)(n.leftChild) || (0, exports.hasVariableNode)(n.rightChild);
27
- if ((0, functionNode_1.isFunctionNode)(n))
28
- return (0, exports.hasVariableNode)(n.child);
29
- return false;
30
- };
31
- exports.hasVariableNode = hasVariableNode;
19
+ var NodeIds;
20
+ (function (NodeIds) {
21
+ NodeIds[NodeIds["add"] = 0] = "add";
22
+ NodeIds[NodeIds["substract"] = 1] = "substract";
23
+ NodeIds[NodeIds["multiply"] = 2] = "multiply";
24
+ NodeIds[NodeIds["fraction"] = 3] = "fraction";
25
+ NodeIds[NodeIds["divide"] = 4] = "divide";
26
+ NodeIds[NodeIds["power"] = 5] = "power";
27
+ NodeIds[NodeIds["limit"] = 6] = "limit";
28
+ NodeIds[NodeIds["number"] = 7] = "number";
29
+ NodeIds[NodeIds["percent"] = 8] = "percent";
30
+ NodeIds[NodeIds["constant"] = 9] = "constant";
31
+ NodeIds[NodeIds["variable"] = 10] = "variable";
32
+ NodeIds[NodeIds["belongs"] = 11] = "belongs";
33
+ NodeIds[NodeIds["discreteSet"] = 12] = "discreteSet";
34
+ NodeIds[NodeIds["interval"] = 13] = "interval";
35
+ NodeIds[NodeIds["union"] = 14] = "union";
36
+ NodeIds[NodeIds["complex"] = 15] = "complex";
37
+ NodeIds[NodeIds["equal"] = 16] = "equal";
38
+ NodeIds[NodeIds["multiEqual"] = 17] = "multiEqual";
39
+ NodeIds[NodeIds["equationSolution"] = 18] = "equationSolution";
40
+ NodeIds[NodeIds["abs"] = 19] = "abs";
41
+ NodeIds[NodeIds["arccos"] = 20] = "arccos";
42
+ NodeIds[NodeIds["arcsin"] = 21] = "arcsin";
43
+ NodeIds[NodeIds["arctan"] = 22] = "arctan";
44
+ NodeIds[NodeIds["cos"] = 23] = "cos";
45
+ NodeIds[NodeIds["sin"] = 24] = "sin";
46
+ NodeIds[NodeIds["tan"] = 25] = "tan";
47
+ NodeIds[NodeIds["log"] = 26] = "log";
48
+ NodeIds[NodeIds["log10"] = 27] = "log10";
49
+ NodeIds[NodeIds["exp"] = 28] = "exp";
50
+ NodeIds[NodeIds["sqrt"] = 29] = "sqrt";
51
+ NodeIds[NodeIds["integral"] = 30] = "integral";
52
+ NodeIds[NodeIds["opposite"] = 31] = "opposite";
53
+ NodeIds[NodeIds["degree"] = 32] = "degree";
54
+ NodeIds[NodeIds["length"] = 33] = "length";
55
+ NodeIds[NodeIds["point"] = 34] = "point";
56
+ NodeIds[NodeIds["vector"] = 35] = "vector";
57
+ NodeIds[NodeIds["inequation"] = 36] = "inequation";
58
+ NodeIds[NodeIds["inequationSolution"] = 37] = "inequationSolution";
59
+ })(NodeIds || (exports.NodeIds = NodeIds = {}));
@@ -0,0 +1,7 @@
1
+ import { Node, NodeIds } from "./node";
2
+ export declare abstract class NodeConstructor {
3
+ static fromIdentifiers(identifiers: {
4
+ id: NodeIds;
5
+ } & Record<string, any>): Node;
6
+ }
7
+ //# sourceMappingURL=nodeConstructor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeConstructor.d.ts","sourceRoot":"","sources":["../../../src/tree/nodes/nodeConstructor.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAkBvC,8BAAsB,eAAe;IACnC,MAAM,CAAC,eAAe,CACpB,WAAW,EAAE;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjD,IAAI;CAwQR"}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeConstructor = void 0;
4
+ const point_1 = require("../../math/geometry/point");
5
+ const complexNode_1 = require("./complex/complexNode");
6
+ const equalNode_1 = require("./equations/equalNode");
7
+ const equationSolutionNode_1 = require("./equations/equationSolutionNode");
8
+ const multiEqualNode_1 = require("./equations/multiEqualNode");
9
+ const absNode_1 = require("./functions/absNode");
10
+ const arcSinNode_1 = require("./functions/arcSinNode");
11
+ const arccosNode_1 = require("./functions/arccosNode");
12
+ const arctanNode_1 = require("./functions/arctanNode");
13
+ const cosNode_1 = require("./functions/cosNode");
14
+ const expNode_1 = require("./functions/expNode");
15
+ const integralNode_1 = require("./functions/integralNode");
16
+ const log10Node_1 = require("./functions/log10Node");
17
+ const logNode_1 = require("./functions/logNode");
18
+ const oppositeNode_1 = require("./functions/oppositeNode");
19
+ const sinNode_1 = require("./functions/sinNode");
20
+ const sqrtNode_1 = require("./functions/sqrtNode");
21
+ const tanNode_1 = require("./functions/tanNode");
22
+ const degree_1 = require("./geometry/degree");
23
+ const lengthNode_1 = require("./geometry/lengthNode");
24
+ const pointNode_1 = require("./geometry/pointNode");
25
+ const vectorNode_1 = require("./geometry/vectorNode");
26
+ const inequationNode_1 = require("./inequations/inequationNode");
27
+ const inequationSolutionNode_1 = require("./inequations/inequationSolutionNode");
28
+ const node_1 = require("./node");
29
+ const constantNode_1 = require("./numbers/constantNode");
30
+ const numberNode_1 = require("./numbers/numberNode");
31
+ const percentNode_1 = require("./numbers/percentNode");
32
+ const addNode_1 = require("./operators/addNode");
33
+ const divideNode_1 = require("./operators/divideNode");
34
+ const fractionNode_1 = require("./operators/fractionNode");
35
+ const limitNode_1 = require("./operators/limitNode");
36
+ const multiplyNode_1 = require("./operators/multiplyNode");
37
+ const powerNode_1 = require("./operators/powerNode");
38
+ const substractNode_1 = require("./operators/substractNode");
39
+ const belongsNode_1 = require("./sets/belongsNode");
40
+ const discreteSetNode_1 = require("./sets/discreteSetNode");
41
+ const intervalNode_1 = require("./sets/intervalNode");
42
+ const unionIntervalNode_1 = require("./sets/unionIntervalNode");
43
+ const variableNode_1 = require("./variables/variableNode");
44
+ class NodeConstructor {
45
+ static fromIdentifiers(identifiers) {
46
+ switch (identifiers.id) {
47
+ case node_1.NodeIds.variable: {
48
+ return new variableNode_1.VariableNode(identifiers.name);
49
+ }
50
+ case node_1.NodeIds.number: {
51
+ return new numberNode_1.NumberNode(identifiers.value);
52
+ }
53
+ case node_1.NodeIds.constant: {
54
+ return new constantNode_1.ConstantNode(identifiers.tex, identifiers.mathString, identifiers.value);
55
+ }
56
+ case node_1.NodeIds.complex: {
57
+ return new complexNode_1.ComplexNode(NodeConstructor.fromIdentifiers(identifiers.re), NodeConstructor.fromIdentifiers(identifiers.im));
58
+ }
59
+ case node_1.NodeIds.percent: {
60
+ return new percentNode_1.PercentNode(identifiers.value);
61
+ }
62
+ /**Equations */
63
+ case node_1.NodeIds.equal: {
64
+ return new equalNode_1.EqualNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild));
65
+ }
66
+ case node_1.NodeIds.equationSolution: {
67
+ return new equationSolutionNode_1.EquationSolutionNode(NodeConstructor.fromIdentifiers(identifiers.solutionsSet));
68
+ }
69
+ case node_1.NodeIds.multiEqual: {
70
+ return new multiEqualNode_1.MultiEqualNode(identifiers.children.map((e) => NodeConstructor.fromIdentifiers(e)));
71
+ }
72
+ /**Inequations */
73
+ case node_1.NodeIds.inequation: {
74
+ return new inequationNode_1.InequationNode(identifiers.children.map((e) => NodeConstructor.fromIdentifiers(e)), identifiers.symbols);
75
+ }
76
+ case node_1.NodeIds.inequationSolution: {
77
+ return new inequationSolutionNode_1.InequationSolutionNode(NodeConstructor.fromIdentifiers(identifiers.intervalSolution));
78
+ }
79
+ /**Geométrie */
80
+ case node_1.NodeIds.degree: {
81
+ return new degree_1.DegreeNode(identifiers.value);
82
+ }
83
+ case node_1.NodeIds.point: {
84
+ return new pointNode_1.PointNode(new point_1.Point(identifiers.point.name, NodeConstructor.fromIdentifiers(identifiers.point.x), NodeConstructor.fromIdentifiers(identifiers.point.y)));
85
+ }
86
+ case node_1.NodeIds.length: {
87
+ return new lengthNode_1.LengthNode(identifiers.name);
88
+ }
89
+ case node_1.NodeIds.vector: {
90
+ return new vectorNode_1.VectorNode(identifiers.name);
91
+ }
92
+ /**Functions */
93
+ case node_1.NodeIds.abs: {
94
+ return new absNode_1.AbsNode(NodeConstructor.fromIdentifiers(identifiers.child));
95
+ }
96
+ case node_1.NodeIds.arccos: {
97
+ return new arccosNode_1.ArccosNode(NodeConstructor.fromIdentifiers(identifiers.child));
98
+ }
99
+ case node_1.NodeIds.arcsin: {
100
+ return new arcSinNode_1.ArcsinNode(NodeConstructor.fromIdentifiers(identifiers.child));
101
+ }
102
+ case node_1.NodeIds.arctan: {
103
+ return new arctanNode_1.ArctanNode(NodeConstructor.fromIdentifiers(identifiers.child));
104
+ }
105
+ case node_1.NodeIds.cos: {
106
+ return new cosNode_1.CosNode(NodeConstructor.fromIdentifiers(identifiers.child));
107
+ }
108
+ case node_1.NodeIds.sin: {
109
+ return new sinNode_1.SinNode(NodeConstructor.fromIdentifiers(identifiers.child));
110
+ }
111
+ case node_1.NodeIds.tan: {
112
+ return new tanNode_1.TanNode(NodeConstructor.fromIdentifiers(identifiers.child));
113
+ }
114
+ case node_1.NodeIds.exp: {
115
+ return new expNode_1.ExpNode(NodeConstructor.fromIdentifiers(identifiers.child));
116
+ }
117
+ case node_1.NodeIds.integral: {
118
+ return new integralNode_1.IntegralNode(NodeConstructor.fromIdentifiers(identifiers.functionNode), NodeConstructor.fromIdentifiers(identifiers.lowerBound), NodeConstructor.fromIdentifiers(identifiers.upperBound), identifiers.variable);
119
+ }
120
+ case node_1.NodeIds.log10: {
121
+ return new log10Node_1.Log10Node(NodeConstructor.fromIdentifiers(identifiers.child));
122
+ }
123
+ case node_1.NodeIds.log: {
124
+ return new logNode_1.LogNode(NodeConstructor.fromIdentifiers(identifiers.child));
125
+ }
126
+ case node_1.NodeIds.opposite: {
127
+ return new oppositeNode_1.OppositeNode(NodeConstructor.fromIdentifiers(identifiers.child));
128
+ }
129
+ case node_1.NodeIds.sqrt: {
130
+ return new sqrtNode_1.SqrtNode(NodeConstructor.fromIdentifiers(identifiers.child));
131
+ }
132
+ /**Sets */
133
+ case node_1.NodeIds.discreteSet: {
134
+ return new discreteSetNode_1.DiscreteSetNode(identifiers.children.map((e) => NodeConstructor.fromIdentifiers(e)));
135
+ }
136
+ case node_1.NodeIds.belongs: {
137
+ return new belongsNode_1.BelongsNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild));
138
+ }
139
+ case node_1.NodeIds.interval: {
140
+ return new intervalNode_1.IntervalNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild), identifiers.closure);
141
+ }
142
+ case node_1.NodeIds.union: {
143
+ return new unionIntervalNode_1.UnionIntervalNode(identifiers.children.map((e) => NodeConstructor.fromIdentifiers(e)));
144
+ }
145
+ /**Operators */
146
+ case node_1.NodeIds.add: {
147
+ return new addNode_1.AddNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild));
148
+ }
149
+ case node_1.NodeIds.substract: {
150
+ return new substractNode_1.SubstractNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild));
151
+ }
152
+ case node_1.NodeIds.multiply: {
153
+ return new multiplyNode_1.MultiplyNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild));
154
+ }
155
+ case node_1.NodeIds.divide: {
156
+ return new divideNode_1.DivideNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild));
157
+ }
158
+ case node_1.NodeIds.fraction: {
159
+ return new fractionNode_1.FractionNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild));
160
+ }
161
+ case node_1.NodeIds.power: {
162
+ return new powerNode_1.PowerNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild));
163
+ }
164
+ case node_1.NodeIds.limit: {
165
+ return new limitNode_1.LimitNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild), identifiers.from);
166
+ }
167
+ }
168
+ }
169
+ }
170
+ exports.NodeConstructor = NodeConstructor;
@@ -1,4 +1,4 @@
1
- import { Node, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeType } from "../node";
2
2
  import { AlgebraicNode } from "../algebraicNode";
3
3
  export declare function isConstantNode(a: Node): a is ConstantNode;
4
4
  export declare class ConstantNode implements AlgebraicNode {
@@ -11,6 +11,12 @@ export declare class ConstantNode implements AlgebraicNode {
11
11
  toMathString(): string;
12
12
  toTex(): string;
13
13
  toAllValidTexs(): string[];
14
+ toIdentifiers(): {
15
+ id: NodeIds;
16
+ mathString: string;
17
+ tex: string;
18
+ value: number;
19
+ };
14
20
  toEquivalentNodes(): this[];
15
21
  evaluate(vars: Record<string, number>): number;
16
22
  simplify(): this;
@@ -1 +1 @@
1
- {"version":3,"file":"constantNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/numbers/constantNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AACD,qBAAa,YAAa,YAAW,aAAa;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAqB;IACnC,SAAS,EAAE,OAAO,CAAC;gBACP,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAO1D,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAMf,cAAc;IAGd,iBAAiB;IAGjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
1
+ {"version":3,"file":"constantNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/numbers/constantNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AACD,qBAAa,YAAa,YAAW,aAAa;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBACP,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAQ1D,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAMf,cAAc;IAGd,aAAa;;;;;;IAQb,iBAAiB;IAGjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
@@ -9,11 +9,11 @@ function isConstantNode(a) {
9
9
  exports.isConstantNode = isConstantNode;
10
10
  class ConstantNode {
11
11
  constructor(tex, mathString, value) {
12
- this.type = node_1.NodeType.constant;
13
12
  this.tex = tex;
14
13
  this.mathString = mathString;
15
14
  this.value = value;
16
15
  this.isNumeric = true;
16
+ this.type = node_1.NodeType.constant;
17
17
  }
18
18
  toMathString() {
19
19
  return `${this.mathString}`;
@@ -27,6 +27,14 @@ class ConstantNode {
27
27
  toAllValidTexs() {
28
28
  return this.toEquivalentNodes().map((node) => node.toTex());
29
29
  }
30
+ toIdentifiers() {
31
+ return {
32
+ id: node_1.NodeIds.constant,
33
+ mathString: this.mathString,
34
+ tex: this.tex,
35
+ value: this.value,
36
+ };
37
+ }
30
38
  toEquivalentNodes() {
31
39
  return [this];
32
40
  }
@@ -1,4 +1,4 @@
1
- import { Node, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeType } from "../node";
2
2
  import { AlgebraicNode } from "../algebraicNode";
3
3
  export declare function isNumberNode(a: Node): a is NumberNode;
4
4
  export declare abstract class NumberNodeConstructor {
@@ -14,6 +14,10 @@ export declare class NumberNode implements AlgebraicNode {
14
14
  toMathString(): string;
15
15
  toTex(): string;
16
16
  toMathjs(): string;
17
+ toIdentifiers(): {
18
+ id: NodeIds;
19
+ value: number;
20
+ };
17
21
  toAllValidTexs(): string[];
18
22
  toEquivalentNodes(): this[];
19
23
  evaluate(vars: Record<string, number>): number;
@@ -1 +1 @@
1
- {"version":3,"file":"numberNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/numbers/numberNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AAED,8BAAsB,qBAAqB;IACzC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,EAAO;CAGhE;AACD,qBAAa,UAAW,YAAW,aAAa;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAmB;IACjC,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAO5D,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAGf,QAAQ;IAGR,cAAc;IAOd,iBAAiB;IAGjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
1
+ {"version":3,"file":"numberNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/numbers/numberNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AAED,8BAAsB,qBAAqB;IACzC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,EAAO;CAGhE;AACD,qBAAa,UAAW,YAAW,aAAa;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAmB;IACjC,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAO5D,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAGf,QAAQ;IAGR,aAAa;;;;IAMb,cAAc;IAOd,iBAAiB;IAGjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,QAAQ;IAGR,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
@@ -30,6 +30,12 @@ class NumberNode {
30
30
  toMathjs() {
31
31
  return this.toMathString();
32
32
  }
33
+ toIdentifiers() {
34
+ return {
35
+ id: node_1.NodeIds.number,
36
+ value: this.value,
37
+ };
38
+ }
33
39
  toAllValidTexs() {
34
40
  const res = [];
35
41
  res.push(this.tex);
@@ -1,4 +1,4 @@
1
- import { Node, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeType } from "../node";
2
2
  export declare class PercentNode implements Node {
3
3
  value: number;
4
4
  type: NodeType;
@@ -7,6 +7,10 @@ export declare class PercentNode implements Node {
7
7
  toTex(): string;
8
8
  toMathjs(): string;
9
9
  toAllValidTexs(): string[];
10
+ toIdentifiers(): {
11
+ id: NodeIds;
12
+ value: number;
13
+ };
10
14
  toEquivalentNodes(): this[];
11
15
  }
12
16
  //# sourceMappingURL=percentNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"percentNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/numbers/percentNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,WAAY,YAAW,IAAI;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;gBAEH,KAAK,EAAE,MAAM;IAKzB,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAGf,QAAQ;IAGR,cAAc;IAGd,iBAAiB;CAGlB"}
1
+ {"version":3,"file":"percentNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/numbers/percentNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAElD,qBAAa,WAAY,YAAW,IAAI;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;gBAEH,KAAK,EAAE,MAAM;IAKzB,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAGf,QAAQ;IAGR,cAAc;IAGd,aAAa;;;;IAMb,iBAAiB;CAGlB"}
@@ -19,6 +19,12 @@ class PercentNode {
19
19
  toAllValidTexs() {
20
20
  return [this.toTex()];
21
21
  }
22
+ toIdentifiers() {
23
+ return {
24
+ id: node_1.NodeIds.percent,
25
+ value: this.value,
26
+ };
27
+ }
22
28
  toEquivalentNodes() {
23
29
  return [this];
24
30
  }
@@ -1,4 +1,4 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  import { CommutativeOperatorNode, OperatorIds } from "./operatorNode";
3
3
  import { AlgebraicNode, SimplifyOptions } from "../algebraicNode";
4
4
  export declare function isAddNode(a: Node): a is AddNode;
@@ -18,6 +18,15 @@ export declare class AddNode implements CommutativeOperatorNode {
18
18
  toTex(): string;
19
19
  evaluate(vars: Record<string, number>): number;
20
20
  simplify(opts?: SimplifyOptions): AlgebraicNode;
21
+ toIdentifiers(): {
22
+ id: NodeIds;
23
+ leftChild: {
24
+ id: NodeIds;
25
+ } & Record<string, any>;
26
+ rightChild: {
27
+ id: NodeIds;
28
+ } & Record<string, any>;
29
+ };
21
30
  equals(node: AlgebraicNode): boolean;
22
31
  }
23
32
  //# 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,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EACL,uBAAuB,EACvB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAMD,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,IAAI,MAAM;IAIf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IA2K/C,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,MAAM,SAAS,CAAC;AAC/D,OAAO,EACL,uBAAuB,EACvB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAMD,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,IAAI,MAAM;IAIf,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"}
@@ -245,6 +245,13 @@ class AddNode {
245
245
  return externals[0];
246
246
  return (0, operatorComposition_1.operatorComposition)(AddNode, externals);
247
247
  }
248
+ toIdentifiers() {
249
+ return {
250
+ id: node_1.NodeIds.add,
251
+ leftChild: this.leftChild.toIdentifiers(),
252
+ rightChild: this.rightChild.toIdentifiers(),
253
+ };
254
+ }
248
255
  equals(node) {
249
256
  //!incorrect, il faut plutot vérifier qu'ils ont les meme externals
250
257
  return (isAddNode(node) &&
@@ -1,4 +1,4 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  import { OperatorIds, OperatorNode } from "./operatorNode";
3
3
  import { AlgebraicNode } from "../algebraicNode";
4
4
  export declare function isDivideNode(a: Node): a is DivideNode;
@@ -14,6 +14,16 @@ export declare class DivideNode implements OperatorNode {
14
14
  */
15
15
  constructor(leftChild: AlgebraicNode, rightChild: AlgebraicNode);
16
16
  toMathString(): string;
17
+ dangerouslyShuffle(): void;
18
+ toIdentifiers(): {
19
+ id: NodeIds;
20
+ leftChild: {
21
+ id: NodeIds;
22
+ } & Record<string, any>;
23
+ rightChild: {
24
+ id: NodeIds;
25
+ } & Record<string, any>;
26
+ };
17
27
  toEquivalentNodes(opts?: NodeOptions): AlgebraicNode[];
18
28
  toAllValidTexs(): string[];
19
29
  toTex(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"divideNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/divideNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,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;IAItB,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;CAO3B"}
@@ -4,6 +4,7 @@ exports.DivideNode = exports.isDivideNode = void 0;
4
4
  // import { divide } from "mathjs";
5
5
  const node_1 = require("../node");
6
6
  const operatorNode_1 = require("./operatorNode");
7
+ const coinFlip_1 = require("../../../utils/coinFlip");
7
8
  function isDivideNode(a) {
8
9
  return (0, operatorNode_1.isOperatorNode)(a) && a.id === operatorNode_1.OperatorIds.divide;
9
10
  }
@@ -43,6 +44,17 @@ class DivideNode {
43
44
  toMathString() {
44
45
  return `(${this.leftChild.toMathString()}) / (${this.rightChild.toMathString()})`;
45
46
  }
47
+ dangerouslyShuffle() {
48
+ if ((0, coinFlip_1.coinFlip)())
49
+ [this.leftChild, this.rightChild] = [this.rightChild, this.leftChild];
50
+ }
51
+ toIdentifiers() {
52
+ return {
53
+ id: node_1.NodeIds.divide,
54
+ leftChild: this.leftChild.toIdentifiers(),
55
+ rightChild: this.rightChild.toIdentifiers(),
56
+ };
57
+ }
46
58
  toEquivalentNodes(opts) {
47
59
  const res = [];
48
60
  const rightNodes = this.rightChild.toEquivalentNodes();
@@ -1,4 +1,4 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  import { OperatorIds, OperatorNode } from "./operatorNode";
3
3
  import { AlgebraicNode, SimplifyOptions } from "../algebraicNode";
4
4
  export declare function isFractionNode(a: Node): a is FractionNode;
@@ -15,6 +15,15 @@ export declare class FractionNode implements OperatorNode {
15
15
  isNumeric: boolean;
16
16
  constructor(leftChild: AlgebraicNode, rightChild: AlgebraicNode, opts?: NodeOptions);
17
17
  toMathString(): string;
18
+ toIdentifiers(): {
19
+ id: NodeIds;
20
+ leftChild: {
21
+ id: NodeIds;
22
+ } & Record<string, any>;
23
+ rightChild: {
24
+ id: NodeIds;
25
+ } & Record<string, any>;
26
+ };
18
27
  toInversed(): FractionNode;
19
28
  toEquivalentNodes(opts?: NodeOptions): AlgebraicNode[];
20
29
  toAllValidTexs(opts?: NodeOptions): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"fractionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/fractionNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,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,UAAU;IAGV,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IA2BpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAI5C,KAAK,IAAI,MAAM;IAaf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAgJ/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;IA2BpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAI5C,KAAK,IAAI,MAAM;IAaf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAgJ/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAOrC"}