math-exercises 1.3.28 → 1.3.30

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 (339) 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.d.ts.map +1 -1
  51. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.js +47 -47
  52. package/lib/exercises/calculLitteral/equation/equationType1Exercise.d.ts +6 -6
  53. package/lib/exercises/calculLitteral/equation/equationType1Exercise.js +39 -39
  54. package/lib/exercises/calculLitteral/equation/equationType2Exercise.d.ts +6 -6
  55. package/lib/exercises/calculLitteral/equation/equationType2Exercise.js +42 -42
  56. package/lib/exercises/calculLitteral/equation/equationType3Exercise.d.ts +6 -6
  57. package/lib/exercises/calculLitteral/equation/equationType3Exercise.js +43 -43
  58. package/lib/exercises/calculLitteral/equation/equationType4Exercise.d.ts +6 -6
  59. package/lib/exercises/calculLitteral/equation/equationType4Exercise.js +45 -45
  60. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.d.ts +3 -3
  61. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.d.ts.map +1 -1
  62. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.js +30 -30
  63. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.d.ts +3 -3
  64. package/lib/exercises/calculLitteral/equation/firstDegreeGeneralEquation.js +32 -32
  65. package/lib/exercises/calculLitteral/factorisation/factoIdRmq1.d.ts +3 -3
  66. package/lib/exercises/calculLitteral/factorisation/factoIdRmq1.js +34 -34
  67. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.d.ts +3 -3
  68. package/lib/exercises/calculLitteral/factorisation/factoIdRmq2.js +35 -35
  69. package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.d.ts +3 -3
  70. package/lib/exercises/calculLitteral/factorisation/factoIdRmq3.js +34 -34
  71. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.d.ts +6 -6
  72. package/lib/exercises/calculLitteral/factorisation/factoType1Exercise.js +40 -40
  73. package/lib/exercises/conversion/aeraConversion.d.ts +4 -0
  74. package/lib/exercises/conversion/aeraConversion.d.ts.map +1 -0
  75. package/lib/exercises/conversion/aeraConversion.js +30 -0
  76. package/lib/exercises/conversion/capacityConversion.d.ts +4 -0
  77. package/lib/exercises/conversion/capacityConversion.d.ts.map +1 -0
  78. package/lib/exercises/conversion/capacityConversion.js +30 -0
  79. package/lib/exercises/conversion/lengthConversion.d.ts +4 -0
  80. package/lib/exercises/conversion/lengthConversion.d.ts.map +1 -0
  81. package/lib/exercises/conversion/lengthConversion.js +30 -0
  82. package/lib/exercises/conversion/massConversion.d.ts +4 -0
  83. package/lib/exercises/conversion/massConversion.d.ts.map +1 -0
  84. package/lib/exercises/conversion/massConversion.js +30 -0
  85. package/lib/exercises/conversion/volumeCapacityConversion.d.ts +4 -0
  86. package/lib/exercises/conversion/volumeCapacityConversion.d.ts.map +1 -0
  87. package/lib/exercises/conversion/volumeCapacityConversion.js +45 -0
  88. package/lib/exercises/conversion/volumeConversion.d.ts +4 -0
  89. package/lib/exercises/conversion/volumeConversion.d.ts.map +1 -0
  90. package/lib/exercises/conversion/volumeConversion.js +30 -0
  91. package/lib/exercises/derivation/derivative/affineDerivative.d.ts +4 -0
  92. package/lib/exercises/derivation/derivative/affineDerivative.d.ts.map +1 -0
  93. package/lib/exercises/derivation/derivative/affineDerivative.js +27 -0
  94. package/lib/exercises/derivation/derivative/constanteDerivative.d.ts +3 -3
  95. package/lib/exercises/derivation/derivative/constanteDerivative.js +27 -27
  96. package/lib/exercises/derivation/derivative/firstDegreeDerivative.d.ts +3 -3
  97. package/lib/exercises/derivation/derivative/firstDegreeDerivative.js +29 -29
  98. package/lib/exercises/derivation/derivative/inverseFunctionDerivative.d.ts +3 -3
  99. package/lib/exercises/derivation/derivative/inverseFunctionDerivative.js +27 -27
  100. package/lib/exercises/derivation/derivative/powerFunctionDerivative.d.ts +3 -3
  101. package/lib/exercises/derivation/derivative/powerFunctionDerivative.js +35 -35
  102. package/lib/exercises/derivation/derivative/rootFunctionDerivative.d.ts +3 -3
  103. package/lib/exercises/derivation/derivative/rootFunctionDerivative.js +40 -40
  104. package/lib/exercises/derivation/derivative/secondDegreeDerivative.d.ts +3 -3
  105. package/lib/exercises/derivation/derivative/secondDegreeDerivative.js +30 -30
  106. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.d.ts +3 -3
  107. package/lib/exercises/derivation/derivative/thirdDegreeDerivative.js +33 -33
  108. package/lib/exercises/derivation/derivative/thridDegreeDerivative.d.ts +1 -0
  109. package/lib/exercises/derivation/derivative/thridDegreeDerivative.d.ts.map +1 -0
  110. package/lib/exercises/derivation/derivative/thridDegreeDerivative.js +1 -0
  111. package/lib/exercises/derivation/derivative/usualderivative.d.ts +3 -3
  112. package/lib/exercises/derivation/derivative/usualderivative.d.ts.map +1 -1
  113. package/lib/exercises/derivation/derivative/usualderivative.js +36 -45
  114. package/lib/exercises/exercise.d.ts +20 -20
  115. package/lib/exercises/exercise.js +7 -7
  116. package/lib/exercises/exercises.d.ts +1 -1
  117. package/lib/exercises/exercises.d.ts.map +1 -1
  118. package/lib/exercises/exercises.js +198 -183
  119. package/lib/exercises/geometry/cartesian/derivativeNumberReading.d.ts +3 -3
  120. package/lib/exercises/geometry/cartesian/derivativeNumberReading.js +51 -51
  121. package/lib/exercises/geometry/cartesian/derivativeNumberReading2.js +91 -91
  122. package/lib/exercises/geometry/cartesian/leadingCoefficient.d.ts +3 -3
  123. package/lib/exercises/geometry/cartesian/leadingCoefficient.js +60 -60
  124. package/lib/exercises/geometry/cartesian/midpoint.d.ts +3 -3
  125. package/lib/exercises/geometry/cartesian/midpoint.js +31 -31
  126. package/lib/exercises/geometry/vectors/scalarProductViaCoords.d.ts +3 -3
  127. package/lib/exercises/geometry/vectors/scalarProductViaCoords.js +30 -30
  128. package/lib/exercises/geometry/vectors/scalarProductViaNorms.js +27 -27
  129. package/lib/exercises/percent/applyPercent.d.ts +3 -3
  130. package/lib/exercises/percent/applyPercent.d.ts.map +1 -1
  131. package/lib/exercises/percent/applyPercent.js +41 -41
  132. package/lib/exercises/percent/averageEvolutionRate.d.ts +3 -3
  133. package/lib/exercises/percent/averageEvolutionRate.d.ts.map +1 -1
  134. package/lib/exercises/percent/averageEvolutionRate.js +30 -30
  135. package/lib/exercises/percent/globalPercent.d.ts +3 -3
  136. package/lib/exercises/percent/globalPercent.js +44 -44
  137. package/lib/exercises/percent/reciprocalPercentage.d.ts +3 -3
  138. package/lib/exercises/percent/reciprocalPercentage.js +32 -32
  139. package/lib/exercises/powers/powersDivision.d.ts +7 -7
  140. package/lib/exercises/powers/powersDivision.js +46 -46
  141. package/lib/exercises/powers/powersOfTenToDecimal.d.ts +6 -6
  142. package/lib/exercises/powers/powersOfTenToDecimal.js +34 -34
  143. package/lib/exercises/powers/powersPower.d.ts +7 -7
  144. package/lib/exercises/powers/powersPower.js +45 -45
  145. package/lib/exercises/powers/powersProduct.d.ts +7 -7
  146. package/lib/exercises/powers/powersProduct.js +46 -46
  147. package/lib/exercises/powers/scientificToDecimal.d.ts +6 -6
  148. package/lib/exercises/powers/scientificToDecimal.js +39 -39
  149. package/lib/exercises/proba/conditionalProbability.d.ts +3 -3
  150. package/lib/exercises/proba/conditionalProbability.d.ts.map +1 -1
  151. package/lib/exercises/proba/conditionalProbability.js +74 -74
  152. package/lib/exercises/proba/marginalAndConditionalFrequency.d.ts +3 -3
  153. package/lib/exercises/proba/marginalAndConditionalFrequency.d.ts.map +1 -1
  154. package/lib/exercises/proba/marginalAndConditionalFrequency.js +81 -80
  155. package/lib/exercises/proba/probabilityTree.d.ts +3 -3
  156. package/lib/exercises/proba/probabilityTree.js +100 -100
  157. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.d.ts +3 -3
  158. package/lib/exercises/sequences/arithmetic/arithmeticExplicitFormulaUsage.js +31 -31
  159. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.d.ts +3 -3
  160. package/lib/exercises/sequences/arithmetic/arithmeticFindExplicitFormula.js +31 -31
  161. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.d.ts +3 -3
  162. package/lib/exercises/sequences/arithmetic/arithmeticFindReason.js +31 -31
  163. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.d.ts +3 -3
  164. package/lib/exercises/sequences/arithmetic/arithmeticReasonUsage.js +30 -30
  165. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.d.ts +3 -3
  166. package/lib/exercises/sequences/arithmetic/arithmeticRecurrenceFormulaUsage.js +30 -30
  167. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.d.ts +3 -3
  168. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.d.ts.map +1 -1
  169. package/lib/exercises/sequences/arithmetic/arithmeticThresholdFind.js +40 -41
  170. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.d.ts +3 -3
  171. package/lib/exercises/sequences/geometric/geometricExplicitFormulaUsage.js +36 -36
  172. package/lib/exercises/sequences/geometric/geometricFindExplicitFormula.d.ts +3 -3
  173. package/lib/exercises/sequences/geometric/geometricFindExplicitFormula.js +35 -35
  174. package/lib/exercises/sequences/geometric/geometricFindReason.d.ts +3 -3
  175. package/lib/exercises/sequences/geometric/geometricFindReason.js +31 -31
  176. package/lib/exercises/sequences/geometric/geometricReasonUsage.d.ts +3 -3
  177. package/lib/exercises/sequences/geometric/geometricReasonUsage.js +30 -30
  178. package/lib/exercises/sequences/geometric/geometricRecurrenceFormulaUsage.d.ts +7 -7
  179. package/lib/exercises/sequences/geometric/geometricRecurrenceFormulaUsage.js +30 -30
  180. package/lib/exercises/squareRoots/simpifySquareRoot.d.ts +3 -3
  181. package/lib/exercises/squareRoots/simpifySquareRoot.js +29 -29
  182. package/lib/exercises/trigonometry/mainRemarkableValues.d.ts +3 -3
  183. package/lib/exercises/trigonometry/mainRemarkableValues.js +30 -30
  184. package/lib/exercises/trigonometry/remarkableValues.d.ts +3 -3
  185. package/lib/exercises/trigonometry/remarkableValues.js +30 -30
  186. package/lib/exercises/utils/getDistinctQuestions.d.ts +3 -3
  187. package/lib/exercises/utils/getDistinctQuestions.js +28 -28
  188. package/lib/geometry/point.js +27 -0
  189. package/lib/geometry/vector.js +31 -0
  190. package/lib/index.d.ts +2 -2
  191. package/lib/index.js +6 -6
  192. package/lib/math/geometry/droite.d.ts +19 -19
  193. package/lib/math/geometry/droite.js +61 -61
  194. package/lib/math/geometry/point.d.ts +25 -12
  195. package/lib/math/geometry/point.d.ts.map +1 -1
  196. package/lib/math/geometry/point.js +40 -27
  197. package/lib/math/geometry/vector.d.ts +15 -15
  198. package/lib/math/geometry/vector.js +31 -31
  199. package/lib/math/numbers/decimals/decimal.d.ts +24 -24
  200. package/lib/math/numbers/decimals/decimal.js +140 -140
  201. package/lib/math/numbers/epsilon.d.ts +1 -1
  202. package/lib/math/numbers/epsilon.js +10 -10
  203. package/lib/math/numbers/integer/integer.d.ts +14 -14
  204. package/lib/math/numbers/integer/integer.js +68 -68
  205. package/lib/math/numbers/integer/power.d.ts +13 -13
  206. package/lib/math/numbers/integer/power.js +52 -52
  207. package/lib/math/numbers/nombre.d.ts +13 -13
  208. package/lib/math/numbers/nombre.js +10 -10
  209. package/lib/math/numbers/rationals/rational.d.ts +25 -25
  210. package/lib/math/numbers/rationals/rational.js +113 -113
  211. package/lib/math/numbers/reals/real.d.ts +9 -9
  212. package/lib/math/numbers/reals/real.js +16 -16
  213. package/lib/math/numbers/reals/squareRoot.d.ts +18 -18
  214. package/lib/math/numbers/reals/squareRoot.js +63 -63
  215. package/lib/math/polynomials/affine.d.ts +15 -15
  216. package/lib/math/polynomials/affine.js +42 -42
  217. package/lib/math/polynomials/polynomial.d.ts +25 -25
  218. package/lib/math/polynomials/polynomial.js +131 -131
  219. package/lib/math/sequences/arithmeticSequence.js +1 -1
  220. package/lib/math/sequences/geometricSequence.d.ts +3 -3
  221. package/lib/math/sequences/geometricSequence.js +8 -8
  222. package/lib/math/sequences/sequence.d.ts +22 -22
  223. package/lib/math/sequences/sequence.js +21 -21
  224. package/lib/math/sets/discreteSet.d.ts +10 -10
  225. package/lib/math/sets/discreteSet.js +28 -28
  226. package/lib/math/sets/emptySet.js +6 -6
  227. package/lib/math/sets/intervals/intervals.d.ts +26 -26
  228. package/lib/math/sets/intervals/intervals.js +104 -104
  229. package/lib/math/sets/mathSet.d.ts +7 -7
  230. package/lib/math/sets/mathSet.js +10 -10
  231. package/lib/math/sets/mathSetInterface.d.ts +5 -5
  232. package/lib/math/sets/mathSetInterface.js +2 -2
  233. package/lib/math/trigonometry/remarkableValue.d.ts +10 -10
  234. package/lib/math/trigonometry/remarkableValue.js +29 -29
  235. package/lib/math/trigonometry/remarkableValues.d.ts +2 -2
  236. package/lib/math/trigonometry/remarkableValues.js +51 -51
  237. package/lib/math/utils/arithmetic/coprimesOf.d.ts +1 -1
  238. package/lib/math/utils/arithmetic/coprimesOf.js +13 -13
  239. package/lib/math/utils/arithmetic/dividersOf.d.ts +1 -1
  240. package/lib/math/utils/arithmetic/dividersOf.js +12 -12
  241. package/lib/math/utils/arithmetic/gcd.d.ts +1 -1
  242. package/lib/math/utils/arithmetic/gcd.js +7 -7
  243. package/lib/math/utils/arithmetic/isSquare.d.ts +1 -1
  244. package/lib/math/utils/arithmetic/isSquare.js +7 -7
  245. package/lib/math/utils/arithmetic/lcd.d.ts +1 -1
  246. package/lib/math/utils/arithmetic/lcd.js +12 -12
  247. package/lib/math/utils/arithmetic/nonCoprimesOf.d.ts +1 -1
  248. package/lib/math/utils/arithmetic/nonCoprimesOf.js +13 -13
  249. package/lib/math/utils/arithmetic/nonDividersOf.d.ts +1 -1
  250. package/lib/math/utils/arithmetic/nonDividersOf.js +14 -14
  251. package/lib/math/utils/arithmetic/primeFactors.d.ts +5 -5
  252. package/lib/math/utils/arithmetic/primeFactors.js +22 -22
  253. package/lib/math/utils/decimals/decimalPartLengthOf.d.ts +1 -1
  254. package/lib/math/utils/decimals/decimalPartLengthOf.js +14 -14
  255. package/lib/math/utils/random/randTupleInt.d.ts +13 -13
  256. package/lib/math/utils/random/randTupleInt.js +30 -30
  257. package/lib/math/utils/random/randint.d.ts +4 -4
  258. package/lib/math/utils/random/randint.js +18 -18
  259. package/lib/math/utils/round.d.ts +1 -1
  260. package/lib/math/utils/round.js +8 -8
  261. package/lib/mathutils/arithmetic/coprimesOf.js +13 -0
  262. package/lib/mathutils/arithmetic/dividersOf.js +12 -0
  263. package/lib/mathutils/arithmetic/gcd.js +7 -0
  264. package/lib/mathutils/arithmetic/isSquare.js +7 -0
  265. package/lib/mathutils/arithmetic/lcd.js +12 -0
  266. package/lib/mathutils/arithmetic/nonCoprimesOf.js +13 -0
  267. package/lib/mathutils/arithmetic/nonDividersOf.js +14 -0
  268. package/lib/mathutils/arithmetic/primeFactors.js +22 -0
  269. package/lib/mathutils/decimals/decimalPartLengthOf.js +14 -0
  270. package/lib/mathutils/random/randTupleInt.js +30 -0
  271. package/lib/mathutils/random/randint.js +18 -0
  272. package/lib/mathutils/round.js +8 -0
  273. package/lib/numbers/decimals/decimal.js +140 -0
  274. package/lib/numbers/epsilon.js +10 -0
  275. package/lib/numbers/integer/integer.js +68 -0
  276. package/lib/numbers/integer/power.js +52 -0
  277. package/lib/numbers/nombre.js +10 -0
  278. package/lib/numbers/rationals/rational.js +113 -0
  279. package/lib/numbers/reals/real.js +16 -0
  280. package/lib/numbers/reals/squareRoot.js +63 -0
  281. package/lib/polynomials/affine.js +42 -0
  282. package/lib/polynomials/polynomial.js +125 -0
  283. package/lib/server.d.ts +1 -1
  284. package/lib/server.js +53 -53
  285. package/lib/sets/discreteSet.js +28 -0
  286. package/lib/sets/emptySet.js +6 -0
  287. package/lib/sets/intervals/intervals.js +108 -0
  288. package/lib/sets/intervals/union.js +1 -0
  289. package/lib/sets/mathSet.js +10 -0
  290. package/lib/sets/mathSetInterface.js +2 -0
  291. package/lib/tree/nodes/functions/cosNode.d.ts +9 -9
  292. package/lib/tree/nodes/functions/cosNode.js +21 -21
  293. package/lib/tree/nodes/functions/functionNode.d.ts +14 -14
  294. package/lib/tree/nodes/functions/functionNode.js +20 -20
  295. package/lib/tree/nodes/functions/oppositeNode.d.ts +7 -7
  296. package/lib/tree/nodes/functions/oppositeNode.js +26 -26
  297. package/lib/tree/nodes/functions/sinNode.js +1 -1
  298. package/lib/tree/nodes/functions/sqrtNode.d.ts +8 -8
  299. package/lib/tree/nodes/functions/sqrtNode.js +18 -18
  300. package/lib/tree/nodes/node.d.ts +12 -12
  301. package/lib/tree/nodes/node.js +11 -11
  302. package/lib/tree/nodes/numbers/constantNode.d.ts +9 -9
  303. package/lib/tree/nodes/numbers/constantNode.js +18 -18
  304. package/lib/tree/nodes/numbers/numberNode.d.ts +10 -10
  305. package/lib/tree/nodes/numbers/numberNode.js +19 -19
  306. package/lib/tree/nodes/numbers/piNode.d.ts +2 -2
  307. package/lib/tree/nodes/numbers/piNode.js +5 -5
  308. package/lib/tree/nodes/operators/addNode.d.ts +7 -7
  309. package/lib/tree/nodes/operators/addNode.js +19 -19
  310. package/lib/tree/nodes/operators/divideNode.d.ts +11 -11
  311. package/lib/tree/nodes/operators/divideNode.js +34 -34
  312. package/lib/tree/nodes/operators/equalNode.d.ts +7 -7
  313. package/lib/tree/nodes/operators/equalNode.js +16 -16
  314. package/lib/tree/nodes/operators/fractionNode.d.ts +11 -11
  315. package/lib/tree/nodes/operators/fractionNode.js +20 -20
  316. package/lib/tree/nodes/operators/multiplyNode.d.ts +7 -7
  317. package/lib/tree/nodes/operators/multiplyNode.js +43 -43
  318. package/lib/tree/nodes/operators/operatorNode.d.ts +21 -21
  319. package/lib/tree/nodes/operators/operatorNode.js +35 -35
  320. package/lib/tree/nodes/operators/powerNode.d.ts +7 -7
  321. package/lib/tree/nodes/operators/powerNode.js +33 -33
  322. package/lib/tree/nodes/operators/substractNode.d.ts +7 -7
  323. package/lib/tree/nodes/operators/substractNode.js +24 -24
  324. package/lib/tree/nodes/variables/variableNode.d.ts +8 -8
  325. package/lib/tree/nodes/variables/variableNode.js +19 -19
  326. package/lib/tree/parsers/derivateParser.js +62 -62
  327. package/lib/tree/parsers/latexParser.js +110 -0
  328. package/lib/tree/parsers/simplify.d.ts +2 -2
  329. package/lib/tree/parsers/simplify.js +52 -52
  330. package/lib/utils/arrayEqual.d.ts +1 -1
  331. package/lib/utils/arrayEqual.js +13 -13
  332. package/lib/utils/coin.js +7 -0
  333. package/lib/utils/coinFlip.d.ts +1 -1
  334. package/lib/utils/coinFlip.js +7 -7
  335. package/lib/utils/random.d.ts +1 -1
  336. package/lib/utils/random.js +7 -7
  337. package/lib/utils/shuffle.d.ts +1 -1
  338. package/lib/utils/shuffle.js +15 -15
  339. package/package.json +50 -50
