mathjs 10.1.1 → 10.4.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.leafCountDocs = void 0;
7
+ var leafCountDocs = {
8
+ name: 'leafCount',
9
+ category: 'Algebra',
10
+ syntax: ['leafCount(expr)'],
11
+ description: 'Computes the number of leaves in the parse tree of the given expression',
12
+ examples: ['leafCount("e^(i*pi)-1")', 'leafCount(parse("{a: 22/7, b: 10^(1/2)}"))'],
13
+ seealso: ['simplify']
14
+ };
15
+ exports.leafCountDocs = leafCountDocs;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.resolveDocs = void 0;
7
+ var resolveDocs = {
8
+ name: 'resolve',
9
+ category: 'Algebra',
10
+ syntax: ['resolve(node, scope)'],
11
+ description: 'Recursively substitute variables in an expression tree.',
12
+ examples: ['resolve(parse("1 + x"), { x: 7 })', 'resolve(parse("size(text)"), { text: "Hello World" })', 'resolve(parse("x + y"), { x: parse("3z") })', 'resolve(parse("3x"), { x: parse("y+z"), z: parse("w^y") })'],
13
+ seealso: ['simplify', 'evaluate'],
14
+ mayThrow: ['ReferenceError']
15
+ };
16
+ exports.resolveDocs = resolveDocs;
@@ -10,6 +10,6 @@ var simplifyDocs = {
10
10
  syntax: ['simplify(expr)', 'simplify(expr, rules)'],
11
11
  description: 'Simplify an expression tree.',
12
12
  examples: ['simplify("3 + 2 / 4")', 'simplify("2x + x")', 'f = parse("x * (x + 2 + x)")', 'simplified = simplify(f)', 'simplified.evaluate({x: 2})'],
13
- seealso: ['derivative', 'parse', 'evaluate']
13
+ seealso: ['simplifyCore', 'derivative', 'evaluate', 'parse', 'rationalize', 'resolve']
14
14
  };
15
15
  exports.simplifyDocs = simplifyDocs;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.simplifyCoreDocs = void 0;
7
+ var simplifyCoreDocs = {
8
+ name: 'simplifyCore',
9
+ category: 'Algebra',
10
+ syntax: ['simplifyCore(node)'],
11
+ description: 'Perform simple one-pass simplifications on an expression tree.',
12
+ examples: ['simplifyCore(parse("0*x"))', 'simplifyCore(parse("(x+0)*2"))'],
13
+ seealso: ['simplify', 'evaluate']
14
+ };
15
+ exports.simplifyCoreDocs = simplifyCoreDocs;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.symbolicEqualDocs = void 0;
7
+ var symbolicEqualDocs = {
8
+ name: 'symbolicEqual',
9
+ category: 'Algebra',
10
+ syntax: ['symbolicEqual(expr1, expr2)', 'symbolicEqual(expr1, expr2, options)'],
11
+ description: 'Returns true if the difference of the expressions simplifies to 0',
12
+ examples: ['symbolicEqual("x*y","y*x")', 'symbolicEqual("abs(x^2)", "x^2")', 'symbolicEqual("abs(x)", "x", {context: {abs: {trivial: true}}})'],
13
+ seealso: ['simplify', 'evaluate']
14
+ };
15
+ exports.symbolicEqualDocs = symbolicEqualDocs;
@@ -8,8 +8,8 @@ var subsetDocs = {
8
8
  name: 'subset',
9
9
  category: 'Matrix',
10
10
  syntax: ['value(index)', 'value(index) = replacement', 'subset(value, [index])', 'subset(value, [index], replacement)'],
11
- description: 'Get or set a subset of a matrix or string. ' + 'Indexes are one-based. ' + 'Both the ranges lower-bound and upper-bound are included.',
12
- examples: ['d = [1, 2; 3, 4]', 'e = []', 'e[1, 1:2] = [5, 6]', 'e[2, :] = [7, 8]', 'f = d * e', 'f[2, 1]', 'f[:, 1]'],
11
+ description: 'Get or set a subset of the entries of a matrix or ' + 'characters of a string. ' + 'Indexes are one-based. There should be one index specification for ' + 'each dimension of the target. Each specification can be a single ' + 'index, a list of indices, or a range in colon notation `l:u`. ' + 'In a range, both the lower bound l and upper bound u are included; ' + 'and if a bound is omitted it defaults to the most extreme valid value. ' + 'The cartesian product of the indices specified in each dimension ' + 'determines the target of the operation.',
12
+ examples: ['d = [1, 2; 3, 4]', 'e = []', 'e[1, 1:2] = [5, 6]', 'e[2, :] = [7, 8]', 'f = d * e', 'f[2, 1]', 'f[:, 1]', 'f[[1,2], [1,3]] = [9, 10; 11, 12]', 'f'],
13
13
  seealso: ['concat', 'det', 'diag', 'identity', 'inv', 'ones', 'range', 'size', 'squeeze', 'trace', 'transpose', 'zeros']
14
14
  };
