mathjs 10.6.4 → 11.1.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 (454) hide show
  1. package/HISTORY.md +79 -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/construction/index.js +1 -1
  39. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +8 -5
  40. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +15 -0
  41. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  42. package/lib/cjs/expression/node/AccessorNode.js +216 -173
  43. package/lib/cjs/expression/node/ArrayNode.js +206 -160
  44. package/lib/cjs/expression/node/AssignmentNode.js +321 -270
  45. package/lib/cjs/expression/node/BlockNode.js +223 -172
  46. package/lib/cjs/expression/node/ConditionalNode.js +253 -193
  47. package/lib/cjs/expression/node/ConstantNode.js +216 -171
  48. package/lib/cjs/expression/node/FunctionAssignmentNode.js +258 -196
  49. package/lib/cjs/expression/node/FunctionNode.js +456 -416
  50. package/lib/cjs/expression/node/IndexNode.js +256 -210
  51. package/lib/cjs/expression/node/Node.js +411 -378
  52. package/lib/cjs/expression/node/ObjectNode.js +223 -178
  53. package/lib/cjs/expression/node/OperatorNode.js +474 -397
  54. package/lib/cjs/expression/node/ParenthesisNode.js +189 -143
  55. package/lib/cjs/expression/node/RangeNode.js +272 -224
  56. package/lib/cjs/expression/node/RelationalNode.js +246 -195
  57. package/lib/cjs/expression/node/SymbolNode.js +219 -172
  58. package/lib/cjs/expression/node/utils/access.js +1 -1
  59. package/lib/cjs/expression/node/utils/assign.js +1 -1
  60. package/lib/cjs/expression/operators.js +117 -23
  61. package/lib/cjs/expression/parse.js +37 -19
  62. package/lib/cjs/expression/transform/std.transform.js +3 -1
  63. package/lib/cjs/factoriesAny.js +8 -0
  64. package/lib/cjs/factoriesNumber.js +10 -1
  65. package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
  66. package/lib/cjs/function/algebra/derivative.js +25 -33
  67. package/lib/cjs/function/algebra/leafCount.js +0 -3
  68. package/lib/cjs/function/algebra/rationalize.js +78 -108
  69. package/lib/cjs/function/algebra/resolve.js +53 -16
  70. package/lib/cjs/function/algebra/simplify/util.js +1 -1
  71. package/lib/cjs/function/algebra/simplify.js +90 -115
  72. package/lib/cjs/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +44 -10
  73. package/lib/cjs/function/algebra/simplifyCore.js +196 -93
  74. package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
  75. package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
  76. package/lib/cjs/function/algebra/symbolicEqual.js +14 -32
  77. package/lib/cjs/function/arithmetic/abs.js +7 -14
  78. package/lib/cjs/function/arithmetic/add.js +26 -70
  79. package/lib/cjs/function/arithmetic/addScalar.js +17 -9
  80. package/lib/cjs/function/arithmetic/cbrt.js +7 -11
  81. package/lib/cjs/function/arithmetic/ceil.js +50 -40
  82. package/lib/cjs/function/arithmetic/cube.js +5 -10
  83. package/lib/cjs/function/arithmetic/divide.js +7 -7
  84. package/lib/cjs/function/arithmetic/divideScalar.js +4 -18
  85. package/lib/cjs/function/arithmetic/dotDivide.js +22 -65
  86. package/lib/cjs/function/arithmetic/dotMultiply.js +16 -61
  87. package/lib/cjs/function/arithmetic/dotPow.js +30 -63
  88. package/lib/cjs/function/arithmetic/exp.js +8 -12
  89. package/lib/cjs/function/arithmetic/expm1.js +10 -10
  90. package/lib/cjs/function/arithmetic/fix.js +34 -28
  91. package/lib/cjs/function/arithmetic/floor.js +51 -41
  92. package/lib/cjs/function/arithmetic/gcd.js +27 -68
  93. package/lib/cjs/function/arithmetic/hypot.js +9 -5
  94. package/lib/cjs/function/arithmetic/invmod.js +2 -2
  95. package/lib/cjs/function/arithmetic/lcm.js +27 -68
  96. package/lib/cjs/function/arithmetic/log.js +10 -12
  97. package/lib/cjs/function/arithmetic/log10.js +5 -3
  98. package/lib/cjs/function/arithmetic/log1p.js +11 -7
  99. package/lib/cjs/function/arithmetic/log2.js +5 -3
  100. package/lib/cjs/function/arithmetic/mod.js +22 -64
  101. package/lib/cjs/function/arithmetic/multiply.js +40 -35
  102. package/lib/cjs/function/arithmetic/multiplyScalar.js +2 -9
  103. package/lib/cjs/function/arithmetic/norm.js +1 -5
  104. package/lib/cjs/function/arithmetic/nthRoot.js +83 -95
  105. package/lib/cjs/function/arithmetic/nthRoots.js +2 -2
  106. package/lib/cjs/function/arithmetic/round.js +56 -42
  107. package/lib/cjs/function/arithmetic/sign.js +14 -10
  108. package/lib/cjs/function/arithmetic/sqrt.js +5 -9
  109. package/lib/cjs/function/arithmetic/square.js +6 -10
  110. package/lib/cjs/function/arithmetic/subtract.js +44 -100
  111. package/lib/cjs/function/arithmetic/unaryMinus.js +14 -16
  112. package/lib/cjs/function/arithmetic/unaryPlus.js +6 -4
  113. package/lib/cjs/function/bitwise/bitAnd.js +17 -61
  114. package/lib/cjs/function/bitwise/bitNot.js +6 -4
  115. package/lib/cjs/function/bitwise/bitOr.js +16 -60
  116. package/lib/cjs/function/bitwise/bitXor.js +17 -61
  117. package/lib/cjs/function/bitwise/leftShift.js +69 -82
  118. package/lib/cjs/function/bitwise/rightArithShift.js +69 -82
  119. package/lib/cjs/function/bitwise/rightLogShift.js +69 -82
  120. package/lib/cjs/function/bitwise/useMatrixForArrayScalar.js +36 -0
  121. package/lib/cjs/function/complex/arg.js +5 -3
  122. package/lib/cjs/function/complex/conj.js +6 -7
  123. package/lib/cjs/function/complex/im.js +7 -8
  124. package/lib/cjs/function/complex/re.js +6 -10
  125. package/lib/cjs/function/geometry/distance.js +2 -2
  126. package/lib/cjs/function/logical/and.js +74 -80
  127. package/lib/cjs/function/logical/not.js +13 -6
  128. package/lib/cjs/function/logical/or.js +21 -63
  129. package/lib/cjs/function/logical/xor.js +21 -63
  130. package/lib/cjs/function/matrix/diff.js +11 -8
  131. package/lib/cjs/function/matrix/eigs/complexEigs.js +5 -5
  132. package/lib/cjs/function/matrix/fft.js +2 -2
  133. package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
  134. package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
  135. package/lib/cjs/function/matrix/ones.js +2 -1
  136. package/lib/cjs/function/matrix/rotate.js +5 -5
  137. package/lib/cjs/function/matrix/sqrtm.js +3 -2
  138. package/lib/cjs/function/matrix/transpose.js +47 -48
  139. package/lib/cjs/function/matrix/zeros.js +2 -1
  140. package/lib/cjs/function/probability/factorial.js +5 -3
  141. package/lib/cjs/function/probability/gamma.js +38 -40
  142. package/lib/cjs/function/probability/kldivergence.js +5 -2
  143. package/lib/cjs/function/probability/lgamma.js +30 -30
  144. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  145. package/lib/cjs/function/relational/compare.js +21 -67
  146. package/lib/cjs/function/relational/compareNatural.js +59 -54
  147. package/lib/cjs/function/relational/compareText.js +10 -43
  148. package/lib/cjs/function/relational/compareUnits.js +24 -0
  149. package/lib/cjs/function/relational/equal.js +19 -80
  150. package/lib/cjs/function/relational/equalScalar.js +7 -9
  151. package/lib/cjs/function/relational/larger.js +21 -67
  152. package/lib/cjs/function/relational/largerEq.js +21 -67
  153. package/lib/cjs/function/relational/smaller.js +21 -67
  154. package/lib/cjs/function/relational/smallerEq.js +21 -67
  155. package/lib/cjs/function/relational/unequal.js +19 -80
  156. package/lib/cjs/function/special/erf.js +5 -3
  157. package/lib/cjs/function/statistics/std.js +11 -2
  158. package/lib/cjs/function/string/format.js +2 -2
  159. package/lib/cjs/function/string/hex.js +1 -2
  160. package/lib/cjs/function/trigonometry/acos.js +4 -8
  161. package/lib/cjs/function/trigonometry/acosh.js +2 -7
  162. package/lib/cjs/function/trigonometry/acot.js +6 -11
  163. package/lib/cjs/function/trigonometry/acoth.js +4 -8
  164. package/lib/cjs/function/trigonometry/acsc.js +6 -11
  165. package/lib/cjs/function/trigonometry/acsch.js +4 -8
  166. package/lib/cjs/function/trigonometry/asec.js +6 -10
  167. package/lib/cjs/function/trigonometry/asech.js +4 -8
  168. package/lib/cjs/function/trigonometry/asin.js +5 -10
  169. package/lib/cjs/function/trigonometry/asinh.js +4 -9
  170. package/lib/cjs/function/trigonometry/atan.js +5 -11
  171. package/lib/cjs/function/trigonometry/atan2.js +25 -63
  172. package/lib/cjs/function/trigonometry/atanh.js +4 -9
  173. package/lib/cjs/function/trigonometry/cos.js +11 -20
  174. package/lib/cjs/function/trigonometry/cosh.js +5 -19
  175. package/lib/cjs/function/trigonometry/cot.js +9 -15
  176. package/lib/cjs/function/trigonometry/coth.js +4 -15
  177. package/lib/cjs/function/trigonometry/csc.js +11 -17
  178. package/lib/cjs/function/trigonometry/csch.js +4 -15
  179. package/lib/cjs/function/trigonometry/sec.js +11 -17
  180. package/lib/cjs/function/trigonometry/sech.js +4 -15
  181. package/lib/cjs/function/trigonometry/sin.js +11 -21
  182. package/lib/cjs/function/trigonometry/sinh.js +5 -20
  183. package/lib/cjs/function/trigonometry/tan.js +11 -21
  184. package/lib/cjs/function/trigonometry/tanh.js +5 -20
  185. package/lib/cjs/function/trigonometry/trigUnit.js +24 -0
  186. package/lib/cjs/function/unit/to.js +7 -41
  187. package/lib/cjs/function/utils/clone.js +1 -1
  188. package/lib/cjs/function/utils/hasNumericValue.js +5 -1
  189. package/lib/cjs/function/utils/isInteger.js +6 -4
  190. package/lib/cjs/function/utils/isNaN.js +1 -1
  191. package/lib/cjs/function/utils/isNegative.js +11 -7
  192. package/lib/cjs/function/utils/isNumeric.js +6 -4
  193. package/lib/cjs/function/utils/isPositive.js +11 -7
  194. package/lib/cjs/function/utils/isPrime.js +5 -3
  195. package/lib/cjs/function/utils/isZero.js +21 -17
  196. package/lib/cjs/function/utils/numeric.js +11 -4
  197. package/lib/cjs/function/utils/typeOf.js +38 -44
  198. package/lib/cjs/header.js +2 -2
  199. package/lib/cjs/plain/bignumber/index.js +1 -1
  200. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  201. package/lib/cjs/type/bignumber/function/bignumber.js +6 -4
  202. package/lib/cjs/type/boolean.js +7 -5
  203. package/lib/cjs/type/chain/Chain.js +23 -3
  204. package/lib/cjs/type/complex/Complex.js +18 -14
  205. package/lib/cjs/type/complex/function/complex.js +6 -4
  206. package/lib/cjs/type/fraction/Fraction.js +10 -6
  207. package/lib/cjs/type/fraction/function/fraction.js +6 -4
  208. package/lib/cjs/type/matrix/DenseMatrix.js +21 -6
  209. package/lib/cjs/type/matrix/SparseMatrix.js +12 -2
  210. package/lib/cjs/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +4 -4
  211. package/lib/cjs/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +5 -5
  212. package/lib/cjs/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +5 -5
  213. package/lib/cjs/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +7 -7
  214. package/lib/cjs/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +5 -5
  215. package/lib/cjs/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +5 -5
  216. package/lib/cjs/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +5 -5
  217. package/lib/cjs/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +6 -6
  218. package/lib/cjs/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +5 -5
  219. package/lib/cjs/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +5 -5
  220. package/lib/cjs/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +5 -5
  221. package/lib/cjs/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +5 -5
  222. package/lib/cjs/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +5 -5
  223. package/lib/cjs/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +5 -5
  224. package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +238 -0
  225. package/lib/cjs/type/number.js +6 -4
  226. package/lib/cjs/type/string.js +7 -5
  227. package/lib/cjs/type/unit/Unit.js +98 -45
  228. package/lib/cjs/type/unit/function/createUnit.js +2 -1
  229. package/lib/cjs/type/unit/function/unit.js +14 -5
  230. package/lib/cjs/utils/customs.js +2 -2
  231. package/lib/cjs/utils/emitter.js +1 -1
  232. package/lib/cjs/utils/function.js +2 -2
  233. package/lib/cjs/utils/is.js +27 -25
  234. package/lib/cjs/utils/latex.js +3 -3
  235. package/lib/cjs/utils/lruQueue.js +1 -1
  236. package/lib/cjs/utils/map.js +3 -3
  237. package/lib/cjs/utils/object.js +2 -2
  238. package/lib/cjs/utils/snapshot.js +30 -57
  239. package/lib/cjs/utils/string.js +3 -3
  240. package/lib/cjs/version.js +1 -1
  241. package/lib/esm/core/create.js +2 -1
  242. package/lib/esm/core/function/import.js +2 -12
  243. package/lib/esm/core/function/typed.js +47 -11
  244. package/lib/esm/entry/dependenciesAny/dependenciesChainClass.generated.js +2 -0
  245. package/lib/esm/entry/dependenciesAny/dependenciesKldivergence.generated.js +2 -0
  246. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
  247. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +2 -0
  248. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +2 -0
  249. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +34 -0
  250. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +4 -0
  251. package/lib/esm/entry/dependenciesAny/dependenciesSqrtm.generated.js +2 -0
  252. package/lib/esm/entry/dependenciesAny/dependenciesStd.generated.js +2 -0
  253. package/lib/esm/entry/dependenciesAny/dependenciesStdTransform.generated.js +2 -0
  254. package/lib/esm/entry/dependenciesAny.generated.js +1 -0
  255. package/lib/esm/entry/dependenciesNumber/dependenciesChainClass.generated.js +2 -0
  256. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +2 -0
  257. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +2 -0
  258. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +2 -0
  259. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +30 -0
  260. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +4 -0
  261. package/lib/esm/entry/dependenciesNumber/dependenciesStd.generated.js +2 -0
  262. package/lib/esm/entry/dependenciesNumber/dependenciesStdTransform.generated.js +2 -0
  263. package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
  264. package/lib/esm/entry/impureFunctionsAny.generated.js +73 -48
  265. package/lib/esm/entry/impureFunctionsNumber.generated.js +81 -58
  266. package/lib/esm/entry/pureFunctionsAny.generated.js +39 -36
  267. package/lib/esm/entry/pureFunctionsNumber.generated.js +14 -13
  268. package/lib/esm/expression/embeddedDocs/construction/index.js +1 -1
  269. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
  270. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +8 -0
  271. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  272. package/lib/esm/expression/node/AccessorNode.js +158 -153
  273. package/lib/esm/expression/node/ArrayNode.js +162 -154
  274. package/lib/esm/expression/node/AssignmentNode.js +257 -245
  275. package/lib/esm/expression/node/BlockNode.js +177 -163
  276. package/lib/esm/expression/node/ConditionalNode.js +197 -174
  277. package/lib/esm/expression/node/ConstantNode.js +171 -163
  278. package/lib/esm/expression/node/FunctionAssignmentNode.js +205 -180
  279. package/lib/esm/expression/node/FunctionNode.js +407 -407
  280. package/lib/esm/expression/node/IndexNode.js +206 -198
  281. package/lib/esm/expression/node/Node.js +325 -325
  282. package/lib/esm/expression/node/ObjectNode.js +166 -157
  283. package/lib/esm/expression/node/OperatorNode.js +414 -377
  284. package/lib/esm/expression/node/ParenthesisNode.js +146 -138
  285. package/lib/esm/expression/node/RangeNode.js +221 -212
  286. package/lib/esm/expression/node/RelationalNode.js +190 -176
  287. package/lib/esm/expression/node/SymbolNode.js +161 -152
  288. package/lib/esm/expression/operators.js +96 -4
  289. package/lib/esm/expression/parse.js +25 -7
  290. package/lib/esm/expression/transform/std.transform.js +3 -1
  291. package/lib/esm/factoriesAny.js +1 -0
  292. package/lib/esm/factoriesNumber.js +1 -0
  293. package/lib/esm/function/algebra/derivative.js +25 -33
  294. package/lib/esm/function/algebra/leafCount.js +0 -3
  295. package/lib/esm/function/algebra/rationalize.js +83 -114
  296. package/lib/esm/function/algebra/resolve.js +25 -16
  297. package/lib/esm/function/algebra/simplify.js +85 -113
  298. package/lib/esm/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +39 -9
  299. package/lib/esm/function/algebra/simplifyCore.js +192 -91
  300. package/lib/esm/function/algebra/symbolicEqual.js +14 -32
  301. package/lib/esm/function/arithmetic/abs.js +3 -16
  302. package/lib/esm/function/arithmetic/add.js +21 -65
  303. package/lib/esm/function/arithmetic/addScalar.js +11 -5
  304. package/lib/esm/function/arithmetic/cbrt.js +7 -10
  305. package/lib/esm/function/arithmetic/ceil.js +25 -25
  306. package/lib/esm/function/arithmetic/cube.js +5 -9
  307. package/lib/esm/function/arithmetic/divide.js +7 -7
  308. package/lib/esm/function/arithmetic/divideScalar.js +2 -19
  309. package/lib/esm/function/arithmetic/dotDivide.js +22 -64
  310. package/lib/esm/function/arithmetic/dotMultiply.js +16 -60
  311. package/lib/esm/function/arithmetic/dotPow.js +30 -62
  312. package/lib/esm/function/arithmetic/exp.js +8 -11
  313. package/lib/esm/function/arithmetic/expm1.js +10 -9
  314. package/lib/esm/function/arithmetic/fix.js +18 -18
  315. package/lib/esm/function/arithmetic/floor.js +26 -26
  316. package/lib/esm/function/arithmetic/gcd.js +26 -70
  317. package/lib/esm/function/arithmetic/hypot.js +7 -6
  318. package/lib/esm/function/arithmetic/invmod.js +1 -1
  319. package/lib/esm/function/arithmetic/lcm.js +26 -70
  320. package/lib/esm/function/arithmetic/log.js +7 -10
  321. package/lib/esm/function/arithmetic/log10.js +1 -3
  322. package/lib/esm/function/arithmetic/log1p.js +4 -6
  323. package/lib/esm/function/arithmetic/log2.js +1 -3
  324. package/lib/esm/function/arithmetic/mod.js +21 -62
  325. package/lib/esm/function/arithmetic/multiply.js +23 -27
  326. package/lib/esm/function/arithmetic/multiplyScalar.js +2 -13
  327. package/lib/esm/function/arithmetic/norm.js +0 -4
  328. package/lib/esm/function/arithmetic/nthRoot.js +41 -76
  329. package/lib/esm/function/arithmetic/nthRoots.js +2 -2
  330. package/lib/esm/function/arithmetic/round.js +26 -28
  331. package/lib/esm/function/arithmetic/sign.js +5 -7
  332. package/lib/esm/function/arithmetic/sqrt.js +5 -8
  333. package/lib/esm/function/arithmetic/square.js +6 -9
  334. package/lib/esm/function/arithmetic/subtract.js +31 -95
  335. package/lib/esm/function/arithmetic/unaryMinus.js +6 -16
  336. package/lib/esm/function/arithmetic/unaryPlus.js +2 -4
  337. package/lib/esm/function/bitwise/bitAnd.js +16 -59
  338. package/lib/esm/function/bitwise/bitNot.js +2 -4
  339. package/lib/esm/function/bitwise/bitOr.js +16 -59
  340. package/lib/esm/function/bitwise/bitXor.js +16 -59
  341. package/lib/esm/function/bitwise/leftShift.js +39 -61
  342. package/lib/esm/function/bitwise/rightArithShift.js +39 -61
  343. package/lib/esm/function/bitwise/rightLogShift.js +39 -61
  344. package/lib/esm/function/bitwise/useMatrixForArrayScalar.js +13 -0
  345. package/lib/esm/function/complex/arg.js +1 -3
  346. package/lib/esm/function/complex/conj.js +3 -12
  347. package/lib/esm/function/complex/im.js +4 -15
  348. package/lib/esm/function/complex/re.js +3 -15
  349. package/lib/esm/function/geometry/distance.js +2 -2
  350. package/lib/esm/function/logical/and.js +35 -57
  351. package/lib/esm/function/logical/not.js +3 -6
  352. package/lib/esm/function/logical/or.js +16 -61
  353. package/lib/esm/function/logical/xor.js +16 -61
  354. package/lib/esm/function/matrix/diff.js +3 -8
  355. package/lib/esm/function/matrix/ones.js +2 -1
  356. package/lib/esm/function/matrix/rotate.js +5 -5
  357. package/lib/esm/function/matrix/sqrtm.js +3 -2
  358. package/lib/esm/function/matrix/transpose.js +47 -50
  359. package/lib/esm/function/matrix/zeros.js +2 -1
  360. package/lib/esm/function/probability/factorial.js +1 -3
  361. package/lib/esm/function/probability/gamma.js +38 -39
  362. package/lib/esm/function/probability/kldivergence.js +3 -2
  363. package/lib/esm/function/probability/lgamma.js +29 -29
  364. package/lib/esm/function/relational/compare.js +21 -67
  365. package/lib/esm/function/relational/compareNatural.js +54 -49
  366. package/lib/esm/function/relational/compareText.js +10 -42
  367. package/lib/esm/function/relational/compareUnits.js +15 -0
  368. package/lib/esm/function/relational/equal.js +19 -79
  369. package/lib/esm/function/relational/equalScalar.js +6 -9
  370. package/lib/esm/function/relational/larger.js +23 -73
  371. package/lib/esm/function/relational/largerEq.js +23 -73
  372. package/lib/esm/function/relational/smaller.js +23 -73
  373. package/lib/esm/function/relational/smallerEq.js +23 -73
  374. package/lib/esm/function/relational/unequal.js +19 -79
  375. package/lib/esm/function/special/erf.js +1 -3
  376. package/lib/esm/function/statistics/std.js +10 -2
  377. package/lib/esm/function/string/format.js +2 -2
  378. package/lib/esm/function/string/hex.js +1 -2
  379. package/lib/esm/function/trigonometry/acos.js +4 -7
  380. package/lib/esm/function/trigonometry/acosh.js +2 -6
  381. package/lib/esm/function/trigonometry/acot.js +6 -10
  382. package/lib/esm/function/trigonometry/acoth.js +4 -7
  383. package/lib/esm/function/trigonometry/acsc.js +6 -10
  384. package/lib/esm/function/trigonometry/acsch.js +4 -7
  385. package/lib/esm/function/trigonometry/asec.js +6 -9
  386. package/lib/esm/function/trigonometry/asech.js +4 -7
  387. package/lib/esm/function/trigonometry/asin.js +5 -9
  388. package/lib/esm/function/trigonometry/asinh.js +4 -8
  389. package/lib/esm/function/trigonometry/atan.js +5 -10
  390. package/lib/esm/function/trigonometry/atan2.js +26 -65
  391. package/lib/esm/function/trigonometry/atanh.js +4 -8
  392. package/lib/esm/function/trigonometry/cos.js +11 -22
  393. package/lib/esm/function/trigonometry/cosh.js +5 -20
  394. package/lib/esm/function/trigonometry/cot.js +10 -20
  395. package/lib/esm/function/trigonometry/coth.js +6 -20
  396. package/lib/esm/function/trigonometry/csc.js +12 -22
  397. package/lib/esm/function/trigonometry/csch.js +6 -20
  398. package/lib/esm/function/trigonometry/sec.js +12 -22
  399. package/lib/esm/function/trigonometry/sech.js +6 -20
  400. package/lib/esm/function/trigonometry/sin.js +11 -23
  401. package/lib/esm/function/trigonometry/sinh.js +5 -21
  402. package/lib/esm/function/trigonometry/tan.js +11 -23
  403. package/lib/esm/function/trigonometry/tanh.js +5 -21
  404. package/lib/esm/function/trigonometry/trigUnit.js +15 -0
  405. package/lib/esm/function/unit/to.js +8 -43
  406. package/lib/esm/function/utils/clone.js +1 -1
  407. package/lib/esm/function/utils/hasNumericValue.js +3 -1
  408. package/lib/esm/function/utils/isInteger.js +2 -4
  409. package/lib/esm/function/utils/isNaN.js +1 -1
  410. package/lib/esm/function/utils/isNegative.js +3 -7
  411. package/lib/esm/function/utils/isNumeric.js +4 -10
  412. package/lib/esm/function/utils/isPositive.js +3 -7
  413. package/lib/esm/function/utils/isPrime.js +1 -3
  414. package/lib/esm/function/utils/isZero.js +13 -17
  415. package/lib/esm/function/utils/numeric.js +11 -4
  416. package/lib/esm/function/utils/typeOf.js +38 -44
  417. package/lib/esm/type/bignumber/function/bignumber.js +1 -3
  418. package/lib/esm/type/boolean.js +1 -3
  419. package/lib/esm/type/chain/Chain.js +23 -3
  420. package/lib/esm/type/complex/Complex.js +4 -0
  421. package/lib/esm/type/complex/function/complex.js +1 -3
  422. package/lib/esm/type/fraction/Fraction.js +4 -0
  423. package/lib/esm/type/fraction/function/fraction.js +1 -3
  424. package/lib/esm/type/matrix/DenseMatrix.js +15 -1
  425. package/lib/esm/type/matrix/SparseMatrix.js +9 -0
  426. package/lib/esm/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +2 -2
  427. package/lib/esm/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +3 -3
  428. package/lib/esm/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +3 -3
  429. package/lib/esm/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +5 -5
  430. package/lib/esm/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +3 -3
  431. package/lib/esm/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +3 -3
  432. package/lib/esm/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +3 -3
  433. package/lib/esm/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +4 -4
  434. package/lib/esm/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +3 -3
  435. package/lib/esm/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +3 -3
  436. package/lib/esm/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +3 -3
  437. package/lib/esm/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +3 -3
  438. package/lib/esm/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +3 -3
  439. package/lib/esm/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +3 -3
  440. package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +168 -0
  441. package/lib/esm/type/number.js +1 -3
  442. package/lib/esm/type/string.js +1 -3
  443. package/lib/esm/type/unit/Unit.js +85 -36
  444. package/lib/esm/type/unit/function/createUnit.js +2 -1
  445. package/lib/esm/type/unit/function/unit.js +10 -5
  446. package/lib/esm/utils/is.js +18 -18
  447. package/lib/esm/utils/snapshot.js +22 -48
  448. package/lib/esm/version.js +1 -1
  449. package/package.json +22 -25
  450. package/types/index.d.ts +211 -180
  451. package/types/index.ts +358 -144
  452. package/types/tsconfig.json +4 -1
  453. package/lib/cjs/utils/polyfills.js +0 -14
  454. 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
  var name = 'asin';
