math-exercises 3.0.200 → 3.0.202

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 (455) hide show
  1. package/lib/exercises/math/calcul/fractions/fractionsSumsPrimeDenominators.js +1 -1
  2. package/lib/exercises/math/calcul/index.d.ts +1 -0
  3. package/lib/exercises/math/calcul/index.d.ts.map +1 -1
  4. package/lib/exercises/math/calcul/index.js +1 -0
  5. package/lib/exercises/math/calculLitteral/inequations/index.d.ts +1 -0
  6. package/lib/exercises/math/calculLitteral/inequations/index.d.ts.map +1 -1
  7. package/lib/exercises/math/calculLitteral/inequations/index.js +1 -0
  8. package/lib/exercises/math/calculLitteral/inequations/inequationCenteredInterval.d.ts +14 -0
  9. package/lib/exercises/math/calculLitteral/inequations/inequationCenteredInterval.d.ts.map +1 -0
  10. package/lib/exercises/math/calculLitteral/inequations/inequationCenteredInterval.js +263 -0
  11. package/lib/exercises/math/combinatory/anagrams.d.ts.map +1 -1
  12. package/lib/exercises/math/combinatory/anagrams.js +89 -68
  13. package/lib/exercises/math/combinatory/index.d.ts +1 -0
  14. package/lib/exercises/math/combinatory/index.d.ts.map +1 -1
  15. package/lib/exercises/math/combinatory/index.js +1 -0
  16. package/lib/exercises/math/dataRepresentations/index.d.ts +1 -1
  17. package/lib/exercises/math/dataRepresentations/index.d.ts.map +1 -1
  18. package/lib/exercises/math/dataRepresentations/index.js +5 -1
  19. package/lib/exercises/math/dataRepresentations/scatterPlot/scatterPlotFillDataTableFromScatterPlotData.js +2 -2
  20. package/lib/exercises/math/dataRepresentations/scatterPlot/scatterPlotFillDataTableWithDataClassesFromScatterPlotData.d.ts.map +1 -1
  21. package/lib/exercises/math/dataRepresentations/scatterPlot/scatterPlotFillDataTableWithDataClassesFromScatterPlotData.js +9 -2
  22. package/lib/exercises/math/derivation/derivative/exp/secondDerivativeOfExpoFunction.js +1 -1
  23. package/lib/exercises/math/derivation/derivative/trigo/index.d.ts +3 -0
  24. package/lib/exercises/math/derivation/derivative/trigo/index.d.ts.map +1 -1
  25. package/lib/exercises/math/derivation/derivative/trigo/index.js +3 -0
  26. package/lib/exercises/math/derivation/derivative/trigo/sinCosDerivativeRewriteUsingCos2PlusSin2Equals1.d.ts.map +1 -1
  27. package/lib/exercises/math/derivation/derivative/trigo/sinCosDerivativeRewriteUsingCos2PlusSin2Equals1.js +1 -1
  28. package/lib/exercises/math/derivation/problems/problemMaximizeProfitFindProduction.d.ts.map +1 -1
  29. package/lib/exercises/math/derivation/problems/problemMaximizeProfitFindProduction.js +31 -21
  30. package/lib/exercises/math/derivation/problems/problemMovementOnLineFindSpeedAtPoint.d.ts.map +1 -1
  31. package/lib/exercises/math/derivation/problems/problemMovementOnLineFindSpeedAtPoint.js +5 -2
  32. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineY.d.ts.map +1 -1
  33. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineY.js +8 -128
  34. package/lib/exercises/math/derivation/variations/index.d.ts +1 -0
  35. package/lib/exercises/math/derivation/variations/index.d.ts.map +1 -1
  36. package/lib/exercises/math/derivation/variations/index.js +1 -0
  37. package/lib/exercises/math/derivation/variations/signVarTableAffinePlusCXLogX.d.ts +10 -0
  38. package/lib/exercises/math/derivation/variations/signVarTableAffinePlusCXLogX.d.ts.map +1 -0
  39. package/lib/exercises/math/derivation/variations/signVarTableAffinePlusCXLogX.js +222 -0
  40. package/lib/exercises/math/derivation/variations/signVarTableProductFExp.js +1 -1
  41. package/lib/exercises/math/derivation/variations/signVarTableQuotientFExp.d.ts.map +1 -1
  42. package/lib/exercises/math/derivation/variations/signVarTableQuotientFExp.js +48 -21
  43. package/lib/exercises/math/equaDiff/equaDiffAyPlusB.d.ts.map +1 -1
  44. package/lib/exercises/math/equaDiff/equaDiffAyPlusB.js +29 -6
  45. package/lib/exercises/math/equaDiff/equaDiffCheckSolutionFirstOrder.d.ts.map +1 -1
  46. package/lib/exercises/math/equaDiff/equaDiffCheckSolutionFirstOrder.js +33 -0
  47. package/lib/exercises/math/equaDiff/exponentialDifferentialEquation.d.ts +7 -0
  48. package/lib/exercises/math/equaDiff/exponentialDifferentialEquation.d.ts.map +1 -0
  49. package/lib/exercises/math/equaDiff/exponentialDifferentialEquation.js +86 -0
  50. package/lib/exercises/math/equaDiff/exponentialDifferentialEquationWithIC.d.ts.map +1 -1
  51. package/lib/exercises/math/equaDiff/exponentialDifferentialEquationWithIC.js +35 -7
  52. package/lib/exercises/math/equaDiff/index.d.ts +1 -1
  53. package/lib/exercises/math/equaDiff/index.d.ts.map +1 -1
  54. package/lib/exercises/math/equaDiff/index.js +1 -1
  55. package/lib/exercises/math/functions/affines/index.d.ts +5 -0
  56. package/lib/exercises/math/functions/affines/index.d.ts.map +1 -1
  57. package/lib/exercises/math/functions/affines/index.js +5 -0
  58. package/lib/exercises/math/functions/integral/index.d.ts +1 -0
  59. package/lib/exercises/math/functions/integral/index.d.ts.map +1 -1
  60. package/lib/exercises/math/functions/integral/index.js +1 -0
  61. package/lib/exercises/math/functions/integral/integralExpU.d.ts.map +1 -1
  62. package/lib/exercises/math/functions/integral/integralExpU.js +48 -0
  63. package/lib/exercises/math/functions/integral/integralFractions.d.ts.map +1 -1
  64. package/lib/exercises/math/functions/integral/integralFractions.js +52 -0
  65. package/lib/exercises/math/functions/integral/integralTrinomialOverX2.d.ts +12 -0
  66. package/lib/exercises/math/functions/integral/integralTrinomialOverX2.d.ts.map +1 -0
  67. package/lib/exercises/math/functions/integral/integralTrinomialOverX2.js +280 -0
  68. package/lib/exercises/math/functions/integral/integralTrinomials.d.ts.map +1 -1
  69. package/lib/exercises/math/functions/integral/integralTrinomials.js +40 -0
  70. package/lib/exercises/math/functions/logarithm/findLargestPossibleDomainOfLogF.d.ts +13 -0
  71. package/lib/exercises/math/functions/logarithm/findLargestPossibleDomainOfLogF.d.ts.map +1 -0
  72. package/lib/exercises/math/functions/logarithm/findLargestPossibleDomainOfLogF.js +622 -0
  73. package/lib/exercises/math/functions/logarithm/index.d.ts +5 -0
  74. package/lib/exercises/math/functions/logarithm/index.d.ts.map +1 -1
  75. package/lib/exercises/math/functions/logarithm/index.js +5 -0
  76. package/lib/exercises/math/functions/logarithm/log10Simplifying.js +2 -2
  77. package/lib/exercises/math/functions/logarithm/logEquationLnAXPlusBEqualsK.d.ts +10 -0
  78. package/lib/exercises/math/functions/logarithm/logEquationLnAXPlusBEqualsK.d.ts.map +1 -0
  79. package/lib/exercises/math/functions/logarithm/logEquationLnAXPlusBEqualsK.js +172 -0
  80. package/lib/exercises/math/functions/logarithm/logInequationIntegerSolutions.d.ts +11 -0
  81. package/lib/exercises/math/functions/logarithm/logInequationIntegerSolutions.d.ts.map +1 -0
  82. package/lib/exercises/math/functions/logarithm/logInequationIntegerSolutions.js +163 -0
  83. package/lib/exercises/math/functions/logarithm/logInequationLnAXPlusBInfK.d.ts +18 -0
  84. package/lib/exercises/math/functions/logarithm/logInequationLnAXPlusBInfK.d.ts.map +1 -0
  85. package/lib/exercises/math/functions/logarithm/logInequationLnAXPlusBInfK.js +330 -0
  86. package/lib/exercises/math/functions/logarithm/logLinearCombinationSimplifiying.d.ts +11 -0
  87. package/lib/exercises/math/functions/logarithm/logLinearCombinationSimplifiying.d.ts.map +1 -0
  88. package/lib/exercises/math/functions/logarithm/logLinearCombinationSimplifiying.js +185 -0
  89. package/lib/exercises/math/functions/logarithm/powerEquation.js +1 -1
  90. package/lib/exercises/math/geometry/parametric/extractVectorFromParametricLine.d.ts.map +1 -1
  91. package/lib/exercises/math/geometry/parametric/extractVectorFromParametricLine.js +30 -25
  92. package/lib/exercises/math/geometry/parametric/pointFromParametricLine.d.ts.map +1 -1
  93. package/lib/exercises/math/geometry/parametric/pointFromParametricLine.js +52 -5
  94. package/lib/exercises/math/index.d.ts +1 -1
  95. package/lib/exercises/math/index.d.ts.map +1 -1
  96. package/lib/exercises/math/index.js +2 -1
  97. package/lib/exercises/math/integration/fromExpr/areaBetweenCrossingCurvesFixedPosFromExpr.d.ts +15 -0
  98. package/lib/exercises/math/integration/fromExpr/areaBetweenCrossingCurvesFixedPosFromExpr.d.ts.map +1 -0
  99. package/lib/exercises/math/integration/fromExpr/areaBetweenCrossingCurvesFixedPosFromExpr.js +496 -0
  100. package/lib/exercises/math/integration/fromExpr/boundIntegralByBoundingFunctionWithAffinesFromExpr.d.ts +16 -0
  101. package/lib/exercises/math/integration/fromExpr/boundIntegralByBoundingFunctionWithAffinesFromExpr.d.ts.map +1 -0
  102. package/lib/exercises/math/integration/fromExpr/boundIntegralByBoundingFunctionWithAffinesFromExpr.js +433 -0
  103. package/lib/exercises/math/integration/fromExpr/boundIntegralByManualRectanglesMethodFromExpr.d.ts +15 -0
  104. package/lib/exercises/math/integration/fromExpr/boundIntegralByManualRectanglesMethodFromExpr.d.ts.map +1 -0
  105. package/lib/exercises/math/integration/fromExpr/boundIntegralByManualRectanglesMethodFromExpr.js +436 -0
  106. package/lib/exercises/math/integration/fromExpr/byParts/index.d.ts +3 -0
  107. package/lib/exercises/math/integration/fromExpr/byParts/index.d.ts.map +1 -0
  108. package/lib/exercises/math/integration/fromExpr/byParts/index.js +2 -0
  109. package/lib/exercises/math/integration/fromExpr/byParts/integralOfAXPlusBTimesExpKXByParts.d.ts +9 -0
  110. package/lib/exercises/math/integration/fromExpr/byParts/integralOfAXPlusBTimesExpKXByParts.d.ts.map +1 -0
  111. package/lib/exercises/math/integration/fromExpr/byParts/integralOfAXPlusBTimesExpKXByParts.js +234 -0
  112. package/lib/exercises/math/integration/fromExpr/byParts/integralOfPolynomialTimesLogXByParts.d.ts +12 -0
  113. package/lib/exercises/math/integration/fromExpr/byParts/integralOfPolynomialTimesLogXByParts.d.ts.map +1 -0
  114. package/lib/exercises/math/integration/fromExpr/byParts/integralOfPolynomialTimesLogXByParts.js +330 -0
  115. package/lib/exercises/math/integration/fromExpr/checkIsPrimitiveFromExpr.d.ts +15 -0
  116. package/lib/exercises/math/integration/fromExpr/checkIsPrimitiveFromExpr.d.ts.map +1 -0
  117. package/lib/exercises/math/integration/fromExpr/checkIsPrimitiveFromExpr.js +450 -0
  118. package/lib/exercises/math/integration/fromExpr/derivativeOfPrimitive.d.ts +10 -0
  119. package/lib/exercises/math/integration/fromExpr/derivativeOfPrimitive.d.ts.map +1 -0
  120. package/lib/exercises/math/integration/fromExpr/derivativeOfPrimitive.js +261 -0
  121. package/lib/exercises/math/integration/fromExpr/index.d.ts +9 -0
  122. package/lib/exercises/math/integration/fromExpr/index.d.ts.map +1 -0
  123. package/lib/exercises/math/integration/fromExpr/index.js +8 -0
  124. package/lib/exercises/math/integration/fromExpr/integralFromExpr.d.ts +13 -0
  125. package/lib/exercises/math/integration/fromExpr/integralFromExpr.d.ts.map +1 -0
  126. package/lib/exercises/math/integration/fromExpr/integralFromExpr.js +359 -0
  127. package/lib/exercises/math/integration/fromExpr/meanValue/index.d.ts +2 -0
  128. package/lib/exercises/math/integration/fromExpr/meanValue/index.d.ts.map +1 -0
  129. package/lib/exercises/math/integration/fromExpr/meanValue/index.js +1 -0
  130. package/lib/exercises/math/integration/fromExpr/meanValue/meanValueOfTrinomFromIntegralFromExpr.d.ts +14 -0
  131. package/lib/exercises/math/integration/fromExpr/meanValue/meanValueOfTrinomFromIntegralFromExpr.d.ts.map +1 -0
  132. package/lib/exercises/math/integration/fromExpr/meanValue/meanValueOfTrinomFromIntegralFromExpr.js +429 -0
  133. package/lib/exercises/math/integration/fromGraph/boundIntegralByManipulatingAutomaticRectanglesMethodFromGraph.d.ts +10 -0
  134. package/lib/exercises/math/integration/fromGraph/boundIntegralByManipulatingAutomaticRectanglesMethodFromGraph.d.ts.map +1 -0
  135. package/lib/exercises/math/integration/fromGraph/boundIntegralByManipulatingAutomaticRectanglesMethodFromGraph.js +286 -0
  136. package/lib/exercises/math/integration/fromGraph/imageOfPrimitiveByManipulatingIntegralBoundsFromGraph.d.ts +9 -0
  137. package/lib/exercises/math/integration/fromGraph/imageOfPrimitiveByManipulatingIntegralBoundsFromGraph.d.ts.map +1 -0
  138. package/lib/exercises/math/integration/fromGraph/imageOfPrimitiveByManipulatingIntegralBoundsFromGraph.js +231 -0
  139. package/lib/exercises/math/integration/fromGraph/index.d.ts +7 -0
  140. package/lib/exercises/math/integration/fromGraph/index.d.ts.map +1 -0
  141. package/lib/exercises/math/integration/fromGraph/index.js +6 -0
  142. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromExprByComputingArea.d.ts +15 -0
  143. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromExprByComputingArea.d.ts.map +1 -0
  144. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromExprByComputingArea.js +464 -0
  145. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromGraph.d.ts +15 -0
  146. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromGraph.d.ts.map +1 -0
  147. package/lib/exercises/math/integration/fromGraph/integralOfAffineFromGraph.js +493 -0
  148. package/lib/exercises/math/integration/fromGraph/integralOfPiecewiseAffineFromGraph.d.ts +18 -0
  149. package/lib/exercises/math/integration/fromGraph/integralOfPiecewiseAffineFromGraph.d.ts.map +1 -0
  150. package/lib/exercises/math/integration/fromGraph/integralOfPiecewiseAffineFromGraph.js +466 -0
  151. package/lib/exercises/math/integration/fromGraph/varTableOfPrimitiveFromGraph.d.ts +10 -0
  152. package/lib/exercises/math/integration/fromGraph/varTableOfPrimitiveFromGraph.d.ts.map +1 -0
  153. package/lib/exercises/math/integration/fromGraph/varTableOfPrimitiveFromGraph.js +192 -0
  154. package/lib/exercises/math/integration/index.d.ts +4 -0
  155. package/lib/exercises/math/integration/index.d.ts.map +1 -0
  156. package/lib/exercises/math/integration/index.js +3 -0
  157. package/lib/exercises/math/integration/integralOfPiecewiseFunctionByUsingComputedIntegrals.d.ts +14 -0
  158. package/lib/exercises/math/integration/integralOfPiecewiseFunctionByUsingComputedIntegrals.d.ts.map +1 -0
  159. package/lib/exercises/math/integration/integralOfPiecewiseFunctionByUsingComputedIntegrals.js +222 -0
  160. package/lib/exercises/math/limits/frac1XTimesALogXPlusBLimit.d.ts +8 -0
  161. package/lib/exercises/math/limits/frac1XTimesALogXPlusBLimit.d.ts.map +1 -0
  162. package/lib/exercises/math/limits/frac1XTimesALogXPlusBLimit.js +121 -0
  163. package/lib/exercises/math/limits/index.d.ts +3 -0
  164. package/lib/exercises/math/limits/index.d.ts.map +1 -1
  165. package/lib/exercises/math/limits/index.js +3 -0
  166. package/lib/exercises/math/limits/kLogXPlusTrinomLimit.d.ts +12 -0
  167. package/lib/exercises/math/limits/kLogXPlusTrinomLimit.d.ts.map +1 -0
  168. package/lib/exercises/math/limits/kLogXPlusTrinomLimit.js +224 -0
  169. package/lib/exercises/math/limits/logOfPolynomialLimit.d.ts +10 -0
  170. package/lib/exercises/math/limits/logOfPolynomialLimit.d.ts.map +1 -0
  171. package/lib/exercises/math/limits/logOfPolynomialLimit.js +154 -0
  172. package/lib/exercises/math/primitive/constantPrimitive.d.ts.map +1 -1
  173. package/lib/exercises/math/primitive/constantPrimitive.js +25 -1
  174. package/lib/exercises/math/primitive/exponentialPrimitive.d.ts.map +1 -1
  175. package/lib/exercises/math/primitive/exponentialPrimitive.js +17 -0
  176. package/lib/exercises/math/primitive/polynomialPrimitive.d.ts.map +1 -1
  177. package/lib/exercises/math/primitive/polynomialPrimitive.js +17 -1
  178. package/lib/exercises/math/primitive/sinCosPrimitive.d.ts.map +1 -1
  179. package/lib/exercises/math/primitive/sinCosPrimitive.js +20 -1
  180. package/lib/exercises/math/primitive/usualPrimitives.d.ts.map +1 -1
  181. package/lib/exercises/math/primitive/usualPrimitives.js +1 -0
  182. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfLinearCombination.d.ts +12 -0
  183. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfLinearCombination.d.ts.map +1 -0
  184. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfLinearCombination.js +170 -0
  185. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromDice.d.ts +7 -0
  186. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromDice.d.ts.map +1 -0
  187. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromDice.js +163 -0
  188. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromProbaLaw.d.ts +14 -0
  189. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromProbaLaw.d.ts.map +1 -0
  190. package/lib/exercises/math/probaStat/basicProbas/expectedValueOfSumFromProbaLaw.js +150 -0
  191. package/lib/exercises/math/probaStat/basicProbas/index.d.ts +5 -0
  192. package/lib/exercises/math/probaStat/basicProbas/index.d.ts.map +1 -1
  193. package/lib/exercises/math/probaStat/basicProbas/index.js +5 -0
  194. package/lib/exercises/math/probaStat/basicProbas/varianceOfLinearCombination.d.ts +12 -0
  195. package/lib/exercises/math/probaStat/basicProbas/varianceOfLinearCombination.d.ts.map +1 -0
  196. package/lib/exercises/math/probaStat/basicProbas/varianceOfLinearCombination.js +193 -0
  197. package/lib/exercises/math/probaStat/basicProbas/varianceOfMean.d.ts +13 -0
  198. package/lib/exercises/math/probaStat/basicProbas/varianceOfMean.d.ts.map +1 -0
  199. package/lib/exercises/math/probaStat/basicProbas/varianceOfMean.js +171 -0
  200. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialExpectedValueFromSituation.d.ts +9 -0
  201. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialExpectedValueFromSituation.d.ts.map +1 -0
  202. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialExpectedValueFromSituation.js +125 -0
  203. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindParamsFromSituation.d.ts +9 -0
  204. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindParamsFromSituation.d.ts.map +1 -0
  205. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindParamsFromSituation.js +126 -0
  206. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfAtLeastOneSuccessFromSituation.d.ts +8 -0
  207. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfAtLeastOneSuccessFromSituation.d.ts.map +1 -0
  208. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfAtLeastOneSuccessFromSituation.js +150 -0
  209. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfXCompKFromSituation.d.ts +15 -0
  210. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfXCompKFromSituation.d.ts.map +1 -0
  211. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindProbaOfXCompKFromSituation.js +386 -0
  212. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindThresholdForNFromSituation.d.ts +14 -0
  213. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindThresholdForNFromSituation.d.ts.map +1 -0
  214. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialFindThresholdForNFromSituation.js +248 -0
  215. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialSituations.d.ts +47 -0
  216. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialSituations.d.ts.map +1 -0
  217. package/lib/exercises/math/probaStat/binomial/fromSituation/binomialSituations.js +184 -0
  218. package/lib/exercises/math/probaStat/binomial/fromSituation/buildTreeBernoulliFromSituation.d.ts +9 -0
  219. package/lib/exercises/math/probaStat/binomial/fromSituation/buildTreeBernoulliFromSituation.d.ts.map +1 -0
  220. package/lib/exercises/math/probaStat/binomial/fromSituation/buildTreeBernoulliFromSituation.js +120 -0
  221. package/lib/exercises/math/probaStat/binomial/fromSituation/index.d.ts +7 -0
  222. package/lib/exercises/math/probaStat/binomial/fromSituation/index.d.ts.map +1 -0
  223. package/lib/exercises/math/probaStat/binomial/fromSituation/index.js +6 -0
  224. package/lib/exercises/math/probaStat/binomial/index.d.ts +1 -0
  225. package/lib/exercises/math/probaStat/binomial/index.d.ts.map +1 -1
  226. package/lib/exercises/math/probaStat/binomial/index.js +1 -0
  227. package/lib/exercises/math/probaStat/index.d.ts +1 -0
  228. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  229. package/lib/exercises/math/probaStat/index.js +1 -0
  230. package/lib/exercises/math/probaStat/tchebychev/index.d.ts +5 -0
  231. package/lib/exercises/math/probaStat/tchebychev/index.d.ts.map +1 -0
  232. package/lib/exercises/math/probaStat/tchebychev/index.js +4 -0
  233. package/lib/exercises/math/probaStat/tchebychev/mean/index.d.ts +4 -0
  234. package/lib/exercises/math/probaStat/tchebychev/mean/index.d.ts.map +1 -0
  235. package/lib/exercises/math/probaStat/tchebychev/mean/index.js +3 -0
  236. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevFindRadiusToMinorizeProbaOfMeanInCenteredInterval.d.ts +11 -0
  237. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevFindRadiusToMinorizeProbaOfMeanInCenteredInterval.d.ts.map +1 -0
  238. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevFindRadiusToMinorizeProbaOfMeanInCenteredInterval.js +273 -0
  239. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMajorizeProbaOfMeanOutOfCenteredInterval.d.ts +14 -0
  240. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMajorizeProbaOfMeanOutOfCenteredInterval.d.ts.map +1 -0
  241. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMajorizeProbaOfMeanOutOfCenteredInterval.js +219 -0
  242. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMinorizeProbaOfMeanInCenteredInterval.d.ts +14 -0
  243. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMinorizeProbaOfMeanInCenteredInterval.d.ts.map +1 -0
  244. package/lib/exercises/math/probaStat/tchebychev/mean/tchebychevMinorizeProbaOfMeanInCenteredInterval.js +245 -0
  245. package/lib/exercises/math/probaStat/tchebychev/tchebychevFindRadiusToMajorizeProbaOfXOutOfCenteredInterval.d.ts +10 -0
  246. package/lib/exercises/math/probaStat/tchebychev/tchebychevFindRadiusToMajorizeProbaOfXOutOfCenteredInterval.d.ts.map +1 -0
  247. package/lib/exercises/math/probaStat/tchebychev/tchebychevFindRadiusToMajorizeProbaOfXOutOfCenteredInterval.js +191 -0
  248. package/lib/exercises/math/probaStat/tchebychev/tchebychevMajorizeProbaOfXOutOfCenteredInterval.d.ts +10 -0
  249. package/lib/exercises/math/probaStat/tchebychev/tchebychevMajorizeProbaOfXOutOfCenteredInterval.d.ts.map +1 -0
  250. package/lib/exercises/math/probaStat/tchebychev/tchebychevMajorizeProbaOfXOutOfCenteredInterval.js +135 -0
  251. package/lib/exercises/math/probaStat/tchebychev/tchebychevMinorizeProbaOfXInCenteredInterval.d.ts +10 -0
  252. package/lib/exercises/math/probaStat/tchebychev/tchebychevMinorizeProbaOfXInCenteredInterval.d.ts.map +1 -0
  253. package/lib/exercises/math/probaStat/tchebychev/tchebychevMinorizeProbaOfXInCenteredInterval.js +155 -0
  254. package/lib/exercises/math/probaStat/trees/buildTreeBernoulli.d.ts +9 -0
  255. package/lib/exercises/math/probaStat/trees/buildTreeBernoulli.d.ts.map +1 -0
  256. package/lib/exercises/math/probaStat/trees/buildTreeBernoulli.js +124 -0
  257. package/lib/exercises/math/probaStat/trees/index.d.ts +1 -0
  258. package/lib/exercises/math/probaStat/trees/index.d.ts.map +1 -1
  259. package/lib/exercises/math/probaStat/trees/index.js +1 -0
  260. package/lib/exercises/math/sequences/geometric/graph/index.d.ts +4 -0
  261. package/lib/exercises/math/sequences/geometric/graph/index.d.ts.map +1 -1
  262. package/lib/exercises/math/sequences/geometric/graph/index.js +4 -0
  263. package/lib/exercises/math/sequences/geometric/index.d.ts +2 -0
  264. package/lib/exercises/math/sequences/geometric/index.d.ts.map +1 -1
  265. package/lib/exercises/math/sequences/geometric/index.js +2 -0
  266. package/lib/exercises/math/sequences/geometric/situations/geometricFindRankFromSituation.d.ts.map +1 -1
  267. package/lib/exercises/math/sequences/geometric/situations/geometricFindRankFromSituation.js +71 -48
  268. package/lib/exercises/math/sequences/geometric/situations/index.d.ts +2 -1
  269. package/lib/exercises/math/sequences/geometric/situations/index.d.ts.map +1 -1
  270. package/lib/exercises/math/sequences/geometric/situations/index.js +2 -2
  271. package/lib/exercises/math/sets/cartesianProduct/findCardinalOfCartesianProductOfFiniteSets.js +4 -4
  272. package/lib/exercises/math/sets/cartesianProduct/findCardinalOfCartesianProductOfFiniteSetsFromSituation.js +3 -3
  273. package/lib/exercises/math/sets/cartesianProduct/proposeElementInCartesianProductOfFiniteSets.js +4 -4
  274. package/lib/exercises/math/sets/index.d.ts +3 -0
  275. package/lib/exercises/math/sets/index.d.ts.map +1 -1
  276. package/lib/exercises/math/sets/index.js +3 -0
  277. package/lib/exercises/math/spaceGeometry/basis/index.d.ts +6 -0
  278. package/lib/exercises/math/spaceGeometry/basis/index.d.ts.map +1 -1
  279. package/lib/exercises/math/spaceGeometry/basis/index.js +6 -0
  280. package/lib/exercises/math/spaceGeometry/basis/lineLineRelativePositionsFromCubeOuterPoints.d.ts +11 -0
  281. package/lib/exercises/math/spaceGeometry/basis/lineLineRelativePositionsFromCubeOuterPoints.d.ts.map +1 -0
  282. package/lib/exercises/math/spaceGeometry/basis/lineLineRelativePositionsFromCubeOuterPoints.js +576 -0
  283. package/lib/exercises/math/spaceGeometry/basis/linePlaneRelativePositionsFromCubeOuterPoints.d.ts +11 -0
  284. package/lib/exercises/math/spaceGeometry/basis/linePlaneRelativePositionsFromCubeOuterPoints.d.ts.map +1 -0
  285. package/lib/exercises/math/spaceGeometry/basis/linePlaneRelativePositionsFromCubeOuterPoints.js +595 -0
  286. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystem.d.ts +11 -0
  287. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystem.d.ts.map +1 -0
  288. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystem.js +501 -0
  289. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystemFromVecPath.d.ts +16 -0
  290. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystemFromVecPath.d.ts.map +1 -0
  291. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfPointInCubeCoordSystemFromVecPath.js +753 -0
  292. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfVectorInCubeCoordSystem.d.ts +12 -0
  293. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfVectorInCubeCoordSystem.d.ts.map +1 -0
  294. package/lib/exercises/math/spaceGeometry/basis/spaceCoordinatesOfVectorInCubeCoordSystem.js +546 -0
  295. package/lib/exercises/math/spaceGeometry/basis/spaceVectorLinearCombinationFromCoords.d.ts +13 -0
  296. package/lib/exercises/math/spaceGeometry/basis/spaceVectorLinearCombinationFromCoords.d.ts.map +1 -0
  297. package/lib/exercises/math/spaceGeometry/basis/spaceVectorLinearCombinationFromCoords.js +233 -0
  298. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromCoords.d.ts +11 -0
  299. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromCoords.d.ts.map +1 -0
  300. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromCoords.js +192 -0
  301. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromVecPathsFromCubeOuterPoints.d.ts +15 -0
  302. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromVecPathsFromCubeOuterPoints.d.ts.map +1 -0
  303. package/lib/exercises/math/spaceGeometry/collinearity/checkAlignedSpacePointsFromVecPathsFromCubeOuterPoints.js +511 -0
  304. package/lib/exercises/math/spaceGeometry/collinearity/index.d.ts +3 -0
  305. package/lib/exercises/math/spaceGeometry/collinearity/index.d.ts.map +1 -0
  306. package/lib/exercises/math/spaceGeometry/collinearity/index.js +2 -0
  307. package/lib/exercises/math/spaceGeometry/index.d.ts +5 -0
  308. package/lib/exercises/math/spaceGeometry/index.d.ts.map +1 -1
  309. package/lib/exercises/math/spaceGeometry/index.js +5 -1
  310. package/lib/exercises/math/spaceGeometry/orthogonalProjection/findOrthogonalProjectionOfPointOnPlane.d.ts +22 -0
  311. package/lib/exercises/math/spaceGeometry/orthogonalProjection/findOrthogonalProjectionOfPointOnPlane.d.ts.map +1 -0
  312. package/lib/exercises/math/spaceGeometry/orthogonalProjection/findOrthogonalProjectionOfPointOnPlane.js +353 -0
  313. package/lib/exercises/math/spaceGeometry/orthogonalProjection/index.d.ts +2 -0
  314. package/lib/exercises/math/spaceGeometry/orthogonalProjection/index.d.ts.map +1 -0
  315. package/lib/exercises/math/spaceGeometry/orthogonalProjection/index.js +1 -0
  316. package/lib/exercises/math/spaceGeometry/parametricLine/index.d.ts +3 -0
  317. package/lib/exercises/math/spaceGeometry/parametricLine/index.d.ts.map +1 -0
  318. package/lib/exercises/math/spaceGeometry/parametricLine/index.js +2 -0
  319. package/lib/exercises/math/spaceGeometry/parametricLine/lineLineRelativePositionsFromParametricLines.d.ts +14 -0
  320. package/lib/exercises/math/spaceGeometry/parametricLine/lineLineRelativePositionsFromParametricLines.d.ts.map +1 -0
  321. package/lib/exercises/math/spaceGeometry/parametricLine/lineLineRelativePositionsFromParametricLines.js +325 -0
  322. package/lib/exercises/math/spaceGeometry/parametricLine/parametricLineFromPointAndDirectionVector.d.ts +13 -0
  323. package/lib/exercises/math/spaceGeometry/parametricLine/parametricLineFromPointAndDirectionVector.d.ts.map +1 -0
  324. package/lib/exercises/math/spaceGeometry/parametricLine/parametricLineFromPointAndDirectionVector.js +181 -0
  325. package/lib/exercises/math/spaceGeometry/planes/checkIsPointBelongingToPlane.d.ts +10 -0
  326. package/lib/exercises/math/spaceGeometry/planes/checkIsPointBelongingToPlane.d.ts.map +1 -0
  327. package/lib/exercises/math/spaceGeometry/planes/checkIsPointBelongingToPlane.js +208 -0
  328. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlaneEquation.d.ts +8 -0
  329. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlaneEquation.d.ts.map +1 -0
  330. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlaneEquation.js +255 -0
  331. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlanePointsCoords.d.ts +10 -0
  332. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlanePointsCoords.d.ts.map +1 -0
  333. package/lib/exercises/math/spaceGeometry/planes/findNormalVectorFromPlanePointsCoords.js +217 -0
  334. package/lib/exercises/math/spaceGeometry/planes/index.d.ts +6 -1
  335. package/lib/exercises/math/spaceGeometry/planes/index.d.ts.map +1 -1
  336. package/lib/exercises/math/spaceGeometry/planes/index.js +6 -2
  337. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromNormalVectorAndContainedPoint.d.ts +10 -0
  338. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromNormalVectorAndContainedPoint.d.ts.map +1 -0
  339. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromNormalVectorAndContainedPoint.js +273 -0
  340. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromOrthogonalLineAndContainedPoint.d.ts +12 -0
  341. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromOrthogonalLineAndContainedPoint.d.ts.map +1 -0
  342. package/lib/exercises/math/spaceGeometry/planes/planeEquationFromOrthogonalLineAndContainedPoint.js +398 -0
  343. package/lib/exercises/math/spaceGeometry/planes/planePlaneRelativePositions.d.ts +22 -0
  344. package/lib/exercises/math/spaceGeometry/planes/planePlaneRelativePositions.d.ts.map +1 -0
  345. package/lib/exercises/math/spaceGeometry/planes/planePlaneRelativePositions.js +495 -0
  346. package/lib/exercises/math/spaceGeometry/scalarProduct/angleFromScalarProductFromSpacePointCoords.d.ts +8 -0
  347. package/lib/exercises/math/spaceGeometry/scalarProduct/angleFromScalarProductFromSpacePointCoords.d.ts.map +1 -0
  348. package/lib/exercises/math/spaceGeometry/scalarProduct/angleFromScalarProductFromSpacePointCoords.js +249 -0
  349. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalLinesFromParametricReps.d.ts +9 -0
  350. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalLinesFromParametricReps.d.ts.map +1 -0
  351. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalLinesFromParametricReps.js +200 -0
  352. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalSpaceVecsFromCoords.d.ts +8 -0
  353. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalSpaceVecsFromCoords.d.ts.map +1 -0
  354. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsOrthogonalSpaceVecsFromCoords.js +176 -0
  355. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsSpaceVecOrthogonalToPlaneFromCoords.d.ts +9 -0
  356. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsSpaceVecOrthogonalToPlaneFromCoords.d.ts.map +1 -0
  357. package/lib/exercises/math/spaceGeometry/scalarProduct/checkIsSpaceVecOrthogonalToPlaneFromCoords.js +263 -0
  358. package/lib/exercises/math/spaceGeometry/scalarProduct/index.d.ts +7 -0
  359. package/lib/exercises/math/spaceGeometry/scalarProduct/index.d.ts.map +1 -0
  360. package/lib/exercises/math/spaceGeometry/scalarProduct/index.js +6 -0
  361. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromCubeOuterPoints.d.ts +14 -0
  362. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromCubeOuterPoints.d.ts.map +1 -0
  363. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromCubeOuterPoints.js +497 -0
  364. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromSpacePointCoords.d.ts +8 -0
  365. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromSpacePointCoords.d.ts.map +1 -0
  366. package/lib/exercises/math/spaceGeometry/scalarProduct/scalarProductFromSpacePointCoords.js +173 -0
  367. package/lib/exercises/math/spaceGeometry/vectors/findLinearDecompositionWrtCoplanarUVFromCoords.d.ts +10 -0
  368. package/lib/exercises/math/spaceGeometry/vectors/findLinearDecompositionWrtCoplanarUVFromCoords.d.ts.map +1 -0
  369. package/lib/exercises/math/spaceGeometry/vectors/findLinearDecompositionWrtCoplanarUVFromCoords.js +236 -0
  370. package/lib/exercises/math/spaceGeometry/vectors/index.d.ts +2 -0
  371. package/lib/exercises/math/spaceGeometry/vectors/index.d.ts.map +1 -1
  372. package/lib/exercises/math/spaceGeometry/vectors/index.js +2 -0
  373. package/lib/exercises/math/spaceGeometry/vectors/spacePointsDistanceCalculation.d.ts +8 -0
  374. package/lib/exercises/math/spaceGeometry/vectors/spacePointsDistanceCalculation.d.ts.map +1 -0
  375. package/lib/exercises/math/spaceGeometry/vectors/spacePointsDistanceCalculation.js +156 -0
  376. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.d.ts.map +1 -1
  377. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.js +87 -24
  378. package/lib/exercises/math/trigonometry/functions/index.d.ts +1 -0
  379. package/lib/exercises/math/trigonometry/functions/index.d.ts.map +1 -1
  380. package/lib/exercises/math/trigonometry/functions/index.js +1 -0
  381. package/lib/exercises/pc/mathExosInPC.d.ts +1 -1
  382. package/lib/exercises/pc/mathExosInPC.d.ts.map +1 -1
  383. package/lib/exercises/pc/mathExosInPC.js +1 -1
  384. package/lib/exercises/utils/data/randomDataTable.d.ts +4 -1
  385. package/lib/exercises/utils/data/randomDataTable.d.ts.map +1 -1
  386. package/lib/exercises/utils/data/randomDataTable.js +1 -2
  387. package/lib/exercises/vea/varLineVEA.d.ts.map +1 -1
  388. package/lib/exercises/vea/varLineVEA.js +15 -2
  389. package/lib/exercises/vea/xTableLineVEA.d.ts.map +1 -1
  390. package/lib/exercises/vea/xTableLineVEA.js +13 -2
  391. package/lib/index.d.ts +578 -18
  392. package/lib/index.d.ts.map +1 -1
  393. package/lib/latexTester.d.ts.map +1 -1
  394. package/lib/latexTester.js +9 -7
  395. package/lib/math/geometry/parametricLine.d.ts +1 -1
  396. package/lib/math/geometry/parametricLine.d.ts.map +1 -1
  397. package/lib/math/geometry/parametricLine.js +2 -2
  398. package/lib/math/geometry/spaceVector.d.ts +13 -1
  399. package/lib/math/geometry/spaceVector.d.ts.map +1 -1
  400. package/lib/math/geometry/spaceVector.js +58 -4
  401. package/lib/math/probability/randomVariable.d.ts +3 -2
  402. package/lib/math/probability/randomVariable.d.ts.map +1 -1
  403. package/lib/math/probability/randomVariable.js +14 -8
  404. package/lib/math/systems/generalSystem.d.ts +3 -3
  405. package/lib/math/systems/generalSystem.d.ts.map +1 -1
  406. package/lib/math/systems/generalSystem.js +20 -17
  407. package/lib/math/utils/functions/functionComparison.d.ts.map +1 -1
  408. package/lib/math/utils/functions/functionComparison.js +2 -45
  409. package/lib/math/utils/functions/functionComposition.d.ts +3 -1
  410. package/lib/math/utils/functions/functionComposition.d.ts.map +1 -1
  411. package/lib/math/utils/functions/functionComposition.js +17 -17
  412. package/lib/math/utils/integration/rectanglesMethod.d.ts +6 -0
  413. package/lib/math/utils/integration/rectanglesMethod.d.ts.map +1 -0
  414. package/lib/math/utils/integration/rectanglesMethod.js +66 -0
  415. package/lib/math/utils/polynomial/polynomialUtils.d.ts +10 -2
  416. package/lib/math/utils/polynomial/polynomialUtils.d.ts.map +1 -1
  417. package/lib/math/utils/polynomial/polynomialUtils.js +69 -7
  418. package/lib/math/utils/sequences/situations/seqGeometricSituations.d.ts +34 -2
  419. package/lib/math/utils/sequences/situations/seqGeometricSituations.d.ts.map +1 -1
  420. package/lib/math/utils/sequences/situations/seqGeometricSituations.js +288 -47
  421. package/lib/tests/exoTest.js +1 -1
  422. package/lib/tests/questionTest.d.ts.map +1 -1
  423. package/lib/tests/questionTest.js +12 -5
  424. package/lib/tests/singleExo.test.d.ts.map +1 -1
  425. package/lib/tests/singleExo.test.js +2 -2
  426. package/lib/tree/nodes/functions/cosNode.d.ts +1 -1
  427. package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
  428. package/lib/tree/nodes/functions/cosNode.js +5 -2
  429. package/lib/tree/nodes/functions/factorialNode.d.ts +1 -0
  430. package/lib/tree/nodes/functions/factorialNode.d.ts.map +1 -1
  431. package/lib/tree/nodes/functions/factorialNode.js +16 -1
  432. package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
  433. package/lib/tree/nodes/functions/logNode.js +2 -1
  434. package/lib/tree/nodes/operators/binomialCoefficientNode.d.ts +2 -0
  435. package/lib/tree/nodes/operators/binomialCoefficientNode.d.ts.map +1 -1
  436. package/lib/tree/nodes/operators/binomialCoefficientNode.js +34 -0
  437. package/lib/tree/nodes/sets/discreteSetNode.d.ts.map +1 -1
  438. package/lib/tree/nodes/sets/discreteSetNode.js +1 -0
  439. package/lib/tree/utilities/nodeComparator.d.ts +7 -0
  440. package/lib/tree/utilities/nodeComparator.d.ts.map +1 -1
  441. package/lib/tree/utilities/nodeComparator.js +61 -0
  442. package/lib/tree/utilities/nodeInspector.d.ts +2 -0
  443. package/lib/tree/utilities/nodeInspector.d.ts.map +1 -1
  444. package/lib/tree/utilities/nodeInspector.js +23 -1
  445. package/lib/tree/utilities/nodeRewriter.d.ts.map +1 -1
  446. package/lib/tree/utilities/nodeRewriter.js +4 -1
  447. package/lib/tree/utilities/nodeSimplifier.d.ts +1 -0
  448. package/lib/tree/utilities/nodeSimplifier.d.ts.map +1 -1
  449. package/lib/tree/utilities/nodeSimplifier.js +40 -0
  450. package/lib/types/keyIds.d.ts +1 -1
  451. package/lib/types/keyIds.d.ts.map +1 -1
  452. package/lib/utils/strings/splitAndKeep.d.ts +2 -0
  453. package/lib/utils/strings/splitAndKeep.d.ts.map +1 -0
  454. package/lib/utils/strings/splitAndKeep.js +13 -0
  455. package/package.json +1 -1
