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
@@ -40,18 +40,17 @@ var createConj = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
40
40
  * The complex conjugate of x
41
41
  */
42
42
  return typed(name, {
43
- number: function number(x) {
44
- return x;
45
- },
46
- BigNumber: function BigNumber(x) {
43
+ 'number | BigNumber | Fraction': function numberBigNumberFraction(x) {
47
44
  return x;
48
45
  },
49
46
  Complex: function Complex(x) {
50
47
  return x.conjugate();
51
48
  },
52
- 'Array | Matrix': function ArrayMatrix(x) {
53
- return (0, _collection.deepMap)(x, this);
54
- }
49
+ 'Array | Matrix': typed.referToSelf(function (self) {
50
+ return function (x) {
51
+ return (0, _collection.deepMap)(x, self);
52
+ };
53
+ })
55
54
  });
56
55
  });
57
56
  exports.createConj = createConj;
@@ -42,21 +42,20 @@ var createIm = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function
42
42
  * @return {number | BigNumber | Array | Matrix} The imaginary part of x
43
43
  */
44
44
  return typed(name, {
45
- number: function number(x) {
45
+ number: function number() {
46
46
  return 0;
47
47
  },
48
- BigNumber: function BigNumber(x) {
49
- return x.mul(0);
50
- },
51
- Fraction: function Fraction(x) {
48
+ 'BigNumber | Fraction': function BigNumberFraction(x) {
52
49
  return x.mul(0);
53
50
  },
54
51
  Complex: function Complex(x) {
55
52
  return x.im;
56
53
  },
57
- 'Array | Matrix': function ArrayMatrix(x) {
58
- return (0, _collection.deepMap)(x, this);
59
- }
54
+ 'Array | Matrix': typed.referToSelf(function (self) {
55
+ return function (x) {
56
+ return (0, _collection.deepMap)(x, self);
57
+ };
58
+ })
60
59
  });
61
60
  });
62
61
  exports.createIm = createIm;
@@ -42,21 +42,17 @@ var createRe = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function
42
42
  * @return {number | BigNumber | Array | Matrix} The real part of x
43
43
  */
44
44
  return typed(name, {
45
- number: function number(x) {
46
- return x;
47
- },
48
- BigNumber: function BigNumber(x) {
49
- return x;
50
- },
51
- Fraction: function Fraction(x) {
45
+ 'number | BigNumber | Fraction': function numberBigNumberFraction(x) {
52
46
  return x;
53
47
  },
54
48
  Complex: function Complex(x) {
55
49
  return x.re;
56
50
  },
57
- 'Array | Matrix': function ArrayMatrix(x) {
58
- return (0, _collection.deepMap)(x, this);
59
- }
51
+ 'Array | Matrix': typed.referToSelf(function (self) {
52
+ return function (x) {
53
+ return (0, _collection.deepMap)(x, self);
54
+ };
55
+ })
60
56
  });
61
57
  });
62
58
  exports.createRe = createRe;
@@ -5,18 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createAnd = void 0;
7
7
 
8
- var _algorithm = require("../../type/matrix/utils/algorithm02.js");
8
+ var _matAlgo02xDS = require("../../type/matrix/utils/matAlgo02xDS0.js");
9
9
 
10
- var _algorithm2 = require("../../type/matrix/utils/algorithm11.js");
10
+ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
11
11
 
12
- var _algorithm3 = require("../../type/matrix/utils/algorithm13.js");
12
+ var _matAlgo14xDs = require("../../type/matrix/utils/matAlgo14xDs.js");
13
13
 
14
- var _algorithm4 = require("../../type/matrix/utils/algorithm14.js");
15
-
16
- var _algorithm5 = require("../../type/matrix/utils/algorithm06.js");
14
+ var _matAlgo06xS0S = require("../../type/matrix/utils/matAlgo06xS0S0.js");
17
15
 
18
16
  var _factory = require("../../utils/factory.js");
19
17
 
18
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
19
+
20
20
  var _index = require("../../plain/number/index.js");
21
21
 
22
22
  var name = 'and';
