math-exercises 3.0.177 → 3.0.179

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 (255) hide show
  1. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving1.d.ts +14 -0
  2. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving1.d.ts.map +1 -0
  3. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving1.js +283 -0
  4. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving3.d.ts +15 -0
  5. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving3.d.ts.map +1 -0
  6. package/lib/exercises/math/derivation/derivative/derivativeEquationSolving3.js +296 -0
  7. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.js +3 -3
  8. package/lib/exercises/math/derivation/derivative/exp/expDerivativeProductFExp.d.ts +14 -0
  9. package/lib/exercises/math/derivation/derivative/exp/expDerivativeProductFExp.d.ts.map +1 -0
  10. package/lib/exercises/math/derivation/derivative/exp/expDerivativeProductFExp.js +346 -0
  11. package/lib/exercises/math/derivation/derivative/exp/expDerivativeQuotientFExp.d.ts +15 -0
  12. package/lib/exercises/math/derivation/derivative/exp/expDerivativeQuotientFExp.d.ts.map +1 -0
  13. package/lib/exercises/math/derivation/derivative/exp/expDerivativeQuotientFExp.js +435 -0
  14. package/lib/exercises/math/derivation/derivative/valueDerivativeFromFunctionExpression.d.ts +13 -0
  15. package/lib/exercises/math/derivation/derivative/valueDerivativeFromFunctionExpression.d.ts.map +1 -0
  16. package/lib/exercises/math/derivation/derivative/valueDerivativeFromFunctionExpression.js +326 -0
  17. package/lib/exercises/math/derivation/derivativeNumber/signOfDerivativeNumberFromFunctionCurve.d.ts +14 -0
  18. package/lib/exercises/math/derivation/derivativeNumber/signOfDerivativeNumberFromFunctionCurve.d.ts.map +1 -0
  19. package/lib/exercises/math/derivation/derivativeNumber/signOfDerivativeNumberFromFunctionCurve.js +181 -0
  20. package/lib/exercises/math/derivation/derivativeNumber/valueTableImageAndDerivativeFromFunctionExpression.d.ts +10 -0
  21. package/lib/exercises/math/derivation/derivativeNumber/valueTableImageAndDerivativeFromFunctionExpression.d.ts.map +1 -0
  22. package/lib/exercises/math/derivation/derivativeNumber/valueTableImageAndDerivativeFromFunctionExpression.js +272 -0
  23. package/lib/exercises/math/derivation/problems/index.d.ts +5 -0
  24. package/lib/exercises/math/derivation/problems/index.d.ts.map +1 -0
  25. package/lib/exercises/math/derivation/problems/index.js +4 -0
  26. package/lib/exercises/math/derivation/problems/problemMaximizeBoxVolumeFindX.d.ts +8 -0
  27. package/lib/exercises/math/derivation/problems/problemMaximizeBoxVolumeFindX.d.ts.map +1 -0
  28. package/lib/exercises/math/derivation/problems/problemMaximizeBoxVolumeFindX.js +171 -0
  29. package/lib/exercises/math/derivation/problems/problemMaximizeProfitFindProduction.d.ts +15 -0
  30. package/lib/exercises/math/derivation/problems/problemMaximizeProfitFindProduction.d.ts.map +1 -0
  31. package/lib/exercises/math/derivation/problems/problemMaximizeProfitFindProduction.js +328 -0
  32. package/lib/exercises/math/derivation/problems/problemMovementOnLineFindSpeedAtPoint.d.ts +13 -0
  33. package/lib/exercises/math/derivation/problems/problemMovementOnLineFindSpeedAtPoint.d.ts.map +1 -0
  34. package/lib/exercises/math/derivation/problems/problemMovementOnLineFindSpeedAtPoint.js +275 -0
  35. package/lib/exercises/math/derivation/problems/problemProjectileHeightFindAbscissa.d.ts +8 -0
  36. package/lib/exercises/math/derivation/problems/problemProjectileHeightFindAbscissa.d.ts.map +1 -0
  37. package/lib/exercises/math/derivation/problems/problemProjectileHeightFindAbscissa.js +137 -0
  38. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineY.d.ts +10 -0
  39. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineY.d.ts.map +1 -0
  40. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineY.js +478 -0
  41. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineYAndSlope.d.ts +10 -0
  42. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineYAndSlope.d.ts.map +1 -0
  43. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingLineYAndSlope.js +499 -0
  44. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingPoint.d.ts +10 -0
  45. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingPoint.d.ts.map +1 -0
  46. package/lib/exercises/math/derivation/tangent/derivativeEquationSolvingByManipulatingPoint.js +240 -0
  47. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingBuildingTangent.d.ts +12 -0
  48. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingBuildingTangent.d.ts.map +1 -0
  49. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingBuildingTangent.js +436 -0
  50. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingPoint.d.ts +12 -0
  51. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingPoint.d.ts.map +1 -0
  52. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingPoint.js +219 -0
  53. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingSecant.d.ts +13 -0
  54. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingSecant.d.ts.map +1 -0
  55. package/lib/exercises/math/derivation/tangent/derivativeReadingByManipulatingSecant.js +273 -0
  56. package/lib/exercises/math/derivation/tangent/placePointsOfDerivativeFromGraph.d.ts +18 -0
  57. package/lib/exercises/math/derivation/tangent/placePointsOfDerivativeFromGraph.d.ts.map +1 -0
  58. package/lib/exercises/math/derivation/tangent/placePointsOfDerivativeFromGraph.js +295 -0
  59. package/lib/exercises/math/derivation/tangent/tangentEquationFromFunctionExpression.d.ts +13 -0
  60. package/lib/exercises/math/derivation/tangent/tangentEquationFromFunctionExpression.d.ts.map +1 -0
  61. package/lib/exercises/math/derivation/tangent/tangentEquationFromFunctionExpression.js +388 -0
  62. package/lib/exercises/math/derivation/tangent/tangentEquationFromGraph.d.ts +9 -0
  63. package/lib/exercises/math/derivation/tangent/tangentEquationFromGraph.d.ts.map +1 -0
  64. package/lib/exercises/math/derivation/tangent/tangentEquationFromGraph.js +308 -0
  65. package/lib/exercises/math/derivation/variations/findAbscissaOfExtremaFromFunctionExpression.d.ts +14 -0
  66. package/lib/exercises/math/derivation/variations/findAbscissaOfExtremaFromFunctionExpression.d.ts.map +1 -0
  67. package/lib/exercises/math/derivation/variations/findAbscissaOfExtremaFromFunctionExpression.js +439 -0
  68. package/lib/exercises/math/derivation/variations/findExtremaFromFunctionExpression.d.ts +14 -0
  69. package/lib/exercises/math/derivation/variations/findExtremaFromFunctionExpression.d.ts.map +1 -0
  70. package/lib/exercises/math/derivation/variations/findExtremaFromFunctionExpression.js +547 -0
  71. package/lib/exercises/math/derivation/variations/plausibleDerivativeGraphFromFunctionGraphByManipulatingPolynomial.d.ts +15 -0
  72. package/lib/exercises/math/derivation/variations/plausibleDerivativeGraphFromFunctionGraphByManipulatingPolynomial.d.ts.map +1 -0
  73. package/lib/exercises/math/derivation/variations/plausibleDerivativeGraphFromFunctionGraphByManipulatingPolynomial.js +537 -0
  74. package/lib/exercises/math/derivation/variations/plausibleFunctionGraphFromDerivativeGraphByManipulatingPolynomial.d.ts +15 -0
  75. package/lib/exercises/math/derivation/variations/plausibleFunctionGraphFromDerivativeGraphByManipulatingPolynomial.d.ts.map +1 -0
  76. package/lib/exercises/math/derivation/variations/plausibleFunctionGraphFromDerivativeGraphByManipulatingPolynomial.js +639 -0
  77. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.js +1 -1
  78. package/lib/exercises/math/derivation/variations/signVarTableFromFunctionExpression.d.ts +14 -0
  79. package/lib/exercises/math/derivation/variations/signVarTableFromFunctionExpression.d.ts.map +1 -0
  80. package/lib/exercises/math/derivation/variations/signVarTableFromFunctionExpression.js +530 -0
  81. package/lib/exercises/math/derivation/variations/signVarTableProductFExp.d.ts +10 -0
  82. package/lib/exercises/math/derivation/variations/signVarTableProductFExp.d.ts.map +1 -0
  83. package/lib/exercises/math/derivation/variations/signVarTableProductFExp.js +451 -0
  84. package/lib/exercises/math/derivation/variations/signVarTableQuotientFExp.d.ts +11 -0
  85. package/lib/exercises/math/derivation/variations/signVarTableQuotientFExp.d.ts.map +1 -0
  86. package/lib/exercises/math/derivation/variations/signVarTableQuotientFExp.js +514 -0
  87. package/lib/exercises/math/functions/composition/index.d.ts +0 -1
  88. package/lib/exercises/math/functions/composition/index.d.ts.map +1 -1
  89. package/lib/exercises/math/functions/composition/index.js +1 -1
  90. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts +0 -1
  91. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts.map +1 -1
  92. package/lib/exercises/math/functions/exponential/algebraic/index.js +1 -1
  93. package/lib/exercises/math/functions/trinoms/sign/index.d.ts +1 -0
  94. package/lib/exercises/math/functions/trinoms/sign/index.d.ts.map +1 -1
  95. package/lib/exercises/math/functions/trinoms/sign/index.js +1 -0
  96. package/lib/exercises/math/functions/trinoms/sign/signOfProductOfAffineAndTrinom.d.ts +8 -0
  97. package/lib/exercises/math/functions/trinoms/sign/signOfProductOfAffineAndTrinom.d.ts.map +1 -0
  98. package/lib/exercises/math/functions/trinoms/sign/signOfProductOfAffineAndTrinom.js +226 -0
  99. package/lib/exercises/math/geometry/angles/parallelogramFourthAngle.d.ts.map +1 -1
  100. package/lib/exercises/math/geometry/angles/parallelogramFourthAngle.js +10 -10
  101. package/lib/exercises/math/geometry/quadrilaterals/parallelogramAngles.js +8 -8
  102. package/lib/exercises/math/geometry/triangles/similar/isSimilarTrianglesWithAngles.js +6 -6
  103. package/lib/exercises/math/geometry/triangles/triangleThirdAngleValue.js +8 -8
  104. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.js +1 -1
  105. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.js +2 -2
  106. package/lib/exercises/math/geometry/vectors/scalarProduct/angleFromScalarProduct.js +2 -2
  107. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOrthoInSquare.d.ts.map +1 -1
  108. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOrthoInSquare.js +32 -17
  109. package/lib/exercises/math/probaStat/conditional/conditionalProbaFromTableWithContext.d.ts +13 -0
  110. package/lib/exercises/math/probaStat/conditional/conditionalProbaFromTableWithContext.d.ts.map +1 -0
  111. package/lib/exercises/math/probaStat/conditional/conditionalProbaFromTableWithContext.js +195 -0
  112. package/lib/exercises/math/probaStat/conditional/conditionalProbaWriteFromFrench.d.ts +9 -0
  113. package/lib/exercises/math/probaStat/conditional/conditionalProbaWriteFromFrench.d.ts.map +1 -0
  114. package/lib/exercises/math/probaStat/conditional/conditionalProbaWriteFromFrench.js +220 -0
  115. package/lib/exercises/math/probaStat/conditional/conditionalProbability.d.ts +15 -0
  116. package/lib/exercises/math/probaStat/conditional/conditionalProbability.d.ts.map +1 -0
  117. package/lib/exercises/math/probaStat/conditional/conditionalProbability.js +332 -0
  118. package/lib/exercises/math/probaStat/conditional/fillTableConditionalProbabilitySituation.d.ts +8 -0
  119. package/lib/exercises/math/probaStat/conditional/fillTableConditionalProbabilitySituation.d.ts.map +1 -0
  120. package/lib/exercises/math/probaStat/conditional/fillTableConditionalProbabilitySituation.js +222 -0
  121. package/lib/exercises/math/probaStat/conditional/index.d.ts +5 -0
  122. package/lib/exercises/math/probaStat/conditional/index.d.ts.map +1 -0
  123. package/lib/exercises/math/probaStat/conditional/index.js +4 -0
  124. package/lib/exercises/math/probaStat/index.d.ts +1 -2
  125. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  126. package/lib/exercises/math/probaStat/index.js +1 -2
  127. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts +1 -0
  128. package/lib/exercises/math/probaStat/probaFromTableWithContext.d.ts.map +1 -1
  129. package/lib/exercises/math/probaStat/probaFromTableWithContext.js +26 -199
  130. package/lib/exercises/math/probaStat/randomVariable/index.d.ts.map +1 -1
  131. package/lib/exercises/math/probaStat/randomVariable/index.js +1 -0
  132. package/lib/exercises/math/probaStat/randomVariable/randomVariableSituationProbabilityLaw.d.ts.map +1 -1
  133. package/lib/exercises/math/probaStat/randomVariable/randomVariableSituationProbabilityLaw.js +6 -2
  134. package/lib/exercises/math/probaStat/randomVariable/utils/randomVariableSituations.d.ts.map +1 -1
  135. package/lib/exercises/math/probaStat/randomVariable/utils/randomVariableSituations.js +6 -5
  136. package/lib/exercises/math/probaStat/trees/buildTreeFromSituation.d.ts.map +1 -1
  137. package/lib/exercises/math/probaStat/trees/buildTreeFromSituation.js +4 -27
  138. package/lib/exercises/math/probaStat/twoEventsSituations.d.ts +29 -0
  139. package/lib/exercises/math/probaStat/twoEventsSituations.d.ts.map +1 -0
  140. package/lib/exercises/math/probaStat/twoEventsSituations.js +145 -0
  141. package/lib/exercises/math/python/index.d.ts +1 -0
  142. package/lib/exercises/math/python/index.d.ts.map +1 -1
  143. package/lib/exercises/math/python/index.js +1 -0
  144. package/lib/exercises/math/python/sequences/pySequenceThresholdInstructionCompletion.d.ts.map +1 -1
  145. package/lib/exercises/math/python/sequences/pySequenceThresholdInstructionCompletion.js +11 -8
  146. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFromTwoTerms.d.ts.map +1 -1
  147. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFromTwoTerms.js +4 -3
  148. package/lib/exercises/math/sequences/arithmetic/index.d.ts +4 -3
  149. package/lib/exercises/math/sequences/arithmetic/index.d.ts.map +1 -1
  150. package/lib/exercises/math/sequences/arithmetic/index.js +4 -3
  151. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindExplicitFormulaFromSituation.d.ts.map +1 -1
  152. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindExplicitFormulaFromSituation.js +3 -2
  153. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindRankFromSituation.d.ts.map +1 -1
  154. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindRankFromSituation.js +8 -6
  155. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindThresholdFromSituation.d.ts.map +1 -1
  156. package/lib/exercises/math/sequences/arithmetic/situations/arithmeticFindThresholdFromSituation.js +6 -5
  157. package/lib/exercises/math/sequences/arithmetic/situations/index.d.ts +0 -2
  158. package/lib/exercises/math/sequences/arithmetic/situations/index.d.ts.map +1 -1
  159. package/lib/exercises/math/sequences/arithmetic/situations/index.js +2 -2
  160. package/lib/exercises/math/sequences/arithmetic/sum/arithmeticComputeSumWithDots.d.ts +1 -0
  161. package/lib/exercises/math/sequences/arithmetic/sum/arithmeticComputeSumWithDots.d.ts.map +1 -1
  162. package/lib/exercises/math/sequences/arithmetic/sum/arithmeticComputeSumWithDots.js +65 -14
  163. package/lib/exercises/math/sequences/arithmetic/sum/index.d.ts +0 -1
  164. package/lib/exercises/math/sequences/arithmetic/sum/index.d.ts.map +1 -1
  165. package/lib/exercises/math/sequences/arithmetic/sum/index.js +1 -1
  166. package/lib/exercises/math/sequences/explicitFormulaUsage.d.ts +4 -1
  167. package/lib/exercises/math/sequences/explicitFormulaUsage.d.ts.map +1 -1
  168. package/lib/exercises/math/sequences/explicitFormulaUsage.js +47 -7
  169. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoConsecutiveTerms.d.ts +14 -0
  170. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoConsecutiveTerms.d.ts.map +1 -0
  171. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoConsecutiveTerms.js +291 -0
  172. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoTerms.d.ts.map +1 -1
  173. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFromTwoTerms.js +4 -3
  174. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoConsecutiveTerms.d.ts +15 -0
  175. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoConsecutiveTerms.d.ts.map +1 -0
  176. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoConsecutiveTerms.js +249 -0
  177. package/lib/exercises/math/sequences/geometric/geometricFindRandomTermFromTwoTerms.js +2 -2
  178. package/lib/exercises/math/sequences/geometric/index.d.ts +3 -2
  179. package/lib/exercises/math/sequences/geometric/index.d.ts.map +1 -1
  180. package/lib/exercises/math/sequences/geometric/index.js +6 -2
  181. package/lib/exercises/math/sequences/geometric/situations/geometricFindExplicitFormulaFromSituation.d.ts.map +1 -1
  182. package/lib/exercises/math/sequences/geometric/situations/geometricFindExplicitFormulaFromSituation.js +3 -2
  183. package/lib/exercises/math/sequences/geometric/situations/geometricFindTermFromSituation.js +1 -1
  184. package/lib/exercises/math/sequences/geometric/situations/index.d.ts +0 -1
  185. package/lib/exercises/math/sequences/geometric/situations/index.d.ts.map +1 -1
  186. package/lib/exercises/math/sequences/geometric/situations/index.js +1 -1
  187. package/lib/exercises/math/sequences/geometric/sum/geometricComputeSumWithDots.js +2 -2
  188. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.js +2 -2
  189. package/lib/exercises/math/sequences/index.d.ts +1 -0
  190. package/lib/exercises/math/sequences/index.d.ts.map +1 -1
  191. package/lib/exercises/math/sequences/index.js +1 -0
  192. package/lib/exercises/math/sequences/recurrenceFormulaUsage.d.ts +5 -1
  193. package/lib/exercises/math/sequences/recurrenceFormulaUsage.d.ts.map +1 -1
  194. package/lib/exercises/math/sequences/recurrenceFormulaUsage.js +89 -9
  195. package/lib/exercises/math/sequences/seqArithmGeom/seqArithmGeomRecurrenceFormulaUsage.d.ts.map +1 -1
  196. package/lib/exercises/math/sequences/seqArithmGeom/seqArithmGeomRecurrenceFormulaUsage.js +5 -9
  197. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.js +1 -1
  198. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts.map +1 -1
  199. package/lib/exercises/math/trigonometry/circle/associatePoint.js +55 -6
  200. package/lib/exercises/math/trigonometry/circle/selectQuadrantOnTrigoCircle.d.ts.map +1 -1
  201. package/lib/exercises/math/trigonometry/circle/selectQuadrantOnTrigoCircle.js +5 -6
  202. package/lib/exercises/math/trigonometry/functions/associateAngleSimplification.d.ts.map +1 -1
  203. package/lib/exercises/math/trigonometry/functions/associateAngleSimplification.js +1 -3
  204. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.js +2 -2
  205. package/lib/exercises/pc/snellDescartes.js +2 -2
  206. package/lib/exercises/vea/polynomialVEA.d.ts +2 -0
  207. package/lib/exercises/vea/polynomialVEA.d.ts.map +1 -0
  208. package/lib/exercises/vea/polynomialVEA.js +17 -0
  209. package/lib/exercises/vea/valueTableVEA.d.ts +8 -0
  210. package/lib/exercises/vea/valueTableVEA.d.ts.map +1 -0
  211. package/lib/exercises/vea/valueTableVEA.js +12 -0
  212. package/lib/index.d.ts +152 -41
  213. package/lib/index.d.ts.map +1 -1
  214. package/lib/latexTester.d.ts.map +1 -1
  215. package/lib/latexTester.js +9 -6
  216. package/lib/math/polynomials/affine.d.ts +1 -0
  217. package/lib/math/polynomials/affine.d.ts.map +1 -1
  218. package/lib/math/polynomials/affine.js +5 -0
  219. package/lib/math/utils/arithmetic/primeFactors.js +1 -1
  220. package/lib/math/utils/functions/functionComposition.d.ts.map +1 -1
  221. package/lib/math/utils/functions/functionComposition.js +18 -1
  222. package/lib/math/utils/polynomial/polynomialInterpolationUtils.d.ts +19 -0
  223. package/lib/math/utils/polynomial/polynomialInterpolationUtils.d.ts.map +1 -0
  224. package/lib/math/utils/polynomial/polynomialInterpolationUtils.js +53 -0
  225. package/lib/math/utils/polynomial/polynomialUtils.d.ts +37 -0
  226. package/lib/math/utils/polynomial/polynomialUtils.d.ts.map +1 -0
  227. package/lib/math/utils/polynomial/polynomialUtils.js +223 -0
  228. package/lib/math/utils/sequences/situations/seqArithmeticSituations.d.ts +18 -4
  229. package/lib/math/utils/sequences/situations/seqArithmeticSituations.d.ts.map +1 -1
  230. package/lib/math/utils/sequences/situations/seqArithmeticSituations.js +434 -333
  231. package/lib/math/utils/sequences/situations/seqArithmeticUtils.d.ts.map +1 -1
  232. package/lib/math/utils/sequences/situations/seqArithmeticUtils.js +3 -1
  233. package/lib/math/utils/sequences/situations/seqGeometricSituations.d.ts +5 -0
  234. package/lib/math/utils/sequences/situations/seqGeometricSituations.d.ts.map +1 -1
  235. package/lib/math/utils/sequences/situations/seqGeometricSituations.js +58 -25
  236. package/lib/prototypesEnhancement.d.ts +1 -0
  237. package/lib/prototypesEnhancement.d.ts.map +1 -1
  238. package/lib/prototypesEnhancement.js +3 -0
  239. package/lib/tests/pdfs/mdCodeToLatex.d.ts.map +1 -1
  240. package/lib/tests/pdfs/mdCodeToLatex.js +8 -15
  241. package/lib/tests/questionTest.d.ts.map +1 -1
  242. package/lib/tests/questionTest.js +6 -3
  243. package/lib/tree/nodes/geometry/degree.js +1 -1
  244. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  245. package/lib/tree/nodes/operators/multiplyNode.js +1 -1
  246. package/lib/tree/nodes/operators/substractNode.d.ts.map +1 -1
  247. package/lib/tree/nodes/operators/substractNode.js +2 -1
  248. package/lib/tree/parsers/degreeParser.js +2 -2
  249. package/lib/tree/utilities/nodeUtils.d.ts +6 -0
  250. package/lib/tree/utilities/nodeUtils.d.ts.map +1 -0
  251. package/lib/tree/utilities/nodeUtils.js +24 -0
  252. package/lib/utils/strings/prependArticle.d.ts +2 -0
  253. package/lib/utils/strings/prependArticle.d.ts.map +1 -0
  254. package/lib/utils/strings/prependArticle.js +1 -0
  255. package/package.json +1 -1
