mathjs 10.0.2 → 10.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (337) hide show
  1. package/HISTORY.md +37 -0
  2. package/NOTICE +1 -1
  3. package/README.md +10 -2
  4. package/bin/cli.js +1 -1
  5. package/docs/expressions/algebra.md +27 -0
  6. package/docs/expressions/syntax.md +1 -1
  7. package/docs/reference/functions/abs.md +6 -0
  8. package/docs/reference/functions/acos.md +6 -0
  9. package/docs/reference/functions/acosh.md +6 -0
  10. package/docs/reference/functions/acot.md +6 -0
  11. package/docs/reference/functions/acoth.md +6 -0
  12. package/docs/reference/functions/acsc.md +6 -0
  13. package/docs/reference/functions/acsch.md +6 -0
  14. package/docs/reference/functions/add.md +6 -0
  15. package/docs/reference/functions/and.md +6 -0
  16. package/docs/reference/functions/apply.md +6 -0
  17. package/docs/reference/functions/arg.md +6 -0
  18. package/docs/reference/functions/asec.md +6 -0
  19. package/docs/reference/functions/asech.md +6 -0
  20. package/docs/reference/functions/asin.md +6 -0
  21. package/docs/reference/functions/asinh.md +6 -0
  22. package/docs/reference/functions/atan.md +6 -0
  23. package/docs/reference/functions/atan2.md +6 -0
  24. package/docs/reference/functions/atanh.md +6 -0
  25. package/docs/reference/functions/bellNumbers.md +6 -0
  26. package/docs/reference/functions/bin.md +6 -0
  27. package/docs/reference/functions/bitAnd.md +6 -0
  28. package/docs/reference/functions/bitNot.md +6 -0
  29. package/docs/reference/functions/bitOr.md +6 -0
  30. package/docs/reference/functions/bitXor.md +6 -0
  31. package/docs/reference/functions/catalan.md +6 -0
  32. package/docs/reference/functions/cbrt.md +6 -0
  33. package/docs/reference/functions/ceil.md +6 -0
  34. package/docs/reference/functions/clone.md +6 -0
  35. package/docs/reference/functions/column.md +6 -0
  36. package/docs/reference/functions/combinations.md +6 -0
  37. package/docs/reference/functions/combinationsWithRep.md +6 -0
  38. package/docs/reference/functions/compare.md +6 -0
  39. package/docs/reference/functions/compareNatural.md +6 -0
  40. package/docs/reference/functions/compareText.md +6 -0
  41. package/docs/reference/functions/compile.md +6 -0
  42. package/docs/reference/functions/composition.md +6 -0
  43. package/docs/reference/functions/concat.md +6 -0
  44. package/docs/reference/functions/conj.md +6 -0
  45. package/docs/reference/functions/cos.md +6 -0
  46. package/docs/reference/functions/cosh.md +6 -0
  47. package/docs/reference/functions/cot.md +6 -0
  48. package/docs/reference/functions/coth.md +6 -0
  49. package/docs/reference/functions/count.md +6 -0
  50. package/docs/reference/functions/cross.md +6 -0
  51. package/docs/reference/functions/csc.md +6 -0
  52. package/docs/reference/functions/csch.md +6 -0
  53. package/docs/reference/functions/ctranspose.md +6 -0
  54. package/docs/reference/functions/cube.md +6 -0
  55. package/docs/reference/functions/deepEqual.md +6 -0
  56. package/docs/reference/functions/derivative.md +6 -0
  57. package/docs/reference/functions/det.md +6 -0
  58. package/docs/reference/functions/diag.md +6 -0
  59. package/docs/reference/functions/diff.md +6 -0
  60. package/docs/reference/functions/distance.md +6 -0
  61. package/docs/reference/functions/divide.md +6 -0
  62. package/docs/reference/functions/dot.md +6 -0
  63. package/docs/reference/functions/dotDivide.md +6 -0
  64. package/docs/reference/functions/dotMultiply.md +6 -0
  65. package/docs/reference/functions/dotPow.md +6 -0
  66. package/docs/reference/functions/eigs.md +6 -0
  67. package/docs/reference/functions/equal.md +6 -0
  68. package/docs/reference/functions/equalText.md +6 -0
  69. package/docs/reference/functions/erf.md +6 -0
  70. package/docs/reference/functions/evaluate.md +6 -0
  71. package/docs/reference/functions/exp.md +6 -0
  72. package/docs/reference/functions/expm.md +6 -0
  73. package/docs/reference/functions/expm1.md +6 -0
  74. package/docs/reference/functions/factorial.md +6 -0
  75. package/docs/reference/functions/filter.md +6 -0
  76. package/docs/reference/functions/fix.md +6 -0
  77. package/docs/reference/functions/flatten.md +6 -0
  78. package/docs/reference/functions/floor.md +6 -0
  79. package/docs/reference/functions/forEach.md +6 -0
  80. package/docs/reference/functions/format.md +6 -0
  81. package/docs/reference/functions/gamma.md +6 -0
  82. package/docs/reference/functions/gcd.md +6 -0
  83. package/docs/reference/functions/getMatrixDataType.md +6 -0
  84. package/docs/reference/functions/hasNumericValue.md +6 -0
  85. package/docs/reference/functions/help.md +6 -0
  86. package/docs/reference/functions/hex.md +6 -0
  87. package/docs/reference/functions/hypot.md +6 -0
  88. package/docs/reference/functions/identity.md +6 -0
  89. package/docs/reference/functions/im.md +6 -0
  90. package/docs/reference/functions/intersect.md +6 -0
  91. package/docs/reference/functions/inv.md +6 -0
  92. package/docs/reference/functions/invmod.md +47 -0
  93. package/docs/reference/functions/isInteger.md +6 -0
  94. package/docs/reference/functions/isNaN.md +6 -0
  95. package/docs/reference/functions/isNegative.md +6 -0
  96. package/docs/reference/functions/isNumeric.md +6 -0
  97. package/docs/reference/functions/isPositive.md +6 -0
  98. package/docs/reference/functions/isPrime.md +6 -0
  99. package/docs/reference/functions/isZero.md +6 -0
  100. package/docs/reference/functions/kldivergence.md +6 -0
  101. package/docs/reference/functions/kron.md +6 -0
  102. package/docs/reference/functions/larger.md +6 -0
  103. package/docs/reference/functions/largerEq.md +6 -0
  104. package/docs/reference/functions/lcm.md +6 -0
  105. package/docs/reference/functions/leafCount.md +52 -0
  106. package/docs/reference/functions/leftShift.md +6 -0
  107. package/docs/reference/functions/log.md +6 -0
  108. package/docs/reference/functions/log10.md +6 -0
  109. package/docs/reference/functions/log1p.md +6 -0
  110. package/docs/reference/functions/log2.md +6 -0
  111. package/docs/reference/functions/lsolve.md +6 -0
  112. package/docs/reference/functions/lsolveAll.md +6 -0
  113. package/docs/reference/functions/lup.md +6 -0
  114. package/docs/reference/functions/lusolve.md +6 -0
  115. package/docs/reference/functions/mad.md +6 -0
  116. package/docs/reference/functions/map.md +6 -0
  117. package/docs/reference/functions/matrixFromColumns.md +6 -0
  118. package/docs/reference/functions/matrixFromFunction.md +6 -0
  119. package/docs/reference/functions/matrixFromRows.md +6 -0
  120. package/docs/reference/functions/max.md +6 -0
  121. package/docs/reference/functions/mean.md +6 -0
  122. package/docs/reference/functions/median.md +6 -0
  123. package/docs/reference/functions/min.md +6 -0
  124. package/docs/reference/functions/mod.md +6 -0
  125. package/docs/reference/functions/mode.md +6 -0
  126. package/docs/reference/functions/multinomial.md +6 -0
  127. package/docs/reference/functions/multiply.md +6 -0
  128. package/docs/reference/functions/norm.md +6 -0
  129. package/docs/reference/functions/not.md +6 -0
  130. package/docs/reference/functions/nthRoot.md +6 -0
  131. package/docs/reference/functions/nthRoots.md +6 -0
  132. package/docs/reference/functions/numeric.md +6 -0
  133. package/docs/reference/functions/oct.md +6 -0
  134. package/docs/reference/functions/ones.md +6 -0
  135. package/docs/reference/functions/or.md +6 -0
  136. package/docs/reference/functions/parser.md +6 -0
  137. package/docs/reference/functions/partitionSelect.md +6 -0
  138. package/docs/reference/functions/permutations.md +6 -0
  139. package/docs/reference/functions/pickRandom.md +6 -0
  140. package/docs/reference/functions/pow.md +6 -0
  141. package/docs/reference/functions/print.md +6 -0
  142. package/docs/reference/functions/prod.md +6 -0
  143. package/docs/reference/functions/qr.md +6 -0
  144. package/docs/reference/functions/quantileSeq.md +6 -0
  145. package/docs/reference/functions/random.md +6 -0
  146. package/docs/reference/functions/randomInt.md +6 -0
  147. package/docs/reference/functions/range.md +6 -0
  148. package/docs/reference/functions/rationalize.md +7 -1
  149. package/docs/reference/functions/re.md +6 -0
  150. package/docs/reference/functions/reshape.md +7 -0
  151. package/docs/reference/functions/resize.md +6 -0
  152. package/docs/reference/functions/resolve.md +46 -0
  153. package/docs/reference/functions/rightArithShift.md +6 -0
  154. package/docs/reference/functions/rightLogShift.md +6 -0
  155. package/docs/reference/functions/rotate.md +6 -0
  156. package/docs/reference/functions/rotationMatrix.md +6 -0
  157. package/docs/reference/functions/round.md +6 -0
  158. package/docs/reference/functions/row.md +6 -0
  159. package/docs/reference/functions/sec.md +6 -0
  160. package/docs/reference/functions/sech.md +6 -0
  161. package/docs/reference/functions/setCartesian.md +6 -0
  162. package/docs/reference/functions/setDifference.md +6 -0
  163. package/docs/reference/functions/setDistinct.md +6 -0
  164. package/docs/reference/functions/setIntersect.md +6 -0
  165. package/docs/reference/functions/setIsSubset.md +6 -0
  166. package/docs/reference/functions/setMultiplicity.md +6 -0
  167. package/docs/reference/functions/setPowerset.md +6 -0
  168. package/docs/reference/functions/setSize.md +6 -0
  169. package/docs/reference/functions/setSymDifference.md +6 -0
  170. package/docs/reference/functions/setUnion.md +6 -0
  171. package/docs/reference/functions/sign.md +6 -0
  172. package/docs/reference/functions/simplify.md +47 -7
  173. package/docs/reference/functions/simplifyCore.md +50 -0
  174. package/docs/reference/functions/sin.md +6 -0
  175. package/docs/reference/functions/sinh.md +6 -0
  176. package/docs/reference/functions/size.md +6 -0
  177. package/docs/reference/functions/slu.md +6 -0
  178. package/docs/reference/functions/smaller.md +6 -0
  179. package/docs/reference/functions/smallerEq.md +6 -0
  180. package/docs/reference/functions/sort.md +6 -0
  181. package/docs/reference/functions/sqrt.md +6 -0
  182. package/docs/reference/functions/sqrtm.md +6 -0
  183. package/docs/reference/functions/square.md +6 -0
  184. package/docs/reference/functions/squeeze.md +6 -0
  185. package/docs/reference/functions/std.md +6 -0
  186. package/docs/reference/functions/stirlingS2.md +6 -0
  187. package/docs/reference/functions/subset.md +6 -0
  188. package/docs/reference/functions/subtract.md +6 -0
  189. package/docs/reference/functions/sum.md +6 -0
  190. package/docs/reference/functions/tan.md +6 -0
  191. package/docs/reference/functions/tanh.md +6 -0
  192. package/docs/reference/functions/to.md +6 -0
  193. package/docs/reference/functions/trace.md +6 -0
  194. package/docs/reference/functions/transpose.md +6 -0
  195. package/docs/reference/functions/typeOf.md +6 -0
  196. package/docs/reference/functions/unaryMinus.md +6 -0
  197. package/docs/reference/functions/unaryPlus.md +6 -0
  198. package/docs/reference/functions/unequal.md +6 -0
  199. package/docs/reference/functions/usolve.md +6 -0
  200. package/docs/reference/functions/usolveAll.md +6 -0
  201. package/docs/reference/functions/variance.md +6 -0
  202. package/docs/reference/functions/xgcd.md +6 -0
  203. package/docs/reference/functions/xor.md +6 -0
  204. package/docs/reference/functions/zeros.md +6 -0
  205. package/docs/reference/functions.md +4 -0
  206. package/lib/browser/math.js +7 -7
  207. package/lib/browser/math.js.map +1 -1
  208. package/lib/cjs/core/create.js +4 -4
  209. package/lib/cjs/core/function/import.js +3 -3
  210. package/lib/cjs/core/function/typed.js +2 -2
  211. package/lib/cjs/defaultInstance.js +3 -3
  212. package/lib/cjs/entry/allFactoriesAny.js +1 -1
  213. package/lib/cjs/entry/allFactoriesNumber.js +1 -1
  214. package/lib/cjs/entry/configReadonly.js +1 -1
  215. package/lib/cjs/entry/dependenciesAny/dependenciesInvmod.generated.js +41 -0
  216. package/lib/cjs/entry/dependenciesAny/dependenciesLeafCount.generated.js +23 -0
  217. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +18 -0
  218. package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +32 -0
  219. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +21 -0
  220. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +65 -0
  221. package/lib/cjs/entry/dependenciesAny.generated.js +32 -0
  222. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +18 -0
  223. package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +32 -0
  224. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +21 -0
  225. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +65 -0
  226. package/lib/cjs/entry/dependenciesNumber.generated.js +16 -0
  227. package/lib/cjs/entry/impureFunctionsAny.generated.js +78 -29
  228. package/lib/cjs/entry/impureFunctionsNumber.generated.js +102 -60
  229. package/lib/cjs/entry/pureFunctionsAny.generated.js +65 -55
  230. package/lib/cjs/entry/pureFunctionsNumber.generated.js +46 -48
  231. package/lib/cjs/expression/Help.js +4 -0
  232. package/lib/cjs/expression/Parser.js +1 -1
  233. package/lib/cjs/expression/embeddedDocs/core/typed.js +1 -1
  234. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +20 -6
  235. package/lib/cjs/expression/embeddedDocs/function/algebra/leafCount.js +15 -0
  236. package/lib/cjs/expression/embeddedDocs/function/algebra/resolve.js +16 -0
  237. package/lib/cjs/expression/embeddedDocs/function/algebra/simplify.js +1 -1
  238. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +15 -0
  239. package/lib/cjs/expression/embeddedDocs/function/arithmetic/invmod.js +15 -0
  240. package/lib/cjs/expression/embeddedDocs/function/matrix/forEach.js +1 -1
  241. package/lib/cjs/expression/node/FunctionNode.js +7 -7
  242. package/lib/cjs/expression/node/IndexNode.js +1 -1
  243. package/lib/cjs/expression/node/Node.js +3 -3
  244. package/lib/cjs/expression/node/ObjectNode.js +1 -1
  245. package/lib/cjs/expression/node/utils/access.js +1 -1
  246. package/lib/cjs/expression/node/utils/assign.js +1 -1
  247. package/lib/cjs/expression/parse.js +13 -13
  248. package/lib/cjs/factoriesAny.js +32 -0
  249. package/lib/cjs/factoriesNumber.js +16 -0
  250. package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
  251. package/lib/cjs/function/algebra/leafCount.js +66 -0
  252. package/lib/cjs/function/algebra/rationalize.js +36 -39
  253. package/lib/cjs/function/algebra/resolve.js +106 -0
  254. package/lib/cjs/function/algebra/simplify/simplifyConstant.js +226 -32
  255. package/lib/cjs/function/algebra/simplify/util.js +171 -33
  256. package/lib/cjs/function/algebra/simplify.js +608 -191
  257. package/lib/cjs/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +83 -31
  258. package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
  259. package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
  260. package/lib/cjs/function/arithmetic/ceil.js +3 -3
  261. package/lib/cjs/function/arithmetic/floor.js +3 -3
  262. package/lib/cjs/function/arithmetic/invmod.js +73 -0
  263. package/lib/cjs/function/arithmetic/norm.js +1 -1
  264. package/lib/cjs/function/arithmetic/round.js +1 -1
  265. package/lib/cjs/function/matrix/eigs/complexEigs.js +5 -5
  266. package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
  267. package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
  268. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  269. package/lib/cjs/function/relational/compareNatural.js +6 -6
  270. package/lib/cjs/header.js +3 -3
  271. package/lib/cjs/plain/bignumber/index.js +1 -1
  272. package/lib/cjs/plain/number/combinations.js +18 -6
  273. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  274. package/lib/cjs/type/bignumber/function/bignumber.js +1 -1
  275. package/lib/cjs/type/boolean.js +2 -2
  276. package/lib/cjs/type/complex/Complex.js +14 -14
  277. package/lib/cjs/type/complex/function/complex.js +1 -1
  278. package/lib/cjs/type/fraction/Fraction.js +6 -6
  279. package/lib/cjs/type/fraction/function/fraction.js +1 -1
  280. package/lib/cjs/type/matrix/DenseMatrix.js +5 -5
  281. package/lib/cjs/type/matrix/SparseMatrix.js +2 -2
  282. package/lib/cjs/type/number.js +1 -1
  283. package/lib/cjs/type/string.js +2 -2
  284. package/lib/cjs/type/unit/Unit.js +8 -8
  285. package/lib/cjs/utils/customs.js +2 -2
  286. package/lib/cjs/utils/emitter.js +1 -1
  287. package/lib/cjs/utils/function.js +2 -2
  288. package/lib/cjs/utils/is.js +6 -6
  289. package/lib/cjs/utils/latex.js +3 -3
  290. package/lib/cjs/utils/lruQueue.js +1 -1
  291. package/lib/cjs/utils/map.js +3 -3
  292. package/lib/cjs/utils/object.js +2 -2
  293. package/lib/cjs/utils/snapshot.js +7 -7
  294. package/lib/cjs/utils/string.js +2 -2
  295. package/lib/cjs/version.js +1 -1
  296. package/lib/esm/entry/dependenciesAny/dependenciesInvmod.generated.js +24 -0
  297. package/lib/esm/entry/dependenciesAny/dependenciesLeafCount.generated.js +12 -0
  298. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +12 -0
  299. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +18 -0
  300. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +14 -0
  301. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +40 -0
  302. package/lib/esm/entry/dependenciesAny.generated.js +4 -0
  303. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +12 -0
  304. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +18 -0
  305. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +14 -0
  306. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +40 -0
  307. package/lib/esm/entry/dependenciesNumber.generated.js +2 -0
  308. package/lib/esm/entry/impureFunctionsAny.generated.js +68 -22
  309. package/lib/esm/entry/impureFunctionsNumber.generated.js +92 -52
  310. package/lib/esm/entry/pureFunctionsAny.generated.js +53 -42
  311. package/lib/esm/entry/pureFunctionsNumber.generated.js +32 -32
  312. package/lib/esm/expression/Help.js +4 -0
  313. package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
  314. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +10 -1
  315. package/lib/esm/expression/embeddedDocs/function/algebra/leafCount.js +8 -0
  316. package/lib/esm/expression/embeddedDocs/function/algebra/resolve.js +9 -0
  317. package/lib/esm/expression/embeddedDocs/function/algebra/simplify.js +1 -1
  318. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +8 -0
  319. package/lib/esm/expression/embeddedDocs/function/arithmetic/invmod.js +8 -0
  320. package/lib/esm/expression/embeddedDocs/function/matrix/forEach.js +1 -1
  321. package/lib/esm/factoriesAny.js +4 -0
  322. package/lib/esm/factoriesNumber.js +2 -0
  323. package/lib/esm/function/algebra/leafCount.js +59 -0
  324. package/lib/esm/function/algebra/rationalize.js +36 -38
  325. package/lib/esm/function/algebra/resolve.js +95 -0
  326. package/lib/esm/function/algebra/simplify/simplifyConstant.js +200 -32
  327. package/lib/esm/function/algebra/simplify/util.js +170 -34
  328. package/lib/esm/function/algebra/simplify.js +603 -186
  329. package/lib/esm/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +75 -31
  330. package/lib/esm/function/arithmetic/invmod.js +57 -0
  331. package/lib/esm/header.js +1 -1
  332. package/lib/esm/plain/number/combinations.js +18 -6
  333. package/lib/esm/version.js +1 -1
  334. package/package.json +21 -15
  335. package/types/index.d.ts +48 -6
  336. package/lib/cjs/function/algebra/simplify/resolve.js +0 -76
  337. package/lib/esm/function/algebra/simplify/resolve.js +0 -67
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.multinomial = exports.mode = exports.mod = exports.min = exports.median = exports.mean = exports.max = exports.matrix = exports.map = exports.mad = exports.log2 = exports.log1p = exports.log10 = exports.log = exports.leftShift = exports.lcm = exports.largerEq = exports.larger = exports.isZero = exports.isPrime = exports.isPositive = exports.isNumeric = exports.isNegative = exports.isNaN = exports.isInteger = exports.index = exports.hypot = exports.hasNumericValue = exports.gcd = exports.gamma = exports.format = exports.forEach = exports.floor = exports.fix = exports.filter = exports.factorial = exports.expm1 = exports.exp = exports.erf = exports.equalText = exports.equalScalar = exports.equal = exports.e = exports.divideScalar = exports.divide = exports.deepEqual = exports.cube = exports.csch = exports.csc = exports.coth = exports.cot = exports.cosh = exports.cos = exports.composition = exports.compareText = exports.compareNatural = exports.compare = exports.combinationsWithRep = exports.combinations = exports.clone = exports.ceil = exports.cbrt = exports.catalan = exports["boolean"] = exports.bitXor = exports.bitOr = exports.bitNot = exports.bitAnd = exports.bellNumbers = exports.atanh = exports.atan2 = exports.atan = exports.asinh = exports.asin = exports.asech = exports.asec = exports.apply = exports.and = exports.addScalar = exports.add = exports.acsch = exports.acsc = exports.acoth = exports.acot = exports.acosh = exports.acos = exports.abs = exports._true = exports._null = exports._false = exports._NaN = exports._Infinity = exports.SQRT2 = exports.SQRT1_2 = exports.ResultSet = exports.Range = exports.LOG2E = exports.LOG10E = exports.LN2 = exports.LN10 = void 0;
7
- exports.xor = exports.xgcd = exports.version = exports.variance = exports.unequal = exports.unaryPlus = exports.unaryMinus = exports.typed = exports.typeOf = exports.tau = exports.tanh = exports.tan = exports.sum = exports.subtract = exports.subset = exports.string = exports.stirlingS2 = exports.std = exports.square = exports.sqrt = exports.smallerEq = exports.smaller = exports.size = exports.sinh = exports.sin = exports.sign = exports.sech = exports.sec = exports.round = exports.rightLogShift = exports.rightArithShift = exports.replacer = exports.range = exports.randomInt = exports.random = exports.quantileSeq = exports.prod = exports.print = exports.pow = exports.pickRandom = exports.pi = exports.phi = exports.permutations = exports.partitionSelect = exports.or = exports.numeric = exports.number = exports.nthRoot = exports.not = exports.norm = exports.multiplyScalar = exports.multiply = exports.multinomial = exports.mode = exports.mod = exports.min = exports.median = exports.mean = exports.max = exports.matrix = exports.map = exports.mad = exports.log2 = exports.log1p = exports.log10 = exports.log = exports.leftShift = exports.lcm = exports.largerEq = exports.larger = exports.isZero = exports.isPrime = exports.isPositive = exports.isNumeric = exports.isNegative = exports.isNaN = exports.isInteger = exports.index = exports.hypot = exports.hasNumericValue = exports.gcd = exports.gamma = exports.format = exports.forEach = exports.floor = exports.fix = exports.filter = exports.factorial = exports.expm1 = exports.exp = exports.erf = exports.equalText = exports.equalScalar = exports.equal = exports.e = exports.divideScalar = exports.divide = exports.deepEqual = exports.cube = exports.csch = exports.csc = exports.coth = exports.cot = exports.cosh = exports.cos = exports.composition = exports.compareText = exports.compareNatural = exports.compare = exports.combinationsWithRep = exports.combinations = exports.clone = exports.ceil = exports.cbrt = exports.catalan = exports["boolean"] = exports.bitXor = exports.bitOr = exports.bitNot = exports.bitAnd = exports.bellNumbers = exports.atanh = exports.atan2 = exports.atan = exports.asinh = exports.asin = exports.asech = exports.asec = exports.apply = exports.and = exports.addScalar = exports.add = exports.acsch = exports.acsc = exports.acoth = exports.acot = exports.acosh = exports.acos = exports.abs = exports._true = exports._null = exports._false = exports._NaN = exports._Infinity = exports.SQRT2 = exports.SQRT1_2 = exports.ResultSet = exports.Range = exports.LOG2E = exports.LOG10E = exports.LN2 = exports.LN10 = void 0;
6
+ exports.multinomial = exports.mode = exports.mod = exports.min = exports.median = exports.mean = exports.max = exports.matrix = exports.map = exports.mad = exports.log2 = exports.log1p = exports.log10 = exports.log = exports.leftShift = exports.lcm = exports.largerEq = exports.larger = exports.isZero = exports.isPrime = exports.isPositive = exports.isNumeric = exports.isNegative = exports.isNaN = exports.isInteger = exports.index = exports.hypot = exports.hasNumericValue = exports.gcd = exports.gamma = exports.format = exports.forEach = exports.floor = exports.fix = exports.filter = exports.factorial = exports.expm1 = exports.exp = exports.erf = exports.equalText = exports.equalScalar = exports.equal = exports.e = exports.divideScalar = exports.divide = exports.deepEqual = exports.cube = exports.csch = exports.csc = exports.coth = exports.cot = exports.cosh = exports.cos = exports.composition = exports.compareText = exports.compareNatural = exports.compare = exports.combinationsWithRep = exports.combinations = exports.clone = exports.ceil = exports.cbrt = exports.catalan = exports.boolean = exports.bitXor = exports.bitOr = exports.bitNot = exports.bitAnd = exports.bellNumbers = exports.atanh = exports.atan2 = exports.atan = exports.asinh = exports.asin = exports.asech = exports.asec = exports.apply = exports.and = exports.addScalar = exports.add = exports.acsch = exports.acsc = exports.acoth = exports.acot = exports.acosh = exports.acos = exports.abs = exports._true = exports._null = exports._false = exports._NaN = exports._Infinity = exports.SQRT2 = exports.SQRT1_2 = exports.ResultSet = exports.Range = exports.LOG2E = exports.LOG10E = exports.LN2 = exports.LN10 = void 0;
7
+ exports.xor = exports.xgcd = exports.version = exports.variance = exports.unequal = exports.unaryPlus = exports.unaryMinus = exports.typed = exports.typeOf = exports.tau = exports.tanh = exports.tan = exports.sum = exports.subtract = exports.subset = exports.string = exports.stirlingS2 = exports.std = exports.square = exports.sqrt = exports.smallerEq = exports.smaller = exports.size = exports.sinh = exports.sin = exports.sign = exports.sech = exports.sec = exports.round = exports.rightLogShift = exports.rightArithShift = exports.replacer = exports.range = exports.randomInt = exports.random = exports.quantileSeq = exports.prod = exports.print = exports.pow = exports.pickRandom = exports.pi = exports.phi = exports.permutations = exports.partitionSelect = exports.or = exports.numeric = exports.number = exports.nthRoot = exports.not = exports.norm = exports.multiplyScalar = exports.multiply = exports.multinomial = exports.mode = exports.mod = exports.min = exports.median = exports.mean = exports.max = exports.matrix = exports.map = exports.mad = exports.log2 = exports.log1p = exports.log10 = exports.log = exports.leftShift = exports.lcm = exports.largerEq = exports.larger = exports.isZero = exports.isPrime = exports.isPositive = exports.isNumeric = exports.isNegative = exports.isNaN = exports.isInteger = exports.index = exports.hypot = exports.hasNumericValue = exports.gcd = exports.gamma = exports.format = exports.forEach = exports.floor = exports.fix = exports.filter = exports.factorial = exports.expm1 = exports.exp = exports.erf = exports.equalText = exports.equalScalar = exports.equal = exports.e = exports.divideScalar = exports.divide = exports.deepEqual = exports.cube = exports.csch = exports.csc = exports.coth = exports.cot = exports.cosh = exports.cos = exports.composition = exports.compareText = exports.compareNatural = exports.compare = exports.combinationsWithRep = exports.combinations = exports.clone = exports.ceil = exports.cbrt = exports.catalan = exports.boolean = exports.bitXor = exports.bitOr = exports.bitNot = exports.bitAnd = exports.bellNumbers = exports.atanh = exports.atan2 = exports.atan = exports.asinh = exports.asin = exports.asech = exports.asec = exports.apply = exports.and = exports.addScalar = exports.add = exports.acsch = exports.acsc = exports.acoth = exports.acot = exports.acosh = exports.acos = exports.abs = exports._true = exports._null = exports._false = exports._NaN = exports._Infinity = exports.SQRT2 = exports.SQRT1_2 = exports.ResultSet = exports.Range = exports.LOG2E = exports.LOG10E = exports.LN2 = exports.LN10 = void 0;
8
8
 
