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