15
15
  exports.subsetDocs = subsetDocs;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.cumSumDocs = void 0;
7
+ var cumSumDocs = {
8
+ name: 'cumsum',
9
+ category: 'Statistics',
10
+ syntax: ['cumsum(a, b, c, ...)', 'cumsum(A)'],
11
+ description: 'Compute the cumulative sum of all values.',
12
+ examples: ['cumsum(2, 3, 4, 1)', 'cumsum([2, 3, 4, 1])', 'cumsum([1, 2; 3, 4])', 'cumsum([1, 2; 3, 4], 1)', 'cumsum([1, 2; 3, 4], 2)'],
13
+ seealso: ['max', 'mean', 'median', 'min', 'prod', 'std', 'sum', 'variance']
14
+ };
15
+ exports.cumSumDocs = cumSumDocs;
@@ -97,78 +97,97 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
97
97
  });
98
98
 
99
99
  if ((0, _is.isSymbolNode)(this.fn)) {
100
- // we can statically determine whether the function has an rawArgs property
101
100
  var _name = this.fn.name;
102
- var fn = _name in math ? (0, _customs.getSafeProperty)(math, _name) : undefined;
103
- var isRaw = typeof fn === 'function' && fn.rawArgs === true;
104
101
 
105
- var resolveFn = function resolveFn(scope) {
106
- if (scope.has(_name)) {
107
- return scope.get(_name);
108
- }
102
+ if (!argNames[_name]) {
103
+ // we can statically determine whether the function has an rawArgs property
104
+ var fn = _name in math ? (0, _customs.getSafeProperty)(math, _name) : undefined;
105
+ var isRaw = typeof fn === 'function' && fn.rawArgs === true;
109
106
 
110
- if (_name in math) {
111
- return (0, _customs.getSafeProperty)(math, _name);
112
- }
107
+ var resolveFn = function resolveFn(scope) {
108
+ if (scope.has(_name)) {
109
+ return scope.get(_name);
110
+ }
113
111
 
114
- return FunctionNode.onUndefinedFunction(_name);
115
- };
112
+ if (_name in math) {
113
+ return (0, _customs.getSafeProperty)(math, _name);
114
+ }
116
115
 
117
- if (isRaw) {
118
- // pass unevaluated parameters (nodes) to the function
119
- // "raw" evaluation
120
- var rawArgs = this.args;
121
- return function evalFunctionNode(scope, args, context) {
122
- var fn = resolveFn(scope);
123
- return fn(rawArgs, math, (0, _scope.createSubScope)(scope, args), scope);
116
+ return FunctionNode.onUndefinedFunction(_name);
124
117
  };
125
- } else {
126
- // "regular" evaluation
127
- switch (evalArgs.length) {
128
- case 0:
129
- return function evalFunctionNode(scope, args, context) {
130
- var fn = resolveFn(scope);
131
- return fn();
132
- };
133
-
134
- case 1:
135
- return function evalFunctionNode(scope, args, context) {
136
- var fn = resolveFn(scope);
137
- var evalArg0 = evalArgs[0];
138
- return fn(evalArg0(scope, args, context));
139
- };
140
-
141
- case 2:
142
- return function evalFunctionNode(scope, args, context) {
143
- var fn = resolveFn(scope);
144
- var evalArg0 = evalArgs[0];
145
- var evalArg1 = evalArgs[1];
146
- return fn(evalArg0(scope, args, context), evalArg1(scope, args, context));
147
- };
148
-
149
- default:
150
- return function evalFunctionNode(scope, args, context) {
151
- var fn = resolveFn(scope);
152
- var values = evalArgs.map(function (evalArg) {
153
- return evalArg(scope, args, context);
154
- });
155
- return fn.apply(void 0, (0, _toConsumableArray2["default"])(values));
156
- };
118
+
119
+ if (isRaw) {
120
+ // pass unevaluated parameters (nodes) to the function
121
+ // "raw" evaluation
122
+ var rawArgs = this.args;
123
+ return function evalFunctionNode(scope, args, context) {
124
+ var fn = resolveFn(scope);
125
+ return fn(rawArgs, math, (0, _scope.createSubScope)(scope, args), scope);
126
+ };
127
+ } else {
128
+ // "regular" evaluation
129
+ switch (evalArgs.length) {
130
+ case 0:
131
+ return function evalFunctionNode(scope, args, context) {
132
+ var fn = resolveFn(scope);
133
+ return fn();
134
+ };
135
+
136
+ case 1:
137
+ return function evalFunctionNode(scope, args, context) {
138
+ var fn = resolveFn(scope);
139
+ var evalArg0 = evalArgs[0];
140
+ return fn(evalArg0(scope, args, context));
141
+ };
142
+
143
+ case 2:
144
+ return function evalFunctionNode(scope, args, context) {
145
+ var fn = resolveFn(scope);
146
+ var evalArg0 = evalArgs[0];
147
+ var evalArg1 = evalArgs[1];
148
+ return fn(evalArg0(scope, args, context), evalArg1(scope, args, context));
149
+ };
150
+
151
+ default:
152
+ return function evalFunctionNode(scope, args, context) {
153
+ var fn = resolveFn(scope);
154
+ var values = evalArgs.map(function (evalArg) {
155
+ return evalArg(scope, args, context);
156
+ });
157
+ return fn.apply(void 0, (0, _toConsumableArray2.default)(values));
158
+ };
159
+ }
157
160
  }
161
+ } else {
162
+ // the function symbol is an argName
163
+ var _rawArgs = this.args;
164
+ return function evalFunctionNode(scope, args, context) {
165
+ var fn = args[_name];
166
+ var isRaw = fn && fn.rawArgs;
167
+
168
+ if (isRaw) {
169
+ return fn(_rawArgs, math, (0, _scope.createSubScope)(scope, args), scope); // "raw" evaluation
170
+ } else {
171
+ var values = evalArgs.map(function (evalArg) {
172
+ return evalArg(scope, args, context);
173
+ });
174
+ return fn.apply(fn, values);
175
+ }
176
+ };
158
177
  }
159
178
  } else if ((0, _is.isAccessorNode)(this.fn) && (0, _is.isIndexNode)(this.fn.index) && this.fn.index.isObjectProperty()) {
160
179
  // execute the function with the right context: the object of the AccessorNode
161
180
  var evalObject = this.fn.object._compile(math, argNames);
162
181
 
163
182
  var prop = this.fn.index.getObjectProperty();
164
- var _rawArgs = this.args;
183
+ var _rawArgs2 = this.args;
165
184
  return function evalFunctionNode(scope, args, context) {
166
185
  var object = evalObject(scope, args, context);
167
186
  (0, _customs.validateSafeMethod)(object, prop);
168
187
  var isRaw = object[prop] && object[prop].rawArgs;
169
188
 
170
189
  if (isRaw) {
171
- return object[prop](_rawArgs, math, (0, _scope.createSubScope)(scope, args), scope); // "raw" evaluation
190
+ return object[prop](_rawArgs2, math, (0, _scope.createSubScope)(scope, args), scope); // "raw" evaluation
172
191
  } else {
173
192
  // "regular" evaluation
174
193
  var values = evalArgs.map(function (evalArg) {
@@ -182,13 +201,13 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
182
201
  // we have to dynamically determine whether the function has a rawArgs property
183
202
  var evalFn = this.fn._compile(math, argNames);
184
203
 
185
- var _rawArgs2 = this.args;
204
+ var _rawArgs3 = this.args;
186
205
  return function evalFunctionNode(scope, args, context) {
187
206
  var fn = evalFn(scope, args, context);
188
207
  var isRaw = fn && fn.rawArgs;
189
208
 
190
209
  if (isRaw) {
191
- return fn(_rawArgs2, math, (0, _scope.createSubScope)(scope, args), scope); // "raw" evaluation
210
+ return fn(_rawArgs3, math, (0, _scope.createSubScope)(scope, args), scope); // "raw" evaluation
192
211
  } else {
193
212
  // "regular" evaluation
194
213
  var values = evalArgs.map(function (evalArg) {
@@ -270,7 +289,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
270
289
  var customString;
271
290
  var name = this.fn.toString(options);
272
291
 
273
- if (options && (0, _typeof2["default"])(options.handler) === 'object' && (0, _object.hasOwnProperty)(options.handler, name)) {
292
+ if (options && (0, _typeof2.default)(options.handler) === 'object' && (0, _object.hasOwnProperty)(options.handler, name)) {
274
293
  // callback is a map of callback functions
275
294
  customString = options.handler[name](this, options);
276
295
  }
@@ -376,7 +395,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
376
395
 
377
396
  if (match[2] === undefined) {
378
397
  // no square brackets
379
- switch ((0, _typeof2["default"])(property)) {
398
+ switch ((0, _typeof2.default)(property)) {
380
399
  case 'string':
381
400
  latex += property;
382
401
  break;
@@ -436,7 +455,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
436
455
  FunctionNode.prototype.toTex = function (options) {
437
456
  var customTex;
438
457
 
439
- if (options && (0, _typeof2["default"])(options.handler) === 'object' && (0, _object.hasOwnProperty)(options.handler, this.name)) {
458
+ if (options && (0, _typeof2.default)(options.handler) === 'object' && (0, _object.hasOwnProperty)(options.handler, this.name)) {
440
459
  // callback is a map of callback functions
441
460
  customTex = options.handler[this.name](this, options);
442
461
  }
@@ -467,14 +486,14 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
467
486
  } // toTex property on the function itself
468
487
 
469
488
 
470
- if (math[this.name] && (typeof math[this.name].toTex === 'function' || (0, _typeof2["default"])(math[this.name].toTex) === 'object' || typeof math[this.name].toTex === 'string')) {
489
+ if (math[this.name] && (typeof math[this.name].toTex === 'function' || (0, _typeof2.default)(math[this.name].toTex) === 'object' || typeof math[this.name].toTex === 'string')) {
471
490
  // .toTex is a callback function
472
491
  latexConverter = math[this.name].toTex;
473
492
  }
474
493
 
475
494
  var customToTex;
476
495
 
477
- switch ((0, _typeof2["default"])(latexConverter)) {
496
+ switch ((0, _typeof2.default)(latexConverter)) {
478
497
  case 'function':
479
498
  // a callback function
480
499
  customToTex = latexConverter(this, options);
@@ -487,7 +506,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
487
506
 
488
507
  case 'object':
489
508
  // an object with different "converters" for different numbers of arguments
490
- switch ((0, _typeof2["default"])(latexConverter[args.length])) {
509
+ switch ((0, _typeof2.default)(latexConverter[args.length])) {
491
510
  case 'function':
492
511
  customToTex = latexConverter[args.length](this, options);
493
512
  break;
@@ -143,7 +143,7 @@ var createIndexNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
143
143
  var dimensions = (0, _array.map)(evalDimensions, function (evalDimension) {
144
144
  return evalDimension(scope, args, context);
145
145
  });
146
- return index.apply(void 0, (0, _toConsumableArray2["default"])(dimensions));
146
+ return index.apply(void 0, (0, _toConsumableArray2.default)(dimensions));
147
147
  };
148
148
  };
149
149
  /**
@@ -367,8 +367,8 @@ var createNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
367
367
 
368
368
 
369
369
  Node.prototype._getCustomString = function (options) {
370
- if (options && (0, _typeof2["default"])(options) === 'object') {
371
- switch ((0, _typeof2["default"])(options.handler)) {
370
+ if (options && (0, _typeof2.default)(options) === 'object') {
371
+ switch ((0, _typeof2.default)(options.handler)) {
372
372
  case 'object':
373
373
  case 'undefined':
374
374
  return;
@@ -407,7 +407,7 @@ var createNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
407
407
 
408
408
 
409
409
  function _validateScope(scope) {
410
- for (var _i = 0, _arr = (0, _toConsumableArray2["default"])(_keywords.keywords); _i < _arr.length; _i++) {
410
+ for (var _i = 0, _arr = (0, _toConsumableArray2.default)(_keywords.keywords); _i < _arr.length; _i++) {
411
411
  var symbol = _arr[_i];
412
412
 
413
413
  if (scope.has(symbol)) {
@@ -38,7 +38,7 @@ var createObjectNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
38
38
  this.properties = properties || {}; // validate input
39
39
 
40
40
  if (properties) {
41
- if (!((0, _typeof2["default"])(properties) === 'object') || !Object.keys(properties).every(function (key) {
41
+ if (!((0, _typeof2.default)(properties) === 'object') || !Object.keys(properties).every(function (key) {
42
42
  return (0, _is.isNode)(properties[key]);
43
43
  })) {
44
44
  throw new TypeError('Object containing Nodes expected');
@@ -37,7 +37,7 @@ function accessFactory(_ref) {
37
37
  } else if (typeof object === 'string') {
38
38
  // TODO: move getStringSubset into a separate util file, use that
39
39
  return subset(object, index);
40
- } else if ((0, _typeof2["default"])(object) === 'object') {
40
+ } else if ((0, _typeof2.default)(object) === 'object') {
41
41
  if (!index.isObjectProperty()) {
42
42
  throw new TypeError('Cannot apply a numeric index as object property');
43
43
  }
@@ -42,7 +42,7 @@ function assignFactory(_ref) {
42
42
  } else if (typeof object === 'string') {
43
43
  // TODO: move setStringSubset into a separate util file, use that
44
44
  return subset(object, index, value);
45
- } else if ((0, _typeof2["default"])(object) === 'object') {
45
+ } else if ((0, _typeof2.default)(object) === 'object') {
46
46
  if (!index.isObjectProperty()) {
47
47
  throw TypeError('Cannot apply a numeric index as object property');
48
48
  }
@@ -153,16 +153,16 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
153
153
  var NAMED_DELIMITERS = {
154
154
  mod: true,
155
155
  to: true,
156
- "in": true,
156
+ in: true,
157
157
  and: true,
158
158
  xor: true,
159
159
  or: true,
160
160
  not: true
161
161
  };
162
162
  var CONSTANTS = {
163
- "true": true,
164
- "false": false,
165
- "null": null,
163
+ true: true,
164
+ false: false,
165
+ null: null,
166
166
  undefined: undefined
167
167
  };
168
168
  var NUMERIC_CONSTANTS = ['NaN', 'Infinity'];
@@ -584,7 +584,7 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
584
584
 
585
585
  function parseStart(expression, extraNodes) {
586
586
  var state = initialState();
587
- (0, _extends2["default"])(state, {
587
+ (0, _extends2.default)(state, {
588
588
  expression: expression,
589
589
  extraNodes: extraNodes
590
590
  });
@@ -930,7 +930,7 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
930
930
  node = parseRange(state);
931
931
  var operators = {
932
932
  to: 'to',
933
- "in": 'to' // alias of 'to'
933
+ in: 'to' // alias of 'to'
934
934
 
935
935
  };
936
936
 
@@ -1112,30 +1112,30 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
1112
1112
  // Match the "number /" part of the pattern "number / number symbol"
1113
1113
  if (state.token === '/' && (0, _is.isConstantNode)(last)) {
1114
1114
  // Look ahead to see if the next token is a number
1115
- tokenStates.push((0, _extends2["default"])({}, state));
1115
+ tokenStates.push((0, _extends2.default)({}, state));
1116
1116
  getTokenSkipNewline(state); // Match the "number / number" part of the pattern
1117
1117
 
1118
1118
  if (state.tokenType === TOKENTYPE.NUMBER) {
1119
1119
  // Look ahead again
1120
- tokenStates.push((0, _extends2["default"])({}, state));
1120
+ tokenStates.push((0, _extends2.default)({}, state));
1121
1121
  getTokenSkipNewline(state); // Match the "symbol" part of the pattern, or a left parenthesis
1122
1122
 
1123
1123
  if (state.tokenType === TOKENTYPE.SYMBOL || state.token === '(') {
1124
1124
  // We've matched the pattern "number / number symbol".
1125
1125
  // Rewind once and build the "number / number" node; the symbol will be consumed later
1126
- (0, _extends2["default"])(state, tokenStates.pop());
1126
+ (0, _extends2.default)(state, tokenStates.pop());
1127
1127
  tokenStates.pop();
1128
1128
  last = parsePercentage(state);
1129
1129
  node = new OperatorNode('/', 'divide', [node, last]);
1130
1130
  } else {
1131
1131
  // Not a match, so rewind
1132
1132
  tokenStates.pop();
1133
- (0, _extends2["default"])(state, tokenStates.pop());
1133
+ (0, _extends2.default)(state, tokenStates.pop());
1134
1134
  break;
1135
1135
  }
1136
1136
  } else {
1137
1137
  // Not a match, so rewind
1138
- (0, _extends2["default"])(state, tokenStates.pop());
1138
+ (0, _extends2.default)(state, tokenStates.pop());
1139
1139
  break;
1140
1140
  }
1141
1141
  } else {
@@ -1783,7 +1783,7 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
1783
1783
  function createSyntaxError(state, message) {
1784
1784
  var c = col(state);
1785
1785
  var error = new SyntaxError(message + ' (char ' + c + ')');
1786
- error["char"] = c;
1786
+ error.char = c;
1787
1787
  return error;
1788
1788
  }
1789
1789
  /**
@@ -1798,7 +1798,7 @@ var createParse = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
1798
1798
  function createError(state, message) {
1799
1799
  var c = col(state);
1800
1800
  var error = new SyntaxError(message + ' (char ' + c + ')');
1801
- error["char"] = c;
1801
+ error.char = c;
1802
1802
  return error;
1803
1803
  }
1804
1804
 
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createCumSumTransform = void 0;
7
+
8
+ var _is = require("../../utils/is.js");
9
+
10
+ var _factory = require("../../utils/factory.js");
11
+
12
+ var _errorTransform = require("./utils/errorTransform.js");
13
+
14
+ var _cumsum = require("../../function/statistics/cumsum.js");
15
+
16
+ /**
17
+ * Attach a transform function to math.sum
18
+ * Adds a property transform containing the transform function.
19
+ *
20
+ * This transform changed the last `dim` parameter of function sum
21
+ * from one-based to zero based
22
+ */
23
+ var name = 'cumsum';
24
+ var dependencies = ['typed', 'add', 'unaryPlus'];
25
+ var createCumSumTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
26
+ var typed = _ref.typed,
27
+ add = _ref.add,
28
+ unaryPlus = _ref.unaryPlus;
29
+ var cumsum = (0, _cumsum.createCumSum)({
30
+ typed: typed,
31
+ add: add,
32
+ unaryPlus: unaryPlus
33
+ });
34
+ return typed(name, {
35
+ '...any': function any(args) {
36
+ // change last argument dim from one-based to zero-based
37
+ if (args.length === 2 && (0, _is.isCollection)(args[0])) {
38
+ var dim = args[1];
39
+
40
+ if ((0, _is.isNumber)(dim)) {
41
+ args[1] = dim - 1;
42
+ } else if ((0, _is.isBigNumber)(dim)) {
43
+ args[1] = dim.minus(1);
44
+ }
45
+ }
46
+
47
+ try {
48
+ return cumsum.apply(null, args);
49
+ } catch (err) {
50
+ throw (0, _errorTransform.errorTransform)(err);
51
+ }
52
+ }
53
+ });
54
+ }, {
55
+ isTransformFunction: true
56
+ });
57
+ exports.createCumSumTransform = createCumSumTransform;
@@ -17,7 +17,7 @@ var _lastDimToZeroBase = require("./utils/lastDimToZeroBase.js");
17
17
  * Attach a transform function to math.sum
18
18
  * Adds a property transform containing the transform function.
19
19
  *
20
- * This transform changed the last `dim` parameter of function mean
20
+ * This transform changed the last `dim` parameter of function sum
21
21
  * from one-based to zero based
22
22
  */
23
23
  var name = 'sum';
@@ -447,6 +447,18 @@ Object.defineProperty(exports, "createCube", {
447
447
  return _cube.createCube;
448
448
  }
449
449
  });
450
+ Object.defineProperty(exports, "createCumSum", {
451
+ enumerable: true,
452
+ get: function get() {
453
+ return _cumsum.createCumSum;
454
+ }
455
+ });
456
+ Object.defineProperty(exports, "createCumSumTransform", {
457
+ enumerable: true,
458
+ get: function get() {
459
+ return _cumsumTransform.createCumSumTransform;
460
+ }
461
+ });
450
462
  Object.defineProperty(exports, "createDeepEqual", {
451
463
  enumerable: true,
452
464
  get: function get() {
@@ -987,6 +999,12 @@ Object.defineProperty(exports, "createLcm", {
987
999
  return _lcm.createLcm;
988
1000
  }
989
1001
  });
1002
+ Object.defineProperty(exports, "createLeafCount", {
1003
+ enumerable: true,
1004
+ get: function get() {
1005
+ return _leafCount.createLeafCount;
1006
+ }
1007
+ });
990
1008
  Object.defineProperty(exports, "createLeftShift", {
991
1009
  enumerable: true,
992
1010
  get: function get() {
@@ -1509,6 +1527,12 @@ Object.defineProperty(exports, "createResize", {
1509
1527
  return _resize.createResize;
1510
1528
  }
1511
1529
  });
1530
+ Object.defineProperty(exports, "createResolve", {
1531
+ enumerable: true,
1532
+ get: function get() {
1533
+ return _resolve.createResolve;
1534
+ }
1535
+ });
1512
1536
  Object.defineProperty(exports, "createResultSet", {
1513
1537
  enumerable: true,
1514
1538
  get: function get() {
@@ -1677,6 +1701,12 @@ Object.defineProperty(exports, "createSimplify", {
1677
1701
  return _simplify.createSimplify;
1678
1702
  }
1679
1703
  });
1704
+ Object.defineProperty(exports, "createSimplifyCore", {
1705
+ enumerable: true,
1706
+ get: function get() {
1707
+ return _simplifyCore.createSimplifyCore;
1708
+ }
1709
+ });
1680
1710
  Object.defineProperty(exports, "createSin", {
1681
1711
  enumerable: true,
1682
1712
  get: function get() {
@@ -1839,6 +1869,12 @@ Object.defineProperty(exports, "createSymbolNode", {
1839
1869
  return _SymbolNode.createSymbolNode;
1840
1870
  }
1841
1871
  });
1872
+ Object.defineProperty(exports, "createSymbolicEqual", {
1873
+ enumerable: true,
1874
+ get: function get() {
1875
+ return _symbolicEqual.createSymbolicEqual;
1876
+ }
1877
+ });
1842
1878
  Object.defineProperty(exports, "createTan", {
1843
1879
  enumerable: true,
1844
1880
  get: function get() {
@@ -2454,6 +2490,8 @@ var _intersect = require("./function/geometry/intersect.js");
2454
2490
 
2455
2491
  var _sum = require("./function/statistics/sum.js");
2456
2492
 
2493
+ var _cumsum = require("./function/statistics/cumsum.js");
2494
+
2457
2495
  var _mean = require("./function/statistics/mean.js");
2458
2496
 
2459
2497
  var _median = require("./function/statistics/median.js");
@@ -2494,8 +2532,16 @@ var _catalan = require("./function/combinatorics/catalan.js");
2494
2532
 
2495
2533
  var _composition = require("./function/combinatorics/composition.js");
2496
2534
 
2535
+ var _leafCount = require("./function/algebra/leafCount.js");
2536
+
2497
2537
  var _simplify = require("./function/algebra/simplify.js");
2498
2538
 
2539
+ var _simplifyCore = require("./function/algebra/simplifyCore.js");
2540
+
2541
+ var _resolve = require("./function/algebra/resolve.js");
2542
+
2543
+ var _symbolicEqual = require("./function/algebra/symbolicEqual.js");
2544
+
2499
2545
  var _derivative = require("./function/algebra/derivative.js");
2500
2546
 
2501
2547
  var _rationalize = require("./function/algebra/rationalize.js");
@@ -2540,4 +2586,6 @@ var _stdTransform = require("./expression/transform/std.transform.js");
2540
2586
 
2541
2587
  var _sumTransform = require("./expression/transform/sum.transform.js");
2542
2588
 
2589
+ var _cumsumTransform = require("./expression/transform/cumsum.transform.js");
2590
+
2543
2591
  var _varianceTransform = require("./expression/transform/variance.transform.js");