9
9
  var _configReadonly = require("./configReadonly.js");
10
10
 
@@ -58,6 +58,8 @@ var Range = /* #__PURE__ */(0, _factoriesNumber.createRangeClass)({});
58
58
  exports.Range = Range;
59
59
  var replacer = /* #__PURE__ */(0, _factoriesNumber.createReplacer)({});
60
60
  exports.replacer = replacer;
61
+ var ResultSet = /* #__PURE__ */(0, _factoriesNumber.createResultSet)({});
62
+ exports.ResultSet = ResultSet;
61
63
  var SQRT1_2 = /* #__PURE__ */(0, _factoriesNumber.createSQRT1_2)({
62
64
  config: _configReadonly.config
63
65
  });
@@ -128,12 +130,10 @@ var bitOr = /* #__PURE__ */(0, _factoriesNumber.createBitOr)({
128
130
  typed: typed
129
131
  });
130
132
  exports.bitOr = bitOr;
131
-
132
- var _boolean = /* #__PURE__ */(0, _factoriesNumber.createBoolean)({
133
+ var boolean = /* #__PURE__ */(0, _factoriesNumber.createBoolean)({
133
134
  typed: typed
134
135
  });
135
-
136
- exports["boolean"] = _boolean;
136
+ exports.boolean = boolean;
137
137
  var cbrt = /* #__PURE__ */(0, _factoriesNumber.createCbrt)({
138
138
  typed: typed
139
139
  });
@@ -284,22 +284,18 @@ var random = /* #__PURE__ */(0, _factoriesNumber.createRandom)({
284
284
  typed: typed
285
285
  });
286
286
  exports.random = random;
287
- var rightArithShift = /* #__PURE__ */(0, _factoriesNumber.createRightArithShift)({
288
- typed: typed
289
- });
290
- exports.rightArithShift = rightArithShift;
291
- var round = /* #__PURE__ */(0, _factoriesNumber.createRound)({
287
+ var rightLogShift = /* #__PURE__ */(0, _factoriesNumber.createRightLogShift)({
292
288
  typed: typed
293
289
  });
294
- exports.round = round;
295
- var sec = /* #__PURE__ */(0, _factoriesNumber.createSec)({
296
- typed: typed
290
+ exports.rightLogShift = rightLogShift;
291
+ var SQRT2 = /* #__PURE__ */(0, _factoriesNumber.createSQRT2)({
292
+ config: _configReadonly.config
297
293
  });
298
- exports.sec = sec;
299
- var sign = /* #__PURE__ */(0, _factoriesNumber.createSign)({
294
+ exports.SQRT2 = SQRT2;
295
+ var sech = /* #__PURE__ */(0, _factoriesNumber.createSech)({
300
296
  typed: typed
301
297
  });
302
- exports.sign = sign;
298
+ exports.sech = sech;
303
299
  var sin = /* #__PURE__ */(0, _factoriesNumber.createSin)({
304
300
  typed: typed
305
301
  });
@@ -424,12 +420,14 @@ var randomInt = /* #__PURE__ */(0, _factoriesNumber.createRandomInt)({
424
420
  typed: typed
425
421
  });
426
422
  exports.randomInt = randomInt;
427
- var ResultSet = /* #__PURE__ */(0, _factoriesNumber.createResultSet)({});
428
- exports.ResultSet = ResultSet;
429
- var SQRT2 = /* #__PURE__ */(0, _factoriesNumber.createSQRT2)({
430
- config: _configReadonly.config
423
+ var rightArithShift = /* #__PURE__ */(0, _factoriesNumber.createRightArithShift)({
424
+ typed: typed
431
425
  });
432
- exports.SQRT2 = SQRT2;
426
+ exports.rightArithShift = rightArithShift;
427
+ var sec = /* #__PURE__ */(0, _factoriesNumber.createSec)({
428
+ typed: typed
429
+ });
430
+ exports.sec = sec;
433
431
  var sinh = /* #__PURE__ */(0, _factoriesNumber.createSinh)({
434
432
  typed: typed
435
433
  });
@@ -463,21 +461,10 @@ var bitXor = /* #__PURE__ */(0, _factoriesNumber.createBitXor)({
463
461
  typed: typed
464
462
  });
465
463
  exports.bitXor = bitXor;
466
- var catalan = /* #__PURE__ */(0, _factoriesNumber.createCatalan)({
467
- addScalar: addScalar,
468
- combinations: combinations,
469
- divideScalar: divideScalar,
470
- isInteger: isInteger,
471
- isNegative: isNegative,
472
- multiplyScalar: multiplyScalar,
473
- typed: typed
474
- });
475
- exports.catalan = catalan;
476
- var compareNatural = /* #__PURE__ */(0, _factoriesNumber.createCompareNatural)({
477
- compare: compare,
464
+ var clone = /* #__PURE__ */(0, _factoriesNumber.createClone)({
478
465
  typed: typed
479
466
  });
480
- exports.compareNatural = compareNatural;
467
+ exports.clone = clone;
481
468
  var equal = /* #__PURE__ */(0, _factoriesNumber.createEqual)({
482
469
  equalScalar: equalScalar,
483
470
  typed: typed
@@ -531,10 +518,10 @@ var quantileSeq = /* #__PURE__ */(0, _factoriesNumber.createQuantileSeq)({
531
518
  typed: typed
532
519
  });
533
520
  exports.quantileSeq = quantileSeq;
534
- var rightLogShift = /* #__PURE__ */(0, _factoriesNumber.createRightLogShift)({
521
+ var round = /* #__PURE__ */(0, _factoriesNumber.createRound)({
535
522
  typed: typed
536
523
  });
537
- exports.rightLogShift = rightLogShift;
524
+ exports.round = round;
538
525
  var smaller = /* #__PURE__ */(0, _factoriesNumber.createSmaller)({
539
526
  config: _configReadonly.config,
540
527
  typed: typed
@@ -576,6 +563,16 @@ var atan2 = /* #__PURE__ */(0, _factoriesNumber.createAtan2)({
576
563
  typed: typed
577
564
  });
578
565
  exports.atan2 = atan2;
566
+ var catalan = /* #__PURE__ */(0, _factoriesNumber.createCatalan)({
567
+ addScalar: addScalar,
568
+ combinations: combinations,
569
+ divideScalar: divideScalar,
570
+ isInteger: isInteger,
571
+ isNegative: isNegative,
572
+ multiplyScalar: multiplyScalar,
573
+ typed: typed
574
+ });
575
+ exports.catalan = catalan;
579
576
  var composition = /* #__PURE__ */(0, _factoriesNumber.createComposition)({
580
577
  addScalar: addScalar,
581
578
  combinations: combinations,
@@ -643,20 +640,21 @@ var range = /* #__PURE__ */(0, _factoriesNumber.createRange)({
643
640
  typed: typed
644
641
  });
645
642
  exports.range = range;
646
- var sech = /* #__PURE__ */(0, _factoriesNumber.createSech)({
643
+ var sign = /* #__PURE__ */(0, _factoriesNumber.createSign)({
647
644
  typed: typed
648
645
  });
649
- exports.sech = sech;
646
+ exports.sign = sign;
650
647
  var std = /* #__PURE__ */(0, _factoriesNumber.createStd)({
651
648
  sqrt: sqrt,
652
649
  typed: typed,
653
650
  variance: variance
654
651
  });
655
652
  exports.std = std;
656
- var clone = /* #__PURE__ */(0, _factoriesNumber.createClone)({
653
+ var compareNatural = /* #__PURE__ */(0, _factoriesNumber.createCompareNatural)({
654
+ compare: compare,
657
655
  typed: typed
658
656
  });
659
- exports.clone = clone;
657
+ exports.compareNatural = compareNatural;
660
658
  var coth = /* #__PURE__ */(0, _factoriesNumber.createCoth)({
661
659
  typed: typed
662
660
  });
@@ -680,6 +678,13 @@ var prod = /* #__PURE__ */(0, _factoriesNumber.createProd)({
680
678
  typed: typed
681
679
  });
682
680
  exports.prod = prod;
681
+ var sum = /* #__PURE__ */(0, _factoriesNumber.createSum)({
682
+ add: add,
683
+ config: _configReadonly.config,
684
+ numeric: numeric,
685
+ typed: typed
686
+ });
687
+ exports.sum = sum;
683
688
  var bellNumbers = /* #__PURE__ */(0, _factoriesNumber.createBellNumbers)({
684
689
  addScalar: addScalar,
685
690
  isInteger: isInteger,
@@ -696,13 +701,6 @@ var mad = /* #__PURE__ */(0, _factoriesNumber.createMad)({
696
701
  typed: typed
697
702
  });
698
703
  exports.mad = mad;
699
- var sum = /* #__PURE__ */(0, _factoriesNumber.createSum)({
700
- add: add,
701
- config: _configReadonly.config,
702
- numeric: numeric,
703
- typed: typed
704
- });
705
- exports.sum = sum;
706
704
  var max = /* #__PURE__ */(0, _factoriesNumber.createMax)({
707
705
  config: _configReadonly.config,
708
706
  larger: larger,
@@ -96,6 +96,10 @@ var createHelpClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
96
96
  desc += '\n';
97
97
  }
98
98
 
99
+ if (doc.mayThrow && doc.mayThrow.length) {
100
+ desc += 'Throws: ' + doc.mayThrow.join(', ') + '\n\n';
101
+ }
102
+
99
103
  if (doc.seealso && doc.seealso.length) {
100
104
  desc += 'See also: ' + doc.seealso.join(', ') + '\n';
101
105
  }
@@ -141,7 +141,7 @@ var createParserClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
141
141
 
142
142
 
143
143
  Parser.prototype.remove = function (name) {
144
- this.scope["delete"](name);
144
+ this.scope.delete(name);
145
145
  };
146
146
  /**
147
147
  * Clear the scope with variables and functions
@@ -9,7 +9,7 @@ var typedDocs = {
9
9
  category: 'Core',
10
10
  syntax: ['typed(signatures)', 'typed(name, signatures)'],
11
11
  description: 'Create a typed function.',
12
- examples: ['double = typed({ "number, number": f(x)=x+x })', 'double(2)', 'double("hello")'],
12
+ examples: ['double = typed({ "number": f(x)=x+x })', 'double(2)', 'double("hello")'],
13
13
  seealso: []
14
14
  };
15
15
  exports.typedDocs = typedDocs;
@@ -7,6 +7,8 @@ exports.embeddedDocs = void 0;
7
7
 
8
8
  var _bignumber = require("./construction/bignumber.js");
9
9
 
10
+ var _print = require("./function/utils/print.js");
11
+
10
12
  var _typeOf = require("./function/utils/typeOf.js");
11
13
 
12
14
  var _isZero = require("./function/utils/isZero.js");
@@ -279,6 +281,8 @@ var _bitAnd = require("./function/bitwise/bitAnd.js");
279
281
 
280
282
  var _xgcd = require("./function/arithmetic/xgcd.js");
281
283
 
284
+ var _invmod = require("./function/arithmetic/invmod.js");
285
+
282
286
  var _unaryPlus = require("./function/arithmetic/unaryPlus.js");
283
287
 
284
288
  var _unaryMinus = require("./function/arithmetic/unaryMinus.js");
@@ -355,10 +359,16 @@ var _usolveAll = require("./function/algebra/usolveAll.js");
355
359
 
356
360
  var _slu = require("./function/algebra/slu.js");
357
361
 
362
+ var _leafCount = require("./function/algebra/leafCount.js");
363
+
358
364
  var _rationalize = require("./function/algebra/rationalize.js");
359
365
 
360
366
  var _simplify = require("./function/algebra/simplify.js");
361
367
 
368
+ var _simplifyCore = require("./function/algebra/simplifyCore.js");
369
+
370
+ var _resolve = require("./function/algebra/resolve.js");
371
+
362
372
  var _lup = require("./function/algebra/lup.js");
363
373
 
364
374
  var _lsolve = require("./function/algebra/lsolve.js");
@@ -452,7 +462,7 @@ var _rotate = require("./function/matrix/rotate.js");
452
462
  var embeddedDocs = {
453
463
  // construction functions
454
464
  bignumber: _bignumber.bignumberDocs,
455
- "boolean": _boolean.booleanDocs,
465
+ boolean: _boolean.booleanDocs,
456
466
  complex: _complex.complexDocs,
457
467
  createUnit: _createUnit.createUnitDocs,
458
468
  fraction: _fraction.fractionDocs,
@@ -466,7 +476,7 @@ var embeddedDocs = {
466
476
  // constants
467
477
  e: _e.eDocs,
468
478
  E: _e.eDocs,
469
- "false": _false.falseDocs,
479
+ false: _false.falseDocs,
470
480
  i: _i.iDocs,
471
481
  Infinity: _Infinity.InfinityDocs,
472
482
  LN2: _LN2.LN2Docs,
@@ -474,14 +484,14 @@ var embeddedDocs = {
474
484
  LOG2E: _LOG2E.LOG2EDocs,
475
485
  LOG10E: _LOG10E.LOG10EDocs,
476
486
  NaN: _NaN.NaNDocs,
477
- "null": _null.nullDocs,
487
+ null: _null.nullDocs,
478
488
  pi: _pi.piDocs,
479
489
  PI: _pi.piDocs,
480
490
  phi: _phi.phiDocs,
481
491
  SQRT1_2: _SQRT1_.SQRT12Docs,
482
492
  SQRT2: _SQRT.SQRT2Docs,
483
493
  tau: _tau.tauDocs,
484
- "true": _true.trueDocs,
494
+ true: _true.trueDocs,
485
495
  version: _version.versionDocs,
486
496
  // physical constants
487
497
  // TODO: more detailed docs for physical constants
@@ -693,7 +703,10 @@ var embeddedDocs = {
693
703
  lsolveAll: _lsolveAll.lsolveAllDocs,
694
704
  lup: _lup.lupDocs,
695
705
  lusolve: _lusolve.lusolveDocs,
706
+ leafCount: _leafCount.leafCountDocs,
696
707
  simplify: _simplify.simplifyDocs,
708
+ resolve: _resolve.resolveDocs,
709
+ simplifyCore: _simplifyCore.simplifyCoreDocs,
697
710
  rationalize: _rationalize.rationalizeDocs,
698
711
  slu: _slu.sluDocs,
699
712
  usolve: _usolve.usolveDocs,
@@ -736,6 +749,7 @@ var embeddedDocs = {
736
749
  unaryMinus: _unaryMinus.unaryMinusDocs,
737
750
  unaryPlus: _unaryPlus.unaryPlusDocs,
738
751
  xgcd: _xgcd.xgcdDocs,
752
+ invmod: _invmod.invmodDocs,
739
753
  // functions - bitwise
740
754
  bitAnd: _bitAnd.bitAndDocs,
741
755
  bitNot: _bitNot.bitNotDocs,
@@ -751,7 +765,7 @@ var embeddedDocs = {
751
765
  stirlingS2: _stirlingS.stirlingS2Docs,
752
766
  // functions - core
753
767
  config: _config.configDocs,
754
- "import": _import.importDocs,
768
+ import: _import.importDocs,
755
769
  typed: _typed.typedDocs,
756
770
  // functions - complex
757
771
  arg: _arg.argDocs,
@@ -897,7 +911,7 @@ var embeddedDocs = {
897
911
  isPositive: _isPositive.isPositiveDocs,
898
912
  isPrime: _isPrime.isPrimeDocs,
899
913
  isZero: _isZero.isZeroDocs,
900
- // print: printDocs // TODO: add documentation for print as soon as the parser supports objects.
914
+ print: _print.printDocs,
901
915
  typeOf: _typeOf.typeOfDocs,
902
916
  numeric: _numeric.numericDocs
903
917
  };
@@ -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.invmodDocs = void 0;
7
+ var invmodDocs = {
8
+ name: 'invmod',
9
+ category: 'Arithmetic',
10
+ syntax: ['invmod(a, b)'],
11
+ description: 'Calculate the (modular) multiplicative inverse of a modulo b. Solution to the equation ax ≣ 1 (mod b)',
12
+ examples: ['invmod(8, 12)=NaN', 'invmod(7, 13)=2', 'math.invmod(15151, 15122)=10429'],
13
+ seealso: ['gcd', 'xgcd']
14
+ };
15
+ exports.invmodDocs = invmodDocs;
@@ -9,7 +9,7 @@ var forEachDocs = {
9
9
  category: 'Matrix',
10
10
  syntax: ['forEach(x, callback)'],
11
11
  description: 'Iterates over all elements of a matrix/array, and executes the given callback function.',
12
- examples: ['forEach([1, 2, 3], function(val) { console.log(val) })'],
12
+ examples: [],
13
13
  seealso: ['map', 'sort', 'filter']
14
14
  };
15
15
  exports.forEachDocs = forEachDocs;
@@ -152,7 +152,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
152
152
  var values = evalArgs.map(function (evalArg) {
153
153
  return evalArg(scope, args, context);
154
154
  });
155
- return fn.apply(void 0, (0, _toConsumableArray2["default"])(values));
155
+ return fn.apply(void 0, (0, _toConsumableArray2.default)(values));
156
156
  };
157
157
  }
158
158
  }
@@ -270,7 +270,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
270
270
  var customString;
271
271
  var name = this.fn.toString(options);
272
272
 
273
- if (options && (0, _typeof2["default"])(options.handler) === 'object' && (0, _object.hasOwnProperty)(options.handler, name)) {
273
+ if (options && (0, _typeof2.default)(options.handler) === 'object' && (0, _object.hasOwnProperty)(options.handler, name)) {
274
274
  // callback is a map of callback functions
275
275
  customString = options.handler[name](this, options);
276
276
  }
@@ -376,7 +376,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
376
376
 
377
377
  if (match[2] === undefined) {
378
378
  // no square brackets
379
- switch ((0, _typeof2["default"])(property)) {
379
+ switch ((0, _typeof2.default)(property)) {
380
380
  case 'string':
381
381
  latex += property;
382
382
  break;
@@ -436,7 +436,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
436
436
  FunctionNode.prototype.toTex = function (options) {
437
437
  var customTex;
438
438
 
439
- if (options && (0, _typeof2["default"])(options.handler) === 'object' && (0, _object.hasOwnProperty)(options.handler, this.name)) {
439
+ if (options && (0, _typeof2.default)(options.handler) === 'object' && (0, _object.hasOwnProperty)(options.handler, this.name)) {
440
440
  // callback is a map of callback functions
441
441
  customTex = options.handler[this.name](this, options);
442
442
  }
@@ -467,14 +467,14 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
467
467
  } // toTex property on the function itself
468
468
 
469
469
 
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')) {
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')) {
471
471
  // .toTex is a callback function
472
472
  latexConverter = math[this.name].toTex;
473
473
  }
474
474
 
475
475
  var customToTex;
476
476
 
477
- switch ((0, _typeof2["default"])(latexConverter)) {
477
+ switch ((0, _typeof2.default)(latexConverter)) {
478
478
  case 'function':
479
479
  // a callback function
480
480
  customToTex = latexConverter(this, options);
@@ -487,7 +487,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
487
487
 
488
488
  case 'object':
489
489
  // an object with different "converters" for different numbers of arguments
490
- switch ((0, _typeof2["default"])(latexConverter[args.length])) {
490
+ switch ((0, _typeof2.default)(latexConverter[args.length])) {
491
491
  case 'function':
492
492
  customToTex = latexConverter[args.length](this, options);
493
493
  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