@@ -1,14 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nonDivisorOf = void 0;
4
- const dividersOf_1 = require("./dividersOf");
5
- const nonDivisorOf = (nb) => {
6
- let nonDividers = [];
7
- let dividers = (0, dividersOf_1.dividersOf)(nb);
8
- for (let i = 2; i < nb; i++) {
9
- if (nb % i !== 0)
10
- nonDividers.push(i);
11
- }
12
- return nonDividers;
13
- };
14
- exports.nonDivisorOf = nonDivisorOf;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nonDivisorOf = void 0;
4
+ const dividersOf_1 = require("./dividersOf");
5
+ const nonDivisorOf = (nb) => {
6
+ let nonDividers = [];
7
+ let dividers = (0, dividersOf_1.dividersOf)(nb);
8
+ for (let i = 2; i < nb; i++) {
9
+ if (nb % i !== 0)
10
+ nonDividers.push(i);
11
+ }
12
+ return nonDividers;
13
+ };
14
+ exports.nonDivisorOf = nonDivisorOf;
@@ -1,6 +1,6 @@
1
- /***
2
- * returns array of prime factors
3
- * e.g 12 -> [2, 2, 3]
4
- */
5
- export declare const primeFactors: (a: number) => number[];
1
+ /***
2
+ * returns array of prime factors
3
+ * e.g 12 -> [2, 2, 3]
4
+ */
5
+ export declare const primeFactors: (a: number) => number[];
6
6
  //# sourceMappingURL=primeFactors.d.ts.map
