math-exercises 1.3.31 → 1.3.32

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 (368) hide show
  1. package/README.md +73 -73
  2. package/lib/exercises/calcul/addAndSub.d.ts +6 -6
  3. package/lib/exercises/calcul/addAndSub.js +41 -41
  4. package/lib/exercises/calcul/addAndSubWithoutRelatives.d.ts +6 -6
  5. package/lib/exercises/calcul/addAndSubWithoutRelatives.js +51 -51
  6. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.d.ts +3 -3
  7. package/lib/exercises/calcul/fractions/fractionAndIntegerDivision.js +37 -37
  8. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.d.ts +3 -3
  9. package/lib/exercises/calcul/fractions/fractionAndIntegerProduct.js +34 -34
  10. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.d.ts +3 -3
  11. package/lib/exercises/calcul/fractions/fractionAndIntegerSum.js +34 -34
  12. package/lib/exercises/calcul/fractions/fractionToPercentToDecimal.d.ts +3 -3
  13. package/lib/exercises/calcul/fractions/fractionToPercentToDecimal.js +69 -69
  14. package/lib/exercises/calcul/fractions/fractionsDivision.d.ts +3 -3
  15. package/lib/exercises/calcul/fractions/fractionsDivision.js +31 -31
  16. package/lib/exercises/calcul/fractions/fractionsProduct.d.ts +3 -3
  17. package/lib/exercises/calcul/fractions/fractionsProduct.js +30 -30
  18. package/lib/exercises/calcul/fractions/fractionsSum.d.ts +3 -3
  19. package/lib/exercises/calcul/fractions/fractionsSum.js +30 -30
  20. package/lib/exercises/calcul/fractions/simplifyFraction.d.ts +3 -3
  21. package/lib/exercises/calcul/fractions/simplifyFraction.js +26 -26
  22. package/lib/exercises/calcul/mentalCaluls.ts/mentalAddAndSub.d.ts +3 -3
  23. package/lib/exercises/calcul/mentalCaluls.ts/mentalAddAndSub.js +46 -46
  24. package/lib/exercises/calcul/mentalCaluls.ts/mentalDivisions.d.ts +3 -3
  25. package/lib/exercises/calcul/mentalCaluls.ts/mentalDivisions.js +64 -64
  26. package/lib/exercises/calcul/mentalCaluls.ts/mentalMultiplications.d.ts +3 -3
  27. package/lib/exercises/calcul/mentalCaluls.ts/mentalMultiplications.js +51 -51
  28. package/lib/exercises/calcul/mentalCaluls.ts/mentalPercentage.d.ts +3 -3
  29. package/lib/exercises/calcul/mentalCaluls.ts/mentalPercentage.js +67 -67
  30. package/lib/exercises/calcul/operations/operationsPriorities.d.ts +10 -10
  31. package/lib/exercises/calcul/operations/operationsPriorities.js +100 -100
  32. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.d.ts +10 -10
  33. package/lib/exercises/calcul/operations/operationsPrioritiesWithoutRelative.js +181 -181
  34. package/lib/exercises/calcul/operationsPriorities.js +88 -0
  35. package/lib/exercises/calcul/rounding/rounding.d.ts +19 -19
  36. package/lib/exercises/calcul/rounding/rounding.js +87 -87
  37. package/lib/exercises/calculLitteral/distributivity/allIdentities.d.ts +3 -3
  38. package/lib/exercises/calculLitteral/distributivity/allIdentities.js +27 -27
  39. package/lib/exercises/calculLitteral/distributivity/doubleDistributivity.d.ts +3 -3
  40. package/lib/exercises/calculLitteral/distributivity/doubleDistributivity.js +32 -32
  41. package/lib/exercises/calculLitteral/distributivity/firstIdentity.d.ts +3 -3
  42. package/lib/exercises/calculLitteral/distributivity/firstIdentity.js +33 -33
  43. package/lib/exercises/calculLitteral/distributivity/secondIdentity.d.ts +3 -3
  44. package/lib/exercises/calculLitteral/distributivity/secondIdentity.js +34 -34
  45. package/lib/exercises/calculLitteral/distributivity/simpleDistributivity.d.ts +3 -3
  46. package/lib/exercises/calculLitteral/distributivity/simpleDistributivity.js +34 -34
  47. package/lib/exercises/calculLitteral/distributivity/thirdIdentity.d.ts +3 -3
  48. package/lib/exercises/calculLitteral/distributivity/thirdIdentity.js +33 -33
  49. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.d.ts +3 -3
  50. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.js +47 -47
  51. package/lib/exercises/calculLitteral/equation/equationType1Exercise.d.ts +6 -6
  52. package/lib/exercises/calculLitteral/equation/equationType1Exercise.js +39 -39
  53. package/lib/exercises/calculLitteral/equation/equationType2Exercise.d.ts +6 -6
  54. package/lib/exercises/calculLitteral/equation/equationType2Exercise.js +42 -42
  55. package/lib/exercises/calculLitteral/equation/equationType3Exercise.d.ts +6 -6
  56. package/lib/exercises/calculLitteral/equation/equationType3Exercise.js +43 -43
  57. package/lib/exercises/calculLitteral/equation/equationType4Exercise.d.ts +6 -6
  58. package/lib/exercises/calculLitteral/equation/equationType4Exercise.js +45 -45
  59. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.d.ts +3 -3
  60. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.js +30 -30
  61. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.d.ts +3 -3
  62. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.js +32 -32
  63. package/lib/exercises/calculLitteral/equation/fractionEquation.d.ts +4 -0
  64. package/lib/exercises/calculLitteral/equation/fractionEquation.d.ts.map +1 -0
  65. package/lib/exercises/calculLitteral/equation/fractionEquation.js +39 -0
  66. package/lib/exercises/calculLitteral/equation/multiplicationEquation.d.ts +4 -0
  67. package/lib/exercises/calculLitteral/equation/multiplicationEquation.d.ts.map +1 -0
  68. package/lib/exercises/calculLitteral/equation/multiplicationEquation.js +39 -0
  69. package/lib/exercises/calculLitteral/factorisation/factoIdRmq1.d.ts +3 -3
  70. package/lib/exercises/calculLitteral/factorisation/factoIdRmq1.js +34 -34
  71. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.d.ts +3 -3
  72. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.js +35 -35
  73. package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.d.ts +3 -3
  74. package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.js +34 -34
  75. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.d.ts +6 -6
  76. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.js +40 -40
  77. package/lib/exercises/conversion/aeraConversion.d.ts +3 -3
  78. package/lib/exercises/conversion/aeraConversion.js +32 -32
  79. package/lib/exercises/conversion/capacityConversion.d.ts +3 -3
  80. package/lib/exercises/conversion/capacityConversion.js +30 -30
  81. package/lib/exercises/conversion/lengthConversion.d.ts +3 -3
  82. package/lib/exercises/conversion/lengthConversion.js +30 -30
  83. package/lib/exercises/conversion/massConversion.d.ts +3 -3
  84. package/lib/exercises/conversion/massConversion.js +30 -30
  85. package/lib/exercises/conversion/volumeCapacityConversion.d.ts +3 -3
  86. package/lib/exercises/conversion/volumeCapacityConversion.js +47 -47
  87. package/lib/exercises/conversion/volumeConversion.d.ts +3 -3
  88. package/lib/exercises/conversion/volumeConversion.js +32 -32
  89. package/lib/exercises/derivation/derivative/affineDerivative.d.ts +4 -0
  90. package/lib/exercises/derivation/derivative/affineDerivative.d.ts.map +1 -0
  91. package/lib/exercises/derivation/derivative/affineDerivative.js +27 -0
  92. package/lib/exercises/derivation/derivative/constanteDerivative.d.ts +3 -3
  93. package/lib/exercises/derivation/derivative/constanteDerivative.js +27 -27
  94. package/lib/exercises/derivation/derivative/firstDegreeDerivative.d.ts +3 -3
  95. package/lib/exercises/derivation/derivative/firstDegreeDerivative.js +29 -29
  96. package/lib/exercises/derivation/derivative/inverseFunctionDerivative.d.ts +3 -3
  97. package/lib/exercises/derivation/derivative/inverseFunctionDerivative.js +27 -27
  98. package/lib/exercises/derivation/derivative/powerFunctionDerivative.d.ts +3 -3
  99. package/lib/exercises/derivation/derivative/powerFunctionDerivative.js +35 -35
  100. package/lib/exercises/derivation/derivative/rootFunctionDerivative.d.ts +3 -3
  101. package/lib/exercises/derivation/derivative/rootFunctionDerivative.js +40 -40
  102. package/lib/exercises/derivation/derivative/secondDegreeDerivative.d.ts +3 -3
  103. package/lib/exercises/derivation/derivative/secondDegreeDerivative.js +30 -30
  104. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.d.ts +3 -3
  105. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.js +33 -33
  106. package/lib/exercises/derivation/derivative/thridDegreeDerivative.d.ts +1 -0
  107. package/lib/exercises/derivation/derivative/thridDegreeDerivative.d.ts.map +1 -0
  108. package/lib/exercises/derivation/derivative/thridDegreeDerivative.js +1 -0
  109. package/lib/exercises/derivation/derivative/usualderivative.d.ts +3 -3
  110. package/lib/exercises/derivation/derivative/usualderivative.js +36 -36
  111. package/lib/exercises/exercise.d.ts +21 -21
  112. package/lib/exercises/exercise.js +7 -7
  113. package/lib/exercises/exercises.d.ts +1 -1
  114. package/lib/exercises/exercises.d.ts.map +1 -1
  115. package/lib/exercises/exercises.js +224 -198
  116. package/lib/exercises/geometry/cartesian/derivativeNumberReading.d.ts +3 -3
  117. package/lib/exercises/geometry/cartesian/derivativeNumberReading.js +51 -51
  118. package/lib/exercises/geometry/cartesian/derivativeNumberReading2.js +91 -91
  119. package/lib/exercises/geometry/cartesian/leadingCoefficient.d.ts +3 -3
  120. package/lib/exercises/geometry/cartesian/leadingCoefficient.js +60 -60
  121. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV1.d.ts +4 -0
  122. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV1.d.ts.map +1 -0
  123. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV1.js +30 -0
  124. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV2.d.ts +4 -0
  125. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV2.d.ts.map +1 -0
  126. package/lib/exercises/geometry/cartesian/leadingCoefficientCalculV2.js +29 -0
  127. package/lib/exercises/geometry/cartesian/midpoint.d.ts +3 -3
  128. package/lib/exercises/geometry/cartesian/midpoint.js +31 -31
  129. package/lib/exercises/geometry/euclidean/TriangleArea.d.ts +4 -0
  130. package/lib/exercises/geometry/euclidean/TriangleArea.d.ts.map +1 -0
  131. package/lib/exercises/geometry/euclidean/TriangleArea.js +53 -0
  132. package/lib/exercises/geometry/euclidean/pythagore.d.ts +4 -0
  133. package/lib/exercises/geometry/euclidean/pythagore.d.ts.map +1 -0
  134. package/lib/exercises/geometry/euclidean/pythagore.js +31 -0
  135. package/lib/exercises/geometry/euclidean/pythagoreCalcul.d.ts +4 -0
  136. package/lib/exercises/geometry/euclidean/pythagoreCalcul.d.ts.map +1 -0
  137. package/lib/exercises/geometry/euclidean/pythagoreCalcul.js +60 -0
  138. package/lib/exercises/geometry/euclidean/rightTriangleArea.d.ts +4 -0
  139. package/lib/exercises/geometry/euclidean/rightTriangleArea.d.ts.map +1 -0
  140. package/lib/exercises/geometry/euclidean/rightTriangleArea.js +39 -0
  141. package/lib/exercises/geometry/euclidean/thales.d.ts +4 -0
  142. package/lib/exercises/geometry/euclidean/thales.d.ts.map +1 -0
  143. package/lib/exercises/geometry/euclidean/thales.js +67 -0
  144. package/lib/exercises/geometry/euclidean/thalesCalcul.d.ts +4 -0
  145. package/lib/exercises/geometry/euclidean/thalesCalcul.d.ts.map +1 -0
  146. package/lib/exercises/geometry/euclidean/thalesCalcul.js +104 -0
  147. package/lib/exercises/geometry/euclidean/trigonometry.d.ts +4 -0
  148. package/lib/exercises/geometry/euclidean/trigonometry.d.ts.map +1 -0
  149. package/lib/exercises/geometry/euclidean/trigonometry.js +55 -0
  150. package/lib/exercises/geometry/euclidean/trigonometryAngleCalcul.d.ts +4 -0
  151. package/lib/exercises/geometry/euclidean/trigonometryAngleCalcul.d.ts.map +1 -0
  152. package/lib/exercises/geometry/euclidean/trigonometryAngleCalcul.js +42 -0
  153. package/lib/exercises/geometry/euclidean/trigonometrySideCalcul.d.ts +4 -0
  154. package/lib/exercises/geometry/euclidean/trigonometrySideCalcul.d.ts.map +1 -0
  155. package/lib/exercises/geometry/euclidean/trigonometrySideCalcul.js +52 -0
  156. package/lib/exercises/geometry/vectors/scalarProductViaCoords.d.ts +3 -3
  157. package/lib/exercises/geometry/vectors/scalarProductViaCoords.js +30 -30
  158. package/lib/exercises/geometry/vectors/scalarProductViaNorms.js +27 -27
  159. package/lib/exercises/percent/applyPercent.d.ts +3 -3
  160. package/lib/exercises/percent/applyPercent.js +41 -41
  161. package/lib/exercises/percent/averageEvolutionRate.d.ts +3 -3
  162. package/lib/exercises/percent/averageEvolutionRate.js +30 -30
  163. package/lib/exercises/percent/globalPercent.d.ts +3 -3
  164. package/lib/exercises/percent/globalPercent.js +44 -44
  165. package/lib/exercises/percent/reciprocalPercentage.d.ts +3 -3
  166. package/lib/exercises/percent/reciprocalPercentage.js +32 -32
  167. package/lib/exercises/powers/powersDivision.d.ts +7 -7
  168. package/lib/exercises/powers/powersDivision.js +46 -46
  169. package/lib/exercises/powers/powersOfTenToDecimal.d.ts +6 -6
  170. package/lib/exercises/powers/powersOfTenToDecimal.js +34 -34
  171. package/lib/exercises/powers/powersPower.d.ts +7 -7
  172. package/lib/exercises/powers/powersPower.js +45 -45
  173. package/lib/exercises/powers/powersProduct.d.ts +7 -7
  174. package/lib/exercises/powers/powersProduct.js +46 -46
  175. package/lib/exercises/powers/scientificToDecimal.d.ts +6 -6
  176. package/lib/exercises/powers/scientificToDecimal.js +39 -39
  177. package/lib/exercises/proba/conditionalProbability.d.ts +3 -3
  178. package/lib/exercises/proba/conditionalProbability.js +74 -74
  179. package/lib/exercises/proba/marginalAndConditionalFrequency.d.ts +3 -3
  180. package/lib/exercises/proba/marginalAndConditionalFrequency.js +81 -81
  181. package/lib/exercises/proba/probabilityTree.d.ts +3 -3
  182. package/lib/exercises/proba/probabilityTree.js +105 -105
  183. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.d.ts +3 -3
  184. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.js +31 -31
  185. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.d.ts +3 -3
  186. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.js +31 -31
  187. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.d.ts +3 -3
  188. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.js +31 -31
  189. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.d.ts +3 -3
  190. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.js +30 -30
  191. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts +3 -3
  192. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.js +30 -30
  193. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.d.ts +3 -3
  194. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.js +40 -40
  195. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.d.ts +3 -3
  196. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.js +36 -36
  197. package/lib/exercises/sequences/geometric/geometricFindExplicitFormula.d.ts +3 -3
  198. package/lib/exercises/sequences/geometric/geometricFindExplicitFormula.js +35 -35
  199. package/lib/exercises/sequences/geometric/geometricFindReason.d.ts +3 -3
  200. package/lib/exercises/sequences/geometric/geometricFindReason.js +31 -31
  201. package/lib/exercises/sequences/geometric/geometricReasonUsage.d.ts +3 -3
  202. package/lib/exercises/sequences/geometric/geometricReasonUsage.js +30 -30
  203. package/lib/exercises/sequences/geometric/geometricRecurrenceFormulaUsage.d.ts +7 -7
  204. package/lib/exercises/sequences/geometric/geometricRecurrenceFormulaUsage.js +30 -30
  205. package/lib/exercises/squareRoots/simpifySquareRoot.d.ts +3 -3
  206. package/lib/exercises/squareRoots/simpifySquareRoot.js +29 -29
  207. package/lib/exercises/trigonometry/mainRemarkableValues.d.ts +3 -3
  208. package/lib/exercises/trigonometry/mainRemarkableValues.js +30 -30
  209. package/lib/exercises/trigonometry/remarkableValues.d.ts +3 -3
  210. package/lib/exercises/trigonometry/remarkableValues.js +30 -30
  211. package/lib/exercises/utils/getDistinctQuestions.d.ts +3 -3
  212. package/lib/exercises/utils/getDistinctQuestions.js +28 -28
  213. package/lib/geometry/point.js +27 -0
  214. package/lib/geometry/vector.js +31 -0
  215. package/lib/index.d.ts +2 -2
  216. package/lib/index.js +6 -6
  217. package/lib/math/geometry/droite.d.ts +19 -19
  218. package/lib/math/geometry/droite.d.ts.map +1 -1
  219. package/lib/math/geometry/droite.js +62 -61
  220. package/lib/math/geometry/point.d.ts +29 -25
  221. package/lib/math/geometry/point.d.ts.map +1 -1
  222. package/lib/math/geometry/point.js +55 -40
  223. package/lib/math/geometry/triangles.d.ts +54 -0
  224. package/lib/math/geometry/triangles.d.ts.map +1 -0
  225. package/lib/math/geometry/triangles.js +183 -0
  226. package/lib/math/geometry/vector.d.ts +15 -15
  227. package/lib/math/geometry/vector.js +31 -31
  228. package/lib/math/numbers/decimals/decimal.d.ts +24 -24
  229. package/lib/math/numbers/decimals/decimal.js +140 -140
  230. package/lib/math/numbers/epsilon.d.ts +1 -1
  231. package/lib/math/numbers/epsilon.js +10 -10
  232. package/lib/math/numbers/integer/integer.d.ts +14 -14
  233. package/lib/math/numbers/integer/integer.js +68 -68
  234. package/lib/math/numbers/integer/power.d.ts +13 -13
  235. package/lib/math/numbers/integer/power.js +52 -52
  236. package/lib/math/numbers/nombre.d.ts +13 -13
  237. package/lib/math/numbers/nombre.js +10 -10
  238. package/lib/math/numbers/rationals/rational.d.ts +25 -25
  239. package/lib/math/numbers/rationals/rational.js +113 -113
  240. package/lib/math/numbers/reals/real.d.ts +9 -9
  241. package/lib/math/numbers/reals/real.js +16 -16
  242. package/lib/math/numbers/reals/squareRoot.d.ts +18 -18
  243. package/lib/math/numbers/reals/squareRoot.js +63 -63
  244. package/lib/math/polynomials/affine.d.ts +15 -15
  245. package/lib/math/polynomials/affine.js +42 -42
  246. package/lib/math/polynomials/polynomial.d.ts +25 -25
  247. package/lib/math/polynomials/polynomial.js +131 -131
  248. package/lib/math/sequences/arithmeticSequence.js +1 -1
  249. package/lib/math/sequences/geometricSequence.d.ts +3 -3
  250. package/lib/math/sequences/geometricSequence.js +8 -8
  251. package/lib/math/sequences/sequence.d.ts +22 -22
  252. package/lib/math/sequences/sequence.js +21 -21
  253. package/lib/math/sets/discreteSet.d.ts +10 -10
  254. package/lib/math/sets/discreteSet.js +28 -28
  255. package/lib/math/sets/emptySet.js +6 -6
  256. package/lib/math/sets/intervals/intervals.d.ts +26 -26
  257. package/lib/math/sets/intervals/intervals.js +104 -104
  258. package/lib/math/sets/mathSet.d.ts +7 -7
  259. package/lib/math/sets/mathSet.js +10 -10
  260. package/lib/math/sets/mathSetInterface.d.ts +5 -5
  261. package/lib/math/sets/mathSetInterface.js +2 -2
  262. package/lib/math/trigonometry/remarkableValue.d.ts +10 -10
  263. package/lib/math/trigonometry/remarkableValue.js +29 -29
  264. package/lib/math/trigonometry/remarkableValues.d.ts +2 -2
  265. package/lib/math/trigonometry/remarkableValues.js +51 -51
  266. package/lib/math/utils/arithmetic/coprimesOf.d.ts +1 -1
  267. package/lib/math/utils/arithmetic/coprimesOf.js +13 -13
  268. package/lib/math/utils/arithmetic/dividersOf.d.ts +1 -1
  269. package/lib/math/utils/arithmetic/dividersOf.js +12 -12
  270. package/lib/math/utils/arithmetic/gcd.d.ts +1 -1
  271. package/lib/math/utils/arithmetic/gcd.js +7 -7
  272. package/lib/math/utils/arithmetic/isSquare.d.ts +1 -1
  273. package/lib/math/utils/arithmetic/isSquare.js +7 -7
  274. package/lib/math/utils/arithmetic/lcd.d.ts +1 -1
  275. package/lib/math/utils/arithmetic/lcd.js +12 -12
  276. package/lib/math/utils/arithmetic/nonCoprimesOf.d.ts +1 -1
  277. package/lib/math/utils/arithmetic/nonCoprimesOf.js +13 -13
  278. package/lib/math/utils/arithmetic/nonDividersOf.d.ts +1 -1
  279. package/lib/math/utils/arithmetic/nonDividersOf.js +14 -14
  280. package/lib/math/utils/arithmetic/primeFactors.d.ts +5 -5
  281. package/lib/math/utils/arithmetic/primeFactors.js +22 -22
  282. package/lib/math/utils/decimals/decimalPartLengthOf.d.ts +1 -1
  283. package/lib/math/utils/decimals/decimalPartLengthOf.js +14 -14
  284. package/lib/math/utils/random/randTupleInt.d.ts +13 -13
  285. package/lib/math/utils/random/randTupleInt.js +30 -30
  286. package/lib/math/utils/random/randint.d.ts +4 -4
  287. package/lib/math/utils/random/randint.js +18 -18
  288. package/lib/math/utils/round.d.ts +1 -1
  289. package/lib/math/utils/round.js +8 -8
  290. package/lib/mathutils/arithmetic/coprimesOf.js +13 -0
  291. package/lib/mathutils/arithmetic/dividersOf.js +12 -0
  292. package/lib/mathutils/arithmetic/gcd.js +7 -0
  293. package/lib/mathutils/arithmetic/isSquare.js +7 -0
  294. package/lib/mathutils/arithmetic/lcd.js +12 -0
  295. package/lib/mathutils/arithmetic/nonCoprimesOf.js +13 -0
  296. package/lib/mathutils/arithmetic/nonDividersOf.js +14 -0
  297. package/lib/mathutils/arithmetic/primeFactors.js +22 -0
  298. package/lib/mathutils/decimals/decimalPartLengthOf.js +14 -0
  299. package/lib/mathutils/random/randTupleInt.js +30 -0
  300. package/lib/mathutils/random/randint.js +18 -0
  301. package/lib/mathutils/round.js +8 -0
  302. package/lib/numbers/decimals/decimal.js +140 -0
  303. package/lib/numbers/epsilon.js +10 -0
  304. package/lib/numbers/integer/integer.js +68 -0
  305. package/lib/numbers/integer/power.js +52 -0
  306. package/lib/numbers/nombre.js +10 -0
  307. package/lib/numbers/rationals/rational.js +113 -0
  308. package/lib/numbers/reals/real.js +16 -0
  309. package/lib/numbers/reals/squareRoot.js +63 -0
  310. package/lib/polynomials/affine.js +42 -0
  311. package/lib/polynomials/polynomial.js +125 -0
  312. package/lib/server.d.ts +1 -1
  313. package/lib/server.js +53 -53
  314. package/lib/sets/discreteSet.js +28 -0
  315. package/lib/sets/emptySet.js +6 -0
  316. package/lib/sets/intervals/intervals.js +108 -0
  317. package/lib/sets/intervals/union.js +1 -0
  318. package/lib/sets/mathSet.js +10 -0
  319. package/lib/sets/mathSetInterface.js +2 -0
  320. package/lib/tree/nodes/functions/cosNode.d.ts +9 -9
  321. package/lib/tree/nodes/functions/cosNode.js +21 -21
  322. package/lib/tree/nodes/functions/functionNode.d.ts +14 -14
  323. package/lib/tree/nodes/functions/functionNode.js +20 -20
  324. package/lib/tree/nodes/functions/oppositeNode.d.ts +7 -7
  325. package/lib/tree/nodes/functions/oppositeNode.js +26 -26
  326. package/lib/tree/nodes/functions/sinNode.js +1 -1
  327. package/lib/tree/nodes/functions/sqrtNode.d.ts +8 -8
  328. package/lib/tree/nodes/functions/sqrtNode.js +18 -18
  329. package/lib/tree/nodes/node.d.ts +12 -12
  330. package/lib/tree/nodes/node.js +11 -11
  331. package/lib/tree/nodes/numbers/constantNode.d.ts +9 -9
  332. package/lib/tree/nodes/numbers/constantNode.js +18 -18
  333. package/lib/tree/nodes/numbers/numberNode.d.ts +10 -10
  334. package/lib/tree/nodes/numbers/numberNode.js +19 -19
  335. package/lib/tree/nodes/numbers/piNode.d.ts +2 -2
  336. package/lib/tree/nodes/numbers/piNode.js +5 -5
  337. package/lib/tree/nodes/operators/addNode.d.ts +7 -7
  338. package/lib/tree/nodes/operators/addNode.js +19 -19
  339. package/lib/tree/nodes/operators/divideNode.d.ts +11 -11
  340. package/lib/tree/nodes/operators/divideNode.js +34 -34
  341. package/lib/tree/nodes/operators/equalNode.d.ts +7 -7
  342. package/lib/tree/nodes/operators/equalNode.js +16 -16
  343. package/lib/tree/nodes/operators/fractionNode.d.ts +11 -11
  344. package/lib/tree/nodes/operators/fractionNode.js +20 -20
  345. package/lib/tree/nodes/operators/multiplyNode.d.ts +7 -7
  346. package/lib/tree/nodes/operators/multiplyNode.js +43 -43
  347. package/lib/tree/nodes/operators/operatorNode.d.ts +21 -21
  348. package/lib/tree/nodes/operators/operatorNode.js +35 -35
  349. package/lib/tree/nodes/operators/powerNode.d.ts +7 -7
  350. package/lib/tree/nodes/operators/powerNode.js +33 -33
  351. package/lib/tree/nodes/operators/substractNode.d.ts +7 -7
  352. package/lib/tree/nodes/operators/substractNode.js +24 -24
  353. package/lib/tree/nodes/variables/variableNode.d.ts +8 -8
  354. package/lib/tree/nodes/variables/variableNode.js +19 -19
  355. package/lib/tree/parsers/derivateParser.js +62 -62
  356. package/lib/tree/parsers/latexParser.js +110 -0
  357. package/lib/tree/parsers/simplify.d.ts +2 -2
  358. package/lib/tree/parsers/simplify.js +52 -52
  359. package/lib/utils/arrayEqual.d.ts +1 -1
  360. package/lib/utils/arrayEqual.js +13 -13
  361. package/lib/utils/coin.js +7 -0
  362. package/lib/utils/coinFlip.d.ts +1 -1
  363. package/lib/utils/coinFlip.js +7 -7
  364. package/lib/utils/random.d.ts +1 -1
  365. package/lib/utils/random.js +7 -7
  366. package/lib/utils/shuffle.d.ts +1 -1
  367. package/lib/utils/shuffle.js +15 -15
  368. package/package.json +50 -50