4
3
  var dependencies = ['typed', 'config', 'Complex'];
5
4
  export var createAsin = /* #__PURE__ */factory(name, dependencies, _ref => {
@@ -12,7 +11,8 @@ export var createAsin = /* #__PURE__ */factory(name, dependencies, _ref => {
12
11
  /**
13
12
  * Calculate the inverse sine of a value.
14
13
  *
15
- * For matrices, the function is evaluated element wise.
14
+ * To avoid confusion with the matric arcsine, this function does not apply
15
+ * to matrices.
16
16
  *
17
17
  * Syntax:
18
18
  *
@@ -23,14 +23,14 @@ export var createAsin = /* #__PURE__ */factory(name, dependencies, _ref => {
23
23
  * math.asin(0.5) // returns number 0.5235987755982989
24
24
  * math.asin(math.sin(1.5)) // returns number ~1.5
25
25
  *
26
- * math.asin(2) // returns Complex 1.5707963267948966 -1.3169578969248166 i
26
+ * math.asin(2) // returns Complex 1.5707963267948966 -1.3169578969248166i
27
27
  *
28
28
  * See also:
29
29
  *
30
30
  * sin, atan, acos
31
31
  *
32
- * @param {number | BigNumber | Complex | Array | Matrix} x Function input
33
- * @return {number | BigNumber | Complex | Array | Matrix} The arc sine of x
32
+ * @param {number | BigNumber | Complex} x Function input
33
+ * @return {number | BigNumber | Complex} The arc sine of x
34
34
  */
35
35
  return typed(name, {
36
36
  number: function number(x) {
@@ -45,10 +45,6 @@ export var createAsin = /* #__PURE__ */factory(name, dependencies, _ref => {
45
45
  },
46
46
  BigNumber: function BigNumber(x) {
47
47
  return x.asin();
48
- },
49
- 'Array | Matrix': function ArrayMatrix(x) {
50
- // deep map collection, skip zeros since asin(0) = 0
51
- return deepMap(x, this, true);
52
48
  }
53
49
  });
54
50
  });
@@ -1,5 +1,4 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  import { asinhNumber } from '../../plain/number/index.js';
4
3
  var name = 'asinh';
5
4
  var dependencies = ['typed'];
@@ -12,7 +11,8 @@ export var createAsinh = /* #__PURE__ */factory(name, dependencies, _ref => {
12
11
  * Calculate the hyperbolic arcsine of a value,
13
12
  * defined as `asinh(x) = ln(x + sqrt(x^2 + 1))`.
14
13
  *
15
- * For matrices, the function is evaluated element wise.
14
+ * To avoid confusion with the matrix hyperbolic arcsine, this function
15
+ * does not apply to matrices.
16
16
  *
17
17
  * Syntax:
18
18
  *
@@ -26,8 +26,8 @@ export var createAsinh = /* #__PURE__ */factory(name, dependencies, _ref => {
26
26
  *
27
27
  * acosh, atanh
28
28
  *
29
- * @param {number | Complex | Array | Matrix} x Function input
30
- * @return {number | Complex | Array | Matrix} Hyperbolic arcsine of x
29
+ * @param {number | BigNumber | Complex} x Function input
30
+ * @return {number | BigNumber | Complex} Hyperbolic arcsine of x
31
31
  */
32
32
  return typed('asinh', {
33
33
  number: asinhNumber,
@@ -36,10 +36,6 @@ export var createAsinh = /* #__PURE__ */factory(name, dependencies, _ref => {
36
36
  },
37
37
  BigNumber: function BigNumber(x) {
38
38
  return x.asinh();
39
- },
40
- 'Array | Matrix': function ArrayMatrix(x) {
41
- // deep map collection, skip zeros since asinh(0) = 0
42
- return deepMap(x, this, true);
43
39
  }
44
40
  });
45
41
  });
@@ -1,5 +1,4 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  var name = 'atan';
4
3
  var dependencies = ['typed'];
5
4
  export var createAtan = /* #__PURE__ */factory(name, dependencies, _ref => {
@@ -10,7 +9,8 @@ export var createAtan = /* #__PURE__ */factory(name, dependencies, _ref => {
10
9
  /**
11
10
  * Calculate the inverse tangent of a value.
12
11
  *
13
- * For matrices, the function is evaluated element wise.
12
+ * To avoid confusion with matrix arctangent, this function does not apply
13
+ * to matrices.
14
14
  *
15
15
  * Syntax:
16
16
  *
@@ -19,16 +19,15 @@ export var createAtan = /* #__PURE__ */factory(name, dependencies, _ref => {
19
19
  * Examples:
20
20
  *
21
21
  * math.atan(0.5) // returns number 0.4636476090008061
22
+ * math.atan(2) // returns number 1.1071487177940904
22
23
  * math.atan(math.tan(1.5)) // returns number 1.5
23
24
  *
24
- * math.atan(2) // returns Complex 1.5707963267948966 -1.3169578969248166 i
25
- *
26
25
  * See also:
27
26
  *
28
27
  * tan, asin, acos
29
28
  *
30
- * @param {number | BigNumber | Complex | Array | Matrix} x Function input
31
- * @return {number | BigNumber | Complex | Array | Matrix} The arc tangent of x
29
+ * @param {number | BigNumber | Complex} x Function input
30
+ * @return {number | BigNumber | Complex} The arc tangent of x
32
31
  */
33
32
  return typed('atan', {
34
33
  number: function number(x) {
@@ -39,10 +38,6 @@ export var createAtan = /* #__PURE__ */factory(name, dependencies, _ref => {
39
38
  },
40
39
  BigNumber: function BigNumber(x) {
41
40
  return x.atan();
42
- },
43
- 'Array | Matrix': function ArrayMatrix(x) {
44
- // deep map collection, skip zeros since atan(0) = 0
45
- return deepMap(x, this, true);
46
41
  }
47
42
  });
48
43
  });
@@ -1,11 +1,10 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { createAlgorithm02 } from '../../type/matrix/utils/algorithm02.js';
3
- import { createAlgorithm03 } from '../../type/matrix/utils/algorithm03.js';
4
- import { createAlgorithm09 } from '../../type/matrix/utils/algorithm09.js';
5
- import { createAlgorithm11 } from '../../type/matrix/utils/algorithm11.js';
6
- import { createAlgorithm12 } from '../../type/matrix/utils/algorithm12.js';
7
- import { createAlgorithm13 } from '../../type/matrix/utils/algorithm13.js';
8
- import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
2
+ import { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';
3
+ import { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';
4
+ import { createMatAlgo09xS0Sf } from '../../type/matrix/utils/matAlgo09xS0Sf.js';
5
+ import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
6
+ import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
7
+ import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
9
8
  var name = 'atan2';
10
9
  var dependencies = ['typed', 'matrix', 'equalScalar', 'BigNumber', 'DenseMatrix'];
11
10
  export var createAtan2 = /* #__PURE__ */factory(name, dependencies, _ref => {
@@ -16,30 +15,28 @@ export var createAtan2 = /* #__PURE__ */factory(name, dependencies, _ref => {
16
15
  BigNumber,
17
16
  DenseMatrix
18
17
  } = _ref;
19
- var algorithm02 = createAlgorithm02({
18
+ var matAlgo02xDS0 = createMatAlgo02xDS0({
20
19
  typed,
21
20
  equalScalar
22
21
  });
23
- var algorithm03 = createAlgorithm03({
22
+ var matAlgo03xDSf = createMatAlgo03xDSf({
24
23
  typed
25
24
  });
26
- var algorithm09 = createAlgorithm09({
25
+ var matAlgo09xS0Sf = createMatAlgo09xS0Sf({
27
26
  typed,
28
27
  equalScalar
29
28
  });
30
- var algorithm11 = createAlgorithm11({
29
+ var matAlgo11xS0s = createMatAlgo11xS0s({
31
30
  typed,
32
31
  equalScalar
33
32
  });
34
- var algorithm12 = createAlgorithm12({
33
+ var matAlgo12xSfs = createMatAlgo12xSfs({
35
34
  typed,
36
35
  DenseMatrix
37
36
  });
38
- var algorithm13 = createAlgorithm13({
39
- typed
40
- });
41
- var algorithm14 = createAlgorithm14({
42
- typed
37
+ var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
38
+ typed,
39
+ matrix
43
40
  });
44
41
  /**
45
42
  * Calculate the inverse tangent function with two arguments, y/x.
@@ -60,7 +57,7 @@ export var createAtan2 = /* #__PURE__ */factory(name, dependencies, _ref => {
60
57
  * const x = math.cos(angle)
61
58
  * const y = math.sin(angle)
62
59
  *
63
- * math.atan(2) // returns Complex 1.5707963267948966 -1.3169578969248166 i
60
+ * math.atan(2) // returns number 1.1071487177940904
64
61
  *
65
62
  * See also:
66
63
  *
@@ -75,51 +72,15 @@ export var createAtan2 = /* #__PURE__ */factory(name, dependencies, _ref => {
75
72
  'number, number': Math.atan2,
76
73
  // Complex numbers doesn't seem to have a reasonable implementation of
77
74
  // atan2(). Even Matlab removed the support, after they only calculated
78
- // the atan only on base of the real part of the numbers and ignored the imaginary.
79
- 'BigNumber, BigNumber': function BigNumberBigNumber(y, x) {
80
- return BigNumber.atan2(y, x);
81
- },
82
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
83
- return algorithm09(x, y, this, false);
84
- },
85
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
86
- // mind the order of y and x!
87
- return algorithm02(y, x, this, true);
88
- },
89
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
90
- return algorithm03(x, y, this, false);
91
- },
92
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
93
- return algorithm13(x, y, this);
94
- },
95
- 'Array, Array': function ArrayArray(x, y) {
96
- return this(matrix(x), matrix(y)).valueOf();
97
- },
98
- 'Array, Matrix': function ArrayMatrix(x, y) {
99
- return this(matrix(x), y);
100
- },
101
- 'Matrix, Array': function MatrixArray(x, y) {
102
- return this(x, matrix(y));
103
- },
104
- 'SparseMatrix, number | BigNumber': function SparseMatrixNumberBigNumber(x, y) {
105
- return algorithm11(x, y, this, false);
106
- },
107
- 'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
108
- return algorithm14(x, y, this, false);
109
- },
110
- 'number | BigNumber, SparseMatrix': function numberBigNumberSparseMatrix(x, y) {
111
- // mind the order of y and x
112
- return algorithm12(y, x, this, true);
113
- },
114
- 'number | BigNumber, DenseMatrix': function numberBigNumberDenseMatrix(x, y) {
115
- // mind the order of y and x
116
- return algorithm14(y, x, this, true);
117
- },
118
- 'Array, number | BigNumber': function ArrayNumberBigNumber(x, y) {
119
- return algorithm14(matrix(x), y, this, false).valueOf();
120
- },
121
- 'number | BigNumber, Array': function numberBigNumberArray(x, y) {
122
- return algorithm14(matrix(y), x, this, true).valueOf();
123
- }
124
- });
75
+ // the atan only on base of the real part of the numbers and ignored
76
+ // the imaginary.
77
+ 'BigNumber, BigNumber': (y, x) => BigNumber.atan2(y, x)
78
+ }, matrixAlgorithmSuite({
79
+ scalar: 'number | BigNumber',
80
+ SS: matAlgo09xS0Sf,
81
+ DS: matAlgo03xDSf,
82
+ SD: matAlgo02xDS0,
83
+ Ss: matAlgo11xS0s,
84
+ sS: matAlgo12xSfs
85
+ }));
125
86
  });
@@ -1,5 +1,4 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  import { atanhNumber } from '../../plain/number/index.js';
4
3
  var name = 'atanh';
5
4
  var dependencies = ['typed', 'config', 'Complex'];
@@ -14,7 +13,8 @@ export var createAtanh = /* #__PURE__ */factory(name, dependencies, _ref => {
14
13
  * Calculate the hyperbolic arctangent of a value,
15
14
  * defined as `atanh(x) = ln((1 + x)/(1 - x)) / 2`.
16
15
  *
17
- * For matrices, the function is evaluated element wise.
16
+ * To avoid confusion with the matrix hyperbolic arctangent, this function
17
+ * does not apply to matrices.
18
18
  *
19
19
  * Syntax:
20
20
  *
@@ -28,8 +28,8 @@ export var createAtanh = /* #__PURE__ */factory(name, dependencies, _ref => {
28
28
  *
29
29
  * acosh, asinh
30
30
  *
31
- * @param {number | Complex | Array | Matrix} x Function input
32
- * @return {number | Complex | Array | Matrix} Hyperbolic arctangent of x
31
+ * @param {number | BigNumber | Complex} x Function input
32
+ * @return {number | BigNumber | Complex} Hyperbolic arctangent of x
33
33
  */
34
34
  return typed(name, {
35
35
  number: function number(x) {
@@ -44,10 +44,6 @@ export var createAtanh = /* #__PURE__ */factory(name, dependencies, _ref => {
44
44
  },
45
45
  BigNumber: function BigNumber(x) {
46
46
  return x.atanh();
47
- },
48
- 'Array | Matrix': function ArrayMatrix(x) {
49
- // deep map collection, skip zeros since atanh(0) = 0
50
- return deepMap(x, this, true);
51
47
  }
52
48
  });
53
49
  });
@@ -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 = 'cos';
4
4
  var dependencies = ['typed'];
5
5
  export var createCos = /* #__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 cosine of a value.
12
14
  *
13
- * For matrices, the function is evaluated element wise.
15
+ * To avoid confusion with the matrix cosine, this function does not
16
+ * apply to matrices.
14
17
  *
15
18
  * Syntax:
16
19
  *
@@ -30,26 +33,12 @@ export var createCos = /* #__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} Cosine of x
36
+ * @param {number | BigNumber | Complex | Unit} x Function input
37
+ * @return {number | BigNumber | Complex} Cosine of x
35
38
  */
39
+
36
40
  return typed(name, {
37
41
  number: Math.cos,
38
- Complex: function Complex(x) {
39
- return x.cos();
40
- },
41
- BigNumber: function BigNumber(x) {
42
- return x.cos();
43
- },
44
- Unit: function Unit(x) {
45
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
46
- throw new TypeError('Unit in function cos is no angle');
47
- }
48
-
49
- return this(x.value);
50
- },
51
- 'Array | Matrix': function ArrayMatrix(x) {
52
- return deepMap(x, this);
53
- }
54
- });
42
+ 'Complex | BigNumber': x => x.cos()
43
+ }, trigUnit);
55
44
  });
@@ -1,5 +1,4 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  import { cosh as coshNumber } from '../../utils/number.js';
4
3
  var name = 'cosh';
5
4
  var dependencies = ['typed'];
@@ -12,7 +11,8 @@ export var createCosh = /* #__PURE__ */factory(name, dependencies, _ref => {
12
11
  * Calculate the hyperbolic cosine of a value,
13
12
  * defined as `cosh(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 cosine, this function does
15
+ * not apply to matrices.
16
16
  *
17
17
  * Syntax:
18
18
  *
@@ -26,26 +26,11 @@ export var createCosh = /* #__PURE__ */factory(name, dependencies, _ref => {
26
26
  *
27
27
  * sinh, tanh
28
28
  *
29
- * @param {number | BigNumber | Complex | Unit | Array | Matrix} x Function input
30
- * @return {number | BigNumber | Complex | Array | Matrix} Hyperbolic cosine of x
29
+ * @param {number | BigNumber | Complex} x Function input
30
+ * @return {number | BigNumber | Complex} Hyperbolic cosine of x
31
31
  */
32
32
  return typed(name, {
33
33
  number: coshNumber,
34
- Complex: function Complex(x) {
35
- return x.cosh();
36
- },
37
- BigNumber: function BigNumber(x) {
38
- return x.cosh();
39
- },
40
- Unit: function Unit(x) {
41
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
42
- throw new TypeError('Unit in function cosh is no angle');
43
- }
44
-
45
- return this(x.value);
46
- },
47
- 'Array | Matrix': function ArrayMatrix(x) {
48
- return deepMap(x, this);
49
- }
34
+ 'Complex | BigNumber': x => x.cosh()
50
35
  });
51
36
  });
@@ -1,6 +1,6 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  import { cotNumber } from '../../plain/number/index.js';
3
+ import { createTrigUnit } from './trigUnit.js';
4
4
  var name = 'cot';
5
5
  var dependencies = ['typed', 'BigNumber'];
6
6
  export var createCot = /* #__PURE__ */factory(name, dependencies, _ref => {
@@ -8,11 +8,14 @@ export var createCot = /* #__PURE__ */factory(name, dependencies, _ref => {
8
8
  typed,
9
9
  BigNumber: _BigNumber
10
10
  } = _ref;
11
-
11
+ var trigUnit = createTrigUnit({
12
+ typed
13
+ });
12
14
  /**
13
15
  * Calculate the cotangent of a value. Defined as `cot(x) = 1 / tan(x)`.
14
16
  *
15
- * For matrices, the function is evaluated element wise.
17
+ * To avoid confusion with the matrix cotangent, this function does not
18
+ * apply to matrices.
16
19
  *
17
20
  * Syntax:
18
21
  *
@@ -30,23 +33,10 @@ export var createCot = /* #__PURE__ */factory(name, dependencies, _ref => {
30
33
  * @param {number | Complex | Unit | Array | Matrix} x Function input
31
34
  * @return {number | Complex | Array | Matrix} Cotangent of x
32
35
  */
36
+
33
37
  return typed(name, {
34
38
  number: cotNumber,
35
- Complex: function Complex(x) {
36
- return x.cot();
37
- },
38
- BigNumber: function BigNumber(x) {
39
- return new _BigNumber(1).div(x.tan());
40
- },
41
- Unit: function Unit(x) {
42
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
43
- throw new TypeError('Unit in function cot is no angle');
44
- }
45
-
46
- return this(x.value);
47
- },
48
- 'Array | Matrix': function ArrayMatrix(x) {
49
- return deepMap(x, this);
50
- }
51
- });
39
+ Complex: x => x.cot(),
40
+ BigNumber: x => new _BigNumber(1).div(x.tan())
41
+ }, trigUnit);
52
42
  });
@@ -1,5 +1,4 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  import { cothNumber } from '../../plain/number/index.js';
4
3
  var name = 'coth';
5
4
  var dependencies = ['typed', 'BigNumber'];
@@ -13,7 +12,8 @@ export var createCoth = /* #__PURE__ */factory(name, dependencies, _ref => {
13
12
  * Calculate the hyperbolic cotangent of a value,
14
13
  * defined as `coth(x) = 1 / tanh(x)`.
15
14
  *
16
- * For matrices, the function is evaluated element wise.
15
+ * To avoid confusion with the matrix hyperbolic cotangent, this function
16
+ * does not apply to matrices.
17
17
  *
18
18
  * Syntax:
19
19
  *
@@ -29,26 +29,12 @@ export var createCoth = /* #__PURE__ */factory(name, dependencies, _ref => {
29
29
  *
30
30
  * sinh, tanh, cosh
31
31
  *
32
- * @param {number | Complex | Unit | Array | Matrix} x Function input
33
- * @return {number | Complex | Array | Matrix} Hyperbolic cotangent of x
32
+ * @param {number | BigNumber | Complex} x Function input
33
+ * @return {number | BigNumber | Complex} Hyperbolic cotangent of x
34
34
  */
35
35
  return typed(name, {
36
36
  number: cothNumber,
37
- Complex: function Complex(x) {
38
- return x.coth();
39
- },
40
- BigNumber: function BigNumber(x) {
41
- return new _BigNumber(1).div(x.tanh());
42
- },
43
- Unit: function Unit(x) {
44
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
45
- throw new TypeError('Unit in function coth 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.coth(),
38
+ BigNumber: x => new _BigNumber(1).div(x.tanh())
53
39
  });
54
40
  });
@@ -1,6 +1,6 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  import { cscNumber } from '../../plain/number/index.js';
3
+ import { createTrigUnit } from './trigUnit.js';
4
4
  var name = 'csc';
5
5
  var dependencies = ['typed', 'BigNumber'];
6
6
  export var createCsc = /* #__PURE__ */factory(name, dependencies, _ref => {
@@ -8,11 +8,14 @@ export var createCsc = /* #__PURE__ */factory(name, dependencies, _ref => {
8
8
  typed,
9
9
  BigNumber: _BigNumber
10
10
  } = _ref;
11
-
11
+ var trigUnit = createTrigUnit({
12
+ typed
13
+ });
12
14
  /**
13
15
  * Calculate the cosecant of a value, defined as `csc(x) = 1/sin(x)`.
14
16
  *
15
- * For matrices, the function is evaluated element wise.
17
+ * To avoid confusion with the matrix cosecant, this function does not
18
+ * apply to matrices.
16
19
  *
17
20
  * Syntax:
18
21
  *
@@ -27,26 +30,13 @@ export var createCsc = /* #__PURE__ */factory(name, dependencies, _ref => {
27
30
  *
28
31
  * sin, sec, cot
29
32
  *
30
- * @param {number | Complex | Unit | Array | Matrix} x Function input
31
- * @return {number | Complex | Array | Matrix} Cosecant of x
33
+ * @param {number | BigNumber | Complex | Unit} x Function input
34
+ * @return {number | BigNumber | Complex} Cosecant of x
32
35
  */
36
+
33
37
  return typed(name, {
34
38
  number: cscNumber,
35
- Complex: function Complex(x) {
36
- return x.csc();
37
- },
38
- BigNumber: function BigNumber(x) {
39
- return new _BigNumber(1).div(x.sin());
40
- },
41
- Unit: function Unit(x) {
42
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
43
- throw new TypeError('Unit in function csc is no angle');
44
- }
45
-
46
- return this(x.value);
47
- },
48
- 'Array | Matrix': function ArrayMatrix(x) {
49
- return deepMap(x, this);
50
- }
51
- });
39
+ Complex: x => x.csc(),
40
+ BigNumber: x => new _BigNumber(1).div(x.sin())
41
+ }, trigUnit);
52
42
  });
@@ -1,5 +1,4 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  import { cschNumber } from '../../plain/number/index.js';
4
3
  var name = 'csch';
5
4
  var dependencies = ['typed', 'BigNumber'];
@@ -13,7 +12,8 @@ export var createCsch = /* #__PURE__ */factory(name, dependencies, _ref => {
13
12
  * Calculate the hyperbolic cosecant of a value,
14
13
  * defined as `csch(x) = 1 / sinh(x)`.
15
14
  *
16
- * For matrices, the function is evaluated element wise.
15
+ * To avoid confusion with the matrix hyperbolic cosecant, this function
16
+ * does not apply to matrices.
17
17
  *
18
18
  * Syntax:
19
19
  *
@@ -29,26 +29,12 @@ export var createCsch = /* #__PURE__ */factory(name, dependencies, _ref => {
29
29
  *
30
30
  * sinh, sech, coth
31
31
  *
32
- * @param {number | Complex | Unit | Array | Matrix} x Function input
33
- * @return {number | Complex | Array | Matrix} Hyperbolic cosecant of x
32
+ * @param {number | BigNumber | Complex} x Function input
33
+ * @return {number | BigNumber | Complex} Hyperbolic cosecant of x
34
34
  */
35
35
  return typed(name, {
36
36
  number: cschNumber,
37
- Complex: function Complex(x) {
38
- return x.csch();
39
- },
40
- BigNumber: function BigNumber(x) {
41
- return new _BigNumber(1).div(x.sinh());
42
- },
43
- Unit: function Unit(x) {
44
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
45
- throw new TypeError('Unit in function csch 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.csch(),
38
+ BigNumber: x => new _BigNumber(1).div(x.sinh())
53
39
  });
54
40
  });
@@ -1,6 +1,6 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { deepMap } from '../../utils/collection.js';
3
2
  import { secNumber } from '../../plain/number/index.js';
3
+ import { createTrigUnit } from './trigUnit.js';
4
4
  var name = 'sec';
5
5
  var dependencies = ['typed', 'BigNumber'];
6
6
  export var createSec = /* #__PURE__ */factory(name, dependencies, _ref => {
@@ -8,11 +8,14 @@ export var createSec = /* #__PURE__ */factory(name, dependencies, _ref => {
8
8
  typed,
9
9
  BigNumber: _BigNumber
10
10
  } = _ref;
11
-
11
+ var trigUnit = createTrigUnit({
12
+ typed
13
+ });
12
14
  /**
13
15
  * Calculate the secant of a value, defined as `sec(x) = 1/cos(x)`.
14
16
  *
15
- * For matrices, the function is evaluated element wise.
17
+ * To avoid confusion with the matrix secant, this function does not
18
+ * apply to matrices.
16
19
  *
17
20
  * Syntax:
18
21
  *
@@ -27,26 +30,13 @@ export var createSec = /* #__PURE__ */factory(name, dependencies, _ref => {
27
30
  *
28
31
  * cos, csc, cot
29
32
  *
30
- * @param {number | Complex | Unit | Array | Matrix} x Function input
31
- * @return {number | Complex | Array | Matrix} Secant of x
33
+ * @param {number | BigNumber | Complex | Unit} x Function input
34
+ * @return {number | BigNumber | Complex} Secant of x
32
35
  */
36
+
33
37
  return typed(name, {
34
38
  number: secNumber,
35
- Complex: function Complex(x) {
36
- return x.sec();
37
- },
38
- BigNumber: function BigNumber(x) {
39
- return new _BigNumber(1).div(x.cos());
40
- },
41
- Unit: function Unit(x) {
42
- if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
43
- throw new TypeError('Unit in function sec is no angle');
44
- }
45
-
46
- return this(x.value);
47
- },
48
- 'Array | Matrix': function ArrayMatrix(x) {
49
- return deepMap(x, this);
50
- }
51
- });
39
+ Complex: x => x.sec(),
40
+ BigNumber: x => new _BigNumber(1).div(x.cos())
41
+ }, trigUnit);
52
42
  });