mathjs 10.6.3 → 11.0.1

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 (451) 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 +25 -33
  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 +90 -115
  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 +14 -32
  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 +34 -28
  90. package/lib/cjs/function/arithmetic/floor.js +57 -47
  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 +2 -2
  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 +83 -95
  104. package/lib/cjs/function/arithmetic/nthRoots.js +2 -2
  105. package/lib/cjs/function/arithmetic/round.js +56 -42
  106. package/lib/cjs/function/arithmetic/sign.js +14 -10
  107. package/lib/cjs/function/arithmetic/sqrt.js +5 -9
  108. package/lib/cjs/function/arithmetic/square.js +6 -10
  109. package/lib/cjs/function/arithmetic/subtract.js +44 -100
  110. package/lib/cjs/function/arithmetic/unaryMinus.js +14 -16
  111. package/lib/cjs/function/arithmetic/unaryPlus.js +6 -4
  112. package/lib/cjs/function/bitwise/bitAnd.js +17 -61
  113. package/lib/cjs/function/bitwise/bitNot.js +6 -4
  114. package/lib/cjs/function/bitwise/bitOr.js +16 -60
  115. package/lib/cjs/function/bitwise/bitXor.js +17 -61
  116. package/lib/cjs/function/bitwise/leftShift.js +69 -82
  117. package/lib/cjs/function/bitwise/rightArithShift.js +69 -82
  118. package/lib/cjs/function/bitwise/rightLogShift.js +69 -82
  119. package/lib/cjs/function/bitwise/useMatrixForArrayScalar.js +36 -0
  120. package/lib/cjs/function/complex/arg.js +5 -3
  121. package/lib/cjs/function/complex/conj.js +6 -7
  122. package/lib/cjs/function/complex/im.js +7 -8
  123. package/lib/cjs/function/complex/re.js +6 -10
  124. package/lib/cjs/function/geometry/distance.js +2 -2
  125. package/lib/cjs/function/logical/and.js +74 -80
  126. package/lib/cjs/function/logical/not.js +13 -6
  127. package/lib/cjs/function/logical/or.js +21 -63
  128. package/lib/cjs/function/logical/xor.js +21 -63
  129. package/lib/cjs/function/matrix/diff.js +11 -8
  130. package/lib/cjs/function/matrix/eigs/complexEigs.js +5 -5
  131. package/lib/cjs/function/matrix/fft.js +2 -2
  132. package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
  133. package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
  134. package/lib/cjs/function/matrix/ones.js +2 -1
  135. package/lib/cjs/function/matrix/rotate.js +5 -5
  136. package/lib/cjs/function/matrix/sqrtm.js +3 -2
  137. package/lib/cjs/function/matrix/transpose.js +47 -48
  138. package/lib/cjs/function/matrix/zeros.js +2 -1
  139. package/lib/cjs/function/probability/factorial.js +5 -3
  140. package/lib/cjs/function/probability/gamma.js +38 -40
  141. package/lib/cjs/function/probability/kldivergence.js +5 -2
  142. package/lib/cjs/function/probability/lgamma.js +30 -30
  143. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  144. package/lib/cjs/function/relational/compare.js +21 -67
  145. package/lib/cjs/function/relational/compareNatural.js +59 -54
  146. package/lib/cjs/function/relational/compareText.js +10 -43
  147. package/lib/cjs/function/relational/compareUnits.js +24 -0
  148. package/lib/cjs/function/relational/equal.js +19 -80
  149. package/lib/cjs/function/relational/equalScalar.js +7 -9
  150. package/lib/cjs/function/relational/larger.js +21 -67
  151. package/lib/cjs/function/relational/largerEq.js +21 -67
  152. package/lib/cjs/function/relational/smaller.js +21 -67
  153. package/lib/cjs/function/relational/smallerEq.js +21 -67
  154. package/lib/cjs/function/relational/unequal.js +19 -80
  155. package/lib/cjs/function/special/erf.js +5 -3
  156. package/lib/cjs/function/statistics/std.js +11 -2
  157. package/lib/cjs/function/string/format.js +2 -2
  158. package/lib/cjs/function/string/hex.js +1 -2
  159. package/lib/cjs/function/trigonometry/acos.js +4 -8
  160. package/lib/cjs/function/trigonometry/acosh.js +2 -7
  161. package/lib/cjs/function/trigonometry/acot.js +6 -11
  162. package/lib/cjs/function/trigonometry/acoth.js +4 -8
  163. package/lib/cjs/function/trigonometry/acsc.js +6 -11
  164. package/lib/cjs/function/trigonometry/acsch.js +4 -8
  165. package/lib/cjs/function/trigonometry/asec.js +6 -10
  166. package/lib/cjs/function/trigonometry/asech.js +4 -8
  167. package/lib/cjs/function/trigonometry/asin.js +5 -10
  168. package/lib/cjs/function/trigonometry/asinh.js +4 -9
  169. package/lib/cjs/function/trigonometry/atan.js +5 -11
  170. package/lib/cjs/function/trigonometry/atan2.js +25 -63
  171. package/lib/cjs/function/trigonometry/atanh.js +4 -9
  172. package/lib/cjs/function/trigonometry/cos.js +11 -20
  173. package/lib/cjs/function/trigonometry/cosh.js +5 -19
  174. package/lib/cjs/function/trigonometry/cot.js +9 -15
  175. package/lib/cjs/function/trigonometry/coth.js +4 -15
  176. package/lib/cjs/function/trigonometry/csc.js +11 -17
  177. package/lib/cjs/function/trigonometry/csch.js +4 -15
  178. package/lib/cjs/function/trigonometry/sec.js +11 -17
  179. package/lib/cjs/function/trigonometry/sech.js +4 -15
  180. package/lib/cjs/function/trigonometry/sin.js +11 -21
  181. package/lib/cjs/function/trigonometry/sinh.js +5 -20
  182. package/lib/cjs/function/trigonometry/tan.js +11 -21
  183. package/lib/cjs/function/trigonometry/tanh.js +5 -20
  184. package/lib/cjs/function/trigonometry/trigUnit.js +24 -0
  185. package/lib/cjs/function/unit/to.js +7 -41
  186. package/lib/cjs/function/utils/clone.js +1 -1
  187. package/lib/cjs/function/utils/hasNumericValue.js +5 -1
  188. package/lib/cjs/function/utils/isInteger.js +6 -4
  189. package/lib/cjs/function/utils/isNaN.js +1 -1
  190. package/lib/cjs/function/utils/isNegative.js +11 -7
  191. package/lib/cjs/function/utils/isNumeric.js +6 -4
  192. package/lib/cjs/function/utils/isPositive.js +11 -7
  193. package/lib/cjs/function/utils/isPrime.js +5 -3
  194. package/lib/cjs/function/utils/isZero.js +21 -17
  195. package/lib/cjs/function/utils/numeric.js +11 -4
  196. package/lib/cjs/function/utils/typeOf.js +38 -44
  197. package/lib/cjs/header.js +2 -2
  198. package/lib/cjs/plain/bignumber/index.js +1 -1
  199. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  200. package/lib/cjs/type/bignumber/function/bignumber.js +6 -4
  201. package/lib/cjs/type/boolean.js +7 -5
  202. package/lib/cjs/type/chain/Chain.js +23 -3
  203. package/lib/cjs/type/complex/Complex.js +18 -14
  204. package/lib/cjs/type/complex/function/complex.js +6 -4
  205. package/lib/cjs/type/fraction/Fraction.js +10 -6
  206. package/lib/cjs/type/fraction/function/fraction.js +6 -4
  207. package/lib/cjs/type/matrix/DenseMatrix.js +21 -6
  208. package/lib/cjs/type/matrix/SparseMatrix.js +12 -2
  209. package/lib/cjs/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +4 -4
  210. package/lib/cjs/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +5 -5
  211. package/lib/cjs/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +5 -5
  212. package/lib/cjs/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +7 -7
  213. package/lib/cjs/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +5 -5
  214. package/lib/cjs/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +5 -5
  215. package/lib/cjs/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +5 -5
  216. package/lib/cjs/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +6 -6
  217. package/lib/cjs/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +5 -5
  218. package/lib/cjs/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +5 -5
  219. package/lib/cjs/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +5 -5
  220. package/lib/cjs/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +5 -5
  221. package/lib/cjs/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +5 -5
  222. package/lib/cjs/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +5 -5
  223. package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +238 -0
  224. package/lib/cjs/type/number.js +6 -4
  225. package/lib/cjs/type/string.js +7 -5
  226. package/lib/cjs/type/unit/Unit.js +69 -21
  227. package/lib/cjs/type/unit/function/createUnit.js +2 -1
  228. package/lib/cjs/type/unit/function/unit.js +9 -3
  229. package/lib/cjs/utils/customs.js +2 -2
  230. package/lib/cjs/utils/emitter.js +1 -1
  231. package/lib/cjs/utils/function.js +2 -2
  232. package/lib/cjs/utils/is.js +27 -25
  233. package/lib/cjs/utils/latex.js +3 -3
  234. package/lib/cjs/utils/lruQueue.js +1 -1
  235. package/lib/cjs/utils/map.js +3 -3
  236. package/lib/cjs/utils/object.js +2 -2
  237. package/lib/cjs/utils/snapshot.js +30 -57
  238. package/lib/cjs/utils/string.js +3 -3
  239. package/lib/cjs/version.js +1 -1
  240. package/lib/esm/core/create.js +2 -1
  241. package/lib/esm/core/function/import.js +2 -12
  242. package/lib/esm/core/function/typed.js +47 -11
  243. package/lib/esm/entry/dependenciesAny/dependenciesChainClass.generated.js +2 -0
  244. package/lib/esm/entry/dependenciesAny/dependenciesKldivergence.generated.js +2 -0
  245. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
  246. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +2 -0
  247. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +2 -0
  248. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +34 -0
  249. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +4 -0
  250. package/lib/esm/entry/dependenciesAny/dependenciesSqrtm.generated.js +2 -0
  251. package/lib/esm/entry/dependenciesAny/dependenciesStd.generated.js +2 -0
  252. package/lib/esm/entry/dependenciesAny/dependenciesStdTransform.generated.js +2 -0
  253. package/lib/esm/entry/dependenciesAny.generated.js +1 -0
  254. package/lib/esm/entry/dependenciesNumber/dependenciesChainClass.generated.js +2 -0
  255. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +2 -0
  256. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +2 -0
  257. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +2 -0
  258. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +30 -0
  259. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +4 -0
  260. package/lib/esm/entry/dependenciesNumber/dependenciesStd.generated.js +2 -0
  261. package/lib/esm/entry/dependenciesNumber/dependenciesStdTransform.generated.js +2 -0
  262. package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
  263. package/lib/esm/entry/impureFunctionsAny.generated.js +73 -48
  264. package/lib/esm/entry/impureFunctionsNumber.generated.js +81 -58
  265. package/lib/esm/entry/pureFunctionsAny.generated.js +39 -36
  266. package/lib/esm/entry/pureFunctionsNumber.generated.js +14 -13
  267. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
  268. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +8 -0
  269. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  270. package/lib/esm/expression/node/AccessorNode.js +158 -153
  271. package/lib/esm/expression/node/ArrayNode.js +162 -154
  272. package/lib/esm/expression/node/AssignmentNode.js +257 -245
  273. package/lib/esm/expression/node/BlockNode.js +177 -163
  274. package/lib/esm/expression/node/ConditionalNode.js +197 -174
  275. package/lib/esm/expression/node/ConstantNode.js +171 -163
  276. package/lib/esm/expression/node/FunctionAssignmentNode.js +205 -180
  277. package/lib/esm/expression/node/FunctionNode.js +407 -407
  278. package/lib/esm/expression/node/IndexNode.js +206 -198
  279. package/lib/esm/expression/node/Node.js +325 -325
  280. package/lib/esm/expression/node/ObjectNode.js +166 -157
  281. package/lib/esm/expression/node/OperatorNode.js +414 -377
  282. package/lib/esm/expression/node/ParenthesisNode.js +146 -138
  283. package/lib/esm/expression/node/RangeNode.js +221 -212
  284. package/lib/esm/expression/node/RelationalNode.js +190 -176
  285. package/lib/esm/expression/node/SymbolNode.js +161 -152
  286. package/lib/esm/expression/operators.js +96 -4
  287. package/lib/esm/expression/parse.js +25 -7
  288. package/lib/esm/expression/transform/std.transform.js +3 -1
  289. package/lib/esm/factoriesAny.js +1 -0
  290. package/lib/esm/factoriesNumber.js +1 -0
  291. package/lib/esm/function/algebra/derivative.js +25 -33
  292. package/lib/esm/function/algebra/leafCount.js +0 -3
  293. package/lib/esm/function/algebra/rationalize.js +83 -114
  294. package/lib/esm/function/algebra/resolve.js +25 -16
  295. package/lib/esm/function/algebra/simplify.js +85 -113
  296. package/lib/esm/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +39 -9
  297. package/lib/esm/function/algebra/simplifyCore.js +192 -91
  298. package/lib/esm/function/algebra/symbolicEqual.js +14 -32
  299. package/lib/esm/function/arithmetic/abs.js +3 -16
  300. package/lib/esm/function/arithmetic/add.js +21 -65
  301. package/lib/esm/function/arithmetic/addScalar.js +11 -5
  302. package/lib/esm/function/arithmetic/cbrt.js +7 -10
  303. package/lib/esm/function/arithmetic/ceil.js +25 -25
  304. package/lib/esm/function/arithmetic/cube.js +5 -9
  305. package/lib/esm/function/arithmetic/divide.js +7 -7
  306. package/lib/esm/function/arithmetic/divideScalar.js +2 -19
  307. package/lib/esm/function/arithmetic/dotDivide.js +22 -64
  308. package/lib/esm/function/arithmetic/dotMultiply.js +16 -60
  309. package/lib/esm/function/arithmetic/dotPow.js +30 -62
  310. package/lib/esm/function/arithmetic/exp.js +8 -11
  311. package/lib/esm/function/arithmetic/expm1.js +10 -9
  312. package/lib/esm/function/arithmetic/fix.js +18 -18
  313. package/lib/esm/function/arithmetic/floor.js +26 -26
  314. package/lib/esm/function/arithmetic/gcd.js +26 -70
  315. package/lib/esm/function/arithmetic/hypot.js +7 -6
  316. package/lib/esm/function/arithmetic/invmod.js +1 -1
  317. package/lib/esm/function/arithmetic/lcm.js +26 -70
  318. package/lib/esm/function/arithmetic/log.js +7 -10
  319. package/lib/esm/function/arithmetic/log10.js +1 -3
  320. package/lib/esm/function/arithmetic/log1p.js +4 -6
  321. package/lib/esm/function/arithmetic/log2.js +1 -3
  322. package/lib/esm/function/arithmetic/mod.js +21 -62
  323. package/lib/esm/function/arithmetic/multiply.js +23 -27
  324. package/lib/esm/function/arithmetic/multiplyScalar.js +2 -13
  325. package/lib/esm/function/arithmetic/norm.js +0 -4
  326. package/lib/esm/function/arithmetic/nthRoot.js +41 -76
  327. package/lib/esm/function/arithmetic/nthRoots.js +2 -2
  328. package/lib/esm/function/arithmetic/round.js +26 -28
  329. package/lib/esm/function/arithmetic/sign.js +5 -7
  330. package/lib/esm/function/arithmetic/sqrt.js +5 -8
  331. package/lib/esm/function/arithmetic/square.js +6 -9
  332. package/lib/esm/function/arithmetic/subtract.js +31 -95
  333. package/lib/esm/function/arithmetic/unaryMinus.js +6 -16
  334. package/lib/esm/function/arithmetic/unaryPlus.js +2 -4
  335. package/lib/esm/function/bitwise/bitAnd.js +16 -59
  336. package/lib/esm/function/bitwise/bitNot.js +2 -4
  337. package/lib/esm/function/bitwise/bitOr.js +16 -59
  338. package/lib/esm/function/bitwise/bitXor.js +16 -59
  339. package/lib/esm/function/bitwise/leftShift.js +39 -61
  340. package/lib/esm/function/bitwise/rightArithShift.js +39 -61
  341. package/lib/esm/function/bitwise/rightLogShift.js +39 -61
  342. package/lib/esm/function/bitwise/useMatrixForArrayScalar.js +13 -0
  343. package/lib/esm/function/complex/arg.js +1 -3
  344. package/lib/esm/function/complex/conj.js +3 -12
  345. package/lib/esm/function/complex/im.js +4 -15
  346. package/lib/esm/function/complex/re.js +3 -15
  347. package/lib/esm/function/geometry/distance.js +2 -2
  348. package/lib/esm/function/logical/and.js +35 -57
  349. package/lib/esm/function/logical/not.js +3 -6
  350. package/lib/esm/function/logical/or.js +16 -61
  351. package/lib/esm/function/logical/xor.js +16 -61
  352. package/lib/esm/function/matrix/diff.js +3 -8
  353. package/lib/esm/function/matrix/ones.js +2 -1
  354. package/lib/esm/function/matrix/rotate.js +5 -5
  355. package/lib/esm/function/matrix/sqrtm.js +3 -2
  356. package/lib/esm/function/matrix/transpose.js +47 -50
  357. package/lib/esm/function/matrix/zeros.js +2 -1
  358. package/lib/esm/function/probability/factorial.js +1 -3
  359. package/lib/esm/function/probability/gamma.js +38 -39
  360. package/lib/esm/function/probability/kldivergence.js +3 -2
  361. package/lib/esm/function/probability/lgamma.js +29 -29
  362. package/lib/esm/function/relational/compare.js +21 -67
  363. package/lib/esm/function/relational/compareNatural.js +54 -49
  364. package/lib/esm/function/relational/compareText.js +10 -42
  365. package/lib/esm/function/relational/compareUnits.js +15 -0
  366. package/lib/esm/function/relational/equal.js +19 -79
  367. package/lib/esm/function/relational/equalScalar.js +6 -9
  368. package/lib/esm/function/relational/larger.js +23 -73
  369. package/lib/esm/function/relational/largerEq.js +23 -73
  370. package/lib/esm/function/relational/smaller.js +23 -73
  371. package/lib/esm/function/relational/smallerEq.js +23 -73
  372. package/lib/esm/function/relational/unequal.js +19 -79
  373. package/lib/esm/function/special/erf.js +1 -3
  374. package/lib/esm/function/statistics/std.js +10 -2
  375. package/lib/esm/function/string/format.js +2 -2
  376. package/lib/esm/function/string/hex.js +1 -2
  377. package/lib/esm/function/trigonometry/acos.js +4 -7
  378. package/lib/esm/function/trigonometry/acosh.js +2 -6
  379. package/lib/esm/function/trigonometry/acot.js +6 -10
  380. package/lib/esm/function/trigonometry/acoth.js +4 -7
  381. package/lib/esm/function/trigonometry/acsc.js +6 -10
  382. package/lib/esm/function/trigonometry/acsch.js +4 -7
  383. package/lib/esm/function/trigonometry/asec.js +6 -9
  384. package/lib/esm/function/trigonometry/asech.js +4 -7
  385. package/lib/esm/function/trigonometry/asin.js +5 -9
  386. package/lib/esm/function/trigonometry/asinh.js +4 -8
  387. package/lib/esm/function/trigonometry/atan.js +5 -10
  388. package/lib/esm/function/trigonometry/atan2.js +26 -65
  389. package/lib/esm/function/trigonometry/atanh.js +4 -8
  390. package/lib/esm/function/trigonometry/cos.js +11 -22
  391. package/lib/esm/function/trigonometry/cosh.js +5 -20
  392. package/lib/esm/function/trigonometry/cot.js +10 -20
  393. package/lib/esm/function/trigonometry/coth.js +6 -20
  394. package/lib/esm/function/trigonometry/csc.js +12 -22
  395. package/lib/esm/function/trigonometry/csch.js +6 -20
  396. package/lib/esm/function/trigonometry/sec.js +12 -22
  397. package/lib/esm/function/trigonometry/sech.js +6 -20
  398. package/lib/esm/function/trigonometry/sin.js +11 -23
  399. package/lib/esm/function/trigonometry/sinh.js +5 -21
  400. package/lib/esm/function/trigonometry/tan.js +11 -23
  401. package/lib/esm/function/trigonometry/tanh.js +5 -21
  402. package/lib/esm/function/trigonometry/trigUnit.js +15 -0
  403. package/lib/esm/function/unit/to.js +8 -43
  404. package/lib/esm/function/utils/clone.js +1 -1
  405. package/lib/esm/function/utils/hasNumericValue.js +3 -1
  406. package/lib/esm/function/utils/isInteger.js +2 -4
  407. package/lib/esm/function/utils/isNaN.js +1 -1
  408. package/lib/esm/function/utils/isNegative.js +3 -7
  409. package/lib/esm/function/utils/isNumeric.js +4 -10
  410. package/lib/esm/function/utils/isPositive.js +3 -7
  411. package/lib/esm/function/utils/isPrime.js +1 -3
  412. package/lib/esm/function/utils/isZero.js +13 -17
  413. package/lib/esm/function/utils/numeric.js +11 -4
  414. package/lib/esm/function/utils/typeOf.js +38 -44
  415. package/lib/esm/type/bignumber/function/bignumber.js +1 -3
  416. package/lib/esm/type/boolean.js +1 -3
  417. package/lib/esm/type/chain/Chain.js +23 -3
  418. package/lib/esm/type/complex/Complex.js +4 -0
  419. package/lib/esm/type/complex/function/complex.js +1 -3
  420. package/lib/esm/type/fraction/Fraction.js +4 -0
  421. package/lib/esm/type/fraction/function/fraction.js +1 -3
  422. package/lib/esm/type/matrix/DenseMatrix.js +15 -1
  423. package/lib/esm/type/matrix/SparseMatrix.js +9 -0
  424. package/lib/esm/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +2 -2
  425. package/lib/esm/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +3 -3
  426. package/lib/esm/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +3 -3
  427. package/lib/esm/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +5 -5
  428. package/lib/esm/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +3 -3
  429. package/lib/esm/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +3 -3
  430. package/lib/esm/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +3 -3
  431. package/lib/esm/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +4 -4
  432. package/lib/esm/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +3 -3
  433. package/lib/esm/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +3 -3
  434. package/lib/esm/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +3 -3
  435. package/lib/esm/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +3 -3
  436. package/lib/esm/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +3 -3
  437. package/lib/esm/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +3 -3
  438. package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +168 -0
  439. package/lib/esm/type/number.js +1 -3
  440. package/lib/esm/type/string.js +1 -3
  441. package/lib/esm/type/unit/Unit.js +61 -13
  442. package/lib/esm/type/unit/function/createUnit.js +2 -1
  443. package/lib/esm/type/unit/function/unit.js +5 -3
  444. package/lib/esm/utils/is.js +18 -18
  445. package/lib/esm/utils/snapshot.js +22 -48
  446. package/lib/esm/version.js +1 -1
  447. package/package.json +21 -24
  448. package/types/index.d.ts +215 -183
  449. package/types/index.ts +358 -144
  450. package/lib/cjs/utils/polyfills.js +0 -14
  451. package/lib/esm/utils/polyfills.js +0 -12
