mathjs 10.1.0 → 10.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/HISTORY.md +38 -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/deepEqual.md +6 -0
  53. package/docs/reference/functions/derivative.md +6 -0
  54. package/docs/reference/functions/det.md +6 -0
  55. package/docs/reference/functions/diag.md +6 -0
  56. package/docs/reference/functions/diff.md +6 -0
  57. package/docs/reference/functions/distance.md +6 -0
  58. package/docs/reference/functions/divide.md +6 -0
  59. package/docs/reference/functions/dot.md +6 -0
  60. package/docs/reference/functions/dotDivide.md +6 -0
  61. package/docs/reference/functions/dotMultiply.md +6 -0
  62. package/docs/reference/functions/dotPow.md +6 -0
  63. package/docs/reference/functions/eigs.md +6 -0
  64. package/docs/reference/functions/equal.md +6 -0
  65. package/docs/reference/functions/equalText.md +6 -0
  66. package/docs/reference/functions/erf.md +6 -0
  67. package/docs/reference/functions/evaluate.md +6 -0
  68. package/docs/reference/functions/exp.md +6 -0
  69. package/docs/reference/functions/expm.md +6 -0
  70. package/docs/reference/functions/expm1.md +6 -0
  71. package/docs/reference/functions/factorial.md +6 -0
  72. package/docs/reference/functions/filter.md +6 -0
  73. package/docs/reference/functions/fix.md +6 -0
  74. package/docs/reference/functions/flatten.md +6 -0
  75. package/docs/reference/functions/floor.md +6 -0
  76. package/docs/reference/functions/forEach.md +6 -0
  77. package/docs/reference/functions/format.md +6 -0
  78. package/docs/reference/functions/gamma.md +6 -0
  79. package/docs/reference/functions/gcd.md +6 -0
  80. package/docs/reference/functions/getMatrixDataType.md +6 -0
  81. package/docs/reference/functions/hasNumericValue.md +6 -0
  82. package/docs/reference/functions/help.md +6 -0
  83. package/docs/reference/functions/hex.md +6 -0
  84. package/docs/reference/functions/hypot.md +6 -0
  85. package/docs/reference/functions/identity.md +6 -0
  86. package/docs/reference/functions/im.md +6 -0
  87. package/docs/reference/functions/intersect.md +6 -0
  88. package/docs/reference/functions/inv.md +6 -0
  89. package/docs/reference/functions/invmod.md +6 -0
  90. package/docs/reference/functions/isInteger.md +6 -0
  91. package/docs/reference/functions/isNaN.md +6 -0
  92. package/docs/reference/functions/isNegative.md +6 -0
  93. package/docs/reference/functions/isNumeric.md +6 -0
  94. package/docs/reference/functions/isPositive.md +6 -0
  95. package/docs/reference/functions/isPrime.md +6 -0
  96. package/docs/reference/functions/isZero.md +6 -0
  97. package/docs/reference/functions/kldivergence.md +6 -0
  98. package/docs/reference/functions/kron.md +6 -0
  99. package/docs/reference/functions/larger.md +6 -0
  100. package/docs/reference/functions/largerEq.md +6 -0
  101. package/docs/reference/functions/lcm.md +6 -0
  102. package/docs/reference/functions/leafCount.md +52 -0
  103. package/docs/reference/functions/leftShift.md +6 -0
  104. package/docs/reference/functions/log.md +6 -0
  105. package/docs/reference/functions/log10.md +6 -0
  106. package/docs/reference/functions/log1p.md +6 -0
  107. package/docs/reference/functions/log2.md +6 -0
  108. package/docs/reference/functions/lsolve.md +6 -0
  109. package/docs/reference/functions/lsolveAll.md +6 -0
  110. package/docs/reference/functions/lup.md +6 -0
  111. package/docs/reference/functions/lusolve.md +6 -0
  112. package/docs/reference/functions/mad.md +6 -0
  113. package/docs/reference/functions/map.md +28 -5
  114. package/docs/reference/functions/matrixFromColumns.md +6 -0
  115. package/docs/reference/functions/matrixFromFunction.md +6 -0
  116. package/docs/reference/functions/matrixFromRows.md +6 -0
  117. package/docs/reference/functions/max.md +6 -0
  118. package/docs/reference/functions/mean.md +6 -0
  119. package/docs/reference/functions/median.md +6 -0
  120. package/docs/reference/functions/min.md +6 -0
  121. package/docs/reference/functions/mod.md +6 -0
  122. package/docs/reference/functions/mode.md +6 -0
  123. package/docs/reference/functions/multinomial.md +6 -0
  124. package/docs/reference/functions/multiply.md +6 -0
  125. package/docs/reference/functions/norm.md +6 -0
  126. package/docs/reference/functions/not.md +6 -0
  127. package/docs/reference/functions/nthRoot.md +6 -0
  128. package/docs/reference/functions/nthRoots.md +6 -0
  129. package/docs/reference/functions/numeric.md +6 -0
  130. package/docs/reference/functions/oct.md +6 -0
  131. package/docs/reference/functions/ones.md +6 -0
  132. package/docs/reference/functions/or.md +6 -0
  133. package/docs/reference/functions/parser.md +6 -0
  134. package/docs/reference/functions/partitionSelect.md +6 -0
  135. package/docs/reference/functions/permutations.md +6 -0
  136. package/docs/reference/functions/pickRandom.md +6 -0
  137. package/docs/reference/functions/pow.md +6 -0
  138. package/docs/reference/functions/print.md +6 -0
  139. package/docs/reference/functions/prod.md +6 -0
  140. package/docs/reference/functions/qr.md +6 -0
  141. package/docs/reference/functions/quantileSeq.md +6 -0
  142. package/docs/reference/functions/random.md +6 -0
  143. package/docs/reference/functions/randomInt.md +6 -0
  144. package/docs/reference/functions/range.md +6 -0
  145. package/docs/reference/functions/rationalize.md +7 -1
  146. package/docs/reference/functions/re.md +6 -0
  147. package/docs/reference/functions/reshape.md +7 -0
  148. package/docs/reference/functions/resize.md +6 -0
  149. package/docs/reference/functions/resolve.md +46 -0
  150. package/docs/reference/functions/rightArithShift.md +6 -0
  151. package/docs/reference/functions/rightLogShift.md +6 -0
  152. package/docs/reference/functions/rotate.md +6 -0
  153. package/docs/reference/functions/rotationMatrix.md +6 -0
  154. package/docs/reference/functions/round.md +6 -0
  155. package/docs/reference/functions/row.md +6 -0
  156. package/docs/reference/functions/sec.md +6 -0
  157. package/docs/reference/functions/sech.md +6 -0
  158. package/docs/reference/functions/setCartesian.md +6 -0
  159. package/docs/reference/functions/setDifference.md +6 -0
  160. package/docs/reference/functions/setDistinct.md +6 -0
  161. package/docs/reference/functions/setIntersect.md +6 -0
  162. package/docs/reference/functions/setIsSubset.md +6 -0
  163. package/docs/reference/functions/setMultiplicity.md +6 -0
  164. package/docs/reference/functions/setPowerset.md +6 -0
  165. package/docs/reference/functions/setSize.md +6 -0
  166. package/docs/reference/functions/setSymDifference.md +6 -0
  167. package/docs/reference/functions/setUnion.md +6 -0
  168. package/docs/reference/functions/sign.md +6 -0
  169. package/docs/reference/functions/simplify.md +47 -7
  170. package/docs/reference/functions/simplifyCore.md +50 -0
  171. package/docs/reference/functions/sin.md +6 -0
  172. package/docs/reference/functions/sinh.md +6 -0
  173. package/docs/reference/functions/size.md +6 -0
  174. package/docs/reference/functions/slu.md +6 -0
  175. package/docs/reference/functions/smaller.md +6 -0
  176. package/docs/reference/functions/smallerEq.md +6 -0
  177. package/docs/reference/functions/sort.md +6 -0
  178. package/docs/reference/functions/sqrt.md +6 -0
  179. package/docs/reference/functions/sqrtm.md +6 -0
  180. package/docs/reference/functions/square.md +6 -0
  181. package/docs/reference/functions/squeeze.md +6 -0
  182. package/docs/reference/functions/std.md +6 -0
  183. package/docs/reference/functions/stirlingS2.md +6 -0
  184. package/docs/reference/functions/subset.md +16 -2
  185. package/docs/reference/functions/subtract.md +6 -0
  186. package/docs/reference/functions/sum.md +6 -0
  187. package/docs/reference/functions/symbolicEqual.md +62 -0
  188. package/docs/reference/functions/tan.md +6 -0
  189. package/docs/reference/functions/tanh.md +6 -0
  190. package/docs/reference/functions/to.md +6 -0
  191. package/docs/reference/functions/trace.md +6 -0
  192. package/docs/reference/functions/transpose.md +6 -0
  193. package/docs/reference/functions/typeOf.md +6 -0
  194. package/docs/reference/functions/unaryMinus.md +6 -0
  195. package/docs/reference/functions/unaryPlus.md +6 -0
  196. package/docs/reference/functions/unequal.md +6 -0
  197. package/docs/reference/functions/usolve.md +6 -0
  198. package/docs/reference/functions/usolveAll.md +6 -0
  199. package/docs/reference/functions/variance.md +6 -0
  200. package/docs/reference/functions/xgcd.md +6 -0
  201. package/docs/reference/functions/xor.md +6 -0
  202. package/docs/reference/functions/zeros.md +6 -0
  203. package/docs/reference/functions.md +5 -1
  204. package/lib/browser/math.js +6 -6
  205. package/lib/browser/math.js.map +1 -1
  206. package/lib/cjs/core/create.js +4 -4
  207. package/lib/cjs/core/function/import.js +3 -3
  208. package/lib/cjs/core/function/typed.js +2 -2
  209. package/lib/cjs/defaultInstance.js +3 -3
  210. package/lib/cjs/entry/allFactoriesAny.js +1 -1
  211. package/lib/cjs/entry/allFactoriesNumber.js +1 -1
  212. package/lib/cjs/entry/configReadonly.js +1 -1
  213. package/lib/cjs/entry/dependenciesAny/dependenciesLeafCount.generated.js +23 -0
  214. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +3 -0
  215. package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +32 -0
  216. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +6 -0
  217. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +65 -0
  218. package/lib/cjs/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +29 -0
  219. package/lib/cjs/entry/dependenciesAny.generated.js +32 -0
  220. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +3 -0
  221. package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +32 -0
  222. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +6 -0
  223. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +65 -0
  224. package/lib/cjs/entry/dependenciesNumber.generated.js +16 -0
  225. package/lib/cjs/entry/impureFunctionsAny.generated.js +80 -34
  226. package/lib/cjs/entry/impureFunctionsNumber.generated.js +96 -64
  227. package/lib/cjs/entry/pureFunctionsAny.generated.js +62 -64
  228. package/lib/cjs/entry/pureFunctionsNumber.generated.js +46 -48
  229. package/lib/cjs/expression/Help.js +4 -0
  230. package/lib/cjs/expression/Parser.js +1 -1
  231. package/lib/cjs/expression/embeddedDocs/core/typed.js +1 -1
  232. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +247 -235
  233. package/lib/cjs/expression/embeddedDocs/function/algebra/leafCount.js +15 -0
  234. package/lib/cjs/expression/embeddedDocs/function/algebra/resolve.js +16 -0
  235. package/lib/cjs/expression/embeddedDocs/function/algebra/simplify.js +1 -1
  236. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +15 -0
  237. package/lib/cjs/expression/embeddedDocs/function/algebra/symbolicEqual.js +15 -0
  238. package/lib/cjs/expression/embeddedDocs/function/matrix/subset.js +2 -2
  239. package/lib/cjs/expression/node/FunctionNode.js +80 -61
  240. package/lib/cjs/expression/node/IndexNode.js +1 -1
  241. package/lib/cjs/expression/node/Node.js +3 -3
  242. package/lib/cjs/expression/node/ObjectNode.js +1 -1
  243. package/lib/cjs/expression/node/utils/access.js +1 -1
  244. package/lib/cjs/expression/node/utils/assign.js +1 -1
  245. package/lib/cjs/expression/parse.js +13 -13
  246. package/lib/cjs/factoriesAny.js +32 -0
  247. package/lib/cjs/factoriesNumber.js +16 -0
  248. package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
  249. package/lib/cjs/function/algebra/leafCount.js +66 -0
  250. package/lib/cjs/function/algebra/rationalize.js +24 -41
  251. package/lib/cjs/function/algebra/resolve.js +106 -0
  252. package/lib/cjs/function/algebra/simplify/simplifyConstant.js +5 -5
  253. package/lib/cjs/function/algebra/simplify/util.js +171 -33
  254. package/lib/cjs/function/algebra/simplify.js +588 -211
  255. package/lib/cjs/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +67 -43
  256. package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
  257. package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
  258. package/lib/cjs/function/algebra/symbolicEqual.js +88 -0
  259. package/lib/cjs/function/arithmetic/ceil.js +3 -3
  260. package/lib/cjs/function/arithmetic/floor.js +3 -3
  261. package/lib/cjs/function/arithmetic/invmod.js +1 -1
  262. package/lib/cjs/function/arithmetic/norm.js +1 -1
  263. package/lib/cjs/function/arithmetic/round.js +1 -1
  264. package/lib/cjs/function/matrix/eigs/complexEigs.js +13 -11
  265. package/lib/cjs/function/matrix/map.js +53 -15
  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/matrix/subset.js +15 -5
  269. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  270. package/lib/cjs/function/relational/compareNatural.js +6 -6
  271. package/lib/cjs/header.js +2 -2
  272. package/lib/cjs/plain/bignumber/index.js +1 -1
  273. package/lib/cjs/plain/number/combinations.js +18 -6
  274. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  275. package/lib/cjs/type/bignumber/function/bignumber.js +1 -1
  276. package/lib/cjs/type/boolean.js +2 -2
  277. package/lib/cjs/type/complex/Complex.js +14 -14
  278. package/lib/cjs/type/complex/function/complex.js +1 -1
  279. package/lib/cjs/type/fraction/Fraction.js +6 -6
  280. package/lib/cjs/type/fraction/function/fraction.js +1 -1
  281. package/lib/cjs/type/matrix/DenseMatrix.js +5 -5
  282. package/lib/cjs/type/matrix/SparseMatrix.js +2 -2
  283. package/lib/cjs/type/number.js +1 -1
  284. package/lib/cjs/type/string.js +2 -2
  285. package/lib/cjs/type/unit/Unit.js +8 -8
  286. package/lib/cjs/utils/customs.js +2 -2
  287. package/lib/cjs/utils/emitter.js +1 -1
  288. package/lib/cjs/utils/function.js +2 -2
  289. package/lib/cjs/utils/is.js +6 -6
  290. package/lib/cjs/utils/latex.js +3 -3
  291. package/lib/cjs/utils/lruQueue.js +1 -1
  292. package/lib/cjs/utils/map.js +3 -3
  293. package/lib/cjs/utils/object.js +2 -2
  294. package/lib/cjs/utils/snapshot.js +7 -7
  295. package/lib/cjs/utils/string.js +2 -2
  296. package/lib/cjs/version.js +1 -1
  297. package/lib/esm/entry/dependenciesAny/dependenciesLeafCount.generated.js +12 -0
  298. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
  299. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +18 -0
  300. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +4 -0
  301. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +40 -0
  302. package/lib/esm/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +16 -0
  303. package/lib/esm/entry/dependenciesAny.generated.js +4 -0
  304. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +2 -0
  305. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +18 -0
  306. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +4 -0
  307. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +40 -0
  308. package/lib/esm/entry/dependenciesNumber.generated.js +2 -0
  309. package/lib/esm/entry/impureFunctionsAny.generated.js +69 -27
  310. package/lib/esm/entry/impureFunctionsNumber.generated.js +83 -53
  311. package/lib/esm/entry/pureFunctionsAny.generated.js +49 -49
  312. package/lib/esm/entry/pureFunctionsNumber.generated.js +32 -32
  313. package/lib/esm/expression/Help.js +4 -0
  314. package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
  315. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +220 -212
  316. package/lib/esm/expression/embeddedDocs/function/algebra/leafCount.js +8 -0
  317. package/lib/esm/expression/embeddedDocs/function/algebra/resolve.js +9 -0
  318. package/lib/esm/expression/embeddedDocs/function/algebra/simplify.js +1 -1
  319. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +8 -0
  320. package/lib/esm/expression/embeddedDocs/function/algebra/symbolicEqual.js +8 -0
  321. package/lib/esm/expression/embeddedDocs/function/matrix/subset.js +2 -2
  322. package/lib/esm/expression/node/FunctionNode.js +70 -53
  323. package/lib/esm/factoriesAny.js +4 -0
  324. package/lib/esm/factoriesNumber.js +2 -0
  325. package/lib/esm/function/algebra/leafCount.js +59 -0
  326. package/lib/esm/function/algebra/rationalize.js +24 -40
  327. package/lib/esm/function/algebra/resolve.js +95 -0
  328. package/lib/esm/function/algebra/simplify/simplifyConstant.js +3 -3
  329. package/lib/esm/function/algebra/simplify/util.js +170 -34
  330. package/lib/esm/function/algebra/simplify.js +583 -206
  331. package/lib/esm/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +60 -44
  332. package/lib/esm/function/algebra/symbolicEqual.js +80 -0
  333. package/lib/esm/function/matrix/eigs/complexEigs.js +8 -6
  334. package/lib/esm/function/matrix/map.js +53 -15
  335. package/lib/esm/function/matrix/subset.js +15 -5
  336. package/lib/esm/plain/number/combinations.js +18 -6
  337. package/lib/esm/version.js +1 -1
  338. package/package.json +20 -15
  339. package/types/index.d.ts +52 -10
  340. package/lib/cjs/function/algebra/simplify/resolve.js +0 -76
  341. package/lib/esm/function/algebra/simplify/resolve.js +0 -67