@@ -3,6 +3,8 @@ import { NodeIds, NodeType } from "../node.js";
3
3
  import { FunctionsIds, isFunctionNode } from "./functionNode.js";
4
4
  import { isNumberNode } from "../numbers/numberNode.js";
5
5
  import { factorial } from "../../../math/utils/arithmetic/factorial.js";
6
+ import { multiply } from "../operators/multiplyNode.js";
7
+ import { isOperatorNode } from "../operators/operatorNode.js";
6
8
  export function isFactorialNode(a) {
7
9
  return isFunctionNode(a) && a.id === FunctionsIds.factorial;
8
10
  }
@@ -41,7 +43,13 @@ export class FactorialNode {
41
43
  throw new Error("unimplemented");
42
44
  }
43
45
  toTex(opts) {
44
- return `${this.child.toTex(opts)}!`;
46
+ const child = this.child;
47
+ if (isOperatorNode(child)) {
48
+ return `(${this.child.toTex(opts)})!`;
49
+ }
50
+ else {
51
+ return `${this.child.toTex(opts)}!`;
52
+ }
45
53
  }
46
54
  // toMathjs() {
47
55
  // return abs(this.child.toMathjs());
@@ -54,6 +62,13 @@ export class FactorialNode {
54
62
  });
55
63
  return res;
