mathjs 10.1.1 → 10.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/HISTORY.md +43 -0
  2. package/docs/expressions/algebra.md +27 -0
  3. package/docs/expressions/syntax.md +31 -2
  4. package/docs/reference/functions/abs.md +6 -0
  5. package/docs/reference/functions/acos.md +6 -0
  6. package/docs/reference/functions/acosh.md +6 -0
  7. package/docs/reference/functions/acot.md +6 -0
  8. package/docs/reference/functions/acoth.md +6 -0
  9. package/docs/reference/functions/acsc.md +6 -0
  10. package/docs/reference/functions/acsch.md +6 -0
  11. package/docs/reference/functions/add.md +6 -0
  12. package/docs/reference/functions/and.md +6 -0
  13. package/docs/reference/functions/apply.md +6 -0
  14. package/docs/reference/functions/arg.md +6 -0
  15. package/docs/reference/functions/asec.md +6 -0
  16. package/docs/reference/functions/asech.md +6 -0
  17. package/docs/reference/functions/asin.md +6 -0
  18. package/docs/reference/functions/asinh.md +6 -0
  19. package/docs/reference/functions/atan.md +6 -0
  20. package/docs/reference/functions/atan2.md +6 -0
  21. package/docs/reference/functions/atanh.md +6 -0
  22. package/docs/reference/functions/bellNumbers.md +6 -0
  23. package/docs/reference/functions/bin.md +6 -0
  24. package/docs/reference/functions/bitAnd.md +6 -0
  25. package/docs/reference/functions/bitNot.md +6 -0
  26. package/docs/reference/functions/bitOr.md +6 -0
  27. package/docs/reference/functions/bitXor.md +6 -0
  28. package/docs/reference/functions/catalan.md +6 -0
  29. package/docs/reference/functions/cbrt.md +6 -0
  30. package/docs/reference/functions/ceil.md +6 -0
  31. package/docs/reference/functions/clone.md +6 -0
  32. package/docs/reference/functions/column.md +6 -0
  33. package/docs/reference/functions/combinations.md +6 -0
  34. package/docs/reference/functions/combinationsWithRep.md +6 -0
  35. package/docs/reference/functions/compare.md +6 -0
  36. package/docs/reference/functions/compareNatural.md +6 -0
  37. package/docs/reference/functions/compareText.md +6 -0
  38. package/docs/reference/functions/compile.md +6 -0
  39. package/docs/reference/functions/composition.md +6 -0
  40. package/docs/reference/functions/concat.md +6 -0
  41. package/docs/reference/functions/conj.md +6 -0
  42. package/docs/reference/functions/cos.md +6 -0
  43. package/docs/reference/functions/cosh.md +6 -0
  44. package/docs/reference/functions/cot.md +6 -0
  45. package/docs/reference/functions/coth.md +6 -0
  46. package/docs/reference/functions/count.md +6 -0
  47. package/docs/reference/functions/cross.md +6 -0
  48. package/docs/reference/functions/csc.md +6 -0
  49. package/docs/reference/functions/csch.md +6 -0
  50. package/docs/reference/functions/ctranspose.md +6 -0
  51. package/docs/reference/functions/cube.md +6 -0
  52. package/docs/reference/functions/cumsum.md +57 -0
  53. package/docs/reference/functions/deepEqual.md +6 -0
  54. package/docs/reference/functions/derivative.md +6 -0
  55. package/docs/reference/functions/det.md +6 -0
  56. package/docs/reference/functions/diag.md +6 -0
  57. package/docs/reference/functions/diff.md +6 -0
  58. package/docs/reference/functions/distance.md +6 -0
  59. package/docs/reference/functions/divide.md +6 -0
  60. package/docs/reference/functions/dot.md +6 -0
  61. package/docs/reference/functions/dotDivide.md +6 -0
  62. package/docs/reference/functions/dotMultiply.md +6 -0
  63. package/docs/reference/functions/dotPow.md +6 -0
  64. package/docs/reference/functions/eigs.md +6 -0
  65. package/docs/reference/functions/equal.md +6 -0
  66. package/docs/reference/functions/equalText.md +6 -0
  67. package/docs/reference/functions/erf.md +6 -0
  68. package/docs/reference/functions/evaluate.md +6 -0
  69. package/docs/reference/functions/exp.md +6 -0
  70. package/docs/reference/functions/expm.md +6 -0
  71. package/docs/reference/functions/expm1.md +6 -0
  72. package/docs/reference/functions/factorial.md +6 -0
  73. package/docs/reference/functions/filter.md +6 -0
  74. package/docs/reference/functions/fix.md +6 -0
  75. package/docs/reference/functions/flatten.md +6 -0
  76. package/docs/reference/functions/floor.md +6 -0
  77. package/docs/reference/functions/forEach.md +6 -0
  78. package/docs/reference/functions/format.md +7 -1
  79. package/docs/reference/functions/gamma.md +6 -0
  80. package/docs/reference/functions/gcd.md +6 -0
  81. package/docs/reference/functions/getMatrixDataType.md +6 -0
  82. package/docs/reference/functions/hasNumericValue.md +6 -0
  83. package/docs/reference/functions/help.md +6 -0
  84. package/docs/reference/functions/hex.md +6 -0
  85. package/docs/reference/functions/hypot.md +6 -0
  86. package/docs/reference/functions/identity.md +6 -0
  87. package/docs/reference/functions/im.md +6 -0
  88. package/docs/reference/functions/intersect.md +6 -0
  89. package/docs/reference/functions/inv.md +6 -0
  90. package/docs/reference/functions/invmod.md +6 -0
  91. package/docs/reference/functions/isInteger.md +6 -0
  92. package/docs/reference/functions/isNaN.md +6 -0
  93. package/docs/reference/functions/isNegative.md +6 -0
  94. package/docs/reference/functions/isNumeric.md +6 -0
  95. package/docs/reference/functions/isPositive.md +6 -0
  96. package/docs/reference/functions/isPrime.md +6 -0
  97. package/docs/reference/functions/isZero.md +6 -0
  98. package/docs/reference/functions/kldivergence.md +6 -0
  99. package/docs/reference/functions/kron.md +6 -0
  100. package/docs/reference/functions/larger.md +6 -0
  101. package/docs/reference/functions/largerEq.md +6 -0
  102. package/docs/reference/functions/lcm.md +6 -0
  103. package/docs/reference/functions/leafCount.md +52 -0
  104. package/docs/reference/functions/leftShift.md +6 -0
  105. package/docs/reference/functions/log.md +6 -0
  106. package/docs/reference/functions/log10.md +6 -0
  107. package/docs/reference/functions/log1p.md +6 -0
  108. package/docs/reference/functions/log2.md +6 -0
  109. package/docs/reference/functions/lsolve.md +6 -0
  110. package/docs/reference/functions/lsolveAll.md +6 -0
  111. package/docs/reference/functions/lup.md +6 -0
  112. package/docs/reference/functions/lusolve.md +6 -0
  113. package/docs/reference/functions/mad.md +6 -0
  114. package/docs/reference/functions/map.md +28 -5
  115. package/docs/reference/functions/matrixFromColumns.md +6 -0
  116. package/docs/reference/functions/matrixFromFunction.md +6 -0
  117. package/docs/reference/functions/matrixFromRows.md +6 -0
  118. package/docs/reference/functions/max.md +6 -0
  119. package/docs/reference/functions/mean.md +6 -0
  120. package/docs/reference/functions/median.md +6 -0
  121. package/docs/reference/functions/min.md +6 -0
  122. package/docs/reference/functions/mod.md +6 -0
  123. package/docs/reference/functions/mode.md +6 -0
  124. package/docs/reference/functions/multinomial.md +6 -0
  125. package/docs/reference/functions/multiply.md +6 -0
  126. package/docs/reference/functions/norm.md +6 -0
  127. package/docs/reference/functions/not.md +6 -0
  128. package/docs/reference/functions/nthRoot.md +6 -0
  129. package/docs/reference/functions/nthRoots.md +6 -0
  130. package/docs/reference/functions/numeric.md +6 -0
  131. package/docs/reference/functions/oct.md +6 -0
  132. package/docs/reference/functions/ones.md +6 -0
  133. package/docs/reference/functions/or.md +6 -0
  134. package/docs/reference/functions/parser.md +6 -0
  135. package/docs/reference/functions/partitionSelect.md +6 -0
  136. package/docs/reference/functions/permutations.md +6 -0
  137. package/docs/reference/functions/pickRandom.md +6 -0
  138. package/docs/reference/functions/pow.md +6 -0
  139. package/docs/reference/functions/print.md +6 -0
  140. package/docs/reference/functions/prod.md +6 -0
  141. package/docs/reference/functions/qr.md +6 -0
  142. package/docs/reference/functions/quantileSeq.md +6 -0
  143. package/docs/reference/functions/random.md +6 -0
  144. package/docs/reference/functions/randomInt.md +6 -0
  145. package/docs/reference/functions/range.md +6 -0
  146. package/docs/reference/functions/rationalize.md +7 -1
  147. package/docs/reference/functions/re.md +6 -0
  148. package/docs/reference/functions/reshape.md +7 -0
  149. package/docs/reference/functions/resize.md +6 -0
  150. package/docs/reference/functions/resolve.md +46 -0
  151. package/docs/reference/functions/rightArithShift.md +6 -0
  152. package/docs/reference/functions/rightLogShift.md +6 -0
  153. package/docs/reference/functions/rotate.md +6 -0
  154. package/docs/reference/functions/rotationMatrix.md +6 -0
  155. package/docs/reference/functions/round.md +6 -0
  156. package/docs/reference/functions/row.md +6 -0
  157. package/docs/reference/functions/sec.md +6 -0
  158. package/docs/reference/functions/sech.md +6 -0
  159. package/docs/reference/functions/setCartesian.md +6 -0
  160. package/docs/reference/functions/setDifference.md +6 -0
  161. package/docs/reference/functions/setDistinct.md +6 -0
  162. package/docs/reference/functions/setIntersect.md +6 -0
  163. package/docs/reference/functions/setIsSubset.md +6 -0
  164. package/docs/reference/functions/setMultiplicity.md +6 -0
  165. package/docs/reference/functions/setPowerset.md +6 -0
  166. package/docs/reference/functions/setSize.md +6 -0
  167. package/docs/reference/functions/setSymDifference.md +6 -0
  168. package/docs/reference/functions/setUnion.md +6 -0
  169. package/docs/reference/functions/sign.md +6 -0
  170. package/docs/reference/functions/simplify.md +43 -6
  171. package/docs/reference/functions/simplifyCore.md +50 -0
  172. package/docs/reference/functions/sin.md +6 -0
  173. package/docs/reference/functions/sinh.md +6 -0
  174. package/docs/reference/functions/size.md +6 -0
  175. package/docs/reference/functions/slu.md +6 -0
  176. package/docs/reference/functions/smaller.md +6 -0
  177. package/docs/reference/functions/smallerEq.md +6 -0
  178. package/docs/reference/functions/sort.md +6 -0
  179. package/docs/reference/functions/sqrt.md +6 -0
  180. package/docs/reference/functions/sqrtm.md +6 -0
  181. package/docs/reference/functions/square.md +6 -0
  182. package/docs/reference/functions/squeeze.md +6 -0
  183. package/docs/reference/functions/std.md +6 -0
  184. package/docs/reference/functions/stirlingS2.md +6 -0
  185. package/docs/reference/functions/subset.md +16 -2
  186. package/docs/reference/functions/subtract.md +6 -0
  187. package/docs/reference/functions/sum.md +8 -1
  188. package/docs/reference/functions/symbolicEqual.md +62 -0
  189. package/docs/reference/functions/tan.md +6 -0
  190. package/docs/reference/functions/tanh.md +6 -0
  191. package/docs/reference/functions/to.md +6 -0
  192. package/docs/reference/functions/trace.md +6 -0
  193. package/docs/reference/functions/transpose.md +6 -0
  194. package/docs/reference/functions/typeOf.md +6 -0
  195. package/docs/reference/functions/unaryMinus.md +6 -0
  196. package/docs/reference/functions/unaryPlus.md +6 -0
  197. package/docs/reference/functions/unequal.md +6 -0
  198. package/docs/reference/functions/usolve.md +6 -0
  199. package/docs/reference/functions/usolveAll.md +6 -0
  200. package/docs/reference/functions/variance.md +6 -0
  201. package/docs/reference/functions/xgcd.md +6 -0
  202. package/docs/reference/functions/xor.md +6 -0
  203. package/docs/reference/functions/zeros.md +6 -0
  204. package/docs/reference/functions.md +6 -1
  205. package/lib/browser/math.js +6 -6
  206. package/lib/browser/math.js.map +1 -1
  207. package/lib/cjs/core/create.js +4 -4
  208. package/lib/cjs/core/function/import.js +3 -3
  209. package/lib/cjs/core/function/typed.js +2 -2
  210. package/lib/cjs/defaultInstance.js +3 -3
  211. package/lib/cjs/entry/allFactoriesAny.js +1 -1
  212. package/lib/cjs/entry/allFactoriesNumber.js +1 -1
  213. package/lib/cjs/entry/configReadonly.js +1 -1
  214. package/lib/cjs/entry/dependenciesAny/dependenciesCumSum.generated.js +26 -0
  215. package/lib/cjs/entry/dependenciesAny/dependenciesCumSumTransform.generated.js +26 -0
  216. package/lib/cjs/entry/dependenciesAny/dependenciesLeafCount.generated.js +23 -0
  217. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +3 -0
  218. package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +32 -0
  219. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +6 -0
  220. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +65 -0
  221. package/lib/cjs/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +29 -0
  222. package/lib/cjs/entry/dependenciesAny.generated.js +48 -0
  223. package/lib/cjs/entry/dependenciesNumber/dependenciesCumSum.generated.js +26 -0
  224. package/lib/cjs/entry/dependenciesNumber/dependenciesCumSumTransform.generated.js +26 -0
  225. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +3 -0
  226. package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +32 -0
  227. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +6 -0
  228. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +65 -0
  229. package/lib/cjs/entry/dependenciesNumber.generated.js +32 -0
  230. package/lib/cjs/entry/impureFunctionsAny.generated.js +85 -33
  231. package/lib/cjs/entry/impureFunctionsNumber.generated.js +102 -64
  232. package/lib/cjs/entry/pureFunctionsAny.generated.js +68 -64
  233. package/lib/cjs/entry/pureFunctionsNumber.generated.js +51 -47
  234. package/lib/cjs/expression/Help.js +4 -0
  235. package/lib/cjs/expression/Parser.js +1 -1
  236. package/lib/cjs/expression/embeddedDocs/construction/fraction.js +3 -3
  237. package/lib/cjs/expression/embeddedDocs/core/typed.js +1 -1
  238. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +250 -235
  239. package/lib/cjs/expression/embeddedDocs/function/algebra/leafCount.js +15 -0
  240. package/lib/cjs/expression/embeddedDocs/function/algebra/resolve.js +16 -0
  241. package/lib/cjs/expression/embeddedDocs/function/algebra/simplify.js +1 -1
  242. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +15 -0
  243. package/lib/cjs/expression/embeddedDocs/function/algebra/symbolicEqual.js +15 -0
  244. package/lib/cjs/expression/embeddedDocs/function/matrix/subset.js +2 -2
  245. package/lib/cjs/expression/embeddedDocs/function/statistics/cumsum.js +15 -0
  246. package/lib/cjs/expression/node/FunctionNode.js +80 -61
  247. package/lib/cjs/expression/node/IndexNode.js +1 -1
  248. package/lib/cjs/expression/node/Node.js +3 -3
  249. package/lib/cjs/expression/node/ObjectNode.js +1 -1
  250. package/lib/cjs/expression/node/utils/access.js +1 -1
  251. package/lib/cjs/expression/node/utils/assign.js +1 -1
  252. package/lib/cjs/expression/parse.js +13 -13
  253. package/lib/cjs/expression/transform/cumsum.transform.js +57 -0
  254. package/lib/cjs/expression/transform/sum.transform.js +1 -1
  255. package/lib/cjs/factoriesAny.js +48 -0
  256. package/lib/cjs/factoriesNumber.js +33 -1
  257. package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
  258. package/lib/cjs/function/algebra/leafCount.js +66 -0
  259. package/lib/cjs/function/algebra/rationalize.js +24 -41
  260. package/lib/cjs/function/algebra/resolve.js +106 -0
  261. package/lib/cjs/function/algebra/simplify/simplifyConstant.js +5 -5
  262. package/lib/cjs/function/algebra/simplify/util.js +171 -33
  263. package/lib/cjs/function/algebra/simplify.js +562 -207
  264. package/lib/cjs/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +68 -44
  265. package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
  266. package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
  267. package/lib/cjs/function/algebra/symbolicEqual.js +88 -0
  268. package/lib/cjs/function/arithmetic/ceil.js +3 -3
  269. package/lib/cjs/function/arithmetic/floor.js +3 -3
  270. package/lib/cjs/function/arithmetic/invmod.js +1 -1
  271. package/lib/cjs/function/arithmetic/norm.js +1 -1
  272. package/lib/cjs/function/arithmetic/round.js +1 -1
  273. package/lib/cjs/function/matrix/eigs/complexEigs.js +13 -11
  274. package/lib/cjs/function/matrix/map.js +53 -15
  275. package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
  276. package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
  277. package/lib/cjs/function/matrix/subset.js +15 -5
  278. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  279. package/lib/cjs/function/relational/compareNatural.js +6 -6
  280. package/lib/cjs/function/statistics/cumsum.js +151 -0
  281. package/lib/cjs/function/statistics/sum.js +1 -1
  282. package/lib/cjs/function/string/format.js +1 -1
  283. package/lib/cjs/header.js +2 -2
  284. package/lib/cjs/plain/bignumber/index.js +1 -1
  285. package/lib/cjs/plain/number/combinations.js +18 -6
  286. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  287. package/lib/cjs/type/bignumber/function/bignumber.js +1 -1
  288. package/lib/cjs/type/boolean.js +2 -2
  289. package/lib/cjs/type/complex/Complex.js +14 -14
  290. package/lib/cjs/type/complex/function/complex.js +1 -1
  291. package/lib/cjs/type/fraction/Fraction.js +6 -6
  292. package/lib/cjs/type/fraction/function/fraction.js +21 -9
  293. package/lib/cjs/type/matrix/DenseMatrix.js +5 -5
  294. package/lib/cjs/type/matrix/SparseMatrix.js +2 -2
  295. package/lib/cjs/type/number.js +1 -1
  296. package/lib/cjs/type/string.js +2 -2
  297. package/lib/cjs/type/unit/Unit.js +8 -8
  298. package/lib/cjs/utils/collection.js +3 -27
  299. package/lib/cjs/utils/customs.js +2 -2
  300. package/lib/cjs/utils/emitter.js +1 -1
  301. package/lib/cjs/utils/function.js +2 -2
  302. package/lib/cjs/utils/is.js +6 -6
  303. package/lib/cjs/utils/latex.js +3 -3
  304. package/lib/cjs/utils/lruQueue.js +1 -1
  305. package/lib/cjs/utils/map.js +3 -3
  306. package/lib/cjs/utils/object.js +2 -2
  307. package/lib/cjs/utils/snapshot.js +7 -7
  308. package/lib/cjs/utils/string.js +2 -2
  309. package/lib/cjs/utils/switch.js +31 -0
  310. package/lib/cjs/version.js +1 -1
  311. package/lib/esm/entry/dependenciesAny/dependenciesCumSum.generated.js +14 -0
  312. package/lib/esm/entry/dependenciesAny/dependenciesCumSumTransform.generated.js +14 -0
  313. package/lib/esm/entry/dependenciesAny/dependenciesLeafCount.generated.js +12 -0
  314. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
  315. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +18 -0
  316. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +4 -0
  317. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +40 -0
  318. package/lib/esm/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +16 -0
  319. package/lib/esm/entry/dependenciesAny.generated.js +6 -0
  320. package/lib/esm/entry/dependenciesNumber/dependenciesCumSum.generated.js +14 -0
  321. package/lib/esm/entry/dependenciesNumber/dependenciesCumSumTransform.generated.js +14 -0
  322. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +2 -0
  323. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +18 -0
  324. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +4 -0
  325. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +40 -0
  326. package/lib/esm/entry/dependenciesNumber.generated.js +4 -0
  327. package/lib/esm/entry/impureFunctionsAny.generated.js +74 -26
  328. package/lib/esm/entry/impureFunctionsNumber.generated.js +89 -53
  329. package/lib/esm/entry/pureFunctionsAny.generated.js +54 -49
  330. package/lib/esm/entry/pureFunctionsNumber.generated.js +36 -31
  331. package/lib/esm/expression/Help.js +4 -0
  332. package/lib/esm/expression/embeddedDocs/construction/fraction.js +3 -3
  333. package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
  334. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +222 -212
  335. package/lib/esm/expression/embeddedDocs/function/algebra/leafCount.js +8 -0
  336. package/lib/esm/expression/embeddedDocs/function/algebra/resolve.js +9 -0
  337. package/lib/esm/expression/embeddedDocs/function/algebra/simplify.js +1 -1
  338. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +8 -0
  339. package/lib/esm/expression/embeddedDocs/function/algebra/symbolicEqual.js +8 -0
  340. package/lib/esm/expression/embeddedDocs/function/matrix/subset.js +2 -2
  341. package/lib/esm/expression/embeddedDocs/function/statistics/cumsum.js +8 -0
  342. package/lib/esm/expression/node/FunctionNode.js +70 -53
  343. package/lib/esm/expression/transform/cumsum.transform.js +48 -0
  344. package/lib/esm/expression/transform/sum.transform.js +1 -1
  345. package/lib/esm/factoriesAny.js +6 -0
  346. package/lib/esm/factoriesNumber.js +4 -0
  347. package/lib/esm/function/algebra/leafCount.js +59 -0
  348. package/lib/esm/function/algebra/rationalize.js +24 -40
  349. package/lib/esm/function/algebra/resolve.js +95 -0
  350. package/lib/esm/function/algebra/simplify/simplifyConstant.js +3 -3
  351. package/lib/esm/function/algebra/simplify/util.js +170 -34
  352. package/lib/esm/function/algebra/simplify.js +557 -202
  353. package/lib/esm/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +61 -45
  354. package/lib/esm/function/algebra/symbolicEqual.js +80 -0
  355. package/lib/esm/function/matrix/eigs/complexEigs.js +8 -6
  356. package/lib/esm/function/matrix/map.js +53 -15
  357. package/lib/esm/function/matrix/subset.js +15 -5
  358. package/lib/esm/function/statistics/cumsum.js +139 -0
  359. package/lib/esm/function/statistics/sum.js +1 -1
  360. package/lib/esm/function/string/format.js +1 -1
  361. package/lib/esm/plain/number/combinations.js +18 -6
  362. package/lib/esm/type/fraction/function/fraction.js +20 -8
  363. package/lib/esm/utils/collection.js +1 -26
  364. package/lib/esm/utils/switch.js +24 -0
  365. package/lib/esm/version.js +1 -1
  366. package/package.json +15 -10
  367. package/types/index.d.ts +155 -13
  368. package/lib/cjs/function/algebra/simplify/resolve.js +0 -76
  369. package/lib/esm/function/algebra/simplify/resolve.js +0 -67