@@ -11,10 +11,8 @@ var _factory = require("../../utils/factory.js");
11
11
 
12
12
  var _simplifyConstant = require("./simplify/simplifyConstant.js");
13
13
 
14
- var _simplifyCore = require("./simplify/simplifyCore.js");
15
-
16
14
  var name = 'rationalize';
17
- var dependencies = ['config', 'typed', 'equal', 'isZero', 'add', 'subtract', 'multiply', 'divide', 'pow', 'parse', 'simplify', '?bignumber', '?fraction', 'mathWithTransform', 'matrix', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'SymbolNode', 'ParenthesisNode'];
15
+ var dependencies = ['config', 'typed', 'equal', 'isZero', 'add', 'subtract', 'multiply', 'divide', 'pow', 'parse', 'simplifyCore', 'simplify', '?bignumber', '?fraction', 'mathWithTransform', 'matrix', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'SymbolNode', 'ParenthesisNode'];
18
16
  var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
19
17
  var config = _ref.config,
20
18
  typed = _ref.typed,
@@ -26,6 +24,7 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
26
24
  divide = _ref.divide,
27
25
  pow = _ref.pow,
28
26
  parse = _ref.parse,
27
+ simplifyCore = _ref.simplifyCore,
29
28
  simplify = _ref.simplify,