56
64
  }
65
+ toMultiplyNode() {
66
+ const valueChild = this.child.evaluate();
67
+ return [...Array(valueChild).keys()]
68
+ .map((i) => i + 1)
69
+ .map((v) => v.toTree())
70
+ .reduce((acc, x) => multiply(acc, x));
71
+ }
57
72
  toAllValidTexs() {
58
73
  return this.toEquivalentNodes().map((node) => node.toTex());
59
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/logNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAOrE,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,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAGtB,mBAAmB,IAAI,MAAM;IAG7B,KAAK,IAAI,MAAM;IAaf,iBAAiB,IAAI,aAAa,EAAE;IAQpC,mBAAmB;IAOnB,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAoC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGtC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAGpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAGxD,UAAU,IAAI,aAAa;CAG5B"}
1
+ {"version":3,"file":"logNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/logNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQrE,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,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAGtB,mBAAmB,IAAI,MAAM;IAG7B,KAAK,IAAI,MAAM;IAaf,iBAAiB,IAAI,aAAa,EAAE;IAQpC,mBAAmB;IAOnB,cAAc,IAAI,MAAM,EAAE;IAG1B,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa;IAoC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGtC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAGpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAGxD,UAAU,IAAI,aAAa;CAG5B"}
@@ -7,6 +7,7 @@ import { NumberNode, isNumberNode } from "../numbers/numberNode.js";
7
7
  import { isInt } from "../../../utils/isInt.js";
8
8
  import { isExpNode } from "./expNode.js";
9
9
  import { maxPowerDecomposition } from "../../../math/utils/arithmetic/maxPowerDecomposition.js";
10
+ import { frac } from "../operators/fractionNode.js";
10
11
  export function isLogNode(a) {
11
12
  return isFunctionNode(a) && a.id === FunctionsIds.log;
12
13
  }
@@ -110,6 +111,6 @@ export class LogNode {
110
111
  return new LogNode(this.child.toDetailedEvaluation(vars));
111
112
  }
112
113
  derivative() {
113
- throw new Error("unimplemented derivative");
114
+ return frac(this.child.derivative(), this.child);
114
115
  }
115
116
  }