@@ -39,16 +39,26 @@ var createSubset = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
39
39
  *
40
40
  * // replace a subset
41
41
  * const e = []
42
- * const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]]
42
+ * const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]] and e = [[5, 0, 6]]
43
43
  * const g = math.subset(f, math.index(1, 1), 7, 0) // g = [[5, 6], [0, 7]]
44
44
  *
45
+ * // get submatrix using ranges
46
+ * const M = [
47
+ * [1,2,3],
48
+ * [4,5,6],
49
+ * [7,8,9]
50
+ * ]
51
+ * math.subset(M, math.index(math.range(0,2), math.range(0,3))) // [[1,2,3],[4,5,6]]
52
+ *
45
53
  * See also:
46
54
  *
47
55
  * size, resize, squeeze, index
48
56
  *
49
57
  * @param {Array | Matrix | string} matrix An array, matrix, or string
50
- * @param {Index} index An index containing ranges for each
51
- * dimension
58
+ * @param {Index} index
59
+ * For each dimension of the target, specifies an index or a list of
60
+ * indices to fetch or set. `subset` uses the cartesian product of
61
+ * the indices specified in each dimension.
52
62
  * @param {*} [replacement] An array, matrix, or scalar.
53
63
  * If provided, the subset is replaced with replacement.
54
64
  * If not provided, the subset is returned
