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,15 +7,13 @@ exports.createGcd = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- var _algorithm = require("../../type/matrix/utils/algorithm01.js");
10
+ var _matAlgo01xDSid = require("../../type/matrix/utils/matAlgo01xDSid.js");
11
11
 
12
- var _algorithm2 = require("../../type/matrix/utils/algorithm04.js");
12
+ var _matAlgo04xSidSid = require("../../type/matrix/utils/matAlgo04xSidSid.js");
13
13
 
14
- var _algorithm3 = require("../../type/matrix/utils/algorithm10.js");
14
+ var _matAlgo10xSids = require("../../type/matrix/utils/matAlgo10xSids.js");
15
15
 
16
- var _algorithm4 = require("../../type/matrix/utils/algorithm13.js");
17
-
18
- var _algorithm5 = require("../../type/matrix/utils/algorithm14.js");
16
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
19
17
 
20
18
  var _index = require("../../plain/number/index.js");
21
19
 
@@ -27,22 +25,33 @@ var createGcd = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
27
25
  equalScalar = _ref.equalScalar,
28
26
  BigNumber = _ref.BigNumber,
29
27
  DenseMatrix = _ref.DenseMatrix;
30
- var algorithm01 = (0, _algorithm.createAlgorithm01)({
28
+ var matAlgo01xDSid = (0, _matAlgo01xDSid.createMatAlgo01xDSid)({
31
29
  typed: typed
32
30
  });
33
- var algorithm04 = (0, _algorithm2.createAlgorithm04)({
31
+ var matAlgo04xSidSid = (0, _matAlgo04xSidSid.createMatAlgo04xSidSid)({
34
32
  typed: typed,
35
33
  equalScalar: equalScalar
36
34
  });
37
- var algorithm10 = (0, _algorithm3.createAlgorithm10)({
35
+ var matAlgo10xSids = (0, _matAlgo10xSids.createMatAlgo10xSids)({
38
36
  typed: typed,
39
37
  DenseMatrix: DenseMatrix
40
38
  });
41
- var algorithm13 = (0, _algorithm4.createAlgorithm13)({
42
- typed: typed
39
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
40
+ typed: typed,
41
+ matrix: matrix
43
42
  });
44
- var algorithm14 = (0, _algorithm5.createAlgorithm14)({
45
- typed: typed
43
+ var gcdTypes = 'number | BigNumber | Fraction | Matrix | Array';
44
+ var gcdManySignature = {};
45
+ gcdManySignature["".concat(gcdTypes, ", ").concat(gcdTypes, ", ...").concat(gcdTypes)] = typed.referToSelf(function (self) {
46
+ return function (a, b, args) {
47
+ var res = self(a, b);
48
+
49
+ for (var i = 0; i < args.length; i++) {
50
+ res = self(res, args[i]);
51
+ }
52
+
53
+ return res;
54
+ };
46
55
  });
47
56
  /**
48
57
  * Calculate the greatest common divisor for two or more values or arrays.
@@ -75,62 +84,12 @@ var createGcd = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
75
84
  'BigNumber, BigNumber': _gcdBigNumber,
76
85
  'Fraction, Fraction': function FractionFraction(x, y) {
77
86
  return x.gcd(y);
78
- },
79
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
80
- return algorithm04(x, y, this);
81
- },
82
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
83
- return algorithm01(y, x, this, true);
84
- },
85
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
86
- return algorithm01(x, y, this, false);
87
- },
88
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
89
- return algorithm13(x, y, this);
90
- },
91
- 'Array, Array': function ArrayArray(x, y) {
92
- // use matrix implementation
93
- return this(matrix(x), matrix(y)).valueOf();
94
- },
95
- 'Array, Matrix': function ArrayMatrix(x, y) {
96
- // use matrix implementation
97
- return this(matrix(x), y);
98
- },
99
- 'Matrix, Array': function MatrixArray(x, y) {
100
- // use matrix implementation
101
- return this(x, matrix(y));
102
- },
103
- 'SparseMatrix, number | BigNumber': function SparseMatrixNumberBigNumber(x, y) {
104
- return algorithm10(x, y, this, false);
105
- },
106
- 'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
107
- return algorithm14(x, y, this, false);
108
- },
109
- 'number | BigNumber, SparseMatrix': function numberBigNumberSparseMatrix(x, y) {
110
- return algorithm10(y, x, this, true);
111
- },
112
- 'number | BigNumber, DenseMatrix': function numberBigNumberDenseMatrix(x, y) {
113
- return algorithm14(y, x, this, true);
114
- },
115
- 'Array, number | BigNumber': function ArrayNumberBigNumber(x, y) {
116
- // use matrix implementation
117
- return algorithm14(matrix(x), y, this, false).valueOf();
118
- },
119
- 'number | BigNumber, Array': function numberBigNumberArray(x, y) {
120
- // use matrix implementation
121
- return algorithm14(matrix(y), x, this, true).valueOf();
122
- },
123
- // TODO: need a smarter notation here
124
- 'Array | Matrix | number | BigNumber, Array | Matrix | number | BigNumber, ...Array | Matrix | number | BigNumber': function ArrayMatrixNumberBigNumberArrayMatrixNumberBigNumberArrayMatrixNumberBigNumber(a, b, args) {
125
- var res = this(a, b);
126
-
127
- for (var i = 0; i < args.length; i++) {
128
- res = this(res, args[i]);
129
- }
130
-
131
- return res;
132
87
  }
133
- });
88
+ }, matrixAlgorithmSuite({
89
+ SS: matAlgo04xSidSid,
90
+ DS: matAlgo01xDSid,
91
+ Ss: matAlgo10xSids
92
+ }), gcdManySignature);
134
93
  /**
135
94
  * Calculate gcd for BigNumbers
136
95
  * @param {BigNumber} a
@@ -9,6 +9,8 @@ var _factory = require("../../utils/factory.js");
9
9
 
10
10
  var _array = require("../../utils/array.js");
11
11
 
12
+ var _is = require("../../utils/is.js");
13
+
12
14
  var name = 'hypot';
13
15
  var dependencies = ['typed', 'abs', 'addScalar', 'divideScalar', 'multiplyScalar', 'sqrt', 'smaller', 'isPositive'];
14
16
  var createHypot = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
@@ -51,11 +53,9 @@ var createHypot = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
51
53
  */
52
54
  return typed(name, {
53
55
  '... number | BigNumber': _hypot,
54
- Array: function Array(x) {
55
- return this.apply(this, (0, _array.flatten)(x));
56
- },
57
- Matrix: function Matrix(x) {
58
- return this.apply(this, (0, _array.flatten)(x.toArray()));
56
+ Array: _hypot,
57
+ Matrix: function Matrix(M) {
58
+ return _hypot((0, _array.flatten)(M.toArray()));
59
59
  }
60
60
  });
61
61
  /**
@@ -72,6 +72,10 @@ var createHypot = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
72
72
  var largest = 0;
73
73
 
74
74
  for (var i = 0; i < args.length; i++) {
75
+ if ((0, _is.isComplex)(args[i])) {
76
+ throw new TypeError('Unexpected type of argument to hypot');
77
+ }
78
+
75
79
  var value = abs(args[i]);
76
80
 
77
81
  if (smaller(largest, value)) {
@@ -60,7 +60,7 @@ var createInvmod = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
60
60
  res = res.valueOf();
61
61
 
62
62
  var _res = res,
63
- _res2 = (0, _slicedToArray2.default)(_res, 2),
63
+ _res2 = (0, _slicedToArray2["default"])(_res, 2),
64
64
  gcd = _res2[0],
65
65
  inv = _res2[1];
66
66
 
@@ -7,15 +7,13 @@ exports.createLcm = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- var _algorithm = require("../../type/matrix/utils/algorithm02.js");
10
+ var _matAlgo02xDS = require("../../type/matrix/utils/matAlgo02xDS0.js");
11
11
 
12
- var _algorithm2 = require("../../type/matrix/utils/algorithm06.js");
12
+ var _matAlgo06xS0S = require("../../type/matrix/utils/matAlgo06xS0S0.js");
13
13
 
14
- var _algorithm3 = require("../../type/matrix/utils/algorithm11.js");
14
+ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
15
15
 
16
- var _algorithm4 = require("../../type/matrix/utils/algorithm13.js");
17
-
18
- var _algorithm5 = require("../../type/matrix/utils/algorithm14.js");
16
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
19
17
 
20
18
  var _index = require("../../plain/number/index.js");
21
19
 
@@ -25,23 +23,34 @@ var createLcm = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
25
23
  var typed = _ref.typed,
26
24
  matrix = _ref.matrix,
27
25
  equalScalar = _ref.equalScalar;
28
- var algorithm02 = (0, _algorithm.createAlgorithm02)({
26
+ var matAlgo02xDS0 = (0, _matAlgo02xDS.createMatAlgo02xDS0)({
29
27
  typed: typed,
30
28
  equalScalar: equalScalar
31
29
  });
32
- var algorithm06 = (0, _algorithm2.createAlgorithm06)({
30
+ var matAlgo06xS0S0 = (0, _matAlgo06xS0S.createMatAlgo06xS0S0)({
33
31
  typed: typed,
34
32
  equalScalar: equalScalar
35
33
  });
36
- var algorithm11 = (0, _algorithm3.createAlgorithm11)({
34
+ var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
37
35
  typed: typed,
38
36
  equalScalar: equalScalar
39
37
  });
40
- var algorithm13 = (0, _algorithm4.createAlgorithm13)({
41
- typed: typed
38
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
39
+ typed: typed,
40
+ matrix: matrix
42
41
  });
43
- var algorithm14 = (0, _algorithm5.createAlgorithm14)({
44
- typed: typed
42
+ var lcmTypes = 'number | BigNumber | Fraction | Matrix | Array';
43
+ var lcmManySignature = {};
44
+ lcmManySignature["".concat(lcmTypes, ", ").concat(lcmTypes, ", ...").concat(lcmTypes)] = typed.referToSelf(function (self) {
45
+ return function (a, b, args) {
46
+ var res = self(a, b);
47
+
48
+ for (var i = 0; i < args.length; i++) {
49
+ res = self(res, args[i]);
50
+ }
51
+
52
+ return res;
53
+ };
45
54
  });
46
55
  /**
47
56
  * Calculate the least common multiple for two or more values or arrays.
@@ -78,62 +87,12 @@ var createLcm = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
78
87
  'BigNumber, BigNumber': _lcmBigNumber,
79
88
  'Fraction, Fraction': function FractionFraction(x, y) {
80
89
  return x.lcm(y);
81
- },
82
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
83
- return algorithm06(x, y, this);
84
- },
85
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
86
- return algorithm02(y, x, this, true);
87
- },
88
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
89
- return algorithm02(x, y, this, false);
90
- },
91
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
92
- return algorithm13(x, y, this);
93
- },
94
- 'Array, Array': function ArrayArray(x, y) {
95
- // use matrix implementation
96
- return this(matrix(x), matrix(y)).valueOf();
97
- },
98
- 'Array, Matrix': function ArrayMatrix(x, y) {
99
- // use matrix implementation
100
- return this(matrix(x), y);
101
- },
102
- 'Matrix, Array': function MatrixArray(x, y) {
103
- // use matrix implementation
104
- return this(x, matrix(y));
105
- },
106
- 'SparseMatrix, number | BigNumber': function SparseMatrixNumberBigNumber(x, y) {
107
- return algorithm11(x, y, this, false);
108
- },
109
- 'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
110
- return algorithm14(x, y, this, false);
111
- },
112
- 'number | BigNumber, SparseMatrix': function numberBigNumberSparseMatrix(x, y) {
113
- return algorithm11(y, x, this, true);
114
- },
115
- 'number | BigNumber, DenseMatrix': function numberBigNumberDenseMatrix(x, y) {
116
- return algorithm14(y, x, this, true);
117
- },
118
- 'Array, number | BigNumber': function ArrayNumberBigNumber(x, y) {
119
- // use matrix implementation
120
- return algorithm14(matrix(x), y, this, false).valueOf();
121
- },
122
- 'number | BigNumber, Array': function numberBigNumberArray(x, y) {
123
- // use matrix implementation
124
- return algorithm14(matrix(y), x, this, true).valueOf();
125
- },
126
- // TODO: need a smarter notation here
127
- 'Array | Matrix | number | BigNumber, Array | Matrix | number | BigNumber, ...Array | Matrix | number | BigNumber': function ArrayMatrixNumberBigNumberArrayMatrixNumberBigNumberArrayMatrixNumberBigNumber(a, b, args) {
128
- var res = this(a, b);
129
-
130
- for (var i = 0; i < args.length; i++) {
131
- res = this(res, args[i]);
132
- }
133
-
134
- return res;
135
90
  }
136
- });
91
+ }, matrixAlgorithmSuite({
92
+ SS: matAlgo06xS0S0,
93
+ DS: matAlgo02xDS0,
94
+ Ss: matAlgo11xS0s
95
+ }), lcmManySignature);
137
96
  /**
138
97
  * Calculate lcm for two BigNumbers
139
98
  * @param {BigNumber} a
@@ -7,8 +7,6 @@ exports.createLog = 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 = 'log';
@@ -22,7 +20,8 @@ var createLog = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
22
20
  /**
23
21
  * Calculate the logarithm of a value.
24
22
  *
25
- * For matrices, the function is evaluated element wise.
23
+ * To avoid confusion with the matrix logarithm, this function does not
24
+ * apply to matrices.
26
25
  *
27
26
  * Syntax:
28
27
  *
@@ -45,12 +44,12 @@ var createLog = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
45
44
  *
46
45
  * exp, log2, log10, log1p
47
46
  *
48
- * @param {number | BigNumber | Complex | Array | Matrix} x
47
+ * @param {number | BigNumber | Complex} x
49
48
  * Value for which to calculate the logarithm.
50
49
  * @param {number | BigNumber | Complex} [base=e]
51
50
  * Optional base for the logarithm. If not provided, the natural
52
51
  * logarithm of `x` is calculated.
53
- * @return {number | BigNumber | Complex | Array | Matrix}
52
+ * @return {number | BigNumber | Complex}
54
53
  * Returns the logarithm of `x`
55
54
  */
56
55
  return typed(name, {
@@ -73,13 +72,12 @@ var createLog = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
73
72
  return new Complex(x.toNumber(), 0).log();
74
73
  }
75
74
  },
76
- 'Array | Matrix': function ArrayMatrix(x) {
77
- return (0, _collection.deepMap)(x, this);
78
- },
79
- 'any, any': function anyAny(x, base) {
80
- // calculate logarithm for a specified base, log(x, base)
81
- return divideScalar(this(x), this(base));
82
- }
75
+ 'any, any': typed.referToSelf(function (self) {
76
+ return function (x, base) {
77
+ // calculate logarithm for a specified base, log(x, base)
78
+ return divideScalar(self(x), self(base));
79
+ };
80
+ })
83
81
  });
84
82
  });
85
83
  exports.createLog = createLog;
@@ -63,9 +63,11 @@ var createLog10 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
63
63
  return new _Complex(x.toNumber(), 0).log().div(Math.LN10);
64
64
  }
65
65
  },
66
- 'Array | Matrix': function ArrayMatrix(x) {
67
- return (0, _collection.deepMap)(x, this);
68
- }
66
+ 'Array | Matrix': typed.referToSelf(function (self) {
67
+ return function (x) {
68
+ return (0, _collection.deepMap)(x, self);
69
+ };
70
+ })
69
71
  });
70
72
  });
