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
@@ -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 = 'largerEq';
25
25
  var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
@@ -28,21 +28,22 @@ var createLargerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
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
  /**
@@ -73,13 +74,13 @@ var createLargerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
73
74
  * @return {boolean | Array | Matrix} Returns true when the x is larger or equal to y, else returns false
74
75
  */
75
76
 
76
- return typed(name, {
77
+ return typed(name, createLargerEqNumber({
78
+ typed: typed,
79
+ config: config
80
+ }), {
77
81
  'boolean, boolean': function booleanBoolean(x, y) {
78
82
  return x >= y;
79
83
  },
80
- 'number, number': function numberNumber(x, y) {
81
- return x >= y || (0, _number.nearlyEqual)(x, y, config.epsilon);
82
- },
83
84
  'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
84
85
  return x.gte(y) || (0, _nearlyEqual.nearlyEqual)(x, y, config.epsilon);
85
86
  },
@@ -88,59 +89,12 @@ var createLargerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
88
89
  },
89
90
  'Complex, Complex': function ComplexComplex() {
90
91
  throw new TypeError('No ordering relation is defined for complex numbers');
91
- },
92
- 'Unit, Unit': function UnitUnit(x, y) {
93
- if (!x.equalBase(y)) {
94
- throw new Error('Cannot compare units with different base');
95
- }
96
-
97
- return this(x.value, y.value);
98
- },
99
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
100
- return algorithm07(x, y, this);
101
- },
102
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
103
- return algorithm03(y, x, this, true);
104
- },
105
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
106
- return algorithm03(x, y, this, false);
107
- },
108
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
109
- return algorithm13(x, y, this);
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, this, false);
125
- },
126
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
127
- return algorithm14(x, y, this, false);
128
- },
129
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
130
- return algorithm12(y, x, this, true);
131
- },
132
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
133
- return algorithm14(y, x, this, true);
134
- },
135
- 'Array, any': function ArrayAny(x, y) {
136
- // use matrix implementation
137
- return algorithm14(matrix(x), y, this, false).valueOf();
138
- },
139
- 'any, Array': function anyArray(x, y) {
140
- // use matrix implementation
141
- return algorithm14(matrix(y), x, this, true).valueOf();
142
92
  }
143
- });
93
+ }, compareUnits, matrixAlgorithmSuite({
94
+ SS: matAlgo07xSSf,
95
+ DS: matAlgo03xDSf,
96
+ Ss: matAlgo12xSfs
97
+ }));
144
98
  });
145
99
  exports.createLargerEq = createLargerEq;
146
100
  var createLargerEqNumber = /* #__PURE__ */(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 = 'smaller';
25
25
  var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
@@ -28,21 +28,22 @@ var createSmaller = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
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 createSmaller = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
77
78
  * @return {boolean | Array | Matrix} Returns true when the x is smaller than y, else returns false
78
79
  */
79
80
 
80
- return typed(name, {
81
+ return typed(name, createSmallerNumber({
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.lt(y) && !(0, _nearlyEqual.nearlyEqual)(x, y, config.epsilon);
89
90
  },
@@ -92,59 +93,12 @@ var createSmaller = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
92
93
  },
93
94
  'Complex, Complex': function ComplexComplex(x, y) {
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.createSmaller = createSmaller;
150
104
  var createSmallerNumber = /* #__PURE__ */(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 = 'smallerEq';
25
25
  var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
@@ -28,21 +28,22 @@ var createSmallerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
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
  /**
@@ -73,13 +74,13 @@ var createSmallerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
73
74
  * @return {boolean | Array | Matrix} Returns true when the x is smaller than y, else returns false
74
75
  */
75
76
 
76
- return typed(name, {
77
+ return typed(name, createSmallerEqNumber({
78
+ typed: typed,
79
+ config: config
80
+ }), {
77
81
  'boolean, boolean': function booleanBoolean(x, y) {
78
82
  return x <= y;
79
83
  },
80
- 'number, number': function numberNumber(x, y) {
81
- return x <= y || (0, _number.nearlyEqual)(x, y, config.epsilon);
82
- },
83
84
  'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
84
85
  return x.lte(y) || (0, _nearlyEqual.nearlyEqual)(x, y, config.epsilon);
85
86
  },
@@ -88,59 +89,12 @@ var createSmallerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
88
89
  },
89
90
  'Complex, Complex': function ComplexComplex() {
90
91
  throw new TypeError('No ordering relation is defined for complex numbers');
91
- },
92
- 'Unit, Unit': function UnitUnit(x, y) {
93
- if (!x.equalBase(y)) {
94
- throw new Error('Cannot compare units with different base');
95
- }
96
-
97
- return this(x.value, y.value);
98
- },
99
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
100
- return algorithm07(x, y, this);
101
- },
102
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
103
- return algorithm03(y, x, this, true);
104
- },
105
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
106
- return algorithm03(x, y, this, false);
107
- },
108
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
109
- return algorithm13(x, y, this);
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, this, false);
125
- },
126
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
127
- return algorithm14(x, y, this, false);
128
- },
129
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
130
- return algorithm12(y, x, this, true);
131
- },
132
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
133
- return algorithm14(y, x, this, true);
134
- },
135
- 'Array, any': function ArrayAny(x, y) {
136
- // use matrix implementation
137
- return algorithm14(matrix(x), y, this, false).valueOf();
138
- },
139
- 'any, Array': function anyArray(x, y) {
140
- // use matrix implementation
141
- return algorithm14(matrix(y), x, this, true).valueOf();
142
92
  }
