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
@@ -1,13 +1,11 @@
1
1
  import { isConstantNode, isParenthesisNode } from '../../utils/is.js';
2
2
  import { factory } from '../../utils/factory.js';
3
3
  import { createUtil } from './simplify/util.js';
4
- import { createSimplifyCore } from './simplify/simplifyCore.js';
5
4
  import { createSimplifyConstant } from './simplify/simplifyConstant.js';
6
- import { createResolve } from './simplify/resolve.js';
7
5
  import { hasOwnProperty } from '../../utils/object.js';
8
6
  import { createEmptyMap, createMap } from '../../utils/map.js';
9
7
  var name = 'simplify';
10
- var dependencies = ['config', 'typed', 'parse', 'add', 'subtract', 'multiply', 'divide', 'pow', 'isZero', 'equal', '?fraction', '?bignumber', 'mathWithTransform', 'ConstantNode', 'FunctionNode', 'OperatorNode', 'ParenthesisNode', 'SymbolNode'];
8
+ var dependencies = ['config', 'typed', 'parse', 'add', 'subtract', 'multiply', 'divide', 'pow', 'isZero', 'equal', 'resolve', 'simplifyCore', '?fraction', '?bignumber', 'mathWithTransform', 'matrix', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'ParenthesisNode', 'SymbolNode'];
11
9
  export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
12
10
  var {
13
11
  config,
@@ -20,11 +18,18 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
20
18
  pow,
21
19
  isZero,
22
20
  equal,
21
+ resolve,
22
+ simplifyCore,
23
23
  fraction,
24
24
  bignumber,
25
25
  mathWithTransform,
26
+ matrix,
27
+ AccessorNode,
28
+ ArrayNode,
26
29
  ConstantNode,
27
30
  FunctionNode,
31
+ IndexNode,
32
+ ObjectNode,
28
33
  OperatorNode,
29
34
  ParenthesisNode,
30
35
  SymbolNode
@@ -33,39 +38,30 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
33
38
  typed,
34
39
  config,
35
40
  mathWithTransform,
41
+ matrix,
36
42
  fraction,
37
43
  bignumber,
44
+ AccessorNode,
45
+ ArrayNode,
38
46
  ConstantNode,
39
- OperatorNode,
40
- FunctionNode,
41
- SymbolNode
42
- });
43
- var simplifyCore = createSimplifyCore({
44
- equal,
45
- isZero,
46
- add,
47
- subtract,
48
- multiply,
49
- divide,
50
- pow,
51
- ConstantNode,
52
- OperatorNode,
53
- FunctionNode,
54
- ParenthesisNode
55
- });
56
- var resolve = createResolve({
57
- parse,
58
47
  FunctionNode,
48
+ IndexNode,
49
+ ObjectNode,
59
50
  OperatorNode,
60
- ParenthesisNode
51
+ SymbolNode
61
52
  });
