math-exercises 3.0.157 → 3.0.159

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 (444) hide show
  1. package/lib/exercises/exercise.d.ts +7 -0
  2. package/lib/exercises/exercise.d.ts.map +1 -1
  3. package/lib/exercises/math/calculLitteral/equation/exp/expOfAffineEquals1Equation.d.ts +14 -0
  4. package/lib/exercises/math/calculLitteral/equation/exp/expOfAffineEquals1Equation.d.ts.map +1 -0
  5. package/lib/exercises/math/calculLitteral/equation/exp/expOfAffineEquals1Equation.js +145 -0
  6. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.d.ts +16 -0
  7. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.d.ts.map +1 -0
  8. package/lib/exercises/math/calculLitteral/equation/exp/expOfFEqualsExpOfGEquation.js +445 -0
  9. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.d.ts +15 -0
  10. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.d.ts.map +1 -0
  11. package/lib/exercises/math/calculLitteral/equation/exp/expOfTrinomEquals1Equation.js +371 -0
  12. package/lib/exercises/math/calculLitteral/equation/exp/index.d.ts +4 -0
  13. package/lib/exercises/math/calculLitteral/equation/exp/index.d.ts.map +1 -0
  14. package/lib/exercises/math/calculLitteral/equation/exp/index.js +3 -0
  15. package/lib/exercises/math/calculLitteral/equation/factorizeEquation.d.ts.map +1 -1
  16. package/lib/exercises/math/calculLitteral/equation/factorizeEquation.js +8 -2
  17. package/lib/exercises/math/calculLitteral/equation/index.d.ts +1 -0
  18. package/lib/exercises/math/calculLitteral/equation/index.d.ts.map +1 -1
  19. package/lib/exercises/math/calculLitteral/equation/index.js +1 -0
  20. package/lib/exercises/math/calculLitteral/equation/multiplicationEquation.d.ts.map +1 -1
  21. package/lib/exercises/math/calculLitteral/equation/multiplicationEquation.js +27 -2
  22. package/lib/exercises/math/calculLitteral/equation/solveByFactorizingWithIdRmq3.d.ts.map +1 -1
  23. package/lib/exercises/math/calculLitteral/equation/solveByFactorizingWithIdRmq3.js +0 -1
  24. package/lib/exercises/math/calculLitteral/equation/square/equationSquareWithSteps.d.ts.map +1 -1
  25. package/lib/exercises/math/calculLitteral/equation/square/equationSquareWithSteps.js +0 -1
  26. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.d.ts +18 -0
  27. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.d.ts.map +1 -0
  28. package/lib/exercises/math/calculLitteral/inequations/exp/expOfFEqualsExpOfGInequation.js +444 -0
  29. package/lib/exercises/math/calculLitteral/inequations/exp/index.d.ts +2 -0
  30. package/lib/exercises/math/calculLitteral/inequations/exp/index.d.ts.map +1 -0
  31. package/lib/exercises/math/calculLitteral/inequations/exp/index.js +1 -0
  32. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.d.ts.map +1 -1
  33. package/lib/exercises/math/calculLitteral/inequations/firstDegreeInequationsType3.js +11 -5
  34. package/lib/exercises/math/calculLitteral/inequations/index.d.ts +1 -0
  35. package/lib/exercises/math/calculLitteral/inequations/index.d.ts.map +1 -1
  36. package/lib/exercises/math/calculLitteral/inequations/index.js +1 -0
  37. package/lib/exercises/math/derivation/derivative/exp/expDerivativeFour.d.ts.map +1 -1
  38. package/lib/exercises/math/derivation/derivative/exp/expDerivativeFour.js +91 -21
  39. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.d.ts.map +1 -1
  40. package/lib/exercises/math/derivation/derivative/exp/expDerivativeOne.js +64 -15
  41. package/lib/exercises/math/derivation/derivative/exp/expDerivativeThree.d.ts.map +1 -1
  42. package/lib/exercises/math/derivation/derivative/exp/expDerivativeThree.js +71 -15
  43. package/lib/exercises/math/derivation/derivative/exp/expDerivativeTwo.d.ts.map +1 -1
  44. package/lib/exercises/math/derivation/derivative/exp/expDerivativeTwo.js +36 -17
  45. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.d.ts +10 -0
  46. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.d.ts.map +1 -0
  47. package/lib/exercises/math/derivation/derivative/exp/expOverExpDerivative.js +294 -0
  48. package/lib/exercises/math/derivation/derivative/exp/index.d.ts +1 -0
  49. package/lib/exercises/math/derivation/derivative/exp/index.d.ts.map +1 -1
  50. package/lib/exercises/math/derivation/derivative/exp/index.js +1 -0
  51. package/lib/exercises/math/derivation/derivative/inverseFunctionDerivative.d.ts.map +1 -1
  52. package/lib/exercises/math/derivation/derivative/inverseFunctionDerivative.js +30 -2
  53. package/lib/exercises/math/derivation/derivative/productDerivative.d.ts.map +1 -1
  54. package/lib/exercises/math/derivation/derivative/productDerivative.js +68 -1
  55. package/lib/exercises/math/derivation/derivative/quotientDerivative.d.ts.map +1 -1
  56. package/lib/exercises/math/derivation/derivative/quotientDerivative.js +40 -4
  57. package/lib/exercises/math/derivation/derivative/sqrt/sqrtCompositionDerivation.d.ts.map +1 -1
  58. package/lib/exercises/math/derivation/derivative/sqrt/sqrtCompositionDerivation.js +30 -3
  59. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts +12 -0
  60. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.d.ts.map +1 -0
  61. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeAlgebraicExpression.js +127 -0
  62. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.d.ts +13 -0
  63. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.d.ts.map +1 -0
  64. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromAlgebraic.js +161 -0
  65. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.d.ts +11 -0
  66. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.d.ts.map +1 -0
  67. package/lib/exercises/math/derivation/derivativeNumber/averageRateOfChangeFromImages.js +116 -0
  68. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.d.ts +8 -0
  69. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.d.ts.map +1 -0
  70. package/lib/exercises/math/derivation/derivativeNumber/derivativeNumberCalcul.js +142 -0
  71. package/lib/exercises/math/derivation/derivativeNumber/index.d.ts +4 -0
  72. package/lib/exercises/math/derivation/derivativeNumber/index.d.ts.map +1 -0
  73. package/lib/exercises/math/derivation/derivativeNumber/index.js +4 -0
  74. package/lib/exercises/math/derivation/index.d.ts +1 -1
  75. package/lib/exercises/math/derivation/index.js +1 -1
  76. package/lib/exercises/math/derivation/variations/index.d.ts +1 -0
  77. package/lib/exercises/math/derivation/variations/index.d.ts.map +1 -1
  78. package/lib/exercises/math/derivation/variations/index.js +1 -0
  79. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.d.ts +7 -0
  80. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.d.ts.map +1 -0
  81. package/lib/exercises/math/derivation/variations/readExtremaAbscissFromDerivativeCurve.js +174 -0
  82. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.d.ts +13 -0
  83. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.d.ts.map +1 -0
  84. package/lib/exercises/math/functions/exponential/algebraic/approxExpAPlusB.js +305 -0
  85. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.d.ts +11 -0
  86. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.d.ts.map +1 -0
  87. package/lib/exercises/math/functions/exponential/algebraic/approxExpKa.js +216 -0
  88. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.d.ts +9 -0
  89. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.d.ts.map +1 -0
  90. package/lib/exercises/math/functions/exponential/algebraic/approxExpN.js +142 -0
  91. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts +5 -0
  92. package/lib/exercises/math/functions/exponential/algebraic/index.d.ts.map +1 -0
  93. package/lib/exercises/math/functions/exponential/algebraic/index.js +4 -0
  94. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.d.ts +14 -0
  95. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.d.ts.map +1 -0
  96. package/lib/exercises/math/functions/exponential/algebraic/rewriteExpUsingExpA.js +337 -0
  97. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.d.ts +11 -0
  98. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.d.ts.map +1 -0
  99. package/lib/exercises/math/functions/exponential/definition/approxExpAPlusH.js +223 -0
  100. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.d.ts +9 -0
  101. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.d.ts.map +1 -0
  102. package/lib/exercises/math/functions/exponential/definition/expAntecedentFromGraph.js +262 -0
  103. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.d.ts +9 -0
  104. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.d.ts.map +1 -0
  105. package/lib/exercises/math/functions/exponential/definition/expImageFromGraph.js +245 -0
  106. package/lib/exercises/math/functions/exponential/definition/index.d.ts +5 -0
  107. package/lib/exercises/math/functions/exponential/definition/index.d.ts.map +1 -0
  108. package/lib/exercises/math/functions/exponential/definition/index.js +4 -0
  109. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.d.ts +13 -0
  110. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.d.ts.map +1 -0
  111. package/lib/exercises/math/functions/exponential/definition/isPlausibleExpFromGraph.js +366 -0
  112. package/lib/exercises/math/functions/exponential/expFactorization.d.ts.map +1 -1
  113. package/lib/exercises/math/functions/exponential/expFactorization.js +54 -42
  114. package/lib/exercises/math/functions/exponential/index.d.ts +2 -0
  115. package/lib/exercises/math/functions/exponential/index.d.ts.map +1 -1
  116. package/lib/exercises/math/functions/exponential/index.js +2 -0
  117. package/lib/exercises/math/functions/trinoms/devForm/coefficientsIdentification.d.ts.map +1 -1
  118. package/lib/exercises/math/functions/trinoms/devForm/coefficientsIdentification.js +30 -3
  119. package/lib/exercises/math/functions/trinoms/equation/deltaTrinom.d.ts.map +1 -1
  120. package/lib/exercises/math/functions/trinoms/equation/deltaTrinom.js +35 -1
  121. package/lib/exercises/math/functions/trinoms/equation/secondDegreeInequation.js +3 -0
  122. package/lib/exercises/math/functions/trinoms/parabole/paraboleExpressionReading.d.ts.map +1 -1
  123. package/lib/exercises/math/functions/trinoms/parabole/paraboleExpressionReading.js +1 -1
  124. package/lib/exercises/math/functions/trinoms/summitAndCanonical/alphaBetaInCanonicalForm.d.ts.map +1 -1
  125. package/lib/exercises/math/functions/trinoms/summitAndCanonical/alphaBetaInCanonicalForm.js +23 -1
  126. package/lib/exercises/math/functions/trinoms/summitAndCanonical/extremumFromCanonicalForm.d.ts.map +1 -1
  127. package/lib/exercises/math/functions/trinoms/summitAndCanonical/extremumFromCanonicalForm.js +29 -0
  128. package/lib/exercises/math/functions/variations/exp/index.d.ts +3 -0
  129. package/lib/exercises/math/functions/variations/exp/index.d.ts.map +1 -0
  130. package/lib/exercises/math/functions/variations/exp/index.js +2 -0
  131. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.d.ts +9 -0
  132. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.d.ts.map +1 -0
  133. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusB.js +96 -0
  134. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.d.ts +11 -0
  135. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.d.ts.map +1 -0
  136. package/lib/exercises/math/functions/variations/exp/varOfAEXPlusBOverCEXPlusD.js +190 -0
  137. package/lib/exercises/math/functions/variations/index.d.ts +1 -0
  138. package/lib/exercises/math/functions/variations/index.d.ts.map +1 -1
  139. package/lib/exercises/math/functions/variations/index.js +1 -0
  140. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPerpendicularLine.d.ts +12 -0
  141. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPerpendicularLine.d.ts.map +1 -0
  142. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPerpendicularLine.js +230 -0
  143. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPointAndNormalVector.d.ts +10 -0
  144. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPointAndNormalVector.d.ts.map +1 -0
  145. package/lib/exercises/math/geometry/cartesian/cartesianEquationOfLineFromPointAndNormalVector.js +167 -0
  146. package/lib/exercises/math/geometry/cartesian/index.d.ts +3 -0
  147. package/lib/exercises/math/geometry/cartesian/index.d.ts.map +1 -1
  148. package/lib/exercises/math/geometry/cartesian/index.js +3 -0
  149. package/lib/exercises/math/geometry/cartesian/normalVectorFromCartesianLineEquation.d.ts +10 -0
  150. package/lib/exercises/math/geometry/cartesian/normalVectorFromCartesianLineEquation.d.ts.map +1 -0
  151. package/lib/exercises/math/geometry/cartesian/normalVectorFromCartesianLineEquation.js +131 -0
  152. package/lib/exercises/math/geometry/circles/index.d.ts +2 -0
  153. package/lib/exercises/math/geometry/circles/index.d.ts.map +1 -0
  154. package/lib/exercises/math/geometry/circles/index.js +1 -0
  155. package/lib/exercises/math/geometry/circles/isPointOnCircleFromCartesianEquation.d.ts +11 -0
  156. package/lib/exercises/math/geometry/circles/isPointOnCircleFromCartesianEquation.d.ts.map +1 -0
  157. package/lib/exercises/math/geometry/circles/isPointOnCircleFromCartesianEquation.js +131 -0
  158. package/lib/exercises/math/geometry/euclidian/pinPointFromAxialOrCentralSymmetry.js +2 -2
  159. package/lib/exercises/math/geometry/euclidian/pinSegmentFromRotation.d.ts.map +1 -1
  160. package/lib/exercises/math/geometry/euclidian/pinSegmentFromRotation.js +0 -2
  161. package/lib/exercises/math/geometry/index.d.ts +1 -0
  162. package/lib/exercises/math/geometry/index.d.ts.map +1 -1
  163. package/lib/exercises/math/geometry/index.js +1 -0
  164. package/lib/exercises/math/geometry/thales/thales.js +1 -1
  165. package/lib/exercises/math/geometry/thales/thalesCalcul.js +1 -1
  166. package/lib/exercises/math/geometry/vectors/colinearity/determinant.js +1 -1
  167. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/index.d.ts +4 -0
  168. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/index.d.ts.map +1 -0
  169. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/index.js +3 -0
  170. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.d.ts +9 -0
  171. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.d.ts.map +1 -0
  172. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiAngle.js +247 -0
  173. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiBH.d.ts +13 -0
  174. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiBH.d.ts.map +1 -0
  175. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiBH.js +452 -0
  176. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.d.ts +9 -0
  177. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.d.ts.map +1 -0
  178. package/lib/exercises/math/geometry/vectors/scalarProduct/alKashi/scalarProductAlKashiSideLength.js +253 -0
  179. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/index.d.ts +4 -0
  180. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/index.d.ts.map +1 -0
  181. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/index.js +3 -0
  182. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductIdentities.d.ts +10 -0
  183. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductIdentities.d.ts.map +1 -0
  184. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductIdentities.js +174 -0
  185. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductInOrthonormalBasisIJ.d.ts +9 -0
  186. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductInOrthonormalBasisIJ.d.ts.map +1 -0
  187. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductInOrthonormalBasisIJ.js +231 -0
  188. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductLamdbaULambdaV.d.ts +14 -0
  189. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductLamdbaULambdaV.d.ts.map +1 -0
  190. package/lib/exercises/math/geometry/vectors/scalarProduct/alg/scalarProductLamdbaULambdaV.js +292 -0
  191. package/lib/exercises/math/geometry/vectors/scalarProduct/angleFromScalarProduct.js +1 -1
  192. package/lib/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.d.ts.map +1 -1
  193. package/lib/exercises/math/geometry/vectors/scalarProduct/findCoordinatesToOrthogonalize.js +33 -7
  194. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/index.d.ts +6 -0
  195. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/index.d.ts.map +1 -0
  196. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/index.js +5 -0
  197. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsBasisIJ.d.ts +9 -0
  198. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsBasisIJ.d.ts.map +1 -0
  199. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsBasisIJ.js +202 -0
  200. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsUsingCoords.d.ts +9 -0
  201. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsUsingCoords.d.ts.map +1 -0
  202. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsOrthogonalVecsUsingCoords.js +127 -0
  203. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnCircle.d.ts +12 -0
  204. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnCircle.d.ts.map +1 -0
  205. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnCircle.js +167 -0
  206. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnPerpendicularBisector.d.ts +12 -0
  207. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnPerpendicularBisector.d.ts.map +1 -0
  208. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsPointOnPerpendicularBisector.js +180 -0
  209. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsRightTriangleUsingPointCoords.d.ts +12 -0
  210. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsRightTriangleUsingPointCoords.d.ts.map +1 -0
  211. package/lib/exercises/math/geometry/vectors/scalarProduct/orth/scalarProductIsRightTriangleUsingPointCoords.js +235 -0
  212. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductComputeBH.d.ts +12 -0
  213. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductComputeBH.d.ts.map +1 -0
  214. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductComputeBH.js +423 -0
  215. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOfVectsOnGrid1.d.ts +17 -0
  216. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOfVectsOnGrid1.d.ts.map +1 -0
  217. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductOfVectsOnGrid1.js +347 -0
  218. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductParallelogramDiagonalPlus.d.ts +8 -0
  219. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductParallelogramDiagonalPlus.d.ts.map +1 -0
  220. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductParallelogramDiagonalPlus.js +301 -0
  221. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCoords.js +1 -1
  222. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.d.ts.map +1 -1
  223. package/lib/exercises/math/geometry/vectors/scalarProduct/scalarProductViaCos.js +38 -1
  224. package/lib/exercises/math/probaStat/conditionalProbability.d.ts +4 -1
  225. package/lib/exercises/math/probaStat/conditionalProbability.d.ts.map +1 -1
  226. package/lib/exercises/math/probaStat/conditionalProbability.js +38 -5
  227. package/lib/exercises/math/probaStat/independancy/independancy.d.ts +9 -0
  228. package/lib/exercises/math/probaStat/independancy/independancy.d.ts.map +1 -0
  229. package/lib/exercises/math/probaStat/independancy/independancy.js +114 -0
  230. package/lib/exercises/math/probaStat/independancy/independancyFindCap.d.ts +9 -0
  231. package/lib/exercises/math/probaStat/independancy/independancyFindCap.d.ts.map +1 -0
  232. package/lib/exercises/math/probaStat/independancy/independancyFindCap.js +101 -0
  233. package/lib/exercises/math/probaStat/independancy/independancyFindCup.d.ts +9 -0
  234. package/lib/exercises/math/probaStat/independancy/independancyFindCup.d.ts.map +1 -0
  235. package/lib/exercises/math/probaStat/independancy/independancyFindCup.js +118 -0
  236. package/lib/exercises/math/probaStat/independancy/index.d.ts +5 -0
  237. package/lib/exercises/math/probaStat/independancy/index.d.ts.map +1 -0
  238. package/lib/exercises/math/probaStat/independancy/index.js +4 -0
  239. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.d.ts +10 -0
  240. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.d.ts.map +1 -0
  241. package/lib/exercises/math/probaStat/independancy/isIndependantFromDefinition.js +106 -0
  242. package/lib/exercises/math/probaStat/index.d.ts +1 -1
  243. package/lib/exercises/math/probaStat/index.d.ts.map +1 -1
  244. package/lib/exercises/math/probaStat/index.js +1 -1
  245. package/lib/exercises/math/probaStat/randomVariable/findValueForFairRandomVariable.d.ts +9 -0
  246. package/lib/exercises/math/probaStat/randomVariable/findValueForFairRandomVariable.d.ts.map +1 -0
  247. package/lib/exercises/math/probaStat/randomVariable/findValueForFairRandomVariable.js +141 -0
  248. package/lib/exercises/math/probaStat/randomVariable/findValueToMatchRandomVariableAverage.d.ts +10 -0
  249. package/lib/exercises/math/probaStat/randomVariable/findValueToMatchRandomVariableAverage.d.ts.map +1 -0
  250. package/lib/exercises/math/probaStat/randomVariable/findValueToMatchRandomVariableAverage.js +174 -0
  251. package/lib/exercises/math/probaStat/randomVariable/index.d.ts +1 -0
  252. package/lib/exercises/math/probaStat/randomVariable/index.d.ts.map +1 -1
  253. package/lib/exercises/math/probaStat/randomVariable/index.js +2 -0
  254. package/lib/exercises/math/probaStat/randomVariable/randomVariableStandardDeviation.js +1 -1
  255. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.d.ts.map +1 -1
  256. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceOutcomes.js +7 -0
  257. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.d.ts.map +1 -1
  258. package/lib/exercises/math/probaStat/twoStepExperiments/headsOrTailsTwiceProbas.js +7 -0
  259. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.d.ts.map +1 -1
  260. package/lib/exercises/math/probaStat/twoStepExperiments/numberPoolTwiceProbas.js +7 -0
  261. package/lib/exercises/math/probaStat/twoStepExperiments/twoStepExperimentProbas.d.ts.map +1 -1
  262. package/lib/exercises/math/probaStat/twoStepExperiments/twoStepExperimentProbas.js +7 -0
  263. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.d.ts +9 -0
  264. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.d.ts.map +1 -0
  265. package/lib/exercises/math/sequences/arithmetic/arithmeticFindExplicitFormulaFirstTermRandom.js +118 -0
  266. package/lib/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.d.ts.map +1 -1
  267. package/lib/exercises/math/sequences/arithmetic/arithmeticFindRandomTermFromTwoTerms.js +55 -6
  268. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.d.ts.map +1 -1
  269. package/lib/exercises/math/sequences/arithmetic/arithmeticFindReasonRandomRange.js +42 -1
  270. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.d.ts +4 -1
  271. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.d.ts.map +1 -1
  272. package/lib/exercises/math/sequences/arithmetic/arithmeticFirstTermsSum.js +57 -7
  273. package/lib/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts.map +1 -1
  274. package/lib/exercises/math/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.js +24 -2
  275. package/lib/exercises/math/sequences/arithmetic/arithmeticThresholdFind.d.ts.map +1 -1
  276. package/lib/exercises/math/sequences/arithmetic/arithmeticThresholdFind.js +31 -8
  277. package/lib/exercises/math/sequences/arithmetic/index.d.ts +1 -1
  278. package/lib/exercises/math/sequences/arithmetic/index.d.ts.map +1 -1
  279. package/lib/exercises/math/sequences/arithmetic/index.js +1 -1
  280. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.d.ts.map +1 -1
  281. package/lib/exercises/math/sequences/arithmetic/recognizeArithmeticFromGraph.js +11 -1
  282. package/lib/exercises/math/sequences/generation/index.d.ts +2 -0
  283. package/lib/exercises/math/sequences/generation/index.d.ts.map +1 -0
  284. package/lib/exercises/math/sequences/generation/index.js +1 -0
  285. package/lib/exercises/math/sequences/generation/recognizeRecurrenceOrExplicit.d.ts +8 -0
  286. package/lib/exercises/math/sequences/generation/recognizeRecurrenceOrExplicit.d.ts.map +1 -0
  287. package/lib/exercises/math/sequences/generation/recognizeRecurrenceOrExplicit.js +63 -0
  288. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstRankOne.js +5 -5
  289. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstTermRandom.d.ts.map +1 -1
  290. package/lib/exercises/math/sequences/geometric/geometricFindExplicitFormulaFirstTermRandom.js +3 -1
  291. package/lib/exercises/math/sequences/geometric/geometricFindReason.d.ts.map +1 -1
  292. package/lib/exercises/math/sequences/geometric/geometricFindReason.js +41 -2
  293. package/lib/exercises/math/sequences/geometric/geometricRecurrenceFormulaUsage.d.ts.map +1 -1
  294. package/lib/exercises/math/sequences/geometric/geometricRecurrenceFormulaUsage.js +28 -2
  295. package/lib/exercises/math/sequences/graph/index.d.ts +2 -0
  296. package/lib/exercises/math/sequences/graph/index.d.ts.map +1 -0
  297. package/lib/exercises/math/sequences/graph/index.js +1 -0
  298. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.d.ts +11 -0
  299. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.d.ts.map +1 -0
  300. package/lib/exercises/math/sequences/graph/placeFirstSequencePoints.js +113 -0
  301. package/lib/exercises/math/sequences/index.d.ts +2 -0
  302. package/lib/exercises/math/sequences/index.d.ts.map +1 -1
  303. package/lib/exercises/math/sequences/index.js +2 -0
  304. package/lib/exercises/math/sequences/notation/identifyRankInSequenceTermsList.d.ts +12 -0
  305. package/lib/exercises/math/sequences/notation/identifyRankInSequenceTermsList.d.ts.map +1 -0
  306. package/lib/exercises/math/sequences/notation/identifyRankInSequenceTermsList.js +114 -0
  307. package/lib/exercises/math/sequences/notation/identifySequenceTermInList.d.ts +12 -0
  308. package/lib/exercises/math/sequences/notation/identifySequenceTermInList.d.ts.map +1 -0
  309. package/lib/exercises/math/sequences/notation/identifySequenceTermInList.js +111 -0
  310. package/lib/exercises/math/sequences/notation/index.d.ts +3 -0
  311. package/lib/exercises/math/sequences/notation/index.d.ts.map +1 -0
  312. package/lib/exercises/math/sequences/notation/index.js +2 -0
  313. package/lib/exercises/math/sequences/sequenceEvaluation.d.ts.map +1 -1
  314. package/lib/exercises/math/sequences/sequenceEvaluation.js +22 -2
  315. package/lib/exercises/math/spaceGeometry/basis/findSpacePointOnRectangularPrism.d.ts.map +1 -1
  316. package/lib/exercises/math/spaceGeometry/basis/findSpacePointOnRectangularPrism.js +0 -1
  317. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.d.ts.map +1 -1
  318. package/lib/exercises/math/spaceGeometry/sphere/sphereLatLonReading.2d.js +0 -2
  319. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.d.ts +9 -0
  320. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.d.ts.map +1 -0
  321. package/lib/exercises/math/trigonometry/circle/areReelsOnTheSameTrigoCirclePoint.js +107 -0
  322. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts +10 -0
  323. package/lib/exercises/math/trigonometry/circle/associatePoint.d.ts.map +1 -0
  324. package/lib/exercises/math/trigonometry/circle/associatePoint.js +86 -0
  325. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.d.ts +10 -0
  326. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.d.ts.map +1 -0
  327. package/lib/exercises/math/trigonometry/circle/associateReelToTrigoCirclePoint.js +205 -0
  328. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.d.ts +7 -0
  329. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.d.ts.map +1 -0
  330. package/lib/exercises/math/trigonometry/circle/findAngleFromCosAndSin.js +121 -0
  331. package/lib/exercises/math/trigonometry/circle/index.d.ts +7 -0
  332. package/lib/exercises/math/trigonometry/circle/index.d.ts.map +1 -0
  333. package/lib/exercises/math/trigonometry/circle/index.js +7 -0
  334. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.d.ts +10 -0
  335. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.d.ts.map +1 -0
  336. package/lib/exercises/math/trigonometry/circle/mainAngleMeasure.js +100 -0
  337. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.d.ts +8 -0
  338. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.d.ts.map +1 -0
  339. package/lib/exercises/math/trigonometry/circle/mainRemarkableValues.js +97 -0
  340. package/lib/exercises/math/trigonometry/circle/remarkableValues.d.ts +10 -0
  341. package/lib/exercises/math/trigonometry/circle/remarkableValues.d.ts.map +1 -0
  342. package/lib/exercises/math/trigonometry/circle/remarkableValues.js +112 -0
  343. package/lib/exercises/math/trigonometry/functions/basicEquationCos.d.ts +7 -0
  344. package/lib/exercises/math/trigonometry/functions/basicEquationCos.d.ts.map +1 -0
  345. package/lib/exercises/math/trigonometry/functions/basicEquationCos.js +92 -0
  346. package/lib/exercises/math/trigonometry/functions/basicEquationSin.d.ts +7 -0
  347. package/lib/exercises/math/trigonometry/functions/basicEquationSin.d.ts.map +1 -0
  348. package/lib/exercises/math/trigonometry/functions/basicEquationSin.js +104 -0
  349. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.d.ts +7 -0
  350. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.d.ts.map +1 -0
  351. package/lib/exercises/math/trigonometry/functions/basicTrigoSystemEquation.js +83 -0
  352. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.d.ts +8 -0
  353. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.d.ts.map +1 -0
  354. package/lib/exercises/math/trigonometry/functions/equationCosOnRandomInterval.js +111 -0
  355. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.d.ts +8 -0
  356. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.d.ts.map +1 -0
  357. package/lib/exercises/math/trigonometry/functions/equationSinOnRandomInterval.js +101 -0
  358. package/lib/exercises/math/trigonometry/functions/index.d.ts +6 -0
  359. package/lib/exercises/math/trigonometry/functions/index.d.ts.map +1 -0
  360. package/lib/exercises/math/trigonometry/functions/index.js +6 -0
  361. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.d.ts +9 -0
  362. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.d.ts.map +1 -0
  363. package/lib/exercises/math/trigonometry/functions/trigoAssociateAngle.js +151 -0
  364. package/lib/exercises/math/trigonometry/index.d.ts +3 -14
  365. package/lib/exercises/math/trigonometry/index.d.ts.map +1 -1
  366. package/lib/exercises/math/trigonometry/index.js +3 -14
  367. package/lib/exercises/math/trigonometry/triangle/index.d.ts +7 -0
  368. package/lib/exercises/math/trigonometry/triangle/index.d.ts.map +1 -0
  369. package/lib/exercises/math/trigonometry/triangle/index.js +6 -0
  370. package/lib/exercises/math/trigonometry/triangle/trigonometry.d.ts +10 -0
  371. package/lib/exercises/math/trigonometry/triangle/trigonometry.d.ts.map +1 -0
  372. package/lib/exercises/math/trigonometry/triangle/trigonometry.js +207 -0
  373. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.d.ts +10 -0
  374. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.d.ts.map +1 -0
  375. package/lib/exercises/math/trigonometry/triangle/trigonometryAngleCalcul.js +174 -0
  376. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.d.ts +11 -0
  377. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.d.ts.map +1 -0
  378. package/lib/exercises/math/trigonometry/triangle/trigonometrySideCalcul.js +224 -0
  379. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.d.ts +13 -0
  380. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.d.ts.map +1 -0
  381. package/lib/exercises/math/trigonometry/triangle/trigonometrySideName.js +189 -0
  382. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.d.ts +13 -0
  383. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.d.ts.map +1 -0
  384. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaCalcul.js +290 -0
  385. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.d.ts +18 -0
  386. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.d.ts.map +1 -0
  387. package/lib/exercises/math/trigonometry/triangle/trigonometrySohcahtoaUse.js +386 -0
  388. package/lib/exercises/pc/mathExosInPC.d.ts +2 -2
  389. package/lib/exercises/pc/mathExosInPC.d.ts.map +1 -1
  390. package/lib/exercises/pc/mathExosInPC.js +2 -2
  391. package/lib/exercises/vea/cartesianLineVEA.d.ts +2 -0
  392. package/lib/exercises/vea/cartesianLineVEA.d.ts.map +1 -0
  393. package/lib/exercises/vea/cartesianLineVEA.js +1 -0
  394. package/lib/index.d.ts +186 -27
  395. package/lib/index.d.ts.map +1 -1
  396. package/lib/math/geometry/line.d.ts +2 -0
  397. package/lib/math/geometry/line.d.ts.map +1 -1
  398. package/lib/math/geometry/line.js +7 -0
  399. package/lib/math/geometry/point.d.ts +1 -0
  400. package/lib/math/geometry/point.d.ts.map +1 -1
  401. package/lib/math/geometry/point.js +5 -0
  402. package/lib/math/geometry/polygons/relationPP.d.ts +8 -0
  403. package/lib/math/geometry/polygons/relationPP.d.ts.map +1 -0
  404. package/lib/math/geometry/polygons/relationPP.js +41 -0
  405. package/lib/math/geometry/segment.d.ts +1 -1
  406. package/lib/math/geometry/vector.d.ts +2 -1
  407. package/lib/math/geometry/vector.d.ts.map +1 -1
  408. package/lib/math/geometry/vector.js +1 -1
  409. package/lib/math/numbers/reals/real.d.ts.map +1 -1
  410. package/lib/math/numbers/reals/real.js +2 -0
  411. package/lib/math/polynomials/trinom.d.ts +1 -1
  412. package/lib/math/polynomials/trinom.d.ts.map +1 -1
  413. package/lib/math/polynomials/trinom.js +15 -6
  414. package/lib/math/utils/arithmetic/primeFactors.js +1 -1
  415. package/lib/math/utils/geometry/randomVecs2.d.ts +6 -0
  416. package/lib/math/utils/geometry/randomVecs2.d.ts.map +1 -0
  417. package/lib/math/utils/geometry/randomVecs2.js +34 -0
  418. package/lib/playground.d.ts.map +1 -1
  419. package/lib/playground.js +3 -1
  420. package/lib/tests/questionTest.d.ts.map +1 -1
  421. package/lib/tests/questionTest.js +2 -2
  422. package/lib/tree/nodes/algebraicNode.d.ts +1 -0
  423. package/lib/tree/nodes/algebraicNode.d.ts.map +1 -1
  424. package/lib/tree/nodes/equations/equationSolutionNode.d.ts +1 -0
  425. package/lib/tree/nodes/equations/equationSolutionNode.d.ts.map +1 -1
  426. package/lib/tree/nodes/equations/equationSolutionNode.js +3 -0
  427. package/lib/tree/nodes/functions/expNode.d.ts +1 -1
  428. package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
  429. package/lib/tree/nodes/functions/sqrtNode.d.ts +2 -1
  430. package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
  431. package/lib/tree/nodes/functions/sqrtNode.js +17 -6
  432. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts +1 -0
  433. package/lib/tree/nodes/inequations/inequationSolutionNode.d.ts.map +1 -1
  434. package/lib/tree/nodes/inequations/inequationSolutionNode.js +3 -0
  435. package/lib/tree/nodes/operators/fractionNode.d.ts +1 -1
  436. package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
  437. package/lib/tree/nodes/operators/fractionNode.js +6 -4
  438. package/lib/tree/nodes/operators/multiplyNode.js +1 -1
  439. package/lib/tree/nodes/sets/intervalNode.d.ts +6 -0
  440. package/lib/tree/nodes/sets/intervalNode.d.ts.map +1 -1
  441. package/lib/tree/nodes/sets/namedIntervalNode.d.ts +31 -0
  442. package/lib/tree/nodes/sets/namedIntervalNode.d.ts.map +1 -0
  443. package/lib/tree/nodes/sets/namedIntervalNode.js +77 -0
  444. package/package.json +1 -1