@@ -1,30 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRemarkableValues = exports.remarkableValuesExercise = void 0;
4
- const remarkableValue_1 = require("../../math/trigonometry/remarkableValue");
5
- const coinFlip_1 = require("../../utils/coinFlip");
6
- const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
7
- exports.remarkableValuesExercise = {
8
- id: 'remarkableValues',
9
- connector: '=',
10
- instruction: 'Donner la valeur exacte :',
11
- label: 'Valeurs remarquables de cos et sin',
12
- levels: ['1', '0'],
13
- isSingleStep: false,
14
- section: 'Trigonométrie',
15
- generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getRemarkableValues, nb),
16
- keys: ['pi', 'cos', 'sin'],
17
- };
18
- function getRemarkableValues() {
19
- const isCos = (0, coinFlip_1.coinFlip)();
20
- const remarkableValue = remarkableValue_1.RemarkableValueConstructor.simplifiable();
21
- const question = {
22
- startStatement: isCos
23
- ? `\\cos\\left(${remarkableValue.angle.toTex()}\\right)`
24
- : `\\sin\\left(${remarkableValue.angle.toTex()}\\right)`,
25
- answer: isCos ? remarkableValue.cos.toTex() : remarkableValue.sin.toTex(),
26
- keys: ['pi', 'cos', 'sin'],
27
- };
28
- return question;
29
- }
30
- exports.getRemarkableValues = getRemarkableValues;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRemarkableValues = exports.remarkableValuesExercise = void 0;
4
+ const remarkableValue_1 = require("../../math/trigonometry/remarkableValue");
5
+ const coinFlip_1 = require("../../utils/coinFlip");
6
+ const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
7
+ exports.remarkableValuesExercise = {
8
+ id: 'remarkableValues',
9
+ connector: '=',
10
+ instruction: 'Donner la valeur exacte :',
11
+ label: 'Valeurs remarquables de cos et sin',
12
+ levels: ['1', '0'],
13
+ isSingleStep: false,
14
+ section: 'Trigonométrie',
15
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getRemarkableValues, nb),
16
+ keys: ['pi', 'cos', 'sin'],
17
+ };
18
+ function getRemarkableValues() {
19
+ const isCos = (0, coinFlip_1.coinFlip)();
20
+ const remarkableValue = remarkableValue_1.RemarkableValueConstructor.simplifiable();
21
+ const question = {
22
+ startStatement: isCos
23
+ ? `\\cos\\left(${remarkableValue.angle.toTex()}\\right)`
24
+ : `\\sin\\left(${remarkableValue.angle.toTex()}\\right)`,
25
+ answer: isCos ? remarkableValue.cos.toTex() : remarkableValue.sin.toTex(),
26
+ keys: ['pi', 'cos', 'sin'],
27
+ };
28
+ return question;
29
+ }
30
+ exports.getRemarkableValues = getRemarkableValues;
@@ -1,4 +1,4 @@
1
- import { Question } from '../exercise';
2
- export declare function equalTab<T>(array1: T[], array2: T[]): boolean;
3
- export declare const getDistinctQuestions: (generator: Function, nb: number) => Question[];
1
+ import { Question } from '../exercise';
2
+ export declare function equalTab<T>(array1: T[], array2: T[]): boolean;
3
+ export declare const getDistinctQuestions: (generator: Function, nb: number) => Question[];
4
4
  //# sourceMappingURL=getDistinctQuestions.d.ts.map