@@ -35,5 +35,7 @@ export declare class BinomialCoefficientNode implements OperatorNode {
35
35
  toTex(): string;
36
36
  derivative(): AlgebraicNode;
37
37
  toSimplificationTex(opts?: SimplifyOptions): string;
38
+ toFormulaWithFactoFractionNode(isSimplifySubstract?: boolean): import("./fractionNode.js").FractionNode;
39
+ toFormulaWithoutFacto(): import("./fractionNode.js").FractionNode;
38
40
  }
39
41
  //# sourceMappingURL=binomialCoefficientNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"binomialCoefficientNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/binomialCoefficientNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAG9E,eAAO,MAAM,yBAAyB,GACpC,GAAG,IAAI,KACN,CAAC,IAAI,uBACuD,CAAC;AAEhE,eAAO,MAAM,KAAK,GAChB,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,EAClC,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,4BAOnC,CAAC;AACF,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,CAAC,KAAK,CAAC,EAAE,eAAe;IAoBhC,cAAc;IAGd,mBAAmB;IAOnB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAMxD,iBAAiB;IAGjB,aAAa;;;;;;;;;IAOb,YAAY;IAGZ,KAAK;IAGL,UAAU,IAAI,aAAa;IAG3B,mBAAmB,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,MAAM;CAKpD"}
