mathjs 10.0.0 → 10.6.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1084) hide show
  1. package/CONTRIBUTING.md +14 -10
  2. package/HISTORY.md +209 -0
  3. package/NOTICE +1 -1
  4. package/README.md +23 -3
  5. package/bin/cli.js +1 -1
  6. package/lib/browser/math.js +9 -8
  7. package/lib/browser/math.js.map +1 -1
  8. package/lib/cjs/core/create.js +4 -4
  9. package/lib/cjs/core/function/import.js +3 -3
  10. package/lib/cjs/core/function/typed.js +2 -2
  11. package/lib/cjs/defaultInstance.js +3 -3
  12. package/lib/cjs/entry/allFactoriesAny.js +1 -1
  13. package/lib/cjs/entry/allFactoriesNumber.js +1 -1
  14. package/lib/cjs/entry/configReadonly.js +1 -1
  15. package/lib/cjs/entry/dependenciesAny/dependenciesCeil.generated.js +6 -0
  16. package/lib/cjs/entry/dependenciesAny/dependenciesCumSum.generated.js +26 -0
  17. package/lib/cjs/entry/dependenciesAny/dependenciesCumSumTransform.generated.js +26 -0
  18. package/lib/cjs/entry/dependenciesAny/dependenciesDet.generated.js +5 -2
  19. package/lib/cjs/entry/dependenciesAny/dependenciesFft.generated.js +41 -0
  20. package/lib/cjs/entry/dependenciesAny/dependenciesFix.generated.js +9 -0
  21. package/lib/cjs/entry/dependenciesAny/dependenciesFloor.generated.js +6 -0
  22. package/lib/cjs/entry/dependenciesAny/dependenciesIfft.generated.js +29 -0
  23. package/lib/cjs/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -3
  24. package/lib/cjs/entry/dependenciesAny/dependenciesIntersect.generated.js +6 -0
  25. package/lib/cjs/entry/dependenciesAny/dependenciesInvmod.generated.js +41 -0
  26. package/lib/cjs/entry/dependenciesAny/dependenciesLeafCount.generated.js +23 -0
  27. package/lib/cjs/entry/dependenciesAny/dependenciesLgamma.generated.js +23 -0
  28. package/lib/cjs/entry/dependenciesAny/dependenciesPinv.generated.js +53 -0
  29. package/lib/cjs/entry/dependenciesAny/dependenciesPow.generated.js +3 -0
  30. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +18 -0
  31. package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +32 -0
  32. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +21 -0
  33. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +65 -0
  34. package/lib/cjs/entry/dependenciesAny/dependenciesStirlingS2.generated.js +6 -0
  35. package/lib/cjs/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +29 -0
  36. package/lib/cjs/entry/dependenciesAny.generated.js +88 -0
  37. package/lib/cjs/entry/dependenciesNumber/dependenciesCeil.generated.js +3 -0
  38. package/lib/cjs/entry/dependenciesNumber/dependenciesCumSum.generated.js +26 -0
  39. package/lib/cjs/entry/dependenciesNumber/dependenciesCumSumTransform.generated.js +26 -0
  40. package/lib/cjs/entry/dependenciesNumber/dependenciesFix.generated.js +6 -0
  41. package/lib/cjs/entry/dependenciesNumber/dependenciesFloor.generated.js +3 -0
  42. package/lib/cjs/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -3
  43. package/lib/cjs/entry/dependenciesNumber/dependenciesLgamma.generated.js +20 -0
  44. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +18 -0
  45. package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +32 -0
  46. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +21 -0
  47. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +65 -0
  48. package/lib/cjs/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +3 -0
  49. package/lib/cjs/entry/dependenciesNumber.generated.js +40 -0
  50. package/lib/cjs/entry/impureFunctionsAny.generated.js +164 -98
  51. package/lib/cjs/entry/impureFunctionsNumber.generated.js +117 -69
  52. package/lib/cjs/entry/pureFunctionsAny.generated.js +418 -351
  53. package/lib/cjs/entry/pureFunctionsNumber.generated.js +80 -65
  54. package/lib/cjs/expression/Help.js +4 -0
  55. package/lib/cjs/expression/Parser.js +1 -1
  56. package/lib/cjs/expression/embeddedDocs/construction/fraction.js +3 -3
  57. package/lib/cjs/expression/embeddedDocs/core/typed.js +1 -1
  58. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +265 -233
  59. package/lib/cjs/expression/embeddedDocs/function/algebra/leafCount.js +15 -0
  60. package/lib/cjs/expression/embeddedDocs/function/algebra/resolve.js +16 -0
  61. package/lib/cjs/expression/embeddedDocs/function/algebra/simplify.js +1 -1
  62. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +15 -0
  63. package/lib/cjs/expression/embeddedDocs/function/algebra/symbolicEqual.js +15 -0
  64. package/lib/cjs/expression/embeddedDocs/function/arithmetic/invmod.js +15 -0
  65. package/lib/cjs/expression/embeddedDocs/function/arithmetic/pow.js +1 -1
  66. package/lib/cjs/expression/embeddedDocs/function/matrix/fft.js +15 -0
  67. package/lib/cjs/expression/embeddedDocs/function/matrix/forEach.js +1 -1
  68. package/lib/cjs/expression/embeddedDocs/function/matrix/ifft.js +15 -0
  69. package/lib/cjs/expression/embeddedDocs/function/matrix/pinv.js +15 -0
  70. package/lib/cjs/expression/embeddedDocs/function/matrix/subset.js +2 -2
  71. package/lib/cjs/expression/embeddedDocs/function/probability/lgamma.js +15 -0
  72. package/lib/cjs/expression/embeddedDocs/function/statistics/cumsum.js +15 -0
  73. package/lib/cjs/expression/node/FunctionNode.js +104 -63
  74. package/lib/cjs/expression/node/IndexNode.js +27 -62
  75. package/lib/cjs/expression/node/Node.js +3 -3
  76. package/lib/cjs/expression/node/ObjectNode.js +1 -1
  77. package/lib/cjs/expression/node/utils/access.js +1 -1
  78. package/lib/cjs/expression/node/utils/assign.js +1 -1
  79. package/lib/cjs/expression/parse.js +25 -21
  80. package/lib/cjs/expression/transform/cumsum.transform.js +57 -0
  81. package/lib/cjs/expression/transform/sum.transform.js +1 -1
  82. package/lib/cjs/factoriesAny.js +88 -0
  83. package/lib/cjs/factoriesNumber.js +77 -28
  84. package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
  85. package/lib/cjs/function/algebra/derivative.js +1 -1
  86. package/lib/cjs/function/algebra/leafCount.js +66 -0
  87. package/lib/cjs/function/algebra/rationalize.js +36 -39
  88. package/lib/cjs/function/algebra/resolve.js +106 -0
  89. package/lib/cjs/function/algebra/simplify/simplifyConstant.js +226 -32
  90. package/lib/cjs/function/algebra/simplify/util.js +171 -33
  91. package/lib/cjs/function/algebra/simplify.js +619 -191
  92. package/lib/cjs/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +84 -32
  93. package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
  94. package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
  95. package/lib/cjs/function/algebra/symbolicEqual.js +88 -0
  96. package/lib/cjs/function/arithmetic/ceil.js +76 -40
  97. package/lib/cjs/function/arithmetic/fix.js +54 -16
  98. package/lib/cjs/function/arithmetic/floor.js +80 -38
  99. package/lib/cjs/function/arithmetic/invmod.js +73 -0
  100. package/lib/cjs/function/arithmetic/norm.js +1 -1
  101. package/lib/cjs/function/arithmetic/nthRoot.js +1 -3
  102. package/lib/cjs/function/arithmetic/pow.js +25 -6
  103. package/lib/cjs/function/arithmetic/round.js +27 -47
  104. package/lib/cjs/function/arithmetic/sign.js +4 -0
  105. package/lib/cjs/function/combinatorics/stirlingS2.js +42 -12
  106. package/lib/cjs/function/geometry/intersect.js +12 -13
  107. package/lib/cjs/function/matrix/det.js +37 -31
  108. package/lib/cjs/function/matrix/eigs/complexEigs.js +44 -33
  109. package/lib/cjs/function/matrix/fft.js +128 -0
  110. package/lib/cjs/function/matrix/ifft.js +49 -0
  111. package/lib/cjs/function/matrix/map.js +53 -15
  112. package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
  113. package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
  114. package/lib/cjs/function/matrix/pinv.js +223 -0
  115. package/lib/cjs/function/matrix/subset.js +15 -5
  116. package/lib/cjs/function/probability/gamma.js +28 -30
  117. package/lib/cjs/function/probability/lgamma.js +146 -0
  118. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  119. package/lib/cjs/function/relational/compareNatural.js +6 -6
  120. package/lib/cjs/function/statistics/cumsum.js +151 -0
  121. package/lib/cjs/function/statistics/sum.js +1 -1
  122. package/lib/cjs/function/string/format.js +4 -1
  123. package/lib/cjs/header.js +3 -3
  124. package/lib/cjs/plain/bignumber/index.js +1 -1
  125. package/lib/cjs/plain/number/arithmetic.js +17 -31
  126. package/lib/cjs/plain/number/combinations.js +18 -6
  127. package/lib/cjs/plain/number/probability.js +43 -3
  128. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  129. package/lib/cjs/type/bignumber/function/bignumber.js +1 -1
  130. package/lib/cjs/type/boolean.js +2 -2
  131. package/lib/cjs/type/complex/Complex.js +14 -14
  132. package/lib/cjs/type/complex/function/complex.js +1 -1
  133. package/lib/cjs/type/fraction/Fraction.js +6 -6
  134. package/lib/cjs/type/fraction/function/fraction.js +21 -9
  135. package/lib/cjs/type/matrix/DenseMatrix.js +5 -5
  136. package/lib/cjs/type/matrix/SparseMatrix.js +21 -17
  137. package/lib/cjs/type/matrix/function/sparse.js +6 -0
  138. package/lib/cjs/type/number.js +1 -1
  139. package/lib/cjs/type/string.js +2 -2
  140. package/lib/cjs/type/unit/Unit.js +76 -88
  141. package/lib/cjs/utils/collection.js +3 -27
  142. package/lib/cjs/utils/customs.js +2 -2
  143. package/lib/cjs/utils/emitter.js +1 -1
  144. package/lib/cjs/utils/function.js +2 -2
  145. package/lib/cjs/utils/is.js +6 -6
  146. package/lib/cjs/utils/latex.js +9 -3
  147. package/lib/cjs/utils/lruQueue.js +2 -4
  148. package/lib/cjs/utils/map.js +3 -3
  149. package/lib/cjs/utils/number.js +18 -3
  150. package/lib/cjs/utils/object.js +5 -3
  151. package/lib/cjs/utils/snapshot.js +8 -8
  152. package/lib/cjs/utils/string.js +19 -6
  153. package/lib/cjs/utils/switch.js +31 -0
  154. package/lib/cjs/version.js +1 -1
  155. package/lib/esm/entry/dependenciesAny/dependenciesCeil.generated.js +4 -0
  156. package/lib/esm/entry/dependenciesAny/dependenciesCumSum.generated.js +14 -0
  157. package/lib/esm/entry/dependenciesAny/dependenciesCumSumTransform.generated.js +14 -0
  158. package/lib/esm/entry/dependenciesAny/dependenciesDet.generated.js +4 -2
  159. package/lib/esm/entry/dependenciesAny/dependenciesFft.generated.js +24 -0
  160. package/lib/esm/entry/dependenciesAny/dependenciesFix.generated.js +6 -0
  161. package/lib/esm/entry/dependenciesAny/dependenciesFloor.generated.js +4 -0
  162. package/lib/esm/entry/dependenciesAny/dependenciesIfft.generated.js +16 -0
  163. package/lib/esm/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -2
  164. package/lib/esm/entry/dependenciesAny/dependenciesIntersect.generated.js +4 -0
  165. package/lib/esm/entry/dependenciesAny/dependenciesInvmod.generated.js +24 -0
  166. package/lib/esm/entry/dependenciesAny/dependenciesLeafCount.generated.js +12 -0
  167. package/lib/esm/entry/dependenciesAny/dependenciesLgamma.generated.js +12 -0
  168. package/lib/esm/entry/dependenciesAny/dependenciesPinv.generated.js +32 -0
  169. package/lib/esm/entry/dependenciesAny/dependenciesPow.generated.js +2 -0
  170. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +12 -0
  171. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +18 -0
  172. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +14 -0
  173. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +40 -0
  174. package/lib/esm/entry/dependenciesAny/dependenciesStirlingS2.generated.js +4 -0
  175. package/lib/esm/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +16 -0
  176. package/lib/esm/entry/dependenciesAny.generated.js +11 -0
  177. package/lib/esm/entry/dependenciesNumber/dependenciesCeil.generated.js +2 -0
  178. package/lib/esm/entry/dependenciesNumber/dependenciesCumSum.generated.js +14 -0
  179. package/lib/esm/entry/dependenciesNumber/dependenciesCumSumTransform.generated.js +14 -0
  180. package/lib/esm/entry/dependenciesNumber/dependenciesFix.generated.js +4 -0
  181. package/lib/esm/entry/dependenciesNumber/dependenciesFloor.generated.js +2 -0
  182. package/lib/esm/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -2
  183. package/lib/esm/entry/dependenciesNumber/dependenciesLgamma.generated.js +10 -0
  184. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +12 -0
  185. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +18 -0
  186. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +14 -0
  187. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +40 -0
  188. package/lib/esm/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +2 -0
  189. package/lib/esm/entry/dependenciesNumber.generated.js +5 -0
  190. package/lib/esm/entry/impureFunctionsAny.generated.js +150 -88
  191. package/lib/esm/entry/impureFunctionsNumber.generated.js +107 -61
  192. package/lib/esm/entry/pureFunctionsAny.generated.js +331 -268
  193. package/lib/esm/entry/pureFunctionsNumber.generated.js +56 -41
  194. package/lib/esm/expression/Help.js +4 -0
  195. package/lib/esm/expression/embeddedDocs/construction/fraction.js +3 -3
  196. package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
  197. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +233 -212
  198. package/lib/esm/expression/embeddedDocs/function/algebra/leafCount.js +8 -0
  199. package/lib/esm/expression/embeddedDocs/function/algebra/resolve.js +9 -0
  200. package/lib/esm/expression/embeddedDocs/function/algebra/simplify.js +1 -1
  201. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +8 -0
  202. package/lib/esm/expression/embeddedDocs/function/algebra/symbolicEqual.js +8 -0
  203. package/lib/esm/expression/embeddedDocs/function/arithmetic/invmod.js +8 -0
  204. package/lib/esm/expression/embeddedDocs/function/arithmetic/pow.js +1 -1
  205. package/lib/esm/expression/embeddedDocs/function/matrix/fft.js +8 -0
  206. package/lib/esm/expression/embeddedDocs/function/matrix/forEach.js +1 -1
  207. package/lib/esm/expression/embeddedDocs/function/matrix/ifft.js +8 -0
  208. package/lib/esm/expression/embeddedDocs/function/matrix/pinv.js +8 -0
  209. package/lib/esm/expression/embeddedDocs/function/matrix/subset.js +2 -2
  210. package/lib/esm/expression/embeddedDocs/function/probability/lgamma.js +8 -0
  211. package/lib/esm/expression/embeddedDocs/function/statistics/cumsum.js +8 -0
  212. package/lib/esm/expression/node/BlockNode.js +3 -3
  213. package/lib/esm/expression/node/FunctionNode.js +93 -56
  214. package/lib/esm/expression/node/IndexNode.js +22 -59
  215. package/lib/esm/expression/parse.js +17 -13
  216. package/lib/esm/expression/transform/cumsum.transform.js +48 -0
  217. package/lib/esm/expression/transform/sum.transform.js +1 -1
  218. package/lib/esm/factoriesAny.js +11 -0
  219. package/lib/esm/factoriesNumber.js +25 -8
  220. package/lib/esm/function/algebra/decomposition/qr.js +2 -2
  221. package/lib/esm/function/algebra/derivative.js +1 -1
  222. package/lib/esm/function/algebra/leafCount.js +59 -0
  223. package/lib/esm/function/algebra/rationalize.js +36 -38
  224. package/lib/esm/function/algebra/resolve.js +95 -0
  225. package/lib/esm/function/algebra/simplify/simplifyConstant.js +200 -32
  226. package/lib/esm/function/algebra/simplify/util.js +170 -34
  227. package/lib/esm/function/algebra/simplify.js +614 -186
  228. package/lib/esm/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +76 -32
  229. package/lib/esm/function/algebra/solver/utils/solveValidation.js +5 -5
  230. package/lib/esm/function/algebra/sparse/csChol.js +2 -2
  231. package/lib/esm/function/algebra/sparse/csLeaf.js +2 -2
  232. package/lib/esm/function/algebra/sparse/csLu.js +3 -3
  233. package/lib/esm/function/algebra/symbolicEqual.js +80 -0
  234. package/lib/esm/function/arithmetic/ceil.js +61 -24
  235. package/lib/esm/function/arithmetic/fix.js +51 -13
  236. package/lib/esm/function/arithmetic/floor.js +65 -23
  237. package/lib/esm/function/arithmetic/invmod.js +57 -0
  238. package/lib/esm/function/arithmetic/nthRoot.js +1 -3
  239. package/lib/esm/function/arithmetic/nthRoots.js +1 -1
  240. package/lib/esm/function/arithmetic/pow.js +25 -6
  241. package/lib/esm/function/arithmetic/round.js +25 -43
  242. package/lib/esm/function/arithmetic/sign.js +4 -0
  243. package/lib/esm/function/combinatorics/stirlingS2.js +41 -12
  244. package/lib/esm/function/geometry/intersect.js +12 -12
  245. package/lib/esm/function/matrix/det.js +35 -31
  246. package/lib/esm/function/matrix/eigs/complexEigs.js +36 -25
  247. package/lib/esm/function/matrix/expm.js +2 -2
  248. package/lib/esm/function/matrix/fft.js +104 -0
  249. package/lib/esm/function/matrix/ifft.js +38 -0
  250. package/lib/esm/function/matrix/map.js +53 -15
  251. package/lib/esm/function/matrix/pinv.js +205 -0
  252. package/lib/esm/function/matrix/subset.js +15 -5
  253. package/lib/esm/function/probability/gamma.js +29 -31
  254. package/lib/esm/function/probability/lgamma.js +137 -0
  255. package/lib/esm/function/statistics/cumsum.js +139 -0
  256. package/lib/esm/function/statistics/sum.js +1 -1
  257. package/lib/esm/function/string/bin.js +1 -1
  258. package/lib/esm/function/string/format.js +4 -1
  259. package/lib/esm/function/string/hex.js +1 -1
  260. package/lib/esm/function/string/oct.js +1 -1
  261. package/lib/esm/header.js +1 -1
  262. package/lib/esm/plain/number/arithmetic.js +16 -20
  263. package/lib/esm/plain/number/combinations.js +18 -6
  264. package/lib/esm/plain/number/probability.js +33 -1
  265. package/lib/esm/type/complex/Complex.js +2 -2
  266. package/lib/esm/type/fraction/function/fraction.js +20 -8
  267. package/lib/esm/type/matrix/DenseMatrix.js +2 -2
  268. package/lib/esm/type/matrix/FibonacciHeap.js +2 -2
  269. package/lib/esm/type/matrix/SparseMatrix.js +32 -28
  270. package/lib/esm/type/matrix/function/sparse.js +6 -0
  271. package/lib/esm/type/unit/Unit.js +76 -88
  272. package/lib/esm/utils/collection.js +1 -26
  273. package/lib/esm/utils/latex.js +6 -0
  274. package/lib/esm/utils/lruQueue.js +1 -2
  275. package/lib/esm/utils/number.js +17 -5
  276. package/lib/esm/utils/object.js +3 -1
  277. package/lib/esm/utils/snapshot.js +2 -2
  278. package/lib/esm/utils/string.js +18 -4
  279. package/lib/esm/utils/switch.js +24 -0
  280. package/lib/esm/version.js +1 -1
  281. package/package.json +52 -33
  282. package/types/index.d.ts +2741 -1306
  283. package/types/index.ts +1656 -242
  284. package/types/tsconfig.json +2 -1
  285. package/docs/command_line_interface.md +0 -87
  286. package/docs/core/chaining.md +0 -41
  287. package/docs/core/configuration.md +0 -144
  288. package/docs/core/extension.md +0 -263
  289. package/docs/core/index.md +0 -21
  290. package/docs/core/serialization.md +0 -50
  291. package/docs/custom_bundling.md +0 -116
  292. package/docs/datatypes/bignumbers.md +0 -102
  293. package/docs/datatypes/complex_numbers.md +0 -168
  294. package/docs/datatypes/fractions.md +0 -75
  295. package/docs/datatypes/index.md +0 -67
  296. package/docs/datatypes/matrices.md +0 -358
  297. package/docs/datatypes/numbers.md +0 -106
  298. package/docs/datatypes/units.md +0 -444
  299. package/docs/expressions/algebra.md +0 -83
  300. package/docs/expressions/customization.md +0 -379
  301. package/docs/expressions/expression_trees.md +0 -700
  302. package/docs/expressions/html_classes.md +0 -38
  303. package/docs/expressions/index.md +0 -21
  304. package/docs/expressions/parsing.md +0 -224
  305. package/docs/expressions/security.md +0 -89
  306. package/docs/expressions/syntax.md +0 -670
  307. package/docs/getting_started.md +0 -124
  308. package/docs/index.md +0 -39
  309. package/docs/reference/classes/densematrix.md +0 -247
  310. package/docs/reference/classes/fibonacciheap.md +0 -70
  311. package/docs/reference/classes/matrixindex.md +0 -133
  312. package/docs/reference/classes/matrixrange.md +0 -158
  313. package/docs/reference/classes/resultset.md +0 -47
  314. package/docs/reference/classes/sparsematrix.md +0 -245
  315. package/docs/reference/classes/unit.md +0 -242
  316. package/docs/reference/classes.md +0 -86
  317. package/docs/reference/constants.md +0 -29
  318. package/docs/reference/functions/abs.md +0 -40
  319. package/docs/reference/functions/acos.md +0 -43
  320. package/docs/reference/functions/acosh.md +0 -41
  321. package/docs/reference/functions/acot.md +0 -42
  322. package/docs/reference/functions/acoth.md +0 -40
  323. package/docs/reference/functions/acsc.md +0 -43
  324. package/docs/reference/functions/acsch.md +0 -40
  325. package/docs/reference/functions/add.md +0 -53
  326. package/docs/reference/functions/and.md +0 -47
  327. package/docs/reference/functions/apply.md +0 -50
  328. package/docs/reference/functions/arg.md +0 -47
  329. package/docs/reference/functions/asec.md +0 -43
  330. package/docs/reference/functions/asech.md +0 -40
  331. package/docs/reference/functions/asin.md +0 -43
  332. package/docs/reference/functions/asinh.md +0 -40
  333. package/docs/reference/functions/atan.md +0 -43
  334. package/docs/reference/functions/atan2.md +0 -50
  335. package/docs/reference/functions/atanh.md +0 -40
  336. package/docs/reference/functions/bellNumbers.md +0 -39
  337. package/docs/reference/functions/bignumber.md +0 -47
  338. package/docs/reference/functions/bin.md +0 -39
  339. package/docs/reference/functions/bitAnd.md +0 -45
  340. package/docs/reference/functions/bitNot.md +0 -45
  341. package/docs/reference/functions/bitOr.md +0 -46
  342. package/docs/reference/functions/bitXor.md +0 -45
  343. package/docs/reference/functions/boolean.md +0 -50
  344. package/docs/reference/functions/catalan.md +0 -39
  345. package/docs/reference/functions/cbrt.md +0 -54
  346. package/docs/reference/functions/ceil.md +0 -57
  347. package/docs/reference/functions/chain.md +0 -54
  348. package/docs/reference/functions/clone.md +0 -37
  349. package/docs/reference/functions/column.md +0 -39
  350. package/docs/reference/functions/combinations.md +0 -43
  351. package/docs/reference/functions/combinationsWithRep.md +0 -43
  352. package/docs/reference/functions/compare.md +0 -61
  353. package/docs/reference/functions/compareNatural.md +0 -86
  354. package/docs/reference/functions/compareText.md +0 -48
  355. package/docs/reference/functions/compile.md +0 -50
  356. package/docs/reference/functions/complex.md +0 -17
  357. package/docs/reference/functions/composition.md +0 -40
  358. package/docs/reference/functions/concat.md +0 -50
  359. package/docs/reference/functions/config.md +0 -44
  360. package/docs/reference/functions/conj.md +0 -44
  361. package/docs/reference/functions/cos.md +0 -45
  362. package/docs/reference/functions/cosh.md +0 -40
  363. package/docs/reference/functions/cot.md +0 -41
  364. package/docs/reference/functions/coth.md +0 -43
  365. package/docs/reference/functions/count.md +0 -39
  366. package/docs/reference/functions/createUnit.md +0 -52
  367. package/docs/reference/functions/cross.md +0 -52
  368. package/docs/reference/functions/csc.md +0 -41
  369. package/docs/reference/functions/csch.md +0 -43
  370. package/docs/reference/functions/ctranspose.md +0 -44
  371. package/docs/reference/functions/cube.md +0 -45
  372. package/docs/reference/functions/deepEqual.md +0 -47
  373. package/docs/reference/functions/derivative.md +0 -55
  374. package/docs/reference/functions/det.md +0 -43
  375. package/docs/reference/functions/diag.md +0 -55
  376. package/docs/reference/functions/diff.md +0 -64
  377. package/docs/reference/functions/distance.md +0 -74
  378. package/docs/reference/functions/divide.md +0 -49
  379. package/docs/reference/functions/dot.md +0 -42
  380. package/docs/reference/functions/dotDivide.md +0 -46
  381. package/docs/reference/functions/dotMultiply.md +0 -46
  382. package/docs/reference/functions/dotPow.md +0 -43
  383. package/docs/reference/functions/eigs.md +0 -48
  384. package/docs/reference/functions/equal.md +0 -69
  385. package/docs/reference/functions/equalText.md +0 -47
  386. package/docs/reference/functions/erf.md +0 -43
  387. package/docs/reference/functions/evaluate.md +0 -50
  388. package/docs/reference/functions/exp.md +0 -48
  389. package/docs/reference/functions/expm.md +0 -43
  390. package/docs/reference/functions/expm1.md +0 -48
  391. package/docs/reference/functions/factorial.md +0 -43
  392. package/docs/reference/functions/filter.md +0 -44
  393. package/docs/reference/functions/fix.md +0 -55
  394. package/docs/reference/functions/flatten.md +0 -40
  395. package/docs/reference/functions/floor.md +0 -56
  396. package/docs/reference/functions/forEach.md +0 -35
  397. package/docs/reference/functions/format.md +0 -118
  398. package/docs/reference/functions/fraction.md +0 -45
  399. package/docs/reference/functions/gamma.md +0 -43
  400. package/docs/reference/functions/gcd.md +0 -44
  401. package/docs/reference/functions/getMatrixDataType.md +0 -53
  402. package/docs/reference/functions/hasNumericValue.md +0 -49
  403. package/docs/reference/functions/help.md +0 -36
  404. package/docs/reference/functions/hex.md +0 -39
  405. package/docs/reference/functions/hypot.md +0 -45
  406. package/docs/reference/functions/identity.md +0 -51
  407. package/docs/reference/functions/im.md +0 -47
  408. package/docs/reference/functions/import.md +0 -68
  409. package/docs/reference/functions/index.md +0 -55
  410. package/docs/reference/functions/intersect.md +0 -44
  411. package/docs/reference/functions/inv.md +0 -39
  412. package/docs/reference/functions/isInteger.md +0 -49
  413. package/docs/reference/functions/isNaN.md +0 -50
  414. package/docs/reference/functions/isNegative.md +0 -49
  415. package/docs/reference/functions/isNumeric.md +0 -49
  416. package/docs/reference/functions/isPositive.md +0 -51
  417. package/docs/reference/functions/isPrime.md +0 -48
  418. package/docs/reference/functions/isZero.md +0 -53
  419. package/docs/reference/functions/kldivergence.md +0 -35
  420. package/docs/reference/functions/kron.md +0 -47
  421. package/docs/reference/functions/larger.md +0 -54
  422. package/docs/reference/functions/largerEq.md +0 -50
  423. package/docs/reference/functions/lcm.md +0 -48
  424. package/docs/reference/functions/leftShift.md +0 -46
  425. package/docs/reference/functions/log.md +0 -51
  426. package/docs/reference/functions/log10.md +0 -44
  427. package/docs/reference/functions/log1p.md +0 -48
  428. package/docs/reference/functions/log2.md +0 -44
  429. package/docs/reference/functions/lsolve.md +0 -45
  430. package/docs/reference/functions/lsolveAll.md +0 -45
  431. package/docs/reference/functions/lup.md +0 -46
  432. package/docs/reference/functions/lusolve.md +0 -53
  433. package/docs/reference/functions/mad.md +0 -44
  434. package/docs/reference/functions/map.md +0 -42
  435. package/docs/reference/functions/matrix.md +0 -56
  436. package/docs/reference/functions/matrixFromColumns.md +0 -43
  437. package/docs/reference/functions/matrixFromFunction.md +0 -48
  438. package/docs/reference/functions/matrixFromRows.md +0 -43
  439. package/docs/reference/functions/max.md +0 -55
  440. package/docs/reference/functions/mean.md +0 -51
  441. package/docs/reference/functions/median.md +0 -51
  442. package/docs/reference/functions/min.md +0 -55
  443. package/docs/reference/functions/mod.md +0 -53
  444. package/docs/reference/functions/mode.md +0 -44
  445. package/docs/reference/functions/multinomial.md +0 -40
  446. package/docs/reference/functions/multiply.md +0 -54
  447. package/docs/reference/functions/norm.md +0 -53
  448. package/docs/reference/functions/not.md +0 -44
  449. package/docs/reference/functions/nthRoot.md +0 -47
  450. package/docs/reference/functions/nthRoots.md +0 -52
  451. package/docs/reference/functions/number.md +0 -49
  452. package/docs/reference/functions/numeric.md +0 -46
  453. package/docs/reference/functions/oct.md +0 -39
  454. package/docs/reference/functions/ones.md +0 -53
  455. package/docs/reference/functions/or.md +0 -47
  456. package/docs/reference/functions/parse.md +0 -56
  457. package/docs/reference/functions/parser.md +0 -64
  458. package/docs/reference/functions/partitionSelect.md +0 -47
  459. package/docs/reference/functions/permutations.md +0 -45
  460. package/docs/reference/functions/pickRandom.md +0 -53
  461. package/docs/reference/functions/pow.md +0 -53
  462. package/docs/reference/functions/print.md +0 -58
  463. package/docs/reference/functions/prod.md +0 -49
  464. package/docs/reference/functions/qr.md +0 -59
  465. package/docs/reference/functions/quantileSeq.md +0 -56
  466. package/docs/reference/functions/random.md +0 -48
  467. package/docs/reference/functions/randomInt.md +0 -47
  468. package/docs/reference/functions/range.md +0 -64
  469. package/docs/reference/functions/rationalize.md +0 -62
  470. package/docs/reference/functions/re.md +0 -47
  471. package/docs/reference/functions/reshape.md +0 -53
  472. package/docs/reference/functions/resize.md +0 -45
  473. package/docs/reference/functions/rightArithShift.md +0 -46
  474. package/docs/reference/functions/rightLogShift.md +0 -46
  475. package/docs/reference/functions/rotate.md +0 -47
  476. package/docs/reference/functions/rotationMatrix.md +0 -51
  477. package/docs/reference/functions/round.md +0 -55
  478. package/docs/reference/functions/row.md +0 -39
  479. package/docs/reference/functions/sec.md +0 -41
  480. package/docs/reference/functions/sech.md +0 -43
  481. package/docs/reference/functions/setCartesian.md +0 -43
  482. package/docs/reference/functions/setDifference.md +0 -41
  483. package/docs/reference/functions/setDistinct.md +0 -37
  484. package/docs/reference/functions/setIntersect.md +0 -40
  485. package/docs/reference/functions/setIsSubset.md +0 -41
  486. package/docs/reference/functions/setMultiplicity.md +0 -40
  487. package/docs/reference/functions/setPowerset.md +0 -37
  488. package/docs/reference/functions/setSize.md +0 -41
  489. package/docs/reference/functions/setSymDifference.md +0 -41
  490. package/docs/reference/functions/setUnion.md +0 -40
  491. package/docs/reference/functions/sign.md +0 -46
  492. package/docs/reference/functions/simplify.md +0 -90
  493. package/docs/reference/functions/sin.md +0 -45
  494. package/docs/reference/functions/sinh.md +0 -40
  495. package/docs/reference/functions/size.md +0 -44
  496. package/docs/reference/functions/slu.md +0 -51
  497. package/docs/reference/functions/smaller.md +0 -54
  498. package/docs/reference/functions/smallerEq.md +0 -50
  499. package/docs/reference/functions/sort.md +0 -50
  500. package/docs/reference/functions/sparse.md +0 -51
  501. package/docs/reference/functions/splitUnit.md +0 -37
  502. package/docs/reference/functions/sqrt.md +0 -44
  503. package/docs/reference/functions/sqrtm.md +0 -40
  504. package/docs/reference/functions/square.md +0 -45
  505. package/docs/reference/functions/squeeze.md +0 -47
  506. package/docs/reference/functions/std.md +0 -70
  507. package/docs/reference/functions/stirlingS2.md +0 -42
  508. package/docs/reference/functions/string.md +0 -49
  509. package/docs/reference/functions/subset.md +0 -51
  510. package/docs/reference/functions/subtract.md +0 -48
  511. package/docs/reference/functions/sum.md +0 -47
  512. package/docs/reference/functions/tan.md +0 -43
  513. package/docs/reference/functions/tanh.md +0 -44
  514. package/docs/reference/functions/to.md +0 -41
  515. package/docs/reference/functions/trace.md +0 -44
  516. package/docs/reference/functions/transpose.md +0 -43
  517. package/docs/reference/functions/typeOf.md +0 -75
  518. package/docs/reference/functions/typed.md +0 -56
  519. package/docs/reference/functions/unaryMinus.md +0 -43
  520. package/docs/reference/functions/unaryPlus.md +0 -42
  521. package/docs/reference/functions/unequal.md +0 -68
  522. package/docs/reference/functions/unit.md +0 -48
  523. package/docs/reference/functions/usolve.md +0 -45
  524. package/docs/reference/functions/usolveAll.md +0 -45
  525. package/docs/reference/functions/variance.md +0 -72
  526. package/docs/reference/functions/xgcd.md +0 -41
  527. package/docs/reference/functions/xor.md +0 -47
  528. package/docs/reference/functions/zeros.md +0 -51
  529. package/docs/reference/functions.md +0 -289
  530. package/docs/reference/index.md +0 -5
  531. package/examples/advanced/convert_fraction_to_bignumber.js +0 -59
  532. package/examples/advanced/custom_argument_parsing.js +0 -98
  533. package/examples/advanced/custom_datatype.js +0 -56
  534. package/examples/advanced/custom_evaluate_using_factories.js +0 -19
  535. package/examples/advanced/custom_evaluate_using_import.js +0 -18
  536. package/examples/advanced/custom_loading.js +0 -33
  537. package/examples/advanced/custom_relational_functions.js +0 -62
  538. package/examples/advanced/custom_scope_objects.js +0 -115
  539. package/examples/advanced/expression_trees.js +0 -55
  540. package/examples/advanced/function_transform.js +0 -50
  541. package/examples/advanced/more_secure_eval.js +0 -36
  542. package/examples/advanced/use_bigint.js +0 -43
  543. package/examples/advanced/web_server/math_worker.js +0 -24
  544. package/examples/advanced/web_server/server.js +0 -80
  545. package/examples/algebra.js +0 -34
  546. package/examples/basic_usage.js +0 -49
  547. package/examples/bignumbers.js +0 -52
  548. package/examples/browser/angle_configuration.html +0 -134
  549. package/examples/browser/basic_usage.html +0 -39
  550. package/examples/browser/currency_conversion.html +0 -125
  551. package/examples/browser/custom_separators.html +0 -81
  552. package/examples/browser/plot.html +0 -78
  553. package/examples/browser/pretty_printing_with_mathjax.html +0 -122
  554. package/examples/browser/printing_html.html +0 -170
  555. package/examples/browser/requirejs_loading.html +0 -20
  556. package/examples/browser/rocket_trajectory_optimization.html +0 -301
  557. package/examples/browser/webworkers/webworkers.html +0 -80
  558. package/examples/browser/webworkers/worker.js +0 -28
  559. package/examples/chaining.js +0 -56
  560. package/examples/complex_numbers.js +0 -67
  561. package/examples/expressions.js +0 -188
  562. package/examples/fractions.js +0 -74
  563. package/examples/import.js +0 -95
  564. package/examples/matrices.js +0 -101
  565. package/examples/node_modules/.bin/envinfo +0 -15
  566. package/examples/node_modules/.bin/envinfo.cmd +0 -17
  567. package/examples/node_modules/.bin/envinfo.ps1 +0 -18
  568. package/examples/node_modules/.bin/import-local-fixture +0 -15
  569. package/examples/node_modules/.bin/import-local-fixture.cmd +0 -17
  570. package/examples/node_modules/.bin/import-local-fixture.ps1 +0 -18
  571. package/examples/node_modules/.bin/node-which +0 -15
  572. package/examples/node_modules/.bin/node-which.cmd +0 -17
  573. package/examples/node_modules/.bin/node-which.ps1 +0 -18
  574. package/examples/node_modules/.bin/webpack-cli +0 -15
  575. package/examples/node_modules/.bin/webpack-cli.cmd +0 -17
  576. package/examples/node_modules/.bin/webpack-cli.ps1 +0 -18
  577. package/examples/node_modules/@discoveryjs/json-ext/CHANGELOG.md +0 -42
  578. package/examples/node_modules/@discoveryjs/json-ext/LICENSE +0 -21
  579. package/examples/node_modules/@discoveryjs/json-ext/README.md +0 -255
  580. package/examples/node_modules/@discoveryjs/json-ext/dist/json-ext.js +0 -808
  581. package/examples/node_modules/@discoveryjs/json-ext/dist/json-ext.min.js +0 -1
  582. package/examples/node_modules/@discoveryjs/json-ext/package.json +0 -93
  583. package/examples/node_modules/@discoveryjs/json-ext/src/index.js +0 -6
  584. package/examples/node_modules/@discoveryjs/json-ext/src/parse-chunked.js +0 -339
  585. package/examples/node_modules/@discoveryjs/json-ext/src/stringify-info.js +0 -224
  586. package/examples/node_modules/@discoveryjs/json-ext/src/stringify-stream-browser.js +0 -3
  587. package/examples/node_modules/@discoveryjs/json-ext/src/stringify-stream.js +0 -394
  588. package/examples/node_modules/@discoveryjs/json-ext/src/text-decoder-browser.js +0 -1
  589. package/examples/node_modules/@discoveryjs/json-ext/src/text-decoder.js +0 -1
  590. package/examples/node_modules/@discoveryjs/json-ext/src/utils.js +0 -148
  591. package/examples/node_modules/@webpack-cli/configtest/CHANGELOG.md +0 -18
  592. package/examples/node_modules/@webpack-cli/configtest/LICENSE +0 -20
  593. package/examples/node_modules/@webpack-cli/configtest/lib/index.d.ts +0 -4
  594. package/examples/node_modules/@webpack-cli/configtest/lib/index.js +0 -62
  595. package/examples/node_modules/@webpack-cli/configtest/package.json +0 -45
  596. package/examples/node_modules/@webpack-cli/info/CHANGELOG.md +0 -61
  597. package/examples/node_modules/@webpack-cli/info/LICENSE +0 -20
  598. package/examples/node_modules/@webpack-cli/info/README.md +0 -49
  599. package/examples/node_modules/@webpack-cli/info/lib/index.d.ts +0 -4
  600. package/examples/node_modules/@webpack-cli/info/lib/index.js +0 -66
  601. package/examples/node_modules/@webpack-cli/info/package.json +0 -47
  602. package/examples/node_modules/@webpack-cli/serve/CHANGELOG.md +0 -93
  603. package/examples/node_modules/@webpack-cli/serve/LICENSE +0 -20
  604. package/examples/node_modules/@webpack-cli/serve/README.md +0 -26
  605. package/examples/node_modules/@webpack-cli/serve/lib/index.d.ts +0 -4
  606. package/examples/node_modules/@webpack-cli/serve/lib/index.js +0 -107
  607. package/examples/node_modules/@webpack-cli/serve/lib/startDevServer.d.ts +0 -12
  608. package/examples/node_modules/@webpack-cli/serve/lib/startDevServer.js +0 -113
  609. package/examples/node_modules/@webpack-cli/serve/lib/types.d.ts +0 -48
  610. package/examples/node_modules/@webpack-cli/serve/lib/types.js +0 -12
  611. package/examples/node_modules/@webpack-cli/serve/package.json +0 -50
  612. package/examples/node_modules/ansi-colors/LICENSE +0 -21
  613. package/examples/node_modules/ansi-colors/README.md +0 -315
  614. package/examples/node_modules/ansi-colors/index.js +0 -177
  615. package/examples/node_modules/ansi-colors/package.json +0 -152
  616. package/examples/node_modules/ansi-colors/symbols.js +0 -70
  617. package/examples/node_modules/ansi-colors/types/index.d.ts +0 -161
  618. package/examples/node_modules/clone-deep/LICENSE +0 -21
  619. package/examples/node_modules/clone-deep/README.md +0 -106
  620. package/examples/node_modules/clone-deep/index.js +0 -49
  621. package/examples/node_modules/clone-deep/package.json +0 -112
  622. package/examples/node_modules/colorette/LICENSE.md +0 -7
  623. package/examples/node_modules/colorette/README.md +0 -102
  624. package/examples/node_modules/colorette/index.cjs +0 -73
  625. package/examples/node_modules/colorette/index.d.ts +0 -49
  626. package/examples/node_modules/colorette/index.js +0 -73
  627. package/examples/node_modules/colorette/package.json +0 -73
  628. package/examples/node_modules/commander/CHANGELOG.md +0 -440
  629. package/examples/node_modules/commander/LICENSE +0 -22
  630. package/examples/node_modules/commander/Readme.md +0 -917
  631. package/examples/node_modules/commander/esm.mjs +0 -4
  632. package/examples/node_modules/commander/index.js +0 -2217
  633. package/examples/node_modules/commander/package-support.json +0 -16
  634. package/examples/node_modules/commander/package.json +0 -100
  635. package/examples/node_modules/commander/typings/index.d.ts +0 -627
  636. package/examples/node_modules/cross-spawn/CHANGELOG.md +0 -130
  637. package/examples/node_modules/cross-spawn/LICENSE +0 -21
  638. package/examples/node_modules/cross-spawn/README.md +0 -96
  639. package/examples/node_modules/cross-spawn/index.js +0 -39
  640. package/examples/node_modules/cross-spawn/lib/enoent.js +0 -59
  641. package/examples/node_modules/cross-spawn/lib/parse.js +0 -91
  642. package/examples/node_modules/cross-spawn/lib/util/escape.js +0 -45
  643. package/examples/node_modules/cross-spawn/lib/util/readShebang.js +0 -23
  644. package/examples/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -52
  645. package/examples/node_modules/cross-spawn/package.json +0 -104
  646. package/examples/node_modules/enquirer/CHANGELOG.md +0 -135
  647. package/examples/node_modules/enquirer/LICENSE +0 -21
  648. package/examples/node_modules/enquirer/README.md +0 -1752
  649. package/examples/node_modules/enquirer/index.d.ts +0 -151
  650. package/examples/node_modules/enquirer/index.js +0 -250
  651. package/examples/node_modules/enquirer/lib/ansi.js +0 -116
  652. package/examples/node_modules/enquirer/lib/combos.js +0 -75
  653. package/examples/node_modules/enquirer/lib/completer.js +0 -52
  654. package/examples/node_modules/enquirer/lib/interpolate.js +0 -266
  655. package/examples/node_modules/enquirer/lib/keypress.js +0 -243
  656. package/examples/node_modules/enquirer/lib/placeholder.js +0 -63
  657. package/examples/node_modules/enquirer/lib/prompt.js +0 -485
  658. package/examples/node_modules/enquirer/lib/prompts/autocomplete.js +0 -113
  659. package/examples/node_modules/enquirer/lib/prompts/basicauth.js +0 -41
  660. package/examples/node_modules/enquirer/lib/prompts/confirm.js +0 -13
  661. package/examples/node_modules/enquirer/lib/prompts/editable.js +0 -136
  662. package/examples/node_modules/enquirer/lib/prompts/form.js +0 -196
  663. package/examples/node_modules/enquirer/lib/prompts/index.js +0 -28
  664. package/examples/node_modules/enquirer/lib/prompts/input.js +0 -55
  665. package/examples/node_modules/enquirer/lib/prompts/invisible.js +0 -11
  666. package/examples/node_modules/enquirer/lib/prompts/list.js +0 -36
  667. package/examples/node_modules/enquirer/lib/prompts/multiselect.js +0 -11
  668. package/examples/node_modules/enquirer/lib/prompts/numeral.js +0 -1
  669. package/examples/node_modules/enquirer/lib/prompts/password.js +0 -18
  670. package/examples/node_modules/enquirer/lib/prompts/quiz.js +0 -37
  671. package/examples/node_modules/enquirer/lib/prompts/scale.js +0 -237
  672. package/examples/node_modules/enquirer/lib/prompts/select.js +0 -139
  673. package/examples/node_modules/enquirer/lib/prompts/snippet.js +0 -185
  674. package/examples/node_modules/enquirer/lib/prompts/sort.js +0 -37
  675. package/examples/node_modules/enquirer/lib/prompts/survey.js +0 -163
  676. package/examples/node_modules/enquirer/lib/prompts/text.js +0 -1
  677. package/examples/node_modules/enquirer/lib/prompts/toggle.js +0 -109
  678. package/examples/node_modules/enquirer/lib/render.js +0 -33
  679. package/examples/node_modules/enquirer/lib/roles.js +0 -46
  680. package/examples/node_modules/enquirer/lib/state.js +0 -69
  681. package/examples/node_modules/enquirer/lib/styles.js +0 -144
  682. package/examples/node_modules/enquirer/lib/symbols.js +0 -66
  683. package/examples/node_modules/enquirer/lib/theme.js +0 -11
  684. package/examples/node_modules/enquirer/lib/timer.js +0 -38
  685. package/examples/node_modules/enquirer/lib/types/array.js +0 -658
  686. package/examples/node_modules/enquirer/lib/types/auth.js +0 -29
  687. package/examples/node_modules/enquirer/lib/types/boolean.js +0 -88
  688. package/examples/node_modules/enquirer/lib/types/index.js +0 -7
  689. package/examples/node_modules/enquirer/lib/types/number.js +0 -86
  690. package/examples/node_modules/enquirer/lib/types/string.js +0 -185
  691. package/examples/node_modules/enquirer/lib/utils.js +0 -268
  692. package/examples/node_modules/enquirer/package.json +0 -148
  693. package/examples/node_modules/envinfo/LICENSE +0 -21
  694. package/examples/node_modules/envinfo/README.md +0 -285
  695. package/examples/node_modules/envinfo/dist/cli.js +0 -2
  696. package/examples/node_modules/envinfo/dist/envinfo.js +0 -1
  697. package/examples/node_modules/envinfo/package.json +0 -130
  698. package/examples/node_modules/execa/index.d.ts +0 -554
  699. package/examples/node_modules/execa/index.js +0 -258
  700. package/examples/node_modules/execa/lib/command.js +0 -32
  701. package/examples/node_modules/execa/lib/error.js +0 -86
  702. package/examples/node_modules/execa/lib/kill.js +0 -112
  703. package/examples/node_modules/execa/lib/promise.js +0 -46
  704. package/examples/node_modules/execa/lib/stdio.js +0 -52
  705. package/examples/node_modules/execa/lib/stream.js +0 -97
  706. package/examples/node_modules/execa/license +0 -9
  707. package/examples/node_modules/execa/package.json +0 -102
  708. package/examples/node_modules/execa/readme.md +0 -650
  709. package/examples/node_modules/fastest-levenshtein/.eslintrc.js +0 -27
  710. package/examples/node_modules/fastest-levenshtein/.prettierrc +0 -4
  711. package/examples/node_modules/fastest-levenshtein/.travis.yml +0 -17
  712. package/examples/node_modules/fastest-levenshtein/LICENSE.md +0 -21
  713. package/examples/node_modules/fastest-levenshtein/README.md +0 -55
  714. package/examples/node_modules/fastest-levenshtein/index.d.ts +0 -2
  715. package/examples/node_modules/fastest-levenshtein/index.js +0 -147
  716. package/examples/node_modules/fastest-levenshtein/package.json +0 -90
  717. package/examples/node_modules/fastest-levenshtein/test.js +0 -64
  718. package/examples/node_modules/find-up/index.d.ts +0 -137
  719. package/examples/node_modules/find-up/index.js +0 -89
  720. package/examples/node_modules/find-up/license +0 -9
  721. package/examples/node_modules/find-up/package.json +0 -85
  722. package/examples/node_modules/find-up/readme.md +0 -156
  723. package/examples/node_modules/function-bind/.editorconfig +0 -20
  724. package/examples/node_modules/function-bind/.eslintrc +0 -15
  725. package/examples/node_modules/function-bind/.jscs.json +0 -176
  726. package/examples/node_modules/function-bind/.travis.yml +0 -168
  727. package/examples/node_modules/function-bind/LICENSE +0 -20
  728. package/examples/node_modules/function-bind/README.md +0 -48
  729. package/examples/node_modules/function-bind/implementation.js +0 -52
  730. package/examples/node_modules/function-bind/index.js +0 -5
  731. package/examples/node_modules/function-bind/package.json +0 -94
  732. package/examples/node_modules/function-bind/test/.eslintrc +0 -9
  733. package/examples/node_modules/function-bind/test/index.js +0 -252
  734. package/examples/node_modules/get-stream/buffer-stream.js +0 -52
  735. package/examples/node_modules/get-stream/index.d.ts +0 -105
  736. package/examples/node_modules/get-stream/index.js +0 -61
  737. package/examples/node_modules/get-stream/license +0 -9
  738. package/examples/node_modules/get-stream/package.json +0 -79
  739. package/examples/node_modules/get-stream/readme.md +0 -124
  740. package/examples/node_modules/has/LICENSE-MIT +0 -22
  741. package/examples/node_modules/has/README.md +0 -18
  742. package/examples/node_modules/has/package.json +0 -73
  743. package/examples/node_modules/has/src/index.js +0 -5
  744. package/examples/node_modules/has/test/index.js +0 -10
  745. package/examples/node_modules/human-signals/CHANGELOG.md +0 -11
  746. package/examples/node_modules/human-signals/LICENSE +0 -201
  747. package/examples/node_modules/human-signals/README.md +0 -165
  748. package/examples/node_modules/human-signals/build/src/core.js +0 -273
  749. package/examples/node_modules/human-signals/build/src/core.js.map +0 -1
  750. package/examples/node_modules/human-signals/build/src/main.d.ts +0 -52
  751. package/examples/node_modules/human-signals/build/src/main.js +0 -71
  752. package/examples/node_modules/human-signals/build/src/main.js.map +0 -1
  753. package/examples/node_modules/human-signals/build/src/realtime.js +0 -19
  754. package/examples/node_modules/human-signals/build/src/realtime.js.map +0 -1
  755. package/examples/node_modules/human-signals/build/src/signals.js +0 -35
  756. package/examples/node_modules/human-signals/build/src/signals.js.map +0 -1
  757. package/examples/node_modules/human-signals/package.json +0 -96
  758. package/examples/node_modules/import-local/fixtures/cli.js +0 -7
  759. package/examples/node_modules/import-local/index.js +0 -19
  760. package/examples/node_modules/import-local/license +0 -9
  761. package/examples/node_modules/import-local/package.json +0 -83
  762. package/examples/node_modules/import-local/readme.md +0 -38
  763. package/examples/node_modules/interpret/CHANGELOG +0 -115
  764. package/examples/node_modules/interpret/LICENSE +0 -22
  765. package/examples/node_modules/interpret/README.md +0 -229
  766. package/examples/node_modules/interpret/index.js +0 -211
  767. package/examples/node_modules/interpret/mjs-stub.js +0 -1
  768. package/examples/node_modules/interpret/package.json +0 -118
  769. package/examples/node_modules/is-core-module/.eslintignore +0 -1
  770. package/examples/node_modules/is-core-module/.eslintrc +0 -18
  771. package/examples/node_modules/is-core-module/.github/FUNDING.yml +0 -12
  772. package/examples/node_modules/is-core-module/.github/workflows/node-4+.yml +0 -54
  773. package/examples/node_modules/is-core-module/.github/workflows/node-iojs.yml +0 -58
  774. package/examples/node_modules/is-core-module/.github/workflows/node-pretest.yml +0 -26
  775. package/examples/node_modules/is-core-module/.github/workflows/node-zero.yml +0 -58
  776. package/examples/node_modules/is-core-module/.github/workflows/rebase.yml +0 -15
  777. package/examples/node_modules/is-core-module/.github/workflows/require-allow-edits.yml +0 -14
  778. package/examples/node_modules/is-core-module/.nycrc +0 -13
  779. package/examples/node_modules/is-core-module/CHANGELOG.md +0 -58
  780. package/examples/node_modules/is-core-module/LICENSE +0 -20
  781. package/examples/node_modules/is-core-module/README.md +0 -37
  782. package/examples/node_modules/is-core-module/core.json +0 -83
  783. package/examples/node_modules/is-core-module/index.js +0 -69
  784. package/examples/node_modules/is-core-module/package.json +0 -94
  785. package/examples/node_modules/is-core-module/test/index.js +0 -83
  786. package/examples/node_modules/is-plain-object/LICENSE +0 -21
  787. package/examples/node_modules/is-plain-object/README.md +0 -104
  788. package/examples/node_modules/is-plain-object/index.d.ts +0 -5
  789. package/examples/node_modules/is-plain-object/index.js +0 -37
  790. package/examples/node_modules/is-plain-object/package.json +0 -121
  791. package/examples/node_modules/is-stream/index.d.ts +0 -80
  792. package/examples/node_modules/is-stream/index.js +0 -29
  793. package/examples/node_modules/is-stream/license +0 -9
  794. package/examples/node_modules/is-stream/package.json +0 -73
  795. package/examples/node_modules/is-stream/readme.md +0 -57
  796. package/examples/node_modules/isexe/LICENSE +0 -15
  797. package/examples/node_modules/isexe/README.md +0 -51
  798. package/examples/node_modules/isexe/index.js +0 -57
  799. package/examples/node_modules/isexe/mode.js +0 -41
  800. package/examples/node_modules/isexe/package.json +0 -60
  801. package/examples/node_modules/isexe/test/basic.js +0 -221
  802. package/examples/node_modules/isexe/windows.js +0 -42
  803. package/examples/node_modules/isobject/LICENSE +0 -21
  804. package/examples/node_modules/isobject/README.md +0 -122
  805. package/examples/node_modules/isobject/index.d.ts +0 -5
  806. package/examples/node_modules/isobject/index.js +0 -12
  807. package/examples/node_modules/isobject/package.json +0 -119
  808. package/examples/node_modules/kind-of/CHANGELOG.md +0 -160
  809. package/examples/node_modules/kind-of/LICENSE +0 -21
  810. package/examples/node_modules/kind-of/README.md +0 -367
  811. package/examples/node_modules/kind-of/index.js +0 -129
  812. package/examples/node_modules/kind-of/package.json +0 -144
  813. package/examples/node_modules/locate-path/index.d.ts +0 -83
  814. package/examples/node_modules/locate-path/index.js +0 -65
  815. package/examples/node_modules/locate-path/license +0 -9
  816. package/examples/node_modules/locate-path/package.json +0 -77
  817. package/examples/node_modules/locate-path/readme.md +0 -122
  818. package/examples/node_modules/merge-stream/LICENSE +0 -21
  819. package/examples/node_modules/merge-stream/README.md +0 -78
  820. package/examples/node_modules/merge-stream/index.js +0 -41
  821. package/examples/node_modules/merge-stream/package.json +0 -54
  822. package/examples/node_modules/mimic-fn/index.d.ts +0 -54
  823. package/examples/node_modules/mimic-fn/index.js +0 -13
  824. package/examples/node_modules/mimic-fn/license +0 -9
  825. package/examples/node_modules/mimic-fn/package.json +0 -74
  826. package/examples/node_modules/mimic-fn/readme.md +0 -69
  827. package/examples/node_modules/npm-run-path/index.d.ts +0 -89
  828. package/examples/node_modules/npm-run-path/index.js +0 -47
  829. package/examples/node_modules/npm-run-path/license +0 -9
  830. package/examples/node_modules/npm-run-path/package.json +0 -76
  831. package/examples/node_modules/npm-run-path/readme.md +0 -115
  832. package/examples/node_modules/onetime/index.d.ts +0 -64
  833. package/examples/node_modules/onetime/index.js +0 -44
  834. package/examples/node_modules/onetime/license +0 -9
  835. package/examples/node_modules/onetime/package.json +0 -75
  836. package/examples/node_modules/onetime/readme.md +0 -94
  837. package/examples/node_modules/p-limit/index.d.ts +0 -38
  838. package/examples/node_modules/p-limit/index.js +0 -57
  839. package/examples/node_modules/p-limit/license +0 -9
  840. package/examples/node_modules/p-limit/package.json +0 -84
  841. package/examples/node_modules/p-limit/readme.md +0 -101
  842. package/examples/node_modules/p-locate/index.d.ts +0 -64
  843. package/examples/node_modules/p-locate/index.js +0 -52
  844. package/examples/node_modules/p-locate/license +0 -9
  845. package/examples/node_modules/p-locate/package.json +0 -85
  846. package/examples/node_modules/p-locate/readme.md +0 -90
  847. package/examples/node_modules/p-try/index.d.ts +0 -39
  848. package/examples/node_modules/p-try/index.js +0 -9
  849. package/examples/node_modules/p-try/license +0 -9
  850. package/examples/node_modules/p-try/package.json +0 -74
  851. package/examples/node_modules/p-try/readme.md +0 -58
  852. package/examples/node_modules/path-exists/index.d.ts +0 -28
  853. package/examples/node_modules/path-exists/index.js +0 -23
  854. package/examples/node_modules/path-exists/license +0 -9
  855. package/examples/node_modules/path-exists/package.json +0 -71
  856. package/examples/node_modules/path-exists/readme.md +0 -52
  857. package/examples/node_modules/path-key/index.d.ts +0 -40
  858. package/examples/node_modules/path-key/index.js +0 -16
  859. package/examples/node_modules/path-key/license +0 -9
  860. package/examples/node_modules/path-key/package.json +0 -72
  861. package/examples/node_modules/path-key/readme.md +0 -61
  862. package/examples/node_modules/path-parse/.travis.yml +0 -9
  863. package/examples/node_modules/path-parse/LICENSE +0 -21
  864. package/examples/node_modules/path-parse/README.md +0 -42
  865. package/examples/node_modules/path-parse/index.js +0 -93
  866. package/examples/node_modules/path-parse/package.json +0 -61
  867. package/examples/node_modules/path-parse/test.js +0 -77
  868. package/examples/node_modules/pkg-dir/index.d.ts +0 -44
  869. package/examples/node_modules/pkg-dir/index.js +0 -17
  870. package/examples/node_modules/pkg-dir/license +0 -9
  871. package/examples/node_modules/pkg-dir/package.json +0 -88
  872. package/examples/node_modules/pkg-dir/readme.md +0 -66
  873. package/examples/node_modules/rechoir/LICENSE +0 -24
  874. package/examples/node_modules/rechoir/README.md +0 -74
  875. package/examples/node_modules/rechoir/index.js +0 -67
  876. package/examples/node_modules/rechoir/lib/extension.js +0 -19
  877. package/examples/node_modules/rechoir/lib/normalize.js +0 -13
  878. package/examples/node_modules/rechoir/lib/register.js +0 -15
  879. package/examples/node_modules/rechoir/package.json +0 -89
  880. package/examples/node_modules/resolve/.editorconfig +0 -37
  881. package/examples/node_modules/resolve/.eslintignore +0 -1
  882. package/examples/node_modules/resolve/.eslintrc +0 -39
  883. package/examples/node_modules/resolve/LICENSE +0 -21
  884. package/examples/node_modules/resolve/SECURITY.md +0 -3
  885. package/examples/node_modules/resolve/appveyor.yml +0 -74
  886. package/examples/node_modules/resolve/example/async.js +0 -5
  887. package/examples/node_modules/resolve/example/sync.js +0 -3
  888. package/examples/node_modules/resolve/index.js +0 -6
  889. package/examples/node_modules/resolve/lib/async.js +0 -320
  890. package/examples/node_modules/resolve/lib/caller.js +0 -8
  891. package/examples/node_modules/resolve/lib/core.js +0 -53
  892. package/examples/node_modules/resolve/lib/core.json +0 -83
  893. package/examples/node_modules/resolve/lib/is-core.js +0 -5
  894. package/examples/node_modules/resolve/lib/node-modules-paths.js +0 -42
  895. package/examples/node_modules/resolve/lib/normalize-options.js +0 -10
  896. package/examples/node_modules/resolve/lib/sync.js +0 -199
  897. package/examples/node_modules/resolve/package.json +0 -80
  898. package/examples/node_modules/resolve/readme.markdown +0 -279
  899. package/examples/node_modules/resolve/test/.eslintrc +0 -5
  900. package/examples/node_modules/resolve/test/core.js +0 -81
  901. package/examples/node_modules/resolve/test/dotdot/abc/index.js +0 -2
  902. package/examples/node_modules/resolve/test/dotdot/index.js +0 -1
  903. package/examples/node_modules/resolve/test/dotdot.js +0 -29
  904. package/examples/node_modules/resolve/test/faulty_basedir.js +0 -29
  905. package/examples/node_modules/resolve/test/filter.js +0 -34
  906. package/examples/node_modules/resolve/test/filter_sync.js +0 -33
  907. package/examples/node_modules/resolve/test/mock.js +0 -315
  908. package/examples/node_modules/resolve/test/mock_sync.js +0 -216
  909. package/examples/node_modules/resolve/test/module_dir/xmodules/aaa/index.js +0 -1
  910. package/examples/node_modules/resolve/test/module_dir/ymodules/aaa/index.js +0 -1
  911. package/examples/node_modules/resolve/test/module_dir/zmodules/bbb/main.js +0 -1
  912. package/examples/node_modules/resolve/test/module_dir/zmodules/bbb/package.json +0 -3
  913. package/examples/node_modules/resolve/test/module_dir.js +0 -56
  914. package/examples/node_modules/resolve/test/node-modules-paths.js +0 -143
  915. package/examples/node_modules/resolve/test/node_path/x/aaa/index.js +0 -1
  916. package/examples/node_modules/resolve/test/node_path/x/ccc/index.js +0 -1
  917. package/examples/node_modules/resolve/test/node_path/y/bbb/index.js +0 -1
  918. package/examples/node_modules/resolve/test/node_path/y/ccc/index.js +0 -1
  919. package/examples/node_modules/resolve/test/node_path.js +0 -70
  920. package/examples/node_modules/resolve/test/nonstring.js +0 -9
  921. package/examples/node_modules/resolve/test/pathfilter/deep_ref/main.js +0 -0
  922. package/examples/node_modules/resolve/test/pathfilter.js +0 -75
  923. package/examples/node_modules/resolve/test/precedence/aaa/index.js +0 -1
  924. package/examples/node_modules/resolve/test/precedence/aaa/main.js +0 -1
  925. package/examples/node_modules/resolve/test/precedence/aaa.js +0 -1
  926. package/examples/node_modules/resolve/test/precedence/bbb/main.js +0 -1
  927. package/examples/node_modules/resolve/test/precedence/bbb.js +0 -1
  928. package/examples/node_modules/resolve/test/precedence.js +0 -23
  929. package/examples/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  930. package/examples/node_modules/resolve/test/resolver/baz/package.json +0 -4
  931. package/examples/node_modules/resolve/test/resolver/baz/quux.js +0 -1
  932. package/examples/node_modules/resolve/test/resolver/browser_field/a.js +0 -0
  933. package/examples/node_modules/resolve/test/resolver/browser_field/b.js +0 -0
  934. package/examples/node_modules/resolve/test/resolver/browser_field/package.json +0 -5
  935. package/examples/node_modules/resolve/test/resolver/cup.coffee +0 -1
  936. package/examples/node_modules/resolve/test/resolver/dot_main/index.js +0 -1
  937. package/examples/node_modules/resolve/test/resolver/dot_main/package.json +0 -3
  938. package/examples/node_modules/resolve/test/resolver/dot_slash_main/index.js +0 -1
  939. package/examples/node_modules/resolve/test/resolver/dot_slash_main/package.json +0 -3
  940. package/examples/node_modules/resolve/test/resolver/foo.js +0 -1
  941. package/examples/node_modules/resolve/test/resolver/incorrect_main/index.js +0 -2
  942. package/examples/node_modules/resolve/test/resolver/incorrect_main/package.json +0 -3
  943. package/examples/node_modules/resolve/test/resolver/invalid_main/package.json +0 -7
  944. package/examples/node_modules/resolve/test/resolver/mug.coffee +0 -0
  945. package/examples/node_modules/resolve/test/resolver/mug.js +0 -0
  946. package/examples/node_modules/resolve/test/resolver/multirepo/lerna.json +0 -6
  947. package/examples/node_modules/resolve/test/resolver/multirepo/package.json +0 -20
  948. package/examples/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js +0 -35
  949. package/examples/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json +0 -14
  950. package/examples/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js +0 -0
  951. package/examples/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json +0 -14
  952. package/examples/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js +0 -26
  953. package/examples/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json +0 -15
  954. package/examples/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js +0 -12
  955. package/examples/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  956. package/examples/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  957. package/examples/node_modules/resolve/test/resolver/quux/foo/index.js +0 -1
  958. package/examples/node_modules/resolve/test/resolver/same_names/foo/index.js +0 -1
  959. package/examples/node_modules/resolve/test/resolver/same_names/foo.js +0 -1
  960. package/examples/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js +0 -0
  961. package/examples/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep +0 -0
  962. package/examples/node_modules/resolve/test/resolver/symlinked/package/bar.js +0 -1
  963. package/examples/node_modules/resolve/test/resolver/symlinked/package/package.json +0 -3
  964. package/examples/node_modules/resolve/test/resolver/without_basedir/main.js +0 -5
  965. package/examples/node_modules/resolve/test/resolver.js +0 -450
  966. package/examples/node_modules/resolve/test/resolver_sync.js +0 -358
  967. package/examples/node_modules/resolve/test/shadowed_core/node_modules/util/index.js +0 -0
  968. package/examples/node_modules/resolve/test/shadowed_core.js +0 -54
  969. package/examples/node_modules/resolve/test/subdirs.js +0 -13
  970. package/examples/node_modules/resolve/test/symlinks.js +0 -176
  971. package/examples/node_modules/resolve-cwd/index.d.ts +0 -48
  972. package/examples/node_modules/resolve-cwd/index.js +0 -5
  973. package/examples/node_modules/resolve-cwd/license +0 -9
  974. package/examples/node_modules/resolve-cwd/package.json +0 -75
  975. package/examples/node_modules/resolve-cwd/readme.md +0 -58
  976. package/examples/node_modules/resolve-from/index.d.ts +0 -31
  977. package/examples/node_modules/resolve-from/index.js +0 -47
  978. package/examples/node_modules/resolve-from/license +0 -9
  979. package/examples/node_modules/resolve-from/package.json +0 -68
  980. package/examples/node_modules/resolve-from/readme.md +0 -72
  981. package/examples/node_modules/shallow-clone/LICENSE +0 -21
  982. package/examples/node_modules/shallow-clone/README.md +0 -153
  983. package/examples/node_modules/shallow-clone/index.js +0 -83
  984. package/examples/node_modules/shallow-clone/package.json +0 -101
  985. package/examples/node_modules/shebang-command/index.js +0 -19
  986. package/examples/node_modules/shebang-command/license +0 -9
  987. package/examples/node_modules/shebang-command/package.json +0 -66
  988. package/examples/node_modules/shebang-command/readme.md +0 -34
  989. package/examples/node_modules/shebang-regex/index.d.ts +0 -22
  990. package/examples/node_modules/shebang-regex/index.js +0 -2
  991. package/examples/node_modules/shebang-regex/license +0 -9
  992. package/examples/node_modules/shebang-regex/package.json +0 -67
  993. package/examples/node_modules/shebang-regex/readme.md +0 -33
  994. package/examples/node_modules/signal-exit/CHANGELOG.md +0 -35
  995. package/examples/node_modules/signal-exit/LICENSE.txt +0 -16
  996. package/examples/node_modules/signal-exit/README.md +0 -39
  997. package/examples/node_modules/signal-exit/index.js +0 -163
  998. package/examples/node_modules/signal-exit/package.json +0 -66
  999. package/examples/node_modules/signal-exit/signals.js +0 -53
  1000. package/examples/node_modules/strip-final-newline/index.js +0 -16
  1001. package/examples/node_modules/strip-final-newline/license +0 -9
  1002. package/examples/node_modules/strip-final-newline/package.json +0 -72
  1003. package/examples/node_modules/strip-final-newline/readme.md +0 -30
  1004. package/examples/node_modules/v8-compile-cache/CHANGELOG.md +0 -53
  1005. package/examples/node_modules/v8-compile-cache/LICENSE +0 -21
  1006. package/examples/node_modules/v8-compile-cache/README.md +0 -55
  1007. package/examples/node_modules/v8-compile-cache/package.json +0 -66
  1008. package/examples/node_modules/v8-compile-cache/v8-compile-cache.js +0 -371
  1009. package/examples/node_modules/webpack-cli/CHANGELOG.md +0 -501
  1010. package/examples/node_modules/webpack-cli/LICENSE +0 -20
  1011. package/examples/node_modules/webpack-cli/README.md +0 -116
  1012. package/examples/node_modules/webpack-cli/bin/cli.js +0 -40
  1013. package/examples/node_modules/webpack-cli/lib/bootstrap.js +0 -18
  1014. package/examples/node_modules/webpack-cli/lib/index.js +0 -5
  1015. package/examples/node_modules/webpack-cli/lib/plugins/CLIPlugin.js +0 -99
  1016. package/examples/node_modules/webpack-cli/lib/utils/__tests__/get-package-manager.test.js +0 -108
  1017. package/examples/node_modules/webpack-cli/lib/utils/__tests__/prompt-installation.test.js +0 -118
  1018. package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-all-lock/pnpm-lock.yaml +0 -0
  1019. package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-all-lock/yarn.lock +0 -0
  1020. package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-npm-and-pnpm/pnpm-lock.yaml +0 -0
  1021. package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-npm-and-yarn/yarn.lock +0 -0
  1022. package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-pnpm-lock/pnpm-lock.yaml +0 -0
  1023. package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-yarn-and-pnpm/pnpm-lock.yaml +0 -0
  1024. package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-yarn-and-pnpm/yarn.lock +0 -0
  1025. package/examples/node_modules/webpack-cli/lib/utils/__tests__/test-yarn-lock/yarn.lock +0 -0
  1026. package/examples/node_modules/webpack-cli/lib/utils/capitalize-first-letter.js +0 -9
  1027. package/examples/node_modules/webpack-cli/lib/utils/dynamic-import-loader.js +0 -13
  1028. package/examples/node_modules/webpack-cli/lib/utils/get-package-manager.js +0 -65
  1029. package/examples/node_modules/webpack-cli/lib/utils/index.js +0 -49
  1030. package/examples/node_modules/webpack-cli/lib/utils/logger.js +0 -11
  1031. package/examples/node_modules/webpack-cli/lib/utils/package-exists.js +0 -9
  1032. package/examples/node_modules/webpack-cli/lib/utils/prompt-installation.js +0 -58
  1033. package/examples/node_modules/webpack-cli/lib/utils/run-command.js +0 -13
  1034. package/examples/node_modules/webpack-cli/lib/utils/to-kebab-case.js +0 -5
  1035. package/examples/node_modules/webpack-cli/lib/webpack-cli.js +0 -1803
  1036. package/examples/node_modules/webpack-cli/package.json +0 -96
  1037. package/examples/node_modules/webpack-merge/CHANGELOG.md +0 -421
  1038. package/examples/node_modules/webpack-merge/LICENSE +0 -20
  1039. package/examples/node_modules/webpack-merge/README.md +0 -314
  1040. package/examples/node_modules/webpack-merge/dist/index.d.ts +0 -15
  1041. package/examples/node_modules/webpack-merge/dist/index.js +0 -262
  1042. package/examples/node_modules/webpack-merge/dist/index.js.map +0 -1
  1043. package/examples/node_modules/webpack-merge/dist/join-arrays.d.ts +0 -6
  1044. package/examples/node_modules/webpack-merge/dist/join-arrays.js +0 -69
  1045. package/examples/node_modules/webpack-merge/dist/join-arrays.js.map +0 -1
  1046. package/examples/node_modules/webpack-merge/dist/merge-with.d.ts +0 -2
  1047. package/examples/node_modules/webpack-merge/dist/merge-with.js +0 -38
  1048. package/examples/node_modules/webpack-merge/dist/merge-with.js.map +0 -1
  1049. package/examples/node_modules/webpack-merge/dist/types.d.ts +0 -13
  1050. package/examples/node_modules/webpack-merge/dist/types.js +0 -12
  1051. package/examples/node_modules/webpack-merge/dist/types.js.map +0 -1
  1052. package/examples/node_modules/webpack-merge/dist/unique.d.ts +0 -2
  1053. package/examples/node_modules/webpack-merge/dist/unique.js +0 -40
  1054. package/examples/node_modules/webpack-merge/dist/unique.js.map +0 -1
  1055. package/examples/node_modules/webpack-merge/dist/utils.d.ts +0 -5
  1056. package/examples/node_modules/webpack-merge/dist/utils.js +0 -24
  1057. package/examples/node_modules/webpack-merge/dist/utils.js.map +0 -1
  1058. package/examples/node_modules/webpack-merge/package.json +0 -86
  1059. package/examples/node_modules/which/CHANGELOG.md +0 -166
  1060. package/examples/node_modules/which/LICENSE +0 -15
  1061. package/examples/node_modules/which/README.md +0 -54
  1062. package/examples/node_modules/which/bin/node-which +0 -52
  1063. package/examples/node_modules/which/package.json +0 -76
  1064. package/examples/node_modules/which/which.js +0 -125
  1065. package/examples/node_modules/wildcard/.travis.yml +0 -9
  1066. package/examples/node_modules/wildcard/README.md +0 -99
  1067. package/examples/node_modules/wildcard/docs.json +0 -9
  1068. package/examples/node_modules/wildcard/examples/arrays.js +0 -10
  1069. package/examples/node_modules/wildcard/examples/objects.js +0 -10
  1070. package/examples/node_modules/wildcard/examples/strings.js +0 -7
  1071. package/examples/node_modules/wildcard/index.js +0 -114
  1072. package/examples/node_modules/wildcard/package.json +0 -82
  1073. package/examples/node_modules/wildcard/test/all.js +0 -3
  1074. package/examples/node_modules/wildcard/test/arrays.js +0 -33
  1075. package/examples/node_modules/wildcard/test/objects.js +0 -106
  1076. package/examples/node_modules/wildcard/test/strings.js +0 -46
  1077. package/examples/node_modules/wildcard/yarn.lock +0 -228
  1078. package/examples/objects.js +0 -35
  1079. package/examples/package.json +0 -3
  1080. package/examples/serialization.js +0 -16
  1081. package/examples/sparse_matrices.js +0 -19
  1082. package/examples/units.js +0 -108
  1083. package/lib/cjs/function/algebra/simplify/resolve.js +0 -76
  1084. package/lib/esm/function/algebra/simplify/resolve.js +0 -67
