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
@@ -89,75 +89,79 @@ var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependenci
89
89
  */
90
90
 
91
91
  return typed(name, {
92
- 'any, any': function anyAny(x, y) {
93
- var typeX = (0, _is.typeOf)(x);
94
- var typeY = (0, _is.typeOf)(y);
95
- var c; // numeric types
96
-
97
- if ((typeX === 'number' || typeX === 'BigNumber' || typeX === 'Fraction') && (typeY === 'number' || typeY === 'BigNumber' || typeY === 'Fraction')) {
98
- c = compare(x, y);
92
+ 'any, any': _compareNatural
93
+ }); // just to check # args
94
+
95
+ function _compareNatural(x, y) {
96
+ var typeX = (0, _is.typeOf)(x);
97
+ var typeY = (0, _is.typeOf)(y);
98
+ var c; // numeric types
99
+
100
+ if ((typeX === 'number' || typeX === 'BigNumber' || typeX === 'Fraction') && (typeY === 'number' || typeY === 'BigNumber' || typeY === 'Fraction')) {
101
+ c = compare(x, y);
102
+
103
+ if (c.toString() !== '0') {
104
+ // c can be number, BigNumber, or Fraction
105
+ return c > 0 ? 1 : -1; // return a number
106
+ } else {
107
+ return (0, _javascriptNaturalSort["default"])(typeX, typeY);
108
+ }
109
+ } // matrix types
99
110
 
100
- if (c.toString() !== '0') {
101
- // c can be number, BigNumber, or Fraction
102
- return c > 0 ? 1 : -1; // return a number
103
- } else {
104
- return (0, _javascriptNaturalSort.default)(typeX, typeY);
105
- }
106
- } // matrix types
107
111
 
112
+ var matTypes = ['Array', 'DenseMatrix', 'SparseMatrix'];
108
113
 
109
- if (typeX === 'Array' || typeX === 'Matrix' || typeY === 'Array' || typeY === 'Matrix') {
110
- c = compareMatricesAndArrays(this, x, y);
114
+ if (matTypes.includes(typeX) || matTypes.includes(typeY)) {
115
+ c = compareMatricesAndArrays(_compareNatural, x, y);
111
116
 
112
- if (c !== 0) {
113
- return c;
114
- } else {
115
- return (0, _javascriptNaturalSort.default)(typeX, typeY);
116
- }
117
- } // in case of different types, order by name of type, i.e. 'BigNumber' < 'Complex'
117
+ if (c !== 0) {
118
+ return c;
119
+ } else {
120
+ return (0, _javascriptNaturalSort["default"])(typeX, typeY);
121
+ }
122
+ } // in case of different types, order by name of type, i.e. 'BigNumber' < 'Complex'
118
123
 
119
124
 
120
- if (typeX !== typeY) {
121
- return (0, _javascriptNaturalSort.default)(typeX, typeY);
122
- }
125
+ if (typeX !== typeY) {
126
+ return (0, _javascriptNaturalSort["default"])(typeX, typeY);
127
+ }
123
128
 
124
- if (typeX === 'Complex') {
125
- return compareComplexNumbers(x, y);
126
- }
129
+ if (typeX === 'Complex') {
130
+ return compareComplexNumbers(x, y);
131
+ }
127
132
 
128
- if (typeX === 'Unit') {
129
- if (x.equalBase(y)) {
130
- return this(x.value, y.value);
131
- } // compare by units
133
+ if (typeX === 'Unit') {
134
+ if (x.equalBase(y)) {
135
+ return _compareNatural(x.value, y.value);
136
+ } // compare by units
132
137
 
133
138
 
134
- return compareArrays(this, x.formatUnits(), y.formatUnits());
135
- }
139
+ return compareArrays(_compareNatural, x.formatUnits(), y.formatUnits());
140
+ }
136
141
 
137
- if (typeX === 'boolean') {
138
- return compareBooleans(x, y);
139
- }
142
+ if (typeX === 'boolean') {
143
+ return compareBooleans(x, y);
144
+ }
140
145
 
141
- if (typeX === 'string') {
142
- return (0, _javascriptNaturalSort.default)(x, y);
143
- }
146
+ if (typeX === 'string') {
147
+ return (0, _javascriptNaturalSort["default"])(x, y);
148
+ }
144
149
 
145
- if (typeX === 'Object') {
146
- return compareObjects(this, x, y);
147
- }
150
+ if (typeX === 'Object') {
151
+ return compareObjects(_compareNatural, x, y);
152
+ }
148
153
 
149
- if (typeX === 'null') {
150
- return 0;
151
- }
154
+ if (typeX === 'null') {
155
+ return 0;
156
+ }
152
157
 
153
- if (typeX === 'undefined') {
154
- return 0;
155
- } // this should not occur...
158
+ if (typeX === 'undefined') {
159
+ return 0;
160
+ } // this should not occur...
156
161
 
157
162
 
158
- throw new TypeError('Unsupported type of value "' + typeX + '"');
159
- }
160
- });
163
+ throw new TypeError('Unsupported type of value "' + typeX + '"');
164
+ }
161
165
  /**
162
166
  * Compare mixed matrix/array types, by converting to same-shaped array.
163
167
  * This comparator is non-deterministic regarding input types.
@@ -166,6 +170,7 @@ var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependenci
166
170
  * @returns {number} Returns the comparison result: -1, 0, or 1
167
171
  */
