mathjs 10.6.4 → 11.1.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 (454) hide show
  1. package/HISTORY.md +79 -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/construction/index.js +1 -1
  39. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +8 -5
  40. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +15 -0
  41. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  42. package/lib/cjs/expression/node/AccessorNode.js +216 -173
  43. package/lib/cjs/expression/node/ArrayNode.js +206 -160
  44. package/lib/cjs/expression/node/AssignmentNode.js +321 -270
  45. package/lib/cjs/expression/node/BlockNode.js +223 -172
  46. package/lib/cjs/expression/node/ConditionalNode.js +253 -193
  47. package/lib/cjs/expression/node/ConstantNode.js +216 -171
  48. package/lib/cjs/expression/node/FunctionAssignmentNode.js +258 -196
  49. package/lib/cjs/expression/node/FunctionNode.js +456 -416
  50. package/lib/cjs/expression/node/IndexNode.js +256 -210
  51. package/lib/cjs/expression/node/Node.js +411 -378
  52. package/lib/cjs/expression/node/ObjectNode.js +223 -178
  53. package/lib/cjs/expression/node/OperatorNode.js +474 -397
  54. package/lib/cjs/expression/node/ParenthesisNode.js +189 -143
  55. package/lib/cjs/expression/node/RangeNode.js +272 -224
  56. package/lib/cjs/expression/node/RelationalNode.js +246 -195
  57. package/lib/cjs/expression/node/SymbolNode.js +219 -172
  58. package/lib/cjs/expression/node/utils/access.js +1 -1
  59. package/lib/cjs/expression/node/utils/assign.js +1 -1
  60. package/lib/cjs/expression/operators.js +117 -23
  61. package/lib/cjs/expression/parse.js +37 -19
  62. package/lib/cjs/expression/transform/std.transform.js +3 -1
  63. package/lib/cjs/factoriesAny.js +8 -0
  64. package/lib/cjs/factoriesNumber.js +10 -1
  65. package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
  66. package/lib/cjs/function/algebra/derivative.js +25 -33
  67. package/lib/cjs/function/algebra/leafCount.js +0 -3
  68. package/lib/cjs/function/algebra/rationalize.js +78 -108
  69. package/lib/cjs/function/algebra/resolve.js +53 -16
  70. package/lib/cjs/function/algebra/simplify/util.js +1 -1
  71. package/lib/cjs/function/algebra/simplify.js +90 -115
  72. package/lib/cjs/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +44 -10
  73. package/lib/cjs/function/algebra/simplifyCore.js +196 -93
  74. package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
  75. package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
  76. package/lib/cjs/function/algebra/symbolicEqual.js +14 -32
  77. package/lib/cjs/function/arithmetic/abs.js +7 -14
  78. package/lib/cjs/function/arithmetic/add.js +26 -70
  79. package/lib/cjs/function/arithmetic/addScalar.js +17 -9
  80. package/lib/cjs/function/arithmetic/cbrt.js +7 -11
  81. package/lib/cjs/function/arithmetic/ceil.js +50 -40
  82. package/lib/cjs/function/arithmetic/cube.js +5 -10
  83. package/lib/cjs/function/arithmetic/divide.js +7 -7
  84. package/lib/cjs/function/arithmetic/divideScalar.js +4 -18
  85. package/lib/cjs/function/arithmetic/dotDivide.js +22 -65
  86. package/lib/cjs/function/arithmetic/dotMultiply.js +16 -61
  87. package/lib/cjs/function/arithmetic/dotPow.js +30 -63
  88. package/lib/cjs/function/arithmetic/exp.js +8 -12
  89. package/lib/cjs/function/arithmetic/expm1.js +10 -10
  90. package/lib/cjs/function/arithmetic/fix.js +34 -28
  91. package/lib/cjs/function/arithmetic/floor.js +51 -41
  92. package/lib/cjs/function/arithmetic/gcd.js +27 -68
  93. package/lib/cjs/function/arithmetic/hypot.js +9 -5
  94. package/lib/cjs/function/arithmetic/invmod.js +2 -2
  95. package/lib/cjs/function/arithmetic/lcm.js +27 -68
  96. package/lib/cjs/function/arithmetic/log.js +10 -12
  97. package/lib/cjs/function/arithmetic/log10.js +5 -3
  98. package/lib/cjs/function/arithmetic/log1p.js +11 -7
  99. package/lib/cjs/function/arithmetic/log2.js +5 -3
  100. package/lib/cjs/function/arithmetic/mod.js +22 -64
  101. package/lib/cjs/function/arithmetic/multiply.js +40 -35
  102. package/lib/cjs/function/arithmetic/multiplyScalar.js +2 -9
  103. package/lib/cjs/function/arithmetic/norm.js +1 -5
  104. package/lib/cjs/function/arithmetic/nthRoot.js +83 -95
  105. package/lib/cjs/function/arithmetic/nthRoots.js +2 -2
  106. package/lib/cjs/function/arithmetic/round.js +56 -42
  107. package/lib/cjs/function/arithmetic/sign.js +14 -10
  108. package/lib/cjs/function/arithmetic/sqrt.js +5 -9
  109. package/lib/cjs/function/arithmetic/square.js +6 -10
  110. package/lib/cjs/function/arithmetic/subtract.js +44 -100
  111. package/lib/cjs/function/arithmetic/unaryMinus.js +14 -16
  112. package/lib/cjs/function/arithmetic/unaryPlus.js +6 -4
  113. package/lib/cjs/function/bitwise/bitAnd.js +17 -61
  114. package/lib/cjs/function/bitwise/bitNot.js +6 -4
  115. package/lib/cjs/function/bitwise/bitOr.js +16 -60
  116. package/lib/cjs/function/bitwise/bitXor.js +17 -61
  117. package/lib/cjs/function/bitwise/leftShift.js +69 -82
  118. package/lib/cjs/function/bitwise/rightArithShift.js +69 -82
  119. package/lib/cjs/function/bitwise/rightLogShift.js +69 -82
  120. package/lib/cjs/function/bitwise/useMatrixForArrayScalar.js +36 -0
  121. package/lib/cjs/function/complex/arg.js +5 -3
  122. package/lib/cjs/function/complex/conj.js +6 -7
  123. package/lib/cjs/function/complex/im.js +7 -8
  124. package/lib/cjs/function/complex/re.js +6 -10
  125. package/lib/cjs/function/geometry/distance.js +2 -2
  126. package/lib/cjs/function/logical/and.js +74 -80
  127. package/lib/cjs/function/logical/not.js +13 -6
  128. package/lib/cjs/function/logical/or.js +21 -63
  129. package/lib/cjs/function/logical/xor.js +21 -63
  130. package/lib/cjs/function/matrix/diff.js +11 -8
  131. package/lib/cjs/function/matrix/eigs/complexEigs.js +5 -5
  132. package/lib/cjs/function/matrix/fft.js +2 -2
  133. package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
  134. package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
  135. package/lib/cjs/function/matrix/ones.js +2 -1
  136. package/lib/cjs/function/matrix/rotate.js +5 -5
  137. package/lib/cjs/function/matrix/sqrtm.js +3 -2
  138. package/lib/cjs/function/matrix/transpose.js +47 -48
  139. package/lib/cjs/function/matrix/zeros.js +2 -1
  140. package/lib/cjs/function/probability/factorial.js +5 -3
  141. package/lib/cjs/function/probability/gamma.js +38 -40
  142. package/lib/cjs/function/probability/kldivergence.js +5 -2
  143. package/lib/cjs/function/probability/lgamma.js +30 -30
  144. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  145. package/lib/cjs/function/relational/compare.js +21 -67
  146. package/lib/cjs/function/relational/compareNatural.js +59 -54
  147. package/lib/cjs/function/relational/compareText.js +10 -43
  148. package/lib/cjs/function/relational/compareUnits.js +24 -0
  149. package/lib/cjs/function/relational/equal.js +19 -80
  150. package/lib/cjs/function/relational/equalScalar.js +7 -9
  151. package/lib/cjs/function/relational/larger.js +21 -67
  152. package/lib/cjs/function/relational/largerEq.js +21 -67
  153. package/lib/cjs/function/relational/smaller.js +21 -67
  154. package/lib/cjs/function/relational/smallerEq.js +21 -67
  155. package/lib/cjs/function/relational/unequal.js +19 -80
  156. package/lib/cjs/function/special/erf.js +5 -3
  157. package/lib/cjs/function/statistics/std.js +11 -2
  158. package/lib/cjs/function/string/format.js +2 -2
  159. package/lib/cjs/function/string/hex.js +1 -2
  160. package/lib/cjs/function/trigonometry/acos.js +4 -8
  161. package/lib/cjs/function/trigonometry/acosh.js +2 -7
  162. package/lib/cjs/function/trigonometry/acot.js +6 -11
  163. package/lib/cjs/function/trigonometry/acoth.js +4 -8
  164. package/lib/cjs/function/trigonometry/acsc.js +6 -11
  165. package/lib/cjs/function/trigonometry/acsch.js +4 -8
  166. package/lib/cjs/function/trigonometry/asec.js +6 -10
  167. package/lib/cjs/function/trigonometry/asech.js +4 -8
  168. package/lib/cjs/function/trigonometry/asin.js +5 -10
  169. package/lib/cjs/function/trigonometry/asinh.js +4 -9
  170. package/lib/cjs/function/trigonometry/atan.js +5 -11
  171. package/lib/cjs/function/trigonometry/atan2.js +25 -63
  172. package/lib/cjs/function/trigonometry/atanh.js +4 -9
  173. package/lib/cjs/function/trigonometry/cos.js +11 -20
  174. package/lib/cjs/function/trigonometry/cosh.js +5 -19
  175. package/lib/cjs/function/trigonometry/cot.js +9 -15
  176. package/lib/cjs/function/trigonometry/coth.js +4 -15
  177. package/lib/cjs/function/trigonometry/csc.js +11 -17
  178. package/lib/cjs/function/trigonometry/csch.js +4 -15
  179. package/lib/cjs/function/trigonometry/sec.js +11 -17
  180. package/lib/cjs/function/trigonometry/sech.js +4 -15
  181. package/lib/cjs/function/trigonometry/sin.js +11 -21
  182. package/lib/cjs/function/trigonometry/sinh.js +5 -20
  183. package/lib/cjs/function/trigonometry/tan.js +11 -21
  184. package/lib/cjs/function/trigonometry/tanh.js +5 -20
  185. package/lib/cjs/function/trigonometry/trigUnit.js +24 -0
  186. package/lib/cjs/function/unit/to.js +7 -41
  187. package/lib/cjs/function/utils/clone.js +1 -1
  188. package/lib/cjs/function/utils/hasNumericValue.js +5 -1
  189. package/lib/cjs/function/utils/isInteger.js +6 -4
  190. package/lib/cjs/function/utils/isNaN.js +1 -1
  191. package/lib/cjs/function/utils/isNegative.js +11 -7
  192. package/lib/cjs/function/utils/isNumeric.js +6 -4
  193. package/lib/cjs/function/utils/isPositive.js +11 -7
  194. package/lib/cjs/function/utils/isPrime.js +5 -3
  195. package/lib/cjs/function/utils/isZero.js +21 -17
  196. package/lib/cjs/function/utils/numeric.js +11 -4
  197. package/lib/cjs/function/utils/typeOf.js +38 -44
  198. package/lib/cjs/header.js +2 -2
  199. package/lib/cjs/plain/bignumber/index.js +1 -1
  200. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  201. package/lib/cjs/type/bignumber/function/bignumber.js +6 -4
  202. package/lib/cjs/type/boolean.js +7 -5
  203. package/lib/cjs/type/chain/Chain.js +23 -3
  204. package/lib/cjs/type/complex/Complex.js +18 -14
  205. package/lib/cjs/type/complex/function/complex.js +6 -4
  206. package/lib/cjs/type/fraction/Fraction.js +10 -6
  207. package/lib/cjs/type/fraction/function/fraction.js +6 -4
  208. package/lib/cjs/type/matrix/DenseMatrix.js +21 -6
  209. package/lib/cjs/type/matrix/SparseMatrix.js +12 -2
  210. package/lib/cjs/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +4 -4
  211. package/lib/cjs/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +5 -5
  212. package/lib/cjs/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +5 -5
  213. package/lib/cjs/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +7 -7
  214. package/lib/cjs/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +5 -5
  215. package/lib/cjs/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +5 -5
  216. package/lib/cjs/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +5 -5
  217. package/lib/cjs/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +6 -6
  218. package/lib/cjs/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +5 -5
  219. package/lib/cjs/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +5 -5
  220. package/lib/cjs/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +5 -5
  221. package/lib/cjs/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +5 -5
  222. package/lib/cjs/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +5 -5
  223. package/lib/cjs/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +5 -5
  224. package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +238 -0
  225. package/lib/cjs/type/number.js +6 -4
  226. package/lib/cjs/type/string.js +7 -5
  227. package/lib/cjs/type/unit/Unit.js +98 -45
  228. package/lib/cjs/type/unit/function/createUnit.js +2 -1
  229. package/lib/cjs/type/unit/function/unit.js +14 -5
  230. package/lib/cjs/utils/customs.js +2 -2
  231. package/lib/cjs/utils/emitter.js +1 -1
  232. package/lib/cjs/utils/function.js +2 -2
  233. package/lib/cjs/utils/is.js +27 -25
  234. package/lib/cjs/utils/latex.js +3 -3
  235. package/lib/cjs/utils/lruQueue.js +1 -1
  236. package/lib/cjs/utils/map.js +3 -3
  237. package/lib/cjs/utils/object.js +2 -2
  238. package/lib/cjs/utils/snapshot.js +30 -57
  239. package/lib/cjs/utils/string.js +3 -3
  240. package/lib/cjs/version.js +1 -1
  241. package/lib/esm/core/create.js +2 -1
  242. package/lib/esm/core/function/import.js +2 -12
  243. package/lib/esm/core/function/typed.js +47 -11
  244. package/lib/esm/entry/dependenciesAny/dependenciesChainClass.generated.js +2 -0
  245. package/lib/esm/entry/dependenciesAny/dependenciesKldivergence.generated.js +2 -0
  246. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
  247. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +2 -0
  248. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +2 -0
  249. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +34 -0
  250. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +4 -0
  251. package/lib/esm/entry/dependenciesAny/dependenciesSqrtm.generated.js +2 -0
  252. package/lib/esm/entry/dependenciesAny/dependenciesStd.generated.js +2 -0
  253. package/lib/esm/entry/dependenciesAny/dependenciesStdTransform.generated.js +2 -0
  254. package/lib/esm/entry/dependenciesAny.generated.js +1 -0
  255. package/lib/esm/entry/dependenciesNumber/dependenciesChainClass.generated.js +2 -0
  256. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +2 -0
  257. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +2 -0
  258. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +2 -0
  259. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +30 -0
  260. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +4 -0
  261. package/lib/esm/entry/dependenciesNumber/dependenciesStd.generated.js +2 -0
  262. package/lib/esm/entry/dependenciesNumber/dependenciesStdTransform.generated.js +2 -0
  263. package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
  264. package/lib/esm/entry/impureFunctionsAny.generated.js +73 -48
  265. package/lib/esm/entry/impureFunctionsNumber.generated.js +81 -58
  266. package/lib/esm/entry/pureFunctionsAny.generated.js +39 -36
  267. package/lib/esm/entry/pureFunctionsNumber.generated.js +14 -13
  268. package/lib/esm/expression/embeddedDocs/construction/index.js +1 -1
  269. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
  270. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +8 -0
  271. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  272. package/lib/esm/expression/node/AccessorNode.js +158 -153
  273. package/lib/esm/expression/node/ArrayNode.js +162 -154
  274. package/lib/esm/expression/node/AssignmentNode.js +257 -245
  275. package/lib/esm/expression/node/BlockNode.js +177 -163
  276. package/lib/esm/expression/node/ConditionalNode.js +197 -174
  277. package/lib/esm/expression/node/ConstantNode.js +171 -163
  278. package/lib/esm/expression/node/FunctionAssignmentNode.js +205 -180
  279. package/lib/esm/expression/node/FunctionNode.js +407 -407
  280. package/lib/esm/expression/node/IndexNode.js +206 -198
  281. package/lib/esm/expression/node/Node.js +325 -325
  282. package/lib/esm/expression/node/ObjectNode.js +166 -157
  283. package/lib/esm/expression/node/OperatorNode.js +414 -377
  284. package/lib/esm/expression/node/ParenthesisNode.js +146 -138
  285. package/lib/esm/expression/node/RangeNode.js +221 -212
  286. package/lib/esm/expression/node/RelationalNode.js +190 -176
  287. package/lib/esm/expression/node/SymbolNode.js +161 -152
  288. package/lib/esm/expression/operators.js +96 -4
  289. package/lib/esm/expression/parse.js +25 -7
  290. package/lib/esm/expression/transform/std.transform.js +3 -1
  291. package/lib/esm/factoriesAny.js +1 -0
  292. package/lib/esm/factoriesNumber.js +1 -0
  293. package/lib/esm/function/algebra/derivative.js +25 -33
  294. package/lib/esm/function/algebra/leafCount.js +0 -3
  295. package/lib/esm/function/algebra/rationalize.js +83 -114
  296. package/lib/esm/function/algebra/resolve.js +25 -16
  297. package/lib/esm/function/algebra/simplify.js +85 -113
  298. package/lib/esm/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +39 -9
  299. package/lib/esm/function/algebra/simplifyCore.js +192 -91
  300. package/lib/esm/function/algebra/symbolicEqual.js +14 -32
  301. package/lib/esm/function/arithmetic/abs.js +3 -16
  302. package/lib/esm/function/arithmetic/add.js +21 -65
  303. package/lib/esm/function/arithmetic/addScalar.js +11 -5
  304. package/lib/esm/function/arithmetic/cbrt.js +7 -10
  305. package/lib/esm/function/arithmetic/ceil.js +25 -25
  306. package/lib/esm/function/arithmetic/cube.js +5 -9
  307. package/lib/esm/function/arithmetic/divide.js +7 -7
  308. package/lib/esm/function/arithmetic/divideScalar.js +2 -19
  309. package/lib/esm/function/arithmetic/dotDivide.js +22 -64
  310. package/lib/esm/function/arithmetic/dotMultiply.js +16 -60
  311. package/lib/esm/function/arithmetic/dotPow.js +30 -62
  312. package/lib/esm/function/arithmetic/exp.js +8 -11
  313. package/lib/esm/function/arithmetic/expm1.js +10 -9
  314. package/lib/esm/function/arithmetic/fix.js +18 -18
  315. package/lib/esm/function/arithmetic/floor.js +26 -26
  316. package/lib/esm/function/arithmetic/gcd.js +26 -70
  317. package/lib/esm/function/arithmetic/hypot.js +7 -6
  318. package/lib/esm/function/arithmetic/invmod.js +1 -1
  319. package/lib/esm/function/arithmetic/lcm.js +26 -70
  320. package/lib/esm/function/arithmetic/log.js +7 -10
  321. package/lib/esm/function/arithmetic/log10.js +1 -3
  322. package/lib/esm/function/arithmetic/log1p.js +4 -6
  323. package/lib/esm/function/arithmetic/log2.js +1 -3
  324. package/lib/esm/function/arithmetic/mod.js +21 -62
  325. package/lib/esm/function/arithmetic/multiply.js +23 -27
  326. package/lib/esm/function/arithmetic/multiplyScalar.js +2 -13
  327. package/lib/esm/function/arithmetic/norm.js +0 -4
  328. package/lib/esm/function/arithmetic/nthRoot.js +41 -76
  329. package/lib/esm/function/arithmetic/nthRoots.js +2 -2
  330. package/lib/esm/function/arithmetic/round.js +26 -28
  331. package/lib/esm/function/arithmetic/sign.js +5 -7
  332. package/lib/esm/function/arithmetic/sqrt.js +5 -8
  333. package/lib/esm/function/arithmetic/square.js +6 -9
  334. package/lib/esm/function/arithmetic/subtract.js +31 -95
  335. package/lib/esm/function/arithmetic/unaryMinus.js +6 -16
  336. package/lib/esm/function/arithmetic/unaryPlus.js +2 -4
  337. package/lib/esm/function/bitwise/bitAnd.js +16 -59
  338. package/lib/esm/function/bitwise/bitNot.js +2 -4
  339. package/lib/esm/function/bitwise/bitOr.js +16 -59
  340. package/lib/esm/function/bitwise/bitXor.js +16 -59
  341. package/lib/esm/function/bitwise/leftShift.js +39 -61
  342. package/lib/esm/function/bitwise/rightArithShift.js +39 -61
  343. package/lib/esm/function/bitwise/rightLogShift.js +39 -61
  344. package/lib/esm/function/bitwise/useMatrixForArrayScalar.js +13 -0
  345. package/lib/esm/function/complex/arg.js +1 -3
  346. package/lib/esm/function/complex/conj.js +3 -12
  347. package/lib/esm/function/complex/im.js +4 -15
  348. package/lib/esm/function/complex/re.js +3 -15
  349. package/lib/esm/function/geometry/distance.js +2 -2
  350. package/lib/esm/function/logical/and.js +35 -57
  351. package/lib/esm/function/logical/not.js +3 -6
  352. package/lib/esm/function/logical/or.js +16 -61
  353. package/lib/esm/function/logical/xor.js +16 -61
  354. package/lib/esm/function/matrix/diff.js +3 -8
  355. package/lib/esm/function/matrix/ones.js +2 -1
  356. package/lib/esm/function/matrix/rotate.js +5 -5
  357. package/lib/esm/function/matrix/sqrtm.js +3 -2
  358. package/lib/esm/function/matrix/transpose.js +47 -50
  359. package/lib/esm/function/matrix/zeros.js +2 -1
  360. package/lib/esm/function/probability/factorial.js +1 -3
  361. package/lib/esm/function/probability/gamma.js +38 -39
  362. package/lib/esm/function/probability/kldivergence.js +3 -2
  363. package/lib/esm/function/probability/lgamma.js +29 -29
  364. package/lib/esm/function/relational/compare.js +21 -67
  365. package/lib/esm/function/relational/compareNatural.js +54 -49
  366. package/lib/esm/function/relational/compareText.js +10 -42
  367. package/lib/esm/function/relational/compareUnits.js +15 -0
  368. package/lib/esm/function/relational/equal.js +19 -79
  369. package/lib/esm/function/relational/equalScalar.js +6 -9
  370. package/lib/esm/function/relational/larger.js +23 -73
  371. package/lib/esm/function/relational/largerEq.js +23 -73
  372. package/lib/esm/function/relational/smaller.js +23 -73
  373. package/lib/esm/function/relational/smallerEq.js +23 -73
  374. package/lib/esm/function/relational/unequal.js +19 -79
  375. package/lib/esm/function/special/erf.js +1 -3
  376. package/lib/esm/function/statistics/std.js +10 -2
  377. package/lib/esm/function/string/format.js +2 -2
  378. package/lib/esm/function/string/hex.js +1 -2
  379. package/lib/esm/function/trigonometry/acos.js +4 -7
  380. package/lib/esm/function/trigonometry/acosh.js +2 -6
  381. package/lib/esm/function/trigonometry/acot.js +6 -10
  382. package/lib/esm/function/trigonometry/acoth.js +4 -7
  383. package/lib/esm/function/trigonometry/acsc.js +6 -10
  384. package/lib/esm/function/trigonometry/acsch.js +4 -7
  385. package/lib/esm/function/trigonometry/asec.js +6 -9
  386. package/lib/esm/function/trigonometry/asech.js +4 -7
  387. package/lib/esm/function/trigonometry/asin.js +5 -9
  388. package/lib/esm/function/trigonometry/asinh.js +4 -8
  389. package/lib/esm/function/trigonometry/atan.js +5 -10
  390. package/lib/esm/function/trigonometry/atan2.js +26 -65
  391. package/lib/esm/function/trigonometry/atanh.js +4 -8
  392. package/lib/esm/function/trigonometry/cos.js +11 -22
  393. package/lib/esm/function/trigonometry/cosh.js +5 -20
  394. package/lib/esm/function/trigonometry/cot.js +10 -20
  395. package/lib/esm/function/trigonometry/coth.js +6 -20
  396. package/lib/esm/function/trigonometry/csc.js +12 -22
  397. package/lib/esm/function/trigonometry/csch.js +6 -20
  398. package/lib/esm/function/trigonometry/sec.js +12 -22
  399. package/lib/esm/function/trigonometry/sech.js +6 -20
  400. package/lib/esm/function/trigonometry/sin.js +11 -23
  401. package/lib/esm/function/trigonometry/sinh.js +5 -21
  402. package/lib/esm/function/trigonometry/tan.js +11 -23
  403. package/lib/esm/function/trigonometry/tanh.js +5 -21
  404. package/lib/esm/function/trigonometry/trigUnit.js +15 -0
  405. package/lib/esm/function/unit/to.js +8 -43
  406. package/lib/esm/function/utils/clone.js +1 -1
  407. package/lib/esm/function/utils/hasNumericValue.js +3 -1
  408. package/lib/esm/function/utils/isInteger.js +2 -4
  409. package/lib/esm/function/utils/isNaN.js +1 -1
  410. package/lib/esm/function/utils/isNegative.js +3 -7
  411. package/lib/esm/function/utils/isNumeric.js +4 -10
  412. package/lib/esm/function/utils/isPositive.js +3 -7
  413. package/lib/esm/function/utils/isPrime.js +1 -3
  414. package/lib/esm/function/utils/isZero.js +13 -17
  415. package/lib/esm/function/utils/numeric.js +11 -4
  416. package/lib/esm/function/utils/typeOf.js +38 -44
  417. package/lib/esm/type/bignumber/function/bignumber.js +1 -3
  418. package/lib/esm/type/boolean.js +1 -3
  419. package/lib/esm/type/chain/Chain.js +23 -3
  420. package/lib/esm/type/complex/Complex.js +4 -0
  421. package/lib/esm/type/complex/function/complex.js +1 -3
  422. package/lib/esm/type/fraction/Fraction.js +4 -0
  423. package/lib/esm/type/fraction/function/fraction.js +1 -3
  424. package/lib/esm/type/matrix/DenseMatrix.js +15 -1
  425. package/lib/esm/type/matrix/SparseMatrix.js +9 -0
  426. package/lib/esm/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +2 -2
  427. package/lib/esm/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +3 -3
  428. package/lib/esm/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +3 -3
  429. package/lib/esm/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +5 -5
  430. package/lib/esm/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +3 -3
  431. package/lib/esm/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +3 -3
  432. package/lib/esm/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +3 -3
  433. package/lib/esm/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +4 -4
  434. package/lib/esm/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +3 -3
  435. package/lib/esm/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +3 -3
  436. package/lib/esm/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +3 -3
  437. package/lib/esm/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +3 -3
  438. package/lib/esm/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +3 -3
  439. package/lib/esm/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +3 -3
  440. package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +168 -0
  441. package/lib/esm/type/number.js +1 -3
  442. package/lib/esm/type/string.js +1 -3
  443. package/lib/esm/type/unit/Unit.js +85 -36
  444. package/lib/esm/type/unit/function/createUnit.js +2 -1
  445. package/lib/esm/type/unit/function/unit.js +10 -5
  446. package/lib/esm/utils/is.js +18 -18
  447. package/lib/esm/utils/snapshot.js +22 -48
  448. package/lib/esm/version.js +1 -1
  449. package/package.json +22 -25
  450. package/types/index.d.ts +211 -180
  451. package/types/index.ts +358 -144
  452. package/types/tsconfig.json +4 -1
  453. package/lib/cjs/utils/polyfills.js +0 -14
  454. package/lib/esm/utils/polyfills.js +0 -12