@@ -1,5 +1,4 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  import { sechNumber } from '../../plain/number/index.js';
4
3
  var name = 'sech';
5
4
  var dependencies = ['typed', 'BigNumber'];
@@ -13,7 +12,8 @@ export var createSech = /* #__PURE__ */factory(name, dependencies, _ref => {
13
12
  * Calculate the hyperbolic secant of a value,
14
13
  * defined as `sech(x) = 1 / cosh(x)`.
15
14
  *
16
- * For matrices, the function is evaluated element wise.
15
+ * To avoid confusion with the matrix hyperbolic secant, this function does
16
+ * not apply to matrices.
17
17
  *
18
18
  * Syntax:
19
19
  *
@@ -29,26 +29,12 @@ export var createSech = /* #__PURE__ */factory(name, dependencies, _ref => {
29
29
  *
30
30
  * cosh, csch, coth
31
31
  *
32
- * @param {number | Complex | Unit | Array | Matrix} x Function input
33
- * @return {number | Complex | Array | Matrix} Hyperbolic secant of x
32
+ * @param {number | BigNumber | Complex} x Function input
33
+ * @return {number | BigNumber | Complex} Hyperbolic secant of x
34
34
  */
35
35
  return typed(name, {
36
36
  number: sechNumber,
37
- Complex: function Complex(x) {
38
- return x.sech();
39
- },
40
- BigNumber: function BigNumber(x) {
41
- return new _BigNumber(1).div(x.cosh());
42
- },
43
- Unit: function Unit(x) {
44
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
45
- throw new TypeError('Unit in function sech is no angle');
46
- }
47
-
48
- return this(x.value);
49
- },
50
- 'Array | Matrix': function ArrayMatrix(x) {
51
- return deepMap(x, this);
52
- }
37
+ Complex: x => x.sech(),
38
+ BigNumber: x => new _BigNumber(1).div(x.cosh())
53
39
  });
54
40
  });
@@ -1,16 +1,19 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
2
+ import { createTrigUnit } from './trigUnit.js';
3
3
  var name = 'sin';
4
4
  var dependencies = ['typed'];
5
5
  export var createSin = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed
8
8
  } = _ref;
