mathjs 10.6.2 → 11.0.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 (436) hide show
  1. package/HISTORY.md +74 -1
  2. package/README.md +1 -1
  3. package/lib/browser/math.js +2 -41
  4. package/lib/browser/math.js.LICENSE.txt +43 -0
  5. package/lib/browser/math.js.map +1 -1
  6. package/lib/cjs/core/create.js +6 -5
  7. package/lib/cjs/core/function/import.js +4 -14
  8. package/lib/cjs/core/function/typed.js +54 -12
  9. package/lib/cjs/defaultInstance.js +3 -3
  10. package/lib/cjs/entry/allFactoriesAny.js +1 -1
  11. package/lib/cjs/entry/allFactoriesNumber.js +1 -1
  12. package/lib/cjs/entry/configReadonly.js +1 -1
  13. package/lib/cjs/entry/dependenciesAny/dependenciesChainClass.generated.js +3 -0
  14. package/lib/cjs/entry/dependenciesAny/dependenciesKldivergence.generated.js +3 -0
  15. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +3 -0
  16. package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +3 -0
  17. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +3 -0
  18. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +56 -0
  19. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +6 -0
  20. package/lib/cjs/entry/dependenciesAny/dependenciesSqrtm.generated.js +3 -0
  21. package/lib/cjs/entry/dependenciesAny/dependenciesStd.generated.js +3 -0
  22. package/lib/cjs/entry/dependenciesAny/dependenciesStdTransform.generated.js +3 -0
  23. package/lib/cjs/entry/dependenciesAny.generated.js +8 -0
  24. package/lib/cjs/entry/dependenciesNumber/dependenciesChainClass.generated.js +3 -0
  25. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +3 -0
  26. package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +3 -0
  27. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +3 -0
  28. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +50 -0
  29. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +6 -0
  30. package/lib/cjs/entry/dependenciesNumber/dependenciesStd.generated.js +3 -0
  31. package/lib/cjs/entry/dependenciesNumber/dependenciesStdTransform.generated.js +3 -0
  32. package/lib/cjs/entry/dependenciesNumber.generated.js +8 -0
  33. package/lib/cjs/entry/impureFunctionsAny.generated.js +87 -61
  34. package/lib/cjs/entry/impureFunctionsNumber.generated.js +93 -69
  35. package/lib/cjs/entry/pureFunctionsAny.generated.js +50 -45
  36. package/lib/cjs/entry/pureFunctionsNumber.generated.js +22 -19
  37. package/lib/cjs/expression/Parser.js +1 -1
  38. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +8 -5
  39. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +15 -0
  40. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  41. package/lib/cjs/expression/node/AccessorNode.js +216 -173
  42. package/lib/cjs/expression/node/ArrayNode.js +206 -160
  43. package/lib/cjs/expression/node/AssignmentNode.js +321 -270
  44. package/lib/cjs/expression/node/BlockNode.js +223 -172
  45. package/lib/cjs/expression/node/ConditionalNode.js +253 -193
  46. package/lib/cjs/expression/node/ConstantNode.js +216 -171
  47. package/lib/cjs/expression/node/FunctionAssignmentNode.js +258 -196
  48. package/lib/cjs/expression/node/FunctionNode.js +456 -416
  49. package/lib/cjs/expression/node/IndexNode.js +256 -210
  50. package/lib/cjs/expression/node/Node.js +411 -378
  51. package/lib/cjs/expression/node/ObjectNode.js +223 -178
  52. package/lib/cjs/expression/node/OperatorNode.js +474 -397
  53. package/lib/cjs/expression/node/ParenthesisNode.js +189 -143
  54. package/lib/cjs/expression/node/RangeNode.js +272 -224
  55. package/lib/cjs/expression/node/RelationalNode.js +246 -195
  56. package/lib/cjs/expression/node/SymbolNode.js +219 -172
  57. package/lib/cjs/expression/node/utils/access.js +1 -1
  58. package/lib/cjs/expression/node/utils/assign.js +1 -1
  59. package/lib/cjs/expression/operators.js +117 -23
  60. package/lib/cjs/expression/parse.js +37 -19
  61. package/lib/cjs/expression/transform/std.transform.js +3 -1
  62. package/lib/cjs/factoriesAny.js +8 -0
  63. package/lib/cjs/factoriesNumber.js +10 -1
  64. package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
  65. package/lib/cjs/function/algebra/derivative.js +22 -30
  66. package/lib/cjs/function/algebra/leafCount.js +0 -3
  67. package/lib/cjs/function/algebra/rationalize.js +78 -108
  68. package/lib/cjs/function/algebra/resolve.js +53 -16
  69. package/lib/cjs/function/algebra/simplify/util.js +1 -1
  70. package/lib/cjs/function/algebra/simplify.js +87 -114
  71. package/lib/cjs/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +44 -10
  72. package/lib/cjs/function/algebra/simplifyCore.js +196 -93
  73. package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
  74. package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
  75. package/lib/cjs/function/algebra/symbolicEqual.js +9 -26
  76. package/lib/cjs/function/arithmetic/abs.js +7 -14
  77. package/lib/cjs/function/arithmetic/add.js +26 -70
  78. package/lib/cjs/function/arithmetic/addScalar.js +17 -9
  79. package/lib/cjs/function/arithmetic/cbrt.js +7 -11
  80. package/lib/cjs/function/arithmetic/ceil.js +56 -46
  81. package/lib/cjs/function/arithmetic/cube.js +5 -10
  82. package/lib/cjs/function/arithmetic/divide.js +7 -7
  83. package/lib/cjs/function/arithmetic/divideScalar.js +4 -18
  84. package/lib/cjs/function/arithmetic/dotDivide.js +22 -65
  85. package/lib/cjs/function/arithmetic/dotMultiply.js +16 -61
  86. package/lib/cjs/function/arithmetic/dotPow.js +30 -63
  87. package/lib/cjs/function/arithmetic/exp.js +8 -12
  88. package/lib/cjs/function/arithmetic/expm1.js +10 -10
  89. package/lib/cjs/function/arithmetic/fix.js +33 -27
  90. package/lib/cjs/function/arithmetic/floor.js +56 -46
  91. package/lib/cjs/function/arithmetic/gcd.js +27 -68
  92. package/lib/cjs/function/arithmetic/hypot.js +9 -5
  93. package/lib/cjs/function/arithmetic/invmod.js +1 -1
  94. package/lib/cjs/function/arithmetic/lcm.js +27 -68
  95. package/lib/cjs/function/arithmetic/log.js +10 -12
  96. package/lib/cjs/function/arithmetic/log10.js +5 -3
  97. package/lib/cjs/function/arithmetic/log1p.js +11 -7
  98. package/lib/cjs/function/arithmetic/log2.js +5 -3
  99. package/lib/cjs/function/arithmetic/mod.js +22 -64
  100. package/lib/cjs/function/arithmetic/multiply.js +40 -35
  101. package/lib/cjs/function/arithmetic/multiplyScalar.js +2 -9
  102. package/lib/cjs/function/arithmetic/norm.js +1 -5
  103. package/lib/cjs/function/arithmetic/nthRoot.js +80 -92
  104. package/lib/cjs/function/arithmetic/round.js +56 -42
  105. package/lib/cjs/function/arithmetic/sign.js +14 -10
  106. package/lib/cjs/function/arithmetic/sqrt.js +5 -9
  107. package/lib/cjs/function/arithmetic/square.js +6 -10
  108. package/lib/cjs/function/arithmetic/subtract.js +44 -100
  109. package/lib/cjs/function/arithmetic/unaryMinus.js +14 -16
  110. package/lib/cjs/function/arithmetic/unaryPlus.js +6 -4
  111. package/lib/cjs/function/bitwise/bitAnd.js +17 -61
  112. package/lib/cjs/function/bitwise/bitNot.js +5 -3
  113. package/lib/cjs/function/bitwise/bitOr.js +16 -60
  114. package/lib/cjs/function/bitwise/bitXor.js +17 -61
  115. package/lib/cjs/function/bitwise/leftShift.js +68 -81
  116. package/lib/cjs/function/bitwise/rightArithShift.js +68 -81
  117. package/lib/cjs/function/bitwise/rightLogShift.js +68 -81
  118. package/lib/cjs/function/bitwise/useMatrixForArrayScalar.js +36 -0
  119. package/lib/cjs/function/complex/arg.js +5 -3
  120. package/lib/cjs/function/complex/conj.js +6 -7
  121. package/lib/cjs/function/complex/im.js +7 -8
  122. package/lib/cjs/function/complex/re.js +6 -10
  123. package/lib/cjs/function/logical/and.js +74 -80
  124. package/lib/cjs/function/logical/not.js +13 -6
  125. package/lib/cjs/function/logical/or.js +21 -63
  126. package/lib/cjs/function/logical/xor.js +21 -63
  127. package/lib/cjs/function/matrix/diff.js +10 -7
  128. package/lib/cjs/function/matrix/eigs/complexEigs.js +5 -5
  129. package/lib/cjs/function/matrix/fft.js +2 -2
  130. package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
  131. package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
  132. package/lib/cjs/function/matrix/ones.js +2 -1
  133. package/lib/cjs/function/matrix/sqrtm.js +3 -2
  134. package/lib/cjs/function/matrix/transpose.js +47 -48
  135. package/lib/cjs/function/matrix/zeros.js +2 -1
  136. package/lib/cjs/function/probability/factorial.js +5 -3
  137. package/lib/cjs/function/probability/gamma.js +38 -40
  138. package/lib/cjs/function/probability/kldivergence.js +5 -2
  139. package/lib/cjs/function/probability/lgamma.js +30 -30
  140. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  141. package/lib/cjs/function/relational/compare.js +21 -67
  142. package/lib/cjs/function/relational/compareNatural.js +59 -54
  143. package/lib/cjs/function/relational/compareText.js +10 -43
  144. package/lib/cjs/function/relational/compareUnits.js +24 -0
  145. package/lib/cjs/function/relational/equal.js +19 -80
  146. package/lib/cjs/function/relational/equalScalar.js +7 -9
  147. package/lib/cjs/function/relational/larger.js +21 -67
  148. package/lib/cjs/function/relational/largerEq.js +21 -67
  149. package/lib/cjs/function/relational/smaller.js +21 -67
  150. package/lib/cjs/function/relational/smallerEq.js +21 -67
  151. package/lib/cjs/function/relational/unequal.js +19 -80
  152. package/lib/cjs/function/special/erf.js +5 -3
  153. package/lib/cjs/function/statistics/std.js +11 -2
  154. package/lib/cjs/function/trigonometry/acos.js +4 -8
  155. package/lib/cjs/function/trigonometry/acosh.js +2 -7
  156. package/lib/cjs/function/trigonometry/acot.js +4 -8
  157. package/lib/cjs/function/trigonometry/acoth.js +4 -8
  158. package/lib/cjs/function/trigonometry/acsc.js +4 -8
  159. package/lib/cjs/function/trigonometry/acsch.js +4 -8
  160. package/lib/cjs/function/trigonometry/asec.js +4 -8
  161. package/lib/cjs/function/trigonometry/asech.js +4 -8
  162. package/lib/cjs/function/trigonometry/asin.js +4 -9
  163. package/lib/cjs/function/trigonometry/asinh.js +4 -9
  164. package/lib/cjs/function/trigonometry/atan.js +4 -9
  165. package/lib/cjs/function/trigonometry/atan2.js +24 -62
  166. package/lib/cjs/function/trigonometry/atanh.js +4 -9
  167. package/lib/cjs/function/trigonometry/cos.js +11 -20
  168. package/lib/cjs/function/trigonometry/cosh.js +5 -19
  169. package/lib/cjs/function/trigonometry/cot.js +9 -15
  170. package/lib/cjs/function/trigonometry/coth.js +4 -15
  171. package/lib/cjs/function/trigonometry/csc.js +11 -17
  172. package/lib/cjs/function/trigonometry/csch.js +4 -15
  173. package/lib/cjs/function/trigonometry/sec.js +11 -17
  174. package/lib/cjs/function/trigonometry/sech.js +4 -15
  175. package/lib/cjs/function/trigonometry/sin.js +11 -21
  176. package/lib/cjs/function/trigonometry/sinh.js +5 -20
  177. package/lib/cjs/function/trigonometry/tan.js +11 -21
  178. package/lib/cjs/function/trigonometry/tanh.js +5 -20
  179. package/lib/cjs/function/trigonometry/trigUnit.js +24 -0
  180. package/lib/cjs/function/unit/to.js +7 -41
  181. package/lib/cjs/function/utils/hasNumericValue.js +4 -0
  182. package/lib/cjs/function/utils/isInteger.js +5 -3
  183. package/lib/cjs/function/utils/isNegative.js +10 -6
  184. package/lib/cjs/function/utils/isNumeric.js +5 -3
  185. package/lib/cjs/function/utils/isPositive.js +10 -6
  186. package/lib/cjs/function/utils/isPrime.js +5 -3
  187. package/lib/cjs/function/utils/isZero.js +10 -6
  188. package/lib/cjs/function/utils/numeric.js +11 -4
  189. package/lib/cjs/function/utils/typeOf.js +38 -44
  190. package/lib/cjs/header.js +2 -2
  191. package/lib/cjs/plain/bignumber/index.js +1 -1
  192. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  193. package/lib/cjs/type/bignumber/function/bignumber.js +6 -4
  194. package/lib/cjs/type/boolean.js +7 -5
  195. package/lib/cjs/type/chain/Chain.js +23 -3
  196. package/lib/cjs/type/complex/Complex.js +18 -14
  197. package/lib/cjs/type/complex/function/complex.js +6 -4
  198. package/lib/cjs/type/fraction/Fraction.js +10 -6
  199. package/lib/cjs/type/fraction/function/fraction.js +6 -4
  200. package/lib/cjs/type/matrix/DenseMatrix.js +21 -6
  201. package/lib/cjs/type/matrix/SparseMatrix.js +12 -2
  202. package/lib/cjs/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +4 -4
  203. package/lib/cjs/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +5 -5
  204. package/lib/cjs/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +5 -5
  205. package/lib/cjs/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +7 -7
  206. package/lib/cjs/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +5 -5
  207. package/lib/cjs/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +5 -5
  208. package/lib/cjs/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +5 -5
  209. package/lib/cjs/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +6 -6
  210. package/lib/cjs/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +5 -5
  211. package/lib/cjs/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +5 -5
  212. package/lib/cjs/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +5 -5
  213. package/lib/cjs/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +5 -5
  214. package/lib/cjs/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +5 -5
  215. package/lib/cjs/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +5 -5
  216. package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +238 -0
  217. package/lib/cjs/type/number.js +6 -4
  218. package/lib/cjs/type/string.js +7 -5
  219. package/lib/cjs/type/unit/Unit.js +69 -21
  220. package/lib/cjs/type/unit/function/createUnit.js +2 -1
  221. package/lib/cjs/type/unit/function/unit.js +9 -3
  222. package/lib/cjs/utils/customs.js +2 -2
  223. package/lib/cjs/utils/emitter.js +1 -1
  224. package/lib/cjs/utils/function.js +2 -2
  225. package/lib/cjs/utils/is.js +27 -25
  226. package/lib/cjs/utils/latex.js +3 -3
  227. package/lib/cjs/utils/lruQueue.js +1 -1
  228. package/lib/cjs/utils/map.js +3 -3
  229. package/lib/cjs/utils/object.js +2 -2
  230. package/lib/cjs/utils/snapshot.js +30 -57
  231. package/lib/cjs/utils/string.js +3 -3
  232. package/lib/cjs/version.js +1 -1
  233. package/lib/esm/core/create.js +2 -1
  234. package/lib/esm/core/function/import.js +2 -12
  235. package/lib/esm/core/function/typed.js +47 -11
  236. package/lib/esm/entry/dependenciesAny/dependenciesChainClass.generated.js +2 -0
  237. package/lib/esm/entry/dependenciesAny/dependenciesKldivergence.generated.js +2 -0
  238. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
  239. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +2 -0
  240. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +2 -0
  241. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +34 -0
  242. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +4 -0
  243. package/lib/esm/entry/dependenciesAny/dependenciesSqrtm.generated.js +2 -0
  244. package/lib/esm/entry/dependenciesAny/dependenciesStd.generated.js +2 -0
  245. package/lib/esm/entry/dependenciesAny/dependenciesStdTransform.generated.js +2 -0
  246. package/lib/esm/entry/dependenciesAny.generated.js +1 -0
  247. package/lib/esm/entry/dependenciesNumber/dependenciesChainClass.generated.js +2 -0
  248. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +2 -0
  249. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +2 -0
  250. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +2 -0
  251. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +30 -0
  252. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +4 -0
  253. package/lib/esm/entry/dependenciesNumber/dependenciesStd.generated.js +2 -0
  254. package/lib/esm/entry/dependenciesNumber/dependenciesStdTransform.generated.js +2 -0
  255. package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
  256. package/lib/esm/entry/impureFunctionsAny.generated.js +73 -48
  257. package/lib/esm/entry/impureFunctionsNumber.generated.js +81 -58
  258. package/lib/esm/entry/pureFunctionsAny.generated.js +39 -36
  259. package/lib/esm/entry/pureFunctionsNumber.generated.js +14 -13
  260. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
  261. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +8 -0
  262. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  263. package/lib/esm/expression/node/AccessorNode.js +158 -153
  264. package/lib/esm/expression/node/ArrayNode.js +162 -154
  265. package/lib/esm/expression/node/AssignmentNode.js +257 -245
  266. package/lib/esm/expression/node/BlockNode.js +177 -163
  267. package/lib/esm/expression/node/ConditionalNode.js +197 -174
  268. package/lib/esm/expression/node/ConstantNode.js +171 -163
  269. package/lib/esm/expression/node/FunctionAssignmentNode.js +205 -180
  270. package/lib/esm/expression/node/FunctionNode.js +407 -407
  271. package/lib/esm/expression/node/IndexNode.js +206 -198
  272. package/lib/esm/expression/node/Node.js +325 -325
  273. package/lib/esm/expression/node/ObjectNode.js +166 -157
  274. package/lib/esm/expression/node/OperatorNode.js +414 -377
  275. package/lib/esm/expression/node/ParenthesisNode.js +146 -138
  276. package/lib/esm/expression/node/RangeNode.js +221 -212
  277. package/lib/esm/expression/node/RelationalNode.js +190 -176
  278. package/lib/esm/expression/node/SymbolNode.js +161 -152
  279. package/lib/esm/expression/operators.js +96 -4
  280. package/lib/esm/expression/parse.js +25 -7
  281. package/lib/esm/expression/transform/std.transform.js +3 -1
  282. package/lib/esm/factoriesAny.js +1 -0
  283. package/lib/esm/factoriesNumber.js +1 -0
  284. package/lib/esm/function/algebra/derivative.js +22 -30
  285. package/lib/esm/function/algebra/leafCount.js +0 -3
  286. package/lib/esm/function/algebra/rationalize.js +83 -114
  287. package/lib/esm/function/algebra/resolve.js +25 -16
  288. package/lib/esm/function/algebra/simplify.js +82 -112
  289. package/lib/esm/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +39 -9
  290. package/lib/esm/function/algebra/simplifyCore.js +192 -91
  291. package/lib/esm/function/algebra/symbolicEqual.js +9 -26
  292. package/lib/esm/function/arithmetic/abs.js +3 -16
  293. package/lib/esm/function/arithmetic/add.js +21 -65
  294. package/lib/esm/function/arithmetic/addScalar.js +11 -5
  295. package/lib/esm/function/arithmetic/cbrt.js +7 -10
  296. package/lib/esm/function/arithmetic/ceil.js +25 -25
  297. package/lib/esm/function/arithmetic/cube.js +5 -9
  298. package/lib/esm/function/arithmetic/divide.js +7 -7
  299. package/lib/esm/function/arithmetic/divideScalar.js +2 -19
  300. package/lib/esm/function/arithmetic/dotDivide.js +22 -64
  301. package/lib/esm/function/arithmetic/dotMultiply.js +16 -60
  302. package/lib/esm/function/arithmetic/dotPow.js +30 -62
  303. package/lib/esm/function/arithmetic/exp.js +8 -11
  304. package/lib/esm/function/arithmetic/expm1.js +10 -9
  305. package/lib/esm/function/arithmetic/fix.js +17 -17
  306. package/lib/esm/function/arithmetic/floor.js +25 -25
  307. package/lib/esm/function/arithmetic/gcd.js +26 -70
  308. package/lib/esm/function/arithmetic/hypot.js +7 -6
  309. package/lib/esm/function/arithmetic/lcm.js +26 -70
  310. package/lib/esm/function/arithmetic/log.js +7 -10
  311. package/lib/esm/function/arithmetic/log10.js +1 -3
  312. package/lib/esm/function/arithmetic/log1p.js +4 -6
  313. package/lib/esm/function/arithmetic/log2.js +1 -3
  314. package/lib/esm/function/arithmetic/mod.js +21 -62
  315. package/lib/esm/function/arithmetic/multiply.js +23 -27
  316. package/lib/esm/function/arithmetic/multiplyScalar.js +2 -13
  317. package/lib/esm/function/arithmetic/norm.js +0 -4
  318. package/lib/esm/function/arithmetic/nthRoot.js +38 -73
  319. package/lib/esm/function/arithmetic/round.js +26 -28
  320. package/lib/esm/function/arithmetic/sign.js +5 -7
  321. package/lib/esm/function/arithmetic/sqrt.js +5 -8
  322. package/lib/esm/function/arithmetic/square.js +6 -9
  323. package/lib/esm/function/arithmetic/subtract.js +31 -95
  324. package/lib/esm/function/arithmetic/unaryMinus.js +6 -16
  325. package/lib/esm/function/arithmetic/unaryPlus.js +2 -4
  326. package/lib/esm/function/bitwise/bitAnd.js +16 -59
  327. package/lib/esm/function/bitwise/bitNot.js +1 -3
  328. package/lib/esm/function/bitwise/bitOr.js +16 -59
  329. package/lib/esm/function/bitwise/bitXor.js +16 -59
  330. package/lib/esm/function/bitwise/leftShift.js +38 -60
  331. package/lib/esm/function/bitwise/rightArithShift.js +38 -60
  332. package/lib/esm/function/bitwise/rightLogShift.js +38 -60
  333. package/lib/esm/function/bitwise/useMatrixForArrayScalar.js +13 -0
  334. package/lib/esm/function/complex/arg.js +1 -3
  335. package/lib/esm/function/complex/conj.js +3 -12
  336. package/lib/esm/function/complex/im.js +4 -15
  337. package/lib/esm/function/complex/re.js +3 -15
  338. package/lib/esm/function/logical/and.js +35 -57
  339. package/lib/esm/function/logical/not.js +3 -6
  340. package/lib/esm/function/logical/or.js +16 -61
  341. package/lib/esm/function/logical/xor.js +16 -61
  342. package/lib/esm/function/matrix/diff.js +2 -7
  343. package/lib/esm/function/matrix/ones.js +2 -1
  344. package/lib/esm/function/matrix/sqrtm.js +3 -2
  345. package/lib/esm/function/matrix/transpose.js +47 -50
  346. package/lib/esm/function/matrix/zeros.js +2 -1
  347. package/lib/esm/function/probability/factorial.js +1 -3
  348. package/lib/esm/function/probability/gamma.js +38 -39
  349. package/lib/esm/function/probability/kldivergence.js +3 -2
  350. package/lib/esm/function/probability/lgamma.js +29 -29
  351. package/lib/esm/function/relational/compare.js +21 -67
  352. package/lib/esm/function/relational/compareNatural.js +54 -49
  353. package/lib/esm/function/relational/compareText.js +10 -42
  354. package/lib/esm/function/relational/compareUnits.js +15 -0
  355. package/lib/esm/function/relational/equal.js +19 -79
  356. package/lib/esm/function/relational/equalScalar.js +6 -9
  357. package/lib/esm/function/relational/larger.js +23 -73
  358. package/lib/esm/function/relational/largerEq.js +23 -73
  359. package/lib/esm/function/relational/smaller.js +23 -73
  360. package/lib/esm/function/relational/smallerEq.js +23 -73
  361. package/lib/esm/function/relational/unequal.js +19 -79
  362. package/lib/esm/function/special/erf.js +1 -3
  363. package/lib/esm/function/statistics/std.js +10 -2
  364. package/lib/esm/function/trigonometry/acos.js +4 -7
  365. package/lib/esm/function/trigonometry/acosh.js +2 -6
  366. package/lib/esm/function/trigonometry/acot.js +4 -7
  367. package/lib/esm/function/trigonometry/acoth.js +4 -7
  368. package/lib/esm/function/trigonometry/acsc.js +4 -7
  369. package/lib/esm/function/trigonometry/acsch.js +4 -7
  370. package/lib/esm/function/trigonometry/asec.js +4 -7
  371. package/lib/esm/function/trigonometry/asech.js +4 -7
  372. package/lib/esm/function/trigonometry/asin.js +4 -8
  373. package/lib/esm/function/trigonometry/asinh.js +4 -8
  374. package/lib/esm/function/trigonometry/atan.js +4 -8
  375. package/lib/esm/function/trigonometry/atan2.js +25 -64
  376. package/lib/esm/function/trigonometry/atanh.js +4 -8
  377. package/lib/esm/function/trigonometry/cos.js +11 -22
  378. package/lib/esm/function/trigonometry/cosh.js +5 -20
  379. package/lib/esm/function/trigonometry/cot.js +10 -20
  380. package/lib/esm/function/trigonometry/coth.js +6 -20
  381. package/lib/esm/function/trigonometry/csc.js +12 -22
  382. package/lib/esm/function/trigonometry/csch.js +6 -20
  383. package/lib/esm/function/trigonometry/sec.js +12 -22
  384. package/lib/esm/function/trigonometry/sech.js +6 -20
  385. package/lib/esm/function/trigonometry/sin.js +11 -23
  386. package/lib/esm/function/trigonometry/sinh.js +5 -21
  387. package/lib/esm/function/trigonometry/tan.js +11 -23
  388. package/lib/esm/function/trigonometry/tanh.js +5 -21
  389. package/lib/esm/function/trigonometry/trigUnit.js +15 -0
  390. package/lib/esm/function/unit/to.js +8 -43
  391. package/lib/esm/function/utils/hasNumericValue.js +2 -0
  392. package/lib/esm/function/utils/isInteger.js +1 -3
  393. package/lib/esm/function/utils/isNegative.js +2 -6
  394. package/lib/esm/function/utils/isNumeric.js +3 -9
  395. package/lib/esm/function/utils/isPositive.js +2 -6
  396. package/lib/esm/function/utils/isPrime.js +1 -3
  397. package/lib/esm/function/utils/isZero.js +2 -6
  398. package/lib/esm/function/utils/numeric.js +11 -4
  399. package/lib/esm/function/utils/typeOf.js +38 -44
  400. package/lib/esm/type/bignumber/function/bignumber.js +1 -3
  401. package/lib/esm/type/boolean.js +1 -3
  402. package/lib/esm/type/chain/Chain.js +23 -3
  403. package/lib/esm/type/complex/Complex.js +4 -0
  404. package/lib/esm/type/complex/function/complex.js +1 -3
  405. package/lib/esm/type/fraction/Fraction.js +4 -0
  406. package/lib/esm/type/fraction/function/fraction.js +1 -3
  407. package/lib/esm/type/matrix/DenseMatrix.js +15 -1
  408. package/lib/esm/type/matrix/SparseMatrix.js +9 -0
  409. package/lib/esm/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +2 -2
  410. package/lib/esm/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +3 -3
  411. package/lib/esm/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +3 -3
  412. package/lib/esm/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +5 -5
  413. package/lib/esm/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +3 -3
  414. package/lib/esm/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +3 -3
  415. package/lib/esm/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +3 -3
  416. package/lib/esm/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +4 -4
  417. package/lib/esm/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +3 -3
  418. package/lib/esm/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +3 -3
  419. package/lib/esm/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +3 -3
  420. package/lib/esm/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +3 -3
  421. package/lib/esm/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +3 -3
  422. package/lib/esm/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +3 -3
  423. package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +168 -0
  424. package/lib/esm/type/number.js +1 -3
  425. package/lib/esm/type/string.js +1 -3
  426. package/lib/esm/type/unit/Unit.js +61 -13
  427. package/lib/esm/type/unit/function/createUnit.js +2 -1
  428. package/lib/esm/type/unit/function/unit.js +5 -3
  429. package/lib/esm/utils/is.js +18 -18
  430. package/lib/esm/utils/snapshot.js +22 -48
  431. package/lib/esm/version.js +1 -1
  432. package/package.json +21 -24
  433. package/types/index.d.ts +202 -181
  434. package/types/index.ts +264 -57
  435. package/lib/cjs/utils/polyfills.js +0 -14
  436. package/lib/esm/utils/polyfills.js +0 -12