@@ -0,0 +1,6 @@
1
+ import { Vector } from "../../../math/geometry/vector.js";
2
+ export declare const randomVecs2: (isOrthogonal: boolean) => {
3
+ vecU: Vector;
4
+ vecV: Vector;
5
+ };
6
+ //# sourceMappingURL=randomVecs2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"randomVecs2.d.ts","sourceRoot":"","sources":["../../../../src/math/utils/geometry/randomVecs2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAgBvD,eAAO,MAAM,WAAW,GAAI,cAAc,OAAO;;;CAgChD,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { Vector } from "../../../math/geometry/vector.js";
2
+ import { coinFlip } from "../../../utils/alea/coinFlip.js";
3
+ import { shuffle } from "../../../utils/alea/shuffle.js";
4
+ import { randint } from "../random/randint.js";
5
+ function createLength2ArrFactorFromLengthNArrFactor(arrFactor) {
6
+ const nbFactors = arrFactor.length;
7
+ const indexSlice = randint(0 + 1, nbFactors - 1 - 1);
8
+ const arrFactorShuffled = shuffle(arrFactor);
9
+ const [arrA, arrB] = [
10
+ arrFactorShuffled.slice(0, indexSlice),
11
+ arrFactorShuffled.slice(indexSlice),
12
+ ];
13
+ return shuffle([arrA, arrB].map((arr) => arr.reduce((acc, v) => acc * v)));
14
+ }
15
+ export const randomVecs2 = (isOrthogonal) => {
16
+ function createRandomCoordsNodes(isOrthogonal) {
17
+ const nbFactors = 4;
18
+ const arrFactorX = [...Array(nbFactors).keys()].map((i) => (coinFlip() ? -1 : 1) * randint(2, i + 7));
19
+ //ux.vx = uy.vS
20
+ const [ux, vx] = createLength2ArrFactorFromLengthNArrFactor(arrFactorX);
21
+ const [uy, vS] = createLength2ArrFactorFromLengthNArrFactor(arrFactorX);
22
+ //ux.vx + uy.vy = 0 <=> vy = -(ux.vx)/uy
23
+ const vyOrth = -vS;
24
+ const vy = isOrthogonal ? vyOrth : randint(-10, 11, [0, vyOrth]);
25
+ const [nodeUX, nodeUY, nodeVX, nodeVY] = [ux, uy, vx, vy].map((v) => v.toTree());
26
+ const nodesU = [nodeUX, nodeUY];
27
+ const nodesV = [nodeVX, nodeVY];
28
+ return { nodesU, nodesV };
29
+ }
30
+ const { nodesU, nodesV } = createRandomCoordsNodes(isOrthogonal);
31
+ const vecU = new Vector("u", nodesU[0], nodesU[1]);
32
+ const vecV = new Vector("v", nodesV[0], nodesV[1]);
33
+ return { vecU, vecV };
34
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,YAAW,CAAC;AAEnC;;;;GAIG"}
1
+ {"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,YAEtB,CAAC;AAEF;;;;GAIG"}
package/lib/playground.js CHANGED
@@ -1,4 +1,6 @@
1
- export const playground = () => { };
1
+ export const playground = () => {
2
+ // console.log(sqrt(multiply(7, "x")).simplify().toTex());
3
+ };
2
4
  /***
3
5
  *
4
6
  * !!TODO
@@ -1 +1 @@
1
- {"version":3,"file":"questionTest.d.ts","sourceRoot":"","sources":["../../src/tests/questionTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAKjE,eAAO,MAAM,YAAY,GACvB,KAAK,QAAQ,CAAC,MAAM,CAAC,EACrB,UAAU,QAAQ,CAAC,MAAM,CAAC;;;CA2P3B,CAAC"}
1
+ {"version":3,"file":"questionTest.d.ts","sourceRoot":"","sources":["../../src/tests/questionTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAKjE,eAAO,MAAM,YAAY,GACvB,KAAK,QAAQ,CAAC,MAAM,CAAC,EACrB,UAAU,QAAQ,CAAC,MAAM,CAAC;;;CAqQ3B,CAAC"}
@@ -158,7 +158,7 @@ export const questionTest = (exo, question) => {
158
158
  const answer = question.answer;
159
159
  const before = Date.now();
160
160
  console.log("will test vea : ", exo.id);
161
- if (!exo.isAnswerValid(answer, { answer, ...question.identifiers })) {
161
+ if (!exo.isAnswerValid(answer, { answer, ...question.identifiers }, question.options)) {
162
162
  throw new Error(`exo ${exo.id} has invalid VEA, ids ${jsonIds}, answer ${question.answer}`);
163
163
  }
164
164
  const after = Date.now();
@@ -176,7 +176,7 @@ export const questionTest = (exo, question) => {
176
176
  const props = exo.getPropositions(4, {
177
177
  answer: question.answer,
178
178
  ...question.identifiers,
179
- });
179
+ }, question.options);
180
180
  const after = Date.now();
181
181
  qcmTime = after - before;
182
182
  if (props.length > 4)
@@ -13,6 +13,7 @@ export type SimplifyOptions = {
13
13
  calculatePowers?: boolean;
14
14
  distributePowersOnFrac?: boolean;
15
15
  forbidRationalSimplification?: boolean;
16
+ forceSeparateSqrts?: boolean;
16
17
  };
17
18
  export type EvaluateOptions = {
18
19
  degreeMode?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"algebraicNode.d.ts","sourceRoot":"","sources":["../../../src/tree/nodes/algebraicNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAIxC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AACF,MAAM,WAAW,aAAc,SAAQ,IAAI;IACzC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,eAAe,KAAK,MAAM,CAAC;IAC5E,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,aAAa,CAAC;IAC7E,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,aAAa,EAAE,CAAC;IAC3D,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,aAAa,CAAC;IACnE,MAAM,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;CACjD;AACD,8BAAsB,cAAc;;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ;CAGxB;AACD,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,KAAG,IAAI,IAAI,aACI,CAAC"}
1
+ {"version":3,"file":"algebraicNode.d.ts","sourceRoot":"","sources":["../../../src/tree/nodes/algebraicNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAG9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AACF,MAAM,WAAW,aAAc,SAAQ,IAAI;IACzC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,eAAe,KAAK,MAAM,CAAC;IAC5E,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,aAAa,CAAC;IAC7E,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,aAAa,EAAE,CAAC;IAC3D,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,aAAa,CAAC;IACnE,MAAM,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;CACjD;AACD,8BAAsB,cAAc;;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ;CAGxB;AACD,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,KAAG,IAAI,IAAI,aACI,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { AlgebraicNode, SimplifyOptions } from "../algebraicNode.js";
2
2
  import { NodeIds, NodeOptions, NodeType } from "../node.js";
3
3
  import { DiscreteSetNode } from "../sets/discreteSetNode.js";
4
+ export declare function isEquationSolutionNode(a: AlgebraicNode): a is EquationSolutionNode;
4
5
  type EquationSolutionNodeOptions = {
5
6
  variable?: string;
6
7
  opts?: NodeOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"equationSolutionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/equations/equationSolutionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,KAAK,2BAA2B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAC7E,qBAAa,oBAAqB,YAAW,aAAa;IACxD,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,eAAe,CAAC;IAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBAEjB,YAAY,EAAE,eAAe,EAC7B,MAAM,CAAC,EAAE,2BAA2B;IAetC,aAAa;;;;;;;;;IAMb,cAAc;IAId,SAAS;IAkBT,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAQpC,YAAY;IAIZ,KAAK;IAGL,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAG/B,UAAU,IAAI,aAAa;IAG3B,MAAM,IAAI,OAAO;IAGjB,QAAQ,IAAI,MAAM;IAGlB,oBAAoB,IAAI,aAAa;CAGtC"}
1
+ {"version":3,"file":"equationSolutionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/equations/equationSolutionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,aAAa,GACf,CAAC,IAAI,oBAAoB,CAE3B;AAED,KAAK,2BAA2B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAC7E,qBAAa,oBAAqB,YAAW,aAAa;IACxD,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,eAAe,CAAC;IAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBAEjB,YAAY,EAAE,eAAe,EAC7B,MAAM,CAAC,EAAE,2BAA2B;IAetC,aAAa;;;;;;;;;IAMb,cAAc;IAId,SAAS;IAkBT,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAQpC,YAAY;IAIZ,KAAK;IAGL,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAG/B,UAAU,IAAI,aAAa;IAG3B,MAAM,IAAI,OAAO;IAGjB,QAAQ,IAAI,MAAM;IAGlB,oBAAoB,IAAI,aAAa;CAGtC"}
@@ -1,4 +1,7 @@
1
1
  import { NodeIds, NodeType } from "../node.js";
2
+ export function isEquationSolutionNode(a) {
3
+ return a.toIdentifiers().id === NodeIds.equationSolution;
4
+ }
2
5
  export class EquationSolutionNode {
3
6
  type;
4
7
  variable;
@@ -24,6 +24,6 @@ export declare class ExpNode implements FunctionNode {
24
24
  evaluate(vars?: Record<string, number>): number;
25
25
  equals(node: AlgebraicNode): boolean;
26
26
  toDetailedEvaluation(vars: Record<string, AlgebraicNode>): ExpNode;
27
- derivative(varName?: string | undefined): import("../operators/multiplyNode.js").MultiplyNode;
27
+ derivative(varName?: string | undefined): AlgebraicNode;
28
28
  }
29
29
  //# sourceMappingURL=expNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/expNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKrE,eAAO,MAAM,GAAG,GAAI,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,YAIrD,CAAC;AAEF,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AACD,qBAAa,OAAQ,YAAW,YAAY;IAC1C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAmBf,iBAAiB,IAAI,aAAa,EAAE;IAUpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,IAAI,UAAQ,GAAG,aAAa;IAO7D,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,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;CAGxC"}
1
+ {"version":3,"file":"expNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/expNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKrE,eAAO,MAAM,GAAG,GAAI,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,YAIrD,CAAC;AAEF,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,OAAO,CAE/C;AACD,qBAAa,OAAQ,YAAW,YAAY;IAC1C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBACP,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW;IAOpD,aAAa;;;;;;IAMb,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAmBf,iBAAiB,IAAI,aAAa,EAAE;IAUpC,cAAc,IAAI,MAAM,EAAE;IAI1B,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,IAAI,UAAQ,GAAG,aAAa;IAO7D,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,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa;CAGxD"}
@@ -1,5 +1,6 @@
1
1
  import { Node, NodeIds, NodeOptions, NodeType } from "../node.js";
2
2
  import { FunctionNode, FunctionsIds } from "./functionNode.js";
3
+ import { MultiplyNode } from "../operators/multiplyNode.js";
3
4
  import { AlgebraicNode, SimplifyOptions } from "../algebraicNode.js";
4
5
  export declare function isSqrtNode(a: Node): a is SqrtNode;
5
6
  export declare const sqrt: (a: AlgebraicNode | number | string) => SqrtNode;
@@ -21,7 +22,7 @@ export declare class SqrtNode implements FunctionNode {
21
22
  toEquivalentNodes(opts?: NodeOptions): AlgebraicNode[];
22
23
  toAllValidTexs(opts?: NodeOptions): string[];
23
24
  evaluate(vars?: Record<string, number>): number;
24
- simplify(opts?: SimplifyOptions, _log?: boolean): AlgebraicNode;
25
+ simplify(opts?: SimplifyOptions, _log?: boolean): AlgebraicNode | MultiplyNode | SqrtNode;
25
26
  equals(node: AlgebraicNode): boolean;
26
27
  toDetailedEvaluation(vars: Record<string, AlgebraicNode>): AlgebraicNode;
27
28
  derivative(): AlgebraicNode;
@@ -1 +1 @@
1
- {"version":3,"file":"sqrtNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/sqrtNode.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;AAK/E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKrE,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,QAAQ,CAEjD;AAED,eAAO,MAAM,IAAI,GAAI,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,aAItD,CAAC;AAEF,qBAAa,QAAS,YAAW,YAAY;IAC3C,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;IAMtB,KAAK,IAAI,MAAM;IAIf,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAwBtD,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAG5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGtC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,IAAI,UAAQ;IA0C7C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAGpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAMxD,UAAU,IAAI,aAAa;IAG3B,mBAAmB;CAQpB"}
1
+ {"version":3,"file":"sqrtNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/functions/sqrtNode.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;AAG/E,OAAO,EAAE,YAAY,EAAkB,MAAM,8BAA8B,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKrE,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,QAAQ,CAEjD;AAED,eAAO,MAAM,IAAI,GAAI,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,aAItD,CAAC;AAEF,qBAAa,QAAS,YAAW,YAAY;IAC3C,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;IAMtB,KAAK,IAAI,MAAM;IAIf,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE;IAwBtD,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAG5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGtC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,IAAI,UAAQ;IAyD7C,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAGpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAMxD,UAAU,IAAI,aAAa;IAG3B,mBAAmB;CAQpB"}
@@ -87,7 +87,10 @@ export class SqrtNode {
87
87
  const simplifyExternalNodes = (a) => {
88
88
  if (isNumberNode(a)) {
89
89
  const sqrt = new SquareRoot(a.value);
90
- return sqrt.simplify().toTree();
90
+ if (sqrt.isSimplifiable())
91
+ return sqrt.simplify().toTree();
92
+ else
93
+ return null;
91
94
  }
92
95
  //TODO diviser par 2 les puissances (dont exp)
93
96
  if (isSquareNode(a)) {
@@ -96,19 +99,27 @@ export class SqrtNode {
96
99
  if (isFractionNode(a)) {
97
100
  return frac(sqrt(a.leftChild), sqrt(a.rightChild)).simplify(opts);
98
101
  }
99
- return new SqrtNode(a);
102
+ return null;
100
103
  };
104
+ const simplifiedExts = [];
101
105
  const simplifyIteration = () => {
102
106
  for (let i = 0; i < externals.length; i++) {
103
107
  const simplified = simplifyExternalNodes(externals[i]);
104
- externals[i] = simplified;
105
- return;
108
+ if (simplified) {
109
+ simplifiedExts.push(simplified);
110
+ externals.splice(i, 1);
111
+ i--;
112
+ }
106
113
  }
107
114
  };
108
115
  simplifyIteration();
116
+ if (!externals.length)
117
+ return operatorComposition(MultiplyNode, simplifiedExts).simplify(opts);
109
118
  if (externals.length === 1)
110
- return externals[0];
111
- return operatorComposition(MultiplyNode, externals).simplify(opts);
119
+ return new SqrtNode(externals[0]);
120
+ if (!simplifiedExts.length)
121
+ return new SqrtNode(operatorComposition(MultiplyNode, externals).simplify());
122
+ return new MultiplyNode(operatorComposition(MultiplyNode, simplifiedExts).simplify(opts), new SqrtNode(operatorComposition(MultiplyNode, externals).simplify()));
112
123
  }
113
124
  equals(node) {
114
125
  return isSqrtNode(node) && node.child.equals(this.child);
@@ -2,6 +2,7 @@ import { AlgebraicNode } from "../algebraicNode.js";
2
2
  import { NodeIds, NodeOptions, NodeType } from "../node.js";
3
3
  import { IntervalNode } from "../sets/intervalNode.js";
4
4
  import { UnionIntervalNode } from "../sets/unionIntervalNode.js";
5
+ export declare function isInequationSolutionNode(a: AlgebraicNode): a is InequationSolutionNode;
5
6
  type InequationSolutionNodeOptions = {
6
7
  variable?: string;
7
8
  opts?: NodeOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"inequationSolutionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/inequations/inequationSolutionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAkB,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,KAAK,6BAA6B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAC/E,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,YAAY,GAAG,iBAAiB,CAAC;IACnD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBAEjB,gBAAgB,EAAE,YAAY,GAAG,iBAAiB,EAClD,MAAM,CAAC,EAAE,6BAA6B;IAcxC,aAAa;;;;;;;;;IAMb,SAAS;IAUT,cAAc;IAId,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAepC,YAAY;IAIZ,KAAK;IAGL,QAAQ;IAIR,UAAU,IAAI,aAAa;IAG3B,MAAM,IAAI,OAAO;IAGjB,QAAQ,IAAI,MAAM;IAGlB,oBAAoB,IAAI,aAAa;CAGtC"}
1
+ {"version":3,"file":"inequationSolutionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/inequations/inequationSolutionNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAkB,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,aAAa,GACf,CAAC,IAAI,sBAAsB,CAE7B;AAED,KAAK,6BAA6B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAC/E,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,YAAY,GAAG,iBAAiB,CAAC;IACnD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;gBAEjB,gBAAgB,EAAE,YAAY,GAAG,iBAAiB,EAClD,MAAM,CAAC,EAAE,6BAA6B;IAcxC,aAAa;;;;;;;;;IAMb,SAAS;IAUT,cAAc;IAId,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAepC,YAAY;IAIZ,KAAK;IAGL,QAAQ;IAIR,UAAU,IAAI,aAAa;IAG3B,MAAM,IAAI,OAAO;IAGjB,QAAQ,IAAI,MAAM;IAGlB,oBAAoB,IAAI,aAAa;CAGtC"}
@@ -1,5 +1,8 @@
1
1
  import { NodeIds, NodeType } from "../node.js";
2
2
  import { isIntervalNode } from "../sets/intervalNode.js";
3
+ export function isInequationSolutionNode(a) {
4
+ return a.toIdentifiers().id === NodeIds.inequationSolution;
5
+ }
3
6
  export class InequationSolutionNode {
4
7
  type;
5
8
  variable;
@@ -33,6 +33,6 @@ export declare class FractionNode implements OperatorNode {
33
33
  equals(node: AlgebraicNode): boolean;
34
34
  toDetailedEvaluation(vars: Record<string, AlgebraicNode>): FractionNode;
35
35
  toSimplificationTex(): string;
36
- derivative(_varName?: string): AlgebraicNode;
36
+ derivative(varName?: string): AlgebraicNode;
37
37
  }
38
38
  //# sourceMappingURL=fractionNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fractionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/fractionNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAK9E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKrE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,eAAO,MAAM,IAAI,GACf,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,EAClC,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,EAClC,OAAO,WAAW,iBAOnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC;AACF,qBAAa,YAAa,YAAW,YAAY;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAiBpB,YAAY,IAAI,MAAM;IAItB,aAAa,IAAI,uBAAuB;IAQxC,UAAU;IAGV,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IA+BpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAG5C,SAAS;IAoBT,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IA8BrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMtC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,GAAG,UAAQ,GAAG,aAAa;IA8M5D,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAOpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAOxD,mBAAmB;IAQnB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa;CAG7C"}
1
+ {"version":3,"file":"fractionNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/operators/fractionNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAK9E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKrE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,eAAO,MAAM,IAAI,GACf,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,EAClC,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,EAClC,OAAO,WAAW,iBAOnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC;AACF,qBAAa,YAAa,YAAW,YAAY;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEjB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,CAAC,EAAE,WAAW;IAiBpB,YAAY,IAAI,MAAM;IAItB,aAAa,IAAI,uBAAuB;IAQxC,UAAU;IAGV,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IA+BpC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAG5C,SAAS;IAoBT,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IA8BrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMtC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,GAAG,UAAQ,GAAG,aAAa;IA8M5D,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAOpC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAOxD,mBAAmB;IAQnB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa;CAQ5C"}
@@ -4,11 +4,11 @@ import { OperatorIds, isOperatorNode } from "./operatorNode.js";
4
4
  import { NumberNode, isNumberNode } from "../numbers/numberNode.js";
5
5
  import { round } from "../../../math/utils/round.js";
6
6
  import { OppositeNode, isOppositeNode } from "../functions/oppositeNode.js";
7
- import { MultiplyNode, isMultiplyNode } from "./multiplyNode.js";
7
+ import { MultiplyNode, isMultiplyNode, multiply } from "./multiplyNode.js";
8
8
  import { Rational } from "../../../math/numbers/rationals/rational.js";
9
9
  import { operatorComposition } from "../../../tree/utilities/operatorComposition.js";
10
10
  import { AddNode, isAddNode } from "./addNode.js";
11
- import { PowerNode, isPowerNode, isSquareNode } from "./powerNode.js";
11
+ import { PowerNode, isPowerNode, isSquareNode, power } from "./powerNode.js";
12
12
  import { SubstractNode, isSubstractNode, substract } from "./substractNode.js";
13
13
  import { isVariableNode } from "../variables/variableNode.js";
14
14
  import { parseToMonomNode } from "../polynomials/monomNode.js";
@@ -328,8 +328,10 @@ export class FractionNode {
328
328
  else
329
329
  return `${thisTex} = ${simpTex}`;
330
330
  }
331
- derivative(_varName) {
332
- throw new Error("unimplemented derivative");
331
+ derivative(varName) {
332
+ const numNode = substract(multiply(this.leftChild.derivative(varName), this.rightChild), multiply(this.leftChild, this.rightChild.derivative(varName)));
333
+ const denNode = power(this.rightChild, 2);
334
+ return frac(numNode, denNode);
333
335
  }
334
336
  }
335
337
  const powerSimplify = (num, denum, opts) => {
@@ -336,7 +336,7 @@ export class MultiplyNode {
336
336
  if (isNumberNode(a) && isNumberNode(b)) {
337
337
  return new NumberNode(round(a.value * b.value, 10));
338
338
  }
339
- if (isSqrtNode(a) && isSqrtNode(b)) {
339
+ if (!opts?.forceSeparateSqrts && isSqrtNode(a) && isSqrtNode(b)) {
340
340
  return new SqrtNode(new MultiplyNode(a.child, b.child)).simplify(opts, log);
341
341
  }
342
342
  if (isNumberNode(a) &&
@@ -19,6 +19,12 @@ export type IntervalNodeIdentifiers = {
19
19
  closure: ClosureType;
20
20
  opts?: NodeOptions;
21
21
  };
22
+ export type IntervalNodeParams = {
23
+ a: AlgebraicNode;
24
+ b: AlgebraicNode;
25
+ closure: ClosureType;
26
+ opts?: NodeOptions;
27
+ };
22
28
  export declare class IntervalNode implements SetNode {
23
29
  type: NodeType;
24
30
  id: SetIds;
@@ -1 +1 @@
1
- {"version":3,"file":"intervalNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/sets/intervalNode.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AAOxE,OAAO,EAAW,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAY,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,8BAAsB,uBAAuB;IAC3C,MAAM,CAAC,MAAM;IA2Cb,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM;IAgBlC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,uBAAuB;CAQpD;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AACF,qBAAa,YAAa,YAAW,OAAO;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;gBAGjB,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,EAChB,OAAO,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,WAAW;IAYpB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW;IAMjC,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAoBpC,YAAY,CAAC,WAAW,CAAC,EAAE,aAAa;IA4BxC,YAAY;IAIZ,MAAM,CAAC,CAAC,EAAE,aAAa;IASvB,iBAAiB;IAGjB,qBAAqB;IAGrB,sBAAsB;IAGtB,wBAAwB;IAgBxB,YAAY;IAkCZ,KAAK;IAWL;;SAEK;IACL,YAAY;IAWZ,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAOvC,aAAa,IAAI,uBAAuB;IAUxC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAiB7C,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAQ/B,UAAU,IAAI,aAAa;IAG3B,QAAQ;IAGR,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IASxD,YAAY;IAGZ,aAAa;IAGb,QAAQ,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO;IAanC,YAAY,CAAC,QAAQ,EAAE,YAAY;IA0DnC,YAAY;IAIZ,SAAS,CAAC,CAAC,EAAE,WAAW;IAGxB,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,GAAG,iBAAiB;CAkDhE"}
1
+ {"version":3,"file":"intervalNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/sets/intervalNode.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AAOxE,OAAO,EAAW,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAY,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,YAAY,CAEzD;AAED,8BAAsB,uBAAuB;IAC3C,MAAM,CAAC,MAAM;IA2Cb,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM;IAgBlC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,uBAAuB;CAQpD;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,qBAAa,YAAa,YAAW,OAAO;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,CAAC,EAAE,aAAa,CAAC;IACjB,CAAC,EAAE,aAAa,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;gBAGjB,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,EAChB,OAAO,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,WAAW;IAYpB,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW;IAMjC,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW;IAoBpC,YAAY,CAAC,WAAW,CAAC,EAAE,aAAa;IA4BxC,YAAY;IAIZ,MAAM,CAAC,CAAC,EAAE,aAAa;IASvB,iBAAiB;IAGjB,qBAAqB;IAGrB,sBAAsB;IAGtB,wBAAwB;IAgBxB,YAAY;IAkCZ,KAAK;IAWL;;SAEK;IACL,YAAY;IAWZ,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE;IAOvC,aAAa,IAAI,uBAAuB;IAUxC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAiB7C,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe;IAQ/B,UAAU,IAAI,aAAa;IAG3B,QAAQ;IAGR,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IASxD,YAAY;IAGZ,aAAa;IAGb,QAAQ,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO;IAanC,YAAY,CAAC,QAAQ,EAAE,YAAY;IA0DnC,YAAY;IAIZ,SAAS,CAAC,CAAC,EAAE,WAAW;IAGxB,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,GAAG,iBAAiB;CAkDhE"}
@@ -0,0 +1,31 @@
1
+ import { Node, NodeIds, NodeOptions } from "../node.js";
2
+ import { NodeIdentifiers } from "../nodeConstructor.js";
3
+ import { ClosureType } from "./closure.js";
4
+ import { IntervalNode, IntervalNodeParams } from "./intervalNode.js";
5
+ export declare enum NamedIntervalIds {
6
+ R = 0,
7
+ RPlus = 1,
8
+ RPlusStar = 2,
9
+ RMinus = 3,
10
+ RMinusStar = 4
11
+ }
12
+ export declare function isNamedIntervalNode(a: Node): a is NamedIntervalNode;
13
+ export declare abstract class NamedIntervalNodeConstructor {
14
+ static fromName(nameId: NamedIntervalIds, opts?: NodeOptions): NamedIntervalNode;
15
+ }
16
+ export type NamedSetNodeIdentifiers = {
17
+ id: NodeIds;
18
+ leftChild: NodeIdentifiers;
19
+ rightChild: NodeIdentifiers;
20
+ closure: ClosureType;
21
+ opts?: NodeOptions;
22
+ };
23
+ export type NamedIntervalNodeParams = {
24
+ nameId: NamedIntervalIds;
25
+ } & IntervalNodeParams;
26
+ export declare class NamedIntervalNode extends IntervalNode {
27
+ nameId: NamedIntervalIds;
28
+ constructor(params: NamedIntervalNodeParams);
29
+ toTex(): string;
30
+ }
31
+ //# sourceMappingURL=namedIntervalNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namedIntervalNode.d.ts","sourceRoot":"","sources":["../../../../src/tree/nodes/sets/namedIntervalNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGrE,oBAAY,gBAAgB;IAC1B,CAAC,IAAA;IAED,KAAK,IAAA;IACL,SAAS,IAAA;IAET,MAAM,IAAA;IACN,UAAU,IAAA;CACX;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,iBAAiB,CAEnE;AAED,8BAAsB,4BAA4B;IAChD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,WAAW;CAqE7D;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,gBAAgB,CAAC;CAC1B,GAAG,kBAAkB,CAAC;AAEvB,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,MAAM,EAAE,gBAAgB,CAAC;gBAEb,MAAM,EAAE,uBAAuB;IAK3C,KAAK,IAAI,MAAM;CAgBhB"}
@@ -0,0 +1,77 @@
1
+ import { MinusInfinityNode, PlusInfinityNode, } from "../numbers/infiniteNode.js";
2
+ import { ClosureType } from "./closure.js";
3
+ import { IntervalNode } from "./intervalNode.js";
4
+ import { SetIds, isSetNode } from "./setNode.js";
5
+ export var NamedIntervalIds;
6
+ (function (NamedIntervalIds) {
7
+ NamedIntervalIds[NamedIntervalIds["R"] = 0] = "R";
8
+ NamedIntervalIds[NamedIntervalIds["RPlus"] = 1] = "RPlus";
9
+ NamedIntervalIds[NamedIntervalIds["RPlusStar"] = 2] = "RPlusStar";
10
+ NamedIntervalIds[NamedIntervalIds["RMinus"] = 3] = "RMinus";
11
+ NamedIntervalIds[NamedIntervalIds["RMinusStar"] = 4] = "RMinusStar";
12
+ })(NamedIntervalIds || (NamedIntervalIds = {}));
13
+ export function isNamedIntervalNode(a) {
14
+ return isSetNode(a) && a.id === SetIds.interval;
15
+ }
16
+ export class NamedIntervalNodeConstructor {
17
+ static fromName(nameId, opts) {
18
+ switch (nameId) {
19
+ case NamedIntervalIds.R:
20
+ return new NamedIntervalNode(Object.assign({}, { nameId }, {
21
+ a: MinusInfinityNode,
22
+ b: PlusInfinityNode,
23
+ closure: ClosureType.OO,
24
+ opts,
25
+ }));
26
+ case NamedIntervalIds.RPlus:
27
+ return new NamedIntervalNode(Object.assign({}, { nameId }, {
28
+ a: (0).toTree(),
29
+ b: PlusInfinityNode,
30
+ closure: ClosureType.FO,
31
+ opts,
32
+ }));
33
+ case NamedIntervalIds.RPlusStar:
34
+ return new NamedIntervalNode(Object.assign({}, { nameId }, {
35
+ a: (0).toTree(),
36
+ b: PlusInfinityNode,
37
+ closure: ClosureType.OO,
38
+ opts,
39
+ }));
40
+ case NamedIntervalIds.RMinus:
41
+ return new NamedIntervalNode(Object.assign({}, { nameId }, {
42
+ a: MinusInfinityNode,
43
+ b: (0).toTree(),
44
+ closure: ClosureType.OF,
45
+ opts,
46
+ }));
47
+ case NamedIntervalIds.RMinusStar:
48
+ return new NamedIntervalNode(Object.assign({}, { nameId }, {
49
+ a: MinusInfinityNode,
50
+ b: (0).toTree(),
51
+ closure: ClosureType.OO,
52
+ opts,
53
+ }));
54
+ }
55
+ }
56
+ }
57
+ export class NamedIntervalNode extends IntervalNode {
58
+ nameId;
59
+ constructor(params) {
60
+ super(params.a, params.b, params.closure, params.opts);
61
+ this.nameId = params.nameId;
62
+ }
63
+ toTex() {
64
+ switch (this.nameId) {
65
+ case NamedIntervalIds.R:
66
+ return `{\\mathbb{R}}`;
67
+ case NamedIntervalIds.RPlus:
68
+ return `{\\mathbb{R}}^{+}`;
69
+ case NamedIntervalIds.RPlusStar:
70
+ return `{\\mathbb{R}}^{+*}`;
71
+ case NamedIntervalIds.RMinus:
72
+ return `{\\mathbb{R}}^{-}`;
73
+ case NamedIntervalIds.RMinusStar:
74
+ return `{\\mathbb{R}}^{-*}`;
75
+ }
76
+ }
77
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "math-exercises",
3
3
  "type": "module",
4
- "version": "3.0.157",
4
+ "version": "3.0.159",
5
5
  "description": "Math exercises generator for middle school and high school",
6
6
  "main": "lib/index.js",
7
7
  "files": [