@@ -27,23 +27,24 @@ var createAnd = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
27
27
  equalScalar = _ref.equalScalar,
28
28
  zeros = _ref.zeros,
29
29
  not = _ref.not;
30
- var algorithm02 = (0, _algorithm.createAlgorithm02)({
30
+ var matAlgo02xDS0 = (0, _matAlgo02xDS.createMatAlgo02xDS0)({
31
31
  typed: typed,
32
32
  equalScalar: equalScalar
33
33
  });
34
- var algorithm06 = (0, _algorithm5.createAlgorithm06)({
34
+ var matAlgo06xS0S0 = (0, _matAlgo06xS0S.createMatAlgo06xS0S0)({
35
35
  typed: typed,
36
36
  equalScalar: equalScalar
37
37
  });
38
- var algorithm11 = (0, _algorithm2.createAlgorithm11)({
38
+ var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
39
39
  typed: typed,
40
40
  equalScalar: equalScalar
41
41
  });
42
- var algorithm13 = (0, _algorithm3.createAlgorithm13)({
42
+ var matAlgo14xDs = (0, _matAlgo14xDs.createMatAlgo14xDs)({
43
43
  typed: typed
44
44
  });
45
- var algorithm14 = (0, _algorithm4.createAlgorithm14)({
46
- typed: typed
45
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
46
+ typed: typed,
47
+ matrix: matrix
47
48
  });
48
49
  /**
49
50
  * Logical `and`. Test whether two values are both defined with a nonzero/nonempty value.
@@ -82,77 +83,70 @@ var createAnd = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
82
83
  'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
83
84
  return !x.isZero() && !y.isZero() && !x.isNaN() && !y.isNaN();
84
85
  },
85
- 'Unit, Unit': function UnitUnit(x, y) {
86
- return this(x.value || 0, y.value || 0);
87
- },
88
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
89
- return algorithm06(x, y, this, false);
90
- },
91
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
92
- return algorithm02(y, x, this, true);
93
- },
94
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
95
- return algorithm02(x, y, this, false);
96
- },
97
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
98
- return algorithm13(x, y, this);
99
- },
100
- 'Array, Array': function ArrayArray(x, y) {
101
- // use matrix implementation
102
- return this(matrix(x), matrix(y)).valueOf();
103
- },
104
- 'Array, Matrix': function ArrayMatrix(x, y) {
105
- // use matrix implementation
106
- return this(matrix(x), y);
107
- },
108
- 'Matrix, Array': function MatrixArray(x, y) {
109
- // use matrix implementation
110
- return this(x, matrix(y));
111
- },
112
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
113
- // check scalar
114
- if (not(y)) {
115
- // return zero matrix
116
- return zeros(x.size(), x.storage());
117
- }
86
+ 'Unit, Unit': typed.referToSelf(function (self) {
87
+ return function (x, y) {
88
+ return self(x.value || 0, y.value || 0);
89
+ };
90
+ }),
91
+ 'SparseMatrix, any': typed.referToSelf(function (self) {
92
+ return function (x, y) {
93
+ // check scalar
94
+ if (not(y)) {
95
+ // return zero matrix
96
+ return zeros(x.size(), x.storage());
97
+ }
118
98
 
119
- return algorithm11(x, y, this, false);
120
- },
121
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
122
- // check scalar
123
- if (not(y)) {
124
- // return zero matrix
125
- return zeros(x.size(), x.storage());
126
- }
99
+ return matAlgo11xS0s(x, y, self, false);
100
+ };
101
+ }),
102
+ 'DenseMatrix, any': typed.referToSelf(function (self) {
103
+ return function (x, y) {
104
+ // check scalar
105
+ if (not(y)) {
106
+ // return zero matrix
107
+ return zeros(x.size(), x.storage());
108
+ }
127
109
 
128
- return algorithm14(x, y, this, false);
129
- },
130
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
131
- // check scalar
132
- if (not(x)) {
133
- // return zero matrix
134
- return zeros(x.size(), x.storage());
135
- }
110
+ return matAlgo14xDs(x, y, self, false);
111
+ };
112
+ }),
113
+ 'any, SparseMatrix': typed.referToSelf(function (self) {
114
+ return function (x, y) {
115
+ // check scalar
116
+ if (not(x)) {
117
+ // return zero matrix
118
+ return zeros(x.size(), x.storage());
119
+ }
136
120
 
137
- return algorithm11(y, x, this, true);
138
- },
139
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
140
- // check scalar
141
- if (not(x)) {
142
- // return zero matrix
143
- return zeros(x.size(), x.storage());
144
- }
121
+ return matAlgo11xS0s(y, x, self, true);
122
+ };
123
+ }),
124
+ 'any, DenseMatrix': typed.referToSelf(function (self) {
125
+ return function (x, y) {
126
+ // check scalar
127
+ if (not(x)) {
128
+ // return zero matrix
129
+ return zeros(x.size(), x.storage());
130
+ }
145
131
 
146
- return algorithm14(y, x, this, true);
147
- },
148
- 'Array, any': function ArrayAny(x, y) {
149
- // use matrix implementation
150
- return this(matrix(x), y).valueOf();
151
- },
152
- 'any, Array': function anyArray(x, y) {
153
- // use matrix implementation
154
- return this(x, matrix(y)).valueOf();
155
- }
156
- });
132
+ return matAlgo14xDs(y, x, self, true);
133
+ };
134
+ }),
135
+ 'Array, any': typed.referToSelf(function (self) {
136
+ return function (x, y) {
137
+ // use matrix implementation
138
+ return self(matrix(x), y).valueOf();
139
+ };
140
+ }),
141
+ 'any, Array': typed.referToSelf(function (self) {
142
+ return function (x, y) {
143
+ // use matrix implementation
144
+ return self(x, matrix(y)).valueOf();
145
+ };
146
+ })
147
+ }, matrixAlgorithmSuite({
148
+ SS: matAlgo06xS0S0,
149
+ DS: matAlgo02xDS0
150
+ }));
157
151
  });
158
152
  exports.createAnd = createAnd;
@@ -42,6 +42,9 @@ var createNot = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
42
42
  * Returns true when input is a zero or empty value.
43
43
  */
44
44
  return typed(name, {
45
+ 'null | undefined': function nullUndefined() {
46
+ return true;
47
+ },
45
48
  number: _index.notNumber,
46
49
  Complex: function Complex(x) {
47
50
  return x.re === 0 && x.im === 0;
@@ -49,12 +52,16 @@ var createNot = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
49
52
  BigNumber: function BigNumber(x) {
50
53
  return x.isZero() || x.isNaN();
51
54
  },
52
- Unit: function Unit(x) {
53
- return x.value !== null ? this(x.value) : true;
54
- },
55
- 'Array | Matrix': function ArrayMatrix(x) {
56
- return (0, _collection.deepMap)(x, this);
57
- }
55
+ Unit: typed.referToSelf(function (self) {
56
+ return function (x) {
57
+ return typed.find(self, x.valueType())(x.value);
58
+ };
59
+ }),
60
+ 'Array | Matrix': typed.referToSelf(function (self) {
61
+ return function (x) {
62
+ return (0, _collection.deepMap)(x, self);
63
+ };
64
+ })
58
65
  });
59
66
  });
60
67
  exports.createNot = createNot;
@@ -5,18 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createOr = void 0;
7
7
 
8
- var _algorithm = require("../../type/matrix/utils/algorithm03.js");
8
+ var _matAlgo03xDSf = require("../../type/matrix/utils/matAlgo03xDSf.js");
9
9
 
10
- var _algorithm2 = require("../../type/matrix/utils/algorithm12.js");
10
+ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
11
11
 
12
- var _algorithm3 = require("../../type/matrix/utils/algorithm13.js");
13
-
14
- var _algorithm4 = require("../../type/matrix/utils/algorithm14.js");
15
-
16
- var _algorithm5 = require("../../type/matrix/utils/algorithm05.js");
12
+ var _matAlgo05xSfSf = require("../../type/matrix/utils/matAlgo05xSfSf.js");
17
13
 
18
14
  var _factory = require("../../utils/factory.js");
19
15
 
16
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
17
+
20
18
  var _index = require("../../plain/number/index.js");
21
19
 
22
20
  var name = 'or';
@@ -26,22 +24,20 @@ var createOr = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function
26
24
  matrix = _ref.matrix,
27
25
  equalScalar = _ref.equalScalar,
28
26
  DenseMatrix = _ref.DenseMatrix;
29
- var algorithm03 = (0, _algorithm.createAlgorithm03)({
27
+ var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
30
28
  typed: typed
31
29
  });
32
- var algorithm05 = (0, _algorithm5.createAlgorithm05)({
30
+ var matAlgo05xSfSf = (0, _matAlgo05xSfSf.createMatAlgo05xSfSf)({
33
31
  typed: typed,
34
32
  equalScalar: equalScalar
35
33
  });
36
- var algorithm12 = (0, _algorithm2.createAlgorithm12)({
34
+ var matAlgo12xSfs = (0, _matAlgo12xSfs.createMatAlgo12xSfs)({
37
35
  typed: typed,
38
36
  DenseMatrix: DenseMatrix
39
37
  });
40
- var algorithm13 = (0, _algorithm3.createAlgorithm13)({
41
- typed: typed
42
- });
43
- var algorithm14 = (0, _algorithm4.createAlgorithm14)({
44
- typed: typed
38
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
39
+ typed: typed,
40
+ matrix: matrix
45
41
  });
46
42
  /**
47
43
  * Logical `or`. Test if at least one value is defined with a nonzero/nonempty value.
@@ -80,53 +76,15 @@ var createOr = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function
80
76
  'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
81
77
  return !x.isZero() && !x.isNaN() || !y.isZero() && !y.isNaN();
82
78
  },
83
- 'Unit, Unit': function UnitUnit(x, y) {
84
- return this(x.value || 0, y.value || 0);
85
- },
86
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
87
- return algorithm05(x, y, this);
88
- },
89
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
90
- return algorithm03(y, x, this, true);
91
- },
92
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
93
- return algorithm03(x, y, this, false);
94
- },
95
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
96
- return algorithm13(x, y, this);
97
- },
98
- 'Array, Array': function ArrayArray(x, y) {
99
- // use matrix implementation
100
- return this(matrix(x), matrix(y)).valueOf();
101
- },
102
- 'Array, Matrix': function ArrayMatrix(x, y) {
103
- // use matrix implementation
104
- return this(matrix(x), y);
105
- },
106
- 'Matrix, Array': function MatrixArray(x, y) {
107
- // use matrix implementation
108
- return this(x, matrix(y));
109
- },
110
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
111
- return algorithm12(x, y, this, false);
112
- },
113
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
114
- return algorithm14(x, y, this, false);
115
- },
116
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
117
- return algorithm12(y, x, this, true);
118
- },
119
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
120
- return algorithm14(y, x, this, true);
121
- },
122
- 'Array, any': function ArrayAny(x, y) {
123
- // use matrix implementation
124
- return algorithm14(matrix(x), y, this, false).valueOf();
125
- },
126
- 'any, Array': function anyArray(x, y) {
127
- // use matrix implementation
128
- return algorithm14(matrix(y), x, this, true).valueOf();
129
- }
130
- });
79
+ 'Unit, Unit': typed.referToSelf(function (self) {
80
+ return function (x, y) {
81
+ return self(x.value || 0, y.value || 0);
82
+ };
83
+ })
84
+ }, matrixAlgorithmSuite({
85
+ SS: matAlgo05xSfSf,
86
+ DS: matAlgo03xDSf,
87
+ Ss: matAlgo12xSfs
88
+ }));
131
89
  });
132
90
  exports.createOr = createOr;
@@ -5,18 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createXor = void 0;
7
7
 
8
- var _algorithm = require("../../type/matrix/utils/algorithm03.js");
8
+ var _matAlgo03xDSf = require("../../type/matrix/utils/matAlgo03xDSf.js");
9
9
 
10
- var _algorithm2 = require("../../type/matrix/utils/algorithm07.js");
10
+ var _matAlgo07xSSf = require("../../type/matrix/utils/matAlgo07xSSf.js");
11
11
 
12
- var _algorithm3 = require("../../type/matrix/utils/algorithm12.js");
13
-
14
- var _algorithm4 = require("../../type/matrix/utils/algorithm13.js");
15
-
16
- var _algorithm5 = require("../../type/matrix/utils/algorithm14.js");
12
+ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
17
13
 
18
14
  var _factory = require("../../utils/factory.js");
19
15
 
16
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
17
+
20
18
  var _index = require("../../plain/number/index.js");
21
19
 
22
20
  var name = 'xor';
@@ -25,22 +23,20 @@ var createXor = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
25
23
  var typed = _ref.typed,
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, _algorithm4.createAlgorithm13)({
40
- typed: typed
41
- });
42
- var algorithm14 = (0, _algorithm5.createAlgorithm14)({
43
- typed: typed
37
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
38
+ typed: typed,
39
+ matrix: matrix
44
40
  });
45
41
  /**
46
42
  * Logical `xor`. Test whether one and only one value is defined with a nonzero/nonempty value.
@@ -79,53 +75,15 @@ var createXor = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
79
75
  'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
80
76
  return (!x.isZero() && !x.isNaN()) !== (!y.isZero() && !y.isNaN());
81
77
  },
82
- 'Unit, Unit': function UnitUnit(x, y) {
83
- return this(x.value || 0, y.value || 0);
84
- },
85
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
86
- return algorithm07(x, y, this);
87
- },
88
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
89
- return algorithm03(y, x, this, true);
90
- },
91
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
92
- return algorithm03(x, y, this, false);
93
- },
94
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
95
- return algorithm13(x, y, this);
96
- },
97
- 'Array, Array': function ArrayArray(x, y) {
98
- // use matrix implementation
99
- return this(matrix(x), matrix(y)).valueOf();
100
- },
101
- 'Array, Matrix': function ArrayMatrix(x, y) {
102
- // use matrix implementation
103
- return this(matrix(x), y);
104
- },
105
- 'Matrix, Array': function MatrixArray(x, y) {
106
- // use matrix implementation
107
- return this(x, matrix(y));
108
- },
109
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
110
- return algorithm12(x, y, this, false);
111
- },
112
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
113
- return algorithm14(x, y, this, false);
114
- },
115
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
116
- return algorithm12(y, x, this, true);
117
- },
118
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
119
- return algorithm14(y, x, this, true);
120
- },
121
- 'Array, any': function ArrayAny(x, y) {
122
- // use matrix implementation
123
- return algorithm14(matrix(x), y, this, false).valueOf();
124
- },
125
- 'any, Array': function anyArray(x, y) {
126
- // use matrix implementation
127
- return algorithm14(matrix(y), x, this, true).valueOf();
128
- }
129
- });
78
+ 'Unit, Unit': typed.referToSelf(function (self) {
79
+ return function (x, y) {
80
+ return self(x.value || 0, y.value || 0);
81
+ };
82
+ })
83
+ }, matrixAlgorithmSuite({
84
+ SS: matAlgo07xSSf,
85
+ DS: matAlgo03xDSf,
86
+ Ss: matAlgo12xSfs
87
+ }));
130
88
  });
131
89
  exports.createXor = createXor;
@@ -83,9 +83,16 @@ var createDiff = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
83
83
  return _recursive(arr, dim);
84
84
  }
85
85
  },
86
- 'Array | Matrix, BigNumber': function ArrayMatrixBigNumber(arr, dim) {
87
- return this(arr, number(dim));
88
- }
86
+ 'Array, BigNumber': typed.referTo('Array,number', function (selfAn) {
87
+ return function (arr, dim) {
88
+ return selfAn(arr, number(dim));
89
+ };
90
+ }),
91
+ 'Matrix, BigNumber': typed.referTo('Matrix,number', function (selfMn) {
92
+ return function (arr, dim) {
93
+ return selfMn(arr, number(dim));
94
+ };
95
+ })
89
96
  });
90
97
  /**
91
98
  * Recursively find the correct dimension in the array/matrix
@@ -129,10 +136,6 @@ var createDiff = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
129
136
  var result = [];
130
137
  var size = arr.length;
131
138
 
132
- if (size < 2) {
133
- return arr;
134
- }
135
-
136
139
  for (var i = 1; i < size; i++) {
137
140
  result.push(_ElementDiff(arr[i - 1], arr[i]));
138
141
  }
@@ -11,7 +11,7 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
11
11
 
12
12
  var _object = require("../../../utils/object.js");
13
13
 
14
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
14
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
15
15
 
16
16
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
17
 
@@ -84,7 +84,7 @@ function createComplexEigs(_ref) {
84
84
 
85
85
  if (findVectors) {
86
86
  vectors = findEigenvectors(arr, N, C, R, values, prec, type);
87
- vectors = matrixFromColumns.apply(void 0, (0, _toConsumableArray2.default)(vectors));
87
+ vectors = matrixFromColumns.apply(void 0, (0, _toConsumableArray2["default"])(vectors));
88
88
  }
89
89
 
90
90
  return {
@@ -366,7 +366,7 @@ function createComplexEigs(_ref) {
366
366
  } else if (n === 2 || smaller(abs(arr[n - 2][n - 3]), prec)) {
367
367
  lastConvergenceBefore = 0;
368
368
  var ll = eigenvalues2x2(arr[n - 2][n - 2], arr[n - 2][n - 1], arr[n - 1][n - 2], arr[n - 1][n - 1]);
369
- lambdas.push.apply(lambdas, (0, _toConsumableArray2.default)(ll)); // keep track of transformations
369
+ lambdas.push.apply(lambdas, (0, _toConsumableArray2["default"])(ll)); // keep track of transformations
370
370
 
371
371
  if (findVectors) {
372
372
  Sdiag.unshift(jordanBase2x2(arr[n - 2][n - 2], arr[n - 2][n - 1], arr[n - 1][n - 2], arr[n - 1][n - 1], ll[0], ll[1], prec, type));
@@ -495,7 +495,7 @@ function createComplexEigs(_ref) {
495
495
  solutions = solutions.map(function (v) {
496
496
  return multiply(correction, v);
497
497
  });
498
- vectors.push.apply(vectors, (0, _toConsumableArray2.default)(solutions.map(function (v) {
498
+ vectors.push.apply(vectors, (0, _toConsumableArray2["default"])(solutions.map(function (v) {
499
499
  return flatten(v);
500
500
  })));
501
501
  };
@@ -579,7 +579,7 @@ function createComplexEigs(_ref) {
579
579
  for (var i = 0; i < arr.length; i++) {
580
580
  var _arr$i;
581
581
 
582
- (_arr$i = arr[i]).push.apply(_arr$i, (0, _toConsumableArray2.default)(Array(N - arr[i].length).fill(0)));
582
+ (_arr$i = arr[i]).push.apply(_arr$i, (0, _toConsumableArray2["default"])(Array(N - arr[i].length).fill(0)));
583
583
  } // add rows
584
584
 
585
585
 
@@ -106,9 +106,9 @@ var createFft = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
106
106
  if (len === 1) return [arr[0]];
107
107
 
108
108
  if (len % 2 === 0) {
109
- var ret = [].concat((0, _toConsumableArray2.default)(_fft(arr.filter(function (_, i) {
109
+ var ret = [].concat((0, _toConsumableArray2["default"])(_fft(arr.filter(function (_, i) {
110
110
  return i % 2 === 0;
111
- }), len / 2)), (0, _toConsumableArray2.default)(_fft(arr.filter(function (_, i) {
111
+ }), len / 2)), (0, _toConsumableArray2["default"])(_fft(arr.filter(function (_, i) {
112
112
  return i % 2 === 1;
113
113
  }), len / 2)));
114
114
 
@@ -7,7 +7,7 @@ exports.createMatrixFromColumns = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
10
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
11
11
 
12
12
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
13
13