62
53
  var {
54
+ hasProperty,
63
55
  isCommutative,
64
56
  isAssociative,
57
+ mergeContext,
65
58
  flatten,
66
59
  unflattenr,
67
60
  unflattenl,
68
- createMakeNodeFunction
61
+ createMakeNodeFunction,
62
+ defaultContext,
63
+ realContext,
64
+ positiveContext
69
65
  } = createUtil({
70
66
  FunctionNode,
71
67
  OperatorNode,
@@ -101,17 +97,49 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
101
97
  * The default list of rules is exposed on the function as `simplify.rules`
102
98
  * and can be used as a basis to built a set of custom rules.
103
99
  *
100
+ * To specify a rule as a string, separate the left and right pattern by '->'
101
+ * When specifying a rule as an object, the following keys are meaningful:
102
+ * - l - the left pattern
103
+ * - r - the right pattern
104
+ * - s - in lieu of l and r, the string form that is broken at -> to give them
105
+ * - repeat - whether to repeat this rule until the expression stabilizes
106
+ * - assuming - gives a context object, as in the 'context' option to
107
+ * simplify. Every property in the context object must match the current
108
+ * context in order, or else the rule will not be applied.
109
+ * - imposeContext - gives a context object, as in the 'context' option to
110
+ * simplify. Any settings specified will override the incoming context
111
+ * for all matches of this rule.
112
+ *
104
113
  * For more details on the theory, see:
105
114
  *
106
115
  * - [Strategies for simplifying math expressions (Stackoverflow)](https://stackoverflow.com/questions/7540227/strategies-for-simplifying-math-expressions)
107
116
  * - [Symbolic computation - Simplification (Wikipedia)](https://en.wikipedia.org/wiki/Symbolic_computation#Simplification)
108
117
  *
109
118
  * An optional `options` argument can be passed as last argument of `simplify`.
110
- * There is currently one option available:
111
- * - `exactFractions`: a boolean which is `true` by default.
112
- * - `fractionsLimit`: when `exactFractions` is true, a fraction will be returned
113
- * only when both numerator and denominator are smaller than `fractionsLimit`.
114
- * Default value is 10000.
119
+ * Currently available options (defaults in parentheses):
120
+ * - `consoleDebug` (false): whether to write the expression being simplified
121
+ * and any changes to it, along with the rule responsible, to console
122
+ * - `context` (simplify.defaultContext): an object giving properties of
123
+ * each operator, which determine what simplifications are allowed. The
124
+ * currently meaningful properties are commutative, associative,
125
+ * total (whether the operation is defined for all arguments), and
126
+ * trivial (whether the operation applied to a single argument leaves
127
+ * that argument unchanged). The default context is very permissive and
128
+ * allows almost all simplifications. Only properties differing from
129
+ * the default need to be specified; the default context is used as a
130
+ * fallback. Additional contexts `simplify.realContext` and
131
+ * `simplify.positiveContext` are supplied to cause simplify to perform
132
+ * just simplifications guaranteed to preserve all values of the expression
133
+ * assuming all variables and subexpressions are real numbers or
134
+ * positive real numbers, respectively. (Note that these are in some cases
135
+ * more restrictive than the default context; for example, the default
136
+ * context will allow `x/x` to simplify to 1, whereas
137
+ * `simplify.realContext` will not, as `0/0` is not equal to 1.)
138
+ * - `exactFractions` (true): whether to try to convert all constants to
139
+ * exact rational numbers.
140
+ * - `fractionsLimit` (10000): when `exactFractions` is true, constants will
141
+ * be expressed as fractions only when both numerator and denominator
142
+ * are smaller than `fractionsLimit`.
115
143
  *
116
144
  * Syntax:
117
145
  *
@@ -134,7 +162,7 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
134
162
  *
135
163
  * See also:
136
164
  *
137
- * derivative, parse, evaluate, rationalize
165
+ * simplifyCore, derivative, evaluate, parse, rationalize, resolve
138
166
  *
139
167
  * @param {Node | string} expr
140
168
  * The expression to be simplified
@@ -181,7 +209,8 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
181
209
  return this(expr, rules, createMap(scope), options);
182
210
  },
183
211
  'Node, Array, Map, Object': function NodeArrayMapObject(expr, rules, scope, options) {
184
- rules = _buildRules(rules);
212
+ var debug = options.consoleDebug;
213
+ rules = _buildRules(rules, options.context);
185
214
  var res = resolve(expr, scope);
186
215
  res = removeParens(res);
187
216
  var visited = {};
@@ -193,15 +222,40 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
193
222
  visited[str] = true;
194
223
  _lastsym = 0; // counter for placeholder symbols
195
224
 
225
+ var laststr = str;
226
+ if (debug) console.log('Working on: ', str);
227
+
196
228
  for (var i = 0; i < rules.length; i++) {
229
+ var rulestr = '';
230
+
197
231
  if (typeof rules[i] === 'function') {
198
232
  res = rules[i](res, options);
233
+ if (debug) rulestr = rules[i].name;
199
234
  } else {
200
- flatten(res);
201
- res = applyRule(res, rules[i]);
235
+ flatten(res, options.context);
236
+ res = applyRule(res, rules[i], options.context);
237
+
238
+ if (debug) {
239
+ rulestr = "".concat(rules[i].l.toString(), " -> ").concat(rules[i].r.toString());
240
+ }
241
+ }
242
+
243
+ if (debug) {
244
+ var newstr = res.toString({
245
+ parenthesis: 'all'
246
+ });
247
+
248
+ if (newstr !== laststr) {
249
+ console.log('Applying', rulestr, 'produced', newstr);
250
+ laststr = newstr;
251
+ }
202
252
  }
253
+ /* Use left-heavy binary tree internally,
254
+ * since custom rule functions may expect it
255
+ */
203
256
 
204
- unflattenl(res); // using left-heavy binary tree here since custom rule functions may expect it
257
+
258
+ unflattenl(res, options.context);
205
259
  }
206
260
 
207
261
  str = res.toString({
@@ -212,8 +266,9 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
212
266
  return res;
213
267
  }
214
268
  });
215
- simplify.simplifyCore = simplifyCore;
216
- simplify.resolve = resolve;
269
+ simplify.defaultContext = defaultContext;
270
+ simplify.realContext = realContext;
271
+ simplify.positiveContext = positiveContext;
217
272
 
218
273
  function removeParens(node) {
219
274
  return node.transform(function (node, path, parent) {
@@ -262,72 +317,255 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
262
317
  l: 'log(e)',
263
318
  r: '1'
264
319
  }, // temporary rules
320
+ // Note initially we tend constants to the right because like-term
321
+ // collection prefers the left, and we would rather collect nonconstants
265
322
  {
266
- l: 'n-n1',
267
- r: 'n+-n1'
268
- }, // temporarily replace 'subtract' so we can further flatten the 'add' operator
323
+ s: 'n-n1 -> n+-n1',
324
+ // temporarily replace 'subtract' so we can further flatten the 'add' operator
325
+ assuming: {
326
+ subtract: {
327
+ total: true
328
+ }
329
+ }
330
+ }, {
331
+ s: 'n-n -> 0',
332
+ // partial alternative when we can't always subtract
333
+ assuming: {
334
+ subtract: {
335
+ total: false
336
+ }
337
+ }
338
+ }, {
339
+ s: '-(c*v) -> v * (-c)',
340
+ // make non-constant terms positive
341
+ assuming: {
342
+ multiply: {
343
+ commutative: true
344
+ },
345
+ subtract: {
346
+ total: true
347
+ }
348
+ }
349
+ }, {
350
+ s: '-(c*v) -> (-c) * v',
351
+ // non-commutative version, part 1
352
+ assuming: {
353
+ multiply: {
354
+ commutative: false
355
+ },
356
+ subtract: {
357
+ total: true
358
+ }
359
+ }
360
+ }, {
361
+ s: '-(v*c) -> v * (-c)',
362
+ // non-commutative version, part 2
363
+ assuming: {
364
+ multiply: {
365
+ commutative: false
366
+ },
367
+ subtract: {
368
+ total: true
369
+ }
370
+ }
371
+ }, {
372
+ l: '-(n1/n2)',
373
+ r: '-n1/n2'
374
+ }, {
375
+ l: '-v',
376
+ r: 'v * (-1)'
377
+ }, // finish making non-constant terms positive
269
378
  {
270
- l: '-(c*v)',
271
- r: '(-c) * v'
272
- }, // make non-constant terms positive
379
+ l: '(n1 + n2)*(-1)',
380
+ r: 'n1*(-1) + n2*(-1)',
381
+ repeat: true
382
+ }, // expand negations to achieve as much sign cancellation as possible
273
383
  {
274
- l: '-v',
275
- r: '(-1) * v'
276
- }, {
277
384
  l: 'n/n1^n2',
278
385
  r: 'n*n1^-n2'
279
386
  }, // temporarily replace 'divide' so we can further flatten the 'multiply' operator
280
387
  {
281
388
  l: 'n/n1',
282
389
  r: 'n*n1^-1'
390
+ }, {
391
+ s: '(n1*n2)^n3 -> n1^n3 * n2^n3',
392
+ assuming: {
393
+ multiply: {
394
+ commutative: true
395
+ }
396
+ }
397
+ }, {
398
+ s: '(n1*n2)^(-1) -> n2^(-1) * n1^(-1)',
399
+ assuming: {
400
+ multiply: {
401
+ commutative: false
402
+ }
403
+ }
283
404
  }, // expand nested exponentiation
284
405
  {
285
- l: '(n ^ n1) ^ n2',
286
- r: 'n ^ (n1 * n2)'
287
- }, // collect like factors
406
+ s: '(n ^ n1) ^ n2 -> n ^ (n1 * n2)',
407
+ assuming: {
408
+ divide: {
409
+ total: true
410
+ }
411
+ } // 1/(1/n) = n needs 1/n to exist
412
+
413
+ }, // collect like factors; into a sum, only do this for nonconstants
288
414
  {
415
+ l: ' v * ( v * n1 + n2)',
416
+ r: 'v^2 * n1 + v * n2'
417
+ }, {
418
+ s: ' v * (v^n4 * n1 + n2) -> v^(1+n4) * n1 + v * n2',
419
+ assuming: {
420
+ divide: {
421
+ total: true
422
+ }
423
+ } // v*1/v = v^(1+-1) needs 1/v
424
+
425
+ }, {
426
+ s: 'v^n3 * ( v * n1 + n2) -> v^(n3+1) * n1 + v^n3 * n2',
427
+ assuming: {
428
+ divide: {
429
+ total: true
430
+ }
431
+ }
432
+ }, {
433
+ s: 'v^n3 * (v^n4 * n1 + n2) -> v^(n3+n4) * n1 + v^n3 * n2',
434
+ assuming: {
435
+ divide: {
436
+ total: true
437
+ }
438
+ }
439
+ }, {
289
440
  l: 'n*n',
290
441
  r: 'n^2'
291
442
  }, {
292
- l: 'n * n^n1',
293
- r: 'n^(n1+1)'
443
+ s: 'n * n^n1 -> n^(n1+1)',
444
+ assuming: {
445
+ divide: {
446
+ total: true
447
+ }
448
+ } // n*1/n = n^(-1+1) needs 1/n
449
+
294
450
  }, {
295
- l: 'n^n1 * n^n2',
296
- r: 'n^(n1+n2)'
297
- }, // collect like terms
451
+ s: 'n^n1 * n^n2 -> n^(n1+n2)',
452
+ assuming: {
453
+ divide: {
454
+ total: true
455
+ }
456
+ } // ditto for n^2*1/n^2
457
+
458
+ }, // Unfortunately, to deal with more complicated cancellations, it
459
+ // becomes necessary to simplify constants twice per pass. It's not
460
+ // terribly expensive compared to matching rules, so this should not
461
+ // pose a performance problem.
462
+ simplifyConstant, // First: before collecting like terms
463
+ // collect like terms
298
464
  {
299
- l: 'n+n',
300
- r: '2*n'
465
+ s: 'n+n -> 2*n',
466
+ assuming: {
467
+ add: {
468
+ total: true
469
+ }
470
+ } // 2 = 1 + 1 needs to exist
471
+
301
472
  }, {
302
473
  l: 'n+-n',
303
474
  r: '0'
304
475
  }, {
305
- l: 'n1*n2 + n2',
306
- r: '(n1+1)*n2'
476
+ l: 'v*n + v',
477
+ r: 'v*(n+1)'
478
+ }, // NOTE: leftmost position is special:
479
+ {
480
+ l: 'n3*n1 + n3*n2',
481
+ r: 'n3*(n1+n2)'
482
+ }, // All sub-monomials tried there.
483
+ {
484
+ l: 'n3^(-n4)*n1 + n3 * n2',
485
+ r: 'n3^(-n4)*(n1 + n3^(n4+1) *n2)'
486
+ }, {
487
+ l: 'n3^(-n4)*n1 + n3^n5 * n2',
488
+ r: 'n3^(-n4)*(n1 + n3^(n4+n5)*n2)'
489
+ }, {
490
+ s: 'n*v + v -> (n+1)*v',
491
+ // noncommutative additional cases
492
+ assuming: {
493
+ multiply: {
494
+ commutative: false
495
+ }
496
+ }
497
+ }, {
498
+ s: 'n1*n3 + n2*n3 -> (n1+n2)*n3',
499
+ assuming: {
500
+ multiply: {
501
+ commutative: false
502
+ }
503
+ }
504
+ }, {
505
+ s: 'n1*n3^(-n4) + n2 * n3 -> (n1 + n2*n3^(n4 + 1))*n3^(-n4)',
506
+ assuming: {
507
+ multiply: {
508
+ commutative: false
509
+ }
510
+ }
511
+ }, {
512
+ s: 'n1*n3^(-n4) + n2 * n3^n5 -> (n1 + n2*n3^(n4 + n5))*n3^(-n4)',
513
+ assuming: {
514
+ multiply: {
515
+ commutative: false
516
+ }
517
+ }
518
+ }, {
519
+ l: 'n*c + c',
520
+ r: '(n+1)*c'
307
521
  }, {
308
- l: 'n1*n3 + n2*n3',
309
- r: '(n1+n2)*n3'
310
- }, // remove parenthesis in the case of negating a quantitiy
522
+ s: 'c*n + c -> c*(n+1)',
523
+ assuming: {
524
+ multiply: {
525
+ commutative: false
526
+ }
527
+ }
528
+ }, simplifyConstant, // Second: before returning expressions to "standard form"
529
+ // make factors positive (and undo 'make non-constant terms positive')
311
530
  {
312
- l: 'n1 + -1 * (n2 + n3)',
313
- r: 'n1 + -1 * n2 + -1 * n3'
314
- }, simplifyConstant, {
315
- l: '(-n)*n1',
316
- r: '-(n*n1)'
317
- }, // make factors positive (and undo 'make non-constant terms positive')
318
- // ordering of constants
531
+ s: '(-n)*n1 -> -(n*n1)',
532
+ assuming: {
533
+ subtract: {
534
+ total: true
535
+ }
536
+ }
537
+ }, {
538
+ s: 'n1*(-n) -> -(n1*n)',
539
+ // in case * non-commutative
540
+ assuming: {
541
+ subtract: {
542
+ total: true
543
+ },
544
+ multiply: {
545
+ commutative: false
546
+ }
547
+ }
548
+ }, // final ordering of constants
319
549
  {
320
- l: 'c+v',
321
- r: 'v+c',
322
- context: {
550
+ s: 'c+v -> v+c',
551
+ assuming: {
552
+ add: {
553
+ commutative: true
554
+ }
555
+ },
556
+ imposeContext: {
323
557
  add: {
324
558
  commutative: false
325
559
  }
326
560
  }
327
561
  }, {
328
- l: 'v*c',
329
- r: 'c*v',
330
- context: {
562
+ s: 'v*c -> c*v',
563
+ assuming: {
564
+ multiply: {
565
+ commutative: true
566
+ }
567
+ },
568
+ imposeContext: {
331
569
  multiply: {
332
570
  commutative: false
333
571
  }
@@ -339,33 +577,125 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
339
577
  r: 'n-n1'
340
578
  }, // undo replace 'subtract'
341
579
  {
342
- l: 'n*(n1^-1)',
343
- r: 'n/n1'
344
- }, // undo replace 'divide'
345
- {
346
- l: 'n*n1^-n2',
347
- r: 'n/n1^n2'
580
+ s: 'n*(n1^-1) -> n/n1',
581
+ // undo replace 'divide'; for * commutative
582
+ assuming: {
583
+ multiply: {
584
+ commutative: true
585
+ }
586
+ } // o.w. / not conventional
587
+
348
588
  }, {
349
- l: 'n1^-1',
350
- r: '1/n1'
589
+ s: 'n*n1^-n2 -> n/n1^n2',
590
+ assuming: {
591
+ multiply: {
592
+ commutative: true
593
+ }
594
+ } // o.w. / not conventional
595
+
351
596
  }, {
352
- l: 'n*(n1/n2)',
353
- r: '(n*n1)/n2'
354
- }, // '*' before '/'
597
+ s: 'n^-1 -> 1/n',
598
+ assuming: {
599
+ multiply: {
600
+ commutative: true
601
+ }
602
+ } // o.w. / not conventional
603
+
604
+ }, {
605
+ l: 'n^1',
606
+ r: 'n'
607
+ }, // can be produced by power cancellation
355
608
  {
356
- l: 'n-(n1+n2)',
357
- r: 'n-n1-n2'
358
- }, // '-' before '+'
359
- // { l: '(n1/n2)/n3', r: 'n1/(n2*n3)' },
609
+ s: 'n*(n1/n2) -> (n*n1)/n2',
610
+ // '*' before '/'
611
+ assuming: {
612
+ multiply: {
613
+ associative: true
614
+ }
615
+ }
616
+ }, {
617
+ s: 'n-(n1+n2) -> n-n1-n2',
618
+ // '-' before '+'
619
+ assuming: {
620
+ addition: {
621
+ associative: true,
622
+ commutative: true
623
+ }
624
+ }
625
+ }, // { l: '(n1/n2)/n3', r: 'n1/(n2*n3)' },
360
626
  // { l: '(n*n1)/(n*n2)', r: 'n1/n2' },
627
+ // simplifyConstant can leave an extra factor of 1, which can always
628
+ // be eliminated, since the identity always commutes
361
629
  {
362
630
  l: '1*n',
363
- r: 'n'
364
- }, // this pattern can be produced by simplifyConstant
365
- {
366
- l: 'n1/(n2/n3)',
367
- r: '(n1*n3)/n2'
631
+ r: 'n',
632
+ imposeContext: {
633
+ multiply: {
634
+ commutative: true
635
+ }
636
+ }
637
+ }, {
638
+ s: 'n1/(n2/n3) -> (n1*n3)/n2',
639
+ assuming: {
640
+ multiply: {
641
+ associative: true
642
+ }
643
+ }
644
+ }, {
645
+ l: 'n1/(-n2)',
646
+ r: '-n1/n2'
368
647
  }];
