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,10 @@
1
1
  import { factory } from '../../utils/factory.js';
2
- import { DimensionError } from '../../error/DimensionError.js';
3
- import { createAlgorithm01 } from '../../type/matrix/utils/algorithm01.js';
4
- import { createAlgorithm03 } from '../../type/matrix/utils/algorithm03.js';
5
- import { createAlgorithm05 } from '../../type/matrix/utils/algorithm05.js';
6
- import { createAlgorithm10 } from '../../type/matrix/utils/algorithm10.js';
7
- import { createAlgorithm13 } from '../../type/matrix/utils/algorithm13.js';
8
- import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
2
+ import { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js';
3
+ import { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';
4
+ import { createMatAlgo05xSfSf } from '../../type/matrix/utils/matAlgo05xSfSf.js';
5
+ import { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js';
6
+ import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
7
+ import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
9
8
  var name = 'subtract';
10
9
  var dependencies = ['typed', 'matrix', 'equalScalar', 'addScalar', 'unaryMinus', 'DenseMatrix'];
11
10
  export var createSubtract = /* #__PURE__ */factory(name, dependencies, _ref => {
@@ -18,25 +17,27 @@ export var createSubtract = /* #__PURE__ */factory(name, dependencies, _ref => {
18
17
  DenseMatrix
19
18
  } = _ref;
20
19
  // TODO: split function subtract in two: subtract and subtractScalar
21
- var algorithm01 = createAlgorithm01({
20
+ var matAlgo01xDSid = createMatAlgo01xDSid({
22
21
  typed
23
22
  });
24
- var algorithm03 = createAlgorithm03({
23
+ var matAlgo03xDSf = createMatAlgo03xDSf({
25
24
  typed
26
25
  });
27
- var algorithm05 = createAlgorithm05({
26
+ var matAlgo05xSfSf = createMatAlgo05xSfSf({
28
27
  typed,
29
28
  equalScalar
30
29
  });
31
- var algorithm10 = createAlgorithm10({
30
+ var matAlgo10xSids = createMatAlgo10xSids({
32
31
  typed,
33
32
  DenseMatrix
34
33
  });
35
- var algorithm13 = createAlgorithm13({
36
- typed
34
+ var matAlgo12xSfs = createMatAlgo12xSfs({
35
+ typed,
36
+ DenseMatrix
37
37
  });
38
- var algorithm14 = createAlgorithm14({
39
- typed
38
+ var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
39
+ typed,
40
+ matrix
40
41
  });
41
42
  /**
42
43
  * Subtract two values, `x - y`.
@@ -73,19 +74,11 @@ export var createSubtract = /* #__PURE__ */factory(name, dependencies, _ref => {
73
74
  */
74
75
 
75
76
  return typed(name, {
76
- 'number, number': function numberNumber(x, y) {
77
- return x - y;
78
- },
79
- 'Complex, Complex': function ComplexComplex(x, y) {
80
- return x.sub(y);
81
- },
82
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
83
- return x.minus(y);
84
- },
85
- 'Fraction, Fraction': function FractionFraction(x, y) {
86
- return x.sub(y);
87
- },
88
- 'Unit, Unit': function UnitUnit(x, y) {
77
+ 'number, number': (x, y) => x - y,
78
+ 'Complex, Complex': (x, y) => x.sub(y),
79
+ 'BigNumber, BigNumber': (x, y) => x.minus(y),
80
+ 'Fraction, Fraction': (x, y) => x.sub(y),
81
+ 'Unit, Unit': typed.referToSelf(self => (x, y) => {
89
82
  if (x.value === null) {
90
83
  throw new Error('Parameter x contains a unit with undefined value');
91
84
  }
@@ -99,72 +92,15 @@ export var createSubtract = /* #__PURE__ */factory(name, dependencies, _ref => {
99
92
  }
100
93
 
101
94
  var res = x.clone();
102
- res.value = this(res.value, y.value);
95
+ res.value = typed.find(self, [res.valueType(), y.valueType()])(res.value, y.value);
103
96
  res.fixPrefix = false;
104
97
  return res;
105
- },
106
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
107
- checkEqualDimensions(x, y);
108
- return algorithm05(x, y, this);
109
- },
110
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
111
- checkEqualDimensions(x, y);
112
- return algorithm03(y, x, this, true);
113
- },
114
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
115
- checkEqualDimensions(x, y);
116
- return algorithm01(x, y, this, false);
117
- },
118
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
119
- checkEqualDimensions(x, y);
120
- return algorithm13(x, y, this);
121
- },
122
- 'Array, Array': function ArrayArray(x, y) {
123
- // use matrix implementation
124
- return this(matrix(x), matrix(y)).valueOf();
125
- },
126
- 'Array, Matrix': function ArrayMatrix(x, y) {
127
- // use matrix implementation
128
- return this(matrix(x), y);
129
- },
130
- 'Matrix, Array': function MatrixArray(x, y) {
131
- // use matrix implementation
132
- return this(x, matrix(y));
133
- },
134
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
135
- return algorithm10(x, unaryMinus(y), addScalar);
136
- },
137
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
138
- return algorithm14(x, y, this);
139
- },
140
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
141
- return algorithm10(y, x, this, true);
142
- },
143
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
144
- return algorithm14(y, x, this, true);
145
- },
146
- 'Array, any': function ArrayAny(x, y) {
147
- // use matrix implementation
148
- return algorithm14(matrix(x), y, this, false).valueOf();
149
- },
150
- 'any, Array': function anyArray(x, y) {
151
- // use matrix implementation
152
- return algorithm14(matrix(y), x, this, true).valueOf();
153
- }
154
- });
155
- });
156
- /**
157
- * Check whether matrix x and y have the same number of dimensions.
158
- * Throws a DimensionError when dimensions are not equal
159
- * @param {Matrix} x
160
- * @param {Matrix} y
161
- */
162
-
163
- function checkEqualDimensions(x, y) {
164
- var xsize = x.size();
165
- var ysize = y.size();
166
-
167
- if (xsize.length !== ysize.length) {
168
- throw new DimensionError(xsize.length, ysize.length);
169
- }
170
- }
98
+ })
99
+ }, matrixAlgorithmSuite({
100
+ SS: matAlgo05xSfSf,
101
+ DS: matAlgo01xDSid,
102
+ SD: matAlgo03xDSf,
103
+ Ss: matAlgo12xSfs,
104
+ sS: matAlgo10xSids
105
+ }));
106
+ });
@@ -33,24 +33,14 @@ export var createUnaryMinus = /* #__PURE__ */factory(name, dependencies, _ref =>
33
33
  */
34
34
  return typed(name, {
35
35
  number: unaryMinusNumber,
36
- Complex: function Complex(x) {
37
- return x.neg();
38
- },
39
- BigNumber: function BigNumber(x) {
40
- return x.neg();
41
- },
42
- Fraction: function Fraction(x) {
43
- return x.neg();
44
- },
45
- Unit: function Unit(x) {
36
+ 'Complex | BigNumber | Fraction': x => x.neg(),
37
+ Unit: typed.referToSelf(self => x => {
46
38
  var res = x.clone();
47
- res.value = this(x.value);
39
+ res.value = typed.find(self, res.valueType())(x.value);
48
40
  return res;
49
- },
50
- 'Array | Matrix': function ArrayMatrix(x) {
51
- // deep map collection, skip zeros since unaryMinus(0) = 0
52
- return deepMap(x, this, true);
53
- } // TODO: add support for string
41
+ }),
42
+ // deep map collection, skip zeros since unaryMinus(0) = 0
43
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self, true)) // TODO: add support for string
54
44
 
55
45
  });
56
46
  });
@@ -48,10 +48,8 @@ export var createUnaryPlus = /* #__PURE__ */factory(name, dependencies, _ref =>
48
48
  Unit: function Unit(x) {
49
49
  return x.clone();
50
50
  },
51
- 'Array | Matrix': function ArrayMatrix(x) {
52
- // deep map collection, skip zeros since unaryPlus(0) = 0
53
- return deepMap(x, this, true);
54
- },
51
+ // deep map collection, skip zeros since unaryPlus(0) = 0
52
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self, true)),
55
53
  'boolean | string': function booleanString(x) {
56
54
  // convert to a number or bignumber
57
55
  return config.number === 'BigNumber' ? new BigNumber(+x) : +x;
@@ -1,10 +1,9 @@
1
1
  import { bitAndBigNumber } 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 { createAlgorithm06 } from '../../type/matrix/utils/algorithm06.js';
2
+ import { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';
3
+ import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
4
+ import { createMatAlgo06xS0S0 } from '../../type/matrix/utils/matAlgo06xS0S0.js';
7
5
  import { factory } from '../../utils/factory.js';
6
+ import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
8
7
  import { bitAndNumber } from '../../plain/number/index.js';
9
8
  var name = 'bitAnd';
10
9
  var dependencies = ['typed', 'matrix', 'equalScalar'];
@@ -14,23 +13,21 @@ export var createBitAnd = /* #__PURE__ */factory(name, dependencies, _ref => {
14
13
  matrix,
15
14
  equalScalar
16
15
  } = _ref;
17
- var algorithm02 = createAlgorithm02({
16
+ var matAlgo02xDS0 = createMatAlgo02xDS0({
18
17
  typed,
19
18
  equalScalar
20
19
  });
21
- var algorithm06 = createAlgorithm06({
20
+ var matAlgo06xS0S0 = createMatAlgo06xS0S0({
22
21
  typed,
23
22
  equalScalar
24
23
  });
25
- var algorithm11 = createAlgorithm11({
24
+ var matAlgo11xS0s = createMatAlgo11xS0s({
26
25
  typed,
27
26
  equalScalar
28
27
  });
29
- var algorithm13 = createAlgorithm13({
30
- typed
31
- });
32
- var algorithm14 = createAlgorithm14({
33
- typed
28
+ var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
29
+ typed,
30
+ matrix
34
31
  });
35
32
  /**
36
33
  * Bitwise AND two values, `x & y`.
@@ -57,50 +54,10 @@ export var createBitAnd = /* #__PURE__ */factory(name, dependencies, _ref => {
57
54
 
58
55
  return typed(name, {
59
56
  'number, number': bitAndNumber,
60
- 'BigNumber, BigNumber': bitAndBigNumber,
61
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
62
- return algorithm06(x, y, this, false);
63
- },
64
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
65
- return algorithm02(y, x, this, true);
66
- },
67
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
68
- return algorithm02(x, y, this, false);
69
- },
70
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
71
- return algorithm13(x, y, this);
72
- },
73
- 'Array, Array': function ArrayArray(x, y) {
74
- // use matrix implementation
75
- return this(matrix(x), matrix(y)).valueOf();
76
- },
77
- 'Array, Matrix': function ArrayMatrix(x, y) {
78
- // use matrix implementation
79
- return this(matrix(x), y);
80
- },
81
- 'Matrix, Array': function MatrixArray(x, y) {
82
- // use matrix implementation
83
- return this(x, matrix(y));
84
- },
85
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
86
- return algorithm11(x, y, this, false);
87
- },
88
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
89
- return algorithm14(x, y, this, false);
90
- },
91
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
92
- return algorithm11(y, x, this, true);
93
- },
94
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
95
- return algorithm14(y, x, this, true);
96
- },
97
- 'Array, any': function ArrayAny(x, y) {
98
- // use matrix implementation
99
- return algorithm14(matrix(x), y, this, false).valueOf();
100
- },
101
- 'any, Array': function anyArray(x, y) {
102
- // use matrix implementation
103
- return algorithm14(matrix(y), x, this, true).valueOf();
104
- }
105
- });
57
+ 'BigNumber, BigNumber': bitAndBigNumber
58
+ }, matrixAlgorithmSuite({
59
+ SS: matAlgo06xS0S0,
60
+ DS: matAlgo02xDS0,
61
+ Ss: matAlgo11xS0s
62
+ }));
106
63
  });
