math-exercises 2.2.56 → 2.2.57

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 (160) hide show
  1. package/lib/exercises/math/functions/trinoms/coefficientsIdentification.d.ts +11 -0
  2. package/lib/exercises/math/functions/trinoms/coefficientsIdentification.d.ts.map +1 -0
  3. package/lib/exercises/math/functions/trinoms/coefficientsIdentification.js +131 -0
  4. package/lib/exercises/math/functions/trinoms/index.d.ts +1 -0
  5. package/lib/exercises/math/functions/trinoms/index.d.ts.map +1 -1
  6. package/lib/exercises/math/functions/trinoms/index.js +1 -0
  7. package/lib/exercises/math/functions/trinoms/summitAbscissFromDevForm.d.ts.map +1 -1
  8. package/lib/exercises/math/functions/trinoms/summitAbscissFromDevForm.js +39 -1
  9. package/lib/exercises/math/geometry/areas/rightTriangleArea.js +2 -2
  10. package/lib/exercises/math/geometry/areas/triangleArea.js +2 -2
  11. package/lib/exercises/math/geometry/euclidianConstructions/buildTriangleWithSizes.d.ts +7 -0
  12. package/lib/exercises/math/geometry/euclidianConstructions/buildTriangleWithSizes.d.ts.map +1 -0
  13. package/lib/exercises/math/geometry/euclidianConstructions/buildTriangleWithSizes.js +117 -0
  14. package/lib/exercises/math/geometry/euclidianConstructions/index.d.ts +2 -0
  15. package/lib/exercises/math/geometry/euclidianConstructions/index.d.ts.map +1 -1
  16. package/lib/exercises/math/geometry/euclidianConstructions/index.js +2 -0
  17. package/lib/exercises/math/geometry/euclidianConstructions/pointImageFromTranslation.d.ts +10 -0
  18. package/lib/exercises/math/geometry/euclidianConstructions/pointImageFromTranslation.d.ts.map +1 -0
  19. package/lib/exercises/math/geometry/euclidianConstructions/pointImageFromTranslation.js +102 -0
  20. package/lib/exercises/math/geometry/pythagore/pythagore.d.ts +2 -0
  21. package/lib/exercises/math/geometry/pythagore/pythagore.d.ts.map +1 -1
  22. package/lib/exercises/math/geometry/pythagore/pythagore.js +4 -3
  23. package/lib/exercises/math/geometry/pythagore/pythagoreCalcul.d.ts +2 -0
  24. package/lib/exercises/math/geometry/pythagore/pythagoreCalcul.d.ts.map +1 -1
  25. package/lib/exercises/math/geometry/pythagore/pythagoreCalcul.js +4 -3
  26. package/lib/exercises/math/geometry/thales/index.d.ts.map +1 -1
  27. package/lib/exercises/math/geometry/thales/index.js +1 -0
  28. package/lib/exercises/math/geometry/thales/thales.d.ts +7 -0
  29. package/lib/exercises/math/geometry/thales/thales.d.ts.map +1 -1
  30. package/lib/exercises/math/geometry/thales/thales.js +1 -1
  31. package/lib/exercises/math/geometry/thales/thalesCalcul.d.ts +11 -5
  32. package/lib/exercises/math/geometry/thales/thalesCalcul.d.ts.map +1 -1
  33. package/lib/exercises/math/geometry/thales/thalesCalcul.js +166 -118
  34. package/lib/exercises/math/geometry/thales/thalesCalculOld.d.ts +1 -0
  35. package/lib/exercises/math/geometry/thales/thalesCalculOld.d.ts.map +1 -0
  36. package/lib/exercises/math/geometry/thales/thalesCalculOld.js +214 -0
  37. package/lib/exercises/math/probaStat/binomial/binomialInequation.d.ts +16 -0
  38. package/lib/exercises/math/probaStat/binomial/binomialInequation.d.ts.map +1 -0
  39. package/lib/exercises/math/probaStat/binomial/binomialInequation.js +159 -0
  40. package/lib/exercises/math/probaStat/binomial/calculateProbaOfBinomialDistribution.d.ts +13 -0
  41. package/lib/exercises/math/probaStat/binomial/calculateProbaOfBinomialDistribution.d.ts.map +1 -0
  42. package/lib/exercises/math/probaStat/binomial/calculateProbaOfBinomialDistribution.js +106 -0
  43. package/lib/exercises/math/probaStat/binomial/expectedValueOfBinomialProba.d.ts +9 -0
  44. package/lib/exercises/math/probaStat/binomial/expectedValueOfBinomialProba.d.ts.map +1 -0
  45. package/lib/exercises/math/probaStat/binomial/expectedValueOfBinomialProba.js +89 -0
  46. package/lib/exercises/math/probaStat/binomial/index.d.ts +5 -0
  47. package/lib/exercises/math/probaStat/binomial/index.d.ts.map +1 -0
  48. package/lib/exercises/math/probaStat/binomial/index.js +20 -0
  49. package/lib/exercises/math/probaStat/binomial/varianceOfBinomialProba.d.ts +9 -0
  50. package/lib/exercises/math/probaStat/binomial/varianceOfBinomialProba.d.ts.map +1 -0
  51. package/lib/exercises/math/probaStat/binomial/varianceOfBinomialProba.js +94 -0
  52. package/lib/exercises/math/probaStat/cardBasicProbas.d.ts +3 -0
  53. package/lib/exercises/math/probaStat/cardBasicProbas.d.ts.map +1 -1
  54. package/lib/exercises/math/probaStat/cardBasicProbas.js +3 -2
  55. package/lib/exercises/math/probaStat/diceBasicProbas.d.ts +1 -0
  56. package/lib/exercises/math/probaStat/diceBasicProbas.d.ts.map +1 -1
  57. package/lib/exercises/math/probaStat/diceBasicProbas.js +8 -4
  58. package/lib/exercises/math/probaStat/index.d.ts +1 -3
  59. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  60. package/lib/exercises/math/probaStat/index.js +1 -3
  61. package/lib/exercises/math/probaStat/issuesCountingForCards.d.ts +2 -0
  62. package/lib/exercises/math/probaStat/issuesCountingForCards.d.ts.map +1 -1
  63. package/lib/exercises/math/probaStat/issuesCountingForCards.js +1 -1
  64. package/lib/exercises/math/probaStat/stats2var/fineAdjustementExercise.d.ts +2 -0
  65. package/lib/exercises/math/probaStat/stats2var/fineAdjustementExercise.d.ts.map +1 -1
  66. package/lib/exercises/math/probaStat/stats2var/fineAdjustementExercise.js +4 -1
  67. package/lib/exercises/math/trigonometry/associatePoint.d.ts +3 -0
  68. package/lib/exercises/math/trigonometry/associatePoint.d.ts.map +1 -1
  69. package/lib/exercises/math/trigonometry/associatePoint.js +5 -1
  70. package/lib/exercises/math/trigonometry/trigonometry.js +2 -2
  71. package/lib/exercises/math/trigonometry/trigonometryAngleCalcul.js +2 -2
  72. package/lib/exercises/math/trigonometry/trigonometrySideCalcul.js +2 -2
  73. package/lib/exercises/pc/calibrationCurveOfSolution.d.ts +1 -0
  74. package/lib/exercises/pc/calibrationCurveOfSolution.d.ts.map +1 -1
  75. package/lib/exercises/pc/calibrationCurveOfSolution.js +2 -0
  76. package/lib/exercises/pc/chemicalReactions/stoichiometricReaction.d.ts +6 -1
  77. package/lib/exercises/pc/chemicalReactions/stoichiometricReaction.d.ts.map +1 -1
  78. package/lib/exercises/pc/chemicalReactions/stoichiometricReaction.js +1 -1
  79. package/lib/exercises/pc/electricity/ohmicConductorOrGenerator.d.ts +4 -1
  80. package/lib/exercises/pc/electricity/ohmicConductorOrGenerator.d.ts.map +1 -1
  81. package/lib/exercises/pc/electricity/ohmicConductorOrGenerator.js +2 -1
  82. package/lib/exercises/pc/identifyAtomicMassOrAtomicNb.d.ts +2 -0
  83. package/lib/exercises/pc/identifyAtomicMassOrAtomicNb.d.ts.map +1 -1
  84. package/lib/exercises/pc/identifyAtomicMassOrAtomicNb.js +2 -0
  85. package/lib/exercises/pc/mole/molarMass.js +1 -1
  86. package/lib/exercises/pc/motion/typeOfAcceleration.d.ts +4 -1
  87. package/lib/exercises/pc/motion/typeOfAcceleration.d.ts.map +1 -1
  88. package/lib/exercises/pc/motion/typeOfAcceleration.js +5 -1
  89. package/lib/exercises/pc/motion/typeOfMovement.d.ts +4 -1
  90. package/lib/exercises/pc/motion/typeOfMovement.d.ts.map +1 -1
  91. package/lib/exercises/pc/motion/typeOfMovement.js +1 -1
  92. package/lib/exercises/pc/recognizeRefractionOrReflectionAngles.d.ts +3 -1
  93. package/lib/exercises/pc/recognizeRefractionOrReflectionAngles.d.ts.map +1 -1
  94. package/lib/exercises/pc/recognizeRefractionOrReflectionAngles.js +1 -1
  95. package/lib/exercises/utils/geogebra/toGGBCommandsProps.d.ts +3 -0
  96. package/lib/exercises/utils/geogebra/toGGBCommandsProps.d.ts.map +1 -1
  97. package/lib/exercises/utils/geogebra/toolBarConstructor.d.ts +4 -0
  98. package/lib/exercises/utils/geogebra/toolBarConstructor.d.ts.map +1 -1
  99. package/lib/exercises/utils/geogebra/toolBarConstructor.js +8 -0
  100. package/lib/exercises/utils/getDistinctQuestions.d.ts.map +1 -1
  101. package/lib/exercises/utils/getDistinctQuestions.js +11 -4
  102. package/lib/index.d.ts +88 -22
  103. package/lib/index.d.ts.map +1 -1
  104. package/lib/math/geometry/CloudPoints.d.ts +5 -1
  105. package/lib/math/geometry/CloudPoints.d.ts.map +1 -1
  106. package/lib/math/geometry/CloudPoints.js +5 -0
  107. package/lib/math/geometry/line.d.ts +23 -1
  108. package/lib/math/geometry/line.d.ts.map +1 -1
  109. package/lib/math/geometry/line.js +53 -2
  110. package/lib/math/geometry/point.d.ts +15 -13
  111. package/lib/math/geometry/point.d.ts.map +1 -1
  112. package/lib/math/geometry/point.js +28 -12
  113. package/lib/math/geometry/segment.d.ts +11 -1
  114. package/lib/math/geometry/segment.d.ts.map +1 -1
  115. package/lib/math/geometry/segment.js +12 -0
  116. package/lib/math/geometry/triangle.d.ts +67 -0
  117. package/lib/math/geometry/triangle.d.ts.map +1 -0
  118. package/lib/math/geometry/triangle.js +227 -0
  119. package/lib/math/numbers/rationals/rational.d.ts +1 -0
  120. package/lib/math/numbers/rationals/rational.d.ts.map +1 -1
  121. package/lib/math/numbers/rationals/rational.js +5 -0
  122. package/lib/math/polynomials/generalTrinom.d.ts +2 -2
  123. package/lib/math/polynomials/generalTrinom.d.ts.map +1 -1
  124. package/lib/math/probability/binomial.d.ts +10 -0
  125. package/lib/math/probability/binomial.d.ts.map +1 -0
  126. package/lib/math/probability/binomial.js +30 -0
  127. package/lib/math/sets/intervals/intervals.d.ts +1 -1
  128. package/lib/math/systems/generalSystem.d.ts +11 -0
  129. package/lib/math/systems/generalSystem.d.ts.map +1 -0
  130. package/lib/math/systems/generalSystem.js +79 -0
  131. package/lib/playground.d.ts.map +1 -1
  132. package/lib/playground.js +1 -4
  133. package/lib/server.js +0 -2
  134. package/lib/tree/nodes/geometry/pointNode.d.ts +1 -10
  135. package/lib/tree/nodes/geometry/pointNode.d.ts.map +1 -1
  136. package/lib/tree/nodes/inequations/inequationNode.js +1 -1
  137. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts +2 -11
  138. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts.map +1 -1
  139. package/lib/tree/nodes/node.d.ts +2 -1
  140. package/lib/tree/nodes/node.d.ts.map +1 -1
  141. package/lib/tree/nodes/node.js +1 -0
  142. package/lib/tree/nodes/nodeConstructor.d.ts +4 -3
  143. package/lib/tree/nodes/nodeConstructor.d.ts.map +1 -1
  144. package/lib/tree/nodes/nodeConstructor.js +4 -0
  145. package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
  146. package/lib/tree/nodes/operators/addNode.js +20 -8
  147. package/lib/tree/nodes/operators/binomialCoefficientNode.d.ts +35 -0
  148. package/lib/tree/nodes/operators/binomialCoefficientNode.d.ts.map +1 -0
  149. package/lib/tree/nodes/operators/binomialCoefficientNode.js +52 -0
  150. package/lib/tree/nodes/operators/fractionNode.d.ts +1 -1
  151. package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
  152. package/lib/tree/nodes/operators/fractionNode.js +2 -2
  153. package/lib/tree/nodes/operators/operatorNode.d.ts +2 -1
  154. package/lib/tree/nodes/operators/operatorNode.d.ts.map +1 -1
  155. package/lib/tree/nodes/operators/operatorNode.js +1 -0
  156. package/lib/tree/nodes/sets/intervalNode.d.ts +9 -10
  157. package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
  158. package/lib/tree/nodes/sets/intervalNode.js +1 -0
  159. package/lib/utils/alea/random.d.ts.map +1 -1
  160. package/package.json +1 -1
