mathjs 10.6.3 → 11.0.1

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