package/types/index.ts CHANGED
@@ -29,6 +29,7 @@ import {
29
29
  OperatorNodeOp,
30
30
  SymbolNode,
31
31
  ParenthesisNode,
32
+ SimplifyRule,
32
33
  } from 'mathjs'
33
34
  import * as assert from 'assert'
34
35
  import { expectTypeOf } from 'expect-type'
@@ -88,6 +89,22 @@ Basic usage examples
88
89
 
89
90
  math.variance(math.variance(m2by3, 'uncorrected'))
90
91
 
92
+ // count and sum check
93
+ math.count([10, 10, 10])
94
+ math.count([
95
+ [1, 2, 3],
96
+ [4, 5, 6],
97
+ ])
98
+ math.count('mathjs')
99
+
100
+ math.sum(1, 2, 3, 4)
101
+ math.sum([1, 2, 3, 4])
102
+ math.sum([
103
+ [1, 2],
104
+ [3, 4],
105
+ [5, 6],
106
+ ])
107
+
91
108
  // expressions
92
109
  math.evaluate('1.2 * (2 + 4.5)')
93
110
 
@@ -134,6 +151,23 @@ Bignumbers examples
134
151
  }
135
152
  }
136
153
 
154
+ /*
155
+ Arithmetic function examples
156
+ */
157
+ {
158
+ const math = create(all, {})
159
+
160
+ const _e: number = math.exp(1)
161
+ const _bige: BigNumber = math.exp(math.bignumber(1))
162
+ const _compe: Complex = math.exp(math.complex(1, 0))
163
+ // TODO: Typescript type declarations are not understanding typed-function's
164
+ // automatic conversions, so the following do not work:
165
+
166
+ // const _compeagain: Complex = math.exp(math.fraction(1, 1))
167
+ // const _eagain: number = math.exp('1')
168
+ // const _eanother: number = math.exp(true)
169
+ }
170
+
137
171
  /*
138
172
  Chaining examples
139
173
  */