168
172
 
173
+
169
174
  function compareMatricesAndArrays(compareNatural, x, y) {
170
175
  if ((0, _is.isSparseMatrix)(x) && (0, _is.isSparseMatrix)(y)) {
171
176
  return compareArrays(compareNatural, x.toJSON().values, y.toJSON().values);
@@ -252,8 +257,8 @@ var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependenci
252
257
  var keysX = Object.keys(x);
253
258
  var keysY = Object.keys(y); // compare keys
254
259
 
255
- keysX.sort(_javascriptNaturalSort.default);
256
- keysY.sort(_javascriptNaturalSort.default);
260
+ keysX.sort(_javascriptNaturalSort["default"]);
261
+ keysY.sort(_javascriptNaturalSort["default"]);
257
262
  var c = compareArrays(compareNatural, keysX, keysY);
258
263
 
259
264
  if (c !== 0) {
@@ -9,20 +9,17 @@ var _string = require("../../utils/string.js");
9
9
 
10
10
  var _factory = require("../../utils/factory.js");
11
11
 
12
- var _algorithm = require("../../type/matrix/utils/algorithm14.js");
13
-
14
- var _algorithm2 = require("../../type/matrix/utils/algorithm13.js");
12
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
15
13
 
16
14
  var name = 'compareText';
17
15
  var dependencies = ['typed', 'matrix'];
16
+ _string.compareText.signature = 'any, any';
18
17
  var createCompareText = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
19
18
  var typed = _ref.typed,
20
19
  matrix = _ref.matrix;
21
- var algorithm13 = (0, _algorithm2.createAlgorithm13)({
22
- typed: typed
23
- });
24
- var algorithm14 = (0, _algorithm.createAlgorithm14)({
25
- typed: typed
20
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
21
+ typed: typed,
22
+ matrix: matrix
26
23
  });
27
24
  /**
28
25
  * Compare two strings lexically. Comparison is case sensitive.
@@ -53,44 +50,14 @@ var createCompareText = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
53
50
  * 1 when x > y, -1 when x < y, and 0 when x == y.
54
51
  */
55
52
 
56
- return typed(name, {
57
- 'any, any': _string.compareText,
58
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
59
- return algorithm13(x, y, _string.compareText);
60
- },
61
- 'Array, Array': function ArrayArray(x, y) {
62
- // use matrix implementation
63
- return this(matrix(x), matrix(y)).valueOf();
64
- },
65
- 'Array, Matrix': function ArrayMatrix(x, y) {
66
- // use matrix implementation
67
- return this(matrix(x), y);
68
- },
69
- 'Matrix, Array': function MatrixArray(x, y) {
70
- // use matrix implementation
71
- return this(x, matrix(y));
72
- },
73
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
74
- return algorithm14(x, y, _string.compareText, false);
75
- },
76
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
77
- return algorithm14(y, x, _string.compareText, true);
78
- },
79
- 'Array, any': function ArrayAny(x, y) {
80
- // use matrix implementation
81
- return algorithm14(matrix(x), y, _string.compareText, false).valueOf();
82
- },
83
- 'any, Array': function anyArray(x, y) {
84
- // use matrix implementation
85
- return algorithm14(matrix(y), x, _string.compareText, true).valueOf();
86
- }
87
- });
53
+ return typed(name, _string.compareText, matrixAlgorithmSuite({
54
+ elop: _string.compareText,
55
+ Ds: true
56
+ }));
88
57
  });