@@ -34,8 +34,6 @@ export var createBitNot = /* #__PURE__ */factory(name, dependencies, _ref => {
34
34
  return typed(name, {
35
35
  number: bitNotNumber,
36
36
  BigNumber: bitNotBigNumber,
37
- 'Array | Matrix': function ArrayMatrix(x) {
38
- return deepMap(x, this);
39
- }
37
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
40
38
  });
41
39
  });
@@ -1,10 +1,9 @@
1
1
  import { bitOrBigNumber } from '../../utils/bignumber/bitwise.js';
2
2
  import { factory } from '../../utils/factory.js';
3
- import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
4
- import { createAlgorithm13 } from '../../type/matrix/utils/algorithm13.js';
5
- import { createAlgorithm10 } from '../../type/matrix/utils/algorithm10.js';
6
- import { createAlgorithm04 } from '../../type/matrix/utils/algorithm04.js';
7
- import { createAlgorithm01 } from '../../type/matrix/utils/algorithm01.js';
3
+ import { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js';
4
+ import { createMatAlgo04xSidSid } from '../../type/matrix/utils/matAlgo04xSidSid.js';
5
+ import { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js';
6
+ import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
8
7
  import { bitOrNumber } from '../../plain/number/index.js';
9
8
  var name = 'bitOr';
10
9
  var dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix'];
@@ -15,22 +14,20 @@ export var createBitOr = /* #__PURE__ */factory(name, dependencies, _ref => {
15
14
  equalScalar,
16
15
  DenseMatrix
17
16
  } = _ref;
18
- var algorithm01 = createAlgorithm01({
17
+ var matAlgo01xDSid = createMatAlgo01xDSid({
19
18
  typed
20
19
  });
21
- var algorithm04 = createAlgorithm04({
20
+ var matAlgo04xSidSid = createMatAlgo04xSidSid({
22
21
  typed,
23
22
  equalScalar
24
23
  });
25
- var algorithm10 = createAlgorithm10({
24
+ var matAlgo10xSids = createMatAlgo10xSids({
26
25
  typed,
27
26
  DenseMatrix
28
27
  });
29
- var algorithm13 = createAlgorithm13({
30
- typed
31
- });
32
- var algorithm14 = createAlgorithm14({
33
- typed
28
+ var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
29
+ typed,
30
+ matrix
34
31
  });
35
32
  /**
36
33
  * Bitwise OR two values, `x | y`.
@@ -58,50 +55,10 @@ export var createBitOr = /* #__PURE__ */factory(name, dependencies, _ref => {
58
55
 
59
56
  return typed(name, {
60
57
  'number, number': bitOrNumber,
61
- 'BigNumber, BigNumber': bitOrBigNumber,
62
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
63
- return algorithm04(x, y, this);
64
- },
65
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
66
- return algorithm01(y, x, this, true);
67
- },
68
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
69
- return algorithm01(x, y, this, false);
70
- },
71
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
72
- return algorithm13(x, y, this);
73
- },
74
- 'Array, Array': function ArrayArray(x, y) {
75
- // use matrix implementation
76
- return this(matrix(x), matrix(y)).valueOf();
77
- },
78
- 'Array, Matrix': function ArrayMatrix(x, y) {
79
- // use matrix implementation
80
- return this(matrix(x), y);
81
- },
82
- 'Matrix, Array': function MatrixArray(x, y) {
83
- // use matrix implementation
84
- return this(x, matrix(y));
85
- },
86
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
87
- return algorithm10(x, y, this, false);
88
- },
89
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
90
- return algorithm14(x, y, this, false);
91
- },
92
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
93
- return algorithm10(y, x, this, true);
94
- },
95
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
96
- return algorithm14(y, x, this, true);
97
- },
98
- 'Array, any': function ArrayAny(x, y) {
99
- // use matrix implementation
100
- return algorithm14(matrix(x), y, this, false).valueOf();
101
- },
102
- 'any, Array': function anyArray(x, y) {
103
- // use matrix implementation
104
- return algorithm14(matrix(y), x, this, true).valueOf();
105
- }
106
- });
58
+ 'BigNumber, BigNumber': bitOrBigNumber
59
+ }, matrixAlgorithmSuite({
60
+ SS: matAlgo04xSidSid,
61
+ DS: matAlgo01xDSid,
62
+ Ss: matAlgo10xSids
63
+ }));
107
64
  });