package/types/index.ts CHANGED
@@ -7,35 +7,109 @@ import {
7
7
  addDependencies,
8
8
  divideDependencies,
9
9
  formatDependencies,
10
- } from 'mathjs';
10
+ MathNode,
11
+ MathJsChain,
12
+ BigNumber,
13
+ MathCollection,
14
+ Complex,
15
+ Unit,
16
+ Fraction,
17
+ MathArray,
18
+ Index,
19
+ Matrix,
20
+ EvalFunction,
21
+ LUDecomposition,
22
+ QRDecomposition,
23
+ SLUDecomposition,
24
+ MathType,
25
+ MathNumericType,
26
+ ConstantNode,
27
+ OperatorNode,
28
+ OperatorNodeFn,
29
+ OperatorNodeOp,
30
+ SymbolNode,
31
+ ParenthesisNode,
32
+ } from 'mathjs'
33
+ import * as assert from 'assert'
34
+ import { expectTypeOf } from 'expect-type'
35
+
36
+ // This file serves a dual purpose:
37
+ // 1) examples of how to use math.js in TypeScript
38
+ // 2) tests for the TypeScript declarations provided by math.js
11
39
 
12
40
  /*
13
41
  Basic usage examples
14
42
  */
15
43
  {
16
- const math = create(all);
44
+ const math = create(all)
45
+
46
+ const m2by2 = [
47
+ [-1, 2],
48
+ [3, 1],
49
+ ]
50
+ const m2by3 = [
51
+ [1, 2, 3],
52
+ [4, 5, 6],
53
+ ]
17
54
 
18
55
  // functions and constants
19
- math.round(math.e, 3);
20
- math.round(100.123, 3);
21
- math.atan2(3, -3) / math.pi;
22
- math.log(10000, 10);
23
- math.sqrt(-4);
24
- math.pow([[-1, 2], [3, 1]], 2);
25
- const angle = 0.2;
26
- math.add(math.pow(math.sin(angle), 2), math.pow(math.cos(angle), 2));
56
+ math.round(math.e, 3)
57
+ math.round(100.123, 3)
58
+ math.atan2(3, -3) / math.pi
59
+ math.log(10000, 10)
60
+ math.sqrt(-4)
61
+
62
+ math.pow(m2by2, 2)
63
+ const angle = 0.2
64
+ math.add(math.pow(math.sin(angle), 2), math.pow(math.cos(angle), 2))
65
+
66
+ // std and variance check
67
+
68
+ math.std(1, 2, 3)
69
+ math.std([1, 2, 3])
70
+ math.std([1, 2, 3], 'biased')
71
+ math.std([1, 2, 3], 0, 'biased')
72
+ math.std(m2by3, 1, 'unbiased')
73
+ math.std(m2by3, 1, 'uncorrected')
74
+ math.variance(1, 2, 3)
75
+ math.variance([1, 2, 3])
76
+ math.variance([1, 2, 3], 'biased')
77
+ math.variance([1, 2, 3], 0, 'biased')
78
+ math.variance(m2by3, 1, 'unbiased')
79
+ math.variance(m2by3, 1, 'uncorrected')
80
+
81
+ // std and variance on chain
82
+ math.chain([1, 2, 3]).std('unbiased')
83
+ math.chain(m2by3).std(0, 'biased').std(0, 'uncorrected')
84
+ math.chain(m2by3).std(0, 'biased').std(0, 'uncorrected')
85
+ math.chain([1, 2, 3]).std('unbiased')
86
+ math.chain(m2by3).variance(0, 'biased')
87
+ math.chain(m2by3).variance(1, 'uncorrected').variance('unbiased')
88
+
89
+ math.variance(math.variance(m2by3, 'uncorrected'))
27
90
 
28
91
  // expressions
29
- math.evaluate('1.2 * (2 + 4.5)');
92
+ math.evaluate('1.2 * (2 + 4.5)')
30
93
 
31
94
  // chained operations
32
- const a = math.chain(3).add(4).multiply(2).done(); // 14
95
+ const a = math.chain(3).add(4).multiply(2).done()
96
+ assert.strictEqual(a, 14)
33
97
 
34
98
  // mixed use of different data types in functions
35
- math.add(4, [5, 6]); // number + Array, [9, 10]
36
- math.multiply(math.unit('5 mm'), 3); // Unit * number, 15 mm
37
- math.subtract([2, 3, 4], 5); // Array - number, [-3, -2, -1]
38
- math.add(math.matrix([2, 3]), [4, 5]); // Matrix + Array, [6, 8]
99
+ assert.deepStrictEqual(math.add(4, [5, 6]), [9, 10]) // number + Array
100
+ assert.deepStrictEqual(
101
+ math.multiply(math.unit('5 mm'), 3),
102
+ math.unit('15 mm')
103
+ ) // Unit * number
104
+ assert.deepStrictEqual(math.subtract([2, 3, 4], 5), [-3, -2, -1]) // Array - number
105
+ assert.deepStrictEqual(
106
+ math.add(math.matrix([2, 3]), [4, 5]),
107
+ math.matrix([6, 8])
108
+ ) // Matrix + Array
109
+
110
+ // narrowed type inference
111
+ const _b: math.Matrix = math.add(math.matrix([2]), math.matrix([3]))
112
+ const _c: math.Matrix = math.subtract(math.matrix([4]), math.matrix([5]))
39
113
  }