648
+ /**
649
+ * Takes any rule object as allowed by the specification in simplify
650
+ * and puts it in a standard form used by applyRule
651
+ */
652
+
653
+ function _canonicalizeRule(ruleObject, context) {
654
+ var newRule = {};
655
+
656
+ if (ruleObject.s) {
657
+ var lr = ruleObject.s.split('->');
658
+
659
+ if (lr.length === 2) {
660
+ newRule.l = lr[0];
661
+ newRule.r = lr[1];
662
+ } else {
663
+ throw SyntaxError('Could not parse rule: ' + ruleObject.s);
664
+ }
665
+ } else {
666
+ newRule.l = ruleObject.l;
667
+ newRule.r = ruleObject.r;
668
+ }
669
+
670
+ newRule.l = removeParens(parse(newRule.l));
671
+ newRule.r = removeParens(parse(newRule.r));
672
+
673
+ for (var prop of ['imposeContext', 'repeat', 'assuming']) {
674
+ if (prop in ruleObject) {
675
+ newRule[prop] = ruleObject[prop];
676
+ }
677
+ }
678
+
679
+ if (ruleObject.evaluate) {
680
+ newRule.evaluate = parse(ruleObject.evaluate);
681
+ }
682
+
683
+ if (isAssociative(newRule.l, context)) {
684
+ var makeNode = createMakeNodeFunction(newRule.l);
685
+
686
+ var expandsym = _getExpandPlaceholderSymbol();
687
+
688
+ newRule.expanded = {};
689
+ newRule.expanded.l = makeNode([newRule.l.clone(), expandsym]); // Push the expandsym into the deepest possible branch.
690
+ // This helps to match the newRule against nodes returned from getSplits() later on.
691
+
692
+ flatten(newRule.expanded.l, context);
693
+ unflattenr(newRule.expanded.l, context);
694
+ newRule.expanded.r = makeNode([newRule.r, expandsym]);
695
+ }
696
+
697
+ return newRule;
698
+ }
369
699
  /**
370
700
  * Parse the string array of rules into nodes
371
701
  *
@@ -383,7 +713,8 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
383
713
  * 'n1 * c1 -> c1 * n1'
384
714
  */
