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
@@ -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`.
@@ -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`.
@@ -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`.
@@ -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;
@@ -52,9 +52,11 @@ var createArg = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
52
52
  return x.arg();
53
53
  },
54
54
  // TODO: implement BigNumber support for function arg
55
- 'Array | Matrix': function ArrayMatrix(x) {
56
- return (0, _collection.deepMap)(x, this);
57
- }
55
+ 'Array | Matrix': typed.referToSelf(function (self) {
56
+ return function (x) {
57
+ return (0, _collection.deepMap)(x, self);
58
+ };
59
+ })
58
60
  });
59
61
  });
60
62
  exports.createArg = createArg;