@@ -1,28 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDistinctQuestions = exports.equalTab = void 0;
4
- function equalTab(array1, array2) {
5
- if (!array1 || !array2)
6
- return false;
7
- if (array1.length !== array2.length)
8
- return false;
9
- for (let i = 0; i < array1.length; i++)
10
- if (array1[i] !== array2[i])
11
- return false;
12
- return true;
13
- }
14
- exports.equalTab = equalTab;
15
- const getDistinctQuestions = (generator, nb) => {
16
- const res = [];
17
- for (let i = 0; i < nb; i++) {
18
- let question;
19
- do {
20
- question = generator();
21
- } while (res.some((q) => q.instruction === question.instruction &&
22
- q.startStatement === question.startStatement &&
23
- equalTab(q.commands, question.commands)));
24
- res.push(question);
25
- }
26
- return res;
27
- };
28
- exports.getDistinctQuestions = getDistinctQuestions;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDistinctQuestions = exports.equalTab = void 0;
4
+ function equalTab(array1, array2) {
5
+ if (!array1 || !array2)
6
+ return false;
7
+ if (array1.length !== array2.length)
8
+ return false;
9
+ for (let i = 0; i < array1.length; i++)
10
+ if (array1[i] !== array2[i])
11
+ return false;
12
+ return true;
13
+ }
14
+ exports.equalTab = equalTab;
15
+ const getDistinctQuestions = (generator, nb) => {
16
+ const res = [];
17
+ for (let i = 0; i < nb; i++) {
18
+ let question;
19
+ do {
20
+ question = generator();
21
+ } while (res.some((q) => q.instruction === question.instruction &&
22
+ q.startStatement === question.startStatement &&
23
+ equalTab(q.commands, question.commands)));
24
+ res.push(question);
25
+ }
26
+ return res;
27
+ };
28
+ exports.getDistinctQuestions = getDistinctQuestions;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Point = exports.PointConstructor = void 0;
4
+ const numberNode_1 = require("../tree/nodes/numbers/numberNode");
5
+ const addNode_1 = require("../tree/nodes/operators/addNode");
6
+ const fractionNode_1 = require("../tree/nodes/operators/fractionNode");
7
+ const simplify_1 = require("../tree/parsers/simplify");
8
+ class PointConstructor {
9
+ }
10
+ exports.PointConstructor = PointConstructor;
11
+ class Point {
12
+ constructor(name, x, y) {
13
+ this.name = name;
14
+ this.x = x;
15
+ this.y = y;
16
+ }
17
+ toTex() {
18
+ return `${this.name}`;
19
+ }
20
+ toTexWithCoords() {
21
+ return `${this.name}\\left(${this.x.toTex()}; ${this.y.toTex()}\\right)`;
22
+ }
23
+ midpoint(B, name = 'I') {
24
+ return new Point(name, (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new addNode_1.AddNode(this.x, B.x), new numberNode_1.NumberNode(2))), (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new addNode_1.AddNode(this.y, B.y), new numberNode_1.NumberNode(2))));
25
+ }
26
+ }
27
+ exports.Point = Point;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Vector = exports.VectorConstructor = void 0;
4
+ const addNode_1 = require("../tree/nodes/operators/addNode");
5
+ const multiplyNode_1 = require("../tree/nodes/operators/multiplyNode");
6
+ const substractNode_1 = require("../tree/nodes/operators/substractNode");
7
+ const simplify_1 = require("../tree/parsers/simplify");
8
+ class VectorConstructor {
9
+ static fromPoints(origin, end) {
10
+ return new Vector(`${origin.name}${end.name}`, new substractNode_1.SubstractNode(end.x, origin.x), new substractNode_1.SubstractNode(end.y, origin.y));
11
+ }
12
+ }
13
+ exports.VectorConstructor = VectorConstructor;
14
+ class Vector {
15
+ constructor(name, x, y) {
16
+ this.name = name;
17
+ this.tex = `\\overrightarrow{${name}}`;
18
+ this.x = x;
19
+ this.y = y;
20
+ }
21
+ toTex() {
22
+ return `\\overrightarrow{${this.name}}`;
23
+ }
24
+ toTexWithCoords() {
25
+ return `\\overrightarrow{${this.name}}\\begin{pmatrix}${this.x.toTex()} \\\\ ${this.y.toTex()} \\end{pmatrix}`;
26
+ }
27
+ scalarProduct(v) {
28
+ return (0, simplify_1.simplifyNode)(new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(this.x, v.x), new multiplyNode_1.MultiplyNode(this.y, v.y)));
29
+ }
30
+ }
31
+ exports.Vector = Vector;
package/lib/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- declare const allExercises: import("./exercises/exercise").Exercise[];
2
- export { allExercises };
1
+ declare const allExercises: import("./exercises/exercise").Exercise[];
2
+ export { allExercises };
3
3
  //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.allExercises = void 0;