@@ -524,21 +558,23 @@ Chaining examples
524
558
  expectTypeOf(math.chain(math.complex(1, 2)).cbrt()).toMatchTypeOf<
525
559
  MathJsChain<Complex>
526
560
  >()
527
- expectTypeOf(math.chain([1, 2]).cbrt()).toMatchTypeOf<
528
- MathJsChain<MathArray>
529
- >()
530
- expectTypeOf(
531
- math
532
- .chain(
533
- math.matrix([
534
- [1, 2],
535
- [3, 4],
536
- ])
537
- )
538
- .cbrt()
539
- ).toMatchTypeOf<MathJsChain<Matrix>>()
561
+ // @ts-expect-error ... verify cbrt does not run on arrays.
562
+ assert.throws(() => math.chain([1, 2]).cbrt(), TypeError)
563
+ assert.throws(
564
+ () =>
565
+ // @ts-expect-error ... verify cbrt does not run on matrices.
566
+ math
567
+ .chain(
568
+ math.matrix([
569
+ [1, 2],
570
+ [3, 4],
571
+ ])
572
+ )
573
+ .cbrt(),
574
+ TypeError
575
+ )
540
576
 
541
- // cbrt
577
+ // ceil
542
578
  expectTypeOf(math.chain(1).ceil()).toMatchTypeOf<