40
114
 
41
115
  /*
@@ -46,11 +120,17 @@ Bignumbers examples
46
120
  const math = create(all, {
47
121
  number: 'BigNumber',
48
122
  precision: 20,
49
- });
123
+ })
50
124
 
51
125
  {
52
- math.add(math.bignumber(0.1), math.bignumber(0.2)); // BigNumber, 0.3
53
- math.divide(math.bignumber(0.3), math.bignumber(0.2)); // BigNumber, 1.5
126
+ assert.deepStrictEqual(
127
+ math.add(math.bignumber(0.1), math.bignumber(0.2)),
128
+ math.bignumber(0.3)
129
+ )
130
+ assert.deepStrictEqual(
131
+ math.divide(math.bignumber(0.3), math.bignumber(0.2)),
132
+ math.bignumber(1.5)
133
+ )
54
134
  }
55
135
  }
56
136
 
@@ -58,167 +138,782 @@ Bignumbers examples
58
138
  Chaining examples
59
139
  */
60
140
  {
61
- const math = create(all, {});
62
- const a = math.chain(3).add(4).multiply(2).done(); // 14
141
+ const math = create(all, {})
142
+ const a = math.chain(3).add(4).multiply(2).done()
143
+ assert.strictEqual(a, 14)
63
144
 
64
145
  // Another example, calculate square(sin(pi / 4))
65
- const b = math.chain(math.pi).divide(4).sin().square().done();
146
+ const _b = math.chain(math.pi).divide(4).sin().square().done()
66
147
 
67
148
  // toString will return a string representation of the chain's value
68
- const chain = math.chain(2).divide(3);
69
- const str: string = chain.toString(); // "0.6666666666666666"
149
+ const chain = math.chain(2).divide(3)
150
+ const str: string = chain.toString()
151
+ assert.strictEqual(str, '0.6666666666666666')
70
152
 
71
- chain.valueOf();
153
+ chain.valueOf()
72
154
 
73
155
  // the function subset can be used to get or replace sub matrices
74
156
  const array = [
75
157
  [1, 2],
76
158
  [3, 4],
77
- ];
78
- const v = math.chain(array).subset(math.index(1, 0)).done(); // 3
159
+ ]
160
+ const v = math.chain(array).subset(math.index(1, 0)).done()
161
+ assert.strictEqual(v, 3)
79
162
 
