mathjs 10.6.3 → 11.0.1

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