543
579
  MathJsChain<MathNumericType>
544
580
  >()
@@ -581,19 +617,23 @@ Chaining examples
581
617
  expectTypeOf(math.chain(math.complex(1, 2)).cube()).toMatchTypeOf<
582
618
  MathJsChain<Complex>
583
619
  >()
584
- expectTypeOf(math.chain([1, 2]).cube()).toMatchTypeOf<
585
- MathJsChain<MathArray>
586
- >()
587
- expectTypeOf(
588
- math
589
- .chain(
590
- math.matrix([
591
- [1, 2],
592
- [3, 4],
593
- ])
594
- )
595
- .cube()
596
- ).toMatchTypeOf<MathJsChain<Matrix>>()
620
+
621
+ // @ts-expect-error ... verify cube does not run on arrays.
622
+ assert.throws(() => math.chain([1, 2]).cube(), TypeError)
623
+ assert.throws(
624
+ () =>
625
+ // @ts-expect-error ... verify cube does not run on matrices.
626
+ math
627
+ .chain(
628
+ math.matrix([
629
+ [1, 2],
630
+ [3, 4],
631
+ ])
632
+ )
633
+ .cube(),
634
+ TypeError
635
+ )
636
+
597
637
  expectTypeOf(math.chain(math.unit('furlong')).cube()).toMatchTypeOf<