1
+ {"version":3,"file":"binomialCoefficientNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/binomialCoefficientNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIlE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAG9E,eAAO,MAAM,yBAAyB,GACpC,GAAG,IAAI,KACN,CAAC,IAAI,uBACuD,CAAC;AAEhE,eAAO,MAAM,KAAK,GAChB,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,EAClC,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,4BAOnC,CAAC;AACF,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,CAAC,KAAK,CAAC,EAAE,eAAe;IAoBhC,cAAc;IAGd,mBAAmB;IAOnB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAMxD,iBAAiB;IAGjB,aAAa;;;;;;;;;IAOb,YAAY;IAGZ,KAAK;IAGL,UAAU,IAAI,aAAa;IAG3B,mBAAmB,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,MAAM;IAMnD,8BAA8B,CAAC,mBAAmB,GAAE,OAAc;IA0BlE,qBAAqB;CAmBtB"}
@@ -1,6 +1,7 @@
1
1
  import { combinations } from "../../../math/utils/combinatorics/combination.js";
2
2
  import { facto } from "../functions/factorialNode.js";
3
3
  import { NodeIds, NodeType } from "../node.js";
4
+ import { isNumberNode } from "../numbers/numberNode.js";
4
5
  import { frac } from "./fractionNode.js";
5
6
  import { multiply } from "./multiplyNode.js";
6
7
  import { OperatorIds, isOperatorNode } from "./operatorNode.js";
@@ -84,4 +85,37 @@ export class BinomialCoefficientNode {
84
85
  return this.toTex() + "=" + simp.toTex();
85
86
  return this.toTex();
86
87
  }