143
- });
93
+ }, compareUnits, matrixAlgorithmSuite({
94
+ SS: matAlgo07xSSf,
95
+ DS: matAlgo03xDSf,
96
+ Ss: matAlgo12xSfs
97
+ }));
144
98
  });
145
99
  exports.createSmallerEq = createSmallerEq;
146
100
  var createSmallerEqNumber = /* #__PURE__ */(0, _factory.factory)(name, ['typed', 'config'], function (_ref2) {
@@ -7,15 +7,13 @@ exports.createUnequalNumber = exports.createUnequal = 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/algorithm14.js");
17
-
18
- var _algorithm5 = require("../../type/matrix/utils/algorithm13.js");
16
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
19
17
 
20
18
  var name = 'unequal';
21
19
  var dependencies = ['typed', 'config', 'equalScalar', 'matrix', 'DenseMatrix'];
@@ -25,22 +23,20 @@ var createUnequal = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
25
23
  equalScalar = _ref.equalScalar,
26
24
  matrix = _ref.matrix,
27
25
  DenseMatrix = _ref.DenseMatrix;
28
- var algorithm03 = (0, _algorithm.createAlgorithm03)({
26
+ var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
29
27
  typed: typed
30
28
  });
31
- var algorithm07 = (0, _algorithm2.createAlgorithm07)({
29
+ var matAlgo07xSSf = (0, _matAlgo07xSSf.createMatAlgo07xSSf)({
32
30
  typed: typed,
33
31
  DenseMatrix: DenseMatrix
34
32
  });
35
- var algorithm12 = (0, _algorithm3.createAlgorithm12)({
33
+ var matAlgo12xSfs = (0, _matAlgo12xSfs.createMatAlgo12xSfs)({
36
34
  typed: typed,
37
35
  DenseMatrix: DenseMatrix
38
36
  });
39
- var algorithm13 = (0, _algorithm5.createAlgorithm13)({
40
- typed: typed
41
- });
42
- var algorithm14 = (0, _algorithm4.createAlgorithm14)({
43
- typed: typed
37
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
38
+ typed: typed,
39
+ matrix: matrix
44
40
  });
45
41
  /**
46
42
  * Test whether two values are unequal.
@@ -86,72 +82,15 @@ var createUnequal = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
86
82
  * @return {boolean | Array | Matrix} Returns true when the compared values are unequal, else returns false
87
83
  */
88
84
 
89
- return typed('unequal', {
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 _unequal(x, y);
109
- },
110
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
111
- return algorithm07(x, y, _unequal);
112
- },
113
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
114
- return algorithm03(y, x, _unequal, true);
115
- },
116
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
117
- return algorithm03(x, y, _unequal, false);
118
- },
119
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
120
- return algorithm13(x, y, _unequal);
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, _unequal, false);
136
- },
137
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
138
- return algorithm14(x, y, _unequal, false);
139
- },
140
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
141
- return algorithm12(y, x, _unequal, true);
142
- },
143
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
144
- return algorithm14(y, x, _unequal, true);
145
- },
146
- 'Array, any': function ArrayAny(x, y) {
147
- // use matrix implementation
148
- return algorithm14(matrix(x), y, _unequal, false).valueOf();
149
- },
150
- 'any, Array': function anyArray(x, y) {
151
- // use matrix implementation
152
- return algorithm14(matrix(y), x, _unequal, true).valueOf();
153
- }
154
- });
85
+ return typed(name, createUnequalNumber({
86
+ typed: typed,
87
+ equalScalar: equalScalar
88
+ }), matrixAlgorithmSuite({
89
+ elop: _unequal,
90
+ SS: matAlgo07xSSf,
91
+ DS: matAlgo03xDSf,
92
+ Ss: matAlgo12xSfs
93
+ }));
155
94
 