30
29
  fraction = _ref.fraction,
31
30
  bignumber = _ref.bignumber,
@@ -56,23 +55,6 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
56
55
  OperatorNode: OperatorNode,
57
56
  SymbolNode: SymbolNode
58
57
  });
59
- var simplifyCore = (0, _simplifyCore.createSimplifyCore)({
60
- equal: equal,
61
- isZero: isZero,
62
- add: add,
63
- subtract: subtract,
64
- multiply: multiply,
65
- divide: divide,
66
- pow: pow,
67
- AccessorNode: AccessorNode,
68
- ArrayNode: ArrayNode,
69
- ConstantNode: ConstantNode,
70
- FunctionNode: FunctionNode,
71
- IndexNode: IndexNode,
72
- ObjectNode: ObjectNode,
73
- OperatorNode: OperatorNode,
74
- ParenthesisNode: ParenthesisNode
75
- });
76
58
  /**
77
59
  * Transform a rationalizable expression in a rational fraction.
78
60
  * If rational fraction is one variable polynomial then converts
@@ -116,13 +98,13 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
116
98
  * @param {Object|boolean} optional scope of expression or true for already evaluated rational expression at input
117
99
  * @param {Boolean} detailed optional True if return an object, false if return expression node (default)
118
100
  *
119
- * @return {Object | Node} The rational polynomial of `expr` or na object
120
- * {Object}
121
- * {Expression Node} expression: node simplified expression
122
- * {Expression Node} numerator: simplified numerator of expression
123
- * {Expression Node | boolean} denominator: simplified denominator or false (if there is no denominator)
124
- * {Array} variables: variable names
125
- * {Array} coefficients: coefficients of numerator sorted by increased exponent
101
+ * @return {Object | Node} The rational polynomial of `expr` or an object
102
+ * `{expression, numerator, denominator, variables, coefficients}`, where
103
+ * `expression` is a `Node` with the node simplified expression,
104
+ * `numerator` is a `Node` with the simplified numerator of expression,
105
+ * `denominator` is a `Node` or `boolean` with the simplified denominator or `false` (if there is no denominator),
106
+ * `variables` is an array with variable names,
107
+ * and `coefficients` is an array with coefficients of numerator sorted by increased exponent
126
108
  * {Expression Node} node simplified expression
127
109
  *
128
110
  */