@@ -91,7 +101,7 @@ var createSubset = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
91
101
  /**
92
102
  * Retrieve a subset of a string
93
103
  * @param {string} str string from which to get a substring
94
- * @param {Index} index An index containing ranges for each dimension
104
+ * @param {Index} index An index or list of indices (character positions)
95
105
  * @returns {string} substring
96
106
  * @private
97
107
  */
@@ -122,7 +132,7 @@ function _getSubstring(str, index) {
122
132
  /**
123
133
  * Replace a substring in a string
124
134
  * @param {string} str string to be replaced
125
- * @param {Index} index An index containing ranges for each dimension
135
+ * @param {Index} index An index or list of indices (character positions)
126
136
  * @param {string} replacement Replacement string
127
137
  * @param {string} [defaultValue] Default value to be uses when resizing
128
138
  * the string. is ' ' by default
@@ -9,13 +9,13 @@ exports.createRng = createRng;
9
9
 
10
10
  var _seedrandom = _interopRequireDefault(require("seedrandom"));
11
11
 
12
- var singletonRandom = /* #__PURE__ */(0, _seedrandom["default"])(Date.now());
12
+ var singletonRandom = /* #__PURE__ */(0, _seedrandom.default)(Date.now());
13
13
 
14
14
  function createRng(randomSeed) {
15
15
  var random; // create a new random generator with given seed
16
16
 
17
17
  function setSeed(seed) {
18
- random = seed === null ? singletonRandom : (0, _seedrandom["default"])(String(seed));
18
+ random = seed === null ? singletonRandom : (0, _seedrandom.default)(String(seed));
19
19
  } // initialize a seeded pseudo random number generator with config's random seed
20
20
 
21
21
 
@@ -101,7 +101,7 @@ var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependenci
101
101
  // c can be number, BigNumber, or Fraction
102
102
  return c > 0 ? 1 : -1; // return a number
103
103
  } else {
104
- return (0, _javascriptNaturalSort["default"])(typeX, typeY);
104
+ return (0, _javascriptNaturalSort.default)(typeX, typeY);
105
105
  }
106
106
  } // matrix types
