mathjs 10.6.2 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/HISTORY.md +74 -1
  2. package/README.md +1 -1
  3. package/lib/browser/math.js +2 -41
  4. package/lib/browser/math.js.LICENSE.txt +43 -0
  5. package/lib/browser/math.js.map +1 -1
  6. package/lib/cjs/core/create.js +6 -5
  7. package/lib/cjs/core/function/import.js +4 -14
  8. package/lib/cjs/core/function/typed.js +54 -12
  9. package/lib/cjs/defaultInstance.js +3 -3
  10. package/lib/cjs/entry/allFactoriesAny.js +1 -1
  11. package/lib/cjs/entry/allFactoriesNumber.js +1 -1
  12. package/lib/cjs/entry/configReadonly.js +1 -1
  13. package/lib/cjs/entry/dependenciesAny/dependenciesChainClass.generated.js +3 -0
  14. package/lib/cjs/entry/dependenciesAny/dependenciesKldivergence.generated.js +3 -0
  15. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +3 -0
  16. package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +3 -0
  17. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +3 -0
  18. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +56 -0
  19. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +6 -0
  20. package/lib/cjs/entry/dependenciesAny/dependenciesSqrtm.generated.js +3 -0
  21. package/lib/cjs/entry/dependenciesAny/dependenciesStd.generated.js +3 -0
  22. package/lib/cjs/entry/dependenciesAny/dependenciesStdTransform.generated.js +3 -0
  23. package/lib/cjs/entry/dependenciesAny.generated.js +8 -0
  24. package/lib/cjs/entry/dependenciesNumber/dependenciesChainClass.generated.js +3 -0
  25. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +3 -0
  26. package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +3 -0
  27. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +3 -0
  28. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +50 -0
  29. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +6 -0
  30. package/lib/cjs/entry/dependenciesNumber/dependenciesStd.generated.js +3 -0
  31. package/lib/cjs/entry/dependenciesNumber/dependenciesStdTransform.generated.js +3 -0
  32. package/lib/cjs/entry/dependenciesNumber.generated.js +8 -0
  33. package/lib/cjs/entry/impureFunctionsAny.generated.js +87 -61
  34. package/lib/cjs/entry/impureFunctionsNumber.generated.js +93 -69
  35. package/lib/cjs/entry/pureFunctionsAny.generated.js +50 -45
  36. package/lib/cjs/entry/pureFunctionsNumber.generated.js +22 -19
  37. package/lib/cjs/expression/Parser.js +1 -1
  38. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +8 -5
  39. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +15 -0
  40. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  41. package/lib/cjs/expression/node/AccessorNode.js +216 -173
  42. package/lib/cjs/expression/node/ArrayNode.js +206 -160
  43. package/lib/cjs/expression/node/AssignmentNode.js +321 -270
  44. package/lib/cjs/expression/node/BlockNode.js +223 -172
  45. package/lib/cjs/expression/node/ConditionalNode.js +253 -193
  46. package/lib/cjs/expression/node/ConstantNode.js +216 -171
  47. package/lib/cjs/expression/node/FunctionAssignmentNode.js +258 -196
  48. package/lib/cjs/expression/node/FunctionNode.js +456 -416
  49. package/lib/cjs/expression/node/IndexNode.js +256 -210
  50. package/lib/cjs/expression/node/Node.js +411 -378
  51. package/lib/cjs/expression/node/ObjectNode.js +223 -178
  52. package/lib/cjs/expression/node/OperatorNode.js +474 -397
  53. package/lib/cjs/expression/node/ParenthesisNode.js +189 -143
  54. package/lib/cjs/expression/node/RangeNode.js +272 -224
  55. package/lib/cjs/expression/node/RelationalNode.js +246 -195
  56. package/lib/cjs/expression/node/SymbolNode.js +219 -172
  57. package/lib/cjs/expression/node/utils/access.js +1 -1
  58. package/lib/cjs/expression/node/utils/assign.js +1 -1
  59. package/lib/cjs/expression/operators.js +117 -23
  60. package/lib/cjs/expression/parse.js +37 -19
  61. package/lib/cjs/expression/transform/std.transform.js +3 -1
  62. package/lib/cjs/factoriesAny.js +8 -0
  63. package/lib/cjs/factoriesNumber.js +10 -1
  64. package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
  65. package/lib/cjs/function/algebra/derivative.js +22 -30
  66. package/lib/cjs/function/algebra/leafCount.js +0 -3
  67. package/lib/cjs/function/algebra/rationalize.js +78 -108
  68. package/lib/cjs/function/algebra/resolve.js +53 -16
  69. package/lib/cjs/function/algebra/simplify/util.js +1 -1
  70. package/lib/cjs/function/algebra/simplify.js +87 -114
  71. package/lib/cjs/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +44 -10
  72. package/lib/cjs/function/algebra/simplifyCore.js +196 -93
  73. package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
  74. package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
  75. package/lib/cjs/function/algebra/symbolicEqual.js +9 -26
  76. package/lib/cjs/function/arithmetic/abs.js +7 -14
  77. package/lib/cjs/function/arithmetic/add.js +26 -70
  78. package/lib/cjs/function/arithmetic/addScalar.js +17 -9
  79. package/lib/cjs/function/arithmetic/cbrt.js +7 -11
  80. package/lib/cjs/function/arithmetic/ceil.js +56 -46
  81. package/lib/cjs/function/arithmetic/cube.js +5 -10
  82. package/lib/cjs/function/arithmetic/divide.js +7 -7
  83. package/lib/cjs/function/arithmetic/divideScalar.js +4 -18
  84. package/lib/cjs/function/arithmetic/dotDivide.js +22 -65
  85. package/lib/cjs/function/arithmetic/dotMultiply.js +16 -61
  86. package/lib/cjs/function/arithmetic/dotPow.js +30 -63
  87. package/lib/cjs/function/arithmetic/exp.js +8 -12
  88. package/lib/cjs/function/arithmetic/expm1.js +10 -10
  89. package/lib/cjs/function/arithmetic/fix.js +33 -27
  90. package/lib/cjs/function/arithmetic/floor.js +56 -46
  91. package/lib/cjs/function/arithmetic/gcd.js +27 -68
  92. package/lib/cjs/function/arithmetic/hypot.js +9 -5
  93. package/lib/cjs/function/arithmetic/invmod.js +1 -1
  94. package/lib/cjs/function/arithmetic/lcm.js +27 -68
  95. package/lib/cjs/function/arithmetic/log.js +10 -12
  96. package/lib/cjs/function/arithmetic/log10.js +5 -3
  97. package/lib/cjs/function/arithmetic/log1p.js +11 -7
  98. package/lib/cjs/function/arithmetic/log2.js +5 -3
  99. package/lib/cjs/function/arithmetic/mod.js +22 -64
  100. package/lib/cjs/function/arithmetic/multiply.js +40 -35
  101. package/lib/cjs/function/arithmetic/multiplyScalar.js +2 -9
  102. package/lib/cjs/function/arithmetic/norm.js +1 -5
  103. package/lib/cjs/function/arithmetic/nthRoot.js +80 -92
  104. package/lib/cjs/function/arithmetic/round.js +56 -42
  105. package/lib/cjs/function/arithmetic/sign.js +14 -10
  106. package/lib/cjs/function/arithmetic/sqrt.js +5 -9
  107. package/lib/cjs/function/arithmetic/square.js +6 -10
  108. package/lib/cjs/function/arithmetic/subtract.js +44 -100
  109. package/lib/cjs/function/arithmetic/unaryMinus.js +14 -16
  110. package/lib/cjs/function/arithmetic/unaryPlus.js +6 -4
  111. package/lib/cjs/function/bitwise/bitAnd.js +17 -61
  112. package/lib/cjs/function/bitwise/bitNot.js +5 -3
  113. package/lib/cjs/function/bitwise/bitOr.js +16 -60
  114. package/lib/cjs/function/bitwise/bitXor.js +17 -61
  115. package/lib/cjs/function/bitwise/leftShift.js +68 -81
  116. package/lib/cjs/function/bitwise/rightArithShift.js +68 -81
  117. package/lib/cjs/function/bitwise/rightLogShift.js +68 -81
  118. package/lib/cjs/function/bitwise/useMatrixForArrayScalar.js +36 -0
  119. package/lib/cjs/function/complex/arg.js +5 -3
  120. package/lib/cjs/function/complex/conj.js +6 -7
  121. package/lib/cjs/function/complex/im.js +7 -8
  122. package/lib/cjs/function/complex/re.js +6 -10
  123. package/lib/cjs/function/logical/and.js +74 -80
  124. package/lib/cjs/function/logical/not.js +13 -6
  125. package/lib/cjs/function/logical/or.js +21 -63
  126. package/lib/cjs/function/logical/xor.js +21 -63
  127. package/lib/cjs/function/matrix/diff.js +10 -7
  128. package/lib/cjs/function/matrix/eigs/complexEigs.js +5 -5
  129. package/lib/cjs/function/matrix/fft.js +2 -2
  130. package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
  131. package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
  132. package/lib/cjs/function/matrix/ones.js +2 -1
  133. package/lib/cjs/function/matrix/sqrtm.js +3 -2
  134. package/lib/cjs/function/matrix/transpose.js +47 -48
  135. package/lib/cjs/function/matrix/zeros.js +2 -1
  136. package/lib/cjs/function/probability/factorial.js +5 -3
  137. package/lib/cjs/function/probability/gamma.js +38 -40
  138. package/lib/cjs/function/probability/kldivergence.js +5 -2
  139. package/lib/cjs/function/probability/lgamma.js +30 -30
  140. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  141. package/lib/cjs/function/relational/compare.js +21 -67
  142. package/lib/cjs/function/relational/compareNatural.js +59 -54
  143. package/lib/cjs/function/relational/compareText.js +10 -43
  144. package/lib/cjs/function/relational/compareUnits.js +24 -0
  145. package/lib/cjs/function/relational/equal.js +19 -80
  146. package/lib/cjs/function/relational/equalScalar.js +7 -9
  147. package/lib/cjs/function/relational/larger.js +21 -67
  148. package/lib/cjs/function/relational/largerEq.js +21 -67
  149. package/lib/cjs/function/relational/smaller.js +21 -67
  150. package/lib/cjs/function/relational/smallerEq.js +21 -67
  151. package/lib/cjs/function/relational/unequal.js +19 -80
  152. package/lib/cjs/function/special/erf.js +5 -3
  153. package/lib/cjs/function/statistics/std.js +11 -2
  154. package/lib/cjs/function/trigonometry/acos.js +4 -8
  155. package/lib/cjs/function/trigonometry/acosh.js +2 -7
  156. package/lib/cjs/function/trigonometry/acot.js +4 -8
  157. package/lib/cjs/function/trigonometry/acoth.js +4 -8
  158. package/lib/cjs/function/trigonometry/acsc.js +4 -8
  159. package/lib/cjs/function/trigonometry/acsch.js +4 -8
  160. package/lib/cjs/function/trigonometry/asec.js +4 -8
  161. package/lib/cjs/function/trigonometry/asech.js +4 -8
  162. package/lib/cjs/function/trigonometry/asin.js +4 -9
  163. package/lib/cjs/function/trigonometry/asinh.js +4 -9
  164. package/lib/cjs/function/trigonometry/atan.js +4 -9
  165. package/lib/cjs/function/trigonometry/atan2.js +24 -62
  166. package/lib/cjs/function/trigonometry/atanh.js +4 -9
  167. package/lib/cjs/function/trigonometry/cos.js +11 -20
  168. package/lib/cjs/function/trigonometry/cosh.js +5 -19
  169. package/lib/cjs/function/trigonometry/cot.js +9 -15
  170. package/lib/cjs/function/trigonometry/coth.js +4 -15
  171. package/lib/cjs/function/trigonometry/csc.js +11 -17
  172. package/lib/cjs/function/trigonometry/csch.js +4 -15
  173. package/lib/cjs/function/trigonometry/sec.js +11 -17
  174. package/lib/cjs/function/trigonometry/sech.js +4 -15
  175. package/lib/cjs/function/trigonometry/sin.js +11 -21
  176. package/lib/cjs/function/trigonometry/sinh.js +5 -20
  177. package/lib/cjs/function/trigonometry/tan.js +11 -21
  178. package/lib/cjs/function/trigonometry/tanh.js +5 -20
  179. package/lib/cjs/function/trigonometry/trigUnit.js +24 -0
  180. package/lib/cjs/function/unit/to.js +7 -41
  181. package/lib/cjs/function/utils/hasNumericValue.js +4 -0
  182. package/lib/cjs/function/utils/isInteger.js +5 -3
  183. package/lib/cjs/function/utils/isNegative.js +10 -6
  184. package/lib/cjs/function/utils/isNumeric.js +5 -3
  185. package/lib/cjs/function/utils/isPositive.js +10 -6
  186. package/lib/cjs/function/utils/isPrime.js +5 -3
  187. package/lib/cjs/function/utils/isZero.js +10 -6
  188. package/lib/cjs/function/utils/numeric.js +11 -4
  189. package/lib/cjs/function/utils/typeOf.js +38 -44
  190. package/lib/cjs/header.js +2 -2
  191. package/lib/cjs/plain/bignumber/index.js +1 -1
  192. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  193. package/lib/cjs/type/bignumber/function/bignumber.js +6 -4
  194. package/lib/cjs/type/boolean.js +7 -5
  195. package/lib/cjs/type/chain/Chain.js +23 -3
  196. package/lib/cjs/type/complex/Complex.js +18 -14
  197. package/lib/cjs/type/complex/function/complex.js +6 -4
  198. package/lib/cjs/type/fraction/Fraction.js +10 -6
  199. package/lib/cjs/type/fraction/function/fraction.js +6 -4
  200. package/lib/cjs/type/matrix/DenseMatrix.js +21 -6
  201. package/lib/cjs/type/matrix/SparseMatrix.js +12 -2
  202. package/lib/cjs/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +4 -4
  203. package/lib/cjs/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +5 -5
  204. package/lib/cjs/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +5 -5
  205. package/lib/cjs/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +7 -7
  206. package/lib/cjs/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +5 -5
  207. package/lib/cjs/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +5 -5
  208. package/lib/cjs/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +5 -5
  209. package/lib/cjs/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +6 -6
  210. package/lib/cjs/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +5 -5
  211. package/lib/cjs/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +5 -5
  212. package/lib/cjs/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +5 -5
  213. package/lib/cjs/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +5 -5
  214. package/lib/cjs/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +5 -5
  215. package/lib/cjs/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +5 -5
  216. package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +238 -0
  217. package/lib/cjs/type/number.js +6 -4
  218. package/lib/cjs/type/string.js +7 -5
  219. package/lib/cjs/type/unit/Unit.js +69 -21
  220. package/lib/cjs/type/unit/function/createUnit.js +2 -1
  221. package/lib/cjs/type/unit/function/unit.js +9 -3
  222. package/lib/cjs/utils/customs.js +2 -2
  223. package/lib/cjs/utils/emitter.js +1 -1
  224. package/lib/cjs/utils/function.js +2 -2
  225. package/lib/cjs/utils/is.js +27 -25
  226. package/lib/cjs/utils/latex.js +3 -3
  227. package/lib/cjs/utils/lruQueue.js +1 -1
  228. package/lib/cjs/utils/map.js +3 -3
  229. package/lib/cjs/utils/object.js +2 -2
  230. package/lib/cjs/utils/snapshot.js +30 -57
  231. package/lib/cjs/utils/string.js +3 -3
  232. package/lib/cjs/version.js +1 -1
  233. package/lib/esm/core/create.js +2 -1
  234. package/lib/esm/core/function/import.js +2 -12
  235. package/lib/esm/core/function/typed.js +47 -11
  236. package/lib/esm/entry/dependenciesAny/dependenciesChainClass.generated.js +2 -0
  237. package/lib/esm/entry/dependenciesAny/dependenciesKldivergence.generated.js +2 -0
  238. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
  239. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +2 -0
  240. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +2 -0
  241. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +34 -0
  242. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +4 -0
  243. package/lib/esm/entry/dependenciesAny/dependenciesSqrtm.generated.js +2 -0
  244. package/lib/esm/entry/dependenciesAny/dependenciesStd.generated.js +2 -0
  245. package/lib/esm/entry/dependenciesAny/dependenciesStdTransform.generated.js +2 -0
  246. package/lib/esm/entry/dependenciesAny.generated.js +1 -0
  247. package/lib/esm/entry/dependenciesNumber/dependenciesChainClass.generated.js +2 -0
  248. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +2 -0
  249. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +2 -0
  250. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +2 -0
  251. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +30 -0
  252. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +4 -0
  253. package/lib/esm/entry/dependenciesNumber/dependenciesStd.generated.js +2 -0
  254. package/lib/esm/entry/dependenciesNumber/dependenciesStdTransform.generated.js +2 -0
  255. package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
  256. package/lib/esm/entry/impureFunctionsAny.generated.js +73 -48
  257. package/lib/esm/entry/impureFunctionsNumber.generated.js +81 -58
  258. package/lib/esm/entry/pureFunctionsAny.generated.js +39 -36
  259. package/lib/esm/entry/pureFunctionsNumber.generated.js +14 -13
  260. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
  261. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +8 -0
  262. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  263. package/lib/esm/expression/node/AccessorNode.js +158 -153
  264. package/lib/esm/expression/node/ArrayNode.js +162 -154
  265. package/lib/esm/expression/node/AssignmentNode.js +257 -245
  266. package/lib/esm/expression/node/BlockNode.js +177 -163
  267. package/lib/esm/expression/node/ConditionalNode.js +197 -174
  268. package/lib/esm/expression/node/ConstantNode.js +171 -163
  269. package/lib/esm/expression/node/FunctionAssignmentNode.js +205 -180
  270. package/lib/esm/expression/node/FunctionNode.js +407 -407
  271. package/lib/esm/expression/node/IndexNode.js +206 -198
  272. package/lib/esm/expression/node/Node.js +325 -325
  273. package/lib/esm/expression/node/ObjectNode.js +166 -157
  274. package/lib/esm/expression/node/OperatorNode.js +414 -377
  275. package/lib/esm/expression/node/ParenthesisNode.js +146 -138
  276. package/lib/esm/expression/node/RangeNode.js +221 -212
  277. package/lib/esm/expression/node/RelationalNode.js +190 -176
  278. package/lib/esm/expression/node/SymbolNode.js +161 -152
  279. package/lib/esm/expression/operators.js +96 -4
  280. package/lib/esm/expression/parse.js +25 -7
  281. package/lib/esm/expression/transform/std.transform.js +3 -1
  282. package/lib/esm/factoriesAny.js +1 -0
  283. package/lib/esm/factoriesNumber.js +1 -0
  284. package/lib/esm/function/algebra/derivative.js +22 -30
  285. package/lib/esm/function/algebra/leafCount.js +0 -3
  286. package/lib/esm/function/algebra/rationalize.js +83 -114
  287. package/lib/esm/function/algebra/resolve.js +25 -16
  288. package/lib/esm/function/algebra/simplify.js +82 -112
  289. package/lib/esm/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +39 -9
  290. package/lib/esm/function/algebra/simplifyCore.js +192 -91
  291. package/lib/esm/function/algebra/symbolicEqual.js +9 -26
  292. package/lib/esm/function/arithmetic/abs.js +3 -16
  293. package/lib/esm/function/arithmetic/add.js +21 -65
  294. package/lib/esm/function/arithmetic/addScalar.js +11 -5
  295. package/lib/esm/function/arithmetic/cbrt.js +7 -10
  296. package/lib/esm/function/arithmetic/ceil.js +25 -25
  297. package/lib/esm/function/arithmetic/cube.js +5 -9
  298. package/lib/esm/function/arithmetic/divide.js +7 -7
  299. package/lib/esm/function/arithmetic/divideScalar.js +2 -19
  300. package/lib/esm/function/arithmetic/dotDivide.js +22 -64
  301. package/lib/esm/function/arithmetic/dotMultiply.js +16 -60
  302. package/lib/esm/function/arithmetic/dotPow.js +30 -62
  303. package/lib/esm/function/arithmetic/exp.js +8 -11
  304. package/lib/esm/function/arithmetic/expm1.js +10 -9
  305. package/lib/esm/function/arithmetic/fix.js +17 -17
  306. package/lib/esm/function/arithmetic/floor.js +25 -25
  307. package/lib/esm/function/arithmetic/gcd.js +26 -70
  308. package/lib/esm/function/arithmetic/hypot.js +7 -6
  309. package/lib/esm/function/arithmetic/lcm.js +26 -70
  310. package/lib/esm/function/arithmetic/log.js +7 -10
  311. package/lib/esm/function/arithmetic/log10.js +1 -3
  312. package/lib/esm/function/arithmetic/log1p.js +4 -6
  313. package/lib/esm/function/arithmetic/log2.js +1 -3
  314. package/lib/esm/function/arithmetic/mod.js +21 -62
  315. package/lib/esm/function/arithmetic/multiply.js +23 -27
  316. package/lib/esm/function/arithmetic/multiplyScalar.js +2 -13
  317. package/lib/esm/function/arithmetic/norm.js +0 -4
  318. package/lib/esm/function/arithmetic/nthRoot.js +38 -73
  319. package/lib/esm/function/arithmetic/round.js +26 -28
  320. package/lib/esm/function/arithmetic/sign.js +5 -7
  321. package/lib/esm/function/arithmetic/sqrt.js +5 -8
  322. package/lib/esm/function/arithmetic/square.js +6 -9
  323. package/lib/esm/function/arithmetic/subtract.js +31 -95
  324. package/lib/esm/function/arithmetic/unaryMinus.js +6 -16
  325. package/lib/esm/function/arithmetic/unaryPlus.js +2 -4
  326. package/lib/esm/function/bitwise/bitAnd.js +16 -59
  327. package/lib/esm/function/bitwise/bitNot.js +1 -3
  328. package/lib/esm/function/bitwise/bitOr.js +16 -59
  329. package/lib/esm/function/bitwise/bitXor.js +16 -59
  330. package/lib/esm/function/bitwise/leftShift.js +38 -60
  331. package/lib/esm/function/bitwise/rightArithShift.js +38 -60
  332. package/lib/esm/function/bitwise/rightLogShift.js +38 -60
  333. package/lib/esm/function/bitwise/useMatrixForArrayScalar.js +13 -0
  334. package/lib/esm/function/complex/arg.js +1 -3
  335. package/lib/esm/function/complex/conj.js +3 -12
  336. package/lib/esm/function/complex/im.js +4 -15
  337. package/lib/esm/function/complex/re.js +3 -15
  338. package/lib/esm/function/logical/and.js +35 -57
  339. package/lib/esm/function/logical/not.js +3 -6
  340. package/lib/esm/function/logical/or.js +16 -61
  341. package/lib/esm/function/logical/xor.js +16 -61
  342. package/lib/esm/function/matrix/diff.js +2 -7
  343. package/lib/esm/function/matrix/ones.js +2 -1
  344. package/lib/esm/function/matrix/sqrtm.js +3 -2
  345. package/lib/esm/function/matrix/transpose.js +47 -50
  346. package/lib/esm/function/matrix/zeros.js +2 -1
  347. package/lib/esm/function/probability/factorial.js +1 -3
  348. package/lib/esm/function/probability/gamma.js +38 -39
  349. package/lib/esm/function/probability/kldivergence.js +3 -2
  350. package/lib/esm/function/probability/lgamma.js +29 -29
  351. package/lib/esm/function/relational/compare.js +21 -67
  352. package/lib/esm/function/relational/compareNatural.js +54 -49
  353. package/lib/esm/function/relational/compareText.js +10 -42
  354. package/lib/esm/function/relational/compareUnits.js +15 -0
  355. package/lib/esm/function/relational/equal.js +19 -79
  356. package/lib/esm/function/relational/equalScalar.js +6 -9
  357. package/lib/esm/function/relational/larger.js +23 -73
  358. package/lib/esm/function/relational/largerEq.js +23 -73
  359. package/lib/esm/function/relational/smaller.js +23 -73
  360. package/lib/esm/function/relational/smallerEq.js +23 -73
  361. package/lib/esm/function/relational/unequal.js +19 -79
  362. package/lib/esm/function/special/erf.js +1 -3
  363. package/lib/esm/function/statistics/std.js +10 -2
  364. package/lib/esm/function/trigonometry/acos.js +4 -7
  365. package/lib/esm/function/trigonometry/acosh.js +2 -6
  366. package/lib/esm/function/trigonometry/acot.js +4 -7
  367. package/lib/esm/function/trigonometry/acoth.js +4 -7
  368. package/lib/esm/function/trigonometry/acsc.js +4 -7
  369. package/lib/esm/function/trigonometry/acsch.js +4 -7
  370. package/lib/esm/function/trigonometry/asec.js +4 -7
  371. package/lib/esm/function/trigonometry/asech.js +4 -7
  372. package/lib/esm/function/trigonometry/asin.js +4 -8
  373. package/lib/esm/function/trigonometry/asinh.js +4 -8
  374. package/lib/esm/function/trigonometry/atan.js +4 -8
  375. package/lib/esm/function/trigonometry/atan2.js +25 -64
  376. package/lib/esm/function/trigonometry/atanh.js +4 -8
  377. package/lib/esm/function/trigonometry/cos.js +11 -22
  378. package/lib/esm/function/trigonometry/cosh.js +5 -20
  379. package/lib/esm/function/trigonometry/cot.js +10 -20
  380. package/lib/esm/function/trigonometry/coth.js +6 -20
  381. package/lib/esm/function/trigonometry/csc.js +12 -22
  382. package/lib/esm/function/trigonometry/csch.js +6 -20
  383. package/lib/esm/function/trigonometry/sec.js +12 -22
  384. package/lib/esm/function/trigonometry/sech.js +6 -20
  385. package/lib/esm/function/trigonometry/sin.js +11 -23
  386. package/lib/esm/function/trigonometry/sinh.js +5 -21
  387. package/lib/esm/function/trigonometry/tan.js +11 -23
  388. package/lib/esm/function/trigonometry/tanh.js +5 -21
  389. package/lib/esm/function/trigonometry/trigUnit.js +15 -0
  390. package/lib/esm/function/unit/to.js +8 -43
  391. package/lib/esm/function/utils/hasNumericValue.js +2 -0
  392. package/lib/esm/function/utils/isInteger.js +1 -3
  393. package/lib/esm/function/utils/isNegative.js +2 -6
  394. package/lib/esm/function/utils/isNumeric.js +3 -9
  395. package/lib/esm/function/utils/isPositive.js +2 -6
  396. package/lib/esm/function/utils/isPrime.js +1 -3
  397. package/lib/esm/function/utils/isZero.js +2 -6
  398. package/lib/esm/function/utils/numeric.js +11 -4
  399. package/lib/esm/function/utils/typeOf.js +38 -44
  400. package/lib/esm/type/bignumber/function/bignumber.js +1 -3
  401. package/lib/esm/type/boolean.js +1 -3
  402. package/lib/esm/type/chain/Chain.js +23 -3
  403. package/lib/esm/type/complex/Complex.js +4 -0
  404. package/lib/esm/type/complex/function/complex.js +1 -3
  405. package/lib/esm/type/fraction/Fraction.js +4 -0
  406. package/lib/esm/type/fraction/function/fraction.js +1 -3
  407. package/lib/esm/type/matrix/DenseMatrix.js +15 -1
  408. package/lib/esm/type/matrix/SparseMatrix.js +9 -0
  409. package/lib/esm/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +2 -2
  410. package/lib/esm/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +3 -3
  411. package/lib/esm/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +3 -3
  412. package/lib/esm/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +5 -5
  413. package/lib/esm/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +3 -3
  414. package/lib/esm/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +3 -3
  415. package/lib/esm/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +3 -3
  416. package/lib/esm/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +4 -4
  417. package/lib/esm/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +3 -3
  418. package/lib/esm/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +3 -3
  419. package/lib/esm/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +3 -3
  420. package/lib/esm/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +3 -3
  421. package/lib/esm/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +3 -3
  422. package/lib/esm/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +3 -3
  423. package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +168 -0
  424. package/lib/esm/type/number.js +1 -3
  425. package/lib/esm/type/string.js +1 -3
  426. package/lib/esm/type/unit/Unit.js +61 -13
  427. package/lib/esm/type/unit/function/createUnit.js +2 -1
  428. package/lib/esm/type/unit/function/unit.js +5 -3
  429. package/lib/esm/utils/is.js +18 -18
  430. package/lib/esm/utils/snapshot.js +22 -48
  431. package/lib/esm/version.js +1 -1
  432. package/package.json +21 -24
  433. package/types/index.d.ts +202 -181
  434. package/types/index.ts +264 -57
  435. package/lib/cjs/utils/polyfills.js +0 -14
  436. package/lib/esm/utils/polyfills.js +0 -12