@@ -155,6 +137,12 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
155
137
  var polyRet = polynomial(expr, scope, true, setRules.firstRules); // Check if expression is a rationalizable polynomial
156
138
 
157
139
  var nVars = polyRet.variables.length;
140
+ var noExactFractions = {
141
+ exactFractions: false
142
+ };
143
+ var withExactFractions = {
144
+ exactFractions: true
145
+ };
158
146
  expr = polyRet.expression;
159
147
 
160
148
  if (nVars >= 1) {
@@ -165,18 +153,16 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
165
153
 
166
154
  var rules;
167
155
  var eDistrDiv = true;
168
- var redoInic = false;
169
- expr = simplify(expr, setRules.firstRules, {}, {
170
- exactFractions: false
171
- }); // Apply the initial rules, including succ div rules
156
+ var redoInic = false; // Apply the initial rules, including succ div rules:
172
157
 
158
+ expr = simplify(expr, setRules.firstRules, {}, noExactFractions);
173
159
  var s;
174
160
 
175
161
  while (true) {
176
- // Apply alternately successive division rules and distr.div.rules
162
+ // Alternate applying successive division rules and distr.div.rules
163
+ // until there are no more changes:
177
164
  rules = eDistrDiv ? setRules.distrDivRules : setRules.sucDivRules;
178
- expr = simplify(expr, rules); // until no more changes
179
-
165
+ expr = simplify(expr, rules, {}, withExactFractions);
180
166
  eDistrDiv = !eDistrDiv; // Swap between Distr.Div and Succ. Div. Rules
181
167
 
182
168
  s = expr.toString();
@@ -191,14 +177,11 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
191
177
 
192
178
  if (redoInic) {
193
179
  // Apply first rules again without succ div rules (if there are changes)
194
- expr = simplify(expr, setRules.firstRulesAgain, {}, {
195
- exactFractions: false
196
- });
197
- }
180
+ expr = simplify(expr, setRules.firstRulesAgain, {}, noExactFractions);
181
+ } // Apply final rules:
182
+
198
183
 
199
- expr = simplify(expr, setRules.finalRules, {}, {
200
- exactFractions: false
201
- }); // Apply final rules
184
+ expr = simplify(expr, setRules.finalRules, {}, noExactFractions);
202
185
  } // NVars >= 1