89
58
  exports.createCompareText = createCompareText;
90
59
  var createCompareTextNumber = /* #__PURE__ */(0, _factory.factory)(name, ['typed'], function (_ref2) {
91
60
  var typed = _ref2.typed;
92
- return typed(name, {
93
- 'any, any': _string.compareText
94
- });
61
+ return typed(name, _string.compareText);
95
62
  });
96
63
  exports.createCompareTextNumber = createCompareTextNumber;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createCompareUnits = void 0;
7
+
8
+ var _factory = require("../../utils/factory.js");
9
+
10
+ var createCompareUnits = /* #__PURE__ */(0, _factory.factory)('compareUnits', ['typed'], function (_ref) {
11
+ var typed = _ref.typed;
12
+ return {
13
+ 'Unit, Unit': typed.referToSelf(function (self) {
14
+ return function (x, y) {
15
+ if (!x.equalBase(y)) {
16
+ throw new Error('Cannot compare units with different base');
17
+ }
18
+
19
+ return typed.find(self, [x.valueType(), y.valueType()])(x.value, y.value);
20
+ };
21
+ })
22
+ };
23
+ });
24
+ exports.createCompareUnits = createCompareUnits;
@@ -7,15 +7,13 @@ exports.createEqualNumber = exports.createEqual = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- var _algorithm = require("../../type/matrix/utils/algorithm03.js");
10
+ var _matAlgo03xDSf = require("../../type/matrix/utils/matAlgo03xDSf.js");
11
11
 
12
- var _algorithm2 = require("../../type/matrix/utils/algorithm07.js");
12
+ var _matAlgo07xSSf = require("../../type/matrix/utils/matAlgo07xSSf.js");
13
13
 
14
- var _algorithm3 = require("../../type/matrix/utils/algorithm12.js");
14
+ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
15
15
 
16
- var _algorithm4 = require("../../type/matrix/utils/algorithm13.js");
17
-
18
- var _algorithm5 = require("../../type/matrix/utils/algorithm14.js");
16
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
19
17
 
20
18
  var name = 'equal';
21
19
  var dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix'];
@@ -24,22 +22,20 @@ var createEqual = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
24
22
  matrix = _ref.matrix,
25
23
  equalScalar = _ref.equalScalar,
26
24
  DenseMatrix = _ref.DenseMatrix;
27
- var algorithm03 = (0, _algorithm.createAlgorithm03)({
25
+ var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
28
26
  typed: typed
29
27
  });
30
- var algorithm07 = (0, _algorithm2.createAlgorithm07)({
28
+ var matAlgo07xSSf = (0, _matAlgo07xSSf.createMatAlgo07xSSf)({
31
29
  typed: typed,
32
30
  DenseMatrix: DenseMatrix
33
31
  });
34
- var algorithm12 = (0, _algorithm3.createAlgorithm12)({
32
+ var matAlgo12xSfs = (0, _matAlgo12xSfs.createMatAlgo12xSfs)({
35
33
  typed: typed,
36
34
  DenseMatrix: DenseMatrix
37
35
  });
38
- var algorithm13 = (0, _algorithm4.createAlgorithm13)({
39
- typed: typed
40
- });
41
- var algorithm14 = (0, _algorithm5.createAlgorithm14)({
42
- typed: typed
36
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
37
+ typed: typed,
38
+ matrix: matrix
43
39
  });
44
40
  /**
45
41
  * Test whether two values are equal.
@@ -86,72 +82,15 @@ var createEqual = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
86
82
  * @return {boolean | Array | Matrix} Returns true when the compared values are equal, else returns false
87
83
  */
88
84
 
89
- return typed(name, {
90
- 'any, any': function anyAny(x, y) {
91
- // strict equality for null and undefined?
92
- if (x === null) {
93
- return y === null;
94
- }
95
-
96
- if (y === null) {
97
- return x === null;
98
- }
99
-
100
- if (x === undefined) {
101
- return y === undefined;
102
- }
103
-
104
- if (y === undefined) {
105
- return x === undefined;
106
- }
107
-
108
- return equalScalar(x, y);
109
- },
110
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
111
- return algorithm07(x, y, equalScalar);
112
- },
113
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
114
- return algorithm03(y, x, equalScalar, true);
115
- },
116
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
117
- return algorithm03(x, y, equalScalar, false);
118
- },
119
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
120
- return algorithm13(x, y, equalScalar);
121
- },
122
- 'Array, Array': function ArrayArray(x, y) {
123
- // use matrix implementation
124
- return this(matrix(x), matrix(y)).valueOf();
125
- },
126
- 'Array, Matrix': function ArrayMatrix(x, y) {
127
- // use matrix implementation
128
- return this(matrix(x), y);
129
- },
130
- 'Matrix, Array': function MatrixArray(x, y) {
131
- // use matrix implementation
132
- return this(x, matrix(y));
133
- },
134
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
135
- return algorithm12(x, y, equalScalar, false);
136
- },
137
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
138
- return algorithm14(x, y, equalScalar, false);
139
- },
140
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
141
- return algorithm12(y, x, equalScalar, true);
142
- },
143
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
144
- return algorithm14(y, x, equalScalar, true);
145
- },
146
- 'Array, any': function ArrayAny(x, y) {
147
- // use matrix implementation
148
- return algorithm14(matrix(x), y, equalScalar, false).valueOf();
149
- },
150
- 'any, Array': function anyArray(x, y) {
151
- // use matrix implementation
152
- return algorithm14(matrix(y), x, equalScalar, true).valueOf();
153
- }
154
- });
85
+ return typed(name, createEqualNumber({
86
+ typed: typed,
87
+ equalScalar: equalScalar
88
+ }), matrixAlgorithmSuite({
89
+ elop: equalScalar,
90
+ SS: matAlgo07xSSf,
91
+ DS: matAlgo03xDSf,
92
+ Ss: matAlgo12xSfs
93
+ }));
155
94
  });