9
-
9
+ var trigUnit = createTrigUnit({
10
+ typed
11
+ });
10
12
  /**
11
13
  * Calculate the sine of a value.
12
14
  *
13
- * For matrices, the function is evaluated element wise.
15
+ * To avoid confusion with the matrix sine, this function does not apply
16
+ * to matrices.
14
17
  *
15
18
  * Syntax:
16
19
  *
@@ -30,27 +33,12 @@ export var createSin = /* #__PURE__ */factory(name, dependencies, _ref => {
30
33
  *
31
34
  * cos, tan
32
35
  *
33
- * @param {number | BigNumber | Complex | Unit | Array | Matrix} x Function input
34
- * @return {number | BigNumber | Complex | Array | Matrix} Sine of x
36
+ * @param {number | BigNumber | Complex | Unit} x Function input
37
+ * @return {number | BigNumber | Complex} Sine of x
35
38
  */
39
+
36
40
  return typed(name, {
37
41
  number: Math.sin,
38
- Complex: function Complex(x) {
39
- return x.sin();
40
- },
41
- BigNumber: function BigNumber(x) {
42
- return x.sin();
43
- },
44
- Unit: function Unit(x) {
45
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
46
- throw new TypeError('Unit in function sin is no angle');
47
- }
48
-
49
- return this(x.value);
50
- },
51
- 'Array | Matrix': function ArrayMatrix(x) {
52
- // deep map collection, skip zeros since sin(0) = 0
53
- return deepMap(x, this, true);
54
- }
55
- });
42
+ 'Complex | BigNumber': x => x.sin()
43
+ }, trigUnit);
56
44
  });
