mathjs 10.6.2 → 11.0.0

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