@@ -1,10 +1,9 @@
1
1
  import { bitXor as bigBitXor } from '../../utils/bignumber/bitwise.js';
2
- import { createAlgorithm03 } from '../../type/matrix/utils/algorithm03.js';
3
- import { createAlgorithm07 } from '../../type/matrix/utils/algorithm07.js';
4
- import { createAlgorithm12 } from '../../type/matrix/utils/algorithm12.js';
5
- import { createAlgorithm13 } from '../../type/matrix/utils/algorithm13.js';
6
- import { createAlgorithm14 } from '../../type/matrix/utils/algorithm14.js';
2
+ import { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';
3
+ import { createMatAlgo07xSSf } from '../../type/matrix/utils/matAlgo07xSSf.js';
4
+ import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
7
5
  import { factory } from '../../utils/factory.js';
6
+ import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
8
7
  import { bitXorNumber } from '../../plain/number/index.js';
9
8
  var name = 'bitXor';
10
9
  var dependencies = ['typed', 'matrix', 'DenseMatrix'];
@@ -14,22 +13,20 @@ export var createBitXor = /* #__PURE__ */factory(name, dependencies, _ref => {
14
13
  matrix,
15
14
  DenseMatrix
16
15
  } = _ref;
17
- var algorithm03 = createAlgorithm03({
16
+ var matAlgo03xDSf = createMatAlgo03xDSf({
18
17
  typed
19
18
  });
20
- var algorithm07 = createAlgorithm07({
19
+ var matAlgo07xSSf = createMatAlgo07xSSf({
21
20
  typed,
22
21
  DenseMatrix
23
22
  });
24
- var algorithm12 = createAlgorithm12({
23
+ var matAlgo12xSfs = createMatAlgo12xSfs({
25
24
  typed,
26
25
  DenseMatrix
27
26
  });
28
- var algorithm13 = createAlgorithm13({
29
- typed
30
- });
31
- var algorithm14 = createAlgorithm14({
32
- typed
27
+ var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
28
+ typed,
29
+ matrix
33
30
  });
34
31
  /**
35
32
  * Bitwise XOR two values, `x ^ y`.
@@ -56,50 +53,10 @@ export var createBitXor = /* #__PURE__ */factory(name, dependencies, _ref => {
56
53
 
57
54
  return typed(name, {
58
55
  'number, number': bitXorNumber,
59
- 'BigNumber, BigNumber': bigBitXor,
60
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
61
- return algorithm07(x, y, this);
62
- },
63
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
64
- return algorithm03(y, x, this, true);
65
- },
66
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
67
- return algorithm03(x, y, this, false);
68
- },
69
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
70
- return algorithm13(x, y, this);
71
- },
72
- 'Array, Array': function ArrayArray(x, y) {
73
- // use matrix implementation
74
- return this(matrix(x), matrix(y)).valueOf();
75
- },
76
- 'Array, Matrix': function ArrayMatrix(x, y) {
77
- // use matrix implementation
78
- return this(matrix(x), y);
79
- },
80
- 'Matrix, Array': function MatrixArray(x, y) {
81
- // use matrix implementation
82
- return this(x, matrix(y));
83
- },
84
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
85
- return algorithm12(x, y, this, false);
86
- },
87
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
88
- return algorithm14(x, y, this, false);
89
- },
90
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
91
- return algorithm12(y, x, this, true);
92
- },
93
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
94
- return algorithm14(y, x, this, true);
95
- },
96
- 'Array, any': function ArrayAny(x, y) {
97
- // use matrix implementation
98
- return algorithm14(matrix(x), y, this, false).valueOf();
99
- },
100
- 'any, Array': function anyArray(x, y) {
101
- // use matrix implementation
102
- return algorithm14(matrix(y), x, this, true).valueOf();
103
- }
104
- });
56
+ 'BigNumber, BigNumber': bigBitXor
57
+ }, matrixAlgorithmSuite({
58
+ SS: matAlgo07xSSf,
59
+ DS: matAlgo03xDSf,
60
+ Ss: matAlgo12xSfs
61
+ }));
105
62
  });