@@ -1,5 +1,4 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  import { sinhNumber } from '../../plain/number/index.js';
4
3
  var name = 'sinh';
5
4
  var dependencies = ['typed'];
@@ -12,7 +11,8 @@ export var createSinh = /* #__PURE__ */factory(name, dependencies, _ref => {
12
11
  * Calculate the hyperbolic sine of a value,
13
12
  * defined as `sinh(x) = 1/2 * (exp(x) - exp(-x))`.
14
13
  *
15
- * For matrices, the function is evaluated element wise.
14
+ * To avoid confusion with the matrix hyperbolic sine, this function does
15
+ * not apply to matrices.
16
16
  *
17
17
  * Syntax:
18
18
  *
@@ -26,27 +26,11 @@ export var createSinh = /* #__PURE__ */factory(name, dependencies, _ref => {
26
26
  *
27
27
  * cosh, tanh
28
28
  *
29
- * @param {number | BigNumber | Complex | Unit | Array | Matrix} x Function input
30
- * @return {number | BigNumber | Complex | Array | Matrix} Hyperbolic sine of x
29
+ * @param {number | BigNumber | Complex} x Function input
30
+ * @return {number | BigNumber | Complex} Hyperbolic sine of x
31
31
  */
32
32
  return typed(name, {
33
33
  number: sinhNumber,
34
- Complex: function Complex(x) {
35
- return x.sinh();
36
- },
37
- BigNumber: function BigNumber(x) {
38
- return x.sinh();
39
- },
40
- Unit: function Unit(x) {
41
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
42
- throw new TypeError('Unit in function sinh is no angle');
43
- }
44
-
45
- return this(x.value);
46
- },
47
- 'Array | Matrix': function ArrayMatrix(x) {
48
- // deep map collection, skip zeros since sinh(0) = 0
49
- return deepMap(x, this, true);
50
- }
34
+ 'Complex | BigNumber': x => x.sinh()
51
35
  });
52
36
  });
@@ -1,16 +1,19 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
2
+ import { createTrigUnit } from './trigUnit.js';
3
3
  var name = 'tan';
4
4
  var dependencies = ['typed'];
5
5
  export var createTan = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed
8
8
  } = _ref;
