mathjs 10.1.0 → 10.3.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,7 +1,8 @@
1
- import { isAccessorNode, isArrayNode, isConstantNode, isFunctionNode, isIndexNode, isObjectNode, isOperatorNode, isParenthesisNode, isSymbolNode } from '../../../utils/is.js';
2
- import { factory } from '../../../utils/factory.js';
1
+ import { isAccessorNode, isArrayNode, isConstantNode, isFunctionNode, isIndexNode, isObjectNode, isOperatorNode } from '../../utils/is.js';
2
+ import { createUtil } from './simplify/util.js';
3
+ import { factory } from '../../utils/factory.js';
3
4
  var name = 'simplifyCore';
4
- var dependencies = ['equal', 'isZero', 'add', 'subtract', 'multiply', 'divide', 'pow', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'ParenthesisNode'];
5
+ var dependencies = ['equal', 'isZero', 'add', 'subtract', 'multiply', 'divide', 'pow', 'AccessorNode', 'ArrayNode', 'ConstantNode', 'FunctionNode', 'IndexNode', 'ObjectNode', 'OperatorNode', 'ParenthesisNode', 'SymbolNode'];
5
6
  export var createSimplifyCore = /* #__PURE__ */factory(name, dependencies, _ref => {
6
7
  var {
7
8
  equal,
@@ -18,16 +19,19 @@ export var createSimplifyCore = /* #__PURE__ */factory(name, dependencies, _ref
18
19
  IndexNode,
19
20
  ObjectNode,
20
21
  OperatorNode,
21
- ParenthesisNode
22
+ ParenthesisNode,
23
+ SymbolNode
22
24
  } = _ref;
23
25
  var node0 = new ConstantNode(0);
24
26
  var node1 = new ConstantNode(1);
25
-
26
- function mapSimplifyCore(nodeArray) {
27
- return nodeArray.map(simplifyCore).map(function (arg) {
28
- return isParenthesisNode(arg) ? arg.content : arg;
29
- });
30
- }
27
+ var {
28
+ hasProperty,
29
+ isCommutative
30
+ } = createUtil({
31
+ FunctionNode,
32
+ OperatorNode,
33
+ SymbolNode
34
+ });
31
35
  /**
32
36
  * simplifyCore() performs single pass simplification suitable for
33
37
  * applications requiring ultimate performance. In contrast, simplify()
@@ -36,31 +40,53 @@ export var createSimplifyCore = /* #__PURE__ */factory(name, dependencies, _ref
36
40
  *
37
41
  * Syntax:
38
42
  *
39
- * simplify.simplifyCore(expr)
43
+ * simplifyCore(expr)
40
44
  *
41
45
  * Examples:
42
46
  *
43
47
  * const f = math.parse('2 * 1 * x ^ (2 - 1)')
44
- * math.simplify.simpifyCore(f) // Node {2 * x}
45
- * math.simplify('2 * 1 * x ^ (2 - 1)', [math.simplify.simpifyCore]) // Node {2 * x}
48
+ * math.simpifyCore(f) // Node {2 * x}
49
+ * math.simplify('2 * 1 * x ^ (2 - 1)', [math.simplifyCore]) // Node {2 * x}
46
50
  *
47
51
  * See also:
48
52
  *
49
- * derivative
53
+ * simplify, resolve, derivative
50
54
  *
51
55
  * @param {Node} node
52
56
  * The expression to be simplified
57
+ * @param {Object} options
58
+ * Simplification options, as per simplify()
59
+ * @return {Node} Returns expression with basic simplifications applied
53
60
  */
54
61
 
62
+ function simplifyCore(node, options) {
63
+ var context = options ? options.context : undefined;
55
64
 
56
- function simplifyCore(node) {
57
- if (isOperatorNode(node) && node.isUnary()) {
58
- var a0 = simplifyCore(node.args[0]);
65
+ if (hasProperty(node, 'trivial', context)) {
66
+ // This node does nothing if it has only one argument, so if so,
67
+ // return that argument simplified
68
+ if (isFunctionNode(node) && node.args.length === 1) {
69
+ return simplifyCore(node.args[0], options);
70
+ } // For other node types, we try the generic methods
59
71
 
60
- if (node.op === '+') {
61
- // unary plus
62
- return a0;
72
+
73
+ var simpChild = false;
74
+ var childCount = 0;
75
+ node.forEach(c => {
76
+ ++childCount;
77
+
78
+ if (childCount === 1) {
79
+ simpChild = simplifyCore(c, options);
80
+ }
81
+ });
82
+
83
+ if (childCount === 1) {
84
+ return simpChild;
63
85
  }
86
+ }
87
+
88
+ if (isOperatorNode(node) && node.isUnary()) {
89
+ var a0 = simplifyCore(node.args[0], options);
64
90
 
65
91
  if (node.op === '-') {
66
92
  // unary minus
@@ -75,9 +101,9 @@ export var createSimplifyCore = /* #__PURE__ */factory(name, dependencies, _ref
75
101
  return new OperatorNode(node.op, node.fn, [a0]);
76
102
  }
77
103
  } else if (isOperatorNode(node) && node.isBinary()) {
78
- var _a = simplifyCore(node.args[0]);
104
+ var _a = simplifyCore(node.args[0], options);
79
105
 
80
- var a1 = simplifyCore(node.args[1]);
106
+ var a1 = simplifyCore(node.args[1], options);
81
107
 
82
108
  if (node.op === '+') {
83
109
  if (isConstantNode(_a)) {
@@ -113,7 +139,7 @@ export var createSimplifyCore = /* #__PURE__ */factory(name, dependencies, _ref
113
139
  }
114
140
 
115
141
  if (isOperatorNode(a1) && a1.isUnary() && a1.op === '-') {
116
- return simplifyCore(new OperatorNode('+', 'add', [_a, a1.args[0]]));
142
+ return simplifyCore(new OperatorNode('+', 'add', [_a, a1.args[0]]), options);
117
143
  }
118
144
 
119
145
  return new OperatorNode(node.op, node.fn, [_a, a1]);
@@ -134,7 +160,7 @@ export var createSimplifyCore = /* #__PURE__ */factory(name, dependencies, _ref
134
160
  return node0;
135
161
  } else if (equal(a1.value, 1)) {
136
162
  return _a;
137
- } else if (isOperatorNode(_a) && _a.isBinary() && _a.op === node.op) {
163
+ } else if (isOperatorNode(_a) && _a.isBinary() && _a.op === node.op && isCommutative(node, context)) {
138
164
  var a00 = _a.args[0];
139
165
 
140
166
  if (isConstantNode(a00)) {
@@ -143,7 +169,11 @@ export var createSimplifyCore = /* #__PURE__ */factory(name, dependencies, _ref
143
169
  }
144
170
  }
145
171
 
146
- return new OperatorNode(node.op, node.fn, [a1, _a], node.implicit); // constants on left
172
+ if (isCommutative(node, context)) {
173
+ return new OperatorNode(node.op, node.fn, [a1, _a], node.implicit); // constants on left
174
+ } else {
175
+ return new OperatorNode(node.op, node.fn, [_a, a1], node.implicit);
176
+ }
147
177
  }
148
178
 
149
179
  return new OperatorNode(node.op, node.fn, [_a, a1], node.implicit);
@@ -179,33 +209,19 @@ export var createSimplifyCore = /* #__PURE__ */factory(name, dependencies, _ref
179
209
 
180
210
  return new OperatorNode(node.op, node.fn, [_a, a1]);
181
211
  }
182
- } else if (isParenthesisNode(node)) {
183
- var c = simplifyCore(node.content);
184
-
185
- if (isParenthesisNode(c) || isSymbolNode(c) || isConstantNode(c)) {
186
- return c;
187
- }
188
-
189
- return new ParenthesisNode(c);
190
212
  } else if (isFunctionNode(node)) {
191
- return new FunctionNode(simplifyCore(node.fn), mapSimplifyCore(node.args));
213
+ return new FunctionNode(simplifyCore(node.fn), node.args.map(n => simplifyCore(n, options)));
192
214
  } else if (isArrayNode(node)) {
193
- return new ArrayNode(mapSimplifyCore(node.items));
215
+ return new ArrayNode(node.items.map(n => simplifyCore(n, options)));
194
216
  } else if (isAccessorNode(node)) {
195
- var obj = mapSimplifyCore(node.object);
196
-
197
- if (isParenthesisNode(obj)) {
198
- obj = obj.content;
199
- }
200
-
201
- return new AccessorNode(obj, simplifyCore(node.index));
217
+ return new AccessorNode(simplifyCore(node.object, options), simplifyCore(node.index, options));
202
218
  } else if (isIndexNode(node)) {
203
- return new IndexNode(mapSimplifyCore(node.dimensions));
219
+ return new IndexNode(node.dimensions.map(n => simplifyCore(n, options)));
204
220
  } else if (isObjectNode(node)) {
205
221
  var newProps = {};
206
222
 
207
223
  for (var prop in node.properties) {
208
- newProps[prop] = simplifyCore(node.properties[prop]);
224
+ newProps[prop] = simplifyCore(node.properties[prop], options);
209
225
  }
210
226
 
211
227
  return new ObjectNode(newProps);
@@ -0,0 +1,80 @@
1
+ import { isConstantNode } from '../../utils/is.js';
2
+ import { factory } from '../../utils/factory.js';
3
+ var name = 'symbolicEqual';
4
+ var dependencies = ['parse', 'simplify', 'typed', 'OperatorNode'];
5
+ export var createSymbolicEqual = /* #__PURE__ */factory(name, dependencies, _ref => {
6
+ var {
7
+ parse,
8
+ simplify,
9
+ typed,
10
+ OperatorNode
11
+ } = _ref;
12
+
13
+ /**
14
+ * Attempts to determine if two expressions are symbolically equal, i.e.
15
+ * one is the result of valid algebraic manipulations on the other.
16
+ * Currently, this simply checks if the difference of the two expressions
17
+ * simplifies down to 0. So there are two important caveats:
18
+ * 1. whether two expressions are symbolically equal depends on the
19
+ * manipulations allowed. Therefore, this function takes an optional
20
+ * third argument, which are the options that control the behavior
21
+ * as documented for the `simplify()` function.
22
+ * 2. it is in general intractable to find the minimal simplification of
23
+ * an arbitrarily complicated expression. So while a `true` value
24
+ * of `symbolicEqual` ensures that the two expressions can be manipulated
25
+ * to match each other, a `false` value does not absolutely rule this out.
26
+ *
27
+ * Syntax:
28
+ *
29
+ * symbolicEqual(expr1, expr2)
30
+ * symbolicEqual(expr1, expr2, options)
31
+ *
32
+ * Examples:
33
+ *
34
+ * symbolicEqual('x*y', 'y*x') // true
35
+ * symbolicEqual('x*y', 'y*x', {context: {multiply: {commutative: false}}})
36
+ * //false
37
+ * symbolicEqual('x/y', '(y*x^(-1))^(-1)') // true
38
+ * symbolicEqual('abs(x)','x') // false
39
+ * symbolicEqual('abs(x)','x', simplify.positiveContext) // true
40
+ *
41
+ * See also:
42
+ *
43
+ * simplify, evaluate
44
+ *
45
+ * @param {Node|string} expr1 The first expression to compare
46
+ * @param {Node|string} expr2 The second expression to compare
47
+ * @param {Object} [options] Optional option object, passed to simplify
48
+ * @returns {boolean}
49
+ * Returns true if a valid manipulation making the expressions equal
50
+ * is found.
51
+ */
52
+ return typed(name, {
53
+ 'string, string': function stringString(s1, s2) {
54
+ return this(parse(s1), parse(s2), {});
55
+ },
56
+ 'string, string, Object': function stringStringObject(s1, s2, options) {
57
+ return this(parse(s1), parse(s2), options);
58
+ },
59
+ 'Node, string': function NodeString(e1, s2) {
60
+ return this(e1, parse(s2), {});
61
+ },
62
+ 'Node, string, Object': function NodeStringObject(e1, s2, options) {
63
+ return this(e1, parse(s2), options);
64
+ },
65
+ 'string, Node': function stringNode(s1, e2) {
66
+ return this(parse(s1), e2, {});
67
+ },
68
+ 'string, Node, Object': function stringNodeObject(s1, e2, options) {
69
+ return this(parse(s1), e2, options);
70
+ },
71
+ 'Node, Node': function NodeNode(e1, e2) {
72
+ return this(e1, e2, {});
73
+ },
74
+ 'Node, Node, Object': function NodeNodeObject(e1, e2, options) {
75
+ var diff = new OperatorNode('-', 'subtract', [e1, e2]);
76
+ var simplified = simplify(diff, {}, options);
77
+ return isConstantNode(simplified) && !simplified.value;
78
+ }
79
+ });
80
+ });
@@ -84,8 +84,9 @@ export function createComplexEigs(_ref) {
84
84
  function balance(arr, N, prec, type, findVectors) {
85
85
  var big = type === 'BigNumber';
86
86
  var cplx = type === 'Complex';
87
- var zero = big ? bignumber(0) : cplx ? complex(0) : 0;
88
- var one = big ? bignumber(1) : cplx ? complex(1) : 1; // base of the floating-point arithmetic
87
+ var realzero = big ? bignumber(0) : 0;
88
+ var one = big ? bignumber(1) : cplx ? complex(1) : 1;
89
+ var realone = big ? bignumber(1) : 1; // base of the floating-point arithmetic
89
90
 
90
91
  var radix = big ? bignumber(10) : 2;
91
92
  var radixSq = multiplyScalar(radix, radix); // the diagonal transformation matrix R
@@ -106,12 +107,13 @@ export function createComplexEigs(_ref) {
106
107
  for (var i = 0; i < N; i++) {
107
108
  // compute the taxicab norm of i-th column and row
108
109
  // TODO optimize for complex numbers
109
- var colNorm = zero;
110
- var rowNorm = zero;
110
+ var colNorm = realzero;
111
+ var rowNorm = realzero;
111
112
 
112
113
  for (var j = 0; j < N; j++) {
113
114
  if (i === j) continue;
114
- var c = abs(arr[i][j]);
115
+ var c = abs(arr[i][j]); // should be real
116
+
115
117
  colNorm = addScalar(colNorm, c);
116
118
  rowNorm = addScalar(rowNorm, c);
117
119
  }
@@ -120,7 +122,7 @@ export function createComplexEigs(_ref) {
120
122
  // find integer power closest to balancing the matrix
121
123
  // (we want to scale only by integer powers of radix,
122
124
  // so that we don't lose any precision due to round-off)
123
- var f = one;
125
+ var f = realone;
124
126
  var _c = colNorm;
125
127
  var rowDivRadix = divideScalar(rowNorm, radix);
126
128
  var rowMulRadix = multiplyScalar(rowNorm, radix);
@@ -8,8 +8,15 @@ export var createMap = /* #__PURE__ */factory(name, dependencies, _ref => {
8
8
  } = _ref;
9
9
 
10
10
  /**
11
- * Create a new matrix or array with the results of the callback function executed on
12
- * each entry of the matrix/array.
11
+ * Create a new matrix or array with the results of a callback function executed on
12
+ * each entry of a given matrix/array.
13
+ *
14
+ * For each entry of the input, the callback is invoked with three arguments:
15
+ * the value of the entry, the index at which that entry occurs, and the full
16
+ * matrix/array being traversed. Note that because the matrix/array might be
17
+ * multidimensional, the "index" argument is always an array of numbers giving
18
+ * the index in each dimension. This is true even for vectors: the "index"
19
+ * argument is an array of length 1, rather than simply a number.
13
20
  *
14
21
  * Syntax:
15
22
  *
@@ -21,15 +28,25 @@ export var createMap = /* #__PURE__ */factory(name, dependencies, _ref => {
21
28
  * return value * value
22
29
  * }) // returns [1, 4, 9]
23
30
  *
31
+ * // The calling convention for the callback can cause subtleties:
32
+ * math.map([1, 2, 3], math.format)
33
+ * // throws TypeError: map attempted to call 'format(1,[0])' but argument 2 of type Array does not match expected type number or function or Object or string or boolean
34
+ * // [This happens because `format` _can_ take a second argument,
35
+ * // but its semantics don't match that of the 2nd argument `map` provides]
36
+ *
37
+ * // To avoid this error, use a function that takes exactly the
38
+ * // desired arguments:
39
+ * math.map([1, 2, 3], x => math.format(x)) // returns ['1', '2', '3']
40
+ *
24
41
  * See also:
25
42
  *
26
43
  * filter, forEach, sort
27
44
  *
28
- * @param {Matrix | Array} x The matrix to iterate on.
29
- * @param {Function} callback The callback method is invoked with three
30
- * parameters: the value of the element, the index
31
- * of the element, and the matrix being traversed.
32
- * @return {Matrix | array} Transformed map of x
45
+ * @param {Matrix | Array} x The input to iterate on.
46
+ * @param {Function} callback
47
+ * The function to call (as described above) on each entry of the input
48
+ * @return {Matrix | array}
49
+ * Transformed map of x; always has the same type and shape as x
33
50
  */
34
51
  return typed(name, {
35
52
  'Array, function': _map,
@@ -57,14 +74,35 @@ function _map(array, callback) {
57
74
  return recurse(child, index.concat(i));
58
75
  });
59
76
  } else {
60
- // invoke the callback function with the right number of arguments
61
- if (args === 1) {
62
- return callback(value);
63
- } else if (args === 2) {
64
- return callback(value, index);
65
- } else {
66
- // 3 or -1
67
- return callback(value, index, array);
77
+ try {
78
+ // invoke the callback function with the right number of arguments
79
+ if (args === 1) {
80
+ return callback(value);
81
+ } else if (args === 2) {
82
+ return callback(value, index);
83
+ } else {
84
+ // 3 or -1
85
+ return callback(value, index, array);
86
+ }
87
+ } catch (err) {
88
+ // But maybe the arguments still weren't right
89
+ if (err instanceof TypeError && 'data' in err && err.data.category === 'wrongType') {
90
+ var newmsg = "map attempted to call '".concat(err.data.fn, "(").concat(value);
91
+ var indexString = JSON.stringify(index);
92
+
93
+ if (args === 2) {
94
+ newmsg += ',' + indexString;
95
+ } else if (args !== 1) {
96
+ newmsg += ",".concat(indexString, ",").concat(array);
97
+ }
98
+
99
+ newmsg += ")' but argument ".concat(err.data.index + 1, " of type ");
100
+ newmsg += "".concat(err.data.actual, " does not match expected type ");
101
+ newmsg += err.data.expected.join(' or ');
102
+ throw new TypeError(newmsg);
103
+ }
104
+
105
+ throw err;
68
106
  }
69
107
  }
70
108
  };
@@ -28,16 +28,26 @@ export var createSubset = /* #__PURE__ */factory(name, dependencies, _ref => {
28
28
  *
29
29
  * // replace a subset
30
30
  * const e = []
31
- * const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]]
31
+ * const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]] and e = [[5, 0, 6]]
32
32
  * const g = math.subset(f, math.index(1, 1), 7, 0) // g = [[5, 6], [0, 7]]
33
33
  *
34
+ * // get submatrix using ranges
35
+ * const M = [
36
+ * [1,2,3],
37
+ * [4,5,6],
38
+ * [7,8,9]
39
+ * ]
40
+ * math.subset(M, math.index(math.range(0,2), math.range(0,3))) // [[1,2,3],[4,5,6]]
41
+ *
34
42
  * See also:
35
43
  *
36
44
  * size, resize, squeeze, index
37
45
  *
38
46
  * @param {Array | Matrix | string} matrix An array, matrix, or string
39
- * @param {Index} index An index containing ranges for each
40
- * dimension
47
+ * @param {Index} index
48
+ * For each dimension of the target, specifies an index or a list of
49
+ * indices to fetch or set. `subset` uses the cartesian product of
50
+ * the indices specified in each dimension.
41
51
  * @param {*} [replacement] An array, matrix, or scalar.
42
52
  * If provided, the subset is replaced with replacement.
43
53
  * If not provided, the subset is returned
@@ -80,7 +90,7 @@ export var createSubset = /* #__PURE__ */factory(name, dependencies, _ref => {
80
90
  /**
81
91
  * Retrieve a subset of a string
82
92
  * @param {string} str string from which to get a substring
83
- * @param {Index} index An index containing ranges for each dimension
93
+ * @param {Index} index An index or list of indices (character positions)
84
94
  * @returns {string} substring
85
95
  * @private
86
96
  */
@@ -109,7 +119,7 @@ function _getSubstring(str, index) {
109
119
  /**
110
120
  * Replace a substring in a string
111
121
  * @param {string} str string to be replaced
112
- * @param {Index} index An index containing ranges for each dimension
122
+ * @param {Index} index An index or list of indices (character positions)
113
123
  * @param {string} replacement Replacement string
114
124
  * @param {string} [defaultValue] Default value to be uses when resizing
115
125
  * the string. is ' ' by default
@@ -14,14 +14,26 @@ export function combinationsNumber(n, k) {
14
14
  }
15
15
 
16
16
  var nMinusk = n - k;
17
- var prodrange;
17
+ var answer = 1;
18
+ var firstnumerator = k < nMinusk ? nMinusk + 1 : k + 1;
19
+ var nextdivisor = 2;
20
+ var lastdivisor = k < nMinusk ? k : nMinusk; // balance multiplications and divisions to try to keep intermediate values
21
+ // in exact-integer range as long as possible
18
22
 
19
- if (k < nMinusk) {
20
- prodrange = product(nMinusk + 1, n);
21
- return prodrange / product(1, k);
23
+ for (var nextnumerator = firstnumerator; nextnumerator <= n; ++nextnumerator) {
24
+ answer *= nextnumerator;
25
+
26
+ while (nextdivisor <= lastdivisor && answer % nextdivisor === 0) {
27
+ answer /= nextdivisor;
28
+ ++nextdivisor;
29
+ }
30
+ } // for big n, k, floating point may have caused weirdness in remainder
31
+
32
+
33
+ if (nextdivisor <= lastdivisor) {
34
+ answer /= product(nextdivisor, lastdivisor);
22
35
  }
23
36
 
24
- prodrange = product(k + 1, n);
25
- return prodrange / product(1, nMinusk);
37
+ return answer;
26
38
  }
27
39
  combinationsNumber.signature = 'number, number';
@@ -1,2 +1,2 @@
1
- export var version = '10.1.0'; // Note: This file is automatically generated when building math.js.
1
+ export var version = '10.3.0'; // Note: This file is automatically generated when building math.js.
2
2
  // Changes made in this file will be overwritten.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mathjs",
3
- "version": "10.1.0",
3
+ "version": "10.3.0",
4
4
  "description": "Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices.",
5
5
  "author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)",
6
6
  "homepage": "https://mathjs.org",
@@ -25,43 +25,44 @@
25
25
  "unit"
26
26
  ],
27
27
  "dependencies": {
28
- "@babel/runtime": "^7.16.5",
28
+ "@babel/runtime": "^7.17.2",
29
29
  "complex.js": "^2.0.15",
30
30
  "decimal.js": "^10.3.1",
31
31
  "escape-latex": "^1.2.0",
32
- "fraction.js": "^4.1.2",
32
+ "fraction.js": "^4.1.3",
33
33
  "javascript-natural-sort": "^0.7.1",
34
34
  "seedrandom": "^3.0.5",
35
35
  "tiny-emitter": "^2.1.0",
36
36
  "typed-function": "^2.0.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@babel/core": "7.16.5",
40
- "@babel/plugin-transform-object-assign": "7.16.5",
41
- "@babel/plugin-transform-runtime": "7.16.5",
42
- "@babel/preset-env": "7.16.5",
43
- "@babel/register": "7.16.5",
39
+ "@babel/core": "7.17.5",
40
+ "@babel/plugin-transform-object-assign": "7.16.7",
41
+ "@babel/plugin-transform-runtime": "7.17.0",
42
+ "@babel/preset-env": "7.16.11",
43
+ "@babel/register": "7.17.0",
44
+ "assert": "2.0.0",
44
45
  "babel-loader": "8.2.3",
45
46
  "benchmark": "2.1.4",
46
47
  "codecov": "3.8.3",
47
- "core-js": "3.20.1",
48
+ "core-js": "3.21.1",
48
49
  "del": "6.0.0",
49
50
  "dtslint": "4.2.1",
50
51
  "expr-eval": "2.0.2",
51
- "fancy-log": "1.3.3",
52
+ "fancy-log": "2.0.0",
52
53
  "glob": "7.2.0",
53
54
  "gulp": "4.0.2",
54
55
  "gulp-babel": "8.0.0",
55
56
  "handlebars": "4.7.7",
56
57
  "istanbul": "0.4.5",
57
- "jsep": "1.2.0",
58
- "karma": "6.3.9",
58
+ "jsep": "1.3.0",
59
+ "karma": "6.3.16",
59
60
  "karma-browserstack-launcher": "1.6.0",
60
61
  "karma-firefox-launcher": "2.1.2",
61
62
  "karma-mocha": "2.0.1",
62
63
  "karma-mocha-reporter": "2.2.5",
63
64
  "karma-webpack": "4.0.2",
64
- "math-expression-evaluator": "1.3.8",
65
+ "math-expression-evaluator": "1.3.14",
65
66
  "mkdirp": "1.0.4",
66
67
  "mocha": "8.4.0",
67
68
  "ndarray": "1.0.19",
@@ -72,9 +73,10 @@
72
73
  "numericjs": "1.2.6",
73
74
  "nyc": "15.1.0",
74
75
  "pad-right": "0.2.2",
76
+ "process": "0.11.10",
75
77
  "standard": "16.0.4",
76
78
  "sylvester": "0.0.21",
77
- "typescript": "4.5.4",
79
+ "typescript": "4.5.5",
78
80
  "webpack": "4.46.0",
79
81
  "zeros": "1.0.0"
80
82
  },
@@ -124,7 +126,7 @@
124
126
  "CONTRIBUTING.md"
125
127
  ],
126
128
  "scripts": {
127
- "build": "gulp --gulpfile gulpfile.cjs",
129
+ "build": "gulp --gulpfile gulpfile.cjs && npm run update-authors",
128
130
  "build-and-test": "npm run build && npm run test:all && npm run lint",
129
131
  "build:clean": "gulp --gulpfile gulpfile.cjs clean",
130
132
  "build:docs": "gulp --gulpfile gulpfile.cjs docs",
@@ -161,5 +163,8 @@
161
163
  "src": "./src",
162
164
  "test": "./test"
163
165
  },
166
+ "browserslist": [
167
+ "IE 11"
168
+ ],
164
169
  "sideEffects": false
165
170
  }