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
@@ -3,15 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createAlgorithm08 = void 0;
6
+ exports.createMatAlgo08xS0Sid = void 0;
7
7
 
8
8
  var _factory = require("../../../utils/factory.js");
9
9
 
10
10
  var _DimensionError = require("../../../error/DimensionError.js");
11
11
 
12
- var name = 'algorithm08';
12
+ var name = 'matAlgo08xS0Sid';
13
13
  var dependencies = ['typed', 'equalScalar'];
14
- var createAlgorithm08 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
14
+ var createMatAlgo08xS0Sid = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
15
15
  var typed = _ref.typed,
16
16
  equalScalar = _ref.equalScalar;
17
17
 
@@ -21,7 +21,7 @@ var createAlgorithm08 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
21
21
  *
22
22
  *
23
23
  * ┌ f(Aij, Bij) ; A(i,j) !== 0 && B(i,j) !== 0
24
- * C(i,j) = ┤ A(i,j) ; A(i,j) !== 0
24
+ * C(i,j) = ┤ A(i,j) ; A(i,j) !== 0 && B(i,j) === 0
25
25
  * └ 0 ; otherwise
26
26
  *
27
27
  *
@@ -33,7 +33,7 @@ var createAlgorithm08 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
33
33
  *
34
34
  * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97620294
35
35
  */
36
- return function algorithm08(a, b, callback) {
36
+ return function matAlgo08xS0Sid(a, b, callback) {
37
37
  // sparse matrix arrays
38
38
  var avalues = a._values;
39
39
  var aindex = a._index;
@@ -156,4 +156,4 @@ var createAlgorithm08 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
156
156
  });
157
157
  };
158
158
  });
159
- exports.createAlgorithm08 = createAlgorithm08;
159
+ exports.createMatAlgo08xS0Sid = createMatAlgo08xS0Sid;
@@ -3,15 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createAlgorithm09 = void 0;
6
+ exports.createMatAlgo09xS0Sf = void 0;
7
7
 
8
8
  var _factory = require("../../../utils/factory.js");
9
9
 
10
10
  var _DimensionError = require("../../../error/DimensionError.js");
11
11
 
12
- var name = 'algorithm09';
12
+ var name = 'matAlgo09xS0Sf';
13
13
  var dependencies = ['typed', 'equalScalar'];
14
- var createAlgorithm09 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
14
+ var createMatAlgo09xS0Sf = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
15
15
  var typed = _ref.typed,
16
16
  equalScalar = _ref.equalScalar;
17
17
 
@@ -33,7 +33,7 @@ var createAlgorithm09 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
33
33
  *
34
34
  * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97620294
35
35
  */
36
- return function algorithm09(a, b, callback) {
36
+ return function matAlgo09xS0Sf(a, b, callback) {
37
37
  // sparse matrix arrays
38
38
  var avalues = a._values;
39
39
  var aindex = a._index;
@@ -143,4 +143,4 @@ var createAlgorithm09 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
143
143
  });
144
144
  };
145
145
  });
146
- exports.createAlgorithm09 = createAlgorithm09;
146
+ exports.createMatAlgo09xS0Sf = createMatAlgo09xS0Sf;
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createAlgorithm10 = void 0;
6
+ exports.createMatAlgo10xSids = void 0;
7
7
 
8
8
  var _factory = require("../../../utils/factory.js");
9
9
 
10
- var name = 'algorithm10';
10
+ var name = 'matAlgo10xSids';
11
11
  var dependencies = ['typed', 'DenseMatrix'];
12
- var createAlgorithm10 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
12
+ var createMatAlgo10xSids = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
13
13
  var typed = _ref.typed,
14
14
  DenseMatrix = _ref.DenseMatrix;
15
15
 
@@ -32,7 +32,7 @@ var createAlgorithm10 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
32
32
  *
33
33
  * https://github.com/josdejong/mathjs/pull/346#issuecomment-97626813
34
34
  */
35
- return function algorithm10(s, b, callback, inverse) {
35
+ return function matAlgo10xSids(s, b, callback, inverse) {
36
36
  // sparse matrix arrays
37
37
  var avalues = s._values;
38
38
  var aindex = s._index;
@@ -107,4 +107,4 @@ var createAlgorithm10 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
107
107
  });