9
-
9
+ var trigUnit = createTrigUnit({
10
+ typed
11
+ });
10
12
  /**
11
13
  * Calculate the tangent of a value. `tan(x)` is equal to `sin(x) / cos(x)`.
12
14
  *
13
- * For matrices, the function is evaluated element wise.
15
+ * To avoid confusion with the matrix tangent, this function does not apply
16
+ * to matrices.
14
17
  *
15
18
  * Syntax:
16
19
  *
@@ -27,27 +30,12 @@ export var createTan = /* #__PURE__ */factory(name, dependencies, _ref => {
27
30
  *
28
31
  * atan, sin, cos
29
32
  *
30
- * @param {number | BigNumber | Complex | Unit | Array | Matrix} x Function input
31
- * @return {number | BigNumber | Complex | Array | Matrix} Tangent of x
33
+ * @param {number | BigNumber | Complex | Unit} x Function input
34
+ * @return {number | BigNumber | Complex} Tangent of x
32
35
  */
36
+
33
37
  return typed(name, {
34
38
  number: Math.tan,
35
- Complex: function Complex(x) {
36
- return x.tan();
37
- },
38
- BigNumber: function BigNumber(x) {
39
- return x.tan();
40
- },
41
- Unit: function Unit(x) {
42
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
43
- throw new TypeError('Unit in function tan is no angle');
44
- }
45
-
46
- return this(x.value);
47
- },
48
- 'Array | Matrix': function ArrayMatrix(x) {
49
- // deep map collection, skip zeros since tan(0) = 0
50
- return deepMap(x, this, true);
51
- }
52
- });
39
+ 'Complex | BigNumber': x => x.tan()
40
+ }, trigUnit);
53
41
  });