@@ -1,7 +1,8 @@
1
1
  import { Node, NodeIds } from "./node";
2
+ export type NodeIdentifiers = {
3
+ id: NodeIds;
4
+ } & Record<string, any>;
2
5
  export declare abstract class NodeConstructor {
3
- static fromIdentifiers(identifiers: {
4
- id: NodeIds;
5
- } & Record<string, any>): Node;
6
+ static fromIdentifiers(identifiers: NodeIdentifiers): Node;
6
7
  }
7
8
  //# sourceMappingURL=nodeConstructor.d.ts.map
@@ -1 +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;CA4QR"}
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;AAmBvC,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACpE,8BAAsB,eAAe;IACnC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;CAsR3D"}
@@ -30,6 +30,7 @@ const constantNode_1 = require("./numbers/constantNode");
30
30
  const numberNode_1 = require("./numbers/numberNode");
31
31
  const percentNode_1 = require("./numbers/percentNode");
32
32
  const addNode_1 = require("./operators/addNode");
33
+ const binomialCoefficientNode_1 = require("./operators/binomialCoefficientNode");
33
34
  const divideNode_1 = require("./operators/divideNode");
34
35
  const fractionNode_1 = require("./operators/fractionNode");
35
36
  const limitNode_1 = require("./operators/limitNode");