4
- const exercises_1 = require("./exercises/exercises");
5
- const allExercises = [...exercises_1.exercises];
6
- exports.allExercises = allExercises;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allExercises = void 0;
4
+ const exercises_1 = require("./exercises/exercises");
5
+ const allExercises = [...exercises_1.exercises];
6
+ exports.allExercises = allExercises;
@@ -1,20 +1,20 @@
1
- import { Node } from '../../tree/nodes/node';
2
- import { Point } from './point';
3
- export declare abstract class DroiteConstructor {
4
- static fromTwoPoints(A: Point, B: Point, name?: string): Droite;
5
- static fromPointAndSlope(A: Point, m: Node, name?: string): Droite;
6
- static fromPointAndAngle(A: Point, theta: Node, name?: string): Droite;
7
- }
8
- export declare class Droite {
9
- name: string;
10
- a: Node;
11
- b: Node;
12
- constructor(name: string | undefined, a: Node, b: Node);
13
- toTex(): string;
14
- toEquationForm(): string;
15
- toEquationExpression(): string;
16
- toPolynome(): string;
17
- getLeadingCoefficient(): string;
18
- intersection(D: Droite, name?: string): Point | void;
19
- }
1
+ import { Node } from '../../tree/nodes/node';
2
+ import { Point } from './point';
3
+ export declare abstract class DroiteConstructor {
4
+ static fromTwoPoints(A: Point, B: Point, name?: string): Droite;
5
+ static fromPointAndSlope(A: Point, m: Node, name?: string): Droite;
6
+ static fromPointAndAngle(A: Point, theta: Node, name?: string): Droite;
7
+ }
8
+ export declare class Droite {
9
+ name: string;
10
+ a: Node;
11
+ b: Node;
12
+ constructor(name: string | undefined, a: Node, b: Node);
13
+ toTex(): string;
14
+ toEquationForm(): string;
15
+ toEquationExpression(): string;
16
+ toPolynome(): string;
17
+ getLeadingCoefficient(): string;
18
+ intersection(D: Droite, name?: string): Point | void;
19
+ }
20
20
  //# sourceMappingURL=droite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"droite.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/droite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAQ7C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,8BAAsB,iBAAiB;IACrC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,SAAM,GAAG,MAAM;IAM5D,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,SAAM,GAAG,MAAM;IAI/D,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,SAAM,GAAG,MAAM;CAKpE;AAED,qBAAa,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,IAAI,CAAC;IACR,CAAC,EAAE,IAAI,CAAC;gBAEI,IAAI,oBAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI;IAOxC,KAAK,IAAI,MAAM;IAIf,cAAc,IAAI,MAAM;IAIxB,oBAAoB,IAAI,MAAM;IAI9B,UAAU,IAAI,MAAM;IAKpB,qBAAqB,IAAI,MAAM;IAI/B,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,KAAK,GAAG,IAAI;CAMlD"}
