mathjs 10.6.3 → 11.0.1

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