156
95
  function _unequal(x, y) {
157
96
  return !equalScalar(x, y);
@@ -59,9 +59,11 @@ var createErf = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
59
59
 
60
60
  return (0, _number.sign)(x) * (1 - erfc3(y));
61
61
  },
62
- 'Array | Matrix': function ArrayMatrix(n) {
63
- return (0, _collection.deepMap)(n, this);
64
- } // TODO: For complex numbers, use the approximation for the Faddeeva function
62
+ 'Array | Matrix': typed.referToSelf(function (self) {
63
+ return function (n) {
64
+ return (0, _collection.deepMap)(n, self);
65
+ };
66
+ }) // TODO: For complex numbers, use the approximation for the Faddeeva function
65
67
  // from "More Efficient Computation of the Complex Error Function" (AMS)
66
68
 
67
69
  });
@@ -7,10 +7,13 @@ exports.createStd = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
+ var _is = require("../../utils/is.js");
11
+
10
12
  var name = 'std';
11
- var dependencies = ['typed', 'sqrt', 'variance'];
13
+ var dependencies = ['typed', 'map', 'sqrt', 'variance'];
12
14
  var createStd = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
13
15
  var typed = _ref.typed,
16
+ map = _ref.map,
14
17
  sqrt = _ref.sqrt,
15
18
  variance = _ref.variance;
16
19
 
@@ -87,7 +90,13 @@ var createStd = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
87
90
  }
88
91
 
89
92
  try {
90
- return sqrt(variance.apply(null, arguments));
93
+ var v = variance.apply(null, arguments);
94
+
95
+ if ((0, _is.isCollection)(v)) {
96
+ return map(v, sqrt);
97
+ } else {
98
+ return sqrt(v);
99
+ }
91
100
  } catch (err) {
92
101
  if (err instanceof TypeError && err.message.indexOf(' variance') !== -1) {
93
102
  throw new TypeError(err.message.replace(' variance', ' std'));
@@ -7,8 +7,6 @@ exports.createAcos = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- var _collection = require("../../utils/collection.js");
11
-
12
10
  var name = 'acos';
13
11
  var dependencies = ['typed', 'config', 'Complex'];
14
12
  var createAcos = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
@@ -19,7 +17,8 @@ var createAcos = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
19
17
  /**
20
18
  * Calculate the inverse cosine of a value.
21
19
  *
22
- * For matrices, the function is evaluated element wise.
20
+ * To avoid confusion with the matrix arccosine, this function does not
21
+ * apply to matrices.
23
22
  *
24
23
  * Syntax:
25
24
  *
@@ -36,8 +35,8 @@ var createAcos = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
36
35
  *
37
36
  * cos, atan, asin
38
37
  *
39
- * @param {number | BigNumber | Complex | Array | Matrix} x Function input
40
- * @return {number | BigNumber | Complex | Array | Matrix} The arc cosine of x
38
+ * @param {number | BigNumber | Complex} x Function input
39
+ * @return {number | BigNumber | Complex} The arc cosine of x
41
40
  */
42
41
  return typed(name, {
43
42
  number: function number(x) {
@@ -52,9 +51,6 @@ var createAcos = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
52
51
  },
53
52
  BigNumber: function BigNumber(x) {
54
53
  return x.acos();
55
- },
56
- 'Array | Matrix': function ArrayMatrix(x) {
57
- return (0, _collection.deepMap)(x, this);
58
54
  }
59
55
  });
60
56
  });
@@ -7,8 +7,6 @@ exports.createAcosh = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- var _collection = require("../../utils/collection.js");
11
-
12
10
  var _index = require("../../plain/number/index.js");
13
11
 
14
12
  var name = 'acosh';
@@ -36,8 +34,8 @@ var createAcosh = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
36
34
  *
37
35
  * cosh, asinh, atanh
38
36
  *
39
- * @param {number | Complex | Unit | Array | Matrix} x Function input
40
- * @return {number | Complex | Array | Matrix} Hyperbolic arccosine of x
37
+ * @param {number | BigNumber | Complex} x Function input
38
+ * @return {number | BigNumber | Complex} Hyperbolic arccosine of x
41
39
  */
42
40
  return typed(name, {
43
41
  number: function number(x) {
@@ -56,9 +54,6 @@ var createAcosh = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
56
54
  },
57
55
  BigNumber: function BigNumber(x) {
58
56
  return x.acosh();
59
- },
60
- 'Array | Matrix': function ArrayMatrix(x) {
61
- return (0, _collection.deepMap)(x, this);
62
57
  }
63
58
  });
64
59
  });