1
+ {"version":3,"file":"droite.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/droite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAQ7C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIhC,8BAAsB,iBAAiB;IACrC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,SAAM,GAAG,MAAM;IAM5D,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,SAAM,GAAG,MAAM;IAI/D,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,SAAM,GAAG,MAAM;CAKpE;AAED,qBAAa,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,IAAI,CAAC;IACR,CAAC,EAAE,IAAI,CAAC;gBAEI,IAAI,oBAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI;IAOxC,KAAK,IAAI,MAAM;IAIf,cAAc,IAAI,MAAM;IAIxB,oBAAoB,IAAI,MAAM;IAI9B,UAAU,IAAI,MAAM;IAKpB,qBAAqB,IAAI,MAAM;IAI/B,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,KAAK,GAAG,IAAI;CAMlD"}
@@ -1,61 +1,62 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Droite = exports.DroiteConstructor = void 0;
4
- const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
5
- const addNode_1 = require("../../tree/nodes/operators/addNode");
6
- const fractionNode_1 = require("../../tree/nodes/operators/fractionNode");
7
- const multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
8
- const substractNode_1 = require("../../tree/nodes/operators/substractNode");
9
- const simplify_1 = require("../../tree/parsers/simplify");
10
- const mathjs_1 = require("mathjs");
11
- const point_1 = require("./point");
12
- const polynomial_1 = require("../polynomials/polynomial");
13
- class DroiteConstructor {
14
- static fromTwoPoints(A, B, name = 'd') {
15
- const a = new fractionNode_1.FractionNode(new substractNode_1.SubstractNode(B.y, A.y), new substractNode_1.SubstractNode(B.x, A.x));
16
- const b = new substractNode_1.SubstractNode(A.y, new multiplyNode_1.MultiplyNode(a, A.x));
17
- return new Droite(name, (0, simplify_1.simplifyNode)(a), (0, simplify_1.simplifyNode)(b));
18
- }
19
- static fromPointAndSlope(A, m, name = 'd') {
20
- return new Droite(name, (0, simplify_1.simplifyNode)(m), (0, simplify_1.simplifyNode)(new substractNode_1.SubstractNode(A.y, new multiplyNode_1.MultiplyNode(m, A.x))));
21
- }
22
- static fromPointAndAngle(A, theta, name = 'd') {
23
- const m = new numberNode_1.NumberNode((0, mathjs_1.round)(Math.tan(parseFloat(theta.toMathString())), 2));
24
- const b = new substractNode_1.SubstractNode(A.y, new multiplyNode_1.MultiplyNode(m, A.x));
25
- return new Droite(name, (0, simplify_1.simplifyNode)(m), (0, simplify_1.simplifyNode)(b));
26
- }
27
- }
28
- exports.DroiteConstructor = DroiteConstructor;
29
- class Droite {
30
- constructor(name = 'D', a, b) {
31
- // ax + b
32
- this.name = name;
33
- this.a = a;
34
- this.b = b;
35
- }
36
- toTex() {
37
- return `${this.name}`;
38
- }
39
- toEquationForm() {
40
- return `${this.a.toTex()}x + ${this.b.toTex()}`;
41
- }
42
- toEquationExpression() {
43
- return `(${this.name}) : y = ${this.toEquationForm()}`; // (D) : y = ax + b
44
- }
45
- toPolynome() {
46
- const polynome = new polynomial_1.Polynomial([parseFloat(this.b.toMathString()), parseFloat(this.a.toMathString())], 'x');
47
- return polynome.toTex();
48
- }
49
- getLeadingCoefficient() {
50
- return `${(0, simplify_1.simplifyNode)(this.a).toTex()}`;
51
- }
52
- // TODO : ajouter des conditions ou cas ou les deux droites sont Parallèles
53
- intersection(D, name = 'P') {
54
- if ((0, mathjs_1.evaluate)(D.a.toMathString()) === (0, mathjs_1.evaluate)(this.a.toMathString()))
55
- return;
56
- const x = new fractionNode_1.FractionNode(new substractNode_1.SubstractNode(D.b, this.b), new substractNode_1.SubstractNode(this.a, D.a));
57
- const y = new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(this.a, x), this.b);
58
- return new point_1.Point(name, (0, simplify_1.simplifyNode)(x), (0, simplify_1.simplifyNode)(y));
59
- }
60
- }
61
- exports.Droite = Droite;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Droite = exports.DroiteConstructor = void 0;
4
+ const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
5
+ const addNode_1 = require("../../tree/nodes/operators/addNode");
6
+ const fractionNode_1 = require("../../tree/nodes/operators/fractionNode");
7
+ const multiplyNode_1 = require("../../tree/nodes/operators/multiplyNode");
8
+ const substractNode_1 = require("../../tree/nodes/operators/substractNode");
9
+ const simplify_1 = require("../../tree/parsers/simplify");
10
+ const mathjs_1 = require("mathjs");
11
+ const point_1 = require("./point");
12
+ const polynomial_1 = require("../polynomials/polynomial");
13
+ const round_1 = require("../utils/round");
14
+ class DroiteConstructor {
15
+ static fromTwoPoints(A, B, name = 'd') {
16
+ const a = new fractionNode_1.FractionNode(new substractNode_1.SubstractNode(B.y, A.y), new substractNode_1.SubstractNode(B.x, A.x));
17
+ const b = new substractNode_1.SubstractNode(A.y, new multiplyNode_1.MultiplyNode(a, A.x));
18
+ return new Droite(name, (0, simplify_1.simplifyNode)(a), (0, simplify_1.simplifyNode)(b));
19
+ }
20
+ static fromPointAndSlope(A, m, name = 'd') {
21
+ return new Droite(name, (0, simplify_1.simplifyNode)(m), (0, simplify_1.simplifyNode)(new substractNode_1.SubstractNode(A.y, new multiplyNode_1.MultiplyNode(m, A.x))));
22
+ }
23
+ static fromPointAndAngle(A, theta, name = 'd') {
24
+ const m = new numberNode_1.NumberNode((0, round_1.round)(Math.tan(parseFloat(theta.toMathString())), 2));
25
+ const b = new substractNode_1.SubstractNode(A.y, new multiplyNode_1.MultiplyNode(m, A.x));
26
+ return new Droite(name, (0, simplify_1.simplifyNode)(m), (0, simplify_1.simplifyNode)(b));
27
+ }
28
+ }
29
+ exports.DroiteConstructor = DroiteConstructor;
30
+ class Droite {
31
+ constructor(name = 'D', a, b) {
32
+ // ax + b
33
+ this.name = name;
34
+ this.a = a;
35
+ this.b = b;
36
+ }
37
+ toTex() {
38
+ return `${this.name}`;
39
+ }
40
+ toEquationForm() {
41
+ return `${this.a.toTex()}x + ${this.b.toTex()}`;
42
+ }
43
+ toEquationExpression() {
44
+ return `(${this.name}) : y = ${this.toEquationForm()}`; // (D) : y = ax + b
45
+ }
46
+ toPolynome() {
47
+ const polynome = new polynomial_1.Polynomial([(0, mathjs_1.evaluate)(this.b.toMathString()), (0, mathjs_1.evaluate)(this.a.toMathString())], 'x');
48
+ return polynome.toTex();
49
+ }
50
+ getLeadingCoefficient() {
51
+ return `${(0, simplify_1.simplifyNode)(this.a).toTex()}`;
52
+ }
53
+ // TODO : ajouter des conditions ou cas ou les deux droites sont Parallèles
54
+ intersection(D, name = 'P') {
55
+ if ((0, mathjs_1.evaluate)(D.a.toMathString()) === (0, mathjs_1.evaluate)(this.a.toMathString()))
56
+ return;
57
+ const x = new fractionNode_1.FractionNode(new substractNode_1.SubstractNode(D.b, this.b), new substractNode_1.SubstractNode(this.a, D.a));
58
+ const y = new addNode_1.AddNode(new multiplyNode_1.MultiplyNode(this.a, x), this.b);
59
+ return new point_1.Point(name, (0, simplify_1.simplifyNode)(x), (0, simplify_1.simplifyNode)(y));
60
+ }
61
+ }
62
+ exports.Droite = Droite;
@@ -1,26 +1,30 @@
1
- import { Node } from '../../tree/nodes/node';
2
- export declare abstract class PointConstructor {
3
- }
4
- export declare class Point {
5
- name: string;
6
- x: Node;
7
- y: Node;
8
- constructor(name: string, x: Node, y: Node);
9
- toTex(): string;
10
- toTexWithCoords(): string;
11
- midpoint(B: Point, name?: string): Point;
12
- }
13
- /**
14
- * Droite{
15
- * constructor :
16
- * depuis 2 points : A,B --> Droite
17
- * depuis 1 point + coeff dir --> Droite
18
- * avec une équation de droite --> Droite
19
- *
20
- * méthodes :
21
- * toEquation() --> y = 3x+2
22
- * toCoeffDIr --> a
23
-
24
- * }
25
- */
1
+ import { Node } from '../../tree/nodes/node';
2
+ export declare abstract class PointConstructor {
3
+ }
4
+ export declare class Point {
5
+ name: string;
6
+ x: Node;
7
+ y: Node;
8
+ constructor(name: string, x: Node, y: Node);
9
+ toTex(): string;
10
+ toTexWithCoords(): string;
11
+ getXnumber(): number;
12
+ getYnumber(): number;
13
+ midpoint(B: Point, name?: string): Point;
14
+ distanceTo(B: Point): number;
15
+ equalTo(B: Point): boolean;
16
+ }
17
+ /**
18
+ * Droite{
19
+ * constructor :
20
+ * depuis 2 points : A,B --> Droite
21
+ * depuis 1 point + coeff dir --> Droite
22
+ * avec une équation de droite --> Droite
23
+ *
24
+ * méthodes :
25
+ * toEquation() --> y = 3x+2
26
+ * toCoeffDIr --> a
27
+
28
+ * }
29
+ */
26
30
  //# sourceMappingURL=point.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAM7C,8BAAsB,gBAAgB;CAMrC;AAED,qBAAa,KAAK;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,IAAI,CAAC;IACR,CAAC,EAAE,IAAI,CAAC;gBACI,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI;IAM1C,KAAK,IAAI,MAAM;IAIf,eAAe,IAAI,MAAM;IAIzB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,SAAM,GAAG,KAAK;CAOtC;AAED;;;;;;;;;;;;GAYG"}
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAO7C,8BAAsB,gBAAgB;CAMrC;AAED,qBAAa,KAAK;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,IAAI,CAAC;IACR,CAAC,EAAE,IAAI,CAAC;gBACI,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI;IAM1C,KAAK,IAAI,MAAM;IAIf,eAAe,IAAI,MAAM;IAIzB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,SAAM,GAAG,KAAK;IAQrC,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM;IAM5B,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO;CAG3B;AAED;;;;;;;;;;;;GAYG"}
@@ -1,40 +1,55 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Point = exports.PointConstructor = void 0;
4
- const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
5
- const addNode_1 = require("../../tree/nodes/operators/addNode");
6
- const fractionNode_1 = require("../../tree/nodes/operators/fractionNode");
7
- const simplify_1 = require("../../tree/parsers/simplify");
8
- class PointConstructor {
9
- }
10
- exports.PointConstructor = PointConstructor;
11
- class Point {
12
- constructor(name, x, y) {
13
- this.name = name;
14
- this.x = x;
15
- this.y = y;
16
- }
17
- toTex() {
18
- return `${this.name}`;
19
- }
20
- toTexWithCoords() {
21
- return `${this.name}\\left(${this.x.toTex()}; ${this.y.toTex()}\\right)`;
22
- }
23
- midpoint(B, name = 'I') {
24
- return new Point(name, (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new addNode_1.AddNode(this.x, B.x), new numberNode_1.NumberNode(2))), (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new addNode_1.AddNode(this.y, B.y), new numberNode_1.NumberNode(2))));
25
- }
26
- }
27
- exports.Point = Point;
28
- /**
29
- * Droite{
30
- * constructor :
31
- * depuis 2 points : A,B --> Droite
32
- * depuis 1 point + coeff dir --> Droite
33
- * avec une équation de droite --> Droite
34
- *
35
- * méthodes :
36
- * toEquation() --> y = 3x+2
37
- * toCoeffDIr --> a
38
-
39
- * }
40
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Point = exports.PointConstructor = void 0;
4
+ const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
5
+ const addNode_1 = require("../../tree/nodes/operators/addNode");
6
+ const fractionNode_1 = require("../../tree/nodes/operators/fractionNode");
7
+ const simplify_1 = require("../../tree/parsers/simplify");
8
+ const mathjs_1 = require("mathjs");
9
+ class PointConstructor {
10
+ }
11
+ exports.PointConstructor = PointConstructor;
12
+ class Point {
13
+ constructor(name, x, y) {
14
+ this.name = name;
15
+ this.x = x;
16
+ this.y = y;
17
+ }
18
+ toTex() {
19
+ return `${this.name}`;
20
+ }
21
+ toTexWithCoords() {
22
+ return `${this.name}\\left(${this.x.toTex()}; ${this.y.toTex()}\\right)`;
23
+ }
24
+ getXnumber() {
25
+ return (0, mathjs_1.evaluate)(this.x.toMathString());
26
+ }
27
+ getYnumber() {
28
+ return (0, mathjs_1.evaluate)(this.y.toMathString());
29
+ }
30
+ midpoint(B, name = 'I') {
31
+ return new Point(name, (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new addNode_1.AddNode(this.x, B.x), new numberNode_1.NumberNode(2))), (0, simplify_1.simplifyNode)(new fractionNode_1.FractionNode(new addNode_1.AddNode(this.y, B.y), new numberNode_1.NumberNode(2))));
32
+ }
33
+ distanceTo(B) {
34
+ const dx = this.getXnumber() - B.getXnumber();
35
+ const dy = this.getYnumber() - B.getYnumber();
36
+ return Math.sqrt(dx ** 2 + dy ** 2);
37
+ }
38
+ equalTo(B) {
39
+ return this.getXnumber() === B.getXnumber() && this.getYnumber() === B.getYnumber();
40
+ }
41
+ }
42
+ exports.Point = Point;
43
+ /**
44
+ * Droite{
45
+ * constructor :
46
+ * depuis 2 points : A,B --> Droite
47
+ * depuis 1 point + coeff dir --> Droite
48
+ * avec une équation de droite --> Droite
49
+ *
50
+ * méthodes :
51
+ * toEquation() --> y = 3x+2
52
+ * toCoeffDIr --> a
53
+
54
+ * }
55
+ */
@@ -0,0 +1,54 @@
1
+ import { Point } from './point';
2
+ import { Node } from '../../tree/nodes/node';
3
+ export declare abstract class TriangleConstructor {
4
+ static createRandomRightTriangle({ minRapport, maxRapport, names }: {
5
+ minRapport?: number | undefined;
6
+ maxRapport?: number | undefined;
7
+ names?: string[] | undefined;
8
+ }): Triangle;
9
+ static createRandomTriangle({ minAngle, maxAngle, names }: {
10
+ minAngle?: number | undefined;
11
+ maxAngle?: number | undefined;
12
+ names?: string[] | undefined;
13
+ }): Triangle;
14
+ }
15
+ type GenerateCommandsProps = {
16
+ highlightedAngle?: string;
17
+ colorHighlightedAngle?: string;
18
+ highlightedSide?: string;
19
+ colorHighlightedSide?: string;
20
+ showLabels?: string[];
21
+ setCaptions?: string[];
22
+ showAxes?: boolean;
23
+ showGrid?: boolean;
24
+ };
25
+ export declare class Triangle {
26
+ vertexA: Point;
27
+ vertexB: Point;
28
+ vertexC: Point;
29
+ constructor(vertexA: Point, vertexB: Point, vertexC: Point);
30
+ getSideAnumber(): number;
31
+ getSideBnumber(): number;
32
+ getSideCnumber(): number;
33
+ getTriangleName(): string;
34
+ getSideAnode(): Node;
35
+ getSideBnode(): Node;
36
+ getSideCnode(): Node;
37
+ getAngleA(): number;
38
+ getAngleB(): number;
39
+ getAngleC(): number;
40
+ getPerimeter(): number;
41
+ getArea(): number;
42
+ isRight(): Boolean;
43
+ isEquilateral(): Boolean;
44
+ isIsosceles(): Boolean;
45
+ isScalene(): boolean;
46
+ getRightAngle(): string;
47
+ generateCommands({ highlightedAngle: highlightedAngle, colorHighlightedAngle: colorHighlightedAngle, showLabels: showLabels, setCaptions: setCaptions, highlightedSide: highlightedSide, colorHighlightedSide: colorHighlightedSide, showAxes, showGrid, }: GenerateCommandsProps): string[];
48
+ generateCoords(): number[];
49
+ getSideAName(): string;
50
+ getSideBName(): string;
51
+ getSideCName(): string;
52
+ }
53
+ export {};
54
+ //# sourceMappingURL=triangles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triangles.d.ts","sourceRoot":"","sources":["../../../src/math/geometry/triangles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAO7C,8BAAsB,mBAAmB;IACvC,MAAM,CAAC,yBAAyB,CAAC,EAAE,UAAc,EAAE,UAAc,EAAE,KAAuB,EAAE;;;;KAAA,GAAG,QAAQ;IAkBvG,MAAM,CAAC,oBAAoB,CAAC,EAAE,QAAe,EAAE,QAAc,EAAE,KAAuB,EAAE;;;;KAAA,GAAG,QAAQ;CAmBpG;AAED,KAAK,qBAAqB,GAAG;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAAa,QAAQ;IACnB,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;gBAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;IAM1D,cAAc,IAAI,MAAM;IAOxB,cAAc,IAAI,MAAM;IAOxB,cAAc,IAAI,MAAM;IAIxB,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,IAAI;IASpB,YAAY,IAAI,IAAI;IASpB,YAAY,IAAI,IAAI;IASpB,SAAS,IAAI,MAAM;IAOnB,SAAS,IAAI,MAAM;IAOnB,SAAS,IAAI,MAAM;IAOnB,YAAY,IAAI,MAAM;IAItB,OAAO,IAAI,MAAM;IAKjB,OAAO,IAAI,OAAO;IAOlB,aAAa,IAAI,OAAO;IAIxB,WAAW,IAAI,OAAO;IAQtB,SAAS,IAAI,OAAO;IAQpB,aAAa,IAAI,MAAM;IAOvB,gBAAgB,CAAC,EACf,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,EACR,QAAQ,GACT,EAAE,qBAAqB,GAAG,MAAM,EAAE;IAiDnC,cAAc,IAAI,MAAM,EAAE;IAS1B,YAAY,IAAI,MAAM;IAItB,YAAY,IAAI,MAAM;IAItB,YAAY,IAAI,MAAM;CAGvB"}