@@ -1,22 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.primeFactors = void 0;
4
- /***
5
- * returns array of prime factors
6
- * e.g 12 -> [2, 2, 3]
7
- */
8
- const primeFactors = (a) => {
9
- const factors = [];
10
- let divisor = 2;
11
- while (a >= 2) {
12
- if (a % divisor === 0) {
13
- factors.push(divisor);
14
- a = a / divisor;
15
- }
16
- else {
17
- divisor++;
18
- }
19
- }
20
- return factors;
21
- };
22
- exports.primeFactors = primeFactors;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.primeFactors = void 0;
4
+ /***
5
+ * returns array of prime factors
6
+ * e.g 12 -> [2, 2, 3]
7
+ */
8
+ const primeFactors = (a) => {
9
+ const factors = [];
10
+ let divisor = 2;
11
+ while (a >= 2) {
12
+ if (a % divisor === 0) {
13
+ factors.push(divisor);
14
+ a = a / divisor;
15
+ }
16
+ else {
17
+ divisor++;
18
+ }
19
+ }
20
+ return factors;
21
+ };
22
+ exports.primeFactors = primeFactors;
@@ -1,2 +1,2 @@
1
- export declare const decimalPartLengthOf: (x: number) => number;
1
+ export declare const decimalPartLengthOf: (x: number) => number;
2
2
  //# sourceMappingURL=decimalPartLengthOf.d.ts.map