203
186
 
204
187
 
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createResolve = void 0;
7
+
8
+ var _map = require("../../utils/map.js");
9
+
10
+ var _is = require("../../utils/is.js");
11
+
12
+ var _factory = require("../../utils/factory.js");
13
+
14
+ var name = 'resolve';
15
+ var dependencies = ['parse', 'ConstantNode', 'FunctionNode', 'OperatorNode', 'ParenthesisNode'];
16
+ var createResolve = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
17
+ var parse = _ref.parse,
18
+ ConstantNode = _ref.ConstantNode,
19
+ FunctionNode = _ref.FunctionNode,
20
+ OperatorNode = _ref.OperatorNode,
21
+ ParenthesisNode = _ref.ParenthesisNode;
22
+
23
+ /**
24
+ * resolve(expr, scope) replaces variable nodes with their scoped values
25
+ *
26
+ * Syntax:
27
+ *
28
+ * resolve(expr, scope)
29
+ *
30
+ * Examples:
31
+ *
32
+ * math.resolve('x + y', {x:1, y:2}) // Node {1 + 2}
33
+ * math.resolve(math.parse('x+y'), {x:1, y:2}) // Node {1 + 2}
34
+ * math.simplify('x+y', {x:2, y:'x+x'}).toString() // "6"
35
+ *
36
+ * See also:
37
+ *
38
+ * simplify, evaluate
39
+ *
40
+ * @param {Node} node
41
+ * The expression tree to be simplified
42
+ * @param {Object} scope
43
+ * Scope specifying variables to be resolved
44
+ * @return {Node} Returns `node` with variables recursively substituted.
45
+ * @throws {ReferenceError}
46
+ * If there is a cyclic dependency among the variables in `scope`,
47
+ * resolution is impossible and a ReferenceError is thrown.
48
+ */
49
+ function resolve(node, scope) {
50
+ var within = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Set();
51
+
52
+ // note `within`:
53
+ // `within` is not documented, since it is for internal cycle
54
+ // detection only
55
+ if (!scope) {
56
+ return node;
57
+ }
58
+
59
+ if (!(0, _map.isMap)(scope)) {
60
+ scope = (0, _map.createMap)(scope);
61
+ }
62
+
63
+ if ((0, _is.isSymbolNode)(node)) {
64
+ if (within.has(node.name)) {
65
+ var variables = Array.from(within).join(', ');
66
+ throw new ReferenceError("recursive loop of variable definitions among {".concat(variables, "}"));
67
+ }
68
+
69
+ var value = scope.get(node.name);
70
+
71
+ if ((0, _is.isNode)(value)) {
72
+ var nextWithin = new Set(within);
73
+ nextWithin.add(node.name);
74
+ return resolve(value, scope, nextWithin);
75
+ } else if (typeof value === 'number') {
76
+ return parse(String(value));
77
+ } else if (value !== undefined) {
78
+ return new ConstantNode(value);
79
+ } else {
80
+ return node;
81
+ }
82
+ } else if ((0, _is.isOperatorNode)(node)) {
83
+ var args = node.args.map(function (arg) {
84
+ return resolve(arg, scope, within);
85
+ });
86
+ return new OperatorNode(node.op, node.fn, args, node.implicit);
87
+ } else if ((0, _is.isParenthesisNode)(node)) {
88
+ return new ParenthesisNode(resolve(node.content, scope, within));
89
+ } else if ((0, _is.isFunctionNode)(node)) {
90
+ var _args = node.args.map(function (arg) {
91
+ return resolve(arg, scope, within);
92
+ });
93
+
94
+ return new FunctionNode(node.name, _args);
95
+ } // Otherwise just recursively resolve any children (might also work
96
+ // for some of the above special cases)
97
+
98
+
99
+ return node.map(function (child) {
100
+ return resolve(child, scope, within);
101
+ });
102
+ }
103
+
104
+ return resolve;
105
+ });
106
+ exports.createResolve = createResolve;
@@ -17,7 +17,7 @@ var _util = require("./util.js");
17
17
 