@@ -0,0 +1,439 @@
1
+ import { addValidProp, tryToAddWrongProp, propWhile, GeneratorOptionTarget, GeneratorOptionType, } from "../../../../exercises/exercise.js";
2
+ import { getDistinctQuestions } from "../../../../exercises/utils/getDistinctQuestions.js";
3
+ import { randint } from "../../../../math/utils/random/randint.js";
4
+ import { NodeConstructor, } from "../../../../tree/nodes/nodeConstructor.js";
5
+ import { frac, isFractionNode, } from "../../../../tree/nodes/operators/fractionNode.js";
6
+ import { random } from "../../../../utils/alea/random.js";
7
+ import { shuffle } from "../../../../utils/alea/shuffle.js";
8
+ import { alignTex } from "../../../../utils/latex/alignTex.js";
9
+ import { createNodeFPolynomialFromCoeffs, getAnswerStuffSolveSecondDegreePolynomial, getTexSolveSecondDegreeEquation, } from "../../../../math/utils/polynomial/polynomialUtils.js";
10
+ import { EquationSolutionNode } from "../../../../tree/nodes/equations/equationSolutionNode.js";
11
+ import { DiscreteSetNode } from "../../../../tree/nodes/sets/discreteSetNode.js";
12
+ import { discreteSetParser } from "../../../../tree/parsers/discreteSetParser.js";
13
+ import { SetVEA } from "../../../../exercises/vea/setVEA.js";
14
+ import { dividersOf } from "../../../../math/utils/arithmetic/dividersOf.js";
15
+ import { probaFlip } from "../../../../utils/alea/probaFlip.js";
16
+ const tryToSimplify = (node, simplifyOptions) => {
17
+ try {
18
+ return node.simplify(simplifyOptions);
19
+ }
20
+ catch (_) {
21
+ return node;
22
+ }
23
+ };
24
+ const getNodeFForTypeF = (typeF, typeRoots) => {
25
+ const isIntegerRoots = typeRoots === "entières";
26
+ switch (typeF) {
27
+ case "polynôme (degré $2$)": {
28
+ //f(x)=ax^2+bx+c
29
+ //f'(x)=2ax+b
30
+ //f'(x)=0 <=> x = -b/2a
31
+ if (isIntegerRoots) {
32
+ function getNiceBA() {
33
+ const a = randint(-10, 11, [0]);
34
+ const x = randint(-10, 11, [0]);
35
+ const b = x * (2 * a);
36
+ return [b, a];
37
+ }
38
+ const [b, a] = getNiceBA();
39
+ const [nodeB, nodeA] = [b, a].map((v) => v.toTree());
40
+ const nodeC = randint(-10, 11, [0]).toTree();
41
+ const nodeF = createNodeFPolynomialFromCoeffs([nodeC, nodeB, nodeA]);
42
+ return nodeF;
43
+ }
44
+ else {
45
+ const nodeA = randint(-10, 11, [0]).toTree();
46
+ const nodeB = randint(-10, 11, [0]).toTree();
47
+ const nodeC = randint(-10, 11, [0]).toTree();
48
+ const nodeF = createNodeFPolynomialFromCoeffs([nodeC, nodeB, nodeA]);
49
+ return nodeF;
50
+ }
51
+ }
52
+ case "polynôme (degré $3$)": {
53
+ //3ax^2+2bx+c=0
54
+ //delta = (2b)²-4(3a)(c) = 4b^2 - 12ac = 4(b^2 - 3ac)
55
+ //=> smooth if (b^2 - 3ac) = n^2
56
+ // (b^2 - n^2) % 3 = 0
57
+ function getNiceCBA() {
58
+ let [c, b, a] = [];
59
+ let isValid = false;
60
+ let counter = -1;
61
+ while (!isValid && counter < 1000) {
62
+ counter++;
63
+ b = randint(10, 100);
64
+ const n = probaFlip(0.95) ? randint(1, b) : 0;
65
+ const b2Minusn2 = b * b - n * n;
66
+ isValid = b2Minusn2 % 3 === 0;
67
+ if (isValid) {
68
+ const ac = b2Minusn2 / 3;
69
+ const arrDivisors = dividersOf(ac);
70
+ a = random(arrDivisors);
71
+ c = ac / a;
72
+ //delta = 4n^2 => sqrt(delta) = 2n
73
+ const x1 = (-(2 * b) - 2 * n) / (2 * (3 * a));
74
+ const x2 = (-(2 * b) + 2 * n) / (2 * (3 * a));
75
+ if (isIntegerRoots) {
76
+ isValid = Number.isInteger(x1) && Number.isInteger(x2);
77
+ }
78
+ }
79
+ }
80
+ if (!isValid) {
81
+ [c, b, a] = [1, 3, 3];
82
+ }
83
+ return [c, b, a];
84
+ }
85
+ const [c, b, a] = getNiceCBA();
86
+ const [nodeC, nodeB, nodeA] = [c, b, a].map((v) => v.toTree());
87
+ const nodeD = randint(-10, 10, [0]).toTree();
88
+ const nodeF = createNodeFPolynomialFromCoeffs([
89
+ nodeD,
90
+ nodeC,
91
+ nodeB,
92
+ nodeA,
93
+ ]);
94
+ return nodeF;
95
+ }
96
+ case "$\\frac{ax^2+bx+c}{dx+m}$": {
97
+ //f(x)=(ax^2+bx+c)/(dx+m)
98
+ //f'(x) = ((2ax+b)(dx+m)-(ax^2+bx+c)d)/((dx+m)^2)
99
+ //f'(x) = 0 <=>
100
+ //(2ad)x^2+(2am+bd)x+(bm)-(ad)x^2-(bd)x -(cd) = 0
101
+ //(ad)x^2+(2am)x+(bm-cd)=0
102
+ //delta = (2am)^2 - 4(ad)(bm-cd)
103
+ //=> smooth if bm-cd = 0
104
+ function getNiceMDCBA() {
105
+ let [m, d, c, b, a] = [];
106
+ let isValid = false;
107
+ let counter = -1;
108
+ while (!isValid && counter < 1000) {
109
+ counter++;
110
+ b = randint(1, 30);
111
+ m = randint(1, 30);
112
+ const bm = b * m;
113
+ const arrDivisors = dividersOf(bm);
114
+ c = random(arrDivisors);
115
+ d = bm / c;
116
+ if (isIntegerRoots) {
117
+ isValid = Number.isInteger(m / d);
118
+ }
119
+ else {
120
+ isValid = true;
121
+ }
122
+ a = randint(-10, 11, [0]);
123
+ return [m, d, c, b, a];
124
+ }
125
+ if (!isValid) {
126
+ [m, d, c, b, a] = [19, 19, 2, 2, -8];
127
+ }
128
+ return [m, d, c, b, a];
129
+ }
130
+ const nodeF = (() => {
131
+ let nodeF;
132
+ let isValid = false;
133
+ let counter = -1;
134
+ while (!isValid && counter < 1000) {
135
+ counter++;
136
+ const [m, d, c, b, a] = getNiceMDCBA();
137
+ const [nodeM, nodeD, nodeC, nodeB, nodeA] = [m, d, c, b, a].map((v) => v.toTree());
138
+ const nodeG = createNodeFPolynomialFromCoeffs([nodeC, nodeB, nodeA]);
139
+ const nodeH = createNodeFPolynomialFromCoeffs([nodeM, nodeD]);
140
+ const { arrNodeX: arrNodeRootH } = getAnswerStuffSolveSecondDegreePolynomial(nodeH);
141
+ isValid = arrNodeRootH.every((node) => Number.isInteger(node.evaluate()));
142
+ nodeF = frac(nodeG, nodeH);
143
+ }
144
+ if (!isValid) {
145
+ const [m, d, c, b, a] = [19, 19, 2, 2, -8];
146
+ const [nodeM, nodeD, nodeC, nodeB, nodeA] = [m, d, c, b, a].map((v) => v.toTree());
147
+ const nodeG = createNodeFPolynomialFromCoeffs([nodeC, nodeB, nodeA]);
148
+ const nodeH = createNodeFPolynomialFromCoeffs([nodeM, nodeD]);
149
+ nodeF = frac(nodeG, nodeH);
150
+ }
151
+ return nodeF;
152
+ })();
153
+ return nodeF;
154
+ }
155
+ case "$\\frac{dx+m}{ax^2+bx+c}$": {
156
+ //f(x)=(ax^2+bx+c)/(dx+m)
157
+ //f'(x) = ((2ax+b)(dx+m)-(ax^2+bx+c)d)/((dx+m)^2)
158
+ //f'(x) = 0 <=>
159
+ //(2ad)x^2+(2am+bd)x+(bm)-(ad)x^2-(bd)x -(cd) = 0
160
+ //(ad)x^2+(2am)x+(bm-cd)=0
161
+ //delta = (2am)^2 - 4(ad)(bm-cd)
162
+ //=> smooth if bm-cd = 0
163
+ function getNiceMDCBA() {
164
+ let [m, d, c, b, a] = [];
165
+ let isValid = false;
166
+ let counter = -1;
167
+ while (!isValid && counter < 1000) {
168
+ counter++;
169
+ b = randint(1, 30);
170
+ m = randint(1, 30);
171
+ const bm = b * m;
172
+ const arrDivisors = dividersOf(bm);
173
+ c = random(arrDivisors);
174
+ d = bm / c;
175
+ if (isIntegerRoots) {
176
+ isValid = Number.isInteger(m / d);
177
+ }
178
+ else {
179
+ isValid = true;
180
+ }
181
+ a = randint(-10, 11, [0]);
182
+ return [m, d, c, b, a];
183
+ }
184
+ if (!isValid) {
185
+ [m, d, c, b, a] = [19, 19, 2, 2, -8];
186
+ }
187
+ return [m, d, c, b, a];
188
+ }
189
+ const nodeF = (() => {
190
+ let nodeF;
191
+ let isValid = false;
192
+ let counter = -1;
193
+ while (!isValid && counter < 1000) {
194
+ counter++;
195
+ const [m, d, c, b, a] = getNiceMDCBA();
196
+ const [nodeM, nodeD, nodeC, nodeB, nodeA] = [m, d, c, b, a].map((v) => v.toTree());
197
+ const nodeG = createNodeFPolynomialFromCoeffs([nodeC, nodeB, nodeA]);
198
+ const nodeH = createNodeFPolynomialFromCoeffs([nodeM, nodeD]);
199
+ const { arrNodeX: arrNodeRootH } = getAnswerStuffSolveSecondDegreePolynomial(nodeG);
200
+ isValid = arrNodeRootH.every((node) => Number.isInteger(node.evaluate()));
201
+ nodeF = frac(nodeH, nodeG);
202
+ }
203
+ if (!isValid) {
204
+ const [m, d, c, b, a] = [19, 19, 2, 2, -8];
205
+ const [nodeM, nodeD, nodeC, nodeB, nodeA] = [m, d, c, b, a].map((v) => v.toTree());
206
+ const nodeG = createNodeFPolynomialFromCoeffs([nodeC, nodeB, nodeA]);
207
+ const nodeH = createNodeFPolynomialFromCoeffs([nodeM, nodeD]);
208
+ nodeF = frac(nodeH, nodeG);
209
+ }
210
+ return nodeF;
211
+ })();
212
+ return nodeF;
213
+ }
214
+ default:
215
+ throw new Error("Unsupported typeF: " + typeF);
216
+ }
217
+ };
218
+ const getPrettyNode = (node) => {
219
+ if (isFractionNode(node)) {
220
+ const nodeNumSimplified = tryToSimplify(node.leftChild, {
221
+ towardsDistribute: true,
222
+ forbidFactorize: true,
223
+ });
224
+ const nodeDenSimplified = node.rightChild.simplify();
225
+ return frac(nodeNumSimplified, nodeDenSimplified);
226
+ }
227
+ else {
228
+ return node;
229
+ }
230
+ };
231
+ const getInstruction = (identifiers) => {
232
+ const { nodeIdsF } = identifiers;
233
+ const [nodeF] = [nodeIdsF].map((nodeIds) => NodeConstructor.fromIdentifiers(nodeIds));
234
+ const nodeFPretty = getPrettyNode(nodeF);
235
+ const arrNodeXForbidden = (() => {
236
+ if (isFractionNode(nodeF)) {
237
+ const nodeDenum = nodeF.rightChild;
238
+ const { arrNodeX } = getAnswerStuffSolveSecondDegreePolynomial(nodeDenum);
239
+ return arrNodeX;
240
+ }
241
+ else {
242
+ return [];
243
+ }
244
+ })();
245
+ return `Soit $f$ une fonction telle que, pour tout $x$ réel${(() => {
246
+ if (arrNodeXForbidden.length > 0) {
247
+ return `, différent de ${arrNodeXForbidden
248
+ .map((node) => `$${node.toTex()}$`)
249
+ .join(" et de ")}`;
250
+ }
251
+ else {
252
+ return "";
253
+ }
254
+ })()} :
255
+
256
+ $$
257
+ f(x) = ${nodeFPretty.toTex()}
258
+ $$
259
+
260
+ Déterminer les abscisses des extremums locaux de $f$.`;
261
+ };
262
+ const getAnswerStuff = (identifiers) => {
263
+ const { nodeIdsF } = identifiers;
264
+ const nodeF = NodeConstructor.fromIdentifiers(nodeIdsF);
265
+ const nodeFPretty = getPrettyNode(nodeF);
266
+ const nodeDerivativeRaw = nodeFPretty.derivative().simplify();
267
+ const nodeDerivativePretty = getPrettyNode(nodeDerivativeRaw);
268
+ const nodePolynomial = (() => {
269
+ if (isFractionNode(nodeDerivativePretty)) {
270
+ return nodeDerivativePretty.leftChild;
271
+ }
272
+ else {
273
+ return nodeDerivativePretty;
274
+ }
275
+ })();
276
+ return getAnswerStuffSolveSecondDegreePolynomial(nodePolynomial);
277
+ };
278
+ const getAnswerNode = (identifiers) => {
279
+ const { arrNodeX } = getAnswerStuff(identifiers);
280
+ return new EquationSolutionNode(new DiscreteSetNode(arrNodeX));
281
+ };
282
+ const getAnswer = (identifiers) => {
283
+ return getAnswerNode(identifiers).toTex();
284
+ };
285
+ const getHint = (identifiers) => {
286
+ const { typeF } = identifiers;
287
+ const strHintDerivative = (() => {
288
+ switch (typeF) {
289
+ case "polynôme (degré $2$)":
290
+ return `Soient $a$, $b$ et $c$ trois réels. La dérivée de $x \\mapsto ax^2+bx+c$ est $x \\mapsto 2ax+b$.`;
291
+ case "polynôme (degré $3$)":
292
+ return `Soient $a$, $b$, $c$ et $d$ quatre réels. La dérivée de $x \\mapsto ax^3+bx^2+cx+d$ est $x \\mapsto 3ax^2+2bx+c$.`;
293
+ case "$\\frac{ax^2+bx+c}{dx+m}$":
294
+ return `Soient $a$, $b$, $c$, $d$ et $m$ cinq réels. La dérivée de $x \\mapsto \\frac{ax^2+bx+c}{dx+m}$ est $x \\mapsto \\frac{(2ax+b)(dx+m)-(ax^2+bx+c)d}{(dx+m)^2}$.`;
295
+ case "$\\frac{dx+m}{ax^2+bx+c}$":
296
+ return `Soient $a$, $b$, $c$, $d$ et $m$ cinq réels. La dérivée de $x \\mapsto \\frac{dx+m}{ax^2+bx+c}$ est $x \\mapsto \\frac{d(ax^2+bx+c)-(dx+m)(2ax+b)}{(ax^2+bx+c)^2}$.`;
297
+ default:
298
+ throw new Error("Unsupported typeF: " + typeF);
299
+ }
300
+ })();
301
+ return `Si $f$ est une fonction dérivable en $a$, alors l'équation de la tangente à la courbe de $f$ au point d'abscisse $a$ est donné par:
302
+
303
+ $$
304
+ y = f'(a)(x-a)+f(a)
305
+ $$
306
+
307
+ ${strHintDerivative}
308
+ `;
309
+ };
310
+ const getCorrection = (identifiers) => {
311
+ const { nodeIdsF } = identifiers;
312
+ const [nodeF] = [nodeIdsF].map((nodeIds) => NodeConstructor.fromIdentifiers(nodeIds));
313
+ const nodeFPretty = getPrettyNode(nodeF);
314
+ const nodeDerivativeRaw = nodeFPretty.derivative().simplify();
315
+ const nodeDerivativePretty = getPrettyNode(nodeDerivativeRaw);
316
+ const nodePolynomial = (() => {
317
+ if (isFractionNode(nodeDerivativePretty)) {
318
+ return nodeDerivativePretty.leftChild;
319
+ }
320
+ else {
321
+ return nodeDerivativePretty;
322
+ }
323
+ })();
324
+ return `Les abscisses recherchées sont les abscisses $a$ telles que $f'(a)=0$.
325
+
326
+ Pour $x$ appartenant à l'ensemble de dérivation de $f$, on calcule :
327
+
328
+ ${alignTex([
329
+ ...[
330
+ ...new Set([
331
+ tryToSimplify(nodeFPretty.derivative(), {}).toTex(),
332
+ nodeDerivativePretty.toTex(),
333
+ ]),
334
+ ].map((tex) => [`f'(x)`, "=", tex]),
335
+ ])}
336
+
337
+ On résout $f'(x)=0$ :
338
+
339
+ ${getTexSolveSecondDegreeEquation(nodePolynomial)}
340
+ `;
341
+ };
342
+ const getPropositions = (n, { answer, ...identifiers }) => {
343
+ const { typeF, typeRoots } = identifiers;
344
+ const propositions = [];
345
+ addValidProp(propositions, answer);
346
+ propWhile(propositions, n, () => {
347
+ const identifierWrong = createRandomIdentifiers(typeF, typeRoots);
348
+ tryToAddWrongProp(propositions, getAnswer(identifierWrong));
349
+ });
350
+ return shuffle(propositions);
351
+ };
352
+ const getKeys = () => {
353
+ return ["S", "equal", "varnothing", "lbrace", "semicolon", "rbrace"];
354
+ };
355
+ const isAnswerValid = (ans, { answer, ...identifiers }, _optsIn) => {
356
+ const answerNode = getAnswerNode(identifiers);
357
+ const arrNodeAnswer = answerNode.solutionsSet.elements;
358
+ const parsed = discreteSetParser(ans);
359
+ if (!parsed) {
360
+ return false;
361
+ }
362
+ const arrAns = parsed.elements;
363
+ return SetVEA.isArrayOfNodesValid(arrAns, arrNodeAnswer);
364
+ };
365
+ const createRandomIdentifiers = (typeF, typeRoots) => {
366
+ const nodeF = getNodeFForTypeF(typeF, typeRoots);
367
+ const identifiers = {
368
+ nodeIdsF: nodeF.toIdentifiers(),
369
+ typeF,
370
+ typeRoots,
371
+ };
372
+ return identifiers;
373
+ };
374
+ const getFindAbscissaOfExtremaFromFunctionExpressionQuestion = (optsIn) => {
375
+ const arrayedOptions = optsIn ?? arrayedOptsDefault;
376
+ const typeF = random(arrayedOptions.typeF);
377
+ const typeRoots = random(arrayedOptions.typeRoots);
378
+ const identifiers = createRandomIdentifiers(typeF, typeRoots);
379
+ return getQuestionFromIdentifiers(identifiers);
380
+ };
381
+ const getQuestionFromIdentifiers = (identifiers) => {
382
+ return {
383
+ answer: getAnswer(identifiers),
384
+ instruction: getInstruction(identifiers),
385
+ keys: getKeys(identifiers),
386
+ answerFormat: "tex",
387
+ identifiers,
388
+ hint: getHint(identifiers),
389
+ correction: getCorrection(identifiers),
390
+ };
391
+ };
392
+ const arrayedOptsDefault = {
393
+ typeF: [
394
+ "polynôme (degré $2$)",
395
+ "polynôme (degré $3$)",
396
+ "$\\frac{ax^2+bx+c}{dx+m}$",
397
+ "$\\frac{dx+m}{ax^2+bx+c}$",
398
+ ],
399
+ typeRoots: ["entières", "rationnelles"],
400
+ };
401
+ const options = [
402
+ {
403
+ id: "typeF",
404
+ label: "Type de fonction",
405
+ target: GeneratorOptionTarget.generation,
406
+ type: GeneratorOptionType.multiselect,
407
+ values: [
408
+ "polynôme (degré $2$)",
409
+ "polynôme (degré $3$)",
410
+ "$\\frac{ax^2+bx+c}{dx+m}$",
411
+ "$\\frac{dx+m}{ax^2+bx+c}$",
412
+ ],
413
+ defaultValue: arrayedOptsDefault.typeF,
414
+ },
415
+ {
416
+ id: "typeRoots",
417
+ label: "Type d'abscisses",
418
+ target: GeneratorOptionTarget.generation,
419
+ type: GeneratorOptionType.multiselect,
420
+ values: ["entières", "rationnelles"],
421
+ defaultValue: arrayedOptsDefault.typeRoots,
422
+ },
423
+ ];
424
+ export const findAbscissaOfExtremaFromFunctionExpression = {
425
+ id: "findAbscissaOfExtremaFromFunctionExpression",
426
+ connector: "=",
427
+ label: "Déterminer les abscisses des extremums locaux à partir de l'expression d'une fonction",
428
+ isSingleStep: true,
429
+ generator: (nb, opts) => getDistinctQuestions(() => getFindAbscissaOfExtremaFromFunctionExpressionQuestion(opts), nb),
430
+ options,
431
+ subject: "Mathématiques",
432
+ getInstruction,
433
+ getHint,
434
+ getCorrection,
435
+ isAnswerValid,
436
+ getPropositions,
437
+ getQuestionFromIdentifiers,
438
+ hasHintAndCorrection: true,
439
+ };
@@ -0,0 +1,14 @@
1
+ import { Exercise } from "../../../../exercises/exercise.js";
2
+ import { NodeIdentifiers } from "../../../../tree/nodes/nodeConstructor.js";
3
+ type Identifiers = {
4
+ nodeIdsF: NodeIdentifiers;
5
+ typeF: string;
6
+ typeRoots: string;
7
+ };
8
+ type Options = {
9
+ typeF: string;
10
+ typeRoots: string;
11
+ };
12
+ export declare const findExtremaFromFunctionExpression: Exercise<Identifiers, Options>;
13
+ export {};
14
+ //# sourceMappingURL=findExtremaFromFunctionExpression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findExtremaFromFunctionExpression.d.ts","sourceRoot":"","sources":["../../../../../src/exercises/math/derivation/variations/findExtremaFromFunctionExpression.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAiBT,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EAEL,eAAe,EAChB,MAAM,qCAAqC,CAAC;AA+R7C,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAwUF,KAAK,OAAO,GAAG;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAyCF,eAAO,MAAM,iCAAiC,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAqB1E,CAAC"}