88
+ toFormulaWithFactoFractionNode(isSimplifySubstract = true) {
89
+ return frac(facto(this.leftChild), multiply(facto(this.rightChild), facto((() => {
90
+ const nodeSubRaw = substract(this.leftChild, this.rightChild);
91
+ if (isSimplifySubstract) {
92
+ const nodeSubSimplified = nodeSubRaw.simplify({
93
+ towardsDistribute: true,
94
+ });
95
+ if (isNumberNode(nodeSubSimplified)) {
96
+ return nodeSubSimplified;
97
+ }
98
+ else {
99
+ return nodeSubRaw;
100
+ }
101
+ }
102
+ else {
103
+ return nodeSubRaw;
104
+ }
105
+ })())));
106
+ }
107
+ toFormulaWithoutFacto() {
108
+ const isCanBeTransformed = isNumberNode(this.leftChild) && isNumberNode(this.rightChild);
109
+ if (!isCanBeTransformed) {
110
+ throw new Error("The node cannot be transformed via toFormulaWithoutFacto()");
111
+ }
112
+ const [vNum, vDenum] = [this.leftChild, this.rightChild].map((node) => node.evaluate());
113
+ const nbFactors = vNum - vDenum;
114
+ const nodeNum = [...Array(nbFactors).keys()]
115
+ .map((i) => (i === 0 ? vNum : vNum - i))
116
+ .map((v) => v.toTree())
117
+ .reduce((acc, node) => multiply(acc, node));
118
+ const nodeDenum = facto(nbFactors).toMultiplyNode();
119
+ return frac(nodeNum, nodeDenum);
120
+ }
87
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"discreteSetNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/sets/discreteSetNode.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AAC1D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,eAAe,CAE/D;AAED,eAAO,MAAM,GAAG,GAAI,OAAO,aAAa,EAAE,EAAE,OAAO,WAAW,oBAE7D,CAAC;AACF,qBAAa,eAAgB,YAAW,OAAO;IAC7C,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;gBACP,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW;IAQzD,UAAU;IAGV,mBAAmB,IAAI,MAAM;IAG7B,YAAY;IAGZ,cAAc;IAGd,aAAa;;;;;;IAMb,mBAAmB;IAOnB,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAyBpC,YAAY;IAIZ,KAAK;IAOL,qBAAqB;IAMrB,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAO/B,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa;IAG5C,MAAM,CAAC,IAAI,EAAE,aAAa;IAQ1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,eAAe;IAGhE,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAMzD;AAED,eAAO,MAAM,QAAQ,iBAA0B,CAAC"}
1
+ {"version":3,"file":"discreteSetNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/sets/discreteSetNode.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AAC1D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,eAAe,CAE/D;AAED,eAAO,MAAM,GAAG,GAAI,OAAO,aAAa,EAAE,EAAE,OAAO,WAAW,oBAE7D,CAAC;AACF,qBAAa,eAAgB,YAAW,OAAO;IAC7C,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;gBACP,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW;IAQzD,UAAU;IAGV,mBAAmB,IAAI,MAAM;IAG7B,YAAY;IAGZ,cAAc;IAGd,aAAa;;;;;;IAMb,mBAAmB;IAOnB,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAyBpC,YAAY;IAIZ,KAAK;IASL,qBAAqB;IAMrB,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAO/B,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa;IAG5C,MAAM,CAAC,IAAI,EAAE,aAAa;IAQ1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,eAAe;IAGhE,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAMzD;AAED,eAAO,MAAM,QAAQ,iBAA0B,CAAC"}
@@ -80,6 +80,7 @@ export class DiscreteSetNode {
80
80
  return `\\left\\{${this.elements
81
81
  .map((el) => el.toTex())
82
82
  .join(";")}\\right\\}`;
83
+ //TODO: `\\left\\{${this.elements -> `\\left\\{ ${this.elements to avoid creating commands like \\lbracea \\lbraceb \\lbracec ...
83
84
  }
84
85
  toDeleteRandomElement() {
85
86
  const index = Math.floor(Math.random() * this.elements.length);
@@ -1,7 +1,14 @@
1
+ import { Tuple } from "../../math/sets/tuple.js";
1
2
  import { AlgebraicNode } from "../nodes/algebraicNode.js";
3
+ import { DiscreteSetNode } from "../nodes/sets/discreteSetNode.js";
2
4
  export declare abstract class NodeComparator {
3
5
  static compareViaSub: <T extends AlgebraicNode>(node1: T, node2: T) => -1 | 0 | 1;
4
6
  static isEqualViaSub: (node1: AlgebraicNode, node2: AlgebraicNode) => boolean;
5
7
  static isEqualViaFrac: (node1: AlgebraicNode, node2: AlgebraicNode) => boolean;
8
+ static isEqualViaRandomEvaluations(node1: AlgebraicNode, node2: AlgebraicNode, nbRandomEvaluations: number, precision?: number): boolean;
9
+ static isNodeInDiscreteSet: (node: AlgebraicNode, nodeDiscreteSet: DiscreteSetNode) => boolean;
10
+ static isTupleInCartesianProductOfDiscreteSets: (tuple: Tuple, arrDiscreteSet: DiscreteSetNode[]) => boolean;
11
+ static isEqualTuple: (tuple1: Tuple, tuple2: Tuple) => boolean;
12
+ static isTupleInArrTuple: (tuple: Tuple, arrTuple: Tuple[]) => boolean;
6
13
  }
7
14
  //# sourceMappingURL=nodeComparator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodeComparator.d.ts","sourceRoot":"","sources":["../../../src/tree/utilities/nodeComparator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM1D,8BAAsB,cAAc;IAGlC,MAAM,CAAC,aAAa,GAAI,CAAC,SAAS,aAAa,EAC7C,OAAO,CAAC,EACR,OAAO,CAAC,KACP,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CA4DX;IAEF,MAAM,CAAC,aAAa,GAClB,OAAO,aAAa,EACpB,OAAO,aAAa,KACnB,OAAO,CAER;IAIF,MAAM,CAAC,cAAc,GACnB,OAAO,aAAa,EACpB,OAAO,aAAa,KACnB,OAAO,CAgBR;CACH"}
1
+ {"version":3,"file":"nodeComparator.d.ts","sourceRoot":"","sources":["../../../src/tree/utilities/nodeComparator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAKnE,8BAAsB,cAAc;IAGlC,MAAM,CAAC,aAAa,GAAI,CAAC,SAAS,aAAa,EAC7C,OAAO,CAAC,EACR,OAAO,CAAC,KACP,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CA4DX;IAEF,MAAM,CAAC,aAAa,GAClB,OAAO,aAAa,EACpB,OAAO,aAAa,KACnB,OAAO,CAER;IAIF,MAAM,CAAC,cAAc,GACnB,OAAO,aAAa,EACpB,OAAO,aAAa,KACnB,OAAO,CAgBR;IAIF,MAAM,CAAC,2BAA2B,CAChC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,aAAa,EACpB,mBAAmB,EAAE,MAAM,EAC3B,SAAS,GAAE,MAAU;IAiEvB,MAAM,CAAC,mBAAmB,GACxB,MAAM,aAAa,EACnB,iBAAiB,eAAe,aAI9B;IAEJ,MAAM,CAAC,uCAAuC,GAC5C,OAAO,KAAK,EACZ,gBAAgB,eAAe,EAAE,aAQjC;IAIF,MAAM,CAAC,YAAY,GAAI,QAAQ,KAAK,EAAE,QAAQ,KAAK,aAIjD;IAEF,MAAM,CAAC,iBAAiB,GAAI,OAAO,KAAK,EAAE,UAAU,KAAK,EAAE,aAMzD;CACH"}
@@ -1,7 +1,11 @@
1
+ import { randfloat } from "../../math/utils/random/randfloat.js";
2
+ import { zip } from "../../utils/arrays/arrayZip.js";
3
+ import { isInfiniteNode } from "../nodes/numbers/constantNode.js";
1
4
  import { frac } from "../nodes/operators/fractionNode.js";
2
5
  import { substract } from "../nodes/operators/substractNode.js";
3
6
  import { NodeRewriter } from "./nodeRewriter.js";
4
7
  import { NodeSimplifier } from "./nodeSimplifier.js";
8
+ import { round } from "../../math/utils/round.js";
5
9
  export class NodeComparator {
6
10
  //via sub
7
11
  static compareViaSub = (node1, node2) => {
@@ -85,4 +89,61 @@ export class NodeComparator {
85
89
  });
86
90
  });
87
91
  };
92
+ //via random evaluations
93
+ static isEqualViaRandomEvaluations(node1, node2, nbRandomEvaluations, precision = 8) {
94
+ const getSafeEvaluationDictForEqualityCheck = (node1, node2, nbSafeX = 4) => {
95
+ const dict = {};
96
+ let counter = -1;
97
+ while (Object.keys(dict).length < nbSafeX && counter < 1000) {
98
+ counter++;
99
+ const x = randfloat(-20, 100, 3);
100
+ let value1;
101
+ let value2;
102
+ try {
103
+ value1 = node1.evaluate({ x });
104
+ }
105
+ catch (_) {
106
+ continue;
107
+ }
108
+ try {
109
+ value2 = node2.evaluate({ x });
110
+ }
111
+ catch (_) {
112
+ continue;
113
+ }
114
+ const [isValidValue1, isValidValue2] = [value1, value2].map((value) => value !== undefined &&
115
+ !isNaN(value) &&
116
+ !isInfiniteNode(value.toTree()));
117
+ if (isValidValue1 && isValidValue2) {
118
+ dict[x] = [value1, value2].map((value) => {
119
+ return {
120
+ x,
121
+ value,
122
+ };
123
+ });
124
+ }
125
+ }
126
+ return dict;
127
+ };
128
+ return Object.values(getSafeEvaluationDictForEqualityCheck(node1, node2, nbRandomEvaluations)).every((arrSafeEval) => {
129
+ return arrSafeEval.slice(1).every((safeEval) => {
130
+ const valueSubRounded = round(substract(arrSafeEval[0].value, safeEval.value).evaluate(), precision);
131
+ return valueSubRounded === 0;
132
+ });
133
+ });
134
+ }
135
+ //discreteSets, etc.
136
+ static isNodeInDiscreteSet = (node, nodeDiscreteSet) => nodeDiscreteSet.elements.some((nodeInSet) => NodeComparator.isEqualViaSub(node, nodeInSet));
137
+ static isTupleInCartesianProductOfDiscreteSets = (tuple, arrDiscreteSet) => {
138
+ return zip(tuple.components, arrDiscreteSet).reduce((acc, [nodeComponent, nodeDiscreteSet]) => {
139
+ return acc && this.isNodeInDiscreteSet(nodeComponent, nodeDiscreteSet);
140
+ }, true);
141
+ };
142
+ //tuples
143
+ static isEqualTuple = (tuple1, tuple2) => {
144
+ return zip(tuple1.components, tuple2.components).every(([node1, node2]) => this.isEqualViaSub(node1, node2));
145
+ };
146
+ static isTupleInArrTuple = (tuple, arrTuple) => {
147
+ return arrTuple.some((tupleOfArr) => zip(tuple.components, tupleOfArr.components).every(([node1, node2]) => this.isEqualViaSub(node1, node2)));
148
+ };
88
149
  }
