mathjs 10.6.3 → 11.0.1

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