598
638
  MathJsChain<Unit>
599
639
  >()
@@ -655,33 +695,40 @@ Chaining examples
655
695
 
656
696
  // exp
657
697
  expectTypeOf(math.chain(1).exp()).toMatchTypeOf<MathJsChain<MathType>>()
658
- expectTypeOf(math.chain([1, 2]).exp()).toMatchTypeOf<MathJsChain<MathArray>>()
659
- expectTypeOf(
660
- math
661
- .chain(
662
- math.matrix([
663
- [1, 2],
664
- [3, 4],
665
- ])
666
- )
667
- .exp()
668
- ).toMatchTypeOf<MathJsChain<Matrix>>()
698
+ // @ts-expect-error ... verify exp does not run on arrays.
699
+ assert.throws(() => math.chain([1, 2]).exp(), TypeError)
700
+ assert.throws(
701
+ () =>
702
+ // @ts-expect-error ... verify exp does not run on matrices.
703
+ math
704
+ .chain(
705
+ math.matrix([
706
+ [1, 2],
707
+ [3, 4],
708
+ ])
709
+ )
710
+ .exp(),
711
+ TypeError
712
+ )
669
713
 
670
714
  // expm1
671
715
  expectTypeOf(math.chain(1).expm1()).toMatchTypeOf<MathJsChain<MathType>>()