156
95
  exports.createEqual = createEqual;
157
96
  var createEqualNumber = (0, _factory.factory)(name, ['typed', 'equalScalar'], function (_ref2) {
@@ -13,12 +13,16 @@ var _factory = require("../../utils/factory.js");
13
13
 
14
14
  var _complex = require("../../utils/complex.js");
15
15
 
16
+ var _compareUnits = require("./compareUnits.js");
17
+
16
18
  var name = 'equalScalar';
17
19
  var dependencies = ['typed', 'config'];
18
20
  var createEqualScalar = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
19
21
  var typed = _ref.typed,
20
22
  config = _ref.config;
21
-
23
+ var compareUnits = (0, _compareUnits.createCompareUnits)({
24
+ typed: typed
25
+ });
22
26
  /**
23
27
  * Test whether two scalar values are nearly equal.
24
28
  *
@@ -27,6 +31,7 @@ var createEqualScalar = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
27
31
  * @return {boolean} Returns true when the compared values are equal, else returns false
28
32
  * @private
29
33
  */
34
+
30
35
  return typed(name, {
31
36
  'boolean, boolean': function booleanBoolean(x, y) {
32
37
  return x === y;
@@ -42,15 +47,8 @@ var createEqualScalar = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
42
47
  },
43
48
  'Complex, Complex': function ComplexComplex(x, y) {
44
49
  return (0, _complex.complexEquals)(x, y, config.epsilon);
45
- },
46
- 'Unit, Unit': function UnitUnit(x, y) {
47
- if (!x.equalBase(y)) {
48
- throw new Error('Cannot compare units with different base');
49
- }
50
-
51
- return this(x.value, y.value);
52
50
  }
53
- });
51
+ }, compareUnits);
54
52
  });
55
53
  exports.createEqualScalar = createEqualScalar;