@@ -5,22 +5,24 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createLeftShift = void 0;
7
7
 
8
- var _algorithm = require("../../type/matrix/utils/algorithm02.js");
8
+ var _matAlgo02xDS = require("../../type/matrix/utils/matAlgo02xDS0.js");
9
9
 
10
- var _algorithm2 = require("../../type/matrix/utils/algorithm11.js");
10
+ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
11
11
 
12
- var _algorithm3 = require("../../type/matrix/utils/algorithm13.js");
12
+ var _matAlgo14xDs = require("../../type/matrix/utils/matAlgo14xDs.js");
13
13
 
14
- var _algorithm4 = require("../../type/matrix/utils/algorithm14.js");
14
+ var _matAlgo01xDSid = require("../../type/matrix/utils/matAlgo01xDSid.js");
15
15
 
16
- var _algorithm5 = require("../../type/matrix/utils/algorithm01.js");
16
+ var _matAlgo10xSids = require("../../type/matrix/utils/matAlgo10xSids.js");
17
17
 
18
- var _algorithm6 = require("../../type/matrix/utils/algorithm10.js");
19
-
20
- var _algorithm7 = require("../../type/matrix/utils/algorithm08.js");
18
+ var _matAlgo08xS0Sid = require("../../type/matrix/utils/matAlgo08xS0Sid.js");
21
19
 