672
- expectTypeOf(math.chain([1, 2]).expm1()).toMatchTypeOf<
673
- MathJsChain<MathArray>
674
- >()
675
- expectTypeOf(
676
- math
677
- .chain(
678
- math.matrix([
679
- [1, 2],
680
- [3, 4],
681
- ])
682
- )
683
- .expm1()
684
- ).toMatchTypeOf<MathJsChain<Matrix>>()
716
+
717
+ // @ts-expect-error ... verify expm1 does not run on arrays
718
+ assert.throws(() => math.chain([1, 2]).expm1(), TypeError)
719
+ assert.throws(
720
+ () =>
721
+ // @ts-expect-error ... verify expm1 does not run on arrays
722
+ math
723
+ .chain(
724
+ math.matrix([
725
+ [1, 2],
726
+ [3, 4],
727
+ ])
728
+ )
729
+ .expm1(),
730
+ TypeError
731
+ )
685
732
 
686
733
  // gcd
687
734
  expectTypeOf(math.chain([1, 2]).gcd(3)).toMatchTypeOf<MathJsChain<number>>()
@@ -765,6 +812,11 @@ Chaining examples
765
812
  .log10()
766
813
  ).toMatchTypeOf<MathJsChain<Matrix>>()
767
814
 
815
+ expectTypeOf(math.chain([1, 2]).count()).toMatchTypeOf<MathJsChain<number>>()
816
+ expectTypeOf(math.chain('mathjs').count()).toMatchTypeOf<
817
+ MathJsChain<number>
818
+ >()
819
+ expectTypeOf(math.chain([1, 2]).sum()).toMatchTypeOf<MathJsChain<number>>()
768
820
  // TODO complete the rest of these...