71
73
  exports.createLog10 = createLog10;
@@ -71,13 +71,17 @@ var createLog1p = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
71
71
  return _log1pComplex(new Complex(x.toNumber(), 0));
72
72
  }
73
73
  },
74
- 'Array | Matrix': function ArrayMatrix(x) {
75
- return (0, _collection.deepMap)(x, this);
76
- },
77
- 'any, any': function anyAny(x, base) {
78
- // calculate logarithm for a specified base, log1p(x, base)
79
- return divideScalar(this(x), log(base));
80
- }
74
+ 'Array | Matrix': typed.referToSelf(function (self) {
75
+ return function (x) {
76
+ return (0, _collection.deepMap)(x, self);
77
+ };
78
+ }),
79
+ 'any, any': typed.referToSelf(function (self) {
80
+ return function (x, base) {
81
+ // calculate logarithm for a specified base, log1p(x, base)
82
+ return divideScalar(self(x), log(base));
83
+ };
84
+ })
81
85
  });
82
86
  /**
83
87
  * Calculate the natural logarithm of a complex number + 1
@@ -61,9 +61,11 @@ var createLog2 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
61
61
  return _log2Complex(new Complex(x.toNumber(), 0));
62
62
  }
63
63
  },
64
- 'Array | Matrix': function ArrayMatrix(x) {
65
- return (0, _collection.deepMap)(x, this);
66
- }
64
+ 'Array | Matrix': typed.referToSelf(function (self) {
65
+ return function (x) {
66
+ return (0, _collection.deepMap)(x, self);
67
+ };
68
+ })
67
69
  });
68
70
  /**
69
71
  * Calculate log2 for a complex value
@@ -7,22 +7,20 @@ exports.createMod = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- var _algorithm = require("../../type/matrix/utils/algorithm02.js");
10
+ var _matAlgo02xDS = require("../../type/matrix/utils/matAlgo02xDS0.js");
11
11
 
12
- var _algorithm2 = require("../../type/matrix/utils/algorithm03.js");
12
+ var _matAlgo03xDSf = require("../../type/matrix/utils/matAlgo03xDSf.js");
13
13
 
14
- var _algorithm3 = require("../../type/matrix/utils/algorithm05.js");
14
+ var _matAlgo05xSfSf = require("../../type/matrix/utils/matAlgo05xSfSf.js");
15
15
 
16
- var _algorithm4 = require("../../type/matrix/utils/algorithm11.js");
16
+ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
17
17
 
18
- var _algorithm5 = require("../../type/matrix/utils/algorithm12.js");
19
-
20
- var _algorithm6 = require("../../type/matrix/utils/algorithm13.js");
21
-
22
- var _algorithm7 = require("../../type/matrix/utils/algorithm14.js");
18
+ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
23
19
 
24
20
  var _index = require("../../plain/number/index.js");
25
21
 
22
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
23
+
26
24
  var name = 'mod';
27
25
  var dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix'];
28
26
  var createMod = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
@@ -30,30 +28,28 @@ var createMod = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
30
28
  matrix = _ref.matrix,
31
29
  equalScalar = _ref.equalScalar,
32
30
  DenseMatrix = _ref.DenseMatrix;
33
- var algorithm02 = (0, _algorithm.createAlgorithm02)({
31
+ var matAlgo02xDS0 = (0, _matAlgo02xDS.createMatAlgo02xDS0)({
34
32
  typed: typed,
35
33
  equalScalar: equalScalar
36
34
  });
37
- var algorithm03 = (0, _algorithm2.createAlgorithm03)({
35
+ var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
38
36
  typed: typed
39
37
  });
40
- var algorithm05 = (0, _algorithm3.createAlgorithm05)({
38
+ var matAlgo05xSfSf = (0, _matAlgo05xSfSf.createMatAlgo05xSfSf)({
41
39
  typed: typed,
42
40
  equalScalar: equalScalar
43
41
  });
44
- var algorithm11 = (0, _algorithm4.createAlgorithm11)({
42
+ var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
45
43
  typed: typed,
46
44
  equalScalar: equalScalar
47
45
  });
48
- var algorithm12 = (0, _algorithm5.createAlgorithm12)({
46
+ var matAlgo12xSfs = (0, _matAlgo12xSfs.createMatAlgo12xSfs)({
49
47
  typed: typed,
50
48
  DenseMatrix: DenseMatrix
51
49
  });
52
- var algorithm13 = (0, _algorithm6.createAlgorithm13)({
53
- typed: typed
54
- });
55
- var algorithm14 = (0, _algorithm7.createAlgorithm14)({
56
- typed: typed
50
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
51
+ typed: typed,
52
+ matrix: matrix
57
53
  });
58
54
  /**
59
55
  * Calculates the modulus, the remainder of an integer division.
@@ -107,51 +103,13 @@ var createMod = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
107
103
 
108
104
 
109
105
  return x.compare(0) >= 0 ? x.mod(y) : x.mod(y).add(y).mod(y);
110
- },
111
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
112
- return algorithm05(x, y, this, false);
113
- },
114
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
115
- return algorithm02(y, x, this, true);
116
- },
117
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
118
- return algorithm03(x, y, this, false);
119
- },
120
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
121
- return algorithm13(x, y, this);
122
- },
123
- 'Array, Array': function ArrayArray(x, y) {
124
- // use matrix implementation
125
- return this(matrix(x), matrix(y)).valueOf();
126
- },
127
- 'Array, Matrix': function ArrayMatrix(x, y) {
128
- // use matrix implementation
129
- return this(matrix(x), y);
130
- },
131
- 'Matrix, Array': function MatrixArray(x, y) {
132
- // use matrix implementation
133
- return this(x, matrix(y));
134
- },
135
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
136
- return algorithm11(x, y, this, false);
137
- },
138
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
139
- return algorithm14(x, y, this, false);
140
- },
141
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
142
- return algorithm12(y, x, this, true);
143
- },
144
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
145
- return algorithm14(y, x, this, true);
146
- },
147
- 'Array, any': function ArrayAny(x, y) {
148
- // use matrix implementation
149
- return algorithm14(matrix(x), y, this, false).valueOf();
150
- },
151
- 'any, Array': function anyArray(x, y) {
152
- // use matrix implementation
153
- return algorithm14(matrix(y), x, this, true).valueOf();
154
106
  }
155
- });
107
+ }, matrixAlgorithmSuite({
108
+ SS: matAlgo05xSfSf,
109
+ DS: matAlgo03xDSf,
110
+ SD: matAlgo02xDS0,
111
+ Ss: matAlgo11xS0s,
112
+ sS: matAlgo12xSfs
113
+ }));
156
114
  });
157
115
  exports.createMod = createMod;