@@ -164,6 +165,9 @@ class NodeConstructor {
164
165
  case node_1.NodeIds.limit: {
165
166
  return new limitNode_1.LimitNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild), identifiers.from);
166
167
  }
168
+ case node_1.NodeIds.binomialCoefficient: {
169
+ return new binomialCoefficientNode_1.BinomialCoefficientNode(NodeConstructor.fromIdentifiers(identifiers.leftChild), NodeConstructor.fromIdentifiers(identifiers.rightChild));
170
+ }
167
171
  }
168
172
  }
169
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"addNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/addNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EACL,uBAAuB,EACvB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAED,eAAO,MAAM,GAAG,MACX,aAAa,GAAG,MAAM,GAAG,MAAM,KAC/B,aAAa,GAAG,MAAM,GAAG,MAAM,YAOnC,CAAC;AAEF,qBAAa,OAAQ,YAAW,uBAAuB;IACrD,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IASpB,OAAO,aAGL;IAEF,YAAY,IAAI,MAAM;IAItB,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAoCtD,SAAS,IAAI,MAAM,EAAE;IAIrB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAK5C,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAerC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMtC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAgP/C,aAAa;;;;;;;;;IAOb,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAUpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAMzD"}
1
+ {"version":3,"file":"addNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/addNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EACL,uBAAuB,EACvB,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQlE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AAED,eAAO,MAAM,GAAG,MACX,aAAa,GAAG,MAAM,GAAG,MAAM,KAC/B,aAAa,GAAG,MAAM,GAAG,MAAM,YAOnC,CAAC;AAEF,qBAAa,OAAQ,YAAW,uBAAuB;IACrD,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IASpB,OAAO,aAGL;IAEF,YAAY,IAAI,MAAM;IAItB,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAoCtD,SAAS,IAAI,MAAM,EAAE;IAIrB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAK5C,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAerC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMtC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAoQ/C,aAAa;;;;;;;;;IAOb,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAUpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAMzD"}
@@ -129,7 +129,7 @@ class AddNode {
129
129
  if (externals.length === 1)
130
130
  return externals[0];
131
131
  const simplifyExternalNodes = (a, b) => {
132
- if ((0, fractionNode_1.isFractionNode)(a) && (0, fractionNode_1.isFractionNode)(b)) {
132
+ if (!opts?.towardsDistribute && (0, fractionNode_1.isFractionNode)(a) && (0, fractionNode_1.isFractionNode)(b)) {
133
133
  //c/d + e/f = cf+ed / df
134
134
  const c = a.leftChild;
135
135
  const d = a.rightChild;
@@ -137,7 +137,10 @@ class AddNode {
137
137
  const f = b.rightChild;
138
138
  return new fractionNode_1.FractionNode(new AddNode(new multiplyNode_1.MultiplyNode(c, f), new multiplyNode_1.MultiplyNode(e, d)), new multiplyNode_1.MultiplyNode(d, f)).simplify(opts);
139
139
  }
140
- if ((0, oppositeNode_1.isOppositeNode)(a) && (0, fractionNode_1.isFractionNode)(a.child) && (0, fractionNode_1.isFractionNode)(b)) {
140
+ if (!opts?.towardsDistribute &&
141
+ (0, oppositeNode_1.isOppositeNode)(a) &&
142
+ (0, fractionNode_1.isFractionNode)(a.child) &&
143
+ (0, fractionNode_1.isFractionNode)(b)) {
141
144
  //-(c/d) + e/f = -cf+ed / df
142
145
  const c = a.child.leftChild;
143
146
  const d = a.child.rightChild;
@@ -145,7 +148,10 @@ class AddNode {
145
148
  const f = b.rightChild;
146
149
  return new fractionNode_1.FractionNode(new AddNode(new multiplyNode_1.MultiplyNode(new oppositeNode_1.OppositeNode(c), f), new multiplyNode_1.MultiplyNode(e, d)), new multiplyNode_1.MultiplyNode(d, f)).simplify(opts);
147
150
  }
148
- if ((0, oppositeNode_1.isOppositeNode)(b) && (0, fractionNode_1.isFractionNode)(b.child) && (0, fractionNode_1.isFractionNode)(a)) {
151
+ if (!opts?.towardsDistribute &&
152
+ (0, oppositeNode_1.isOppositeNode)(b) &&
153
+ (0, fractionNode_1.isFractionNode)(b.child) &&
154
+ (0, fractionNode_1.isFractionNode)(a)) {
149
155
  //(c/d) + (-e/f) = cf-ed / df
150
156
  const c = a.leftChild;
151
157
  const d = a.rightChild;
@@ -153,7 +159,8 @@ class AddNode {
153
159
  const f = b.child.rightChild;
154
160
  return new fractionNode_1.FractionNode(new AddNode(new multiplyNode_1.MultiplyNode(c, f), new multiplyNode_1.MultiplyNode(new oppositeNode_1.OppositeNode(e), d)), new multiplyNode_1.MultiplyNode(d, f)).simplify(opts);
155
161
  }
156
- if ((0, oppositeNode_1.isOppositeNode)(b) &&
162
+ if (!opts?.towardsDistribute &&
163
+ (0, oppositeNode_1.isOppositeNode)(b) &&
157
164
  (0, fractionNode_1.isFractionNode)(b.child) &&
158
165
  (0, oppositeNode_1.isOppositeNode)(a) &&
159
166
  (0, fractionNode_1.isFractionNode)(a.child)) {
@@ -164,25 +171,30 @@ class AddNode {
164
171
  const f = b.child.rightChild;
165
172
  return new fractionNode_1.FractionNode(new AddNode(new multiplyNode_1.MultiplyNode(new oppositeNode_1.OppositeNode(c), f), new multiplyNode_1.MultiplyNode(new oppositeNode_1.OppositeNode(e), d)), new multiplyNode_1.MultiplyNode(d, f)).simplify(opts);
166
173
  }
167
- if ((0, fractionNode_1.isFractionNode)(a)) {
174
+ if (!opts?.towardsDistribute && (0, fractionNode_1.isFractionNode)(a)) {
168
175
  //c/d + b
169
176
  const c = a.leftChild;
170
177
  const d = a.rightChild;
171
178
  return new fractionNode_1.FractionNode(new AddNode(c, new multiplyNode_1.MultiplyNode(d, b)), d).simplify(opts);
172
179
  }
173
- if ((0, oppositeNode_1.isOppositeNode)(a) && (0, fractionNode_1.isFractionNode)(a.child)) {
180
+ if (!opts?.towardsDistribute &&
181
+ (0, oppositeNode_1.isOppositeNode)(a) &&
182
+ (0, fractionNode_1.isFractionNode)(a.child)) {
174
183
  //-(c/d) + b = (-c+bd)/d
175
184
  const c = a.child.leftChild;
176
185
  const d = a.child.rightChild;
177
186
  return new fractionNode_1.FractionNode(new AddNode(new oppositeNode_1.OppositeNode(c), new multiplyNode_1.MultiplyNode(d, b)), d).simplify(opts);
178
187
  }
179
- if ((0, fractionNode_1.isFractionNode)(b) && !opts?.forceDistributeFractions) {
188
+ if (!opts?.towardsDistribute &&
189
+ (0, fractionNode_1.isFractionNode)(b) &&
190
+ !opts?.forceDistributeFractions) {
180
191
  //a+c/d
181
192
  const c = b.leftChild;
182
193
  const d = b.rightChild;
183
194
  return new fractionNode_1.FractionNode(new AddNode(c, new multiplyNode_1.MultiplyNode(d, a)), d).simplify(opts);
184
195
  }
185
- if ((0, oppositeNode_1.isOppositeNode)(b) &&
196
+ if (!opts?.towardsDistribute &&
197
+ (0, oppositeNode_1.isOppositeNode)(b) &&
186
198
  (0, fractionNode_1.isFractionNode)(b.child) &&
187
199
  !opts?.forceDistributeFractions) {
188
200
  //a+-(c/d) = (da-c)/d
@@ -0,0 +1,35 @@
1
+ import { AlgebraicNode } from "../algebraicNode";
2
+ import { Node, NodeIds, NodeOptions, NodeType } from "../node";
3
+ import { OperatorIds, OperatorNode } from "./operatorNode";
4
+ export declare const isBinomialCoefficientNode: (a: Node) => a is BinomialCoefficientNode;
5
+ export declare class BinomialCoefficientNode implements OperatorNode {
6
+ opts?: NodeOptions;
7
+ /**
8
+ * @param leftChild num
9
+ * @param rightChild denum
10
+ */
11
+ id: OperatorIds;
12
+ leftChild: AlgebraicNode;
13
+ rightChild: AlgebraicNode;
14
+ type: NodeType;
15
+ isNumeric: boolean;
16
+ constructor(leftChild: AlgebraicNode, rightChild: AlgebraicNode, opts?: NodeOptions);
17
+ equals(node: AlgebraicNode): boolean;
18
+ evaluate(): number;
19
+ simplify(): this;
20
+ toAllValidTexs(): string[];
21
+ toDetailedEvaluation(vars: Record<string, AlgebraicNode>): BinomialCoefficientNode;
22
+ toEquivalentNodes(): this[];
23
+ toIdentifiers(): {
24
+ leftChild: {
25
+ id: NodeIds;
26
+ } & Record<string, any>;
27
+ rightChild: {
28
+ id: NodeIds;
29
+ } & Record<string, any>;
30
+ id: NodeIds;
31
+ };
32
+ toMathString(): string;
33
+ toTex(): string;
34
+ }
35
+ //# sourceMappingURL=binomialCoefficientNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binomialCoefficientNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/binomialCoefficientNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAgB,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAE3E,eAAO,MAAM,yBAAyB,MACjC,IAAI,iCAEsD,CAAC;AAEhE,qBAAa,uBAAwB,YAAW,YAAY;IAC1D,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;IASpB,MAAM,CAAC,IAAI,EAAE,aAAa;IAO1B,QAAQ;IAGR,QAAQ;IAGR,cAAc;IAGd,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAMxD,iBAAiB;IAGjB,aAAa;;;;;;;;;IAOb,YAAY;IAGZ,KAAK;CAGN"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BinomialCoefficientNode = exports.isBinomialCoefficientNode = void 0;
4
+ const combination_1 = require("../../../math/utils/combinatorics/combination");
5
+ const node_1 = require("../node");
6
+ const operatorNode_1 = require("./operatorNode");
7
+ const isBinomialCoefficientNode = (a) => (0, operatorNode_1.isOperatorNode)(a) && a.id === operatorNode_1.OperatorIds.binomialCoefficient;
8
+ exports.isBinomialCoefficientNode = isBinomialCoefficientNode;
9
+ class BinomialCoefficientNode {
10
+ constructor(leftChild, rightChild, opts) {
11
+ this.id = operatorNode_1.OperatorIds.binomialCoefficient;
12
+ this.leftChild = leftChild;
13
+ this.rightChild = rightChild;
14
+ this.type = node_1.NodeType.operator;
15
+ this.opts = opts;
16
+ this.isNumeric = leftChild.isNumeric && rightChild.isNumeric;
17
+ }
18
+ equals(node) {
19
+ return ((0, exports.isBinomialCoefficientNode)(node) &&
20
+ this.leftChild.equals(node.leftChild) &&
21
+ this.rightChild.equals(node.rightChild));
22
+ }
23
+ evaluate() {
24
+ return (0, combination_1.combinations)(this.rightChild.evaluate(), this.leftChild.evaluate());
25
+ }
26
+ simplify() {
27
+ return this;
28
+ }
29
+ toAllValidTexs() {
30
+ return [this.toTex()];
31
+ }
32
+ toDetailedEvaluation(vars) {
33
+ return new BinomialCoefficientNode(this.leftChild.toDetailedEvaluation(vars), this.rightChild.toDetailedEvaluation(vars));
34
+ }
35
+ toEquivalentNodes() {
36
+ return [this];
37
+ }
38
+ toIdentifiers() {
39
+ return {
40
+ leftChild: this.leftChild.toIdentifiers(),
41
+ rightChild: this.rightChild.toIdentifiers(),
42
+ id: node_1.NodeIds.binomialCoefficient,
43
+ };
44
+ }
45
+ toMathString() {
46
+ return `nCr(${this.leftChild.toMathString()}, ${this.rightChild.toMathString()})`;
47
+ }
48
+ toTex() {
49
+ return `\\binom{${this.leftChild.toTex()}}${this.rightChild.toTex()}}`;
50
+ }
51
+ }
52
+ exports.BinomialCoefficientNode = BinomialCoefficientNode;
@@ -2,7 +2,7 @@ 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;
5
- export declare const frac: (a: AlgebraicNode | number | string, b: AlgebraicNode | number | string) => FractionNode;
5
+ export declare const frac: (a: AlgebraicNode | number | string, b: AlgebraicNode | number | string, opts?: NodeOptions) => FractionNode;
6
6
  export declare class FractionNode implements OperatorNode {
7
7
  opts?: NodeOptions;
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fractionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/fractionNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAK3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKlE,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,eAAO,MAAM,IAAI,MACZ,aAAa,GAAG,MAAM,GAAG,MAAM,KAC/B,aAAa,GAAG,MAAM,GAAG,MAAM,iBAOnC,CAAC;AAEF,qBAAa,YAAa,YAAW,YAAY;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAItB,aAAa;;;;;;;;;IAQb,UAAU;IAGV,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IA+BpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAI5C,KAAK,IAAI,MAAM;IAsBf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMtC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAyJ/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAOpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAMzD"}
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;AAED,eAAO,MAAM,IAAI,MACZ,aAAa,GAAG,MAAM,GAAG,MAAM,KAC/B,aAAa,GAAG,MAAM,GAAG,MAAM,SAC3B,WAAW,iBAOnB,CAAC;AAEF,qBAAa,YAAa,YAAW,YAAY;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAUpB,YAAY,IAAI,MAAM;IAItB,aAAa;;;;;;;;;IAQb,UAAU;IAGV,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IA+BpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAI5C,KAAK,IAAI,MAAM;IAsBf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMtC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAyJ/C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAOpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAMzD"}
@@ -15,10 +15,10 @@ function isFractionNode(a) {
15
15
  return (0, operatorNode_1.isOperatorNode)(a) && a.id === operatorNode_1.OperatorIds.fraction;
16
16
  }
17
17
  exports.isFractionNode = isFractionNode;
18
- const frac = (a, b) => {
18
+ const frac = (a, b, opts) => {
19
19
  const nodeA = typeof a === "number" ? a.toTree() : typeof a === "string" ? a.toTree() : a;
20
20
  const nodeB = typeof b === "number" ? b.toTree() : typeof b === "string" ? b.toTree() : b;
21
- return new FractionNode(nodeA, nodeB);
21
+ return new FractionNode(nodeA, nodeB, opts);
22
22
  };
23
23
  exports.frac = frac;
24
24
  class FractionNode {
@@ -8,7 +8,8 @@ export declare enum OperatorIds {
8
8
  divide = 4,
9
9
  power = 5,
10
10
  limit = 6,
11
- integral = 7
11
+ integral = 7,
12
+ binomialCoefficient = 8
12
13
  }
13
14
  export interface OperatorNode extends AlgebraicNode {
14
15
  id: OperatorIds;
@@ -1 +1 @@
1
- {"version":3,"file":"operatorNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/operatorNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAY,MAAM,SAAS,CAAC;AAEzC,oBAAY,WAAW;IACrB,GAAG,IAAA;IACH,SAAS,IAAA;IACT,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,KAAK,IAAA;IACL,KAAK,IAAA;IACL,QAAQ,IAAA;CACT;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;CAC3B;AACD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,MAAM,EAAE,CAAC;CAC3B"}
1
+ {"version":3,"file":"operatorNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/operatorNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAY,MAAM,SAAS,CAAC;AAEzC,oBAAY,WAAW;IACrB,GAAG,IAAA;IACH,SAAS,IAAA;IACT,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,KAAK,IAAA;IACL,KAAK,IAAA;IACL,QAAQ,IAAA;IACR,mBAAmB,IAAA;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;CAC3B;AACD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,MAAM,EAAE,CAAC;CAC3B"}
@@ -12,6 +12,7 @@ var OperatorIds;
12
12
  OperatorIds[OperatorIds["power"] = 5] = "power";
13
13
  OperatorIds[OperatorIds["limit"] = 6] = "limit";
14
14
  OperatorIds[OperatorIds["integral"] = 7] = "integral";
15
+ OperatorIds[OperatorIds["binomialCoefficient"] = 8] = "binomialCoefficient";
15
16
  })(OperatorIds || (exports.OperatorIds = OperatorIds = {}));
16
17
  function isOperatorNode(a) {
17
18
  return a.type === node_1.NodeType.operator;
@@ -1,10 +1,18 @@
1
1
  import { AlgebraicNode } from "../algebraicNode";
2
2
  import { InequationNode } from "../inequations/inequationNode";
3
3
  import { Node, NodeIds, NodeOptions, NodeType } from "../node";
4
+ import { NodeIdentifiers } from "../nodeConstructor";
4
5
  import { ClosureType } from "./closure";
5
6
  import { SetIds, SetNode } from "./setNode";
6
7
  import { UnionIntervalNode } from "./unionIntervalNode";
7
8
  export declare function isIntervalNode(a: Node): a is IntervalNode;
9
+ export type IntervalNodeIdentifiers = {
10
+ id: NodeIds;
11
+ leftChild: NodeIdentifiers;
12
+ rightChild: NodeIdentifiers;
13
+ closure: ClosureType;
14
+ opts?: NodeOptions;
15
+ };
8
16
  export declare class IntervalNode implements SetNode {
9
17
  type: NodeType;
10
18
  id: SetIds;
@@ -25,16 +33,7 @@ export declare class IntervalNode implements SetNode {
25
33
  toRandomDifferentClosure(): IntervalNode;
26
34
  toComplement(): UnionIntervalNode | IntervalNode;
27
35
  toTex(): string;
28
- toIdentifiers(): {
29
- id: NodeIds;
30
- leftChild: {
31
- id: NodeIds;
32
- } & Record<string, any>;
33
- rightChild: {
34
- id: NodeIds;
35
- } & Record<string, any>;
36
- closure: ClosureType;
37
- };
36
+ toIdentifiers(): IntervalNodeIdentifiers;
38
37
  toText(isPlural: boolean, isFeminine: boolean): string;
39
38
  simplify(): this;
40
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"intervalNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/sets/intervalNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQ/D,OAAO,EAAW,WAAW,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAa,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AACD,qBAAa,YAAa,YAAW,OAAO;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;gBAEf,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,EAChB,OAAO,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,WAAW;IAWpB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW;IAMjC,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAoBpC,YAAY,CAAC,WAAW,CAAC,EAAE,aAAa;IA4BxC,YAAY;IAIZ,QAAQ;IAIR,iBAAiB;IAGjB,qBAAqB;IAGrB,sBAAsB;IAGtB,wBAAwB;IAWxB,YAAY;IAkCZ,KAAK;IAWL,aAAa;;;;;;;;;;IASb,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAiB7C,QAAQ;CAGT"}
1
+ {"version":3,"file":"intervalNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/sets/intervalNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQrD,OAAO,EAAW,WAAW,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAa,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AACD,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AACF,qBAAa,YAAa,YAAW,OAAO;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;gBAEf,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,EAChB,OAAO,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,WAAW;IAWpB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW;IAMjC,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAoBpC,YAAY,CAAC,WAAW,CAAC,EAAE,aAAa;IA4BxC,YAAY;IAIZ,QAAQ;IAIR,iBAAiB;IAGjB,qBAAqB;IAGrB,sBAAsB;IAGtB,wBAAwB;IAWxB,YAAY;IAkCZ,KAAK;IAWL,aAAa,IAAI,uBAAuB;IAUxC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAiB7C,QAAQ;CAGT"}
@@ -108,6 +108,7 @@ class IntervalNode {
108
108
  leftChild: this.a.toIdentifiers(),
109
109
  rightChild: this.b.toIdentifiers(),
110
110
  closure: this.closure,
111
+ opts: this.opts,
111
112
  };
112
113
  }
113
114
  toText(isPlural, isFeminine) {
@@ -1 +1 @@
1
- {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../../src/utils/alea/random.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAMnD"}
1
+ {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../../src/utils/alea/random.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAMnD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "math-exercises",
3
- "version": "2.2.56",
3
+ "version": "2.2.57",
4
4
  "description": "Math exercises generator for middle school and high school",
5
5
  "main": "lib/index.js",
6
6
  "files": [