108
108
  };
109
109
  });
110
- exports.createAlgorithm10 = createAlgorithm10;
110
+ exports.createMatAlgo10xSids = createMatAlgo10xSids;
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createAlgorithm11 = void 0;
6
+ exports.createMatAlgo11xS0s = void 0;
7
7
 
8
8
  var _factory = require("../../../utils/factory.js");
9
9
 
10
- var name = 'algorithm11';
10
+ var name = 'matAlgo11xS0s';
11
11
  var dependencies = ['typed', 'equalScalar'];
12
- var createAlgorithm11 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
12
+ var createMatAlgo11xS0s = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
13
13
  var typed = _ref.typed,
14
14
  equalScalar = _ref.equalScalar;
15
15
 
@@ -32,7 +32,7 @@ var createAlgorithm11 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
32
32
  *
33
33
  * https://github.com/josdejong/mathjs/pull/346#issuecomment-97626813
34
34
  */
35
- return function algorithm11(s, b, callback, inverse) {
35
+ return function matAlgo11xS0s(s, b, callback, inverse) {
36
36
  // sparse matrix arrays
37
37
  var avalues = s._values;
38
38
  var aindex = s._index;
@@ -104,4 +104,4 @@ var createAlgorithm11 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
104
104
  });
105
105
  };
106
106
  });
107
- exports.createAlgorithm11 = createAlgorithm11;
107
+ exports.createMatAlgo11xS0s = createMatAlgo11xS0s;
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createAlgorithm12 = void 0;
6
+ exports.createMatAlgo12xSfs = void 0;
7
7
 
8
8
  var _factory = require("../../../utils/factory.js");
9
9
 
10
- var name = 'algorithm12';
10
+ var name = 'matAlgo12xSfs';
11
11
  var dependencies = ['typed', 'DenseMatrix'];
12
- var createAlgorithm12 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
12
+ var createMatAlgo12xSfs = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
13
13
  var typed = _ref.typed,
14
14
  DenseMatrix = _ref.DenseMatrix;
15
15
 
@@ -32,7 +32,7 @@ var createAlgorithm12 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
32
32
  *
33
33
  * https://github.com/josdejong/mathjs/pull/346#issuecomment-97626813
34
34
  */
35
- return function algorithm12(s, b, callback, inverse) {
35
+ return function matAlgo12xSfs(s, b, callback, inverse) {
36
36
  // sparse matrix arrays
37
37
  var avalues = s._values;
38
38
  var aindex = s._index;
@@ -107,4 +107,4 @@ var createAlgorithm12 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
107
107
  });
108
108
  };
109
109
  });
110
- exports.createAlgorithm12 = createAlgorithm12;
110
+ exports.createMatAlgo12xSfs = createMatAlgo12xSfs;
@@ -3,15 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createAlgorithm13 = void 0;
6
+ exports.createMatAlgo13xDD = void 0;
7
7
 
8
8
  var _factory = require("../../../utils/factory.js");
9
9
 
10
10
  var _DimensionError = require("../../../error/DimensionError.js");
11
11
 
12
- var name = 'algorithm13';
12
+ var name = 'matAlgo13xDD';
13
13
  var dependencies = ['typed'];
14
- var createAlgorithm13 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
14
+ var createMatAlgo13xDD = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
15
15
  var typed = _ref.typed;
16
16
 
17
17
  /**
@@ -28,7 +28,7 @@ var createAlgorithm13 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
28
28
  *
29
29
  * https://github.com/josdejong/mathjs/pull/346#issuecomment-97658658
30
30
  */
31
- return function algorithm13(a, b, callback) {
31
+ return function matAlgo13xDD(a, b, callback) {
32
32
  // a arrays
33
33
  var adata = a._data;
34
34
  var asize = a._size;
@@ -98,4 +98,4 @@ var createAlgorithm13 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
98
98
  return cv;
99
99
  }
100
100
  });
101
- exports.createAlgorithm13 = createAlgorithm13;
101
+ exports.createMatAlgo13xDD = createMatAlgo13xDD;
@@ -3,15 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createAlgorithm14 = void 0;
6
+ exports.createMatAlgo14xDs = void 0;
7
7
 