107
107
 
@@ -112,13 +112,13 @@ var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependenci
112
112
  if (c !== 0) {
113
113
  return c;
114
114
  } else {
115
- return (0, _javascriptNaturalSort["default"])(typeX, typeY);
115
+ return (0, _javascriptNaturalSort.default)(typeX, typeY);
116
116
  }
117
117
  } // in case of different types, order by name of type, i.e. 'BigNumber' < 'Complex'
118
118
 
119
119
 
120
120
  if (typeX !== typeY) {
121
- return (0, _javascriptNaturalSort["default"])(typeX, typeY);
121
+ return (0, _javascriptNaturalSort.default)(typeX, typeY);
122
122
  }
123
123
 
124
124
  if (typeX === 'Complex') {
@@ -139,7 +139,7 @@ var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependenci
139
139
  }
140
140
 
141
141
  if (typeX === 'string') {
142
- return (0, _javascriptNaturalSort["default"])(x, y);
142
+ return (0, _javascriptNaturalSort.default)(x, y);
143
143
  }
144
144
 
145
145
  if (typeX === 'Object') {
@@ -252,8 +252,8 @@ var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependenci
252
252
  var keysX = Object.keys(x);
253
253
  var keysY = Object.keys(y); // compare keys
254
254
 
255
- keysX.sort(_javascriptNaturalSort["default"]);
256
- keysY.sort(_javascriptNaturalSort["default"]);
255
+ keysX.sort(_javascriptNaturalSort.default);
256
+ keysY.sort(_javascriptNaturalSort.default);
257
257
  var c = compareArrays(compareNatural, keysX, keysY);
258
258
 
259
259
  if (c !== 0) {
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createCumSum = void 0;
7
+
8
+ var _collection = require("../../utils/collection.js");
9
+
10
+ var _factory = require("../../utils/factory.js");
11
+
12
+ var _switch2 = require("../../utils/switch.js");
13
+
14
+ var _improveErrorMessage = require("./utils/improveErrorMessage.js");
15
+
16
+ var _array = require("../../utils/array.js");
17
+
18
+ var _IndexError = require("../../error/IndexError.js");
19
+
20
+ var name = 'cumsum';
21
+ var dependencies = ['typed', 'add', 'unaryPlus'];
22
+ var createCumSum = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
23
+ var typed = _ref.typed,
24
+ add = _ref.add,
25
+ unaryPlus = _ref.unaryPlus;
26
+
27
+ /**
28
+ * Compute the cumulative sum of a matrix or a list with values.
29
+ * In case of a (multi dimensional) array or matrix, the cumulative sums
30
+ * along a specified dimension (defaulting to the first) will be calculated.
31
+ *
32
+ * Syntax:
33
+ *
34
+ * math.cumsum(a, b, c, ...)
35
+ * math.cumsum(A)
36
+ *
37
+ * Examples:
38
+ *
39
+ * math.cumsum(2, 1, 4, 3) // returns [2, 3, 7, 10]
40
+ * math.cumsum([2, 1, 4, 3]) // returns [2, 3, 7, 10]
41
+ * math.cumsum([[1, 2], [3, 4]]) // returns [[1, 2], [4, 6]]
42
+ * math.cumsum([[1, 2], [3, 4]], 0) // returns [[1, 2], [4, 6]]
43
+ * math.cumsum([[1, 2], [3, 4]], 1) // returns [[1, 3], [3, 7]]
44
+ * math.cumsum([[2, 5], [4, 3], [1, 7]]) // returns [[2, 5], [6, 8], [7, 15]]
45
+ *
46
+ * See also:
47
+ *
48
+ * mean, median, min, max, prod, std, variance, sum
49
+ *
50
+ * @param {... *} args A single matrix or or multiple scalar values
51
+ * @return {*} The cumulative sum of all values
52
+ */
53
+ return typed(name, {
54
+ // sum([a, b, c, d, ...])
55
+ Array: _cumsum,
56
+ Matrix: function Matrix(matrix) {
57
+ return matrix.create(_cumsum(matrix.valueOf()));
58
+ },
59
+ // sum([a, b, c, d, ...], dim)
60
+ 'Array, number | BigNumber': _ncumSumDim,
61
+ 'Matrix, number | BigNumber': function MatrixNumberBigNumber(matrix, dim) {
62
+ return matrix.create(_ncumSumDim(matrix.valueOf(), dim));
63
+ },
64
+ // cumsum(a, b, c, d, ...)
65
+ '...': function _(args) {
66
+ if ((0, _collection.containsCollections)(args)) {
67
+ throw new TypeError('All values expected to be scalar in function cumsum');
68
+ }
69
+
70
+ return _cumsum(args);
71
+ }
72
+ });
73
+ /**
74
+ * Recursively calculate the cumulative sum of an n-dimensional array
75
+ * @param {Array} array
76
+ * @return {number} cumsum
77
+ * @private
78
+ */
79
+
80
+ function _cumsum(array) {
81
+ try {
82
+ return _cumsummap(array);
83
+ } catch (err) {
84
+ throw (0, _improveErrorMessage.improveErrorMessage)(err, name);
85
+ }
86
+ }
87
+
88
+ function _cumsummap(array) {
89
+ if (array.length === 0) {
90
+ return [];
91
+ }
92
+
93
+ var sums = [unaryPlus(array[0])]; // unaryPlus converts to number if need be
94
+
95
+ for (var i = 1; i < array.length; ++i) {
96
+ // Must use add below and not addScalar for the case of summing a
97
+ // 2+-dimensional array along the 0th dimension (the row vectors,
98
+ // or higher-d analogues, are literally added to each other).
99
+ sums.push(add(sums[i - 1], array[i]));
100
+ }
101
+
102
+ return sums;
103
+ }
104
+
105
+ function _ncumSumDim(array, dim) {
106
+ var size = (0, _array.arraySize)(array);
107
+
108
+ if (dim < 0 || dim >= size.length) {
109
+ // TODO: would be more clear when throwing a DimensionError here
110
+ throw new _IndexError.IndexError(dim, size.length);
111
+ }
112
+
113
+ try {
114
+ return _cumsumDimensional(array, dim);
115
+ } catch (err) {
116
+ throw (0, _improveErrorMessage.improveErrorMessage)(err, name);
117
+ }
118
+ }
119
+ /* Possible TODO: Refactor _reduce in collection.js to be able to work here as well */
120
+
121
+
122
+ function _cumsumDimensional(mat, dim) {
123
+ var i, ret, tran;
124
+
125
+ if (dim <= 0) {
126
+ var initialValue = mat[0][0];
127
+
128
+ if (!Array.isArray(initialValue)) {
129
+ return _cumsummap(mat);
130
+ } else {
131
+ tran = (0, _switch2._switch)(mat);
132
+ ret = [];
133
+
134
+ for (i = 0; i < tran.length; i++) {
135
+ ret[i] = _cumsumDimensional(tran[i], dim - 1);
136
+ }
137
+
138
+ return ret;
139
+ }
140
+ } else {
141
+ ret = [];
142
+
143
+ for (i = 0; i < mat.length; i++) {
144
+ ret[i] = _cumsumDimensional(mat[i], dim - 1);
145
+ }
146
+
147
+ return ret;
148
+ }
149
+ }
150
+ });
151
+ exports.createCumSum = createCumSum;
@@ -37,7 +37,7 @@ var createSum = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
37
37
  *