@@ -1,14 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decimalPartLengthOf = void 0;
4
- const decimalPartLengthOf = (x) => {
5
- function hasFraction(x) {
6
- return Math.abs(Math.round(x) - x) > 1e-10;
7
- }
8
- let count = 0;
9
- // multiply by increasing powers of 10 until the fractional part is ~ 0
10
- while (hasFraction(x * 10 ** count) && isFinite(10 ** count))
11
- count++;
12
- return count;
13
- };
14
- exports.decimalPartLengthOf = decimalPartLengthOf;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decimalPartLengthOf = void 0;
4
+ const decimalPartLengthOf = (x) => {
5
+ function hasFraction(x) {
6
+ return Math.abs(Math.round(x) - x) > 1e-10;
7
+ }
8
+ let count = 0;
9
+ // multiply by increasing powers of 10 until the fractional part is ~ 0
10
+ while (hasFraction(x * 10 ** count) && isFinite(10 ** count))
11
+ count++;
12
+ return count;
13
+ };
14
+ exports.decimalPartLengthOf = decimalPartLengthOf;
@@ -1,14 +1,14 @@
1
- interface randTupleIntOptions {
2
- from: number;
3
- to?: number;
4
- excludes?: number[];
5
- }
6
- /**
7
- * @param size tuple length
8
- * @param options
9
- * @returns array of size nb with contents = randint(from, to, exxcludes)
10
- */
11
- export declare const randTupleInt: (size: number, options: randTupleIntOptions) => number[];
12
- export declare const distinctRandTupleInt: (nb: number, size: number, options: randTupleIntOptions) => number[][];
13
- export {};
1
+ interface randTupleIntOptions {
2
+ from: number;
3
+ to?: number;
4
+ excludes?: number[];
5
+ }
6
+ /**
7
+ * @param size tuple length
8
+ * @param options
9
+ * @returns array of size nb with contents = randint(from, to, exxcludes)
10
+ */
11
+ export declare const randTupleInt: (size: number, options: randTupleIntOptions) => number[];
12
+ export declare const distinctRandTupleInt: (nb: number, size: number, options: randTupleIntOptions) => number[][];
13
+ export {};
14
14
  //# sourceMappingURL=randTupleInt.d.ts.map
