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
@@ -65,7 +65,7 @@ export declare class Trinom extends Polynomial {
65
65
  getAlphaNode(): NumberNode | FractionNode | OppositeNode;
66
66
  getBeta(): number;
67
67
  getBetaNode(): NumberNode | FractionNode | OppositeNode;
68
- getFactorizedForm(): AlgebraicNode;
68
+ getFactorizedForm(): AlgebraicNode | MultiplyNode;
69
69
  getCanonicalForm(): MultiplyNode | AddNode;
70
70
  getSommet(): Point;
71
71
  getCoords(): number[];
@@ -1,6 +1,7 @@
1
1
  import { Nombre } from "../../../math/numbers/nombre";
2
2
  import { AlgebraicNode } from "../../../tree/nodes/algebraicNode";
3
3
  import { ClosureType } from "../../../tree/nodes/sets/closure";
4
+ import { DiscreteSetNode } from "../../../tree/nodes/sets/discreteSetNode";
4
5
  import { IntervalNode } from "../../../tree/nodes/sets/intervalNode";
5
6
  import { MathSet } from "../mathSet";
6
7
  import { MathSetInterface } from "../mathSetInterface";
@@ -21,10 +22,11 @@ export declare class Interval implements MathSetInterface {
21
22
  leftInequalitySymbol: "\\le" | "<";
22
23
  rightInequalitySymbol: "\\le" | "<";
23
24
  tex: string;
25
+ isEmpty: boolean;
24
26
  constructor(min: AlgebraicNode, max: AlgebraicNode, closure: ClosureType);
25
27
  equals(interval: Interval): boolean;
26
28
  union(interval: Interval): MathSet;
27
- intersection(interval: Interval): MathSet;
29
+ intersection(interval: Interval): DiscreteSetNode | IntervalNode;
28
30
  insideToTex(): string;
29
31
  toTex(): string;
30
32
  toInequality(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"intervals.d.ts","sourceRoot":"","sources":["../../../../src/math/sets/intervals/intervals.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAc,MAAM,2BAA2B,CAAC;AAI/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAM/D,OAAO,EAAW,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAIlE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,8BAAsB,mBAAmB;IACvC,MAAM,CAAC,MAAM;IA2Cb,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM;CAWnC;AAED,qBAAa,QAAS,YAAW,gBAAgB;IAC/C,OAAO,EAAE,aAAa,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,GAAG,GAAG,GAAG,CAAC;IACvB,YAAY,EAAE,GAAG,GAAG,GAAG,CAAC;IACxB,oBAAoB,EAAE,MAAM,GAAG,GAAG,CAAC;IACnC,qBAAqB,EAAE,MAAM,GAAG,GAAG,CAAC;IACpC,GAAG,EAAE,MAAM,CAAC;gBACA,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW;IAiBxE,MAAM,CAAC,QAAQ,EAAE,QAAQ;IAOzB,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IA6ClC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAyCzC,WAAW,IAAI,MAAM;IAGrB,KAAK,IAAI,MAAM;IAMf,YAAY,IAAI,MAAM;IAmBtB,gBAAgB,IAAI,MAAM;IAI1B,MAAM;CAGP"}
1
+ {"version":3,"file":"intervals.d.ts","sourceRoot":"","sources":["../../../../src/math/sets/intervals/intervals.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAc,MAAM,2BAA2B,CAAC;AAI/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAM/D,OAAO,EAAW,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EACL,eAAe,EAEhB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGlE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,8BAAsB,mBAAmB;IACvC,MAAM,CAAC,MAAM;IA2Cb,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM;CAWnC;AAED,qBAAa,QAAS,YAAW,gBAAgB;IAC/C,OAAO,EAAE,aAAa,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,GAAG,GAAG,GAAG,CAAC;IACvB,YAAY,EAAE,GAAG,GAAG,GAAG,CAAC;IACxB,oBAAoB,EAAE,MAAM,GAAG,GAAG,CAAC;IACnC,qBAAqB,EAAE,MAAM,GAAG,GAAG,CAAC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;gBACL,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW;IAkBxE,MAAM,CAAC,QAAQ,EAAE,QAAQ;IAOzB,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IA6ClC,YAAY,CAAC,QAAQ,EAAE,QAAQ;IA0C/B,WAAW,IAAI,MAAM;IAGrB,KAAK,IAAI,MAAM;IAMf,YAAY,IAAI,MAAM;IAmBtB,gBAAgB,IAAI,MAAM;IAI1B,MAAM;CAGP"}
@@ -4,6 +4,7 @@ exports.Interval = exports.IntervalConstructor = void 0;
4
4
  const randint_1 = require("../../../math/utils/random/randint");
5
5
  const infiniteNode_1 = require("../../../tree/nodes/numbers/infiniteNode");
6
6
  const closure_1 = require("../../../tree/nodes/sets/closure");
7
+ const discreteSetNode_1 = require("../../../tree/nodes/sets/discreteSetNode");
7
8
  const intervalNode_1 = require("../../../tree/nodes/sets/intervalNode");
8
9
  const coinFlip_1 = require("../../../utils/coinFlip");
9
10
  const mathSet_1 = require("../mathSet");
@@ -80,6 +81,7 @@ class Interval {
80
81
  this.leftInequalitySymbol = this.leftBracket === "[" ? "\\le" : "<";
81
82
  this.rightInequalitySymbol = this.rightBracket === "]" ? "\\le" : "<";
82
83
  this.tex = this.toTex();
84
+ this.isEmpty = false;
83
85
  }
84
86
  equals(interval) {
85
87
  return (this.min === interval.min &&
@@ -134,24 +136,26 @@ class Interval {
134
136
  (this.rightBracket === "[" || interval.leftBracket === "]")) ||
135
137
  (a === d && (interval.rightBracket === "[" || this.leftBracket === "]"));
136
138
  if (isDisjoint) {
137
- return new mathSet_1.MathSet("\\varnothing", () => null);
139
+ return discreteSetNode_1.EmptySet;
138
140
  }
139
141
  const winningLeftBracket = (brack1, brack2) => brack1 === "]" || brack2 === "]" ? "]" : "[";
140
142
  const winningRightBracket = (brack1, brack2) => brack1 === "[" || brack2 === "[" ? "[" : "]";
141
143
  let min = a >= c ? this.minNode : interval.minNode;
144
+ const max = b <= d ? this.maxNode : interval.maxNode;
145
+ if (min === max)
146
+ return new discreteSetNode_1.DiscreteSetNode([min]);
142
147
  let leftBracket = a === c
143
148
  ? winningLeftBracket(this.leftBracket, interval.leftBracket)
144
149
  : a > c
145
150
  ? this.leftBracket
146
151
  : interval.leftBracket;
147
- const max = b <= d ? this.maxNode : interval.maxNode;
148
152
  let rightBracket = b === d
149
153
  ? winningRightBracket(this.rightBracket, interval.rightBracket)
150
154
  : b < d
151
155
  ? this.rightBracket
152
156
  : interval.rightBracket;
153
157
  const closure = closure_1.Closure.fromBrackets(leftBracket, rightBracket);
154
- return new Interval(min, max, closure);
158
+ return new Interval(min, max, closure).toTree();
155
159
  }
156
160
  insideToTex() {
157
161
  return `${this.minTex};${this.maxTex}`;
@@ -1,5 +1,5 @@
1
- import { Nombre } from '../numbers/nombre';
2
- import { MathSetInterface } from './mathSetInterface';
1
+ import { Nombre } from "../numbers/nombre";
2
+ import { MathSetInterface } from "./mathSetInterface";
3
3
  export declare class MathSet implements MathSetInterface {
4
4
  tex: string;
5
5
  toTex: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"mathSet.d.ts","sourceRoot":"","sources":["../../../src/math/sets/mathSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,OAAQ,YAAW,gBAAgB;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;gBAC1B,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,MAAM,GAAG,IAAI;CAK/D"}
1
+ {"version":3,"file":"mathSet.d.ts","sourceRoot":"","sources":["../../../src/math/sets/mathSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,OAAQ,YAAW,gBAAgB;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;gBAC1B,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,MAAM,GAAG,IAAI;CAK/D"}
@@ -1,4 +1,4 @@
1
- import { Nombre } from '../numbers/nombre';
1
+ import { Nombre } from "../numbers/nombre";
2
2
  export interface MathSetInterface {
3
3
  tex: string;
4
4
  toTex: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,UAAU,YAEtB,CAAC"}
1
+ {"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,UAAU,YAgBtB,CAAC"}
package/lib/playground.js CHANGED
@@ -1,8 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.playground = void 0;
4
- const infiniteNode_1 = require("./tree/nodes/numbers/infiniteNode");
4
+ const intervals_1 = require("./math/sets/intervals/intervals");
5
+ const closure_1 = require("./tree/nodes/sets/closure");
6
+ const discreteSetNode_1 = require("./tree/nodes/sets/discreteSetNode");
5
7
  const playground = () => {
6
- console.log(infiniteNode_1.MinusInfinityNode.evaluate({}));
8
+ // const node = new AddNode(
9
+ // new MultiplyNode(new Affine(1, 0).toTree(), new Affine(3, 1).toTree()),
10
+ // new MultiplyNode(
11
+ // new ExpNode(new SqrtNode((3).toTree())),
12
+ // new CosNode((3).toTree()),
13
+ // ),
14
+ // );
15
+ // const node = new NumberNode(3);
16
+ // const node = new MultiplyNode((2).toTree(), (3).toTree());
17
+ // const ids = node.toIdentifiers();
18
+ // const parsed = NodeConstructor.fromIdentifiers(ids);
19
+ // console.log(node);
20
+ // console.log(parsed);
21
+ console.log(new intervals_1.Interval((3).toTree(), (5).toTree(), closure_1.ClosureType.FF));
22
+ console.log(new discreteSetNode_1.DiscreteSetNode([(2).toTree()]));
7
23
  };
8
24
  exports.playground = playground;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAuC3D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,MAAM,aAAa,CAAC;QAC5B,SAAS,EAAE,MAAM,MAAM,CAAC;QACxB,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;KACpD;IACD,UAAU,MAAM;QACd,MAAM,EAAE,MAAM,aAAa,CAAC;QAC5B,WAAW,EAAE,MAAM,MAAM,CAAC;KAC3B;CACF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAwC3D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,MAAM,aAAa,CAAC;QAC5B,SAAS,EAAE,MAAM,MAAM,CAAC;QACxB,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;KACpD;IACD,UAAU,MAAM;QACd,MAAM,EAAE,MAAM,aAAa,CAAC;QAC5B,WAAW,EAAE,MAAM,MAAM,CAAC;KAC3B;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"algebraicNode.d.ts","sourceRoot":"","sources":["../../../src/tree/nodes/algebraicNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AACF,MAAM,WAAW,aAAc,SAAQ,IAAI;IAEzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;IACnD,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,aAAa,EAAE,CAAC;IAC3D,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,eAAe,KAAK,aAAa,CAAC;IACpD,MAAM,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"algebraicNode.d.ts","sourceRoot":"","sources":["../../../src/tree/nodes/algebraicNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AACF,MAAM,WAAW,aAAc,SAAQ,IAAI;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;IACnD,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,aAAa,EAAE,CAAC;IAC3D,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,eAAe,KAAK,aAAa,CAAC;IACpD,MAAM,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;CACpB"}
@@ -1,5 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //tous les operators et function
4
- // tous les externals (number, variable, constant, length)
5
- //implémenter les opérations add, substract, divide, power etc
@@ -1,4 +1,4 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  import { AlgebraicNode } from "../algebraicNode";
3
3
  export declare class ComplexNode implements Node {
4
4
  re: AlgebraicNode;
@@ -6,6 +6,15 @@ export declare class ComplexNode implements Node {
6
6
  opts?: NodeOptions;
7
7
  type: NodeType;
8
8
  constructor(re: AlgebraicNode, im: AlgebraicNode, opts?: NodeOptions);
9
+ toIdentifiers(): {
10
+ id: NodeIds;
11
+ re: {
12
+ id: NodeIds;
13
+ } & Record<string, any>;
14
+ im: {
15
+ id: NodeIds;
16
+ } & Record<string, any>;
17
+ };
9
18
  toEquivalentNodes(opts?: NodeOptions): AlgebraicNode[];
10
19
  toAllValidTexs(opts?: NodeOptions): string[];
11
20
  toMathString(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"complexNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/complex/complexNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAItD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,WAAY,YAAW,IAAI;IACtC,EAAE,EAAE,aAAa,CAAC;IAClB,EAAE,EAAE,aAAa,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAmB;gBAErB,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAKpE,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAkBtD,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAI5C,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;CAiBhB"}
1
+ {"version":3,"file":"complexNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/complex/complexNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI/D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,WAAY,YAAW,IAAI;IACtC,EAAE,EAAE,aAAa,CAAC;IAClB,EAAE,EAAE,aAAa,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAmB;gBAErB,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAKpE,aAAa;;;;;;;;;IAOb,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAkBtD,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAI5C,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;CAiBhB"}
@@ -13,6 +13,13 @@ class ComplexNode {
13
13
  this.im = im;
14
14
  this.opts = opts;
15
15
  }
16
+ toIdentifiers() {
17
+ return {
18
+ id: node_1.NodeIds.complex,
19
+ re: this.re.toIdentifiers(),
20
+ im: this.im.toIdentifiers(),
21
+ };
22
+ }
16
23
  toEquivalentNodes(opts) {
17
24
  const options = opts ?? this.opts;
18
25
  const res = [];
@@ -1,10 +1,19 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  export declare class EqualNode implements Node {
3
3
  leftChild: Node;
4
4
  rightChild: Node;
5
5
  opts?: NodeOptions;
6
6
  type: NodeType;
7
7
  constructor(leftChild: Node, rightChild: Node, opts?: NodeOptions);
8
+ toIdentifiers(): {
9
+ id: NodeIds;
10
+ leftChild: {
11
+ id: NodeIds;
12
+ } & Record<string, any>;
13
+ rightChild: {
14
+ id: NodeIds;
15
+ } & Record<string, any>;
16
+ };
8
17
  toEquivalentNodes(opts?: NodeOptions): Node[];
9
18
  toAllValidTexs(opts?: NodeOptions): string[];
10
19
  toMathString(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"equalNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/equations/equalNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEtD,qBAAa,SAAU,YAAW,IAAI;IACpC,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;gBACH,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW;IAOjE,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAmBpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAM5C,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;CAUhB"}
1
+ {"version":3,"file":"equalNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/equations/equalNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,qBAAa,SAAU,YAAW,IAAI;IACpC,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;gBACH,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW;IAOjE,aAAa;;;;;;;;;IAOb,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAmBpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAM5C,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;CAUhB"}
@@ -9,6 +9,13 @@ class EqualNode {
9
9
  this.type = node_1.NodeType.equality;
10
10
  this.opts = opts;
11
11
  }
12
+ toIdentifiers() {
13
+ return {
14
+ id: node_1.NodeIds.equal,
15
+ leftChild: this.leftChild.toIdentifiers(),
16
+ rightChild: this.rightChild.toIdentifiers(),
17
+ };
18
+ }
12
19
  toEquivalentNodes(opts) {
13
20
  const options = opts ?? this.opts;
14
21
  const res = [];
@@ -1,4 +1,4 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  import { DiscreteSetNode } from "../sets/discreteSetNode";
3
3
  type EquationSolutionNodeOptions = {
4
4
  variable?: string;
@@ -10,6 +10,15 @@ export declare class EquationSolutionNode implements Node {
10
10
  solutionsSet: DiscreteSetNode;
11
11
  opts?: NodeOptions;
12
12
  constructor(solutionsSet: DiscreteSetNode, params?: EquationSolutionNodeOptions);
13
+ toIdentifiers(): {
14
+ id: NodeIds;
15
+ solutionsSet: {
16
+ id: NodeIds;
17
+ children: ({
18
+ id: NodeIds;
19
+ } & Record<string, any>)[];
20
+ };
21
+ };
13
22
  toAllValidTexs(): string[];
14
23
  toAllTexs(): string[];
15
24
  toEquivalentNodes(opts?: NodeOptions): EquationSolutionNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"equationSolutionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/equations/equationSolutionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,KAAK,2BAA2B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAC7E,qBAAa,oBAAqB,YAAW,IAAI;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,eAAe,CAAC;IAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;gBAEjB,YAAY,EAAE,eAAe,EAC7B,MAAM,CAAC,EAAE,2BAA2B;IActC,cAAc;IAId,SAAS;IAiBT,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAQpC,YAAY;IAGZ,QAAQ;IAGR,KAAK;CAGN"}
1
+ {"version":3,"file":"equationSolutionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/equations/equationSolutionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,KAAK,2BAA2B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAC7E,qBAAa,oBAAqB,YAAW,IAAI;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,eAAe,CAAC;IAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;gBAEjB,YAAY,EAAE,eAAe,EAC7B,MAAM,CAAC,EAAE,2BAA2B;IActC,aAAa;;;;;;;;;IAMb,cAAc;IAId,SAAS;IAiBT,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAQpC,YAAY;IAGZ,QAAQ;IAGR,KAAK;CAGN"}
@@ -14,6 +14,12 @@ class EquationSolutionNode {
14
14
  }
15
15
  : { allowRawRightChildAsSolution: true };
16
16
  }
17
+ toIdentifiers() {
18
+ return {
19
+ id: node_1.NodeIds.equationSolution,
20
+ solutionsSet: this.solutionsSet.toIdentifiers(),
21
+ };
22
+ }
17
23
  toAllValidTexs() {
18
24
  return this.toEquivalentNodes(this.opts).flatMap((el) => el.toAllTexs());
19
25
  }
@@ -1,10 +1,16 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  export declare class MultiEqualNode implements Node {
3
3
  children: Node[];
4
4
  opts?: NodeOptions;
5
5
  type: NodeType;
6
6
  constructor(children: Node[], opts?: NodeOptions);
7
7
  toEquivalentNodes(): MultiEqualNode[];
8
+ toIdentifiers(): {
9
+ id: NodeIds;
10
+ children: ({
11
+ id: NodeIds;
12
+ } & Record<string, any>)[];
13
+ };
8
14
  toAllTexs(): string[];
9
15
  toAllValidTexs(): string[];
10
16
  toMathString(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"multiEqualNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/equations/multiEqualNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAItD,qBAAa,cAAe,YAAW,IAAI;IACzC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;gBACH,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW;IAMhD,iBAAiB;IAUjB,SAAS;IAMT,cAAc,IAAI,MAAM,EAAE;IAI1B,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAIf,QAAQ;CAGT"}
1
+ {"version":3,"file":"multiEqualNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/equations/multiEqualNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI/D,qBAAa,cAAe,YAAW,IAAI;IACzC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;gBACH,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW;IAMhD,iBAAiB;IAUjB,aAAa;;;;;;IAMb,SAAS;IAMT,cAAc,IAAI,MAAM,EAAE;IAI1B,YAAY,IAAI,MAAM;IAGtB,KAAK,IAAI,MAAM;IAIf,QAAQ;CAGT"}
@@ -19,6 +19,12 @@ class MultiEqualNode {
19
19
  });
20
20
  return res;
21
21
  }
22
+ toIdentifiers() {
23
+ return {
24
+ id: node_1.NodeIds.multiEqual,
25
+ children: this.children.map((e) => e.toIdentifiers()),
26
+ };
27
+ }
22
28
  toAllTexs() {
23
29
  const permutations = (0, permutations_1.permute)(this.children);
24
30
  return permutations.flatMap((permutation) => `${permutation.map((node) => node.toTex()).join("=")}`);
@@ -1,4 +1,4 @@
1
- import { Node, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { AlgebraicNode } from "../algebraicNode";
4
4
  export declare function isAbsNode(a: Node): a is AbsNode;
@@ -8,6 +8,12 @@ export declare class AbsNode implements FunctionNode {
8
8
  type: NodeType;
9
9
  isNumeric: boolean;
10
10
  constructor(child: AlgebraicNode);
11
+ toIdentifiers(): {
12
+ id: NodeIds;
13
+ child: {
14
+ id: NodeIds;
15
+ } & Record<string, any>;
16
+ };
11
17
  toMathString(): string;
12
18
  toTex(): string;
13
19
  toEquivalentNodes(): AlgebraicNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"absNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/absNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AACD,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa;IAOhC,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAOf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ;IAIR,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
1
+ {"version":3,"file":"absNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/absNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AACD,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa;IAMhC,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAOf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ;IAIR,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
@@ -15,6 +15,12 @@ class AbsNode {
15
15
  this.type = node_1.NodeType.function;
16
16
  this.isNumeric = child.isNumeric;
17
17
  }
18
+ toIdentifiers() {
19
+ return {
20
+ id: node_1.NodeIds.abs,
21
+ child: this.child.toIdentifiers(),
22
+ };
23
+ }
18
24
  toMathString() {
19
25
  return `abs(${this.child.toMathString()})`;
20
26
  }
@@ -1,4 +1,4 @@
1
- import { Node, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { AlgebraicNode } from "../algebraicNode";
4
4
  export declare function isArcsinNode(a: Node): a is ArcsinNode;
@@ -8,6 +8,12 @@ export declare class ArcsinNode implements FunctionNode {
8
8
  type: NodeType;
9
9
  isNumeric: boolean;
10
10
  constructor(child: AlgebraicNode);
11
+ toIdentifiers(): {
12
+ id: NodeIds;
13
+ child: {
14
+ id: NodeIds;
15
+ } & Record<string, any>;
16
+ };
11
17
  toMathString(): string;
12
18
  toTex(): string;
13
19
  toEquivalentNodes(): AlgebraicNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"arcSinNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/arcSinNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAmB,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AAED,qBAAa,UAAW,YAAW,YAAY;IAC7C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAOhC,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,IAAI,aAAa;IAiBzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"arcSinNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/arcSinNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AAED,qBAAa,UAAW,YAAW,YAAY;IAC7C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAMhC,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,IAAI,aAAa;IAiBzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -4,6 +4,7 @@ exports.ArcsinNode = exports.isArcsinNode = void 0;
4
4
  const node_1 = require("../node");
5
5
  const functionNode_1 = require("./functionNode");
6
6
  const remarkableValues_1 = require("../../../math/trigonometry/remarkableValues");
7
+ const hasVariableNode_1 = require("../hasVariableNode");
7
8
  function isArcsinNode(a) {
8
9
  return (0, functionNode_1.isFunctionNode)(a) && a.id === functionNode_1.FunctionsIds.arcsin;
9
10
  }
@@ -15,6 +16,12 @@ class ArcsinNode {
15
16
  this.type = node_1.NodeType.function;
16
17
  this.isNumeric = child.isNumeric;
17
18
  }
19
+ toIdentifiers() {
20
+ return {
21
+ id: node_1.NodeIds.arcsin,
22
+ child: this.child.toIdentifiers(),
23
+ };
24
+ }
18
25
  toMathString() {
19
26
  return `arcsin(${this.child.toMathString()})`;
20
27
  }
@@ -34,7 +41,7 @@ class ArcsinNode {
34
41
  }
35
42
  simplify() {
36
43
  const simplifiedChild = this.child.simplify();
37
- if (!(0, node_1.hasVariableNode)(simplifiedChild)) {
44
+ if (!(0, hasVariableNode_1.hasVariableNode)(simplifiedChild)) {
38
45
  const value = simplifiedChild.evaluate({});
39
46
  const trigoPoint = remarkableValues_1.remarkableTrigoValues.find((remarkableValue) => remarkableValue.sin.evaluate({}) === value);
40
47
  if (!trigoPoint)
@@ -1,4 +1,4 @@
1
- import { Node, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { AlgebraicNode } from "../algebraicNode";
4
4
  export declare function isArccosNode(a: Node): a is ArccosNode;
@@ -8,6 +8,12 @@ export declare class ArccosNode implements FunctionNode {
8
8
  type: NodeType;
9
9
  isNumeric: boolean;
10
10
  constructor(child: AlgebraicNode);
11
+ toIdentifiers(): {
12
+ id: NodeIds;
13
+ child: {
14
+ id: NodeIds;
15
+ } & Record<string, any>;
16
+ };
11
17
  toMathString(): string;
12
18
  toTex(): string;
13
19
  toEquivalentNodes(): AlgebraicNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"arccosNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/arccosNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAmB,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AAED,qBAAa,UAAW,YAAW,YAAY;IAC7C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAOhC,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,IAAI,aAAa;IAkBzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"arccosNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/arccosNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AAED,qBAAa,UAAW,YAAW,YAAY;IAC7C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAMhC,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,IAAI,aAAa;IAkBzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -4,6 +4,7 @@ exports.ArccosNode = exports.isArccosNode = void 0;
4
4
  const node_1 = require("../node");
5
5
  const functionNode_1 = require("./functionNode");
6
6
  const remarkableValues_1 = require("../../../math/trigonometry/remarkableValues");
7
+ const hasVariableNode_1 = require("../hasVariableNode");
7
8
  function isArccosNode(a) {
8
9
  return (0, functionNode_1.isFunctionNode)(a) && a.id === functionNode_1.FunctionsIds.arccos;
9
10
  }
@@ -15,6 +16,12 @@ class ArccosNode {
15
16
  this.type = node_1.NodeType.function;
16
17
  this.isNumeric = child.isNumeric;
17
18
  }
19
+ toIdentifiers() {
20
+ return {
21
+ id: node_1.NodeIds.arccos,
22
+ child: this.child.toIdentifiers(),
23
+ };
24
+ }
18
25
  toMathString() {
19
26
  return `arccos(${this.child.toMathString()})`;
20
27
  }
@@ -34,7 +41,7 @@ class ArccosNode {
34
41
  }
35
42
  simplify() {
36
43
  const simplifiedChild = this.child.simplify();
37
- if (!(0, node_1.hasVariableNode)(simplifiedChild)) {
44
+ if (!(0, hasVariableNode_1.hasVariableNode)(simplifiedChild)) {
38
45
  const value = simplifiedChild.evaluate({});
39
46
  const trigoPoint = remarkableValues_1.remarkableTrigoValues.find((remarkableValue) => remarkableValue.cos.evaluate({}) === value);
40
47
  if (!trigoPoint)
@@ -1,4 +1,4 @@
1
- import { Node, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { AlgebraicNode } from "../algebraicNode";
4
4
  export declare function isArctanNode(a: Node): a is ArctanNode;
@@ -8,6 +8,12 @@ export declare class ArctanNode implements FunctionNode {
8
8
  type: NodeType;
9
9
  isNumeric: boolean;
10
10
  constructor(child: AlgebraicNode);
11
+ toIdentifiers(): {
12
+ id: NodeIds;
13
+ child: {
14
+ id: NodeIds;
15
+ } & Record<string, any>;
16
+ };
11
17
  toMathString(): string;
12
18
  toTex(): string;
13
19
  toEquivalentNodes(): AlgebraicNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"arctanNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/arctanNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAmB,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AAED,qBAAa,UAAW,YAAW,YAAY;IAC7C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAOhC,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,IAAI,aAAa;IAkBzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"arctanNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/arctanNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,UAAU,CAErD;AAED,qBAAa,UAAW,YAAW,YAAY;IAC7C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAMhC,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,IAAI,aAAa;IAkBzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -4,6 +4,7 @@ exports.ArctanNode = exports.isArctanNode = void 0;
4
4
  const node_1 = require("../node");
5
5
  const functionNode_1 = require("./functionNode");
6
6
  const remarkableValues_1 = require("../../../math/trigonometry/remarkableValues");
7
+ const hasVariableNode_1 = require("../hasVariableNode");
7
8
  function isArctanNode(a) {
8
9
  return (0, functionNode_1.isFunctionNode)(a) && a.id === functionNode_1.FunctionsIds.arctan;
9
10
  }
@@ -15,6 +16,12 @@ class ArctanNode {
15
16
  this.type = node_1.NodeType.function;
16
17
  this.isNumeric = child.isNumeric;
17
18
  }
19
+ toIdentifiers() {
20
+ return {
21
+ id: node_1.NodeIds.arctan,
22
+ child: this.child.toIdentifiers(),
23
+ };
24
+ }
18
25
  toMathString() {
19
26
  return `arctan(${this.child.toMathString()})`;
20
27
  }
@@ -34,7 +41,7 @@ class ArctanNode {
34
41
  }
35
42
  simplify() {
36
43
  const simplifiedChild = this.child.simplify();
37
- if (!(0, node_1.hasVariableNode)(simplifiedChild)) {
44
+ if (!(0, hasVariableNode_1.hasVariableNode)(simplifiedChild)) {
38
45
  const value = simplifiedChild.evaluate({});
39
46
  const trigoPoint = remarkableValues_1.remarkableTrigoValues.find((remarkableValue) => remarkableValue.tan?.evaluate({}) === value);
40
47
  if (!trigoPoint)
@@ -1,4 +1,4 @@
1
- import { Node, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { AlgebraicNode, SimplifyOptions } from "../algebraicNode";
4
4
  export declare function isCosNode(a: Node): a is CosNode;
@@ -8,6 +8,12 @@ export declare class CosNode implements FunctionNode {
8
8
  type: NodeType;
9
9
  isNumeric: boolean;
10
10
  constructor(child: AlgebraicNode);
11
+ toIdentifiers(): {
12
+ id: NodeIds;
13
+ child: {
14
+ id: NodeIds;
15
+ } & Record<string, any>;
16
+ };
11
17
  toMathString(): string;
12
18
  toTex(): string;
13
19
  toEquivalentNodes(): AlgebraicNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"cosNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/cosNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAmB,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAED,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAOhC,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,aAAa;IAsBnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"cosNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/cosNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAED,qBAAa,OAAQ,YAAW,YAAY;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,KAAK,EAAE,aAAa;IAMhC,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,iBAAiB,IAAI,aAAa,EAAE;IASpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,aAAa;IAsBnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}
@@ -4,6 +4,7 @@ exports.CosNode = exports.isCosNode = void 0;
4
4
  const node_1 = require("../node");
5
5
  const functionNode_1 = require("./functionNode");
6
6
  const remarkableValues_1 = require("../../../math/trigonometry/remarkableValues");
7
+ const hasVariableNode_1 = require("../hasVariableNode");
7
8
  function isCosNode(a) {
8
9
  return (0, functionNode_1.isFunctionNode)(a) && a.id === functionNode_1.FunctionsIds.cos;
9
10
  }
@@ -15,6 +16,12 @@ class CosNode {
15
16
  this.type = node_1.NodeType.function;
16
17
  this.isNumeric = child.isNumeric;
17
18
  }
19
+ toIdentifiers() {
20
+ return {
21
+ id: node_1.NodeIds.cos,
22
+ child: this.child.toIdentifiers(),
23
+ };
24
+ }
18
25
  toMathString() {
19
26
  return `cos(${this.child.toMathString()})`;
20
27
  }
@@ -34,7 +41,7 @@ class CosNode {
34
41
  }
35
42
  simplify(opts = {}) {
36
43
  const simplifiedChild = this.child.simplify();
37
- if (!(0, node_1.hasVariableNode)(simplifiedChild)) {
44
+ if (!(0, hasVariableNode_1.hasVariableNode)(simplifiedChild)) {
38
45
  let value = simplifiedChild.evaluate({});
39
46
  if (opts.isDegree) {
40
47
  value = (value * Math.PI) / 180;
@@ -1,4 +1,4 @@
1
- import { Node, NodeOptions, NodeType } from "../node";
1
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode";
3
3
  import { AlgebraicNode } from "../algebraicNode";
4
4
  export declare function isExpNode(a: Node): a is ExpNode;
@@ -9,6 +9,12 @@ export declare class ExpNode implements FunctionNode {
9
9
  type: NodeType;
10
10
  isNumeric: boolean;
11
11
  constructor(child: AlgebraicNode, opts?: NodeOptions);
12
+ toIdentifiers(): {
13
+ id: NodeIds;
14
+ child: {
15
+ id: NodeIds;
16
+ } & Record<string, any>;
17
+ };
12
18
  toMathString(): string;
13
19
  toTex(): string;
14
20
  toEquivalentNodes(): AlgebraicNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"expNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/expNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AACD,qBAAa,OAAQ,YAAW,YAAY;IAC1C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAQpD,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAmBf,iBAAiB,IAAI,aAAa,EAAE;IAUpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,IAAI,aAAa;IAOzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa;CAG3B"}
1
+ {"version":3,"file":"expNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/expNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AACD,qBAAa,OAAQ,YAAW,YAAY;IAC1C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAmBf,iBAAiB,IAAI,aAAa,EAAE;IAUpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,IAAI,aAAa;IAOzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGrC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAGrC"}