38
38
  * See also:
39
39
  *
40
- * mean, median, min, max, prod, std, variance
40
+ * mean, median, min, max, prod, std, variance, cumsum
41
41
  *
42
42
  * @param {... *} args A single matrix or or multiple scalar values
43
43
  * @return {*} The sum of all values
@@ -119,7 +119,7 @@ var createFormat = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
119
119
  * // you could also use math.format inside the callback:
120
120
  * // return '$' + math.format(value, {notation: 'fixed', precision: 2})
121
121
  * }
122
- * math.format([2.1, 3, 0.016], formatCurrency} // returns '[$2.10, $3.00, $0.02]'
122
+ * math.format([2.1, 3, 0.016], formatCurrency) // returns '[$2.10, $3.00, $0.02]'
123
123
  *
124
124
  * See also:
125
125
  *
package/lib/cjs/header.js CHANGED
@@ -6,8 +6,8 @@
6
6
  * It features real and complex numbers, units, matrices, a large set of
7
7
  * mathematical functions, and a flexible expression parser.
8
8
  *
9
- * @version 10.1.1
10
- * @date 2022-02-02
9
+ * @version 10.4.0
10
+ * @date 2022-03-07
11
11
  *
12
12
  * @license
13
13
  * Copyright (C) 2013-2022 Jos de Jong <wjosdejong@gmail.com>