@@ -1,30 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.distinctRandTupleInt = exports.randTupleInt = void 0;
4
- const arrayEqual_1 = require("../../../utils/arrayEqual");
5
- const randint_1 = require("./randint");
6
- /**
7
- * @param size tuple length
8
- * @param options
9
- * @returns array of size nb with contents = randint(from, to, exxcludes)
10
- */
11
- const randTupleInt = (size, options) => {
12
- const res = [];
13
- for (let i = 0; i < size; i++) {
14
- res.push((0, randint_1.randint)(options.from, options.to, options.excludes));
15
- }
16
- return res;
17
- };
18
- exports.randTupleInt = randTupleInt;
19
- const distinctRandTupleInt = (nb, size, options) => {
20
- const res = [];
21
- for (let i = 0; i < nb; i++) {
22
- let newTuple;
23
- do {
24
- newTuple = (0, exports.randTupleInt)(size, options);
25
- } while (res.some((tuple) => (0, arrayEqual_1.arrayEqual)(tuple, newTuple)));
26
- res.push(newTuple);
27
- }
28
- return res;
29
- };
30
- exports.distinctRandTupleInt = distinctRandTupleInt;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.distinctRandTupleInt = exports.randTupleInt = void 0;
4
+ const arrayEqual_1 = require("../../../utils/arrayEqual");
5
+ const randint_1 = require("./randint");
6
+ /**
7
+ * @param size tuple length
8
+ * @param options
9
+ * @returns array of size nb with contents = randint(from, to, exxcludes)
10
+ */
11
+ const randTupleInt = (size, options) => {
12
+ const res = [];
13
+ for (let i = 0; i < size; i++) {
14
+ res.push((0, randint_1.randint)(options.from, options.to, options.excludes));
15
+ }
16
+ return res;
17
+ };
18
+ exports.randTupleInt = randTupleInt;
19
+ const distinctRandTupleInt = (nb, size, options) => {
20
+ const res = [];
21
+ for (let i = 0; i < nb; i++) {
22
+ let newTuple;
23
+ do {
24
+ newTuple = (0, exports.randTupleInt)(size, options);
25
+ } while (res.some((tuple) => (0, arrayEqual_1.arrayEqual)(tuple, newTuple)));
26
+ res.push(newTuple);
27
+ }
28
+ return res;
29
+ };
30
+ exports.distinctRandTupleInt = distinctRandTupleInt;
@@ -1,5 +1,5 @@
1
- /**
2
- * @returns random [[a, b[[
3
- */
4
- export declare const randint: (a: number, b?: number, excludes?: number[]) => number;
1
+ /**
2
+ * @returns random [[a, b[[
3
+ */
4
+ export declare const randint: (a: number, b?: number, excludes?: number[]) => number;
5
5
  //# sourceMappingURL=randint.d.ts.map