8
8
  var _factory = require("../../../utils/factory.js");
9
9
 
10
10
  var _object = require("../../../utils/object.js");
11
11
 
12
- var name = 'algorithm14';
12
+ var name = 'matAlgo14xDs';
13
13
  var dependencies = ['typed'];
14
- var createAlgorithm14 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
14
+ var createMatAlgo14xDs = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
15
15
  var typed = _ref.typed;
16
16
 
17
17
  /**
@@ -29,7 +29,7 @@ var createAlgorithm14 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
29
29
  *
30
30
  * https://github.com/josdejong/mathjs/pull/346#issuecomment-97659042
31
31
  */
32
- return function algorithm14(a, b, callback, inverse) {
32
+ return function matAlgo14xDs(a, b, callback, inverse) {
33
33
  // a arrays
34
34
  var adata = a._data;
35
35
  var asize = a._size;
@@ -79,4 +79,4 @@ var createAlgorithm14 = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
79
79
  return cv;
80
80
  }
81
81
  });
82
- exports.createAlgorithm14 = createAlgorithm14;
82
+ exports.createMatAlgo14xDs = createMatAlgo14xDs;
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createMatrixAlgorithmSuite = void 0;
7
+
8
+ var _factory = require("../../../utils/factory.js");
9
+
10
+ var _object = require("../../../utils/object.js");
11
+
12
+ var _matAlgo13xDD = require("./matAlgo13xDD.js");
13
+
14
+ var _matAlgo14xDs = require("./matAlgo14xDs.js");
15
+
16
+ var name = 'matrixAlgorithmSuite';
17
+ var dependencies = ['typed', 'matrix'];
18
+ var createMatrixAlgorithmSuite = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
19
+ var typed = _ref.typed,
20
+ matrix = _ref.matrix;
21
+ var matAlgo13xDD = (0, _matAlgo13xDD.createMatAlgo13xDD)({
22
+ typed: typed
23
+ });
24
+ var matAlgo14xDs = (0, _matAlgo14xDs.createMatAlgo14xDs)({
25
+ typed: typed
26
+ });
27
+ /**
28
+ * Return a signatures object with the usual boilerplate of
29
+ * matrix algorithms, based on a plain options object with the
30
+ * following properties:
31
+ * elop: function -- the elementwise operation to use, defaults to self
32
+ * SS: function -- the algorithm to apply for two sparse matrices
33
+ * DS: function -- the algorithm to apply for a dense and a sparse matrix
34
+ * SD: function -- algo for a sparse and a dense; defaults to SD flipped
35
+ * Ss: function -- the algorithm to apply for a sparse matrix and scalar
36
+ * sS: function -- algo for scalar and sparse; defaults to Ss flipped
37
+ * scalar: string -- typed-function type for scalars, defaults to 'any'
38
+ *
39
+ * If Ss is not specified, no matrix-scalar signatures are generated.
40
+ *
41
+ * @param {object} options
42
+ * @return {Object<string, function>} signatures
43
+ */
44
+
45
+ return function matrixAlgorithmSuite(options) {
46
+ var elop = options.elop;
47
+ var SD = options.SD || options.DS;
48
+ var matrixSignatures;
49
+
50
+ if (elop) {
51
+ // First the dense ones
52
+ matrixSignatures = {
53
+ 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
54
+ return matAlgo13xDD(x, y, elop);
55
+ },
56
+ 'Array, Array': function ArrayArray(x, y) {
57
+ return matAlgo13xDD(matrix(x), matrix(y), elop).valueOf();
58
+ },
59
+ 'Array, DenseMatrix': function ArrayDenseMatrix(x, y) {
60
+ return matAlgo13xDD(matrix(x), y, elop);
61
+ },
62
+ 'DenseMatrix, Array': function DenseMatrixArray(x, y) {
63
+ return matAlgo13xDD(x, matrix(y), elop);
64
+ }
65
+ }; // Now incorporate sparse matrices
66
+
67
+ if (options.SS) {
68
+ matrixSignatures['SparseMatrix, SparseMatrix'] = function (x, y) {
69
+ return options.SS(x, y, elop, false);
70
+ };
71
+ }
72
+
73
+ if (options.DS) {
74
+ matrixSignatures['DenseMatrix, SparseMatrix'] = function (x, y) {
75
+ return options.DS(x, y, elop, false);
76
+ };
77
+
78
+ matrixSignatures['Array, SparseMatrix'] = function (x, y) {
79
+ return options.DS(matrix(x), y, elop, false);
80
+ };
81
+ }
82
+
83
+ if (SD) {
84
+ matrixSignatures['SparseMatrix, DenseMatrix'] = function (x, y) {
85
+ return SD(y, x, elop, true);
86
+ };
87
+
88
+ matrixSignatures['SparseMatrix, Array'] = function (x, y) {
89
+ return SD(matrix(y), x, elop, true);
90
+ };
91
+ }
92
+ } else {
93
+ // No elop, use this
94
+ // First the dense ones
95
+ matrixSignatures = {
96
+ 'DenseMatrix, DenseMatrix': typed.referToSelf(function (self) {
97
+ return function (x, y) {
98
+ return matAlgo13xDD(x, y, self);
99
+ };
100
+ }),
101
+ 'Array, Array': typed.referToSelf(function (self) {
102
+ return function (x, y) {
103
+ return matAlgo13xDD(matrix(x), matrix(y), self).valueOf();
104
+ };
105
+ }),
106
+ 'Array, DenseMatrix': typed.referToSelf(function (self) {
107
+ return function (x, y) {
108
+ return matAlgo13xDD(matrix(x), y, self);
109
+ };
110
+ }),
111
+ 'DenseMatrix, Array': typed.referToSelf(function (self) {
112
+ return function (x, y) {
113
+ return matAlgo13xDD(x, matrix(y), self);
114
+ };
115
+ })
116
+ }; // Now incorporate sparse matrices
117
+
118
+ if (options.SS) {
119
+ matrixSignatures['SparseMatrix, SparseMatrix'] = typed.referToSelf(function (self) {
120
+ return function (x, y) {
121
+ return options.SS(x, y, self, false);
122
+ };
123
+ });
124
+ }
125
+
126
+ if (options.DS) {
127
+ matrixSignatures['DenseMatrix, SparseMatrix'] = typed.referToSelf(function (self) {
128
+ return function (x, y) {
129
+ return options.DS(x, y, self, false);
130
+ };
131
+ });
132
+ matrixSignatures['Array, SparseMatrix'] = typed.referToSelf(function (self) {
133
+ return function (x, y) {
134
+ return options.DS(matrix(x), y, self, false);
135
+ };
136
+ });
137
+ }
138
+
139
+ if (SD) {
140
+ matrixSignatures['SparseMatrix, DenseMatrix'] = typed.referToSelf(function (self) {
141
+ return function (x, y) {
142
+ return SD(y, x, self, true);
143
+ };
144
+ });
145
+ matrixSignatures['SparseMatrix, Array'] = typed.referToSelf(function (self) {
146
+ return function (x, y) {
147
+ return SD(matrix(y), x, self, true);
148
+ };
149
+ });
150
+ }
151
+ } // Now add the scalars
152
+
153
+
154
+ var scalar = options.scalar || 'any';
155
+ var Ds = options.Ds || options.Ss;
156
+
157
+ if (Ds) {
158
+ if (elop) {
159
+ matrixSignatures['DenseMatrix,' + scalar] = function (x, y) {
160
+ return matAlgo14xDs(x, y, elop, false);
161
+ };
162
+
163
+ matrixSignatures[scalar + ', DenseMatrix'] = function (x, y) {
164
+ return matAlgo14xDs(y, x, elop, true);
165
+ };
166
+
167
+ matrixSignatures['Array,' + scalar] = function (x, y) {
168
+ return matAlgo14xDs(matrix(x), y, elop, false).valueOf();
169
+ };
170
+
171
+ matrixSignatures[scalar + ', Array'] = function (x, y) {
172
+ return matAlgo14xDs(matrix(y), x, elop, true).valueOf();
173
+ };
174
+ } else {
175
+ matrixSignatures['DenseMatrix,' + scalar] = typed.referToSelf(function (self) {
176
+ return function (x, y) {
177
+ return matAlgo14xDs(x, y, self, false);
178
+ };
179
+ });
180
+ matrixSignatures[scalar + ', DenseMatrix'] = typed.referToSelf(function (self) {
181
+ return function (x, y) {
182
+ return matAlgo14xDs(y, x, self, true);
183
+ };
184
+ });
185
+ matrixSignatures['Array,' + scalar] = typed.referToSelf(function (self) {
186
+ return function (x, y) {
187
+ return matAlgo14xDs(matrix(x), y, self, false).valueOf();
188
+ };
189
+ });
190
+ matrixSignatures[scalar + ', Array'] = typed.referToSelf(function (self) {
191
+ return function (x, y) {
192
+ return matAlgo14xDs(matrix(y), x, self, true).valueOf();
193
+ };
194
+ });
195
+ }
196
+ }
197
+
198
+ var sS = options.sS !== undefined ? options.sS : options.Ss;
199
+
200
+ if (elop) {
201
+ if (options.Ss) {
202
+ matrixSignatures['SparseMatrix,' + scalar] = function (x, y) {
203
+ return options.Ss(x, y, elop, false);
204
+ };
205
+ }
206
+
207
+ if (sS) {
208
+ matrixSignatures[scalar + ', SparseMatrix'] = function (x, y) {
209
+ return sS(y, x, elop, true);
210
+ };
211
+ }
212
+ } else {
213
+ if (options.Ss) {
214
+ matrixSignatures['SparseMatrix,' + scalar] = typed.referToSelf(function (self) {
215
+ return function (x, y) {
216
+ return options.Ss(x, y, self, false);
217
+ };
218
+ });
219
+ }
220
+
221
+ if (sS) {
222
+ matrixSignatures[scalar + ', SparseMatrix'] = typed.referToSelf(function (self) {
223
+ return function (x, y) {
224
+ return sS(y, x, self, true);
225
+ };
226
+ });
227
+ }
228
+ } // Also pull in the scalar signatures if the operator is a typed function
229
+
230
+
231
+ if (elop && elop.signatures) {
232
+ (0, _object.extend)(matrixSignatures, elop.signatures);
233
+ }
234
+
235
+ return matrixSignatures;
236
+ };
237
+ });
238
+ exports.createMatrixAlgorithmSuite = createMatrixAlgorithmSuite;
@@ -147,15 +147,17 @@ var createNumber = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
147
147
  Unit: function Unit(x) {
148
148
  throw new Error('Second argument with valueless unit expected');
149
149
  },