@@ -7,19 +7,17 @@ exports.createSubtract = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- var _DimensionError = require("../../error/DimensionError.js");
10
+ var _matAlgo01xDSid = require("../../type/matrix/utils/matAlgo01xDSid.js");
11
11
 
12
- var _algorithm = require("../../type/matrix/utils/algorithm01.js");
12
+ var _matAlgo03xDSf = require("../../type/matrix/utils/matAlgo03xDSf.js");
13
13
 
14
- var _algorithm2 = require("../../type/matrix/utils/algorithm03.js");
14
+ var _matAlgo05xSfSf = require("../../type/matrix/utils/matAlgo05xSfSf.js");
15
15
 
16
- var _algorithm3 = require("../../type/matrix/utils/algorithm05.js");
16
+ var _matAlgo10xSids = require("../../type/matrix/utils/matAlgo10xSids.js");
17
17
 
18
- var _algorithm4 = require("../../type/matrix/utils/algorithm10.js");
18
+ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
19
19
 
20
- var _algorithm5 = require("../../type/matrix/utils/algorithm13.js");
21
-
22
- var _algorithm6 = require("../../type/matrix/utils/algorithm14.js");
20
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
23
21
 
24
22
  var name = 'subtract';
25
23
  var dependencies = ['typed', 'matrix', 'equalScalar', 'addScalar', 'unaryMinus', 'DenseMatrix'];
