mathjs 10.6.2 → 11.0.0

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