@@ -27,7 +27,7 @@ Object.keys(_arithmetic).forEach(function (key) {
27
27
  });
28
28
 
29
29
  // TODO: this is ugly. Instead, be able to pass your own isBigNumber function to typed?
30
- var BigNumber = _decimal["default"].clone();
30
+ var BigNumber = _decimal.default.clone();
31
31
 
32
32
  BigNumber.prototype.isBigNumber = true;
33
33
 
@@ -23,15 +23,27 @@ function combinationsNumber(n, k) {
23
23
  }
24
24
 
25
25
  var nMinusk = n - k;
26
- var prodrange;
26
+ var answer = 1;
27
+ var firstnumerator = k < nMinusk ? nMinusk + 1 : k + 1;
28
+ var nextdivisor = 2;
29
+ var lastdivisor = k < nMinusk ? k : nMinusk; // balance multiplications and divisions to try to keep intermediate values
30
+ // in exact-integer range as long as possible
27
31
 
28
- if (k < nMinusk) {
29
- prodrange = (0, _product.product)(nMinusk + 1, n);
30
- return prodrange / (0, _product.product)(1, k);
32
+ for (var nextnumerator = firstnumerator; nextnumerator <= n; ++nextnumerator) {
33
+ answer *= nextnumerator;
34
+
35
+ while (nextdivisor <= lastdivisor && answer % nextdivisor === 0) {
36
+ answer /= nextdivisor;
37
+ ++nextdivisor;
38
+ }
39
+ } // for big n, k, floating point may have caused weirdness in remainder
40
+
41
+
42
+ if (nextdivisor <= lastdivisor) {
43
+ answer /= (0, _product.product)(nextdivisor, lastdivisor);
31
44
  }
32
45
 
33
- prodrange = (0, _product.product)(k + 1, n);
34
- return prodrange / (0, _product.product)(1, nMinusk);
46
+ return answer;
35
47
  }