80
- const m = math.chain(array).subset(math.index(0, 0), 8).multiply(3).done();
163
+ const _m = math.chain(array).subset(math.index(0, 0), 8).multiply(3).done()
81
164
 
82
165
  // filtering
83
- math
84
- .chain([-1, 0, 1.1, 2, 3, 1000])
85
- .filter(math.isPositive)
86
- .filter(math.isInteger)
87
- .filter((n) => n !== 1000)
88
- .done(); // [2, 3]
166
+ assert.deepStrictEqual(
167
+ math
168
+ .chain([-1, 0, 1.1, 2, 3, 1000])
169
+ .filter(math.isPositive)
170
+ .filter(math.isInteger)
171
+ .filter((n) => n !== 1000)
172
+ .done(),
173
+ [2, 3]
174
+ )
175
+
176
+ const r = math.chain(-0.483).round([0, 1, 2]).floor().add(0.52).fix(1).done()
177
+
178
+ assert.deepStrictEqual(r, [0.5, -0.4, -0.4])
179
+
180
+ expectTypeOf(
181
+ math.chain('x + y').parse().resolve({ x: 1 }).done()
182
+ ).toMatchTypeOf<MathNode>()
183
+ expectTypeOf(
184
+ math.chain('x + y').parse().resolve().done()
185
+ ).toMatchTypeOf<MathNode>()
186
+
187
+ // bignum
188
+ expectTypeOf(math.chain(math.bignumber(12))).toMatchTypeOf<
189
+ MathJsChain<BigNumber>
190
+ >()
191
+ expectTypeOf(math.chain(12).bignumber()).toMatchTypeOf<
192
+ MathJsChain<BigNumber>
193
+ >()
194
+ expectTypeOf(math.chain([12, 13, 14]).bignumber()).toMatchTypeOf<
195
+ MathJsChain<MathCollection>
196
+ >()
197
+
198
+ // chain
199
+ expectTypeOf(math.chain(12).bignumber().clone()).toMatchTypeOf<
200
+ MathJsChain<BigNumber>
201
+ >()
202
+
203
+ // boolean
204
+ expectTypeOf(math.chain(math.boolean(true))).toMatchTypeOf<
205
+ MathJsChain<boolean>
206
+ >()
207
+ expectTypeOf(math.chain(true).boolean()).toMatchTypeOf<MathJsChain<boolean>>()
208
+ expectTypeOf(math.chain([12, 13, 14]).boolean()).toMatchTypeOf<
209
+ MathJsChain<MathCollection>
210
+ >()
211
+
212
+ // complex
213
+ expectTypeOf(math.chain(math.complex('123'))).toMatchTypeOf<
214
+ MathJsChain<Complex>
215
+ >()
216
+ expectTypeOf(math.chain('123').complex()).toMatchTypeOf<
217
+ MathJsChain<Complex>
218
+ >()
219
+ expectTypeOf(math.chain('123').complex(1)).toMatchTypeOf<
220
+ MathJsChain<Complex>
221
+ >()
222
+ expectTypeOf(math.chain([12, 13, 14]).complex()).toMatchTypeOf<
223
+ MathJsChain<MathCollection>
224
+ >()
225
+
226
+ // createUnit
227
+ expectTypeOf(math.chain(math.createUnit('furlong'))).toMatchTypeOf<
228
+ MathJsChain<Unit>
229
+ >()
230
+ expectTypeOf(
231
+ math.chain(
232
+ math.createUnit({
233
+ fresnel: '1234',
234
+ })
235
+ )
236
+ ).toMatchTypeOf<MathJsChain<Unit>>()
237
+
238
+ // fraction
239
+ expectTypeOf(math.chain(math.fraction('123'))).toMatchTypeOf<
240
+ MathJsChain<Fraction>
241
+ >()
242
+ expectTypeOf(math.chain('123').fraction()).toMatchTypeOf<
243
+ MathJsChain<Fraction>
244
+ >()
245
+ expectTypeOf(math.chain('123').fraction(2)).toMatchTypeOf<
246
+ MathJsChain<Fraction>
247
+ >()
248
+ expectTypeOf(math.chain([12, 13, 14]).fraction()).toMatchTypeOf<
249
+ MathJsChain<MathCollection>
250
+ >()
251
+ expectTypeOf(math.chain([12, 13, 14]).fraction()).toMatchTypeOf<
252
+ MathJsChain<MathCollection>
253
+ >()
254
+
255
+ // index
256
+ expectTypeOf(math.chain([12, 13, 14]).index()).toMatchTypeOf<
257
+ MathJsChain<Index>
258
+ >()
259
+
260
+ // matrix
261
+ expectTypeOf(math.chain([12, 13, 14, 15]).matrix()).toMatchTypeOf<
262
+ MathJsChain<Matrix>
263
+ >()
264
+
265
+ // number
266
+ expectTypeOf(math.chain('12').number()).toMatchTypeOf<MathJsChain<number>>()
267
+ expectTypeOf(math.chain([12, 13, 14]).number()).toMatchTypeOf<
268
+ MathJsChain<MathCollection>
269
+ >()
270
+
271
+ // sparse
272
+ expectTypeOf(math.chain([12, 13, 14, 15]).sparse()).toMatchTypeOf<
273
+ MathJsChain<Matrix>
274
+ >()
275
+
276
+ // split unit
277
+ expectTypeOf(math.chain(math.unit('furlong')).splitUnit([])).toMatchTypeOf<
278
+ MathJsChain<Unit[]>
279
+ >()
280
+
281
+ // string
282
+ expectTypeOf(math.chain('test').string()).toMatchTypeOf<MathJsChain<string>>()
283
+ expectTypeOf(math.chain([1, 2, 3]).string()).toMatchTypeOf<
284
+ MathJsChain<MathCollection>
285
+ >()
286
+
287
+ // unit
288
+ expectTypeOf(math.chain(12).unit()).toMatchTypeOf<MathJsChain<Unit>>()
289
+ expectTypeOf(math.chain([1, 2, 3]).unit()).toMatchTypeOf<
290
+ MathJsChain<Unit[]>
291
+ >()
292
+
293
+ // compile
294
+ expectTypeOf(math.chain('a + b').compile()).toMatchTypeOf<
295
+ MathJsChain<EvalFunction>
296
+ >()
297
+
298
+ // evaluate
299
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
300
+ expectTypeOf(math.chain('1 + 1').evaluate()).toMatchTypeOf<MathJsChain<any>>()
301
+ expectTypeOf(math.chain(['1 + 1', '2 + 2']).evaluate()).toMatchTypeOf<
302
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
303
+ MathJsChain<any[]>
304
+ >()
305
+
306
+ // parse
307
+ expectTypeOf(math.chain('1 + 1').parse()).toMatchTypeOf<
308
+ MathJsChain<MathNode>
309
+ >()
310
+ expectTypeOf(math.chain(['1 + 1', '2 + 2']).parse()).toMatchTypeOf<
311
+ MathJsChain<MathNode[]>
312
+ >()
313
+
314
+ // resolve
315
+ expectTypeOf(math.chain(math.parse('1 + 1')).resolve({})).toMatchTypeOf<
316
+ MathJsChain<MathNode>
317
+ >()
318
+ expectTypeOf(
319
+ math.chain([math.parse('1 + 1'), math.parse('1 + 1')]).resolve({})
320
+ ).toMatchTypeOf<MathJsChain<MathNode[]>>()
321
+
322
+ // derivative
323
+ expectTypeOf(math.chain(math.parse('x^2')).derivative('x')).toMatchTypeOf<
324
+ MathJsChain<MathNode>
325
+ >()
326
+
327
+ // lsolve
328
+ expectTypeOf(
329
+ math
330
+ .chain([
331
+ [1, 2],
332
+ [3, 4],
333
+ ])
334
+ .lsolve([1, 2])
335
+ ).toMatchTypeOf<MathJsChain<MathArray>>()
336
+ expectTypeOf(
337
+ math
338
+ .chain(
339
+ math.matrix([
340
+ [1, 2],
341
+ [3, 4],
342
+ ])
343
+ )
344
+ .lsolve([1, 2])
345
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
346
+
347
+ // lup
348
+ expectTypeOf(
349
+ math
350
+ .chain([
351
+ [1, 2],
352
+ [3, 4],
353
+ ])
354
+ .lup()
355
+ ).toMatchTypeOf<MathJsChain<LUDecomposition>>()
356
+ expectTypeOf(
357
+ math
358
+ .chain(
359
+ math.matrix([
360
+ [1, 2],
361
+ [3, 4],
362
+ ])
363
+ )
364
+ .lup()
365
+ ).toMatchTypeOf<MathJsChain<LUDecomposition>>()
366
+
367
+ // lusolve
368
+ expectTypeOf(
369
+ math
370
+ .chain(
371
+ math.matrix([
372
+ [1, 2],
373
+ [3, 4],
374
+ ])
375
+ )
376
+ .lusolve(math.matrix([1, 2]))
377
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
378
+
379
+ expectTypeOf(
380
+ math
381
+ .chain(
382
+ math.matrix([
383
+ [1, 2],
384
+ [3, 4],
385
+ ])
386
+ )
387
+ .lusolve([1, 2])
388
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
389
+
390
+ expectTypeOf(
391
+ math
392
+ .chain([
393
+ [1, 2],
394
+ [3, 4],
395
+ ])
396
+ .lusolve(math.matrix([1, 2]))
397
+ ).toMatchTypeOf<MathJsChain<MathArray>>()
398
+
399
+ expectTypeOf(
400
+ math
401
+ .chain([
402
+ [1, 2],
403
+ [3, 4],
404
+ ])
405
+ .lusolve([1, 2])
406
+ ).toMatchTypeOf<MathJsChain<MathArray>>()
407
+
408
+ // qr
409
+ expectTypeOf(
410
+ math
411
+ .chain([
412
+ [1, 2],
413
+ [3, 4],
414
+ ])
415
+ .qr()
416
+ ).toMatchTypeOf<MathJsChain<QRDecomposition>>()
417
+ expectTypeOf(
418
+ math
419
+ .chain(
420
+ math.matrix([
421
+ [1, 2],
422
+ [3, 4],
423
+ ])
424
+ )
425
+ .qr()
426
+ ).toMatchTypeOf<MathJsChain<QRDecomposition>>()
427
+
428
+ // rationalize
429
+ expectTypeOf(math.chain('1.23').rationalize()).toMatchTypeOf<
430
+ MathJsChain<MathNode>
431
+ >()
432
+ expectTypeOf(math.chain(math.parse('1.23')).rationalize()).toMatchTypeOf<
433
+ MathJsChain<MathNode>
434
+ >()
435
+
436
+ // simplify
437
+ expectTypeOf(math.chain('a + a + b').simplify()).toMatchTypeOf<
438
+ MathJsChain<MathNode>
439
+ >()
440
+ expectTypeOf(math.chain(math.parse('a + a + b')).simplify()).toMatchTypeOf<
441
+ MathJsChain<MathNode>
442
+ >()
443
+
444
+ // slu
445
+ expectTypeOf(
446
+ math
447
+ .chain(
448
+ math.sparse([
449
+ [1, 2],
450
+ [3, 4],
451
+ ])
452
+ )
453
+ .slu(2, 0.5)
454
+ ).toMatchTypeOf<MathJsChain<SLUDecomposition>>()
455
+
456
+ // usolve
457
+ expectTypeOf(
458
+ math
459
+ .chain([
460
+ [1, 2],
461
+ [3, 4],
462
+ ])
463
+ .usolve([1, 2])
464
+ ).toMatchTypeOf<MathJsChain<MathArray>>()
465
+ expectTypeOf(
466
+ math
467
+ .chain(
468
+ math.matrix([
469
+ [1, 2],
470
+ [3, 4],
471
+ ])
472
+ )
473
+ .usolve([1, 2])
474
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
475
+
476
+ // abs
477
+ expectTypeOf(math.chain(1).abs()).toMatchTypeOf<MathJsChain<number>>()
478
+ expectTypeOf(math.chain(math.bignumber(1)).abs()).toMatchTypeOf<
479
+ MathJsChain<BigNumber>
480
+ >()
481
+ expectTypeOf(math.chain(math.fraction(1, 2)).abs()).toMatchTypeOf<
482
+ MathJsChain<Fraction>
483
+ >()
484
+ expectTypeOf(math.chain(math.complex(1, 2)).abs()).toMatchTypeOf<
485
+ MathJsChain<Complex>
486
+ >()
487
+ expectTypeOf(math.chain([1, 2]).abs()).toMatchTypeOf<MathJsChain<MathArray>>()
488
+ expectTypeOf(
489
+ math
490
+ .chain(
491
+ math.matrix([
492
+ [1, 2],
493
+ [3, 4],
494
+ ])
495
+ )
496
+ .abs()
497
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
498
+ expectTypeOf(math.chain(math.unit('furlong')).abs()).toMatchTypeOf<
499
+ MathJsChain<Unit>
500
+ >()
501
+
502
+ // add
503
+ expectTypeOf(math.chain(1).add(2)).toMatchTypeOf<MathJsChain<MathType>>()
504
+ expectTypeOf(math.chain([1]).add(2)).toMatchTypeOf<MathJsChain<MathType>>()
505
+ expectTypeOf(
506
+ math.chain(
507
+ math.matrix([
508
+ [1, 2],
509
+ [3, 4],
510
+ ])
511
+ )
512
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
513
+
514
+ // apply
515
+ expectTypeOf(math.chain([1, 2, 3]).apply(0, () => 1)).toMatchTypeOf<
516
+ MathJsChain<number[]>
517
+ >()
518
+
519
+ // cbrt
520
+ expectTypeOf(math.chain(1).cbrt()).toMatchTypeOf<MathJsChain<number>>()
521
+ expectTypeOf(math.chain(math.bignumber(1)).cbrt()).toMatchTypeOf<
522
+ MathJsChain<BigNumber>
523
+ >()
524
+ expectTypeOf(math.chain(math.complex(1, 2)).cbrt()).toMatchTypeOf<
525
+ MathJsChain<Complex>
526
+ >()
527
+ expectTypeOf(math.chain([1, 2]).cbrt()).toMatchTypeOf<
528
+ MathJsChain<MathArray>
529
+ >()
530
+ expectTypeOf(
531
+ math
532
+ .chain(
533
+ math.matrix([
534
+ [1, 2],
535
+ [3, 4],
536
+ ])
537
+ )
538
+ .cbrt()
539
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
540
+
541
+ // cbrt
542
+ expectTypeOf(math.chain(1).ceil()).toMatchTypeOf<
543
+ MathJsChain<MathNumericType>
544
+ >()
545
+ expectTypeOf(math.chain([1]).ceil()).toMatchTypeOf<
546
+ MathJsChain<MathCollection>
547
+ >()
548
+
549
+ // fix
550
+ expectTypeOf(math.chain(1).fix()).toMatchTypeOf<
551
+ MathJsChain<MathNumericType>
552
+ >()
553
+ expectTypeOf(math.chain([1]).fix()).toMatchTypeOf<
554
+ MathJsChain<MathCollection>
555
+ >()
556
+
557
+ // floor
558
+ expectTypeOf(math.chain(1).floor()).toMatchTypeOf<
559
+ MathJsChain<MathNumericType>
560
+ >()
561
+ expectTypeOf(math.chain([1]).floor()).toMatchTypeOf<
562
+ MathJsChain<MathCollection>
563
+ >()
564
+
565
+ // round
566
+ expectTypeOf(math.chain(1).round()).toMatchTypeOf<
567
+ MathJsChain<MathNumericType>
568
+ >()
569
+ expectTypeOf(math.chain([1]).round()).toMatchTypeOf<
570
+ MathJsChain<MathCollection>
571
+ >()
572
+
573
+ // cube
574
+ expectTypeOf(math.chain(1).cube()).toMatchTypeOf<MathJsChain<number>>()
575
+ expectTypeOf(math.chain(math.bignumber(1)).cube()).toMatchTypeOf<
576
+ MathJsChain<BigNumber>
577
+ >()
578
+ expectTypeOf(math.chain(math.fraction(1, 2)).cube()).toMatchTypeOf<
579
+ MathJsChain<Fraction>
580
+ >()
581
+ expectTypeOf(math.chain(math.complex(1, 2)).cube()).toMatchTypeOf<
582
+ MathJsChain<Complex>
583
+ >()
584
+ expectTypeOf(math.chain([1, 2]).cube()).toMatchTypeOf<
585
+ MathJsChain<MathArray>
586
+ >()
587
+ expectTypeOf(
588
+ math
589
+ .chain(
590
+ math.matrix([
591
+ [1, 2],
592
+ [3, 4],
593
+ ])
594
+ )
595
+ .cube()
596
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
597
+ expectTypeOf(math.chain(math.unit('furlong')).cube()).toMatchTypeOf<
598
+ MathJsChain<Unit>
599
+ >()
600
+
601
+ // divide
602
+ expectTypeOf(
603
+ math.chain(math.unit('furlong')).divide(math.unit('femtosecond'))
604
+ ).toMatchTypeOf<MathJsChain<number | Unit>>()
605
+ expectTypeOf(math.chain(math.unit('furlong')).divide(6)).toMatchTypeOf<
606
+ MathJsChain<Unit>
607
+ >()
608
+ expectTypeOf(math.chain(2).divide(6)).toMatchTypeOf<MathJsChain<number>>()
609
+ expectTypeOf(math.chain([1, 2, 3]).divide(6)).toMatchTypeOf<
610
+ MathJsChain<MathType>
611
+ >()
612
+
613
+ // dotDivide
614
+ expectTypeOf(math.chain(1).dotDivide(2)).toMatchTypeOf<
615
+ MathJsChain<MathType>
616
+ >()
617
+ expectTypeOf(
618
+ math
619
+ .chain(
620
+ math.matrix([
621
+ [1, 2],
622
+ [3, 4],
623
+ ])
624
+ )
625
+ .dotDivide(2)
626
+ ).toMatchTypeOf<MathJsChain<MathType>>()
627
+
628
+ // dotMultiply
629
+ expectTypeOf(math.chain(1).dotMultiply(2)).toMatchTypeOf<
630
+ MathJsChain<MathType>
631
+ >()
632
+ expectTypeOf(
633
+ math
634
+ .chain(
635
+ math.matrix([
636
+ [1, 2],
637
+ [3, 4],
638
+ ])
639
+ )
640
+ .dotMultiply(2)
641
+ ).toMatchTypeOf<MathJsChain<MathType>>()
642
+
643
+ // dotPow
644
+ expectTypeOf(math.chain(1).dotPow(2)).toMatchTypeOf<MathJsChain<MathType>>()
645
+ expectTypeOf(
646
+ math
647
+ .chain(
648
+ math.matrix([
649
+ [1, 2],
650
+ [3, 4],
651
+ ])
652
+ )
653
+ .dotPow(2)
654
+ ).toMatchTypeOf<MathJsChain<MathType>>()
655
+
656
+ // exp
657
+ expectTypeOf(math.chain(1).exp()).toMatchTypeOf<MathJsChain<MathType>>()
658
+ expectTypeOf(math.chain([1, 2]).exp()).toMatchTypeOf<MathJsChain<MathArray>>()
659
+ expectTypeOf(
660
+ math
661
+ .chain(
662
+ math.matrix([
663
+ [1, 2],
664
+ [3, 4],
665
+ ])
666
+ )
667
+ .exp()
668
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
669
+
670
+ // expm1
671
+ expectTypeOf(math.chain(1).expm1()).toMatchTypeOf<MathJsChain<MathType>>()
672
+ expectTypeOf(math.chain([1, 2]).expm1()).toMatchTypeOf<
673
+ MathJsChain<MathArray>
674
+ >()
675
+ expectTypeOf(
676
+ math
677
+ .chain(
678
+ math.matrix([
679
+ [1, 2],
680
+ [3, 4],
681
+ ])
682
+ )
683
+ .expm1()
684
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
685
+
686
+ // gcd
687
+ expectTypeOf(math.chain([1, 2]).gcd(3)).toMatchTypeOf<MathJsChain<number>>()
688
+ expectTypeOf(math.chain([1, 2]).gcd(3, 4)).toMatchTypeOf<
689
+ MathJsChain<number>
690
+ >()
691
+ // TODO make gcd() work in the following cases
692
+ // expectTypeOf(math.chain([1, 2]).gcd()).toMatchTypeOf<MathJsChain<number>>()
693
+ // expectTypeOf(math.chain([[1], [2]]).gcd()).toMatchTypeOf<
694
+ // MathJsChain<MathArray>
695
+ // >()
696
+ // expectTypeOf(
697
+ // math.chain([math.bignumber(1), math.bignumber(1)]).gcd()
698
+ // ).toMatchTypeOf<MathJsChain<BigNumber>>()
699
+ // expectTypeOf(
700
+ // math.chain([math.complex(1, 2), math.complex(1, 2)]).gcd()
701
+ // ).toMatchTypeOf<MathJsChain<Complex>>()
702
+ // expectTypeOf(
703
+ // math
704
+ // .chain(
705
+ // math.matrix([
706
+ // [1, 2],
707
+ // [3, 4],
708
+ // ])
709
+ // )
710
+ // .expm1()
711
+ // ).toMatchTypeOf<MathJsChain<Matrix>>()
712
+
713
+ // hypot
714
+ expectTypeOf(math.chain([1, 2]).hypot()).toMatchTypeOf<MathJsChain<number>>()
715
+ expectTypeOf(
716
+ math.chain([math.bignumber(1), math.bignumber(1)]).hypot()
717
+ ).toMatchTypeOf<MathJsChain<BigNumber>>()
718
+
719
+ // lcm
720
+ expectTypeOf(math.chain(1).lcm(2)).toMatchTypeOf<MathJsChain<number>>()
721
+ expectTypeOf(
722
+ math.chain(math.bignumber(1)).lcm(math.bignumber(2))
723
+ ).toMatchTypeOf<MathJsChain<BigNumber>>()
724
+ expectTypeOf(math.chain([1, 2]).lcm([3, 4])).toMatchTypeOf<
725
+ MathJsChain<MathArray>
726
+ >()
727
+ expectTypeOf(
728
+ math
729
+ .chain(
730
+ math.matrix([
731
+ [1, 2],
732
+ [3, 4],
733
+ ])
734
+ )
735
+ .lcm(
736
+ math.matrix([
737
+ [1, 2],
738
+ [3, 4],
739
+ ])
740
+ )
741
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
742
+
743
+ // log
744
+ expectTypeOf(math.chain(1).log(2)).toMatchTypeOf<MathJsChain<number>>()
745
+ expectTypeOf(
746
+ math.chain(math.bignumber(1)).log(math.bignumber(2))
747
+ ).toMatchTypeOf<MathJsChain<BigNumber>>()
748
+
749
+ // log10
750
+ expectTypeOf(math.chain(1).log10()).toMatchTypeOf<MathJsChain<number>>()
751
+ expectTypeOf(math.chain(math.bignumber(1)).log10()).toMatchTypeOf<
752
+ MathJsChain<BigNumber>
753
+ >()
754
+ expectTypeOf(math.chain([1, 2]).log10()).toMatchTypeOf<
755
+ MathJsChain<MathArray>
756
+ >()
757
+ expectTypeOf(
758
+ math
759
+ .chain(
760
+ math.matrix([
761
+ [1, 2],
762
+ [3, 4],
763
+ ])
764
+ )
765
+ .log10()
766
+ ).toMatchTypeOf<MathJsChain<Matrix>>()
767
+
768
+ // TODO complete the rest of these...
89
769
  }
90
770
 
91
771
  /*
92
772
  Simplify examples
93
773
  */
94
774
  {
95
- const math = create(all);
775
+ const math = create(all)
96
776
 
97
- math.simplify("2 * 1 * x ^ (2 - 1)");
98
- math.simplify("2 * 3 * x", { x: 4 });
777
+ math.simplify('2 * 1 * x ^ (2 - 1)')
778
+ math.simplify('2 * 3 * x', { x: 4 })
99
779
 
100
- const f = math.parse("2 * 1 * x ^ (2 - 1)");
101
- math.simplify(f);
780
+ const f = math.parse('2 * 1 * x ^ (2 - 1)')
781
+ math.simplify(f)
102
782
 
103
- math.simplify("0.4 * x", {}, { exactFractions: true });
104
- math.simplify("0.4 * x", {}, { exactFractions: false });
783
+ math.simplify('0.4 * x', {}, { exactFractions: true })
784
+ math.simplify('0.4 * x', {}, { exactFractions: false })
105
785
  }
106
786
 
107
787
  /*
108
788
  Complex numbers examples
109
789
  */
110
790
  {
111
- const math = create(all, {});
112
- const a = math.complex(2, 3);
791
+ const math = create(all, {})
792
+ const a = math.complex(2, 3)
113
793
  // create a complex number by providing a string with real and complex parts
114
- const b = math.complex('3 - 7i');
794
+ const b = math.complex('3 - 7i')
115
795
 
116
796
  // read the real and complex parts of the complex number
117
797
  {
118
- const x: number = a.re;
119
- const y: number = a.im;
798
+ const _x: number = a.re
799
+ const _y: number = a.im
120
800
 
121
801
  // adjust the complex value
122
- a.re = 5;
802
+ a.re = 5
123
803
  }
124
804
 
125
805
  // clone a complex value
126
806
  {
127
- const clone = a.clone();
807
+ const _clone = a.clone()
128
808
  }
129
809
 
130
810
  // perform operations with complex numbers
131
811
  {
132
- math.add(a, b);
133
- math.multiply(a, b);
134
- math.sin(a);
812
+ math.add(a, b)
813
+ math.multiply(a, b)
814
+ math.sin(a)
135
815
  }
136
816
 
137
817
  // create a complex number from polar coordinates
138
818
  {
139
- const p: math.PolarCoordinates = { r: math.sqrt(2), phi: math.pi / 4 };
140
- const c: math.Complex = math.complex(p);
819
+ const p: math.PolarCoordinates = { r: math.sqrt(2), phi: math.pi / 4 }
820
+ const _c: math.Complex = math.complex(p)
141
821
  }
142
822
 
143
823
  // get polar coordinates of a complex number
144
824
  {
145
- const p: math.PolarCoordinates = math.complex(3, 4).toPolar();
825
+ const _p: math.PolarCoordinates = math.complex(3, 4).toPolar()
146
826
  }
147
827
  }
148
828
 
829
+ /*
830
+ Parenthesis examples
831
+ */
832
+ {
833
+ const math = create(all, {})
834
+
835
+ expectTypeOf(
836
+ new math.ParenthesisNode(new math.ConstantNode(3))
837
+ ).toMatchTypeOf<ParenthesisNode<ConstantNode>>()
838
+ }
839
+
149
840
  /*
150
841
  Expressions examples
151
842
  */
152
843
  {
153
- const math = create(all, {});
844
+ const math = create(all, {})
154
845
  // evaluate expressions
155
846
  {
156
- math.evaluate('sqrt(3^2 + 4^2)');
847
+ math.evaluate('sqrt(3^2 + 4^2)')
157
848
  }
158
849
 
159
850
  // evaluate multiple expressions at once
160
851
  {
161
- math.evaluate(['f = 3', 'g = 4', 'f * g']);
852
+ math.evaluate(['f = 3', 'g = 4', 'f * g'])
162
853
  }
163
854
 
164
855
  // get content of a parenthesis node
165
856
  {
166
- const node = math.parse('(1)');
167
- const innerNode = node.content;
857
+ const node = math.parse('(1)')
858
+ if (node.type !== 'ParenthesisNode') {
859
+ throw Error(`expected ParenthesisNode, got ${node.type}`)
860
+ }
861
+ const _innerNode = node.content
168
862
  }
169
863
 
170
864
  // scope can contain both variables and functions
171
865
  {
172
- const scope = { hello: (name: string) => `hello, ${name}!` };
173
- math.evaluate('hello("hero")', scope); // "hello, hero!"
866
+ const scope = { hello: (name: string) => `hello, ${name}!` }
867
+ assert.strictEqual(math.evaluate('hello("hero")', scope), 'hello, hero!')
174
868
  }
175
869
 
176
870
  // define a function as an expression
177
871
  {
872
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
178
873
  const scope: any = {
179
874
  a: 3,
180
875
  b: 4,
181
- };
182
- const f = math.evaluate('f(x) = x ^ a', scope);
183
- f(2);
184
- scope.f(2);
876
+ }
877
+ const f = math.evaluate('f(x) = x ^ a', scope)
878
+ f(2)
879
+ scope.f(2)
185
880
  }
186
881
 
187
882
  {
188
- const node2 = math.parse('x^a');
189
- const code2: math.EvalFunction = node2.compile();
190
- node2.toString();
883
+ const node2 = math.parse('x^a')
884
+ const _code2: math.EvalFunction = node2.compile()
885
+ node2.toString()
191
886
  }
192
887
 
193
888
  // 3. using function math.compile
194
889
  // parse an expression
195
890
  {
196
891
  // provide a scope for the variable assignment
197
- const code2 = math.compile('a = a + 3');
198
- const scope = { a: 7 };
199
- code2.evaluate(scope);
892
+ const code2 = math.compile('a = a + 3')
893
+ const scope = { a: 7 }
894
+ code2.evaluate(scope)
200
895
  }
201
896
  // 4. using a parser
202
- const parser = math.parser();
897
+ const parser = math.parser()
203
898
 
204
899
  // get and set variables and functions
205
900
  {
206
- parser.evaluate('x = 7 / 2'); // 3.5
207
- parser.evaluate('x + 3'); // 6.5
208
- parser.evaluate('f(x, y) = x^y'); // f(x, y)
209
- parser.evaluate('f(2, 3)'); // 8
210
-
211
- const x = parser.get('x');
212
- const f = parser.get('f');
213
- const y = parser.getAll();
214
- const g = f(3, 3);
215
-
216
- parser.set('h', 500);
217
- parser.set('hello', (name: string) => `hello, ${name}!`);
901
+ assert.strictEqual(parser.evaluate('x = 7 / 2'), 3.5)
902
+ assert.strictEqual(parser.evaluate('x + 3'), 6.5)
903
+ parser.evaluate('f(x, y) = x^y') // f(x, y)
904
+ assert.strictEqual(parser.evaluate('f(2, 3)'), 8)
905
+
906
+ const _x = parser.get('x')
907
+ const f = parser.get('f')
908
+ const _y = parser.getAll()
909
+ const _g = f(3, 3)
910
+
911
+ parser.set('h', 500)
912
+ parser.set('hello', (name: string) => `hello, ${name}!`)
218
913
  }
219
914
 
220
915
  // clear defined functions and variables
221
- parser.clear();
916
+ parser.clear()
222
917
  }
223
918
 
224
919
  /*
@@ -228,108 +923,223 @@ Fractions examples
228
923
  // configure the default type of numbers as Fractions
229
924
  const math = create(all, {
230
925
  number: 'Fraction',
231
- });
926
+ })
232
927
 
233
- const x = math.fraction(0.125);
234
- const y = math.fraction('1/3');
235
- math.fraction(2, 3);
928
+ const x = math.fraction(0.125)
929
+ const y = math.fraction('1/3')
930
+ math.fraction(2, 3)
236
931
 
237
- math.add(x, y);
238
- math.divide(x, y);
932
+ math.add(x, y)
933
+ math.divide(x, y)
239
934
 
240
935
  // output formatting
241
- const a = math.fraction('2/3');
936
+ const _a = math.fraction('2/3')
937
+ }
938
+
939
+ /*
940
+ Transform examples
941
+ */
942
+ {
943
+ const math = create(all, {})
944
+ {
945
+ const myTransform1 = (node: MathNode): OperatorNode<'+', 'add'> =>
946
+ new OperatorNode('+', 'add', [node, new ConstantNode(1)])
947
+ const myTransform2 = (
948
+ node: OperatorNode<'+', 'add'>
949
+ ): OperatorNode<'-', 'subtract'> =>
950
+ new OperatorNode('-', 'subtract', [node, new ConstantNode(5)])
951
+
952
+ expectTypeOf(
953
+ math.parse('sqrt(3^2 + 4^2)').transform(myTransform1)
954
+ ).toMatchTypeOf<OperatorNode<'+', 'add', MathNode[]>>()
955
+
956
+ assert.deepStrictEqual(
957
+ math.parse('sqrt(3^2 + 4^2)').transform(myTransform1).toString(),
958
+ 'sqrt(3 ^ 2 + 4 ^ 2) + 1'
959
+ )
960
+
961
+ expectTypeOf(
962
+ math
963
+ .parse('sqrt(3^2 + 4^2)')
964
+ .transform(myTransform1)
965
+ .transform(myTransform2)
966
+ ).toMatchTypeOf<OperatorNode<'-', 'subtract', MathNode[]>>()
967
+
968
+ assert.deepStrictEqual(
969
+ math
970
+ .parse('sqrt(3^2 + 4^2)')
971
+ .transform(myTransform1)
972
+ .transform(myTransform2)
973
+ .toString(),
974
+ 'sqrt(3 ^ 2 + 4 ^ 2) + 1 - 5'
975
+ )
976
+ }
242
977
  }
243
978
 
244
979
  /*
245
980
  Matrices examples
246
981
  */
247
982
  {
248
- const math = create(all, {});
983
+ const math = create(all, {})
249
984
 
250
985
  // create matrices and arrays. a matrix is just a wrapper around an Array,
251
986
  // providing some handy utilities.
252
- const a: math.Matrix = math.matrix([1, 4, 9, 16, 25]);
253
- const b: math.Matrix = math.matrix(math.ones([2, 3]));
254
- b.size();
987
+ const a: math.Matrix = math.matrix([1, 4, 9, 16, 25])
988
+ const b: math.Matrix = math.matrix(math.ones([2, 3]))
989
+ b.size()
255
990
 
256
991
  // the Array data of a Matrix can be retrieved using valueOf()
257
- const array = a.valueOf();
992
+ const _array = a.valueOf()
258
993
 
259
994
  // Matrices can be cloned
260
- const clone: math.Matrix = a.clone();
995
+ const _clone: math.Matrix = a.clone()
261
996
 
262
997
  // perform operations with matrices
263
- math.sqrt(a);
264
- math.factorial(a);
998
+ math.sqrt(a)
999
+ math.factorial(a)
265
1000
 
266
1001
  // create and manipulate matrices. Arrays and Matrices can be used mixed.
267
1002
  {
268
1003
  const a = [
269
1004
  [1, 2],
270
1005
  [3, 4],
271
- ];
1006
+ ]
272
1007
  const b: math.Matrix = math.matrix([
273
1008
  [5, 6],
274
1009
  [1, 1],
275
- ]);
1010
+ ])
276
1011
 
277
- b.subset(math.index(1, [0, 1]), [[7, 8]]);
278
- const c = math.multiply(a, b);
279
- const f: math.Matrix = math.matrix([1, 0]);
280
- const d: math.Matrix = f.subset(math.index(1, 0));
1012
+ b.subset(math.index(1, [0, 1]), [[7, 8]])
1013
+ const _c = math.multiply(a, b)
1014
+ const f: math.Matrix = math.matrix([1, 0])
1015
+ const _d: math.Matrix = f.subset(math.index(1))
281
1016
  }
282
1017
 
283
1018
  // get a sub matrix
284
1019
  {
285
- const a: math.Matrix = math.diag(math.range(1, 4));
286
- a.subset(math.index([1, 2], [1, 2]));
287
- const b: math.Matrix = math.range(1, 6);
288
- b.subset(math.index(math.range(1, 4)));
1020
+ const a: math.Matrix = math.diag(math.range(1, 4))
1021
+ a.subset(math.index([1, 2], [1, 2]))
1022
+ const b: math.Matrix = math.range(1, 6)
1023
+ b.subset(math.index(math.range(1, 4)))
289
1024
  }
290
1025
 
291
1026
  // resize a multi dimensional matrix
292
1027
  {
293
- const a = math.matrix();
294
- a.resize([2, 2, 2], 0);
295
- a.size();
296
- a.resize([2, 2]);
297
- a.size();
1028
+ const a = math.matrix()
1029
+ a.resize([2, 2, 2], 0)
1030
+ a.size()
1031
+ a.resize([2, 2])
1032
+ a.size()
298
1033
  }
299
1034
 
300
1035
  // can set a subset of a matrix to uninitialized
301
1036
  {
302
- const m = math.matrix();
303
- m.subset(math.index(2), 6, math.uninitialized);
1037
+ const m = math.matrix()
1038
+ m.subset(math.index(2), 6, math.uninitialized)
304
1039
  }
305
1040
 
306
1041
  // create ranges
307
1042
  {
308
- math.range(1, 6);
309
- math.range(0, 18, 3);
310
- math.range('2:-1:-3');
311
- math.factorial(math.range('1:6'));
1043
+ math.range(1, 6)
1044
+ math.range(0, 18, 3)
1045
+ math.range('2:-1:-3')
1046
+ math.factorial(math.range('1:6'))
312
1047
  }
313
1048
 
314
1049
  // map matrix
315
1050
  {
316
- math.map([1, 2, 3], function (value) {
317
- return value * value;
318
- }); // returns [1, 4, 9]
1051
+ assert.deepStrictEqual(
1052
+ math.map([1, 2, 3], function (value) {
1053
+ return value * value
1054
+ }),
1055
+ [1, 4, 9]
1056
+ )
319
1057
  }
320
1058
 
321
1059
  // filter matrix
322
1060
  {
323
- math.filter([6, -2, -1, 4, 3], function (x) {
324
- return x > 0;
325
- }); // returns [6, 4, 3]
326
- math.filter(['23', 'foo', '100', '55', 'bar'], /[0-9]+/); // returns ["23", "100", "55"]
1061
+ assert.deepStrictEqual(
1062
+ math.filter([6, -2, -1, 4, 3], function (x) {
1063
+ return x > 0
1064
+ }),
1065
+ [6, 4, 3]
1066
+ )
1067
+ assert.deepStrictEqual(
1068
+ math.filter(['23', 'foo', '100', '55', 'bar'], /[0-9]+/),
1069
+ ['23', '100', '55']
1070
+ )
327
1071
  }
328
1072
 
329
1073
  // concat matrix
330
1074
  {
331
- math.concat([[0, 1, 2]], [[1, 2, 3]]); // returns [[ 0, 1, 2, 1, 2, 3 ]]
332
- math.concat([[0, 1, 2]], [[1, 2, 3]], 0); // returns [[ 0, 1, 2 ], [ 1, 2, 3 ]]
1075
+ assert.deepStrictEqual(math.concat([[0, 1, 2]], [[1, 2, 3]]), [
1076
+ [0, 1, 2, 1, 2, 3],
1077
+ ])
1078
+ assert.deepStrictEqual(math.concat([[0, 1, 2]], [[1, 2, 3]], 0), [
1079
+ [0, 1, 2],
1080
+ [1, 2, 3],
1081
+ ])
1082
+ }
1083
+
1084
+ // Matrix is available as a constructor for instanceof checks
1085
+ {
1086
+ assert.strictEqual(math.matrix([1, 2, 3]) instanceof math.Matrix, true)
1087
+ }
1088
+
1089
+ // Fourier transform and inverse
1090
+ {
1091
+ assert.ok(
1092
+ math.deepEqual(
1093
+ math.fft([
1094
+ [1, 0],
1095
+ [1, 0],
1096
+ ]),
1097
+ [
1098
+ [math.complex(2, 0), math.complex(2, 0)],
1099
+ [math.complex(0, 0), math.complex(0, 0)],
1100
+ ]
1101
+ )
1102
+ )
1103
+ assert.ok(
1104
+ math.deepEqual(
1105
+ math.fft(
1106
+ math.matrix([
1107
+ [1, 0],
1108
+ [1, 0],
1109
+ ])
1110
+ ),
1111
+ math.matrix([
1112
+ [math.complex(2, 0), math.complex(2, 0)],
1113
+ [math.complex(0, 0), math.complex(0, 0)],
1114
+ ])
1115
+ )
1116
+ )
1117
+ assert.ok(
1118
+ math.deepEqual(
1119
+ math.ifft([
1120
+ [2, 2],
1121
+ [0, 0],
1122
+ ]),
1123
+ [
1124
+ [math.complex(1, 0), math.complex(0, 0)],
1125
+ [math.complex(1, 0), math.complex(0, 0)],
1126
+ ]
1127
+ )
1128
+ )
1129
+ assert.ok(
1130
+ math.deepEqual(
1131
+ math.ifft(
1132
+ math.matrix([
1133
+ [2, 2],
1134
+ [0, 0],
1135
+ ])
1136
+ ),
1137
+ math.matrix([
1138
+ [math.complex(1, 0), math.complex(0, 0)],
1139
+ [math.complex(1, 0), math.complex(0, 0)],
1140
+ ])
1141
+ )
1142
+ )
333
1143
  }
334
1144
  }
335
1145
 
@@ -337,38 +1147,50 @@ Matrices examples
337
1147
  Sparse matrices examples
338
1148
  */
339
1149
  {
340
- const math = create(all, {});
1150
+ const math = create(all, {})
341
1151
 
342
1152
  // create a sparse matrix
343
- const a = math.identity(1000, 1000, 'sparse');
1153
+ const a = math.identity(1000, 1000, 'sparse')
344
1154
 
345
1155
  // do operations with a sparse matrix
346
- const b = math.multiply(a, a);
347
- const c = math.multiply(b, math.complex(2, 2));
348
- const d = math.matrix([0, 1]);
349
- const e = math.transpose(d);
350
- const f = math.multiply(e, a);
1156
+ const b = math.multiply(a, a)
1157
+ const _c = math.multiply(b, math.complex(2, 2))
1158
+ const d = math.matrix([0, 1])
1159
+ const e = math.transpose(d)
1160
+ const _f = math.multiply(e, d)
351
1161
  }
352
1162
 
353
1163
  /*
354
1164
  Units examples
355
1165
  */
356
1166
  {
357
- const math = create(all, {});
1167
+ const math = create(all, {})
358
1168
 
359
1169
  // units can be created by providing a value and unit name, or by providing
360
1170
  // a string with a valued unit.
361
- const a = math.unit(45, 'cm'); // 450 mm
362
- const b = math.unit('0.1m'); // 100 mm
1171
+ const a = math.unit(45, 'cm') // 450 mm
1172
+ const b = math.unit('0.1m') // 100 mm
1173
+ const _c = math.unit(b)
363
1174
 
364
1175
  // creating units
365
- math.createUnit('foo');
366
- math.createUnit('furlong', '220 yards');
367
- math.createUnit('furlong', '220 yards', { override: true });
368
- math.createUnit('testunit', { definition: '0.555556 kelvin', offset: 459.67 });
369
- math.createUnit('testunit', { definition: '0.555556 kelvin', offset: 459.67 }, { override: true });
370
- math.createUnit('knot', { definition: '0.514444 m/s', aliases: ['knots', 'kt', 'kts'] });
371
- math.createUnit('knot', { definition: '0.514444 m/s', aliases: ['knots', 'kt', 'kts'] }, { override: true });
1176
+ math.createUnit('foo')
1177
+ math.createUnit('furlong', '220 yards')
1178
+ math.createUnit('furlong', '220 yards', { override: true })
1179
+ math.createUnit('testunit', { definition: '0.555556 kelvin', offset: 459.67 })
1180
+ math.createUnit(
1181
+ 'testunit',
1182
+ { definition: '0.555556 kelvin', offset: 459.67 },
1183
+ { override: true }
1184
+ )
1185
+ math.createUnit('knot', {
1186
+ definition: '0.514444 m/s',
1187
+ aliases: ['knots', 'kt', 'kts'],
1188
+ })
1189
+ math.createUnit(
1190
+ 'knot',
1191
+ { definition: '0.514444 m/s', aliases: ['knots', 'kt', 'kts'] },
1192
+ { override: true }
1193
+ )
372
1194
  math.createUnit(
373
1195
  'knot',
374
1196
  {
@@ -377,10 +1199,10 @@ Units examples
377
1199
  prefixes: 'long',
378
1200
  },
379
1201
  { override: true }
380
- );
1202
+ )
381
1203
  math.createUnit(
382
1204
  {
383
- foo_2: {
1205
+ foo2: {
384
1206
  prefixes: 'long',
385
1207
  },
386
1208
  bar: '40 foo',
@@ -392,99 +1214,420 @@ Units examples
392
1214
  {
393
1215
  override: true,
394
1216
  }
395
- );
1217
+ )
396
1218
  // use Unit as definition
397
- math.createUnit('c', { definition: b });
398
- math.createUnit('c', { definition: b }, { override: true });
1219
+ math.createUnit('c', { definition: b })
1220
+ math.createUnit('c', { definition: b }, { override: true })
399
1221
 
400
1222
  // units can be added, subtracted, and multiplied or divided by numbers and by other units
401
- math.add(a, b);
402
- math.multiply(b, 2);
403
- math.divide(math.unit('1 m'), math.unit('1 s'));
404
- math.pow(math.unit('12 in'), 3);
1223
+ math.add(a, b)
1224
+ math.multiply(b, 2)
1225
+ math.divide(math.unit('1 m'), math.unit('1 s'))
1226
+ math.pow(math.unit('12 in'), 3)
405
1227
 
406
1228
  // units can be converted to a specific type, or to a number
407
- b.to('cm');
408
- math.to(b, 'inch');
409
- b.toNumber('cm');
410
- math.number(b, 'cm');
1229
+ b.to('cm')
1230
+ math.to(b, 'inch')
1231
+ b.toNumber('cm')
1232
+ math.number(b, 'cm')
411
1233
 
412
1234
  // the expression parser supports units too
413
- math.evaluate('2 inch to cm');
1235
+ math.evaluate('2 inch to cm')
414
1236
 
415
1237
  // units can be converted to SI
416
- math.unit('1 inch').toSI();
1238
+ math.unit('1 inch').toSI()
417
1239
 
418
1240
  // units can be split into other units
419
- math.unit('1 m').splitUnit(['ft', 'in']);
1241
+ math.unit('1 m').splitUnit(['ft', 'in'])
420
1242
  }
421
1243
 
422
1244
  /*
423
1245
  Expression tree examples
424
1246
  */
425
1247
  {
426
- const math = create(all, {});
1248
+ const math = create(all, {})
427
1249
 
428
1250
  // Filter an expression tree
429
- const node: math.MathNode = math.parse('x^2 + x/4 + 3*y');
430
- const filtered: math.MathNode[] = node.filter((node: math.MathNode) => node.isSymbolNode && node.name === 'x');
1251
+ const node: math.MathNode = math.parse('x^2 + x/4 + 3*y')
1252
+ const filtered: math.MathNode[] = node.filter(
1253
+ (node: math.MathNode) => node.type === 'SymbolNode' && node.name === 'x'
1254
+ )
431
1255
 
432
- const arr: string[] = filtered.map((node: math.MathNode) => node.toString());
1256
+ const _arr: string[] = filtered.map((node: math.MathNode) => node.toString())
433
1257
 
434
1258
  // Traverse an expression tree
435
- const node1: math.MathNode = math.parse('3 * x + 2');
436
- node1.traverse((node: math.MathNode, path: string, parent: math.MathNode) => {
437
- switch (node.type) {
438
- case 'OperatorNode':
439
- return node.type === 'OperatorNode';
440
- case 'ConstantNode':
441
- return node.type === 'ConstantNode';
442
- case 'SymbolNode':
443
- return node.type === 'SymbolNode';
444
- default:
445
- return node.type === 'any string at all';
1259
+ const node1: math.MathNode = math.parse('3 * x + 2')
1260
+ node1.traverse(
1261
+ (node: math.MathNode, _path: string, _parent: math.MathNode) => {
1262
+ switch (node.type) {
1263
+ case 'OperatorNode':
1264
+ return node.type === 'OperatorNode'
1265
+ case 'ConstantNode':
1266
+ return node.type === 'ConstantNode'
1267
+ case 'SymbolNode':
1268
+ return node.type === 'SymbolNode'
1269
+ default:
1270
+ return
1271
+ }
446
1272
  }
447
- });
1273
+ )
1274
+ }
1275
+
1276
+ /*
1277
+ Function ceil examples
1278
+ */
1279
+ {
1280
+ const math = create(all, {})
1281
+
1282
+ // number input
1283
+ assert.strictEqual(math.ceil(3.2), 4)
1284
+ assert.strictEqual(math.ceil(-4.2), -4)
1285
+
1286
+ // number input
1287
+ // roundoff result to 2 decimals
1288
+ assert.strictEqual(math.ceil(3.212, 2), 3.22)
1289
+ assert.deepStrictEqual(
1290
+ math.ceil(3.212, math.bignumber(2)),
1291
+ math.bignumber(3.22)
1292
+ )
1293
+ assert.strictEqual(math.ceil(-4.212, 2), -4.21)
1294
+
1295
+ // bignumber input
1296
+ assert.deepStrictEqual(math.ceil(math.bignumber(3.212)), math.bignumber(4))
1297
+ assert.deepStrictEqual(
1298
+ math.ceil(math.bignumber(3.212), 2),
1299
+ math.bignumber(3.22)
1300
+ )
1301
+ assert.deepStrictEqual(
1302
+ math.ceil(math.bignumber(3.212), math.bignumber(2)),
1303
+ math.bignumber(3.22)
1304
+ )
1305
+
1306
+ // fraction input
1307
+ assert.deepStrictEqual(math.ceil(math.fraction(44, 7)), math.fraction(7))
1308
+ assert.deepStrictEqual(math.ceil(math.fraction(-44, 7)), math.fraction(-6))
1309
+ assert.deepStrictEqual(
1310
+ math.ceil(math.fraction(44, 7), 2),
1311
+ math.fraction(629, 100)
1312
+ )
1313
+ assert.deepStrictEqual(
1314
+ math.ceil(math.fraction(44, 7), math.bignumber(2)),
1315
+ math.fraction(629, 100)
1316
+ )
1317
+
1318
+ // Complex input
1319
+ const c = math.complex(3.24, -2.71)
1320
+ assert.deepStrictEqual(math.ceil(c), math.complex(4, -2))
1321
+ assert.deepStrictEqual(math.ceil(c, 1), math.complex(3.3, -2.7))
1322
+ assert.deepStrictEqual(
1323
+ math.ceil(c, math.bignumber(1)),
1324
+ math.complex(3.3, -2.7)
1325
+ )
1326
+
1327
+ // array input
1328
+ assert.deepStrictEqual(math.ceil([3.2, 3.8, -4.7]), [4, 4, -4])
1329
+ assert.deepStrictEqual(math.ceil([3.21, 3.82, -4.71], 1), [3.3, 3.9, -4.7])
1330
+ assert.deepStrictEqual(
1331
+ math.ceil([3.21, 3.82, -4.71], math.bignumber(1)),
1332
+ math.bignumber([3.3, 3.9, -4.7])
1333
+ )
1334
+
1335
+ // numeric input, array or matrix of decimals
1336
+ const numCeiled: math.MathArray = math.ceil(math.tau, [2, 3])
1337
+ assert.deepStrictEqual(numCeiled, [6.29, 6.284])
1338
+ const bigCeiled: math.Matrix = math.ceil(
1339
+ math.bignumber(6.28318),
1340
+ math.matrix([2, 3])
1341
+ )
1342
+ assert.deepStrictEqual(bigCeiled, math.matrix(math.bignumber([6.29, 6.284])))
1343
+ assert.deepStrictEqual(math.ceil(math.fraction(44, 7), [2, 3]), [
1344
+ math.fraction(629, 100),
1345
+ math.fraction(6286, 1000),
1346
+ ])
1347
+
1348
+ // @ts-expect-error ... verify ceil(array, array) throws an error (for now)
1349
+ assert.throws(() => math.ceil([3.21, 3.82], [1, 2]), TypeError)
1350
+ }
1351
+
1352
+ /*
1353
+ Function fix examples
1354
+ */
1355
+ {
1356
+ const math = create(all, {})
1357
+
1358
+ // number input
1359
+ assert.strictEqual(math.fix(3.2), 3)
1360
+ assert.strictEqual(math.fix(-4.2), -4)
1361
+
1362
+ // number input
1363
+ // roundoff result to 2 decimals
1364
+ assert.strictEqual(math.fix(3.212, 2), 3.21)
1365
+ assert.deepStrictEqual(
1366
+ math.fix(3.212, math.bignumber(2)),
1367
+ math.bignumber(3.21)
1368
+ )
1369
+ assert.strictEqual(math.fix(-4.212, 2), -4.21)
1370
+
1371
+ // bignumber input
1372
+ assert.deepStrictEqual(math.fix(math.bignumber(3.212)), math.bignumber(3))
1373
+ assert.deepStrictEqual(
1374
+ math.fix(math.bignumber(3.212), 2),
1375
+ math.bignumber(3.21)
1376
+ )
1377
+ assert.deepStrictEqual(
1378
+ math.fix(math.bignumber(3.212), math.bignumber(2)),
1379
+ math.bignumber(3.21)
1380
+ )
1381
+
1382
+ // fraction input
1383
+ assert.deepStrictEqual(math.fix(math.fraction(44, 7)), math.fraction(6))
1384
+ assert.deepStrictEqual(math.fix(math.fraction(-44, 7)), math.fraction(-6))
1385
+ assert.deepStrictEqual(
1386
+ math.fix(math.fraction(44, 7), 2),
1387
+ math.fraction(628, 100)
1388
+ )
1389
+ assert.deepStrictEqual(
1390
+ math.fix(math.fraction(44, 7), math.bignumber(2)),
1391
+ math.fraction(628, 100)
1392
+ )
1393
+
1394
+ // Complex input
1395
+ const c = math.complex(3.24, -2.71)
1396
+ assert.deepStrictEqual(math.fix(c), math.complex(3, -2))
1397
+ assert.deepStrictEqual(math.fix(c, 1), math.complex(3.2, -2.7))
1398
+ assert.deepStrictEqual(
1399
+ math.fix(c, math.bignumber(1)),
1400
+ math.complex(3.2, -2.7)
1401
+ )
1402
+
1403
+ // array input
1404
+ assert.deepStrictEqual(math.fix([3.2, 3.8, -4.7]), [3, 3, -4])
1405
+ assert.deepStrictEqual(math.fix([3.21, 3.82, -4.71], 1), [3.2, 3.8, -4.7])
1406
+ assert.deepStrictEqual(
1407
+ math.fix([3.21, 3.82, -4.71], math.bignumber(1)),
1408
+ math.bignumber([3.2, 3.8, -4.7])
1409
+ )
1410
+
1411
+ // numeric input, array or matrix of decimals
1412
+ const numFixed: math.MathArray = math.fix(math.tau, [2, 3])
1413
+ assert.deepStrictEqual(numFixed, [6.28, 6.283])
1414
+ const bigFixed: math.Matrix = math.fix(
1415
+ math.bignumber(6.28318),
1416
+ math.matrix([2, 3])
1417
+ )
1418
+ assert.deepStrictEqual(bigFixed, math.matrix(math.bignumber([6.28, 6.283])))
1419
+ assert.deepStrictEqual(math.fix(math.fraction(44, 7), [2, 3]), [
1420
+ math.fraction(628, 100),
1421
+ math.fraction(6285, 1000),
1422
+ ])
1423
+
1424
+ // @ts-expect-error ... verify fix(array, array) throws an error (for now)
1425
+ assert.throws(() => math.fix([3.21, 3.82], [1, 2]), TypeError)
448
1426
  }
449
1427
 
450
1428
  /*
451
1429
  Function floor examples
452
1430
  */
453
1431
  {
454
- const math = create(all, {});
1432
+ const math = create(all, {})
455
1433
 
456
1434
  // number input
457
- math.floor(3.2); // returns number 3
458
- math.floor(-4.2); // returns number -5
1435
+ assert.strictEqual(math.floor(3.2), 3)
1436
+ assert.strictEqual(math.floor(-4.2), -5)
459
1437
 
460
1438
  // number input
461
1439
  // roundoff result to 2 decimals
462
- math.floor(3.212, 2); // returns number 3.21
463
- math.floor(-4.212, 2); // returns number -4.22
1440
+ assert.strictEqual(math.floor(3.212, 2), 3.21)
1441
+ assert.deepStrictEqual(
1442
+ math.floor(3.212, math.bignumber(2)),
1443
+ math.bignumber(3.21)
1444
+ )
1445
+ assert.strictEqual(math.floor(-4.212, 2), -4.22)
1446
+
1447
+ // bignumber input
1448
+ assert.deepStrictEqual(math.floor(math.bignumber(3.212)), math.bignumber(3))
1449
+ assert.deepStrictEqual(
1450
+ math.floor(math.bignumber(3.212), 2),
1451
+ math.bignumber(3.21)
1452
+ )
1453
+ assert.deepStrictEqual(
1454
+ math.floor(math.bignumber(3.212), math.bignumber(2)),
1455
+ math.bignumber(3.21)
1456
+ )
1457
+
1458
+ // fraction input
1459
+ assert.deepStrictEqual(math.floor(math.fraction(44, 7)), math.fraction(6))
1460
+ assert.deepStrictEqual(math.floor(math.fraction(-44, 7)), math.fraction(-7))
1461
+ assert.deepStrictEqual(
1462
+ math.floor(math.fraction(44, 7), 2),
1463
+ math.fraction(628, 100)
1464
+ )
1465
+ assert.deepStrictEqual(
1466
+ math.floor(math.fraction(44, 7), math.bignumber(2)),
1467
+ math.fraction(628, 100)
1468
+ )
464
1469
 
465
1470
  // Complex input
466
- const c = math.complex(3.24, -2.71); // returns Complex 3 - 3i
467
- math.floor(c); // returns Complex 3 - 3i
468
- math.floor(c, 1); // returns Complex 3.2 - 2.8i
1471
+ const c = math.complex(3.24, -2.71)
1472
+ assert.deepStrictEqual(math.floor(c), math.complex(3, -3))
1473
+ assert.deepStrictEqual(math.floor(c, 1), math.complex(3.2, -2.8))
1474
+ assert.deepStrictEqual(
1475
+ math.floor(c, math.bignumber(1)),
1476
+ math.complex(3.2, -2.8)
1477
+ )
1478
+
1479
+ // array input
1480
+ assert.deepStrictEqual(math.floor([3.2, 3.8, -4.7]), [3, 3, -5])
1481
+ assert.deepStrictEqual(math.floor([3.21, 3.82, -4.71], 1), [3.2, 3.8, -4.8])
1482
+ assert.deepStrictEqual(
1483
+ math.floor([3.21, 3.82, -4.71], math.bignumber(1)),
1484
+ math.bignumber([3.2, 3.8, -4.8])
1485
+ )
1486
+
1487
+ // numeric input, array or matrix of decimals
1488
+ const numFloored: math.MathArray = math.floor(math.tau, [2, 3])
1489
+ assert.deepStrictEqual(numFloored, [6.28, 6.283])
1490
+ const bigFloored: math.Matrix = math.floor(
1491
+ math.bignumber(6.28318),
1492
+ math.matrix([2, 3])
1493
+ )
1494
+ assert.deepStrictEqual(bigFloored, math.matrix(math.bignumber([6.28, 6.283])))
1495
+ assert.deepStrictEqual(math.floor(math.fraction(44, 7), [2, 3]), [
1496
+ math.fraction(628, 100),
1497
+ math.fraction(6285, 1000),
1498
+ ])
1499
+
1500
+ // @ts-expect-error ... verify floor(array, array) throws an error (for now)
1501
+ assert.throws(() => math.floor([3.21, 3.82], [1, 2]), TypeError)
1502
+ }
1503
+
1504
+ /*
1505
+ Function round examples
1506
+ */
1507
+ {
1508
+ const math = create(all, {})
1509
+
1510
+ // number input
1511
+ assert.strictEqual(math.round(3.2), 3)
1512
+ assert.strictEqual(math.round(-4.2), -4)
469
1513
 
470
- //array input
471
- math.floor([3.2, 3.8, -4.7]); // returns Array [3, 3, -5]
472
- math.floor([3.21, 3.82, -4.71], 1); // returns Array [3.2, 3.8, -4.8]
1514
+ // number input
1515
+ // roundoff result to 2 decimals
1516
+ assert.strictEqual(math.round(3.212, 2), 3.21)
1517
+ assert.deepStrictEqual(
1518
+ math.round(3.212, math.bignumber(2)),
1519
+ math.bignumber(3.21)
1520
+ )
1521
+ assert.strictEqual(math.round(-4.212, 2), -4.21)
1522
+
1523
+ // bignumber input
1524
+ assert.deepStrictEqual(math.round(math.bignumber(3.212)), math.bignumber(3))
1525
+ assert.deepStrictEqual(
1526
+ math.round(math.bignumber(3.212), 2),
1527
+ math.bignumber(3.21)
1528
+ )
1529
+ assert.deepStrictEqual(
1530
+ math.round(math.bignumber(3.212), math.bignumber(2)),
1531
+ math.bignumber(3.21)
1532
+ )
1533
+
1534
+ // fraction input
1535
+ assert.deepStrictEqual(math.round(math.fraction(44, 7)), math.fraction(6))
1536
+ assert.deepStrictEqual(math.round(math.fraction(-44, 7)), math.fraction(-6))
1537
+ assert.deepStrictEqual(
1538
+ math.round(math.fraction(44, 7), 2),
1539
+ math.fraction(629, 100)
1540
+ )
1541
+ assert.deepStrictEqual(
1542
+ math.round(math.fraction(44, 7), math.bignumber(2)),
1543
+ math.fraction(629, 100)
1544
+ )
1545
+
1546
+ // Complex input
1547
+ const c = math.complex(3.24, -2.71)
1548
+ assert.deepStrictEqual(math.round(c), math.complex(3, -3))
1549
+ assert.deepStrictEqual(math.round(c, 1), math.complex(3.2, -2.7))
1550
+ assert.deepStrictEqual(
1551
+ math.round(c, math.bignumber(1)),
1552
+ math.complex(3.2, -2.7)
1553
+ )
1554
+
1555
+ // array input
1556
+ assert.deepStrictEqual(math.round([3.2, 3.8, -4.7]), [3, 4, -5])
1557
+ assert.deepStrictEqual(math.round([3.21, 3.82, -4.71], 1), [3.2, 3.8, -4.7])
1558
+ assert.deepStrictEqual(
1559
+ math.round([3.21, 3.82, -4.71], math.bignumber(1)),
1560
+ math.bignumber([3.2, 3.8, -4.7])
1561
+ )
1562
+
1563
+ // numeric input, array or matrix of decimals
1564
+ const numRounded: math.MathArray = math.round(math.tau, [2, 3])
1565
+ assert.deepStrictEqual(numRounded, [6.28, 6.283])
1566
+ const bigRounded: math.Matrix = math.round(
1567
+ math.bignumber(6.28318),
1568
+ math.matrix([2, 3])
1569
+ )
1570
+ assert.deepStrictEqual(bigRounded, math.matrix(math.bignumber([6.28, 6.283])))
1571
+ assert.deepStrictEqual(math.round(math.fraction(44, 7), [2, 3]), [
1572
+ math.fraction(629, 100),
1573
+ math.fraction(6286, 1000),
1574
+ ])
1575
+
1576
+ // @ts-expect-error ... verify round(array, array) throws an error (for now)
1577
+ assert.throws(() => math.round([3.21, 3.82], [1, 2]), TypeError)
473
1578
  }
474
1579
 
1580
+ /*
1581
+ Clone examples
1582
+ */
1583
+ {
1584
+ const math = create(all, {})
1585
+ expectTypeOf(
1586
+ new math.OperatorNode('/', 'divide', [
1587
+ new math.ConstantNode(3),
1588
+ new math.SymbolNode('x'),
1589
+ ])
1590
+ ).toMatchTypeOf<OperatorNode<'/', 'divide', (ConstantNode | SymbolNode)[]>>()
1591
+
1592
+ expectTypeOf(new math.ConstantNode(1).clone()).toMatchTypeOf<ConstantNode>()
1593
+ expectTypeOf(
1594
+ new math.OperatorNode('*', 'multiply', [
1595
+ new math.ConstantNode(3),
1596
+ new math.SymbolNode('x'),
1597
+ ]).clone()
1598
+ ).toMatchTypeOf<
1599
+ OperatorNode<'*', 'multiply', (ConstantNode | SymbolNode)[]>
1600
+ >()
1601
+
1602
+ expectTypeOf(
1603
+ new math.ConstantNode(1).cloneDeep()
1604
+ ).toMatchTypeOf<ConstantNode>()
1605
+ expectTypeOf(
1606
+ new math.OperatorNode('+', 'unaryPlus', [
1607
+ new math.ConstantNode(3),
1608
+ new math.SymbolNode('x'),
1609
+ ]).cloneDeep()
1610
+ ).toMatchTypeOf<
1611
+ OperatorNode<'+', 'unaryPlus', (ConstantNode | SymbolNode)[]>
1612
+ >()
1613
+
1614
+ expectTypeOf(
1615
+ math.clone(new math.ConstantNode(1))
1616
+ ).toMatchTypeOf<ConstantNode>()
1617
+ }
475
1618
 
476
1619
  /*
477
1620
  JSON serialization/deserialization
478
1621
  */
479
1622
  {
480
- const math = create(all, {});
1623
+ const math = create(all, {})
481
1624
 
482
1625
  const data = {
483
1626
  bigNumber: math.bignumber('1.5'),
484
- };
485
- const stringified = JSON.stringify(data);
486
- const parsed = JSON.parse(stringified, math.json.reviver);
487
- parsed.bigNumber === math.bignumber('1.5'); // true
1627
+ }
1628
+ const stringified = JSON.stringify(data)
1629
+ const parsed = JSON.parse(stringified, math.reviver)
1630
+ assert.deepStrictEqual(parsed.bigNumber, math.bignumber('1.5'))
488
1631
  }
489
1632
 
490
1633
  /*
@@ -493,14 +1636,14 @@ Extend functionality with import
493
1636
 
494
1637
  declare module 'mathjs' {
495
1638
  interface MathJsStatic {
496
- testFun(): number;
497
- value: number;
1639
+ testFun(): number
1640
+ value: number
498
1641
  }
499
1642
  }
500
1643
 
501
1644
  {
502
- const math = create(all, {});
503
- const testFun = () => 5;
1645
+ const math = create(all, {})
1646
+ const testFun = () => 5
504
1647
 
505
1648
  math.import(
506
1649
  {
@@ -508,26 +1651,84 @@ declare module 'mathjs' {
508
1651
  value: 10,
509
1652
  },
510
1653
  {}
511
- );
1654
+ )
512
1655
 
513
- math.testFun();
1656
+ math.testFun()
514
1657
 
515
- const a = math.value * 2;
1658
+ expectTypeOf(math.testFun()).toMatchTypeOf<number>()
1659
+
1660
+ expectTypeOf(
1661
+ math.import({
1662
+ myvalue: 42,
1663
+ myFunc: (name: string) => `myFunc ${name}`,
1664
+ })
1665
+ ).toMatchTypeOf<void>()
1666
+
1667
+ expectTypeOf(
1668
+ math.import(
1669
+ {
1670
+ myvalue: 42,
1671
+ myFunc: (name: string) => `myFunc ${name}`,
1672
+ },
1673
+ {
1674
+ override: true,
1675
+ }
1676
+ )
1677
+ ).toMatchTypeOf<void>()
1678
+
1679
+ expectTypeOf(
1680
+ math.import(
1681
+ {
1682
+ myvalue2: 42,
1683
+ },
1684
+ {
1685
+ silent: true,
1686
+ }
1687
+ )
1688
+ ).toMatchTypeOf<void>()
1689
+
1690
+ expectTypeOf(
1691
+ math.import(
1692
+ {
1693
+ myvalue3: 42,
1694
+ },
1695
+ {
1696
+ wrap: true,
1697
+ }
1698
+ )
1699
+ ).toMatchTypeOf<void>()
1700
+
1701
+ expectTypeOf(
1702
+ math.import({
1703
+ myvalue4: 42,
1704
+ })
1705
+ ).toMatchTypeOf<void>()
1706
+
1707
+ expectTypeOf(
1708
+ math.import([
1709
+ {
1710
+ myvalue5: 42,
1711
+ },
1712
+ {
1713
+ myFunc2: (name: string) => `myFunc2 ${name}`,
1714
+ },
1715
+ ])
1716
+ ).toMatchTypeOf<void>()
516
1717
  }
517
1718
 
518
1719
  /*
519
1720
  Renamed functions from v5 => v6
520
1721
  */
521
1722
  {
522
- const math = create(all, {});
523
- math.typeOf(1);
524
- math.variance([1, 2, 3, 4]);
525
- math.evaluate('1 + 2');
1723
+ const math = create(all, {})
1724
+ math.typeOf(1)
1725
+ math.variance([1, 2, 3, 4])
1726
+ math.evaluate('1 + 2')
526
1727
 
527
1728
  // chained operations
528
- math.chain(3).typeOf().done();
529
- math.chain([1, 2, 3]).variance().done();
530
- math.chain('1 + 2').evaluate().done();
1729
+ math.chain(3).typeOf().done()
1730
+ math.chain([1, 2, 3]).variance().done()
1731
+ math.chain('1 + 2').evaluate().done()
531
1732
  }
532
1733
 
533
1734
  /*
@@ -535,20 +1736,20 @@ Factory Test
535
1736
  */
536
1737
  {
537
1738
  // create a factory function
538
- const name = 'negativeSquare';
539
- const dependencies: MathJsFunctionName[] = ['multiply', 'unaryMinus'];
1739
+ const name = 'negativeSquare'
1740
+ const dependencies: MathJsFunctionName[] = ['multiply', 'unaryMinus']
540
1741
  const createNegativeSquare = factory(name, dependencies, (injected) => {
541
- const { multiply, unaryMinus } = injected;
1742
+ const { multiply, unaryMinus } = injected
542
1743
  return function negativeSquare(x: number): number {
543
- return unaryMinus(multiply(x, x));
544
- };
545
- });
1744
+ return unaryMinus(multiply(x, x))
1745
+ }
1746
+ })
546
1747
 
547
1748
  // create an instance of the function yourself:
548
- const multiply = (a: number, b: number) => a * b;
549
- const unaryMinus = (a: number) => -a;
550
- const negativeSquare = createNegativeSquare({ multiply, unaryMinus });
551
- negativeSquare(3);
1749
+ const multiply = (a: number, b: number) => a * b
1750
+ const unaryMinus = (a: number) => -a
1751
+ const negativeSquare = createNegativeSquare({ multiply, unaryMinus })
1752
+ negativeSquare(3)
552
1753
  }
553
1754
 
554
1755
  /**
@@ -558,7 +1759,7 @@ Factory Test
558
1759
  {
559
1760
  const config = {
560
1761
  // optionally, you can specify configuration
561
- };
1762
+ }
562
1763
 
563
1764
  // Create just the functions we need
564
1765
  const { fraction, add, divide, format } = create(
@@ -569,15 +1770,15 @@ Factory Test
569
1770
  formatDependencies,
570
1771
  },
571
1772
  config
572
- );
1773
+ )
573
1774
 
574
1775
  // Use the created functions
575
- const a = fraction(1, 3);
576
- const b = fraction(3, 7);
577
- const c = add(a, b);
578
- const d = divide(a, b);
579
- console.log('c =', format(c)); // outputs "c = 16/21"
580
- console.log('d =', format(d)); // outputs "d = 7/9"
1776
+ const a = fraction(1, 3)
1777
+ const b = fraction(3, 7)
1778
+ const c = add(a, b)
1779
+ const d = divide(a, b)
1780
+ assert.strictEqual(format(c), '16/21')
1781
+ assert.strictEqual(format(d), '7/9')
581
1782
  }
582
1783
 
583
1784
  /**
@@ -585,15 +1786,15 @@ Factory Test
585
1786
  * https://mathjs.org/docs/expressions/customization.html#customize-supported-characters
586
1787
  */
587
1788
  {
588
- const math = create(all, {});
589
- const isAlphaOriginal = math.parse.isAlpha;
1789
+ const math = create(all, {})
1790
+ const isAlphaOriginal = math.parse.isAlpha
590
1791
  math.parse.isAlpha = (c, cPrev, cNext) => {
591
- return isAlphaOriginal(c, cPrev, cNext) || c === "\u260E";
592
- };
1792
+ return isAlphaOriginal(c, cPrev, cNext) || c === '\u260E'
1793
+ }
593
1794
 
594
1795
  // now we can use the \u260E (phone) character in expressions
595
- const result = math.evaluate("\u260Efoo", { "\u260Efoo": 42 }); // returns 42
596
- console.log(result);
1796
+ const result = math.evaluate('\u260Efoo', { '\u260Efoo': 42 })
1797
+ assert.strictEqual(result, 42)
597
1798
  }
598
1799
 
599
1800
  /**
@@ -601,16 +1802,229 @@ Factory Test
601
1802
  * https://mathjs.org/docs/reference/functions.html#utils-functions
602
1803
  */
603
1804
  {
604
- const math = create(all, {});
1805
+ const math = create(all, {})
605
1806
 
606
1807
  // hasNumericValue function
607
- math.hasNumericValue(2); // returns true
608
- math.hasNumericValue('2'); // returns true
609
- math.isNumeric('2'); // returns false
610
- math.hasNumericValue(0); // returns true
611
- math.hasNumericValue(math.bignumber(500)); // returns true
612
- math.hasNumericValue([2.3, 'foo', false]); // returns [true, false, true]
613
- math.hasNumericValue(math.fraction(4)); // returns true
614
- math.hasNumericValue(math.complex('2-4i')); // returns false
1808
+ assert.strictEqual(math.hasNumericValue(2), true)
1809
+ assert.strictEqual(math.hasNumericValue('2'), true)
1810
+ assert.strictEqual(math.isNumeric('2'), false)
1811
+ assert.strictEqual(math.hasNumericValue(0), true)
1812
+ assert.strictEqual(math.hasNumericValue(math.bignumber(500)), true)
1813
+ assert.deepStrictEqual(math.hasNumericValue([2.3, 'foo', false]), [
1814
+ true,
1815
+ false,
1816
+ true,
1817
+ ])
1818
+ assert.strictEqual(math.hasNumericValue(math.fraction(4)), true)
1819
+ assert.strictEqual(math.hasNumericValue(math.complex('2-4i')), false)
1820
+ }
1821
+
1822
+ /**
1823
+ * src/util/is functions
1824
+ */
1825
+ {
1826
+ const math = create(all, {})
1827
+
1828
+ type IsFunc = (x: unknown) => boolean
1829
+ const isFuncs: IsFunc[] = [
1830
+ math.isNumber,
1831
+ math.isBigNumber,
1832
+ math.isComplex,
1833
+ math.isFraction,
1834
+ math.isUnit,
1835
+ math.isString,
1836
+ math.isArray,
1837
+ math.isMatrix,
1838
+ math.isCollection,
1839
+ math.isDenseMatrix,
1840
+ math.isSparseMatrix,
1841
+ math.isRange,
1842
+ math.isIndex,
1843
+ math.isBoolean,
1844
+ math.isResultSet,
1845
+ math.isHelp,
1846
+ math.isFunction,
1847
+ math.isDate,
1848
+ math.isRegExp,
1849
+ math.isObject,
1850
+ math.isNull,
1851
+ math.isUndefined,
1852
+ math.isAccessorNode,
1853
+ math.isArrayNode,
1854
+ math.isAssignmentNode,
1855
+ math.isBlockNode,
1856
+ math.isConditionalNode,
1857
+ math.isConstantNode,
1858
+ math.isFunctionAssignmentNode,
1859
+ math.isFunctionNode,
1860
+ math.isIndexNode,
1861
+ math.isNode,
1862
+ math.isObjectNode,
1863
+ math.isOperatorNode,
1864
+ math.isParenthesisNode,
1865
+ math.isRangeNode,
1866
+ math.isSymbolNode,
1867
+ math.isChain,
1868
+ ]
1869
+
1870
+ isFuncs.forEach((f) => {
1871
+ const result = f(1)
1872
+ const isResultBoolean = result === true || result === false
1873
+ assert.ok(isResultBoolean)
1874
+ })
1875
+
1876
+ // Check guards do type refinement
1877
+
1878
+ let x: unknown
1879
+
1880
+ if (math.isNumber(x)) {
1881
+ expectTypeOf(x).toMatchTypeOf<number>()
1882
+ }
1883
+ if (math.isBigNumber(x)) {
1884
+ expectTypeOf(x).toMatchTypeOf<math.BigNumber>()
1885
+ }
1886
+ if (math.isComplex(x)) {
1887
+ expectTypeOf(x).toMatchTypeOf<math.Complex>()
1888
+ }
1889
+ if (math.isFraction(x)) {
1890
+ expectTypeOf(x).toMatchTypeOf<math.Fraction>()
1891
+ }
1892
+ if (math.isUnit(x)) {
1893
+ expectTypeOf(x).toMatchTypeOf<math.Unit>()
1894
+ }
1895
+ if (math.isString(x)) {
1896
+ expectTypeOf(x).toMatchTypeOf<string>()
1897
+ }
1898
+ if (math.isArray(x)) {
1899
+ expectTypeOf(x).toMatchTypeOf<unknown[]>()
1900
+ }
1901
+ if (math.isMatrix(x)) {
1902
+ expectTypeOf(x).toMatchTypeOf<math.Matrix>()
1903
+ }
1904
+ if (math.isDenseMatrix(x)) {
1905
+ expectTypeOf(x).toMatchTypeOf<math.Matrix>()
1906
+ }
1907
+ if (math.isSparseMatrix(x)) {
1908
+ expectTypeOf(x).toMatchTypeOf<math.Matrix>()
1909
+ }
1910
+ if (math.isIndex(x)) {
1911
+ expectTypeOf(x).toMatchTypeOf<math.Index>()
1912
+ }
1913
+ if (math.isBoolean(x)) {
1914
+ expectTypeOf(x).toMatchTypeOf<boolean>()
1915
+ }
1916
+ if (math.isHelp(x)) {
1917
+ expectTypeOf(x).toMatchTypeOf<math.Help>()
1918
+ }
1919
+ if (math.isDate(x)) {
1920
+ expectTypeOf(x).toMatchTypeOf<Date>()
1921
+ }
1922
+ if (math.isRegExp(x)) {
1923
+ expectTypeOf(x).toMatchTypeOf<RegExp>()
1924
+ }
1925
+ if (math.isNull(x)) {
1926
+ expectTypeOf(x).toMatchTypeOf<null>()
1927
+ }
1928
+ if (math.isUndefined(x)) {
1929
+ expectTypeOf(x).toMatchTypeOf<undefined>()
1930
+ }
1931
+
1932
+ if (math.isAccessorNode(x)) {
1933
+ expectTypeOf(x).toMatchTypeOf<math.AccessorNode>()
1934
+ }
1935
+ if (math.isArrayNode(x)) {
1936
+ expectTypeOf(x).toMatchTypeOf<math.ArrayNode>()
1937
+ }
1938
+ if (math.isAssignmentNode(x)) {
1939
+ expectTypeOf(x).toMatchTypeOf<math.AssignmentNode>()
1940
+ }
1941
+ if (math.isBlockNode(x)) {
1942
+ expectTypeOf(x).toMatchTypeOf<math.BlockNode>()
1943
+ }
1944
+ if (math.isConditionalNode(x)) {
1945
+ expectTypeOf(x).toMatchTypeOf<math.ConditionalNode>()
1946
+ }
1947
+ if (math.isConstantNode(x)) {
1948
+ expectTypeOf(x).toMatchTypeOf<math.ConstantNode>()
1949
+ }
1950
+ if (math.isFunctionAssignmentNode(x)) {
1951
+ expectTypeOf(x).toMatchTypeOf<math.FunctionAssignmentNode>()
1952
+ }
1953
+ if (math.isFunctionNode(x)) {
1954
+ expectTypeOf(x).toMatchTypeOf<math.FunctionNode>()
1955
+ }
1956
+ if (math.isIndexNode(x)) {
1957
+ expectTypeOf(x).toMatchTypeOf<math.IndexNode>()
1958
+ }
1959
+ if (math.isNode(x)) {
1960
+ expectTypeOf(x).toMatchTypeOf<math.MathNodeCommon>()
1961
+ }
1962
+ if (math.isNode(x)) {
1963
+ expectTypeOf(x).toMatchTypeOf<math.MathNodeCommon>()
1964
+ }
1965
+ if (math.isObjectNode(x)) {
1966
+ expectTypeOf(x).toMatchTypeOf<math.ObjectNode>()
1967
+ }
1968
+ if (math.isOperatorNode(x)) {
1969
+ expectTypeOf(x).toMatchTypeOf<
1970
+ OperatorNode<OperatorNodeOp, OperatorNodeFn, MathNode[]>
1971
+ >()
1972
+ }
1973
+ if (math.isParenthesisNode(x)) {
1974
+ expectTypeOf(x).toMatchTypeOf<math.ParenthesisNode>()
1975
+ }
1976
+ if (math.isRangeNode(x)) {
1977
+ expectTypeOf(x).toMatchTypeOf<math.RangeNode>()
1978
+ }
1979
+ if (math.isSymbolNode(x)) {
1980
+ expectTypeOf(x).toMatchTypeOf<math.SymbolNode>()
1981
+ }
1982
+ if (math.isChain(x)) {
1983
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1984
+ expectTypeOf(x).toMatchTypeOf<math.MathJsChain<any>>()
1985
+ }
1986
+ }
1987
+
1988
+ /*
1989
+ Probability function examples
1990
+ */
1991
+ {
1992
+ const math = create(all, {})
1993
+
1994
+ expectTypeOf(math.lgamma(1.5)).toMatchTypeOf<number>()
1995
+ expectTypeOf(
1996
+ math.lgamma(math.complex(1.5, -1.5))
1997
+ ).toMatchTypeOf<math.Complex>()
615
1998
  }
616
1999
 
2000
+ /*
2001
+ toTex examples
2002
+ */
2003
+
2004
+ {
2005
+ const math = create(all, {})
2006
+
2007
+ expectTypeOf(math.parse('a/b').toTex()).toMatchTypeOf<string>()
2008
+
2009
+ // TODO add proper types for toTex options
2010
+ expectTypeOf(
2011
+ math.parse('a/b').toTex({
2012
+ a: '123',
2013
+ })
2014
+ ).toMatchTypeOf<string>()
2015
+ }
2016
+
2017
+ /*
2018
+ Resolve examples
2019
+ */
2020
+ {
2021
+ const math = create(all, {})
2022
+
2023
+ expectTypeOf(math.resolve(math.parse('x + y'))).toMatchTypeOf<MathNode>()
2024
+ expectTypeOf(
2025
+ math.resolve(math.parse('x + y'), { x: 0 })
2026
+ ).toMatchTypeOf<MathNode>()
2027
+ expectTypeOf(math.resolve([math.parse('x + y')], { x: 0 })).toMatchTypeOf<
2028
+ MathNode[]
2029
+ >()
2030
+ }