150
- null: function _null(x) {
150
+ "null": function _null(x) {
151
151
  return 0;
152
152
  },
153
153
  'Unit, string | Unit': function UnitStringUnit(unit, valuelessUnit) {
154
154
  return unit.toNumber(valuelessUnit);
155
155
  },
156
- 'Array | Matrix': function ArrayMatrix(x) {
157
- return (0, _collection.deepMap)(x, this);
158
- }
156
+ 'Array | Matrix': typed.referToSelf(function (self) {
157
+ return function (x) {
158
+ return (0, _collection.deepMap)(x, self);
159
+ };
160
+ })
159
161
  }); // reviver function to parse a JSON object like:
160
162
  //
161
163
  // {"mathjs":"number","value":"2.3"}
@@ -46,18 +46,20 @@ var createString = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
46
46
  return '';
47
47
  },
48
48
  number: _number.format,
49
- null: function _null(x) {
49
+ "null": function _null(x) {
50
50
  return 'null';
51
51
  },
52
- boolean: function boolean(x) {
52
+ "boolean": function boolean(x) {
53
53
  return x + '';
54
54
  },
55
55
  string: function string(x) {
56
56
  return x;
57
57
  },
58
- 'Array | Matrix': function ArrayMatrix(x) {
59
- return (0, _collection.deepMap)(x, this);
60
- },
58
+ 'Array | Matrix': typed.referToSelf(function (self) {
59
+ return function (x) {
60
+ return (0, _collection.deepMap)(x, self);
61
+ };
62
+ }),
61
63
  any: function any(x) {
62
64
  return String(x);
63
65
  }