18
18
  var _noop = require("../../../utils/noop.js");
19
19
 
20
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
20
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
21
21
 
22
22
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23
23
 
@@ -348,7 +348,7 @@ var createSimplifyConstant = /* #__PURE__ */(0, _factory.factory)(name, dependen
348
348
  return node;
349
349
 
350
350
  case 'ConstantNode':
351
- switch ((0, _typeof2["default"])(node.value)) {
351
+ switch ((0, _typeof2.default)(node.value)) {
352
352
  case 'number':
353
353
  return _toNumber(node.value, options);
354
354
 
@@ -419,13 +419,13 @@ var createSimplifyConstant = /* #__PURE__ */(0, _factory.factory)(name, dependen
419
419
  } else {
420
420
  res = makeNode(_args);
421
421
  }
422
- } else if (isAssociative(node)) {
423
- _args = allChildren(node);
422
+ } else if (isAssociative(node, options.context)) {
423
+ _args = allChildren(node, options.context);
424
424
  _args = _args.map(function (arg) {
425
425
  return foldFraction(arg, options);
426
426
  });
427
427
 
428
- if (isCommutative(fn)) {
428
+ if (isCommutative(fn, options.context)) {
429
429
  // commutative binary operator
430
430
  var consts = [];
431
431
  var vars = [];
@@ -1,16 +1,24 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.createUtil = void 0;
7
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
8
12
  var _is = require("../../../utils/is.js");
9
13
 
10
14
  var _factory = require("../../../utils/factory.js");
11
15
 
12
16
  var _object = require("../../../utils/object.js");
13
17
 
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
+
14
22
  var name = 'simplifyUtil';
15
23
  var dependencies = ['FunctionNode', 'OperatorNode', 'SymbolNode'];
16
24
  var createUtil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
@@ -21,41 +29,166 @@ var createUtil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
21
29
  // e.g. multiply is not commutative for matrices
22
30
  // The properties should be calculated from an argument to simplify, or possibly something in math.config
23
31
  // the other option is for typed() to specify a return type so that we can evaluate the type of arguments
24
- var commutative = {
25
- add: true,
26
- multiply: true
32
+
33
+ /* So that properties of an operator fit on one line: */
34
+ var T = true;
35
+ var F = false;
36
+ var defaultName = 'defaultF';
37
+ var defaultContext = {
38
+ /* */
39
+ add: {
40
+ trivial: T,
41
+ total: T,
42
+ commutative: T,
43
+ associative: T
44
+ },
45
+
46
+ /**/
47
+ unaryPlus: {
48
+ trivial: T,
49
+ total: T,
50
+ commutative: T,
51
+ associative: T
52
+ },
53
+
54
+ /* */
55
+ subtract: {
56
+ trivial: F,
57
+ total: T,
58
+ commutative: F,
59
+ associative: F
60
+ },
61
+
62
+ /* */
63
+ multiply: {
64
+ trivial: T,
65
+ total: T,
66
+ commutative: T,
67
+ associative: T
68
+ },
69
+
70
+ /* */
71
+ divide: {
72
+ trivial: F,
73
+ total: T,
74
+ commutative: F,
75
+ associative: F
76
+ },
77
+
78
+ /* */
79
+ paren: {
80
+ trivial: T,
81
+ total: T,
82
+ commutative: T,
83
+ associative: F
84
+ },
85
+
86
+ /* */
87
+ defaultF: {
88
+ trivial: F,
89
+ total: T,
90
+ commutative: F,
91
+ associative: F
92
+ }
93
+ };
94
+ var realContext = {
95
+ divide: {
96
+ total: F
97
+ },
98
+ log: {
99
+ total: F
100
+ }
27
101
  };
28
- var associative = {
29
- add: true,
30
- multiply: true
102
+ var positiveContext = {
103
+ subtract: {
104
+ total: F
105
+ },
106
+ abs: {
107
+ trivial: T
108
+ },
109
+ log: {
110
+ total: T
111
+ }
31
112
  };
32
113
 
33
- function isCommutative(node, context) {
34
- if (!(0, _is.isOperatorNode)(node)) {
35
- return true;
114
+ function hasProperty(nodeOrName, property) {
115
+ var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultContext;
116
+ var name = defaultName;
117
+
118
+ if (typeof nodeOrName === 'string') {
119
+ name = nodeOrName;
120
+ } else if ((0, _is.isOperatorNode)(nodeOrName)) {
121
+ name = nodeOrName.fn.toString();
122
+ } else if ((0, _is.isFunctionNode)(nodeOrName)) {
123
+ name = nodeOrName.name;
124
+ } else if ((0, _is.isParenthesisNode)(nodeOrName)) {
125
+ name = 'paren';
36
126
  }
37
127
 
38
- var name = node.fn.toString();
128
+ if ((0, _object.hasOwnProperty)(context, name)) {
129
+ var properties = context[name];
130
+
131
+ if ((0, _object.hasOwnProperty)(properties, property)) {
132
+ return properties[property];
133
+ }
39
134
 
40
- if (context && (0, _object.hasOwnProperty)(context, name) && (0, _object.hasOwnProperty)(context[name], 'commutative')) {
41
- return context[name].commutative;
135
+ if ((0, _object.hasOwnProperty)(defaultContext, name)) {
136
+ return defaultContext[name][property];
137
+ }
42
138
  }
43
139
 
44
- return commutative[name] || false;
45
- }
140
+ if ((0, _object.hasOwnProperty)(context, defaultName)) {
141
+ var _properties = context[defaultName];
142
+
143
+ if ((0, _object.hasOwnProperty)(_properties, property)) {
144
+ return _properties[property];
145
+ }
46
146
 
47
- function isAssociative(node, context) {
48
- if (!(0, _is.isOperatorNode)(node)) {
49
- return false;
147
+ return defaultContext[defaultName][property];
50
148
  }
149
+ /* name not found in context and context has no global default */
150
+
151
+ /* So use default context. */
51
152
 
52
- var name = node.fn.toString();
53
153
 
54
- if (context && (0, _object.hasOwnProperty)(context, name) && (0, _object.hasOwnProperty)(context[name], 'associative')) {
55
- return context[name].associative;
154
+ if ((0, _object.hasOwnProperty)(defaultContext, name)) {
155
+ var _properties2 = defaultContext[name];
156
+
157
+ if ((0, _object.hasOwnProperty)(_properties2, property)) {
158
+ return _properties2[property];
159
+ }
160
+ }
161
+
162
+ return defaultContext[defaultName][property];
163
+ }
164
+
165
+ function isCommutative(node) {
166
+ var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultContext;
167
+ return hasProperty(node, 'commutative', context);
168
+ }
169
+
170
+ function isAssociative(node) {
171
+ var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultContext;
172
+ return hasProperty(node, 'associative', context);
173
+ }
174
+ /**
175
+ * Merge the given contexts, with primary overriding secondary
176
+ * wherever they might conflict
177
+ */
178
+
179
+
180
+ function mergeContext(primary, secondary) {
181
+ var merged = _objectSpread({}, primary);
182
+
183
+ for (var prop in secondary) {
184
+ if ((0, _object.hasOwnProperty)(primary, prop)) {
185
+ merged[prop] = _objectSpread(_objectSpread({}, secondary[prop]), primary[prop]);
186
+ } else {
187
+ merged[prop] = secondary[prop];
188
+ }
56
189
  }
57
190
 
58
- return associative[name] || false;
191
+ return merged;
59
192
  }
60
193
  /**
61
194
  * Flatten all associative operators in an expression tree.
@@ -63,15 +196,15 @@ var createUtil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
63
196
  */
64
197
 
65
198
 
66
- function flatten(node) {
199
+ function flatten(node, context) {
67
200
  if (!node.args || node.args.length === 0) {
68
201
  return node;
69
202
  }
70
203
 
71
- node.args = allChildren(node);
204
+ node.args = allChildren(node, context);
72
205
 
73
206
  for (var i = 0; i < node.args.length; i++) {
74
- flatten(node.args[i]);
207
+ flatten(node.args[i], context);
75
208
  }
76
209
  }
77
210
  /**
@@ -80,7 +213,7 @@ var createUtil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
80
213
  */
81
214
 
82
215
 
83
- function allChildren(node) {
216
+ function allChildren(node, context) {
84
217
  var op;
85
218
  var children = [];
86
219
 
@@ -96,7 +229,7 @@ var createUtil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
96
229
  }
97
230
  };
98
231
 
99
- if (isAssociative(node)) {
232
+ if (isAssociative(node, context)) {
100
233
  op = node.op;
101
234
  findChildren(node);
102
235
  return children;
@@ -109,7 +242,7 @@ var createUtil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
109
242
  */
110
243
 
111
244
 
112
- function unflattenr(node) {
245
+ function unflattenr(node, context) {
113
246
  if (!node.args || node.args.length === 0) {
114
247
  return;
115
248
  }
@@ -118,10 +251,10 @@ var createUtil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
118
251
  var l = node.args.length;
119
252
 
120
253
  for (var i = 0; i < l; i++) {
121
- unflattenr(node.args[i]);
254
+ unflattenr(node.args[i], context);
122
255
  }
123
256
 
124
- if (l > 2 && isAssociative(node)) {
257
+ if (l > 2 && isAssociative(node, context)) {
125
258
  var curnode = node.args.pop();
126
259
 
127
260
  while (node.args.length > 0) {
@@ -136,7 +269,7 @@ var createUtil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
136
269
  */
137
270
 
138
271
 
139
- function unflattenl(node) {
272
+ function unflattenl(node, context) {
140
273
  if (!node.args || node.args.length === 0) {
141
274
  return;
142
275
  }
@@ -145,10 +278,10 @@ var createUtil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
145
278
  var l = node.args.length;
146
279
 
147
280
  for (var i = 0; i < l; i++) {
148
- unflattenl(node.args[i]);
281
+ unflattenl(node.args[i], context);
149
282
  }
150
283
 
151
- if (l > 2 && isAssociative(node)) {
284
+ if (l > 2 && isAssociative(node, context)) {
152
285
  var curnode = node.args.shift();
153
286
 
154
287
  while (node.args.length > 0) {
@@ -178,12 +311,17 @@ var createUtil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
178
311
 
179
312
  return {
180
313
  createMakeNodeFunction: createMakeNodeFunction,
314
+ hasProperty: hasProperty,
181
315
  isCommutative: isCommutative,
182
316
  isAssociative: isAssociative,
317
+ mergeContext: mergeContext,
183
318
  flatten: flatten,
184
319
  allChildren: allChildren,
185
320
  unflattenr: unflattenr,
186
- unflattenl: unflattenl
321
+ unflattenl: unflattenl,
322
+ defaultContext: defaultContext,
323
+ realContext: realContext,
324
+ positiveContext: positiveContext
187
325
  };
188
326
  });
189
327
  exports.createUtil = createUtil;