385
715
 
386
- function _buildRules(rules) {
716
+
717
+ function _buildRules(rules, context) {
387
718
  // Array of rules to be used to simplify expressions
388
719
  var ruleSet = [];
389
720
 
@@ -394,49 +725,14 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
394
725
 
395
726
  switch (ruleType) {
396
727
  case 'string':
397
- {
398
- var lr = rule.split('->');
399
-
400
- if (lr.length === 2) {
401
- rule = {
402
- l: lr[0],
403
- r: lr[1]
404
- };
405
- } else {
406
- throw SyntaxError('Could not parse rule: ' + rule);
407
- }
408
- }
728
+ rule = {
729
+ s: rule
730
+ };
409
731
 
410
732
  /* falls through */
411
733
 
412
734
  case 'object':
413
- newRule = {
414
- l: removeParens(parse(rule.l)),
415
- r: removeParens(parse(rule.r))
416
- };
417
-
418
- if (rule.context) {
419
- newRule.evaluate = rule.context;
420
- }
421
-
422
- if (rule.evaluate) {
423
- newRule.evaluate = parse(rule.evaluate);
424
- }
425
-
426
- if (isAssociative(newRule.l)) {
427
- var makeNode = createMakeNodeFunction(newRule.l);
428
-
429
- var expandsym = _getExpandPlaceholderSymbol();
430
-
431
- newRule.expanded = {};
432
- newRule.expanded.l = makeNode([newRule.l.clone(), expandsym]); // Push the expandsym into the deepest possible branch.
433
- // This helps to match the newRule against nodes returned from getSplits() later on.
434
-
435
- flatten(newRule.expanded.l);
436
- unflattenr(newRule.expanded.l);
437
- newRule.expanded.r = makeNode([newRule.r, expandsym]);
438
- }
439
-
735
+ newRule = _canonicalizeRule(rule, context);
440
736
  break;
441
737
 
442
738
  case 'function':
@@ -460,71 +756,156 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
460
756
  function _getExpandPlaceholderSymbol() {
461
757
  return new SymbolNode('_p' + _lastsym++);
462
758
  }
759
+
760
+ function mapRule(nodes, rule, context) {
761
+ var resNodes = nodes;
762
+
763
+ if (nodes) {
764
+ for (var i = 0; i < nodes.length; ++i) {
765
+ var newNode = applyRule(nodes[i], rule, context);
766
+
767
+ if (newNode !== nodes[i]) {
768
+ if (resNodes === nodes) {
769
+ resNodes = nodes.slice();
770
+ }
771
+
772
+ resNodes[i] = newNode;
773
+ }
774
+ }
775
+ }
776
+
777
+ return resNodes;
778
+ }
463
779
  /**
464
780
  * Returns a simplfied form of node, or the original node if no simplification was possible.
465
781
  *
466
782
  * @param {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} node
783
+ * @param {Object | Function} rule
784
+ * @param {Object} context -- information about assumed properties of operators
467
785
  * @return {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} The simplified form of `expr`, or the original node if no simplification was possible.
468
786
  */
469
787
 
470
788
 
471
- var applyRule = typed('applyRule', {
472
- 'Node, Object': function NodeObject(node, rule) {
473
- // console.log('Entering applyRule(' + node.toString() + ')')
474
- // Do not clone node unless we find a match
475
- var res = node; // First replace our child nodes with their simplified versions
476
- // If a child could not be simplified, the assignments will have
477
- // no effect since the node is returned unchanged
478
-
479
- if (res instanceof OperatorNode || res instanceof FunctionNode) {
480
- if (res.args) {
481
- for (var i = 0; i < res.args.length; i++) {
482
- res.args[i] = applyRule(res.args[i], rule);
789
+ function applyRule(node, rule, context) {
790
+ // console.log('Entering applyRule("', rule.l.toString({parenthesis:'all'}), '->', rule.r.toString({parenthesis:'all'}), '",', node.toString({parenthesis:'all'}),')')
791
+ // check that the assumptions for this rule are satisfied by the current
792
+ // context:
793
+ if (rule.assuming) {
794
+ for (var symbol in rule.assuming) {
795
+ for (var property in rule.assuming[symbol]) {
796
+ if (hasProperty(symbol, property, context) !== rule.assuming[symbol][property]) {
797
+ return node;
483
798
  }
484
799
  }
485
- } else if (res instanceof ParenthesisNode) {
486
- if (res.content) {
487
- res.content = applyRule(res.content, rule);
800
+ }
801
+ }
802
+
803
+ var mergedContext = mergeContext(rule.imposeContext, context); // Do not clone node unless we find a match
804
+
805
+ var res = node; // First replace our child nodes with their simplified versions
806
+ // If a child could not be simplified, applying the rule to it
807
+ // will have no effect since the node is returned unchanged
808
+
809
+ if (res instanceof OperatorNode || res instanceof FunctionNode) {
810
+ var newArgs = mapRule(res.args, rule, context);
811
+
812
+ if (newArgs !== res.args) {
813
+ res = res.clone();
814
+ res.args = newArgs;
815
+ }
816
+ } else if (res instanceof ParenthesisNode) {
817
+ if (res.content) {
818
+ var newContent = applyRule(res.content, rule, context);
819
+
820
+ if (newContent !== res.content) {
821
+ res = new ParenthesisNode(newContent);
488
822
  }
489
- } // Try to match a rule against this node
823
+ }
824
+ } else if (res instanceof ArrayNode) {
825
+ var newItems = mapRule(res.items, rule, context);
490
826
 
827
+ if (newItems !== res.items) {
828
+ res = new ArrayNode(newItems);
829
+ }
830
+ } else if (res instanceof AccessorNode) {
831
+ var newObj = res.object;
491
832
 
492
- var repl = rule.r;
833
+ if (res.object) {
834
+ newObj = applyRule(res.object, rule, context);
835
+ }
493
836
 
494
- var matches = _ruleMatch(rule.l, res)[0]; // If the rule is associative operator, we can try matching it while allowing additional terms.
495
- // This allows us to match rules like 'n+n' to the expression '(1+x)+x' or even 'x+1+x' if the operator is commutative.
837
+ var newIndex = res.index;
496
838
 
839
+ if (res.index) {
840
+ newIndex = applyRule(res.index, rule, context);
841
+ }
497
842
 
498
- if (!matches && rule.expanded) {
499
- repl = rule.expanded.r;
500
- matches = _ruleMatch(rule.expanded.l, res)[0];
843
+ if (newObj !== res.object || newIndex !== res.index) {
844
+ res = new AccessorNode(newObj, newIndex);
501
845
  }
846
+ } else if (res instanceof IndexNode) {
847
+ var newDims = mapRule(res.dimensions, rule, context);
502
848
 
503
- if (matches) {
504
- // const before = res.toString({parenthesis: 'all'})
505
- // Create a new node by cloning the rhs of the matched rule
506
- // we keep any implicit multiplication state if relevant
507
- var implicit = res.implicit;
508
- res = repl.clone();
849
+ if (newDims !== res.dimensions) {
850
+ res = new IndexNode(newDims);
851
+ }
852
+ } else if (res instanceof ObjectNode) {
853
+ var changed = false;
854
+ var newProps = {};
509
855
 
510
- if (implicit && 'implicit' in repl) {
511
- res.implicit = true;
512
- } // Replace placeholders with their respective nodes without traversing deeper into the replaced nodes
856
+ for (var prop in res.properties) {
857
+ newProps[prop] = applyRule(res.properties[prop], rule, context);
513
858
 
859
+ if (newProps[prop] !== res.properties[prop]) {
860
+ changed = true;
861
+ }
862
+ }
514
863
 
515
- res = res.transform(function (node) {
516
- if (node.isSymbolNode && hasOwnProperty(matches.placeholders, node.name)) {
517
- return matches.placeholders[node.name].clone();
518
- } else {
519
- return node;
520
- }
521
- }); // const after = res.toString({parenthesis: 'all'})
522
- // console.log('Simplified ' + before + ' to ' + after)
864
+ if (changed) {
865
+ res = new ObjectNode(newProps);
523
866
  }
867
+ } // Try to match a rule against this node
524
868
 
525
- return res;
869
+
870
+ var repl = rule.r;
871
+
872
+ var matches = _ruleMatch(rule.l, res, mergedContext)[0]; // If the rule is associative operator, we can try matching it while allowing additional terms.
873
+ // This allows us to match rules like 'n+n' to the expression '(1+x)+x' or even 'x+1+x' if the operator is commutative.
874
+
875
+
876
+ if (!matches && rule.expanded) {
877
+ repl = rule.expanded.r;
878
+ matches = _ruleMatch(rule.expanded.l, res, mergedContext)[0];
526
879
  }
527
- });
880
+
881
+ if (matches) {
882
+ // const before = res.toString({parenthesis: 'all'})
883
+ // Create a new node by cloning the rhs of the matched rule
884
+ // we keep any implicit multiplication state if relevant
885
+ var implicit = res.implicit;
886
+ res = repl.clone();
887
+
888
+ if (implicit && 'implicit' in repl) {
889
+ res.implicit = true;
890
+ } // Replace placeholders with their respective nodes without traversing deeper into the replaced nodes
891
+
892
+
893
+ res = res.transform(function (node) {
894
+ if (node.isSymbolNode && hasOwnProperty(matches.placeholders, node.name)) {
895
+ return matches.placeholders[node.name].clone();
896
+ } else {
897
+ return node;
898
+ }
899
+ }); // const after = res.toString({parenthesis: 'all'})
900
+ // console.log('Simplified ' + before + ' to ' + after)
901
+ }
902
+
903
+ if (rule.repeat && res !== node) {
904
+ res = applyRule(res, rule, context);
905
+ }
906
+
907
+ return res;
908
+ }
528
909
  /**
529
910
  * Get (binary) combinations of a flattened binary node
530
911
  * e.g. +(node1, node2, node3) -> [
@@ -534,6 +915,7 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
534
915
  *
535
916
  */
536
917
 
918
+
537
919
  function getSplits(node, context) {
538
920
  var res = [];
539
921
  var right, rightArgs;
@@ -547,9 +929,18 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
547
929
  res.push(makeNode([node.args[i], right]));
548
930
  }
549
931
  } else {
550
- rightArgs = node.args.slice(1);
551
- right = rightArgs.length === 1 ? rightArgs[0] : makeNode(rightArgs);
552
- res.push(makeNode([node.args[0], right]));
932
+ // Keep order, but try all parenthesizations
933
+ for (var _i = 1; _i < node.args.length; _i++) {
934
+ var left = node.args[0];
935
+
936
+ if (_i > 1) {
937
+ left = makeNode(node.args.slice(0, _i));
938
+ }
939
+
940
+ rightArgs = node.args.slice(_i);
941
+ right = rightArgs.length === 1 ? rightArgs[0] : makeNode(rightArgs);
942
+ res.push(makeNode([left, right]));
943
+ }
553
944
  }
554
945
 
555
946
  return res;
@@ -652,15 +1043,19 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
652
1043
  *
653
1044
  * @param {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} rule
654
1045
  * @param {ConstantNode | SymbolNode | ParenthesisNode | FunctionNode | OperatorNode} node
1046
+ * @param {Object} context -- provides assumed properties of operators
1047
+ * @param {Boolean} isSplit -- whether we are in process of splitting an
1048
+ * n-ary operator node into possible binary combinations.
1049
+ * Defaults to false.
655
1050
  * @return {Object} Information about the match, if it exists.
656
1051
  */
657
1052
 
658
1053
 
659
- function _ruleMatch(rule, node, isSplit) {
1054
+ function _ruleMatch(rule, node, context, isSplit) {
660
1055
  // console.log('Entering _ruleMatch(' + JSON.stringify(rule) + ', ' + JSON.stringify(node) + ')')
661
1056
  // console.log('rule = ' + rule)
662
1057
  // console.log('node = ' + node)
663
- // console.log('Entering _ruleMatch(' + rule.toString() + ', ' + node.toString() + ')')
1058
+ // console.log('Entering _ruleMatch(', rule.toString({parenthesis:'all'}), ', ', node.toString({parenthesis:'all'}), ', ', context, ')')
664
1059
  var res = [{
665
1060
  placeholders: {}
666
1061
  }];
@@ -678,32 +1073,65 @@ export var createSimplify = /* #__PURE__ */factory(name, dependencies, _ref => {
678
1073
  } // rule and node match. Search the children of rule and node.
679
1074
 
680
1075
 
681
- if (node.args.length === 1 && rule.args.length === 1 || !isAssociative(node) && node.args.length === rule.args.length || isSplit) {
682
- // Expect non-associative operators to match exactly
1076
+ if (node.args.length === 1 && rule.args.length === 1 || !isAssociative(node, context) && node.args.length === rule.args.length || isSplit) {
1077
+ // Expect non-associative operators to match exactly,
1078
+ // except in any order if operator is commutative
683
1079
  var childMatches = [];
684
1080
 
685
1081
  for (var i = 0; i < rule.args.length; i++) {
686
- var childMatch = _ruleMatch(rule.args[i], node.args[i]);
1082
+ var childMatch = _ruleMatch(rule.args[i], node.args[i], context);
687
1083
 
688
1084
  if (childMatch.length === 0) {
689
1085
  // Child did not match, so stop searching immediately
690
- return [];
1086
+ break;
691
1087
  } // The child matched, so add the information returned from the child to our result
692
1088
 
693
1089
 
694
1090
  childMatches.push(childMatch);
695
1091
  }
696
1092
 
1093
+ if (childMatches.length !== rule.args.length) {
1094
+ if (!isCommutative(node, context) || // exact match in order needed
1095
+ rule.args.length === 1) {
1096
+ // nothing to commute
1097
+ return [];
1098
+ }
1099
+
1100
+ if (rule.args.length > 2) {
1101
+ /* Need to generate all permutations and try them.
1102
+ * It's a bit complicated, and unlikely to come up since there
1103
+ * are very few ternary or higher operators. So punt for now.
1104
+ */
1105
+ throw new Error('permuting >2 commutative non-associative rule arguments not yet implemented');
1106
+ }
1107
+ /* Exactly two arguments, try them reversed */
1108
+
1109
+
1110
+ var leftMatch = _ruleMatch(rule.args[0], node.args[1], context);
1111
+
1112
+ if (leftMatch.length === 0) {
1113
+ return [];
1114
+ }
1115
+
1116
+ var rightMatch = _ruleMatch(rule.args[1], node.args[0], context);
1117
+
1118
+ if (rightMatch.length === 0) {
1119
+ return [];
1120
+ }
1121
+
1122
+ childMatches = [leftMatch, rightMatch];
1123
+ }
1124
+
697
1125
  res = mergeChildMatches(childMatches);
698
1126
  } else if (node.args.length >= 2 && rule.args.length === 2) {
699
1127
  // node is flattened, rule is not
700
1128
  // Associative operators/functions can be split in different ways so we check if the rule matches each
701
1129
  // them and return their union.
702
- var splits = getSplits(node, rule.context);
1130
+ var splits = getSplits(node, context);
703
1131
  var splitMatches = [];
704
1132
 
705
- for (var _i = 0; _i < splits.length; _i++) {
706
- var matchSet = _ruleMatch(rule, splits[_i], true); // recursing at the same tree depth here
1133
+ for (var _i2 = 0; _i2 < splits.length; _i2++) {
1134
+ var matchSet = _ruleMatch(rule, splits[_i2], context, true); // recursing at the same tree depth here
707
1135
 
708
1136
 
709
1137
  splitMatches = splitMatches.concat(matchSet);