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