56
54
  var createEqualScalarNumber = (0, _factory.factory)(name, ['typed', 'config'], function (_ref2) {
@@ -11,15 +11,15 @@ var _number = require("../../utils/number.js");
11
11
 
12
12
  var _factory = require("../../utils/factory.js");
13
13
 
14
- var _algorithm = require("../../type/matrix/utils/algorithm03.js");
14
+ var _matAlgo03xDSf = require("../../type/matrix/utils/matAlgo03xDSf.js");
15
15
 
16
- var _algorithm2 = require("../../type/matrix/utils/algorithm07.js");
16
+ var _matAlgo07xSSf = require("../../type/matrix/utils/matAlgo07xSSf.js");
17
17
 
18
- var _algorithm3 = require("../../type/matrix/utils/algorithm12.js");
18
+ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
19
19
 
20
- var _algorithm4 = require("../../type/matrix/utils/algorithm14.js");
20
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
21
21
 
22
- var _algorithm5 = require("../../type/matrix/utils/algorithm13.js");
22
+ var _compareUnits = require("./compareUnits.js");
23
23
 
24
24
  var name = 'larger';
25
25
  var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
@@ -28,21 +28,22 @@ var createLarger = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
28
28
  config = _ref.config,
29
29
  matrix = _ref.matrix,
30
30
  DenseMatrix = _ref.DenseMatrix;
31
- var algorithm03 = (0, _algorithm.createAlgorithm03)({
31
+ var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
32
32
  typed: typed
33
33
  });
34
- var algorithm07 = (0, _algorithm2.createAlgorithm07)({
34
+ var matAlgo07xSSf = (0, _matAlgo07xSSf.createMatAlgo07xSSf)({
35
35
  typed: typed,
36
36
  DenseMatrix: DenseMatrix
37
37
  });
38
- var algorithm12 = (0, _algorithm3.createAlgorithm12)({
38
+ var matAlgo12xSfs = (0, _matAlgo12xSfs.createMatAlgo12xSfs)({
39
39
  typed: typed,
40
40
  DenseMatrix: DenseMatrix
41
41
  });
42
- var algorithm13 = (0, _algorithm5.createAlgorithm13)({
43
- typed: typed
42
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
43
+ typed: typed,
44
+ matrix: matrix
44
45
  });
45
- var algorithm14 = (0, _algorithm4.createAlgorithm14)({
46
+ var compareUnits = (0, _compareUnits.createCompareUnits)({
46
47
  typed: typed
47
48
  });
48
49
  /**
@@ -77,13 +78,13 @@ var createLarger = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
77
78
  * @return {boolean | Array | Matrix} Returns true when the x is larger than y, else returns false
78
79
  */
79
80
 
80
- return typed(name, {
81
+ return typed(name, createLargerNumber({
82
+ typed: typed,
83
+ config: config
84
+ }), {
81
85
  'boolean, boolean': function booleanBoolean(x, y) {
82
86
  return x > y;
83
87
  },
84
- 'number, number': function numberNumber(x, y) {
85
- return x > y && !(0, _number.nearlyEqual)(x, y, config.epsilon);
86
- },
87
88
  'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
88
89
  return x.gt(y) && !(0, _nearlyEqual.nearlyEqual)(x, y, config.epsilon);
89
90
  },
@@ -92,59 +93,12 @@ var createLarger = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
92
93
  },
93
94
  'Complex, Complex': function ComplexComplex() {
94
95
  throw new TypeError('No ordering relation is defined for complex numbers');
95
- },
96
- 'Unit, Unit': function UnitUnit(x, y) {
97
- if (!x.equalBase(y)) {
98
- throw new Error('Cannot compare units with different base');
99
- }
100
-
101
- return this(x.value, y.value);
102
- },
103
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
104
- return algorithm07(x, y, this);
105
- },
106
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
107
- return algorithm03(y, x, this, true);
108
- },
109
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
110
- return algorithm03(x, y, this, false);
111
- },
112
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
113
- return algorithm13(x, y, this);
114
- },
115
- 'Array, Array': function ArrayArray(x, y) {
116
- // use matrix implementation
117
- return this(matrix(x), matrix(y)).valueOf();
118
- },
119
- 'Array, Matrix': function ArrayMatrix(x, y) {
120
- // use matrix implementation
121
- return this(matrix(x), y);
122
- },
123
- 'Matrix, Array': function MatrixArray(x, y) {
124
- // use matrix implementation
125
- return this(x, matrix(y));
126
- },
127
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
128
- return algorithm12(x, y, this, false);
129
- },
130
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
131
- return algorithm14(x, y, this, false);
132
- },
133
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
134
- return algorithm12(y, x, this, true);
135
- },
136
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
137
- return algorithm14(y, x, this, true);
138
- },
139
- 'Array, any': function ArrayAny(x, y) {
140
- // use matrix implementation
141
- return algorithm14(matrix(x), y, this, false).valueOf();
142
- },
143
- 'any, Array': function anyArray(x, y) {
144
- // use matrix implementation
145
- return algorithm14(matrix(y), x, this, true).valueOf();
146
96
  }
147
- });
97
+ }, compareUnits, matrixAlgorithmSuite({
98
+ SS: matAlgo07xSSf,
99
+ DS: matAlgo03xDSf,
100
+ Ss: matAlgo12xSfs
101
+ }));
148
102
  });
149
103
  exports.createLarger = createLarger;
150
104
  var createLargerNumber = /* #__PURE__ */(0, _factory.factory)(name, ['typed', 'config'], function (_ref2) {