769
821
  }
770
822
 
@@ -775,13 +827,89 @@ Simplify examples
775
827
  const math = create(all)
776
828
 
777
829
  math.simplify('2 * 1 * x ^ (2 - 1)')
830
+ math.simplifyConstant('2 * 1 * x ^ (2 - 1)')
831
+ math.simplifyCore('2 * 1 * x ^ (2 - 1)')
778
832
  math.simplify('2 * 3 * x', { x: 4 })
779
833
 
834
+ expectTypeOf(math.simplify.rules).toMatchTypeOf<Array<SimplifyRule>>()
835
+
780
836
  const f = math.parse('2 * 1 * x ^ (2 - 1)')
781
837
  math.simplify(f)
782
838
 
783
839
  math.simplify('0.4 * x', {}, { exactFractions: true })
840
+ math.simplifyConstant('0.4 * x', { exactFractions: true })
784
841
  math.simplify('0.4 * x', {}, { exactFractions: false })
842
+ math.simplify('0.4 * x', {}, { fractionsLimit: 2 })
843
+ math.simplify('0.4 * x', {}, { consoleDebug: false })
844
+
845
+ math.simplify(
846
+ '0.4 * x',
847
+ {},
848
+ {
849
+ context: {
850
+ xor: {
851
+ trivial: true,
852
+ total: true,
853
+ commutative: true,
854
+ associative: true,
855
+ },
856
+ },
857
+ }
858
+ )
859
+
860
+ math.simplify('0.4 * x', [])
861
+ math.simplify('0.4 * x', [
862
+ 'n * n -> 2n',
863
+ {
864
+ s: 'n * n -> 2n',
865
+ repeat: true,
866
+ assuming: {
867
+ multiply: {
868
+ trivial: true,
869
+ total: true,
870
+ commutative: true,
871
+ associative: true,
872
+ },
873
+ },
874
+ imposeContext: {
875
+ multiply: {
876
+ trivial: true,
877
+ total: true,
878
+ commutative: true,
879
+ associative: true,
880
+ },
881
+ },
882
+ },
883
+ {
884
+ l: 'n * n',
885
+ r: '2n',
886
+ repeat: true,
887
+ assuming: {
888
+ multiply: {
889
+ trivial: true,
890
+ total: true,
891
+ commutative: true,
892
+ associative: true,
893
+ },
894
+ },
895
+ imposeContext: {
896
+ multiply: {
897
+ trivial: true,
898
+ total: true,
899
+ commutative: true,
900
+ associative: true,
901
+ },
902
+ },
903
+ },
904
+ (node: MathNode) => node,
905
+ ])
906
+ math.simplifyCore('0.4 * x + 0', { exactFractions: false })
907
+
908
+ math
909
+ .chain('0.4 * x + 0')
910
+ .parse()
911
+ .simplifyCore({ exactFractions: false })
912
+ .simplifyConstant()
785
913
  }
786
914
 