@@ -1,5 +1,7 @@
1
1
  import { AlgebraicNode } from "../nodes/algebraicNode.js";
2
+ import { FunctionNode } from "../nodes/functions/functionNode.js";
2
3
  export declare abstract class NodeInspector {
3
4
  static getChildren(algebraicNode: AlgebraicNode): AlgebraicNode[];
5
+ static isContainingFunctionNode(algebraicNode: AlgebraicNode, nodeFunc: FunctionNode): boolean;
4
6
  }
5
7
  //# sourceMappingURL=nodeInspector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodeInspector.d.ts","sourceRoot":"","sources":["../../../src/tree/utilities/nodeInspector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,8BAAsB,aAAa;IACjC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa;CAShD"}
1
+ {"version":3,"file":"nodeInspector.d.ts","sourceRoot":"","sources":["../../../src/tree/utilities/nodeInspector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACL,YAAY,EAEb,MAAM,oCAAoC,CAAC;AAG5C,8BAAsB,aAAa;IACjC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa;IAU/C,MAAM,CAAC,wBAAwB,CAC7B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,YAAY,GACrB,OAAO;CAyBX"}
@@ -1,4 +1,4 @@
1
- import { isFunctionNode } from "../nodes/functions/functionNode.js";
1
+ import { isFunctionNode, } from "../nodes/functions/functionNode.js";
2
2
  import { isOperatorNode } from "../nodes/operators/operatorNode.js";
3
3
  export class NodeInspector {
4
4
  static getChildren(algebraicNode) {
@@ -12,4 +12,26 @@ export class NodeInspector {
12
12
  return [];
13
13
  }
14
14
  }
15
+ static isContainingFunctionNode(algebraicNode, nodeFunc) {
16
+ function checkChildren(algebraicNode, nodeFunc) {
17
+ const arrNodeChildren = NodeInspector.getChildren(algebraicNode);
18
+ if (arrNodeChildren.length > 0) {
19
+ return arrNodeChildren.some((nodeChild) => NodeInspector.isContainingFunctionNode(nodeChild, nodeFunc));
20
+ }
21
+ else {
22
+ return false;
23
+ }
24
+ }
25
+ if (isFunctionNode(algebraicNode)) {
26
+ if (algebraicNode.id === nodeFunc.id) {
27
+ return true;
28
+ }
29
+ else {
30
+ return checkChildren(algebraicNode, nodeFunc);
31
+ }
32
+ }
33
+ else {
34
+ return checkChildren(algebraicNode, nodeFunc);
35
+ }
36
+ }
15
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nodeRewriter.d.ts","sourceRoot":"","sources":["../../../src/tree/utilities/nodeRewriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAkC1D,8BAAsB,YAAY;IAChC,MAAM,CAAC,eAAe,GAAI,CAAC,SAAS,aAAa,EAC/C,eAAe,CAAC,EAChB,UAAU,MAAM,EAChB,iBAAiB,MAAM,EAAE,KACxB,aAAa,CAUd;IAEF,MAAM,CAAC,iCAAiC,GAAI,CAAC,SAAS,aAAa,EACjE,eAAe,CAAC,EAChB,UAAU,MAAM,gBAgBH,aAAa,EAAE,KAAK,aAAa,CAP9C;IAKF,MAAM,CAAC,oCAAoC,GACzC,eAAe,aAAa,KAC3B,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,aAAa,CAAC,EAAE,CA2HjD;IAEF,MAAM,CAAC,qBAAqB,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,EAAE;IAW3E,MAAM,CAAC,oBAAoB,CACzB,aAAa,EAAE,aAAa,EAC5B,aAAa,GAAE,OAAc,GAC5B,aAAa,EAAE;CAwCnB"}
1
+ {"version":3,"file":"nodeRewriter.d.ts","sourceRoot":"","sources":["../../../src/tree/utilities/nodeRewriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAkC1D,8BAAsB,YAAY;IAChC,MAAM,CAAC,eAAe,GAAI,CAAC,SAAS,aAAa,EAC/C,eAAe,CAAC,EAChB,UAAU,MAAM,EAChB,iBAAiB,MAAM,EAAE,KACxB,aAAa,CAUd;IAEF,MAAM,CAAC,iCAAiC,GAAI,CAAC,SAAS,aAAa,EACjE,eAAe,CAAC,EAChB,UAAU,MAAM,gBAgBH,aAAa,EAAE,KAAK,aAAa,CAP9C;IAKF,MAAM,CAAC,oCAAoC,GACzC,eAAe,aAAa,KAC3B,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,aAAa,CAAC,EAAE,CA8HjD;IAEF,MAAM,CAAC,qBAAqB,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,EAAE;IAW3E,MAAM,CAAC,oBAAoB,CACzB,aAAa,EAAE,aAAa,EAC5B,aAAa,GAAE,OAAc,GAC5B,aAAa,EAAE;CAwCnB"}
@@ -126,7 +126,10 @@ export class NodeRewriter {
126
126
  case FunctionsIds.abs:
127
127
  return [(children) => abs(children[0])];
128
128
  case FunctionsIds.factorial:
129
- return [(children) => facto(children[0])];
129
+ return [
130
+ (children) => facto(children[0]),
131
+ (children) => facto(children[0]).toMultiplyNode(),
132
+ ];
130
133
  }
131
134
  }
132
135
  else {
@@ -11,5 +11,6 @@ export declare abstract class NodeSimplifier {
11
11
  isMultiTopLevel: boolean;
12
12
  }, toTexOpts?: ToTexOptions) => string[];
13
13
  static simplifyByVibrating(algebraicNode: AlgebraicNode, nbVibrations?: number, isTowardsDistribute?: boolean): AlgebraicNode;
14
+ static simplifyByInfiltrating(algebraicNode: AlgebraicNode, simplifyOpts: SimplifyOptions): AlgebraicNode;
14
15
  }
15
16
  //# sourceMappingURL=nodeSimplifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodeSimplifier.d.ts","sourceRoot":"","sources":["../../../src/tree/utilities/nodeSimplifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAiB3E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKhD,8BAAsB,cAAc;IAClC,MAAM,CAAC,QAAQ,GAAI,CAAC,SAAS,aAAa,EACxC,eAAe,CAAC,EAChB,cAAc,eAAe,EAC7B,eAAc,YAIb,KACA,MAAM,CAsBP;IAEF,MAAM,CAAC,iBAAiB,GAAI,eAAe,aAAa,sCAmCtD;IAEF,MAAM,CAAC,8BAA8B,GAAI,OAAO,aAAa,EAAE,qBAK7D;IAEF,MAAM,CAAC,eAAe,GAAI,CAAC,SAAS,aAAa,EAC/C,eAAe,CAAC,EAChB,cAAc,eAAe,EAC7B,iBAAgB;QACd,eAAe,EAAE,OAAO,CAAC;KAG1B,EACD,YAAW,YAIV,KACA,aAAa,EAAE,CA4JhB;IAEF,MAAM,CAAC,gBAAgB,GACrB,MAAM,aAAa,EACnB,eAAc,eAAoB,EAClC,iBAAgB;QACd,eAAe,EAAE,OAAO,CAAC;KAG1B,EACD,YAAW,YAIV,cAQD;IAEF,MAAM,CAAC,mBAAmB,CACxB,aAAa,EAAE,aAAa,EAC5B,YAAY,GAAE,MAAU,EACxB,mBAAmB,GAAE,OAAc,GAClC,aAAa;CAcjB"}
1
+ {"version":3,"file":"nodeSimplifier.d.ts","sourceRoot":"","sources":["../../../src/tree/utilities/nodeSimplifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAiB3E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKhD,8BAAsB,cAAc;IAClC,MAAM,CAAC,QAAQ,GAAI,CAAC,SAAS,aAAa,EACxC,eAAe,CAAC,EAChB,cAAc,eAAe,EAC7B,eAAc,YAIb,KACA,MAAM,CAsBP;IAEF,MAAM,CAAC,iBAAiB,GAAI,eAAe,aAAa,sCAmCtD;IAEF,MAAM,CAAC,8BAA8B,GAAI,OAAO,aAAa,EAAE,qBAK7D;IAEF,MAAM,CAAC,eAAe,GAAI,CAAC,SAAS,aAAa,EAC/C,eAAe,CAAC,EAChB,cAAc,eAAe,EAC7B,iBAAgB;QACd,eAAe,EAAE,OAAO,CAAC;KAG1B,EACD,YAAW,YAIV,KACA,aAAa,EAAE,CA4JhB;IAEF,MAAM,CAAC,gBAAgB,GACrB,MAAM,aAAa,EACnB,eAAc,eAAoB,EAClC,iBAAgB;QACd,eAAe,EAAE,OAAO,CAAC;KAG1B,EACD,YAAW,YAIV,cAQD;IAEF,MAAM,CAAC,mBAAmB,CACxB,aAAa,EAAE,aAAa,EAC5B,YAAY,GAAE,MAAU,EACxB,mBAAmB,GAAE,OAAc,GAClC,aAAa;IAehB,MAAM,CAAC,sBAAsB,CAC3B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,eAAe,GAC5B,aAAa;CAyDjB"}
@@ -209,4 +209,44 @@ export class NodeSimplifier {
209
209
  return this.simplifyByVibrating(nodeSimplified, nbVibrations - 1, !isTowardsDistribute);
210
210
  }
211
211
  }
212
+ static simplifyByInfiltrating(algebraicNode, simplifyOpts) {
213
+ const outNode = (() => {
214
+ if (isOperatorNode(algebraicNode)) {
215
+ const [nodeLeft, nodeRight] = [
216
+ algebraicNode.leftChild,
217
+ algebraicNode.rightChild,
218
+ ];
219
+ const isCanDiveDeeper = [nodeLeft, nodeRight].every((nodeChild) => isOperatorNode(nodeChild) || isFunctionNode(nodeChild));
220
+ if (isCanDiveDeeper) {
221
+ const [nodeLeftSimplified, nodeRightSimplified] = [
222
+ nodeLeft,
223
+ nodeRight,
224
+ ].map((nodeChild) => this.simplifyByInfiltrating(nodeChild, simplifyOpts));
225
+ const funcMother = NodeRewriter.getArrCreateNodeFromChildrenFunction(algebraicNode).find(() => true);
226
+ return funcMother([nodeLeftSimplified, nodeRightSimplified]).simplify(simplifyOpts);
227
+ }
228
+ else {
229
+ return algebraicNode.simplify(simplifyOpts);
230
+ }
231
+ }
232
+ else if (isFunctionNode(algebraicNode)) {
233
+ const nodeChild = algebraicNode.child;
234
+ const isCanDiveDeeper = [nodeChild].every((nodeChild) => isOperatorNode(nodeChild) || isFunctionNode(nodeChild));
235
+ if (isCanDiveDeeper) {
236
+ const [nodeChildSimplified] = [nodeChild].map((nodeChild) => this.simplifyByInfiltrating(nodeChild, simplifyOpts));
237
+ const funcMother = NodeRewriter.getArrCreateNodeFromChildrenFunction(algebraicNode).find(() => true);
238
+ return funcMother([nodeChildSimplified]).simplify(simplifyOpts);
239
+ }
240
+ else {
241
+ return algebraicNode.simplify(simplifyOpts);
242
+ }
243
+ }
244
+ else {
245
+ return algebraicNode.simplify(simplifyOpts);
246
+ }
247
+ })();
248
+ // console.log("simplifyByInfiltrating", "nodeIn:", algebraicNode.toTex());
249
+ // console.log("simplifyByInfiltrating", "nodeOut:", outNode.toTex());
250
+ return outNode;
251
+ }
212
252
  }