@@ -1,5 +1,4 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  import { tanh as _tanh } from '../../utils/number.js';
4
3
  var name = 'tanh';
5
4
  var dependencies = ['typed'];
@@ -12,7 +11,8 @@ export var createTanh = /* #__PURE__ */factory(name, dependencies, _ref => {
12
11
  * Calculate the hyperbolic tangent of a value,
13
12
  * defined as `tanh(x) = (exp(2 * x) - 1) / (exp(2 * x) + 1)`.
14
13
  *
15
- * For matrices, the function is evaluated element wise.
14
+ * To avoid confusion with matrix hyperbolic tangent, this function does
15
+ * not apply to matrices.
16
16
  *
17
17
  * Syntax:
18
18
  *
@@ -29,27 +29,11 @@ export var createTanh = /* #__PURE__ */factory(name, dependencies, _ref => {
29
29
  *
30
30
  * sinh, cosh, coth
31
31
  *
32
- * @param {number | BigNumber | Complex | Unit | Array | Matrix} x Function input
33
- * @return {number | BigNumber | Complex | Array | Matrix} Hyperbolic tangent of x
32
+ * @param {number | BigNumber | Complex} x Function input
33
+ * @return {number | BigNumber | Complex} Hyperbolic tangent of x
34
34
  */
35
35
  return typed('tanh', {
36
36
  number: _tanh,
37
- Complex: function Complex(x) {
38
- return x.tanh();
39
- },
40
- BigNumber: function BigNumber(x) {
41
- return x.tanh();
42
- },
43
- Unit: function Unit(x) {
44
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
45
- throw new TypeError('Unit in function tanh is no angle');
46
- }
47
-
48
- return this(x.value);
49
- },
50
- 'Array | Matrix': function ArrayMatrix(x) {
51
- // deep map collection, skip zeros since tanh(0) = 0
52
- return deepMap(x, this, true);
53
- }
37
+ 'Complex | BigNumber': x => x.tanh()
54
38
  });
55
39
  });
@@ -0,0 +1,15 @@
1
+ import { factory } from '../../utils/factory.js';
2
+ export var createTrigUnit = /* #__PURE__ */factory('trigUnit', ['typed'], _ref => {
3
+ var {
4
+ typed
5
+ } = _ref;
6
+ return {
7
+ Unit: typed.referToSelf(self => x => {
8
+ if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
9
+ throw new TypeError('Unit in function cot is no angle');
10
+ }
11
+
12
+ return typed.find(self, x.valueType())(x.value);
13
+ })
14
+ };
15
+ });
@@ -1,6 +1,5 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { createAlgorithm13 } from '../../type/matrix/utils/algorithm13.js';
3
- import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
2
+ import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
4
3
  var name = 'to';
5
4
  var dependencies = ['typed', 'matrix'];