@@ -1,18 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.randint = void 0;
4
- /**
5
- * @returns random [[a, b[[
6
- */
7
- const randint = (a, b, excludes) => {
8
- if (b === undefined)
9
- return Math.floor(Math.random() * a);
10
- if (!excludes)
11
- return a + Math.floor(Math.random() * (b - a));
12
- let res;
13
- do {
14
- res = a + Math.floor(Math.random() * (b - a));
15
- } while (excludes.includes(res));
16
- return res;
17
- };
18
- exports.randint = randint;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.randint = void 0;
4
+ /**
5
+ * @returns random [[a, b[[
6
+ */
7
+ const randint = (a, b, excludes) => {
8
+ if (b === undefined)
9
+ return Math.floor(Math.random() * a);
10
+ if (!excludes)
11
+ return a + Math.floor(Math.random() * (b - a));
12
+ let res;
13
+ do {
14
+ res = a + Math.floor(Math.random() * (b - a));
15
+ } while (excludes.includes(res));
16
+ return res;
17
+ };
18
+ exports.randint = randint;
@@ -1,2 +1,2 @@
1
- export declare function round(x: number, precision: number): number;
1
+ export declare function round(x: number, precision: number): number;
2
2
  //# sourceMappingURL=round.d.ts.map
@@ -1,8 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.round = void 0;
4
- const epsilon_1 = require("../numbers/epsilon");
5
- function round(x, precision) {
6
- return Math.round((x + epsilon_1.EPSILON) * Math.pow(10, precision)) / Math.pow(10, precision);
7
- }
8
- exports.round = round;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.round = void 0;
4
+ const epsilon_1 = require("../numbers/epsilon");
5
+ function round(x, precision) {
6
+ return Math.round((x + epsilon_1.EPSILON) * Math.pow(10, precision)) / Math.pow(10, precision);
7
+ }
8
+ exports.round = round;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.coprimesOf = void 0;
4
+ const gcd_1 = require("./gcd");
5
+ const coprimesOf = (nb) => {
6
+ let coprimes = [];
7
+ for (let i = 2; i <= nb; i++) {
8
+ if ((0, gcd_1.gcd)(nb, i) === 1)
9
+ coprimes.push(i);
10
+ }
11
+ return coprimes;
12
+ };
13
+ exports.coprimesOf = coprimesOf;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dividersOf = void 0;
4
+ const dividersOf = (nb) => {
5
+ let divisors = [];
6
+ for (let i = 1; i <= nb; i++) {
7
+ if (nb % i === 0)
8
+ divisors.push(i);
9
+ }
10
+ return divisors;
11
+ };
12
+ exports.dividersOf = dividersOf;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gcd = void 0;
4
+ function gcd(a, b) {
5
+ return b ? gcd(b, a % b) : a;
6
+ }
7
+ exports.gcd = gcd;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSquare = void 0;
4
+ const isSquare = (a) => {
5
+ return a > 0 && Math.sqrt(a) % 1 === 0;
6
+ };
7
+ exports.isSquare = isSquare;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lcd = void 0;
4
+ function lcd(a, b) {
5
+ const max = Math.max(a, b);
6
+ for (let i = max; i < a * b; i++) {
7
+ if (i % a === 0 && i % b === 0)
8
+ return i;
9
+ }
10
+ return a * b;
11
+ }
12
+ exports.lcd = lcd;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nonCoprimesOf = void 0;
4
+ const gcd_1 = require("./gcd");
5
+ const nonCoprimesOf = (nb) => {
6
+ let nonCoprimes = [];
7
+ for (let i = 1; i <= nb; i++) {
8
+ if ((0, gcd_1.gcd)(nb, i) !== 1)
9
+ nonCoprimes.push(i);
10
+ }
11
+ return nonCoprimes;
12
+ };
13
+ exports.nonCoprimesOf = nonCoprimesOf;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nonDivisorOf = void 0;
4
+ const dividersOf_1 = require("./dividersOf");
5
+ const nonDivisorOf = (nb) => {
6
+ let nonDividers = [];
7
+ let dividers = (0, dividersOf_1.dividersOf)(nb);
8
+ for (let i = 2; i < nb; i++) {
9
+ if (nb % i !== 0)
10
+ nonDividers.push(i);
11
+ }
12
+ return nonDividers;
13
+ };
14
+ exports.nonDivisorOf = nonDivisorOf;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.primeFactors = void 0;
4
+ /***
5
+ * returns array of prime factors
6
+ * e.g 12 -> [2, 2, 3]
7
+ */
8
+ const primeFactors = (a) => {
9
+ const factors = [];
10
+ let divisor = 2;
11
+ while (a >= 2) {
12
+ if (a % divisor === 0) {
13
+ factors.push(divisor);
14
+ a = a / divisor;
15
+ }
16
+ else {
17
+ divisor++;
18
+ }
19
+ }
20
+ return factors;
21
+ };
22
+ exports.primeFactors = primeFactors;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decimalPartLengthOf = void 0;
4
+ const decimalPartLengthOf = (x) => {
5
+ function hasFraction(x) {
6
+ return Math.abs(Math.round(x) - x) > 1e-10;
7
+ }
8
+ let count = 0;
9
+ // multiply by increasing powers of 10 until the fractional part is ~ 0
10
+ while (hasFraction(x * 10 ** count) && isFinite(10 ** count))
11
+ count++;
12
+ return count;
13
+ };
14
+ exports.decimalPartLengthOf = decimalPartLengthOf;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.distinctRandTupleInt = exports.randTupleInt = void 0;
4
+ const arrayEqual_1 = require("../../utils/arrayEqual");
5
+ const randint_1 = require("./randint");
6
+ /**
7
+ * @param size tuple length
8
+ * @param options
9
+ * @returns array of size nb with contents = randint(from, to, exxcludes)
10
+ */
11
+ const randTupleInt = (size, options) => {
12
+ const res = [];
13
+ for (let i = 0; i < size; i++) {
14
+ res.push((0, randint_1.randint)(options.from, options.to, options.excludes));
15
+ }
16
+ return res;
17
+ };
18
+ exports.randTupleInt = randTupleInt;
19
+ const distinctRandTupleInt = (nb, size, options) => {
20
+ const res = [];
21
+ for (let i = 0; i < nb; i++) {
22
+ let newTuple;
23
+ do {
24
+ newTuple = (0, exports.randTupleInt)(size, options);
25
+ } while (res.some(tuple => (0, arrayEqual_1.arrayEqual)(tuple, newTuple)));
26
+ res.push(newTuple);
27
+ }
28
+ return res;
29
+ };
30
+ exports.distinctRandTupleInt = distinctRandTupleInt;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.randint = void 0;
4
+ /**
5
+ * @returns random [[a, b[[
6
+ */
7
+ const randint = (a, b, excludes) => {
8
+ if (b === undefined)
9
+ return Math.floor(Math.random() * a);
10
+ if (!excludes)
11
+ return a + Math.floor(Math.random() * (b - a));
12
+ let res;
13
+ do {
14
+ res = a + Math.floor(Math.random() * (b - a));
15
+ } while (excludes.includes(res));
16
+ return res;
17
+ };
18
+ exports.randint = randint;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.round = void 0;
4
+ const epsilon_1 = require("../numbers/epsilon");
5
+ function round(x, precision) {
6
+ return Math.round((x + epsilon_1.EPSILON) * Math.pow(10, precision)) / Math.pow(10, precision);
7
+ }
8
+ exports.round = round;
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Decimal = exports.DecimalConstructor = void 0;
4
+ const randint_1 = require("../../mathutils/random/randint");
5
+ const numberNode_1 = require("../../tree/nodes/numbers/numberNode");
6
+ const integer_1 = require("../integer/integer");
7
+ const nombre_1 = require("../nombre");
8
+ class DecimalConstructor {
9
+ static randomFracPart(precision) {
10
+ let decimals = "";
11
+ for (let i = 0; i < precision; i++) {
12
+ decimals += (0, randint_1.randint)(i === precision - 1 ? 1 : 0, 10);
13
+ }
14
+ return decimals;
15
+ }
16
+ static random(min, max, precision) {
17
+ const int = (0, randint_1.randint)(min, max) + "";
18
+ const decimals = DecimalConstructor.randomFracPart(precision);
19
+ return DecimalConstructor.fromParts(int, decimals);
20
+ }
21
+ static fromParts(intPart, decimalPart) {
22
+ return new Decimal(Number("" + intPart + "." + decimalPart));
23
+ }
24
+ }
25
+ exports.DecimalConstructor = DecimalConstructor;
26
+ class Decimal {
27
+ constructor(value) {
28
+ this.type = nombre_1.NumberType.Decimal;
29
+ this.value = value;
30
+ this.tex = value + "";
31
+ let [intPartString, decimalPartString] = (value + "").split(".");
32
+ this.intPart = Number(intPartString);
33
+ this.decimalPart = decimalPartString || "";
34
+ this.precision = this.decimalPart.length;
35
+ }
36
+ /**
37
+ *
38
+ * @param precision 0 = unité, 1 = dixieme, ... , -1 : dizaine
39
+ * @returns
40
+ */
41
+ round(precision) {
42
+ const intPartString = this.intPart + "";
43
+ if (precision < 0) {
44
+ if (precision < -intPartString.length)
45
+ throw Error("can't round to higher precision");
46
+ return new integer_1.Integer(this.intPart).round(-precision);
47
+ }
48
+ if (precision > this.precision)
49
+ throw Error("can't round to higher precision");
50
+ if (precision === this.precision)
51
+ return this;
52
+ let newFracPart = "", newIntPart = "";
53
+ const shouldRoundUp = Number(this.decimalPart[precision]) > 4;
54
+ if (shouldRoundUp) {
55
+ let retenue = true;
56
+ let i = precision - 1;
57
+ while (retenue) {
58
+ if (i > -1) {
59
+ const nb = (Number(this.decimalPart[i]) + 1) % 10;
60
+ if (nb || newFracPart) {
61
+ newFracPart = nb.toString() + newFracPart;
62
+ }
63
+ if (nb !== 0) {
64
+ retenue = false;
65
+ for (let j = i - 1; j > -1; j--) {
66
+ newFracPart = this.decimalPart[j] + newFracPart;
67
+ }
68
+ newIntPart = intPartString;
69
+ }
70
+ else
71
+ i--;
72
+ }
73
+ else {
74
+ const nb = (Number(intPartString[i + intPartString.length]) + 1) % 10;
75
+ newIntPart = nb + "" + newIntPart;
76
+ if (nb !== 0) {
77
+ retenue = false;
78
+ for (let j = i + intPartString.length - 1; j > -1; j--) {
79
+ newIntPart = intPartString[j] + newIntPart;
80
+ }
81
+ }
82
+ else
83
+ i--;
84
+ }
85
+ }
86
+ }
87
+ else {
88
+ let retenue = true;
89
+ let i = precision - 1;
90
+ while (retenue) {
91
+ if (i > -1) {
92
+ const nb = Number(this.decimalPart[i]);
93
+ if (nb || newFracPart) {
94
+ newFracPart = nb.toString() + newFracPart;
95
+ }
96
+ if (nb !== 0) {
97
+ retenue = false;
98
+ for (let j = i - 1; j > -1; j--) {
99
+ newFracPart = this.decimalPart[j] + newFracPart;
100
+ }
101
+ newIntPart = intPartString;
102
+ }
103
+ else
104
+ i--;
105
+ }
106
+ else {
107
+ newIntPart = intPartString;
108
+ retenue = false;
109
+ }
110
+ }
111
+ }
112
+ return DecimalConstructor.fromParts(newIntPart, newFracPart);
113
+ }
114
+ multiplyByPowerOfTen(power) {
115
+ let newIntPart = "", newFracPart = "";
116
+ if (power > -1) {
117
+ newIntPart = this.intPart + "";
118
+ for (let i = 0; i < power; i++) {
119
+ newIntPart += i > this.decimalPart.length - 1 ? "0" : this.decimalPart[i];
120
+ }
121
+ newFracPart = this.decimalPart.slice(power);
122
+ }
123
+ else {
124
+ const intPartString = this.intPart + "";
125
+ newFracPart = this.decimalPart;
126
+ for (let i = intPartString.length - 1; i > intPartString.length - 1 + power; i--) {
127
+ newFracPart = (i < 0 ? "0" : intPartString[i]) + newFracPart;
128
+ }
129
+ if (power + intPartString.length < 1)
130
+ newIntPart = "0";
131
+ else
132
+ newIntPart = intPartString.slice(0, power + intPartString.length);
133
+ }
134
+ return DecimalConstructor.fromParts(newIntPart, newFracPart);
135
+ }
136
+ toTree() {
137
+ return new numberNode_1.NumberNode(this.value);
138
+ }
139
+ }
140
+ exports.Decimal = Decimal;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EPSILON = void 0;
4
+ function getEpsilon() {
5
+ var e = 1.0;
6
+ while (1.0 + 0.5 * e !== 1.0)
7
+ e *= 0.5;
8
+ return e;
9
+ }
10
+ exports.EPSILON = getEpsilon();