mathjs 10.6.2 → 11.0.0

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