@@ -10,7 +10,7 @@ export type KeyId =
10
10
  /**geometry */
11
11
  | "overrightarrow" | "degree" | "vectorU" | "vectorV" | "vectorW" | "vectorZ" | "vectorNul" | "widehat"
12
12
  /**operations */
13
- | "plus" | "minus" | "times" | "frac" | "obelus" | "sqrt" | "sqrtCub" | "square" | "cube" | "power" | "percent" | "leftParenthesis" | "leftParenthesisNoLeft" | "rightParenthesis" | "rightParenthesisNoRight" | "equal" | "comma" | "semicolon" | "colon" | "dot" | "sup" | "inf" | "geq" | "leq" | "approx" | "xsquare" | "xcube" | "equivalent"
13
+ | "plus" | "minus" | "times" | "frac" | "obelus" | "sqrt" | "sqrtCub" | "square" | "cube" | "power" | "percent" | "leftParenthesis" | "leftParenthesisNoLeft" | "rightParenthesis" | "rightParenthesisNoRight" | "equal" | "comma" | "semicolon" | "colon" | "dot" | "sup" | "inf" | "geq" | "leq" | "approx" | "xsquare" | "xcube" | "equivalent" | "facto"
14
14
  /**sets */
15
15
  | "belongs" | "notin" | "cap" | "cup" | "lbrace" | "rbrace" | "lbracket" | "lbracketNoSpace" | "rbracket" | "rbracketNoSpace" | "varnothing" | "naturals" | "integers" | "rationals" | "decimals" | "reals" | "complex" | "ast" | "del" | "right" | "left" | "rightarrow" | "overrightarrow" | "infty"
16
16
  /**fcts */
@@ -1 +1 @@
1
- {"version":3,"file":"keyIds.d.ts","sourceRoot":"","sources":["../../src/types/keyIds.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK;AACf,gBAAgB;AACd,YAAY,GACZ,aAAa,GACb,mBAAmB,GACnB,oBAAoB;AACtB,WAAW;GACT,IAAI,GACJ,KAAK,GACL,SAAS,GACT,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,SAAS,GACT,SAAS,GACT,OAAO,GACP,eAAe;AAEjB,aAAa;GACX,QAAQ,GACR,OAAO,GACP,MAAM,GACN,YAAY,GACZ,KAAK,GACL,OAAO,GACP,QAAQ,GACR,KAAK;AAEP,WAAW;GACT,IAAI,GACJ,IAAI,GACJ,OAAO;AAET,cAAc;GACZ,gBAAgB,GAChB,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS;AAEX,gBAAgB;GACd,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,GACN,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,GACR,MAAM,GACN,OAAO,GACP,SAAS,GACT,iBAAiB,GACjB,uBAAuB,GACvB,kBAAkB,GAClB,yBAAyB,GACzB,OAAO,GACP,OAAO,GACP,WAAW,GACX,OAAO,GACP,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,QAAQ,GACR,SAAS,GACT,OAAO,GACP,YAAY;AAEd,UAAU;GACR,SAAS,GACT,OAAO,GACP,KAAK,GACL,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,iBAAiB,GACjB,YAAY,GACZ,UAAU,GACV,UAAU,GACV,WAAW,GACX,UAAU,GACV,OAAO,GACP,SAAS,GACT,KAAK,GACL,KAAK,GACL,OAAO,GACP,MAAM,GACN,YAAY,GACZ,gBAAgB,GAChB,OAAO;AAET,UAAU;GACR,KAAK,GACL,IAAI,GACJ,KAAK,GACL,QAAQ,GACR,KAAK,GACL,KAAK,GACL,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,IAAI,GACJ,cAAc,GACd,YAAY,GACZ,aAAa;AAEf,eAAe;GACb,IAAI,GACJ,SAAS;AAEX,YAAY;GACV,eAAe,GACf,UAAU,GACV,UAAU,GACV,OAAO,GACP,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW;AAEb,aAAa;GACX,UAAU;AAEZ,WAAW;GACT,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,KAAK,GACL,IAAI,GACJ,KAAK,GACL,OAAO,GACP,QAAQ,GACR,IAAI,GACJ,OAAO,GACP,OAAO;AAET,cAAc;GACZ,WAAW,GACX,OAAO,GACP,QAAQ,GACR,MAAM,GACN,OAAO,GACP,YAAY,GACZ,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG;AAEL,aAAa;GACX,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,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"}
1
+ {"version":3,"file":"keyIds.d.ts","sourceRoot":"","sources":["../../src/types/keyIds.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK;AACf,gBAAgB;AACd,YAAY,GACZ,aAAa,GACb,mBAAmB,GACnB,oBAAoB;AACtB,WAAW;GACT,IAAI,GACJ,KAAK,GACL,SAAS,GACT,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,SAAS,GACT,SAAS,GACT,OAAO,GACP,eAAe;AAEjB,aAAa;GACX,QAAQ,GACR,OAAO,GACP,MAAM,GACN,YAAY,GACZ,KAAK,GACL,OAAO,GACP,QAAQ,GACR,KAAK;AAEP,WAAW;GACT,IAAI,GACJ,IAAI,GACJ,OAAO;AAET,cAAc;GACZ,gBAAgB,GAChB,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS;AAEX,gBAAgB;GACd,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,GACN,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,GACR,MAAM,GACN,OAAO,GACP,SAAS,GACT,iBAAiB,GACjB,uBAAuB,GACvB,kBAAkB,GAClB,yBAAyB,GACzB,OAAO,GACP,OAAO,GACP,WAAW,GACX,OAAO,GACP,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,QAAQ,GACR,SAAS,GACT,OAAO,GACP,YAAY,GACZ,OAAO;AAET,UAAU;GACR,SAAS,GACT,OAAO,GACP,KAAK,GACL,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,iBAAiB,GACjB,YAAY,GACZ,UAAU,GACV,UAAU,GACV,WAAW,GACX,UAAU,GACV,OAAO,GACP,SAAS,GACT,KAAK,GACL,KAAK,GACL,OAAO,GACP,MAAM,GACN,YAAY,GACZ,gBAAgB,GAChB,OAAO;AAET,UAAU;GACR,KAAK,GACL,IAAI,GACJ,KAAK,GACL,QAAQ,GACR,KAAK,GACL,KAAK,GACL,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,IAAI,GACJ,cAAc,GACd,YAAY,GACZ,aAAa;AAEf,eAAe;GACb,IAAI,GACJ,SAAS;AAEX,YAAY;GACV,eAAe,GACf,UAAU,GACV,UAAU,GACV,OAAO,GACP,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW;AAEb,aAAa;GACX,UAAU;AAEZ,WAAW;GACT,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,KAAK,GACL,IAAI,GACJ,KAAK,GACL,OAAO,GACP,QAAQ,GACR,IAAI,GACJ,OAAO,GACP,OAAO;AAET,cAAc;GACZ,WAAW,GACX,OAAO,GACP,QAAQ,GACR,MAAM,GACN,OAAO,GACP,YAAY,GACZ,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG;AAEL,aAAa;GACX,GAAG,GACH,GAAG,GACH,GAAG,GACH,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"}
@@ -0,0 +1,2 @@
1
+ export declare const splitAndKeep: (text: string, delimiter: string) => string[];
2
+ //# sourceMappingURL=splitAndKeep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitAndKeep.d.ts","sourceRoot":"","sources":["../../../src/utils/strings/splitAndKeep.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,WAAW,MAAM,aAkB3D,CAAC"}
@@ -0,0 +1,13 @@
1
+ export const splitAndKeep = (text, delimiter) => {
2
+ const strEscapedDelimiter = delimiter.replace(/\\/g, "\\\\");
3
+ const delimiterPATTERN = `(${strEscapedDelimiter})`;
4
+ const regexDelimiter = new RegExp(delimiterPATTERN, "g");
5
+ //we need this protection mechanism because of situations like splitAndKeep(nodeInequation.toTex(), "\\le")
6
+ const arrProtection = [["left", "ukfng"]];
7
+ const protect = (str) => arrProtection.reduce((acc, [from, to]) => acc.replaceAll(from, to), str);
8
+ const unprotect = (str) => arrProtection.reduce((acc, [to, from]) => acc.replaceAll(from, to), str);
9
+ const arrWithDelimiters = protect(text)
10
+ .split(regexDelimiter)
11
+ .map((str) => unprotect(str));
12
+ return arrWithDelimiters;
13
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "math-exercises",
3
3
  "type": "module",
4
- "version": "3.0.200",
4
+ "version": "3.0.202",
5
5
  "description": "Math exercises generator for middle school and high school",
6
6
  "main": "lib/index.js",
7
7
  "files": [