787
915
  /*
@@ -816,8 +944,13 @@ Complex numbers examples
816
944
 
817
945
  // create a complex number from polar coordinates
818
946
  {
819
- const p: math.PolarCoordinates = { r: math.sqrt(2), phi: math.pi / 4 }
820
- const _c: math.Complex = math.complex(p)
947
+ const p: math.PolarCoordinates = {
948
+ r: math.sqrt(2) as number, // must be real but a sqrt could be Complex
949
+ phi: math.pi / 4,
950
+ }
951
+ const c: math.Complex = math.complex(p)
952
+ assert.strictEqual(c.im, 1)
953
+ assert.ok(Math.abs(c.re - 1) < 1e-12)
821
954
  }
822
955
 
823
956
  // get polar coordinates of a complex number
@@ -988,6 +1121,11 @@ Matrices examples
988
1121
  const b: math.Matrix = math.matrix(math.ones([2, 3]))
989
1122
  b.size()
990
1123
 
1124
+ // @ts-expect-error ... ones() in a chain cannot take more dimensions
1125
+ assert.throws(() => math.chain(3).ones(2, 'dense').done(), /Error:.*ones/)
1126
+ // @ts-expect-error ... and neither can zeros()
1127
+ assert.throws(() => math.chain(3).zeros(2, 'sparse').done(), /Error:.*zeros/)
1128
+
991
1129
  // the Array data of a Matrix can be retrieved using valueOf()
992
1130
  const _array = a.valueOf()
993
1131
 
@@ -995,7 +1133,7 @@ Matrices examples
995
1133
  const _clone: math.Matrix = a.clone()
996
1134
 
997
1135
  // perform operations with matrices
998
- math.sqrt(a)
1136
+ math.map(a, math.sqrt)
999
1137
  math.factorial(a)
1000
1138
 
1001
1139
  // create and manipulate matrices. Arrays and Matrices can be used mixed.
@@ -1143,6 +1281,69 @@ Matrices examples
1143
1281
  }
1144
1282
  }
1145
1283
 
1284
+ /*
1285
+ Math types examples: Type results after multiplying 'MathTypes' with matrices
1286
+ */
1287
+ {
1288
+ const math = create(all, {})
1289
+
1290
+ const abc: MathArray = [1, 2, 3, 4]
1291
+ const bcd: MathArray = [
1292
+ [1, 2, 3, 4],
1293
+ [2, 3, 4, 5],
1294
+ [4, 5, 6, 7],
1295
+ [5, 6, 7, 8],
1296
+ ]
1297
+
1298
+ const Mbcd = math.matrix(bcd)
1299
+ const Mabc = math.matrix(abc)
1300
+
1301
+ // Number
1302
+ const _r1 = math.multiply(1, 2)
1303
+
1304
+ // Unit
1305
+ const a = math.unit(45, 'cm') // 450 mm
1306
+ const b = math.unit(45, 'cm') // 450 mm
1307
+ const _r2 = math.multiply(a, b)
1308
+
1309
+ // 1D JS Array
1310
+ const r3 = math.multiply(abc, bcd)
1311
+ r3[1] // By default least promised valid syntax
1312
+
1313
+ // 2D JS Array
1314
+ const r12 = math.multiply(bcd, bcd)
1315
+ // Example to sort ambiguity between multidimensional & singledimensional arrays
1316
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1317
+ const multiDimensional = (x: any): x is any[][] => x.length && x[0].length
1318
+ if (multiDimensional(r12)) {
1319
+ r12[1][1]
1320
+ }
1321
+ r12[1] // Valid syntax
1322
+
1323
+ // Matrix: matrix * vector
1324
+ const r7 = math.multiply(Mabc, bcd)
1325
+ r7.toArray() // Matrix-es have toArray function
1326
+
1327
+ // Matrix
1328
+ const _r8 = math.multiply(Mabc, 4)
1329
+
1330
+ // Matrix
1331
+ const _r11 = math.multiply(4, Mabc)
1332
+
1333
+ // Matrix of units
1334
+ const _r9 = math.multiply(Mabc, a)
1335
+ const _r10 = math.multiply(a, Mabc)
1336
+
1337
+ // Matrix
1338
+ const _r6 = math.multiply(abc, Mbcd)
1339
+
1340
+ // 2D JS Array
1341
+ const _r5 = math.multiply(bcd, abc)
1342
+
1343
+ // Number
1344
+ const _r4 = math.multiply(abc, math.transpose(abc))
1345
+ }
1346
+
1146
1347
  /*
1147
1348
  Sparse matrices examples
1148
1349
  */
@@ -1218,6 +1419,7 @@ Units examples
1218
1419
  // use Unit as definition
1219
1420
  math.createUnit('c', { definition: b })
1220
1421
  math.createUnit('c', { definition: b }, { override: true })
1422
+ math.createUnit('customUnit', math.unit(0.5, 'm'))
1221
1423
 
1222
1424
  // units can be added, subtracted, and multiplied or divided by numbers and by other units
1223
1425
  math.add(a, b)
@@ -2020,11 +2222,16 @@ Resolve examples
2020
2222
  {
2021
2223
  const math = create(all, {})
2022
2224
 
2225
+ expectTypeOf(math.resolve('x + y')).toMatchTypeOf<MathNode>()
2023
2226
  expectTypeOf(math.resolve(math.parse('x + y'))).toMatchTypeOf<MathNode>()
2024
2227
  expectTypeOf(
2025
2228
  math.resolve(math.parse('x + y'), { x: 0 })
2026
2229
  ).toMatchTypeOf<MathNode>()
2027
- expectTypeOf(math.resolve([math.parse('x + y')], { x: 0 })).toMatchTypeOf<
2028
- MathNode[]
2029
- >()
2230
+ expectTypeOf(math.resolve('x + y', { x: 0 })).toMatchTypeOf<MathNode>()
2231
+ expectTypeOf(
2232
+ math.resolve([math.parse('x + y'), 'x*x'], { x: 0 })
2233
+ ).toMatchTypeOf<MathNode[]>()
2234
+ expectTypeOf(
2235
+ math.resolve(math.matrix(['x', 'y']))
2236
+ ).toMatchTypeOf<math.Matrix>()
2030
2237
  }
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- // TODO: remove these polyfills as soon as we have a build process that transpiles the code to ES5
4
- // Polyfill for IE 11 (Number.isFinite is used in `complex.js`)
5
- // source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite
6
- Number.isFinite = Number.isFinite || function (value) {
7
- return typeof value === 'number' && isFinite(value);
8
- }; // Polyfill for IE 11
9
- // source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN
10
-
11
-
12
- Number.isNaN = Number.isNaN || function (value) {
13
- return value !== value; // eslint-disable-line no-self-compare
14
- };
@@ -1,12 +0,0 @@
1
- // TODO: remove these polyfills as soon as we have a build process that transpiles the code to ES5
2
- // Polyfill for IE 11 (Number.isFinite is used in `complex.js`)
3
- // source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite
4
- Number.isFinite = Number.isFinite || function (value) {
5
- return typeof value === 'number' && isFinite(value);
6
- }; // Polyfill for IE 11
7
- // source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN
8
-
9
-
10
- Number.isNaN = Number.isNaN || function (value) {
11
- return value !== value; // eslint-disable-line no-self-compare
12
- };