6
5
  export var createTo = /* #__PURE__ */factory(name, dependencies, _ref => {
@@ -8,11 +7,9 @@ export var createTo = /* #__PURE__ */factory(name, dependencies, _ref => {
8
7
  typed,
9
8
  matrix
10
9
  } = _ref;
11
- var algorithm13 = createAlgorithm13({
12
- typed
13
- });
14
- var algorithm14 = createAlgorithm14({
15
- typed
10
+ var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
11
+ typed,
12
+ matrix
16
13
  });
17
14
  /**
18
15
  * Change the unit of a value.
@@ -40,40 +37,8 @@ export var createTo = /* #__PURE__ */factory(name, dependencies, _ref => {
40
37
  */
41
38
 
42
39
  return typed(name, {
43
- 'Unit, Unit | string': function UnitUnitString(x, unit) {
44
- return x.to(unit);
45
- },
46
- 'Matrix, Matrix': function MatrixMatrix(x, y) {
47
- // SparseMatrix does not support Units
48
- return algorithm13(x, y, this);
49
- },
50
- 'Array, Array': function ArrayArray(x, y) {
51
- // use matrix implementation
52
- return this(matrix(x), matrix(y)).valueOf();
53
- },
54
- 'Array, Matrix': function ArrayMatrix(x, y) {
55
- // use matrix implementation
56
- return this(matrix(x), y);
57
- },
58
- 'Matrix, Array': function MatrixArray(x, y) {
59
- // use matrix implementation
60
- return this(x, matrix(y));
61
- },
62
- 'Matrix, any': function MatrixAny(x, y) {
63
- // SparseMatrix does not support Units
64
- return algorithm14(x, y, this, false);
65
- },
66
- 'any, Matrix': function anyMatrix(x, y) {
67
- // SparseMatrix does not support Units
68
- return algorithm14(y, x, this, true);
69
- },
70
- 'Array, any': function ArrayAny(x, y) {
71
- // use matrix implementation
72
- return algorithm14(matrix(x), y, this, false).valueOf();
73
- },
74
- 'any, Array': function anyArray(x, y) {
75
- // use matrix implementation
76
- return algorithm14(matrix(y), x, this, true).valueOf();
77
- }
78
- });
40
+ 'Unit, Unit | string': (x, unit) => x.to(unit)
41
+ }, matrixAlgorithmSuite({
42
+ Ds: true
43
+ }));
79
44
  });
@@ -17,7 +17,7 @@ export var createClone = /* #__PURE__ */factory(name, dependencies, _ref => {
17
17
  * Examples:
18
18
  *
19
19
  * math.clone(3.5) // returns number 3.5
20
- * math.clone(math.complex('2-4i') // returns Complex 2 - 4i
20
+ * math.clone(math.complex('2-4i')) // returns Complex 2 - 4i
21
21
  * math.clone(math.unit(45, 'deg')) // returns Unit 45 deg
22
22
  * math.clone([[1, 2], [3, 4]]) // returns Array [[1, 2], [3, 4]]
23
23
  * math.clone("hello world") // returns string "hello world"
@@ -24,7 +24,8 @@ export var createHasNumericValue = /* #__PURE__ */factory(name, dependencies, _r
24
24
  * math.hasNumericValue(0) // returns true
25
25
  * math.hasNumericValue(math.bignumber(500)) // returns true
26
26
  * math.hasNumericValue(math.fraction(4)) // returns true
27
- * math.hasNumericValue(math.complex('2-4i') // returns false
27
+ * math.hasNumericValue(math.complex('2-4i')) // returns false
28
+ * math.hasNumericValue(false) // returns true
28
29
  * math.hasNumericValue([2.3, 'foo', false]) // returns [true, false, true]
29
30
  *
30
31
  * See also:
@@ -37,6 +38,7 @@ export var createHasNumericValue = /* #__PURE__ */factory(name, dependencies, _r
37
38
  * Throws an error in case of unknown types.
38
39
  */
39
40
  return typed(name, {
41
+ boolean: () => true,
40
42
  string: function string(x) {
41
43
  return x.trim().length > 0 && !isNaN(Number(x));
42
44
  },
@@ -27,7 +27,7 @@ export var createIsInteger = /* #__PURE__ */factory(name, dependencies, _ref =>
27
27
  * math.isInteger(math.fraction(4)) // returns true
28
28
  * math.isInteger('3') // returns true
29
29
  * math.isInteger([3, 0.5, -2]) // returns [true, false, true]
30
- * math.isInteger(math.complex('2-4i') // throws an error
30
+ * math.isInteger(math.complex('2-4i')) // throws an error
31
31
  *
32
32
  * See also:
33
33
  *
@@ -46,8 +46,6 @@ export var createIsInteger = /* #__PURE__ */factory(name, dependencies, _ref =>
46
46
  Fraction: function Fraction(x) {
47
47
  return x.d === 1 && isFinite(x.n);
48
48
  },
49
- 'Array | Matrix': function ArrayMatrix(x) {
50
- return deepMap(x, this);
51
- }
49
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
52
50
  });
53
51
  });
@@ -27,7 +27,7 @@ export var createIsNaN = /* #__PURE__ */factory(name, dependencies, _ref => {
27
27
  * math.isNaN(math.bignumber(0)) // returns false
28
28
  * math.isNaN(math.fraction(-2, 5)) // returns false
29
29
  * math.isNaN('-2') // returns false
30
- * math.isNaN([2, 0, -3, NaN]') // returns [false, false, false, true]
30
+ * math.isNaN([2, 0, -3, NaN]) // returns [false, false, false, true]
31
31
  *
32
32
  * See also:
33
33
  *
@@ -27,7 +27,7 @@ export var createIsNegative = /* #__PURE__ */factory(name, dependencies, _ref =>
27
27
  * math.isNegative(math.bignumber(2)) // returns false
28
28
  * math.isNegative(math.fraction(-2, 5)) // returns true
29
29
  * math.isNegative('-2') // returns true
30
- * math.isNegative([2, 0, -3]') // returns [false, false, true]
30
+ * math.isNegative([2, 0, -3]) // returns [false, false, true]
31
31
  *
32
32
  * See also:
33
33
  *
@@ -45,11 +45,7 @@ export var createIsNegative = /* #__PURE__ */factory(name, dependencies, _ref =>
45
45
  Fraction: function Fraction(x) {
46
46
  return x.s < 0; // It's enough to decide on the sign
47
47
  },
48
- Unit: function Unit(x) {
49
- return this(x.value);
50
- },
51
- 'Array | Matrix': function ArrayMatrix(x) {
52
- return deepMap(x, this);
53
- }
48
+ Unit: typed.referToSelf(self => x => typed.find(self, x.valueType())(x.value)),
49
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
54
50
  });
55
51
  });
@@ -24,7 +24,7 @@ export var createIsNumeric = /* #__PURE__ */factory(name, dependencies, _ref =>
24
24
  * math.isNumeric(0) // returns true
25
25
  * math.isNumeric(math.bignumber(500)) // returns true
26
26
  * math.isNumeric(math.fraction(4)) // returns true
27
- * math.isNumeric(math.complex('2-4i') // returns false
27
+ * math.isNumeric(math.complex('2-4i')) // returns false
28
28
  * math.isNumeric([2.3, 'foo', false]) // returns [true, false, true]
29
29
  *
30
30
  * See also:
@@ -37,14 +37,8 @@ export var createIsNumeric = /* #__PURE__ */factory(name, dependencies, _ref =>
37
37
  * Throws an error in case of unknown types.
38
38
  */
39
39
  return typed(name, {
40
- 'number | BigNumber | Fraction | boolean': function numberBigNumberFractionBoolean() {
41
- return true;
42
- },
43
- 'Complex | Unit | string | null | undefined | Node': function ComplexUnitStringNullUndefinedNode() {
44
- return false;
45
- },
46
- 'Array | Matrix': function ArrayMatrix(x) {
47
- return deepMap(x, this);
48
- }
40
+ 'number | BigNumber | Fraction | boolean': () => true,
41
+ 'Complex | Unit | string | null | undefined | Node': () => false,
42
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
49
43
  });
50
44
  });
@@ -27,7 +27,7 @@ export var createIsPositive = /* #__PURE__ */factory(name, dependencies, _ref =>
27
27
  * math.isPositive(0.5) // returns true
28
28
  * math.isPositive(math.bignumber(2)) // returns true
29
29
  * math.isPositive(math.fraction(-2, 5)) // returns false
30
- * math.isPositive(math.fraction(1,3)) // returns false
30
+ * math.isPositive(math.fraction(1, 3)) // returns true
31
31
  * math.isPositive('2') // returns true
32
32
  * math.isPositive([2, 0, -3]) // returns [true, false, false]
33
33
  *
@@ -47,11 +47,7 @@ export var createIsPositive = /* #__PURE__ */factory(name, dependencies, _ref =>
47
47
  Fraction: function Fraction(x) {
48
48
  return x.s > 0 && x.n > 0;
49
49
  },
50
- Unit: function Unit(x) {
51
- return this(x.value);
52
- },
53
- 'Array | Matrix': function ArrayMatrix(x) {
54
- return deepMap(x, this);
55
- }
50
+ Unit: typed.referToSelf(self => x => typed.find(self, x.valueType())(x.value)),
51
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
56
52
  });
57
53
  });
@@ -135,8 +135,6 @@ export var createIsPrime = /* #__PURE__ */factory(name, dependencies, _ref => {
135
135
 
136
136
  return true;
137
137
  },
138
- 'Array | Matrix': function ArrayMatrix(x) {
139
- return deepMap(x, this);
140
- }
138
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
141
139
  });
142
140
  });
@@ -21,17 +21,17 @@ export var createIsZero = /* #__PURE__ */factory(name, dependencies, _ref => {
21
21
  *
22
22
  * Examples:
23
23
  *
24
- * math.isZero(0) // returns true
25
- * math.isZero(2) // returns false
26
- * math.isZero(0.5) // returns false
27
- * math.isZero(math.bignumber(0)) // returns true
28
- * math.isZero(math.fraction(0)) // returns true
29
- * math.isZero(math.fraction(1,3)) // returns false
30
- * math.isZero(math.complex('2 - 4i') // returns false
31
- * math.isZero(math.complex('0i') // returns true
32
- * math.isZero('0') // returns true
33
- * math.isZero('2') // returns false
34
- * math.isZero([2, 0, -3]') // returns [false, true, false]
24
+ * math.isZero(0) // returns true
25
+ * math.isZero(2) // returns false
26
+ * math.isZero(0.5) // returns false
27
+ * math.isZero(math.bignumber(0)) // returns true
28
+ * math.isZero(math.fraction(0)) // returns true
29
+ * math.isZero(math.fraction(1,3)) // returns false
30
+ * math.isZero(math.complex('2 - 4i')) // returns false
31
+ * math.isZero(math.complex('0i')) // returns true
32
+ * math.isZero('0') // returns true
33
+ * math.isZero('2') // returns false
34
+ * math.isZero([2, 0, -3]) // returns [false, true, false]
35
35
  *
36
36
  * See also:
37
37
  *
@@ -52,11 +52,7 @@ export var createIsZero = /* #__PURE__ */factory(name, dependencies, _ref => {
52
52
  Fraction: function Fraction(x) {
53
53
  return x.d === 1 && x.n === 0;
54
54
  },
55
- Unit: function Unit(x) {
56
- return this(x.value);
57
- },
58
- 'Array | Matrix': function ArrayMatrix(x) {
59
- return deepMap(x, this);
60
- }
55
+ Unit: typed.referToSelf(self => x => typed.find(self, x.valueType())(x.value)),
56
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
61
57
  });
62
58
  });
@@ -30,12 +30,12 @@ export var createNumeric = /* #__PURE__ */factory(name, dependencies, _ref => {
30
30
  *
31
31
  * Examples:
32
32
  *
33
- * math.numeric('4') // returns number 4
34
- * math.numeric('4', 'number') // returns number 4
33
+ * math.numeric('4') // returns 4
34
+ * math.numeric('4', 'number') // returns 4
35
35
  * math.numeric('4', 'BigNumber') // returns BigNumber 4
36
36
  * math.numeric('4', 'Fraction') // returns Fraction 4
37
37
  * math.numeric(4, 'Fraction') // returns Fraction 4
38
- * math.numeric(math.fraction(2, 5), 'number') // returns number 0.4
38
+ * math.numeric(math.fraction(2, 5), 'number') // returns 0.4
39
39
  *
40
40
  * See also:
41
41
  *
@@ -50,7 +50,14 @@ export var createNumeric = /* #__PURE__ */factory(name, dependencies, _ref => {
50
50
  * Returns an instance of the numeric in the requested type
51
51
  */
52
52
 
53
- return function numeric(value, outputType) {
53
+ return function numeric(value) {
54
+ var outputType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'number';
55
+ var check = arguments.length > 2 ? arguments[2] : undefined;
56
+
57
+ if (check !== undefined) {
58
+ throw new SyntaxError('numeric() takes one or two arguments');
59
+ }
60
+
54
61
  var inputType = typeOf(value);
55
62
 
56
63
  if (!(inputType in validInputTypes)) {