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
@@ -1,11 +1,12 @@
1
- import { createAlgorithm02 } from '../../type/matrix/utils/algorithm02.js';
2
- import { createAlgorithm11 } from '../../type/matrix/utils/algorithm11.js';
3
- import { createAlgorithm13 } from '../../type/matrix/utils/algorithm13.js';
4
- import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
5
- import { createAlgorithm01 } from '../../type/matrix/utils/algorithm01.js';
6
- import { createAlgorithm10 } from '../../type/matrix/utils/algorithm10.js';
7
- import { createAlgorithm08 } from '../../type/matrix/utils/algorithm08.js';
1
+ import { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';
2
+ import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
3
+ import { createMatAlgo14xDs } from '../../type/matrix/utils/matAlgo14xDs.js';
4
+ import { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js';
5
+ import { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js';
6
+ import { createMatAlgo08xS0Sid } from '../../type/matrix/utils/matAlgo08xS0Sid.js';
8
7
  import { factory } from '../../utils/factory.js';
8
+ import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
9
+ import { createUseMatrixForArrayScalar } from './useMatrixForArrayScalar.js';
9
10
  import { leftShiftNumber } from '../../plain/number/index.js';
10
11
  import { leftShiftBigNumber } from '../../utils/bignumber/bitwise.js';
11
12
  var name = 'leftShift';
@@ -18,30 +19,35 @@ export var createLeftShift = /* #__PURE__ */factory(name, dependencies, _ref =>
18
19
  zeros,
19
20
  DenseMatrix
20
21
  } = _ref;
21
- var algorithm01 = createAlgorithm01({
22
+ var matAlgo01xDSid = createMatAlgo01xDSid({
22
23
  typed
23
24
  });
24
- var algorithm02 = createAlgorithm02({
25
+ var matAlgo02xDS0 = createMatAlgo02xDS0({
25
26
  typed,
26
27
  equalScalar
27
28
  });
28
- var algorithm08 = createAlgorithm08({
29
+ var matAlgo08xS0Sid = createMatAlgo08xS0Sid({
29
30
  typed,
30
31
  equalScalar
31
32
  });
32
- var algorithm10 = createAlgorithm10({
33
+ var matAlgo10xSids = createMatAlgo10xSids({
33
34
  typed,
34
35
  DenseMatrix
35
36
  });
36
- var algorithm11 = createAlgorithm11({
37
+ var matAlgo11xS0s = createMatAlgo11xS0s({
37
38
  typed,
38
39
  equalScalar
39
40
  });
40
- var algorithm13 = createAlgorithm13({
41
+ var matAlgo14xDs = createMatAlgo14xDs({
41
42
  typed
42
43
  });
43
- var algorithm14 = createAlgorithm14({
44
- typed
44
+ var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
45
+ typed,
46
+ matrix
47
+ });
48
+ var useMatrixForArrayScalar = createUseMatrixForArrayScalar({
49
+ typed,
50
+ matrix
45
51
  });
46
52
  /**
47
53
  * Bitwise left logical shift of a value x by y number of bits, `x << y`.
@@ -70,69 +76,41 @@ export var createLeftShift = /* #__PURE__ */factory(name, dependencies, _ref =>
70
76
  return typed(name, {
71
77
  'number, number': leftShiftNumber,
72
78
  'BigNumber, BigNumber': leftShiftBigNumber,
73
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
74
- return algorithm08(x, y, this, false);
75
- },
76
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
77
- return algorithm02(y, x, this, true);
78
- },
79
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
80
- return algorithm01(x, y, this, false);
81
- },
82
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
83
- return algorithm13(x, y, this);
84
- },
85
- 'Array, Array': function ArrayArray(x, y) {
86
- // use matrix implementation
87
- return this(matrix(x), matrix(y)).valueOf();
88
- },
89
- 'Array, Matrix': function ArrayMatrix(x, y) {
90
- // use matrix implementation
91
- return this(matrix(x), y);
92
- },
93
- 'Matrix, Array': function MatrixArray(x, y) {
94
- // use matrix implementation
95
- return this(x, matrix(y));
96
- },
97
- 'SparseMatrix, number | BigNumber': function SparseMatrixNumberBigNumber(x, y) {
79
+ 'SparseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {
98
80
  // check scalar
99
81
  if (equalScalar(y, 0)) {
100
82
  return x.clone();
101
83
  }
102
84
 
103
- return algorithm11(x, y, this, false);
104
- },
105
- 'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
85
+ return matAlgo11xS0s(x, y, self, false);
86
+ }),
87
+ 'DenseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {
106
88
  // check scalar
107
89
  if (equalScalar(y, 0)) {
108
90
  return x.clone();
109
91
  }
110
92
 
111
- return algorithm14(x, y, this, false);
112
- },
113
- 'number | BigNumber, SparseMatrix': function numberBigNumberSparseMatrix(x, y) {
93
+ return matAlgo14xDs(x, y, self, false);
94
+ }),
95
+ 'number | BigNumber, SparseMatrix': typed.referToSelf(self => (x, y) => {
114
96
  // check scalar
115
97
  if (equalScalar(x, 0)) {
116
98
  return zeros(y.size(), y.storage());
117
99
  }
118
100
 
119
- return algorithm10(y, x, this, true);
120
- },
121
- 'number | BigNumber, DenseMatrix': function numberBigNumberDenseMatrix(x, y) {
101
+ return matAlgo10xSids(y, x, self, true);
102
+ }),
103
+ 'number | BigNumber, DenseMatrix': typed.referToSelf(self => (x, y) => {
122
104
  // check scalar
123
105
  if (equalScalar(x, 0)) {
124
106
  return zeros(y.size(), y.storage());
125
107
  }
126
108
 
127
- return algorithm14(y, x, this, true);
128
- },
129
- 'Array, number | BigNumber': function ArrayNumberBigNumber(x, y) {
130
- // use matrix implementation
131
- return this(matrix(x), y).valueOf();
132
- },
133
- 'number | BigNumber, Array': function numberBigNumberArray(x, y) {
134
- // use matrix implementation
135
- return this(x, matrix(y)).valueOf();
136
- }
137
- });
109
+ return matAlgo14xDs(y, x, self, true);
110
+ })
111
+ }, useMatrixForArrayScalar, matrixAlgorithmSuite({
112
+ SS: matAlgo08xS0Sid,
113
+ DS: matAlgo01xDSid,
114
+ SD: matAlgo02xDS0
115
+ }));
138
116
  });
@@ -1,12 +1,13 @@
1
1
  import { rightArithShiftBigNumber } from '../../utils/bignumber/bitwise.js';
2
- import { createAlgorithm02 } from '../../type/matrix/utils/algorithm02.js';
3
- import { createAlgorithm11 } from '../../type/matrix/utils/algorithm11.js';
4
- import { createAlgorithm13 } from '../../type/matrix/utils/algorithm13.js';
5
- import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
6
- import { createAlgorithm01 } from '../../type/matrix/utils/algorithm01.js';
7
- import { createAlgorithm10 } from '../../type/matrix/utils/algorithm10.js';
8
- import { createAlgorithm08 } from '../../type/matrix/utils/algorithm08.js';
2
+ import { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';
3
+ import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
4
+ import { createMatAlgo14xDs } from '../../type/matrix/utils/matAlgo14xDs.js';
5
+ import { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js';
6
+ import { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js';
7
+ import { createMatAlgo08xS0Sid } from '../../type/matrix/utils/matAlgo08xS0Sid.js';
9
8
  import { factory } from '../../utils/factory.js';
9
+ import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
10
+ import { createUseMatrixForArrayScalar } from './useMatrixForArrayScalar.js';
10
11
  import { rightArithShiftNumber } from '../../plain/number/index.js';
11
12
  var name = 'rightArithShift';
12
13
  var dependencies = ['typed', 'matrix', 'equalScalar', 'zeros', 'DenseMatrix'];
@@ -18,30 +19,35 @@ export var createRightArithShift = /* #__PURE__ */factory(name, dependencies, _r
18
19
  zeros,
19
20
  DenseMatrix
20
21
  } = _ref;
21
- var algorithm01 = createAlgorithm01({
22
+ var matAlgo01xDSid = createMatAlgo01xDSid({
22
23
  typed
23
24
  });
24
- var algorithm02 = createAlgorithm02({
25
+ var matAlgo02xDS0 = createMatAlgo02xDS0({
25
26
  typed,
26
27
  equalScalar
27
28
  });
28
- var algorithm08 = createAlgorithm08({
29
+ var matAlgo08xS0Sid = createMatAlgo08xS0Sid({
29
30
  typed,
30
31
  equalScalar
31
32
  });
32
- var algorithm10 = createAlgorithm10({
33
+ var matAlgo10xSids = createMatAlgo10xSids({
33
34
  typed,
34
35
  DenseMatrix
35
36
  });
36
- var algorithm11 = createAlgorithm11({
37
+ var matAlgo11xS0s = createMatAlgo11xS0s({
37
38
  typed,
38
39
  equalScalar
39
40
  });
40
- var algorithm13 = createAlgorithm13({
41
+ var matAlgo14xDs = createMatAlgo14xDs({
41
42
  typed
42
43
  });
43
- var algorithm14 = createAlgorithm14({
44
- typed
44
+ var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
45
+ typed,
46
+ matrix
47
+ });
48
+ var useMatrixForArrayScalar = createUseMatrixForArrayScalar({
49
+ typed,
50
+ matrix
45
51
  });
46
52
  /**
47
53
  * Bitwise right arithmetic shift of a value x by y number of bits, `x >> y`.
@@ -70,69 +76,41 @@ export var createRightArithShift = /* #__PURE__ */factory(name, dependencies, _r
70
76
  return typed(name, {
71
77
  'number, number': rightArithShiftNumber,
72
78
  'BigNumber, BigNumber': rightArithShiftBigNumber,
73
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
74
- return algorithm08(x, y, this, false);
75
- },
76
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
77
- return algorithm02(y, x, this, true);
78
- },
79
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
80
- return algorithm01(x, y, this, false);
81
- },
82
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
83
- return algorithm13(x, y, this);
84
- },
85
- 'Array, Array': function ArrayArray(x, y) {
86
- // use matrix implementation
87
- return this(matrix(x), matrix(y)).valueOf();
88
- },
89
- 'Array, Matrix': function ArrayMatrix(x, y) {
90
- // use matrix implementation
91
- return this(matrix(x), y);
92
- },
93
- 'Matrix, Array': function MatrixArray(x, y) {
94
- // use matrix implementation
95
- return this(x, matrix(y));
96
- },
97
- 'SparseMatrix, number | BigNumber': function SparseMatrixNumberBigNumber(x, y) {
79
+ 'SparseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {
98
80
  // check scalar
99
81
  if (equalScalar(y, 0)) {
100
82
  return x.clone();
101
83
  }
102
84
 
103
- return algorithm11(x, y, this, false);
104
- },
105
- 'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
85
+ return matAlgo11xS0s(x, y, self, false);
86
+ }),
87
+ 'DenseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {
106
88
  // check scalar
107
89
  if (equalScalar(y, 0)) {
108
90
  return x.clone();
109
91
  }
110
92
 
111
- return algorithm14(x, y, this, false);
112
- },
113
- 'number | BigNumber, SparseMatrix': function numberBigNumberSparseMatrix(x, y) {
93
+ return matAlgo14xDs(x, y, self, false);
94
+ }),
95
+ 'number | BigNumber, SparseMatrix': typed.referToSelf(self => (x, y) => {
114
96
  // check scalar
115
97
  if (equalScalar(x, 0)) {
116
98
  return zeros(y.size(), y.storage());
117
99
  }
118
100
 
119
- return algorithm10(y, x, this, true);
120
- },
121
- 'number | BigNumber, DenseMatrix': function numberBigNumberDenseMatrix(x, y) {
101
+ return matAlgo10xSids(y, x, self, true);
102
+ }),
103
+ 'number | BigNumber, DenseMatrix': typed.referToSelf(self => (x, y) => {
122
104
  // check scalar
123
105
  if (equalScalar(x, 0)) {
124
106
  return zeros(y.size(), y.storage());
125
107
  }
126
108
 
127
- return algorithm14(y, x, this, true);
128
- },
129
- 'Array, number | BigNumber': function ArrayNumberBigNumber(x, y) {
130
- // use matrix implementation
131
- return this(matrix(x), y).valueOf();
132
- },
133
- 'number | BigNumber, Array': function numberBigNumberArray(x, y) {
134
- // use matrix implementation
135
- return this(x, matrix(y)).valueOf();
136
- }
137
- });
109
+ return matAlgo14xDs(y, x, self, true);
110
+ })
111
+ }, useMatrixForArrayScalar, matrixAlgorithmSuite({
112
+ SS: matAlgo08xS0Sid,
113
+ DS: matAlgo01xDSid,
114
+ SD: matAlgo02xDS0
115
+ }));
138
116
  });
@@ -1,12 +1,13 @@
1
- import { createAlgorithm02 } from '../../type/matrix/utils/algorithm02.js';
2
- import { createAlgorithm11 } from '../../type/matrix/utils/algorithm11.js';
3
- import { createAlgorithm13 } from '../../type/matrix/utils/algorithm13.js';
4
- import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
5
- import { createAlgorithm01 } from '../../type/matrix/utils/algorithm01.js';
6
- import { createAlgorithm10 } from '../../type/matrix/utils/algorithm10.js';
7
- import { createAlgorithm08 } from '../../type/matrix/utils/algorithm08.js';
1
+ import { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';
2
+ import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
3
+ import { createMatAlgo14xDs } from '../../type/matrix/utils/matAlgo14xDs.js';
4
+ import { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js';
5
+ import { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js';
6
+ import { createMatAlgo08xS0Sid } from '../../type/matrix/utils/matAlgo08xS0Sid.js';
8
7
  import { factory } from '../../utils/factory.js';
8
+ import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
9
9
  import { rightLogShiftNumber } from '../../plain/number/index.js';
10
+ import { createUseMatrixForArrayScalar } from './useMatrixForArrayScalar.js';
10
11
  var name = 'rightLogShift';
11
12
  var dependencies = ['typed', 'matrix', 'equalScalar', 'zeros', 'DenseMatrix'];
12
13
  export var createRightLogShift = /* #__PURE__ */factory(name, dependencies, _ref => {
@@ -17,30 +18,35 @@ export var createRightLogShift = /* #__PURE__ */factory(name, dependencies, _ref
17
18
  zeros,
18
19
  DenseMatrix
19
20
  } = _ref;
20
- var algorithm01 = createAlgorithm01({
21
+ var matAlgo01xDSid = createMatAlgo01xDSid({
21
22
  typed
22
23
  });
23
- var algorithm02 = createAlgorithm02({
24
+ var matAlgo02xDS0 = createMatAlgo02xDS0({
24
25
  typed,
25
26
  equalScalar
26
27
  });
27
- var algorithm08 = createAlgorithm08({
28
+ var matAlgo08xS0Sid = createMatAlgo08xS0Sid({
28
29
  typed,
29
30
  equalScalar
30
31
  });
31
- var algorithm10 = createAlgorithm10({
32
+ var matAlgo10xSids = createMatAlgo10xSids({
32
33
  typed,
33
34
  DenseMatrix
34
35
  });
35
- var algorithm11 = createAlgorithm11({
36
+ var matAlgo11xS0s = createMatAlgo11xS0s({
36
37
  typed,
37
38
  equalScalar
38
39
  });
39
- var algorithm13 = createAlgorithm13({
40
+ var matAlgo14xDs = createMatAlgo14xDs({
40
41
  typed
41
42
  });
42
- var algorithm14 = createAlgorithm14({
43
- typed
43
+ var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
44
+ typed,
45
+ matrix
46
+ });
47
+ var useMatrixForArrayScalar = createUseMatrixForArrayScalar({
48
+ typed,
49
+ matrix
44
50
  });
45
51
  /**
46
52
  * Bitwise right logical shift of value x by y number of bits, `x >>> y`.
@@ -69,69 +75,41 @@ export var createRightLogShift = /* #__PURE__ */factory(name, dependencies, _ref
69
75
  return typed(name, {
70
76
  'number, number': rightLogShiftNumber,
71
77
  // 'BigNumber, BigNumber': ..., // TODO: implement BigNumber support for rightLogShift
72
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
73
- return algorithm08(x, y, this, false);
74
- },
75
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
76
- return algorithm02(y, x, this, true);
77
- },
78
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
79
- return algorithm01(x, y, this, false);
80
- },
81
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
82
- return algorithm13(x, y, this);
83
- },
84
- 'Array, Array': function ArrayArray(x, y) {
85
- // use matrix implementation
86
- return this(matrix(x), matrix(y)).valueOf();
87
- },
88
- 'Array, Matrix': function ArrayMatrix(x, y) {
89
- // use matrix implementation
90
- return this(matrix(x), y);
91
- },
92
- 'Matrix, Array': function MatrixArray(x, y) {
93
- // use matrix implementation
94
- return this(x, matrix(y));
95
- },
96
- 'SparseMatrix, number | BigNumber': function SparseMatrixNumberBigNumber(x, y) {
78
+ 'SparseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {
97
79
  // check scalar
98
80
  if (equalScalar(y, 0)) {
99
81
  return x.clone();
100
82
  }
101
83
 
102
- return algorithm11(x, y, this, false);
103
- },
104
- 'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
84
+ return matAlgo11xS0s(x, y, self, false);
85
+ }),
86
+ 'DenseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {
105
87
  // check scalar
106
88
  if (equalScalar(y, 0)) {
107
89
  return x.clone();
108
90
  }
109
91
 
110
- return algorithm14(x, y, this, false);
111
- },
112
- 'number | BigNumber, SparseMatrix': function numberBigNumberSparseMatrix(x, y) {
92
+ return matAlgo14xDs(x, y, self, false);
93
+ }),
94
+ 'number | BigNumber, SparseMatrix': typed.referToSelf(self => (x, y) => {
113
95
  // check scalar
114
96
  if (equalScalar(x, 0)) {
115
97
  return zeros(y.size(), y.storage());
116
98
  }
117
99
 
118
- return algorithm10(y, x, this, true);
119
- },
120
- 'number | BigNumber, DenseMatrix': function numberBigNumberDenseMatrix(x, y) {
100
+ return matAlgo10xSids(y, x, self, true);
101
+ }),
102
+ 'number | BigNumber, DenseMatrix': typed.referToSelf(self => (x, y) => {
121
103
  // check scalar
122
104
  if (equalScalar(x, 0)) {
123
105
  return zeros(y.size(), y.storage());
124
106
  }
125
107
 
126
- return algorithm14(y, x, this, true);
127
- },
128
- 'Array, number | BigNumber': function ArrayNumberBigNumber(x, y) {
129
- // use matrix implementation
130
- return this(matrix(x), y).valueOf();
131
- },
132
- 'number | BigNumber, Array': function numberBigNumberArray(x, y) {
133
- // use matrix implementation
134
- return this(x, matrix(y)).valueOf();
135
- }
136
- });
108
+ return matAlgo14xDs(y, x, self, true);
109
+ })
110
+ }, useMatrixForArrayScalar, matrixAlgorithmSuite({
111
+ SS: matAlgo08xS0Sid,
112
+ DS: matAlgo01xDSid,
113
+ SD: matAlgo02xDS0
114
+ }));
137
115
  });
@@ -0,0 +1,13 @@
1
+ import { factory } from '../../utils/factory.js';
2
+ export var createUseMatrixForArrayScalar = /* #__PURE__ */factory('useMatrixForArrayScalar', ['typed', 'matrix'], _ref => {
3
+ var {
4
+ typed,
5
+ matrix
6
+ } = _ref;
7
+ return {
8
+ 'Array, number': typed.referTo('DenseMatrix, number', selfDn => (x, y) => selfDn(matrix(x), y).valueOf()),
9
+ 'Array, BigNumber': typed.referTo('DenseMatrix, BigNumber', selfDB => (x, y) => selfDB(matrix(x), y).valueOf()),
10
+ 'number, Array': typed.referTo('number, DenseMatrix', selfnD => (x, y) => selfnD(x, matrix(y)).valueOf()),
11
+ 'BigNumber, Array': typed.referTo('BigNumber, DenseMatrix', selfBD => (x, y) => selfBD(x, matrix(y)).valueOf())
12
+ };
13
+ });
@@ -45,8 +45,6 @@ export var createArg = /* #__PURE__ */factory(name, dependencies, _ref => {
45
45
  return x.arg();
46
46
  },
47
47
  // TODO: implement BigNumber support for function arg
48
- 'Array | Matrix': function ArrayMatrix(x) {
49
- return deepMap(x, this);
50
- }
48
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
51
49
  });
52
50
  });
@@ -33,17 +33,8 @@ export var createConj = /* #__PURE__ */factory(name, dependencies, _ref => {
33
33
  * The complex conjugate of x
34
34
  */
35
35
  return typed(name, {
36
- number: function number(x) {
37
- return x;
38
- },
39
- BigNumber: function BigNumber(x) {
40
- return x;
41
- },
42
- Complex: function Complex(x) {
43
- return x.conjugate();
44
- },
45
- 'Array | Matrix': function ArrayMatrix(x) {
46
- return deepMap(x, this);
47
- }
36
+ 'number | BigNumber | Fraction': x => x,
37
+ Complex: x => x.conjugate(),
38
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
48
39
  });
49
40
  });
@@ -35,20 +35,9 @@ export var createIm = /* #__PURE__ */factory(name, dependencies, _ref => {
35
35
  * @return {number | BigNumber | Array | Matrix} The imaginary part of x
36
36
  */
37
37
  return typed(name, {
38
- number: function number(x) {
39
- return 0;
40
- },
41
- BigNumber: function BigNumber(x) {
42
- return x.mul(0);
43
- },
44
- Fraction: function Fraction(x) {
45
- return x.mul(0);
46
- },
47
- Complex: function Complex(x) {
48
- return x.im;
49
- },
50
- 'Array | Matrix': function ArrayMatrix(x) {
51
- return deepMap(x, this);
52
- }
38
+ number: () => 0,
39
+ 'BigNumber | Fraction': x => x.mul(0),
40
+ Complex: x => x.im,
41
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
53
42
  });
54
43
  });
@@ -35,20 +35,8 @@ export var createRe = /* #__PURE__ */factory(name, dependencies, _ref => {
35
35
  * @return {number | BigNumber | Array | Matrix} The real part of x
36
36
  */
37
37
  return typed(name, {
38
- number: function number(x) {
39
- return x;
40
- },
41
- BigNumber: function BigNumber(x) {
42
- return x;
43
- },
44
- Fraction: function Fraction(x) {
45
- return x;
46
- },
47
- Complex: function Complex(x) {
48
- return x.re;
49
- },
50
- 'Array | Matrix': function ArrayMatrix(x) {
51
- return deepMap(x, this);
52
- }
38
+ 'number | BigNumber | Fraction': x => x,
39
+ Complex: x => x.re,
40
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
53
41
  });
54
42
  });