@@ -31,25 +29,27 @@ var createSubtract = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
31
29
  unaryMinus = _ref.unaryMinus,
32
30
  DenseMatrix = _ref.DenseMatrix;
33
31
  // TODO: split function subtract in two: subtract and subtractScalar
34
- var algorithm01 = (0, _algorithm.createAlgorithm01)({
32
+ var matAlgo01xDSid = (0, _matAlgo01xDSid.createMatAlgo01xDSid)({
35
33
  typed: typed
36
34
  });
37
- var algorithm03 = (0, _algorithm2.createAlgorithm03)({
35
+ var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
38
36
  typed: typed
39
37
  });
40
- var algorithm05 = (0, _algorithm3.createAlgorithm05)({
38
+ var matAlgo05xSfSf = (0, _matAlgo05xSfSf.createMatAlgo05xSfSf)({
41
39
  typed: typed,
42
40
  equalScalar: equalScalar
43
41
  });
44
- var algorithm10 = (0, _algorithm4.createAlgorithm10)({
42
+ var matAlgo10xSids = (0, _matAlgo10xSids.createMatAlgo10xSids)({
45
43
  typed: typed,
46
44
  DenseMatrix: DenseMatrix
47
45
  });
48
- var algorithm13 = (0, _algorithm5.createAlgorithm13)({
49
- typed: typed
46
+ var matAlgo12xSfs = (0, _matAlgo12xSfs.createMatAlgo12xSfs)({
47
+ typed: typed,
48
+ DenseMatrix: DenseMatrix
50
49
  });
51
- var algorithm14 = (0, _algorithm6.createAlgorithm14)({
52
- typed: typed
50
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
51
+ typed: typed,
52
+ matrix: matrix
53
53
  });
54
54
  /**
55
55
  * Subtract two values, `x - y`.
@@ -98,88 +98,32 @@ var createSubtract = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
98
98
  'Fraction, Fraction': function FractionFraction(x, y) {
99
99
  return x.sub(y);
100
100
  },
101
- 'Unit, Unit': function UnitUnit(x, y) {
102
- if (x.value === null) {
103
- throw new Error('Parameter x contains a unit with undefined value');
104
- }
105
-
106
- if (y.value === null) {
107
- throw new Error('Parameter y contains a unit with undefined value');
108
- }
109
-
110
- if (!x.equalBase(y)) {
111
- throw new Error('Units do not match');
112
- }
113
-
114
- var res = x.clone();
115
- res.value = this(res.value, y.value);
116
- res.fixPrefix = false;
117
- return res;
118
- },
119
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
120
- checkEqualDimensions(x, y);
121
- return algorithm05(x, y, this);
122
- },
123
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
124
- checkEqualDimensions(x, y);
125
- return algorithm03(y, x, this, true);
126
- },
127
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
128
- checkEqualDimensions(x, y);
129
- return algorithm01(x, y, this, false);
130
- },
131
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
132
- checkEqualDimensions(x, y);
133
- return algorithm13(x, y, this);
134
- },
135
- 'Array, Array': function ArrayArray(x, y) {
136
- // use matrix implementation
137
- return this(matrix(x), matrix(y)).valueOf();
138
- },
139
- 'Array, Matrix': function ArrayMatrix(x, y) {
140
- // use matrix implementation
141
- return this(matrix(x), y);
142
- },
143
- 'Matrix, Array': function MatrixArray(x, y) {
144
- // use matrix implementation
145
- return this(x, matrix(y));
146
- },
147
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
148
- return algorithm10(x, unaryMinus(y), addScalar);
149
- },
150
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
151
- return algorithm14(x, y, this);
152
- },
153
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
154
- return algorithm10(y, x, this, true);
155
- },
156
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
157
- return algorithm14(y, x, this, true);
158
- },
159
- 'Array, any': function ArrayAny(x, y) {
160
- // use matrix implementation
161
- return algorithm14(matrix(x), y, this, false).valueOf();
162
- },
163
- 'any, Array': function anyArray(x, y) {
164
- // use matrix implementation
165
- return algorithm14(matrix(y), x, this, true).valueOf();
166
- }
167
- });
101
+ 'Unit, Unit': typed.referToSelf(function (self) {
102
+ return function (x, y) {
103
+ if (x.value === null) {
104
+ throw new Error('Parameter x contains a unit with undefined value');
105
+ }
106
+
107
+ if (y.value === null) {
108
+ throw new Error('Parameter y contains a unit with undefined value');
109
+ }
110
+
111
+ if (!x.equalBase(y)) {
112
+ throw new Error('Units do not match');
113
+ }
114
+
115
+ var res = x.clone();
116
+ res.value = typed.find(self, [res.valueType(), y.valueType()])(res.value, y.value);
117
+ res.fixPrefix = false;
118
+ return res;
119
+ };
120
+ })
121
+ }, matrixAlgorithmSuite({
122
+ SS: matAlgo05xSfSf,
123
+ DS: matAlgo01xDSid,
124
+ SD: matAlgo03xDSf,
125
+ Ss: matAlgo12xSfs,
126
+ sS: matAlgo10xSids
127
+ }));
168
128
  });
169
- /**
170
- * Check whether matrix x and y have the same number of dimensions.
171
- * Throws a DimensionError when dimensions are not equal
172
- * @param {Matrix} x
173
- * @param {Matrix} y
174
- */
175
-
176
- exports.createSubtract = createSubtract;
177
-
178
- function checkEqualDimensions(x, y) {
179
- var xsize = x.size();
180
- var ysize = y.size();
181
-
182
- if (xsize.length !== ysize.length) {
183
- throw new _DimensionError.DimensionError(xsize.length, ysize.length);
184
- }
185
- }
129
+ exports.createSubtract = createSubtract;
@@ -41,24 +41,22 @@ var createUnaryMinus = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
41
41
  */
42
42
  return typed(name, {
43
43
  number: _index.unaryMinusNumber,
44
- Complex: function Complex(x) {
44
+ 'Complex | BigNumber | Fraction': function ComplexBigNumberFraction(x) {
45
45
  return x.neg();
46
46
  },
47
- BigNumber: function BigNumber(x) {
48
- return x.neg();
49
- },
50
- Fraction: function Fraction(x) {
51
- return x.neg();
52
- },
53
- Unit: function Unit(x) {
54
- var res = x.clone();
55
- res.value = this(x.value);
56
- return res;
57
- },
58
- 'Array | Matrix': function ArrayMatrix(x) {
59
- // deep map collection, skip zeros since unaryMinus(0) = 0
60
- return (0, _collection.deepMap)(x, this, true);
61
- } // TODO: add support for string
47
+ Unit: typed.referToSelf(function (self) {
48
+ return function (x) {
49
+ var res = x.clone();
50
+ res.value = typed.find(self, res.valueType())(x.value);
51
+ return res;
52
+ };
53
+ }),
54
+ // deep map collection, skip zeros since unaryMinus(0) = 0
55
+ 'Array | Matrix': typed.referToSelf(function (self) {
56
+ return function (x) {
57
+ return (0, _collection.deepMap)(x, self, true);
58
+ };
59
+ }) // TODO: add support for string
62
60
 
63
61
  });
64
62
  });
@@ -56,10 +56,12 @@ var createUnaryPlus = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
56
56
  Unit: function Unit(x) {
57
57
  return x.clone();
58
58
  },
59
- 'Array | Matrix': function ArrayMatrix(x) {
60
- // deep map collection, skip zeros since unaryPlus(0) = 0
61
- return (0, _collection.deepMap)(x, this, true);
62
- },
59
+ // deep map collection, skip zeros since unaryPlus(0) = 0
60
+ 'Array | Matrix': typed.referToSelf(function (self) {
61
+ return function (x) {
62
+ return (0, _collection.deepMap)(x, self, true);
63
+ };
64
+ }),
63
65
  'boolean | string': function booleanString(x) {
64
66
  // convert to a number or bignumber
65
67
  return config.number === 'BigNumber' ? new BigNumber(+x) : +x;
@@ -7,18 +7,16 @@ exports.createBitAnd = void 0;
7
7
 
8
8
  var _bitwise = require("../../utils/bignumber/bitwise.js");
9
9
 
10
- var _algorithm = require("../../type/matrix/utils/algorithm02.js");
10
+ var _matAlgo02xDS = require("../../type/matrix/utils/matAlgo02xDS0.js");
11
11
 
12
- var _algorithm2 = require("../../type/matrix/utils/algorithm11.js");
12
+ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
13
13
 
14
- var _algorithm3 = require("../../type/matrix/utils/algorithm13.js");
15
-
16
- var _algorithm4 = require("../../type/matrix/utils/algorithm14.js");
17
-
18
- var _algorithm5 = require("../../type/matrix/utils/algorithm06.js");
14
+ var _matAlgo06xS0S = require("../../type/matrix/utils/matAlgo06xS0S0.js");
19
15
 
20
16
  var _factory = require("../../utils/factory.js");
21
17
 
18
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
19
+
22
20
  var _index = require("../../plain/number/index.js");
23
21
 
24
22
  var name = 'bitAnd';
@@ -27,23 +25,21 @@ var createBitAnd = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
27
25
  var typed = _ref.typed,
28
26
  matrix = _ref.matrix,
29
27
  equalScalar = _ref.equalScalar;
30
- var algorithm02 = (0, _algorithm.createAlgorithm02)({
28
+ var matAlgo02xDS0 = (0, _matAlgo02xDS.createMatAlgo02xDS0)({
31
29
  typed: typed,
32
30
  equalScalar: equalScalar
33
31
  });
34
- var algorithm06 = (0, _algorithm5.createAlgorithm06)({
32
+ var matAlgo06xS0S0 = (0, _matAlgo06xS0S.createMatAlgo06xS0S0)({
35
33
  typed: typed,
36
34
  equalScalar: equalScalar
37
35
  });
38
- var algorithm11 = (0, _algorithm2.createAlgorithm11)({
36
+ var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
39
37
  typed: typed,
40
38
  equalScalar: equalScalar
41
39
  });
42
- var algorithm13 = (0, _algorithm3.createAlgorithm13)({
43
- typed: typed
44
- });
45
- var algorithm14 = (0, _algorithm4.createAlgorithm14)({
46
- typed: typed
40
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
41
+ typed: typed,
42
+ matrix: matrix
47
43
  });
48
44
  /**
49
45
  * Bitwise AND two values, `x & y`.
@@ -70,51 +66,11 @@ var createBitAnd = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
70
66
 
71
67
  return typed(name, {
72
68
  'number, number': _index.bitAndNumber,
73
- 'BigNumber, BigNumber': _bitwise.bitAndBigNumber,
74
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
75
- return algorithm06(x, y, this, false);
76
- },
77
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
78
- return algorithm02(y, x, this, true);
79
- },
80
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
81
- return algorithm02(x, y, this, false);
82
- },
83
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
84
- return algorithm13(x, y, this);
85
- },
86
- 'Array, Array': function ArrayArray(x, y) {
87
- // use matrix implementation
88
- return this(matrix(x), matrix(y)).valueOf();
89
- },
90
- 'Array, Matrix': function ArrayMatrix(x, y) {
91
- // use matrix implementation
92
- return this(matrix(x), y);
93
- },
94
- 'Matrix, Array': function MatrixArray(x, y) {
95
- // use matrix implementation
96
- return this(x, matrix(y));
97
- },
98
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
99
- return algorithm11(x, y, this, false);
100
- },
101
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
102
- return algorithm14(x, y, this, false);
103
- },
104
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
105
- return algorithm11(y, x, this, true);
106
- },
107
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
108
- return algorithm14(y, x, this, true);
109
- },
110
- 'Array, any': function ArrayAny(x, y) {
111
- // use matrix implementation
112
- return algorithm14(matrix(x), y, this, false).valueOf();
113
- },
114
- 'any, Array': function anyArray(x, y) {
115
- // use matrix implementation
116
- return algorithm14(matrix(y), x, this, true).valueOf();
117
- }
118
- });
69
+ 'BigNumber, BigNumber': _bitwise.bitAndBigNumber
70
+ }, matrixAlgorithmSuite({
71
+ SS: matAlgo06xS0S0,
72
+ DS: matAlgo02xDS0,
73
+ Ss: matAlgo11xS0s
74
+ }));
119
75
  });
120
76
  exports.createBitAnd = createBitAnd;
@@ -43,9 +43,11 @@ var createBitNot = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
43
43
  return typed(name, {
44
44
  number: _index.bitNotNumber,
45
45
  BigNumber: _bitwise.bitNotBigNumber,
46
- 'Array | Matrix': function ArrayMatrix(x) {
47
- return (0, _collection.deepMap)(x, this);
48
- }
46
+ 'Array | Matrix': typed.referToSelf(function (self) {
47
+ return function (x) {
48
+ return (0, _collection.deepMap)(x, self);
49
+ };
50
+ })
49
51
  });
50
52
  });
51
53
  exports.createBitNot = createBitNot;
@@ -9,15 +9,13 @@ var _bitwise = require("../../utils/bignumber/bitwise.js");
9
9
 
10
10
  var _factory = require("../../utils/factory.js");
11
11
 
12
- var _algorithm = require("../../type/matrix/utils/algorithm14.js");
12
+ var _matAlgo10xSids = require("../../type/matrix/utils/matAlgo10xSids.js");
13
13
 
14
- var _algorithm2 = require("../../type/matrix/utils/algorithm13.js");
14
+ var _matAlgo04xSidSid = require("../../type/matrix/utils/matAlgo04xSidSid.js");
15
15
 
16
- var _algorithm3 = require("../../type/matrix/utils/algorithm10.js");
16
+ var _matAlgo01xDSid = require("../../type/matrix/utils/matAlgo01xDSid.js");
17
17
 
18
- var _algorithm4 = require("../../type/matrix/utils/algorithm04.js");
19
-
20
- var _algorithm5 = require("../../type/matrix/utils/algorithm01.js");
18
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
21
19
 
22
20
  var _index = require("../../plain/number/index.js");
23
21
 
@@ -28,22 +26,20 @@ var createBitOr = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
28
26
  matrix = _ref.matrix,
29
27
  equalScalar = _ref.equalScalar,
30
28
  DenseMatrix = _ref.DenseMatrix;
31
- var algorithm01 = (0, _algorithm5.createAlgorithm01)({
29
+ var matAlgo01xDSid = (0, _matAlgo01xDSid.createMatAlgo01xDSid)({
32
30
  typed: typed
33
31
  });
34
- var algorithm04 = (0, _algorithm4.createAlgorithm04)({
32
+ var matAlgo04xSidSid = (0, _matAlgo04xSidSid.createMatAlgo04xSidSid)({
35
33
  typed: typed,
36
34
  equalScalar: equalScalar
37
35
  });
38
- var algorithm10 = (0, _algorithm3.createAlgorithm10)({
36
+ var matAlgo10xSids = (0, _matAlgo10xSids.createMatAlgo10xSids)({
39
37
  typed: typed,
40
38
  DenseMatrix: DenseMatrix
41
39
  });
42
- var algorithm13 = (0, _algorithm2.createAlgorithm13)({
43
- typed: typed
44
- });
45
- var algorithm14 = (0, _algorithm.createAlgorithm14)({
46
- typed: typed
40
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
41
+ typed: typed,
42
+ matrix: matrix
47
43
  });
48
44
  /**
49
45
  * Bitwise OR two values, `x | y`.
@@ -71,51 +67,11 @@ var createBitOr = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
71
67
 
72
68
  return typed(name, {
73
69
  'number, number': _index.bitOrNumber,
74
- 'BigNumber, BigNumber': _bitwise.bitOrBigNumber,
75
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
76
- return algorithm04(x, y, this);
77
- },
78
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
79
- return algorithm01(y, x, this, true);
80
- },
81
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
82
- return algorithm01(x, y, this, false);
83
- },
84
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
85
- return algorithm13(x, y, this);
86
- },
87
- 'Array, Array': function ArrayArray(x, y) {
88
- // use matrix implementation
89
- return this(matrix(x), matrix(y)).valueOf();
90
- },
91
- 'Array, Matrix': function ArrayMatrix(x, y) {
92
- // use matrix implementation
93
- return this(matrix(x), y);
94
- },
95
- 'Matrix, Array': function MatrixArray(x, y) {
96
- // use matrix implementation
97
- return this(x, matrix(y));
98
- },
99
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
100
- return algorithm10(x, y, this, false);
101
- },
102
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
103
- return algorithm14(x, y, this, false);
104
- },
105
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
106
- return algorithm10(y, x, this, true);
107
- },
108
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
109
- return algorithm14(y, x, this, true);
110
- },
111
- 'Array, any': function ArrayAny(x, y) {
112
- // use matrix implementation
113
- return algorithm14(matrix(x), y, this, false).valueOf();
114
- },
115
- 'any, Array': function anyArray(x, y) {
116
- // use matrix implementation
117
- return algorithm14(matrix(y), x, this, true).valueOf();
118
- }
119
- });
70
+ 'BigNumber, BigNumber': _bitwise.bitOrBigNumber
71
+ }, matrixAlgorithmSuite({
72
+ SS: matAlgo04xSidSid,
73
+ DS: matAlgo01xDSid,
74
+ Ss: matAlgo10xSids
75
+ }));
120
76
  });
121
77
  exports.createBitOr = createBitOr;
@@ -7,18 +7,16 @@ exports.createBitXor = void 0;
7
7
 
8
8
  var _bitwise = require("../../utils/bignumber/bitwise.js");
9
9
 
10
- var _algorithm = require("../../type/matrix/utils/algorithm03.js");
10
+ var _matAlgo03xDSf = require("../../type/matrix/utils/matAlgo03xDSf.js");
11
11
 
12
- var _algorithm2 = require("../../type/matrix/utils/algorithm07.js");
12
+ var _matAlgo07xSSf = require("../../type/matrix/utils/matAlgo07xSSf.js");
13
13
 
14
- var _algorithm3 = require("../../type/matrix/utils/algorithm12.js");
15
-
16
- var _algorithm4 = require("../../type/matrix/utils/algorithm13.js");
17
-
18
- var _algorithm5 = require("../../type/matrix/utils/algorithm14.js");
14
+ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
19
15
 
20
16
  var _factory = require("../../utils/factory.js");
21
17
 
18
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
19
+
22
20
  var _index = require("../../plain/number/index.js");
23
21
 
24
22
  var name = 'bitXor';
@@ -27,22 +25,20 @@ var createBitXor = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
27
25
  var typed = _ref.typed,
28
26
  matrix = _ref.matrix,
29
27
  DenseMatrix = _ref.DenseMatrix;
30
- var algorithm03 = (0, _algorithm.createAlgorithm03)({
28
+ var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
31
29
  typed: typed
32
30
  });
33
- var algorithm07 = (0, _algorithm2.createAlgorithm07)({
31
+ var matAlgo07xSSf = (0, _matAlgo07xSSf.createMatAlgo07xSSf)({
34
32
  typed: typed,
35
33
  DenseMatrix: DenseMatrix
36
34
  });
37
- var algorithm12 = (0, _algorithm3.createAlgorithm12)({
35
+ var matAlgo12xSfs = (0, _matAlgo12xSfs.createMatAlgo12xSfs)({
38
36
  typed: typed,
39
37
  DenseMatrix: DenseMatrix
40
38
  });
41
- var algorithm13 = (0, _algorithm4.createAlgorithm13)({
42
- typed: typed
43
- });
44
- var algorithm14 = (0, _algorithm5.createAlgorithm14)({
45
- typed: typed
39
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
40
+ typed: typed,
41
+ matrix: matrix
46
42
  });
47
43
  /**
48
44
  * Bitwise XOR two values, `x ^ y`.
@@ -69,51 +65,11 @@ var createBitXor = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
69
65
 
70
66
  return typed(name, {
71
67
  'number, number': _index.bitXorNumber,
72
- 'BigNumber, BigNumber': _bitwise.bitXor,
73
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
74
- return algorithm07(x, y, this);
75
- },
76
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
77
- return algorithm03(y, x, this, true);
78
- },
79
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
80
- return algorithm03(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, any': function SparseMatrixAny(x, y) {
98
- return algorithm12(x, y, this, false);
99
- },
100
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
101
- return algorithm14(x, y, this, false);
102
- },
103
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
104
- return algorithm12(y, x, this, true);
105
- },
106
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
107
- return algorithm14(y, x, this, true);
108
- },
109
- 'Array, any': function ArrayAny(x, y) {
110
- // use matrix implementation
111
- return algorithm14(matrix(x), y, this, false).valueOf();
112
- },
113
- 'any, Array': function anyArray(x, y) {
114
- // use matrix implementation
115
- return algorithm14(matrix(y), x, this, true).valueOf();
116
- }
117
- });
68
+ 'BigNumber, BigNumber': _bitwise.bitXor
69
+ }, matrixAlgorithmSuite({
70
+ SS: matAlgo07xSSf,
71
+ DS: matAlgo03xDSf,
72
+ Ss: matAlgo12xSfs
73
+ }));
118
74
  });
119
75
  exports.createBitXor = createBitXor;