22
20
  var _factory = require("../../utils/factory.js");
23
21
 
22
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
23
+
24
+ var _useMatrixForArrayScalar = require("./useMatrixForArrayScalar.js");
25
+
24
26
  var _index = require("../../plain/number/index.js");
25
27
 
26
28
  var _bitwise = require("../../utils/bignumber/bitwise.js");
@@ -33,30 +35,35 @@ var createLeftShift = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
33
35
  equalScalar = _ref.equalScalar,
34
36
  zeros = _ref.zeros,
35
37
  DenseMatrix = _ref.DenseMatrix;
36
- var algorithm01 = (0, _algorithm5.createAlgorithm01)({
38
+ var matAlgo01xDSid = (0, _matAlgo01xDSid.createMatAlgo01xDSid)({
37
39
  typed: typed
38
40
  });
39
- var algorithm02 = (0, _algorithm.createAlgorithm02)({
41
+ var matAlgo02xDS0 = (0, _matAlgo02xDS.createMatAlgo02xDS0)({
40
42
  typed: typed,
41
43
  equalScalar: equalScalar
42
44
  });
43
- var algorithm08 = (0, _algorithm7.createAlgorithm08)({
45
+ var matAlgo08xS0Sid = (0, _matAlgo08xS0Sid.createMatAlgo08xS0Sid)({
44
46
  typed: typed,
45
47
  equalScalar: equalScalar
46
48
  });
47
- var algorithm10 = (0, _algorithm6.createAlgorithm10)({
49
+ var matAlgo10xSids = (0, _matAlgo10xSids.createMatAlgo10xSids)({
48
50
  typed: typed,
49
51
  DenseMatrix: DenseMatrix
50
52
  });
51
- var algorithm11 = (0, _algorithm2.createAlgorithm11)({
53
+ var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
52
54
  typed: typed,
53
55
  equalScalar: equalScalar
54
56
  });
55
- var algorithm13 = (0, _algorithm3.createAlgorithm13)({
57
+ var matAlgo14xDs = (0, _matAlgo14xDs.createMatAlgo14xDs)({
56
58
  typed: typed
57
59
  });
58
- var algorithm14 = (0, _algorithm4.createAlgorithm14)({
59
- typed: typed
60
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
61
+ typed: typed,
62
+ matrix: matrix
63
+ });
64
+ var useMatrixForArrayScalar = (0, _useMatrixForArrayScalar.createUseMatrixForArrayScalar)({
65
+ typed: typed,
66
+ matrix: matrix
60
67
  });
61
68
  /**
62
69
  * Bitwise left logical shift of a value x by y number of bits, `x << y`.
@@ -71,7 +78,7 @@ var createLeftShift = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
71
78
  *
72
79
  * math.leftShift(1, 2) // returns number 4
73
80
  *
74
- * math.leftShift([1, 2, 3], 4) // returns Array [16, 32, 64]
81
+ * math.leftShift([1, 2, 4], 4) // returns Array [16, 32, 64]
75
82
  *
76
83
  * See also:
77
84
  *
@@ -85,70 +92,50 @@ var createLeftShift = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
85
92
  return typed(name, {
86
93
  'number, number': _index.leftShiftNumber,
87
94
  'BigNumber, BigNumber': _bitwise.leftShiftBigNumber,
88
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
89
- return algorithm08(x, y, this, false);
90
- },
91
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
92
- return algorithm02(y, x, this, true);
93
- },
94
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
95
- return algorithm01(x, y, this, false);
96
- },
97
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
98
- return algorithm13(x, y, this);
99
- },
100
- 'Array, Array': function ArrayArray(x, y) {
101
- // use matrix implementation
102
- return this(matrix(x), matrix(y)).valueOf();
103
- },
104
- 'Array, Matrix': function ArrayMatrix(x, y) {
105
- // use matrix implementation
106
- return this(matrix(x), y);
107
- },
108
- 'Matrix, Array': function MatrixArray(x, y) {
109
- // use matrix implementation
110
- return this(x, matrix(y));
111
- },
112
- 'SparseMatrix, number | BigNumber': function SparseMatrixNumberBigNumber(x, y) {
113
- // check scalar
114
- if (equalScalar(y, 0)) {
115
- return x.clone();
116
- }
117
-
118
- return algorithm11(x, y, this, false);
119
- },
120
- 'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
121
- // check scalar
122
- if (equalScalar(y, 0)) {
123
- return x.clone();
124
- }
125
-
126
- return algorithm14(x, y, this, false);
127
- },
128
- 'number | BigNumber, SparseMatrix': function numberBigNumberSparseMatrix(x, y) {
129
- // check scalar
130
- if (equalScalar(x, 0)) {
131
- return zeros(y.size(), y.storage());
132
- }
133
-
134
- return algorithm10(y, x, this, true);
135
- },
136
- 'number | BigNumber, DenseMatrix': function numberBigNumberDenseMatrix(x, y) {
137
- // check scalar
138
- if (equalScalar(x, 0)) {
139
- return zeros(y.size(), y.storage());
140
- }
141
-
142
- return algorithm14(y, x, this, true);
143
- },
144
- 'Array, number | BigNumber': function ArrayNumberBigNumber(x, y) {
145
- // use matrix implementation
146
- return this(matrix(x), y).valueOf();
147
- },
148
- 'number | BigNumber, Array': function numberBigNumberArray(x, y) {
149
- // use matrix implementation
150
- return this(x, matrix(y)).valueOf();
151
- }
152
- });
95
+ 'SparseMatrix, number | BigNumber': typed.referToSelf(function (self) {
96
+ return function (x, y) {
97
+ // check scalar
98
+ if (equalScalar(y, 0)) {
99
+ return x.clone();
100
+ }
101
+
102
+ return matAlgo11xS0s(x, y, self, false);
103
+ };
104
+ }),
105
+ 'DenseMatrix, number | BigNumber': typed.referToSelf(function (self) {
106
+ return function (x, y) {
107
+ // check scalar
108
+ if (equalScalar(y, 0)) {
109
+ return x.clone();
110
+ }
111
+
112
+ return matAlgo14xDs(x, y, self, false);
113
+ };
114
+ }),
115
+ 'number | BigNumber, SparseMatrix': typed.referToSelf(function (self) {
116
+ return function (x, y) {
117
+ // check scalar
118
+ if (equalScalar(x, 0)) {
119
+ return zeros(y.size(), y.storage());
120
+ }
121
+
122
+ return matAlgo10xSids(y, x, self, true);
123
+ };
124
+ }),
125
+ 'number | BigNumber, DenseMatrix': typed.referToSelf(function (self) {
126
+ return function (x, y) {
127
+ // check scalar
128
+ if (equalScalar(x, 0)) {
129
+ return zeros(y.size(), y.storage());
130
+ }
131
+
132
+ return matAlgo14xDs(y, x, self, true);
133
+ };
134
+ })
135
+ }, useMatrixForArrayScalar, matrixAlgorithmSuite({
136
+ SS: matAlgo08xS0Sid,
137
+ DS: matAlgo01xDSid,
138
+ SD: matAlgo02xDS0
139
+ }));
153
140
  });
154
141
  exports.createLeftShift = createLeftShift;
@@ -7,22 +7,24 @@ exports.createRightArithShift = void 0;
7
7
 
8
8
  var _bitwise = require("../../utils/bignumber/bitwise.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/algorithm11.js");
12
+ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
13
13
 
14
- var _algorithm3 = require("../../type/matrix/utils/algorithm13.js");
14
+ var _matAlgo14xDs = require("../../type/matrix/utils/matAlgo14xDs.js");
15
15
 
16
- var _algorithm4 = require("../../type/matrix/utils/algorithm14.js");
16
+ var _matAlgo01xDSid = require("../../type/matrix/utils/matAlgo01xDSid.js");
17
17
 
18
- var _algorithm5 = require("../../type/matrix/utils/algorithm01.js");
18
+ var _matAlgo10xSids = require("../../type/matrix/utils/matAlgo10xSids.js");
19
19
 
20
- var _algorithm6 = require("../../type/matrix/utils/algorithm10.js");
21
-
22
- var _algorithm7 = require("../../type/matrix/utils/algorithm08.js");
20
+ var _matAlgo08xS0Sid = require("../../type/matrix/utils/matAlgo08xS0Sid.js");
23
21
 
24
22
  var _factory = require("../../utils/factory.js");
25
23
 
24
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
25
+
26
+ var _useMatrixForArrayScalar = require("./useMatrixForArrayScalar.js");
27
+
26
28
  var _index = require("../../plain/number/index.js");
27
29
 
28
30
  var name = 'rightArithShift';
@@ -33,30 +35,35 @@ var createRightArithShift = /* #__PURE__ */(0, _factory.factory)(name, dependenc
33
35
  equalScalar = _ref.equalScalar,
34
36
  zeros = _ref.zeros,
35
37
  DenseMatrix = _ref.DenseMatrix;
36
- var algorithm01 = (0, _algorithm5.createAlgorithm01)({
38
+ var matAlgo01xDSid = (0, _matAlgo01xDSid.createMatAlgo01xDSid)({
37
39
  typed: typed
38
40
  });
39
- var algorithm02 = (0, _algorithm.createAlgorithm02)({
41
+ var matAlgo02xDS0 = (0, _matAlgo02xDS.createMatAlgo02xDS0)({
40
42
  typed: typed,
41
43
  equalScalar: equalScalar
42
44
  });
43
- var algorithm08 = (0, _algorithm7.createAlgorithm08)({
45
+ var matAlgo08xS0Sid = (0, _matAlgo08xS0Sid.createMatAlgo08xS0Sid)({
44
46
  typed: typed,
45
47
  equalScalar: equalScalar
46
48
  });
47
- var algorithm10 = (0, _algorithm6.createAlgorithm10)({
49
+ var matAlgo10xSids = (0, _matAlgo10xSids.createMatAlgo10xSids)({
48
50
  typed: typed,
49
51
  DenseMatrix: DenseMatrix
50
52
  });
51
- var algorithm11 = (0, _algorithm2.createAlgorithm11)({
53
+ var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
52
54
  typed: typed,
53
55
  equalScalar: equalScalar
54
56
  });
55
- var algorithm13 = (0, _algorithm3.createAlgorithm13)({
57
+ var matAlgo14xDs = (0, _matAlgo14xDs.createMatAlgo14xDs)({
56
58
  typed: typed
57
59
  });
58
- var algorithm14 = (0, _algorithm4.createAlgorithm14)({
59
- typed: typed
60
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
61
+ typed: typed,
62
+ matrix: matrix
63
+ });
64
+ var useMatrixForArrayScalar = (0, _useMatrixForArrayScalar.createUseMatrixForArrayScalar)({
65
+ typed: typed,
66
+ matrix: matrix
60
67
  });
61
68
  /**
62
69
  * Bitwise right arithmetic shift of a value x by y number of bits, `x >> y`.
@@ -71,7 +78,7 @@ var createRightArithShift = /* #__PURE__ */(0, _factory.factory)(name, dependenc
71
78
  *
72
79
  * math.rightArithShift(4, 2) // returns number 1
73
80
  *
74
- * math.rightArithShift([16, -32, 64], 4) // returns Array [1, -2, 3]
81
+ * math.rightArithShift([16, -32, 64], 4) // returns Array [1, -2, 4]
75
82
  *
76
83
  * See also:
77
84
  *
@@ -85,70 +92,50 @@ var createRightArithShift = /* #__PURE__ */(0, _factory.factory)(name, dependenc
85
92
  return typed(name, {
86
93
  'number, number': _index.rightArithShiftNumber,
87
94
  'BigNumber, BigNumber': _bitwise.rightArithShiftBigNumber,
88
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
89
- return algorithm08(x, y, this, false);
90
- },
91
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
92
- return algorithm02(y, x, this, true);
93
- },
94
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
95
- return algorithm01(x, y, this, false);
96
- },
97
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
98
- return algorithm13(x, y, this);
99
- },
100
- 'Array, Array': function ArrayArray(x, y) {
101
- // use matrix implementation
102
- return this(matrix(x), matrix(y)).valueOf();
103
- },
104
- 'Array, Matrix': function ArrayMatrix(x, y) {
105
- // use matrix implementation
106
- return this(matrix(x), y);
107
- },
108
- 'Matrix, Array': function MatrixArray(x, y) {
109
- // use matrix implementation
110
- return this(x, matrix(y));
111
- },
112
- 'SparseMatrix, number | BigNumber': function SparseMatrixNumberBigNumber(x, y) {
113
- // check scalar
114
- if (equalScalar(y, 0)) {
115
- return x.clone();
116
- }
117
-
118
- return algorithm11(x, y, this, false);
119
- },
120
- 'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
121
- // check scalar
122
- if (equalScalar(y, 0)) {
123
- return x.clone();
124
- }
125
-
126
- return algorithm14(x, y, this, false);
127
- },
128
- 'number | BigNumber, SparseMatrix': function numberBigNumberSparseMatrix(x, y) {
129
- // check scalar
130
- if (equalScalar(x, 0)) {
131
- return zeros(y.size(), y.storage());
132
- }
133
-
134
- return algorithm10(y, x, this, true);
135
- },
136
- 'number | BigNumber, DenseMatrix': function numberBigNumberDenseMatrix(x, y) {
137
- // check scalar
138
- if (equalScalar(x, 0)) {
139
- return zeros(y.size(), y.storage());
140
- }
141
-
142
- return algorithm14(y, x, this, true);
143
- },
144
- 'Array, number | BigNumber': function ArrayNumberBigNumber(x, y) {
145
- // use matrix implementation
146
- return this(matrix(x), y).valueOf();
147
- },
148
- 'number | BigNumber, Array': function numberBigNumberArray(x, y) {
149
- // use matrix implementation
150
- return this(x, matrix(y)).valueOf();
151
- }
152
- });
95
+ 'SparseMatrix, number | BigNumber': typed.referToSelf(function (self) {
96
+ return function (x, y) {
97
+ // check scalar
98
+ if (equalScalar(y, 0)) {
99
+ return x.clone();
100
+ }
101
+
102
+ return matAlgo11xS0s(x, y, self, false);
103
+ };
104
+ }),
105
+ 'DenseMatrix, number | BigNumber': typed.referToSelf(function (self) {
106
+ return function (x, y) {
107
+ // check scalar
108
+ if (equalScalar(y, 0)) {
109
+ return x.clone();
110
+ }
111
+
112
+ return matAlgo14xDs(x, y, self, false);
113
+ };
114
+ }),
115
+ 'number | BigNumber, SparseMatrix': typed.referToSelf(function (self) {
116
+ return function (x, y) {
117
+ // check scalar
118
+ if (equalScalar(x, 0)) {
119
+ return zeros(y.size(), y.storage());
120
+ }
121
+
122
+ return matAlgo10xSids(y, x, self, true);
123
+ };
124
+ }),
125
+ 'number | BigNumber, DenseMatrix': typed.referToSelf(function (self) {
126
+ return function (x, y) {
127
+ // check scalar
128
+ if (equalScalar(x, 0)) {
129
+ return zeros(y.size(), y.storage());
130
+ }
131
+
132
+ return matAlgo14xDs(y, x, self, true);
133
+ };
134
+ })
135
+ }, useMatrixForArrayScalar, matrixAlgorithmSuite({
136
+ SS: matAlgo08xS0Sid,
137
+ DS: matAlgo01xDSid,
138
+ SD: matAlgo02xDS0
139
+ }));
153
140
  });
154
141
  exports.createRightArithShift = createRightArithShift;
@@ -5,24 +5,26 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createRightLogShift = void 0;
7
7
 
8
- var _algorithm = require("../../type/matrix/utils/algorithm02.js");
8
+ var _matAlgo02xDS = require("../../type/matrix/utils/matAlgo02xDS0.js");
9
9
 
10
- var _algorithm2 = require("../../type/matrix/utils/algorithm11.js");
10
+ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
11
11
 
12
- var _algorithm3 = require("../../type/matrix/utils/algorithm13.js");
12
+ var _matAlgo14xDs = require("../../type/matrix/utils/matAlgo14xDs.js");
13
13
 
14
- var _algorithm4 = require("../../type/matrix/utils/algorithm14.js");
14
+ var _matAlgo01xDSid = require("../../type/matrix/utils/matAlgo01xDSid.js");
15
15
 
16
- var _algorithm5 = require("../../type/matrix/utils/algorithm01.js");
16
+ var _matAlgo10xSids = require("../../type/matrix/utils/matAlgo10xSids.js");
17
17
 
18
- var _algorithm6 = require("../../type/matrix/utils/algorithm10.js");
19
-
20
- var _algorithm7 = require("../../type/matrix/utils/algorithm08.js");
18
+ var _matAlgo08xS0Sid = require("../../type/matrix/utils/matAlgo08xS0Sid.js");
21
19
 
22
20
  var _factory = require("../../utils/factory.js");
23
21
 
22
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
23
+
24
24
  var _index = require("../../plain/number/index.js");
25
25
 
26
+ var _useMatrixForArrayScalar = require("./useMatrixForArrayScalar.js");
27
+
26
28
  var name = 'rightLogShift';
27
29
  var dependencies = ['typed', 'matrix', 'equalScalar', 'zeros', 'DenseMatrix'];
28
30
  var createRightLogShift = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
@@ -31,30 +33,35 @@ var createRightLogShift = /* #__PURE__ */(0, _factory.factory)(name, dependencie
31
33
  equalScalar = _ref.equalScalar,
32
34
  zeros = _ref.zeros,
33
35
  DenseMatrix = _ref.DenseMatrix;
34
- var algorithm01 = (0, _algorithm5.createAlgorithm01)({
36
+ var matAlgo01xDSid = (0, _matAlgo01xDSid.createMatAlgo01xDSid)({
35
37
  typed: typed
36
38
  });
37
- var algorithm02 = (0, _algorithm.createAlgorithm02)({
39
+ var matAlgo02xDS0 = (0, _matAlgo02xDS.createMatAlgo02xDS0)({
38
40
  typed: typed,
39
41
  equalScalar: equalScalar
40
42
  });
41
- var algorithm08 = (0, _algorithm7.createAlgorithm08)({
43
+ var matAlgo08xS0Sid = (0, _matAlgo08xS0Sid.createMatAlgo08xS0Sid)({
42
44
  typed: typed,
43
45
  equalScalar: equalScalar
44
46
  });
45
- var algorithm10 = (0, _algorithm6.createAlgorithm10)({
47
+ var matAlgo10xSids = (0, _matAlgo10xSids.createMatAlgo10xSids)({
46
48
  typed: typed,
47
49
  DenseMatrix: DenseMatrix
48
50
  });
49
- var algorithm11 = (0, _algorithm2.createAlgorithm11)({
51
+ var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
50
52
  typed: typed,
51
53
  equalScalar: equalScalar
52
54
  });
53
- var algorithm13 = (0, _algorithm3.createAlgorithm13)({
55
+ var matAlgo14xDs = (0, _matAlgo14xDs.createMatAlgo14xDs)({
54
56
  typed: typed
55
57
  });
56
- var algorithm14 = (0, _algorithm4.createAlgorithm14)({
57
- typed: typed
58
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
59
+ typed: typed,
60
+ matrix: matrix
61
+ });
62
+ var useMatrixForArrayScalar = (0, _useMatrixForArrayScalar.createUseMatrixForArrayScalar)({
63
+ typed: typed,
64
+ matrix: matrix
58
65
  });
59
66
  /**
60
67
  * Bitwise right logical shift of value x by y number of bits, `x >>> y`.
@@ -69,7 +76,7 @@ var createRightLogShift = /* #__PURE__ */(0, _factory.factory)(name, dependencie
69
76
  *
70
77
  * math.rightLogShift(4, 2) // returns number 1
71
78
  *
72
- * math.rightLogShift([16, -32, 64], 4) // returns Array [1, 2, 3]
79
+ * math.rightLogShift([16, 32, 64], 4) // returns Array [1, 2, 4]
73
80
  *
74
81
  * See also:
75
82
  *
@@ -83,70 +90,50 @@ var createRightLogShift = /* #__PURE__ */(0, _factory.factory)(name, dependencie
83
90
  return typed(name, {
84
91
  'number, number': _index.rightLogShiftNumber,
85
92
  // 'BigNumber, BigNumber': ..., // TODO: implement BigNumber support for rightLogShift
86
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
87
- return algorithm08(x, y, this, false);
88
- },
89
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
90
- return algorithm02(y, x, this, true);
91
- },
92
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
93
- return algorithm01(x, y, this, false);
94
- },
95
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
96
- return algorithm13(x, y, this);
97
- },
98
- 'Array, Array': function ArrayArray(x, y) {
99
- // use matrix implementation
100
- return this(matrix(x), matrix(y)).valueOf();
101
- },
102
- 'Array, Matrix': function ArrayMatrix(x, y) {
103
- // use matrix implementation
104
- return this(matrix(x), y);
105
- },
106
- 'Matrix, Array': function MatrixArray(x, y) {
107
- // use matrix implementation
108
- return this(x, matrix(y));
109
- },
110
- 'SparseMatrix, number | BigNumber': function SparseMatrixNumberBigNumber(x, y) {
111
- // check scalar
112
- if (equalScalar(y, 0)) {
113
- return x.clone();
114
- }
115
-
116
- return algorithm11(x, y, this, false);
117
- },
118
- 'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
119
- // check scalar
120
- if (equalScalar(y, 0)) {
121
- return x.clone();
122
- }
123
-
124
- return algorithm14(x, y, this, false);
125
- },
126
- 'number | BigNumber, SparseMatrix': function numberBigNumberSparseMatrix(x, y) {
127
- // check scalar
128
- if (equalScalar(x, 0)) {
129
- return zeros(y.size(), y.storage());
130
- }
131
-
132
- return algorithm10(y, x, this, true);
133
- },
134
- 'number | BigNumber, DenseMatrix': function numberBigNumberDenseMatrix(x, y) {
135
- // check scalar
136
- if (equalScalar(x, 0)) {
137
- return zeros(y.size(), y.storage());
138
- }
139
-
140
- return algorithm14(y, x, this, true);
141
- },
142
- 'Array, number | BigNumber': function ArrayNumberBigNumber(x, y) {
143
- // use matrix implementation
144
- return this(matrix(x), y).valueOf();
145
- },
146
- 'number | BigNumber, Array': function numberBigNumberArray(x, y) {
147
- // use matrix implementation
148
- return this(x, matrix(y)).valueOf();
149
- }
150
- });
93
+ 'SparseMatrix, number | BigNumber': typed.referToSelf(function (self) {
94
+ return function (x, y) {
95
+ // check scalar
96
+ if (equalScalar(y, 0)) {
97
+ return x.clone();
98
+ }
99
+
100
+ return matAlgo11xS0s(x, y, self, false);
101
+ };
102
+ }),
103
+ 'DenseMatrix, number | BigNumber': typed.referToSelf(function (self) {
104
+ return function (x, y) {
105
+ // check scalar
106
+ if (equalScalar(y, 0)) {
107
+ return x.clone();
108
+ }
109
+
110
+ return matAlgo14xDs(x, y, self, false);
111
+ };
112
+ }),
113
+ 'number | BigNumber, SparseMatrix': typed.referToSelf(function (self) {
114
+ return function (x, y) {
115
+ // check scalar
116
+ if (equalScalar(x, 0)) {
117
+ return zeros(y.size(), y.storage());
118
+ }
119
+
120
+ return matAlgo10xSids(y, x, self, true);
121
+ };
122
+ }),
123
+ 'number | BigNumber, DenseMatrix': typed.referToSelf(function (self) {
124
+ return function (x, y) {
125
+ // check scalar
126
+ if (equalScalar(x, 0)) {
127
+ return zeros(y.size(), y.storage());
128
+ }
129
+
130
+ return matAlgo14xDs(y, x, self, true);
131
+ };
132
+ })
133
+ }, useMatrixForArrayScalar, matrixAlgorithmSuite({
134
+ SS: matAlgo08xS0Sid,
135
+ DS: matAlgo01xDSid,
136
+ SD: matAlgo02xDS0
137
+ }));
151
138
  });
152
139
  exports.createRightLogShift = createRightLogShift;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createUseMatrixForArrayScalar = void 0;
7
+
8
+ var _factory = require("../../utils/factory.js");
9
+
10
+ var createUseMatrixForArrayScalar = /* #__PURE__ */(0, _factory.factory)('useMatrixForArrayScalar', ['typed', 'matrix'], function (_ref) {
11
+ var typed = _ref.typed,
12
+ matrix = _ref.matrix;
13
+ return {
14
+ 'Array, number': typed.referTo('DenseMatrix, number', function (selfDn) {
15
+ return function (x, y) {
16
+ return selfDn(matrix(x), y).valueOf();
17
+ };
18
+ }),
19
+ 'Array, BigNumber': typed.referTo('DenseMatrix, BigNumber', function (selfDB) {
20
+ return function (x, y) {
21
+ return selfDB(matrix(x), y).valueOf();
22
+ };
23
+ }),
24
+ 'number, Array': typed.referTo('number, DenseMatrix', function (selfnD) {
25
+ return function (x, y) {
26
+ return selfnD(x, matrix(y)).valueOf();
27
+ };
28
+ }),
29
+ 'BigNumber, Array': typed.referTo('BigNumber, DenseMatrix', function (selfBD) {
30
+ return function (x, y) {
31
+ return selfBD(x, matrix(y)).valueOf();
32
+ };
33
+ })
34
+ };
35
+ });
36
+ exports.createUseMatrixForArrayScalar = createUseMatrixForArrayScalar;