36
48
 
37
49
  combinationsNumber.signature = 'number, number';
@@ -17,9 +17,9 @@ var createBigNumberClass = /* #__PURE__ */(0, _factory.factory)(name, dependenci
17
17
  var on = _ref.on,
18
18
  config = _ref.config;
19
19
 
20
- var BigNumber = _decimal["default"].clone({
20
+ var BigNumber = _decimal.default.clone({
21
21
  precision: config.precision,
22
- modulo: _decimal["default"].EUCLID
22
+ modulo: _decimal.default.EUCLID
23
23
  });
24
24
 
25
25
  BigNumber.prototype = Object.create(BigNumber.prototype);
@@ -79,7 +79,7 @@ var createBignumber = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
79
79
  Fraction: function Fraction(x) {
80
80
  return new BigNumber(x.n).div(x.d).times(x.s);
81
81
  },
82
- "null": function _null(x) {
82
+ null: function _null(x) {
83
83
  return new BigNumber(0);
84
84
  },
85
85
  'Array | Matrix': function ArrayMatrix(x) {
@@ -45,13 +45,13 @@ var createBoolean = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
45
45
  '': function _() {
46
46
  return false;
47
47
  },
48
- "boolean": function boolean(x) {
48
+ boolean: function boolean(x) {
49
49
  return x;
50
50
  },
51
51
  number: function number(x) {
52
52
  return !!x;
53
53
  },
54
- "null": function _null(x) {
54
+ null: function _null(x) {
55
55
  return false;
56
56
  },
57
57
  BigNumber: function BigNumber(x) {
@@ -23,15 +23,15 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
23
23
  /**
24
24
  * Attach type information
25
25
  */
26
- _complex["default"].prototype.type = 'Complex';
27
- _complex["default"].prototype.isComplex = true;
26
+ _complex.default.prototype.type = 'Complex';
27
+ _complex.default.prototype.isComplex = true;
28
28
  /**
29
29
  * Get a JSON representation of the complex number
30
30
  * @returns {Object} Returns a JSON object structured as:
31
31
  * `{"mathjs": "Complex", "re": 2, "im": 3}`
32
32
  */
33
33
 
34
- _complex["default"].prototype.toJSON = function () {
34
+ _complex.default.prototype.toJSON = function () {
35
35
  return {
36
36
  mathjs: 'Complex',
37
37
  re: this.re,
@@ -45,7 +45,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
45
45
  */
46
46
 
47
47
 
48
- _complex["default"].prototype.toPolar = function () {
48
+ _complex.default.prototype.toPolar = function () {
49
49
  return {
50
50
  r: this.abs(),
51
51
  phi: this.arg()
@@ -62,7 +62,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
62
62
  */
63
63
 
64
64
 
65
- _complex["default"].prototype.format = function (options) {
65
+ _complex.default.prototype.format = function (options) {
66
66
  var str = '';
67
67
  var im = this.im;
68
68
  var re = this.re;
@@ -127,14 +127,14 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
127
127
  */
128
128
 
129
129
 
130
- _complex["default"].fromPolar = function (args) {
130
+ _complex.default.fromPolar = function (args) {
131
131
  switch (arguments.length) {
132
132
  case 1:
133
133
  {
134
134
  var arg = arguments[0];
135
135
 
136
- if ((0, _typeof2["default"])(arg) === 'object') {
137
- return (0, _complex["default"])(arg);
136
+ if ((0, _typeof2.default)(arg) === 'object') {
137
+ return (0, _complex.default)(arg);
138
138
  } else {
139
139
  throw new TypeError('Input has to be an object with r and phi keys.');
140
140
  }
@@ -152,7 +152,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
152
152
  }
153
153
 
154
154
  if ((0, _is.isNumber)(phi)) {
155
- return new _complex["default"]({
155
+ return new _complex.default({
156
156
  r: r,
157
157
  phi: phi
158
158
  });
@@ -169,7 +169,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
169
169
  }
170
170
  };
171
171
 
172
- _complex["default"].prototype.valueOf = _complex["default"].prototype.toString;
172
+ _complex.default.prototype.valueOf = _complex.default.prototype.toString;
173
173
  /**
174
174
  * Create a Complex number from a JSON object
175
175
  * @param {Object} json A JSON Object structured as
@@ -179,8 +179,8 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
179
179
  * @return {Complex} Returns a new Complex number
180
180
  */
181
181
 
182
- _complex["default"].fromJSON = function (json) {
183
- return new _complex["default"](json);
182
+ _complex.default.fromJSON = function (json) {
183
+ return new _complex.default(json);
184
184
  };
185
185
  /**
186
186
  * Compare two complex numbers, `a` and `b`:
@@ -199,7 +199,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
199
199
  */
200
200
 
201
201
 
202
- _complex["default"].compare = function (a, b) {
202
+ _complex.default.compare = function (a, b) {
203
203
  if (a.re > b.re) {
204
204
  return 1;
205
205
  }
@@ -219,7 +219,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
219
219
  return 0;
220
220
  };
221
221
 
222
- return _complex["default"];
222
+ return _complex.default;
223
223
  }, {
224
224
  isClass: true
225
225
  });
@@ -76,7 +76,7 @@ var createComplex = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
76
76
  string: function string(x) {
77
77
  return Complex(x); // for example '2 + 3i'
78
78
  },
79
- "null": function _null(x) {
79
+ null: function _null(x) {
80
80
  return Complex(0);
81
81
  },
82
82
  Object: function Object(x) {
@@ -17,15 +17,15 @@ var createFractionClass = /* #__PURE__ */(0, _factory.factory)(name, dependencie
17
17
  /**
18
18
  * Attach type information
19
19
  */
20
- _fraction["default"].prototype.type = 'Fraction';
21
- _fraction["default"].prototype.isFraction = true;
20
+ _fraction.default.prototype.type = 'Fraction';
21
+ _fraction.default.prototype.isFraction = true;
22
22
  /**
23
23
  * Get a JSON representation of a Fraction containing type information
24
24
  * @returns {Object} Returns a JSON object structured as:
25
25
  * `{"mathjs": "Fraction", "n": 3, "d": 8}`
26
26
  */
27
27
 
28
- _fraction["default"].prototype.toJSON = function () {
28
+ _fraction.default.prototype.toJSON = function () {
29
29
  return {
30
30
  mathjs: 'Fraction',
31
31
  n: this.s * this.n,
@@ -40,11 +40,11 @@ var createFractionClass = /* #__PURE__ */(0, _factory.factory)(name, dependencie
40
40
  */
41
41
 
42
42
 
43
- _fraction["default"].fromJSON = function (json) {
44
- return new _fraction["default"](json);
43
+ _fraction.default.fromJSON = function (json) {
44
+ return new _fraction.default(json);
45
45
  };
46
46
 
47
- return _fraction["default"];
47
+ return _fraction.default;
48
48
  }, {
49
49
  isClass: true
50
50
  });
@@ -16,27 +16,39 @@ var createFraction = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
16
16
  Fraction = _ref.Fraction;
17
17
 
18
18
  /**
19
- * Create a fraction convert a value to a fraction.
19
+ * Create a fraction or convert a value to a fraction.
20
+ *
21
+ * With one numeric argument, produces the closest rational approximation to the
22
+ * input.
23
+ * With two arguments, the first is the numerator and the second is the denominator,
24
+ * and creates the corresponding fraction. Both numerator and denominator must be
25
+ * integers.
26
+ * With one object argument, looks for the integer numerator as the value of property
27
+ * 'n' and the integer denominator as the value of property 'd'.
28
+ * With a matrix argument, creates a matrix of the same shape with entries
29
+ * converted into fractions.
20
30
  *
21
31
  * Syntax:
32
+ * math.fraction(value)
22
33
  * math.fraction(numerator, denominator)
23
34
  * math.fraction({n: numerator, d: denominator})
24
- * math.fraction(matrix: Array | Matrix) Turn all matrix entries
25
- * into fractions
35
+ * math.fraction(matrix: Array | Matrix)
26
36
  *
27
37
  * Examples:
28
38
  *
29
- * math.fraction(1, 3)
30
- * math.fraction('2/3')
31
- * math.fraction({n: 2, d: 3})
32
- * math.fraction([0.2, 0.25, 1.25])
39
+ * math.fraction(6.283) // returns Fraction 6283/1000
40
+ * math.fraction(1, 3) // returns Fraction 1/3
41
+ * math.fraction('2/3') // returns Fraction 2/3
42
+ * math.fraction({n: 2, d: 3}) // returns Fraction 2/3
43
+ * math.fraction([0.2, 0.25, 1.25]) // returns Array [1/5, 1/4, 5/4]
44
+ * math.fraction(4, 5.1) // throws Error: Parameters must be integer
33
45
  *
34
46
  * See also:
35
47
  *
36
48
  * bignumber, number, string, unit
37
49
  *
38
50
  * @param {number | string | Fraction | BigNumber | Array | Matrix} [args]
39
- * Arguments specifying the numerator and denominator of
51
+ * Arguments specifying the value, or numerator and denominator of
40
52
  * the fraction
41
53
  * @return {Fraction | Array | Matrix} Returns a fraction
42
54
  */
@@ -54,7 +66,7 @@ var createFraction = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
54
66
  'number, number': function numberNumber(numerator, denominator) {
55
67
  return new Fraction(numerator, denominator);
56
68
  },
57
- "null": function _null(x) {
69
+ null: function _null(x) {
58
70
  return new Fraction(0);
59
71
  },
60
72
  BigNumber: function BigNumber(x) {
@@ -23,7 +23,7 @@ var _DimensionError = require("../../error/DimensionError.js");
23
23
 
24
24
  var _factory = require("../../utils/factory.js");
25
25
 
26
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
26
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
27
27
 
28
28
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
29
29
 
@@ -648,15 +648,15 @@ var createDenseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, dependen
648
648
  */
649
649
 
650
650
 
651
- DenseMatrix.prototype[Symbol.iterator] = /*#__PURE__*/_regenerator["default"].mark(function _callee() {
651
+ DenseMatrix.prototype[Symbol.iterator] = /*#__PURE__*/_regenerator.default.mark(function _callee() {
652
652
  var recurse;
653
- return _regenerator["default"].wrap(function _callee$(_context2) {
653
+ return _regenerator.default.wrap(function _callee$(_context2) {
654
654
  while (1) {
655
655
  switch (_context2.prev = _context2.next) {
656
656
  case 0:
657
- recurse = /*#__PURE__*/_regenerator["default"].mark(function recurse(value, index) {
657
+ recurse = /*#__PURE__*/_regenerator.default.mark(function recurse(value, index) {
658
658
  var i;
659
- return _regenerator["default"].wrap(function recurse$(_context) {
659
+ return _regenerator.default.wrap(function recurse$(_context) {
660
660
  while (1) {
661
661
  switch (_context.prev = _context.next) {
662
662
  case 0:
@@ -1087,9 +1087,9 @@ var createSparseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, depende
1087
1087
  */
1088
1088
 
1089
1089
 
1090
- SparseMatrix.prototype[Symbol.iterator] = /*#__PURE__*/_regenerator["default"].mark(function _callee() {
1090
+ SparseMatrix.prototype[Symbol.iterator] = /*#__PURE__*/_regenerator.default.mark(function _callee() {
1091
1091
  var columns, j, k0, k1, k, i;
1092
- return _regenerator["default"].wrap(function _callee$(_context) {
1092
+ return _regenerator.default.wrap(function _callee$(_context) {
1093
1093
  while (1) {
1094
1094
  switch (_context.prev = _context.next) {
1095
1095
  case 0:
@@ -147,7 +147,7 @@ var createNumber = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
147
147
  Unit: function Unit(x) {
148
148
  throw new Error('Second argument with valueless unit expected');
149
149
  },
150
- "null": function _null(x) {
150
+ null: function _null(x) {
151
151
  return 0;
152
152
  },
153
153
  'Unit, string | Unit': function UnitStringUnit(unit, valuelessUnit) {
@@ -46,10 +46,10 @@ var createString = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
46
46
  return '';
47
47
  },
48
48
  number: _number.format,
49
- "null": function _null(x) {
49
+ null: function _null(x) {
50
50
  return 'null';
51
51
  },
52
- "boolean": function boolean(x) {
52
+ boolean: function boolean(x) {
53
53
  return x + '';
54
54
  },
55
55
  string: function string(x) {