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
@@ -8,46 +8,7 @@ export var createTypeOf = /* #__PURE__ */factory(name, dependencies, _ref => {
8
8
  } = _ref;
9
9
 
10
10
  /**
11
- * Determine the type of a variable.
12
- *
13
- * Function `typeOf` recognizes the following types of objects:
14
- *
15
- * Object | Returns | Example
16
- * ---------------------- | ------------- | ------------------------------------------
17
- * null | `'null'` | `math.typeOf(null)`
18
- * number | `'number'` | `math.typeOf(3.5)`
19
- * boolean | `'boolean'` | `math.typeOf(true)`
20
- * string | `'string'` | `math.typeOf('hello world')`
21
- * Array | `'Array'` | `math.typeOf([1, 2, 3])`
22
- * Date | `'Date'` | `math.typeOf(new Date())`
23
- * Function | `'Function'` | `math.typeOf(function () {})`
24
- * Object | `'Object'` | `math.typeOf({a: 2, b: 3})`
25
- * RegExp | `'RegExp'` | `math.typeOf(/a regexp/)`
26
- * undefined | `'undefined'` | `math.typeOf(undefined)`
27
- * math.BigNumber | `'BigNumber'` | `math.typeOf(math.bignumber('2.3e500'))`
28
- * math.Chain | `'Chain'` | `math.typeOf(math.chain(2))`
29
- * math.Complex | `'Complex'` | `math.typeOf(math.complex(2, 3))`
30
- * math.Fraction | `'Fraction'` | `math.typeOf(math.fraction(1, 3))`
31
- * math.Help | `'Help'` | `math.typeOf(math.help('sqrt'))`
32
- * math.Help | `'Help'` | `math.typeOf(math.help('sqrt'))`
33
- * math.Index | `'Index'` | `math.typeOf(math.index(1, 3))`
34
- * math.Matrix | `'Matrix'` | `math.typeOf(math.matrix([[1,2], [3, 4]]))`
35
- * math.Range | `'Range'` | `math.typeOf(math.range(0, 10))`
36
- * math.ResultSet | `'ResultSet'` | `math.typeOf(math.evaluate('a=2\nb=3'))`
37
- * math.Unit | `'Unit'` | `math.typeOf(math.unit('45 deg'))`
38
- * math.AccessorNode | `'AccessorNode'` | `math.typeOf(math.parse('A[2]'))`
39
- * math.ArrayNode | `'ArrayNode'` | `math.typeOf(math.parse('[1,2,3]'))`
40
- * math.AssignmentNode | `'AssignmentNode'` | `math.typeOf(math.parse('x=2'))`
41
- * math.BlockNode | `'BlockNode'` | `math.typeOf(math.parse('a=2; b=3'))`
42
- * math.ConditionalNode | `'ConditionalNode'` | `math.typeOf(math.parse('x<0 ? -x : x'))`
43
- * math.ConstantNode | `'ConstantNode'` | `math.typeOf(math.parse('2.3'))`
44
- * math.FunctionAssignmentNode | `'FunctionAssignmentNode'` | `math.typeOf(math.parse('f(x)=x^2'))`
45
- * math.FunctionNode | `'FunctionNode'` | `math.typeOf(math.parse('sqrt(4)'))`
46
- * math.IndexNode | `'IndexNode'` | `math.typeOf(math.parse('A[2]').index)`
47
- * math.ObjectNode | `'ObjectNode'` | `math.typeOf(math.parse('{a:2}'))`
48
- * math.ParenthesisNode | `'ParenthesisNode'` | `math.typeOf(math.parse('(2+3)'))`
49
- * math.RangeNode | `'RangeNode'` | `math.typeOf(math.parse('1:10'))`
50
- * math.SymbolNode | `'SymbolNode'` | `math.typeOf(math.parse('x'))`
11
+ * Determine the type of an entity.
51
12
  *
52
13
  * Syntax:
53
14
  *
@@ -55,10 +16,43 @@ export var createTypeOf = /* #__PURE__ */factory(name, dependencies, _ref => {
55
16
  *
56
17
  * Examples:
57
18
  *
58
- * math.typeOf(3.5) // returns 'number'
59
- * math.typeOf(math.complex('2-4i')) // returns 'Complex'
60
- * math.typeOf(math.unit('45 deg')) // returns 'Unit'
61
- * math.typeOf('hello world') // returns 'string'
19
+ * // This list is intended to include all relevant types, for testing
20
+ * // purposes:
21
+ * math.typeOf(3.5) // returns 'number'
22
+ * math.typeOf(math.complex('2-4i')) // returns 'Complex'
23
+ * math.typeOf(math.unit('45 deg')) // returns 'Unit'
24
+ * math.typeOf('hello world') // returns 'string'
25
+ * math.typeOf(null) // returns 'null'
26
+ * math.typeOf(true) // returns 'boolean'
27
+ * math.typeOf([1, 2, 3]) // returns 'Array'
28
+ * math.typeOf(new Date()) // returns 'Date'
29
+ * math.typeOf(function () {}) // returns 'function'
30
+ * math.typeOf({a: 2, b: 3}) // returns 'Object'
31
+ * math.typeOf(/a regexp/) // returns 'RegExp'
32
+ * math.typeOf(undefined) // returns 'undefined'
33
+ * math.typeOf(math.bignumber('23e99')) // returns 'BigNumber'
34
+ * math.typeOf(math.chain(2)) // returns 'Chain'
35
+ * math.typeOf(math.fraction(1, 3)) // returns 'Fraction'
36
+ * math.typeOf(math.help('sqrt')) // returns 'Help'
37
+ * math.typeOf(math.index(1, 3)) // returns 'Index'
38
+ * math.typeOf(math.matrix([[1],[3]])) // returns 'DenseMatrix'
39
+ * math.typeOf(math.matrix([],'sparse')) // returns 'SparseMatrix'
40
+ * math.typeOf(new math.Range(0, 10)) // returns 'Range'
41
+ * math.typeOf(math.evaluate('a=2\na')) // returns 'ResultSet'
42
+ * math.typeOf(math.parse('A[2]')) // returns 'AccessorNode'
43
+ * math.typeOf(math.parse('[1,2,3]')) // returns 'ArrayNode'
44
+ * math.typeOf(math.parse('x=2')) // returns 'AssignmentNode'
45
+ * math.typeOf(math.parse('a=2; b=3')) // returns 'BlockNode'
46
+ * math.typeOf(math.parse('x<0?-1:1')) // returns 'ConditionalNode'
47
+ * math.typeOf(math.parse('2.3')) // returns 'ConstantNode'
48
+ * math.typeOf(math.parse('f(x)=x^2')) // returns 'FunctionAssignmentNode'
49
+ * math.typeOf(math.parse('sqrt(4)')) // returns 'FunctionNode'
50
+ * math.typeOf(math.parse('A[2]').index) // returns 'IndexNode'
51
+ * math.typeOf(math.parse('{a:2}')) // returns 'ObjectNode'
52
+ * math.typeOf(math.parse('(2+3)')) // returns 'ParenthesisNode'
53
+ * math.typeOf(math.parse('1:10')) // returns 'RangeNode'
54
+ * math.typeOf(math.parse('a<b<c')) // returns 'RelationalNode'
55
+ * math.typeOf(math.parse('x')) // returns 'SymbolNode'
62
56
  *
63
57
  * @param {*} x The variable for which to test the type.
64
58
  * @return {string} Returns the name of the type. Primitive types are lower case,
@@ -75,8 +75,6 @@ export var createBignumber = /* #__PURE__ */factory(name, dependencies, _ref =>
75
75
  null: function _null(x) {
76
76
  return new BigNumber(0);
77
77
  },
78
- 'Array | Matrix': function ArrayMatrix(x) {
79
- return deepMap(x, this);
80
- }
78
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
81
79
  });
82
80
  });
@@ -69,8 +69,6 @@ export var createBoolean = /* #__PURE__ */factory(name, dependencies, _ref => {
69
69
 
70
70
  throw new Error('Cannot convert "' + x + '" to a boolean');
71
71
  },
72
- 'Array | Matrix': function ArrayMatrix(x) {
73
- return deepMap(x, this);
74
- }
72
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
75
73
  });
76
74
  });
@@ -3,11 +3,12 @@ import { format } from '../../utils/string.js';
3
3
  import { hasOwnProperty, lazy } from '../../utils/object.js';
4
4
  import { factory } from '../../utils/factory.js';
5
5
  var name = 'Chain';
6
- var dependencies = ['?on', 'math'];
6
+ var dependencies = ['?on', 'math', 'typed'];
7
7
  export var createChainClass = /* #__PURE__ */factory(name, dependencies, _ref => {
8
8
  var {
9
9
  on,
10
- math
10
+ math,
11
+ typed
11
12
  } = _ref;
12
13
 
13
14
  /**
@@ -142,12 +143,31 @@ export var createChainClass = /* #__PURE__ */factory(name, dependencies, _ref =>
142
143
 
143
144
  function chainify(fn) {
144
145
  return function () {
145
- var args = [this.value]; // `this` will be the context of a Chain instance
146
+ // Here, `this` will be the context of a Chain instance
147
+ if (arguments.length === 0) {
148
+ return new Chain(fn(this.value));
149
+ }
150
+
151
+ var args = [this.value];
146
152
 
147
153
  for (var i = 0; i < arguments.length; i++) {
148
154
  args[i + 1] = arguments[i];
149
155
  }
150
156
 
157
+ if (typed.isTypedFunction(fn)) {
158
+ var sigObject = typed.resolve(fn, args); // We want to detect if a rest parameter has matched across the
159
+ // value in the chain and the current arguments of this call.
160
+ // That is the case if and only if the matching signature has
161
+ // exactly one parameter (which then must be a rest parameter
162
+ // as it is matching at least two actual arguments).
163
+
164
+ if (sigObject.params.length === 1) {
165
+ throw new Error('chain function ' + fn.name + ' cannot match rest parameter between chain value and additional arguments.');
166
+ }
167
+
168
+ return new Chain(sigObject.implementation.apply(fn, args));
169
+ }
170
+
151
171
  return new Chain(fn.apply(fn, args));
152
172
  };
153
173
  }
@@ -8,6 +8,10 @@ export var createComplexClass = /* #__PURE__ */factory(name, dependencies, () =>
8
8
  /**
9
9
  * Attach type information
10
10
  */
11
+ Object.defineProperty(Complex, 'name', {
12
+ value: 'Complex'
13
+ });
14
+ Complex.prototype.constructor = Complex;
11
15
  Complex.prototype.type = 'Complex';
12
16
  Complex.prototype.isComplex = true;
13
17
  /**
@@ -83,8 +83,6 @@ export var createComplex = /* #__PURE__ */factory(name, dependencies, _ref => {
83
83
 
84
84
  throw new Error('Expected object with properties (re and im) or (r and phi) or (abs and arg)');
85
85
  },
86
- 'Array | Matrix': function ArrayMatrix(x) {
87
- return deepMap(x, this);
88
- }
86
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
89
87
  });
90
88
  });
@@ -6,6 +6,10 @@ export var createFractionClass = /* #__PURE__ */factory(name, dependencies, () =
6
6
  /**
7
7
  * Attach type information
8
8
  */
9
+ Object.defineProperty(Fraction, 'name', {
10
+ value: 'Fraction'
11
+ });
12
+ Fraction.prototype.constructor = Fraction;
9
13
  Fraction.prototype.type = 'Fraction';
10
14
  Fraction.prototype.isFraction = true;
11
15
  /**
@@ -71,8 +71,6 @@ export var createFraction = /* #__PURE__ */factory(name, dependencies, _ref => {
71
71
  Object: function Object(x) {
72
72
  return new Fraction(x);
73
73
  },
74
- 'Array | Matrix': function ArrayMatrix(x) {
75
- return deepMap(x, this);
76
- }
74
+ 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
77
75
  });
78
76
  });
@@ -5,6 +5,7 @@ import { isInteger } from '../../utils/number.js';
5
5
  import { clone, deepStrictEqual } from '../../utils/object.js';
6
6
  import { DimensionError } from '../../error/DimensionError.js';
7
7
  import { factory } from '../../utils/factory.js';
8
+ import { maxArgumentCount } from '../../utils/function.js';
8
9
  var name = 'DenseMatrix';
9
10
  var dependencies = ['Matrix'];
10
11
  export var createDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _ref => {
@@ -79,6 +80,10 @@ export var createDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _
79
80
  */
80
81
 
81
82
 
83
+ Object.defineProperty(DenseMatrix, 'name', {
84
+ value: 'DenseMatrix'
85
+ });
86
+ DenseMatrix.prototype.constructor = DenseMatrix;
82
87
  DenseMatrix.prototype.type = 'DenseMatrix';
83
88
  DenseMatrix.prototype.isDenseMatrix = true;
84
89
  /**
@@ -576,6 +581,7 @@ export var createDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _
576
581
  DenseMatrix.prototype.map = function (callback) {
577
582
  // matrix instance
578
583
  var me = this;
584
+ var args = maxArgumentCount(callback);
579
585
 
580
586
  var recurse = function recurse(value, index) {
581
587
  if (isArray(value)) {
@@ -583,7 +589,15 @@ export var createDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _
583
589
  return recurse(child, index.concat(i));
584
590
  });
585
591
  } else {
586
- return callback(value, index, me);
592
+ // invoke the callback function with the right number of arguments
593
+ if (args === 1) {
594
+ return callback(value);
595
+ } else if (args === 2) {
596
+ return callback(value, index);
597
+ } else {
598
+ // 3 or -1
599
+ return callback(value, index, me);
600
+ }
587
601
  }
588
602
  }; // determine the new datatype when the original matrix has datatype defined
589
603
  // TODO: should be done in matrix constructor instead
@@ -5,6 +5,7 @@ import { clone, deepStrictEqual } from '../../utils/object.js';
5
5
  import { arraySize, getArrayDataType, processSizesWildcard, unsqueeze, validateIndex } from '../../utils/array.js';
6
6
  import { factory } from '../../utils/factory.js';
7
7
  import { DimensionError } from '../../error/DimensionError.js';
8
+ import { maxArgumentCount } from '../../utils/function.js';
8
9
  var name = 'SparseMatrix';
9
10
  var dependencies = ['typed', 'equalScalar', 'Matrix'];
10
11
  export var createSparseMatrixClass = /* #__PURE__ */factory(name, dependencies, _ref => {
@@ -166,6 +167,10 @@ export var createSparseMatrixClass = /* #__PURE__ */factory(name, dependencies,
166
167
  */
167
168
 
168
169
 
170
+ Object.defineProperty(SparseMatrix, 'name', {
171
+ value: 'SparseMatrix'
172
+ });
173
+ SparseMatrix.prototype.constructor = SparseMatrix;
169
174
  SparseMatrix.prototype.type = 'SparseMatrix';
170
175
  SparseMatrix.prototype.isSparseMatrix = true;
171
176
  /**
@@ -919,8 +924,12 @@ export var createSparseMatrixClass = /* #__PURE__ */factory(name, dependencies,
919
924
  var rows = this._size[0];
920
925
  var columns = this._size[1]; // invoke callback
921
926
 
927
+ var args = maxArgumentCount(callback);
928
+
922
929
  var invoke = function invoke(v, i, j) {
923
930
  // invoke callback
931
+ if (args === 1) return callback(v);
932
+ if (args === 2) return callback(v, [i, j]);
924
933
  return callback(v, [i, j], me);
925
934
  }; // invoke _map
926
935
 
@@ -1,8 +1,8 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
2
  import { DimensionError } from '../../../error/DimensionError.js';
3
- var name = 'algorithm01';
3
+ var name = 'matAlgo01xDSid';
4
4
  var dependencies = ['typed'];
5
- export var createAlgorithm01 = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ export var createMatAlgo01xDSid = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed
8
8
  } = _ref;
@@ -1,8 +1,8 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
2
  import { DimensionError } from '../../../error/DimensionError.js';
3
- var name = 'algorithm02';
3
+ var name = 'matAlgo02xDS0';
4
4
  var dependencies = ['typed', 'equalScalar'];
5
- export var createAlgorithm02 = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ export var createMatAlgo02xDS0 = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed,
8
8
  equalScalar
@@ -27,7 +27,7 @@ export var createAlgorithm02 = /* #__PURE__ */factory(name, dependencies, _ref =
27
27
  *
28
28
  * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97477571
29
29
  */
30
- return function algorithm02(denseMatrix, sparseMatrix, callback, inverse) {
30
+ return function matAlgo02xDS0(denseMatrix, sparseMatrix, callback, inverse) {
31
31
  // dense matrix arrays
32
32
  var adata = denseMatrix._data;
33
33
  var asize = denseMatrix._size;
@@ -1,8 +1,8 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
2
  import { DimensionError } from '../../../error/DimensionError.js';
3
- var name = 'algorithm03';
3
+ var name = 'matAlgo03xDSf';
4
4
  var dependencies = ['typed'];
5
- export var createAlgorithm03 = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ export var createMatAlgo03xDSf = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed
8
8
  } = _ref;
@@ -26,7 +26,7 @@ export var createAlgorithm03 = /* #__PURE__ */factory(name, dependencies, _ref =
26
26
  *
27
27
  * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97477571
28
28
  */
29
- return function algorithm03(denseMatrix, sparseMatrix, callback, inverse) {
29
+ return function matAlgo03xDSf(denseMatrix, sparseMatrix, callback, inverse) {
30
30
  // dense matrix arrays
31
31
  var adata = denseMatrix._data;
32
32
  var asize = denseMatrix._size;
@@ -1,8 +1,8 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
2
  import { DimensionError } from '../../../error/DimensionError.js';
3
- var name = 'algorithm04';
3
+ var name = 'matAlgo04xSidSid';
4
4
  var dependencies = ['typed', 'equalScalar'];
5
- export var createAlgorithm04 = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ export var createMatAlgo04xSidSid = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed,
8
8
  equalScalar
@@ -14,8 +14,8 @@ export var createAlgorithm04 = /* #__PURE__ */factory(name, dependencies, _ref =
14
14
  *
15
15
  *
16
16
  * ┌ f(Aij, Bij) ; A(i,j) !== 0 && B(i,j) !== 0
17
- * C(i,j) = ┤ A(i,j) ; A(i,j) !== 0
18
- * └ B(i,j) ; B(i,j) !== 0
17
+ * C(i,j) = ┤ A(i,j) ; A(i,j) !== 0 && B(i,j) === 0
18
+ * └ B(i,j) ; A(i,j) === 0
19
19
  *
20
20
  *
21
21
  * @param {Matrix} a The SparseMatrix instance (A)
@@ -26,7 +26,7 @@ export var createAlgorithm04 = /* #__PURE__ */factory(name, dependencies, _ref =
26
26
  *
27
27
  * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97620294
28
28
  */
29
- return function algorithm04(a, b, callback) {
29
+ return function matAlgo04xSidSid(a, b, callback) {
30
30
  // sparse matrix arrays
31
31
  var avalues = a._values;
32
32
  var aindex = a._index;
@@ -1,8 +1,8 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
2
  import { DimensionError } from '../../../error/DimensionError.js';
3
- var name = 'algorithm05';
3
+ var name = 'matAlgo05xSfSf';
4
4
  var dependencies = ['typed', 'equalScalar'];
5
- export var createAlgorithm05 = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ export var createMatAlgo05xSfSf = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed,
8
8
  equalScalar
@@ -26,7 +26,7 @@ export var createAlgorithm05 = /* #__PURE__ */factory(name, dependencies, _ref =
26
26
  *
27
27
  * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97620294
28
28
  */
29
- return function algorithm05(a, b, callback) {
29
+ return function matAlgo05xSfSf(a, b, callback) {
30
30
  // sparse matrix arrays
31
31
  var avalues = a._values;
32
32
  var aindex = a._index;
@@ -1,9 +1,9 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
2
  import { DimensionError } from '../../../error/DimensionError.js';
3
3
  import { scatter } from '../../../utils/collection.js';
4
- var name = 'algorithm06';
4
+ var name = 'matAlgo06xS0S0';
5
5
  var dependencies = ['typed', 'equalScalar'];
6
- export var createAlgorithm06 = /* #__PURE__ */factory(name, dependencies, _ref => {
6
+ export var createMatAlgo06xS0S0 = /* #__PURE__ */factory(name, dependencies, _ref => {
7
7
  var {
8
8
  typed,
9
9
  equalScalar
@@ -27,7 +27,7 @@ export var createAlgorithm06 = /* #__PURE__ */factory(name, dependencies, _ref =
27
27
  *
28
28
  * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97620294
29
29
  */
30
- return function algorithm06(a, b, callback) {
30
+ return function matAlgo06xS0S0(a, b, callback) {
31
31
  // sparse matrix arrays
32
32
  var avalues = a._values;
33
33
  var asize = a._size;
@@ -1,8 +1,8 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
2
  import { DimensionError } from '../../../error/DimensionError.js';
3
- var name = 'algorithm07';
3
+ var name = 'matAlgo07xSSf';
4
4
  var dependencies = ['typed', 'DenseMatrix'];
5
- export var createAlgorithm07 = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ export var createMatAlgo07xSSf = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed,
8
8
  DenseMatrix
@@ -22,7 +22,7 @@ export var createAlgorithm07 = /* #__PURE__ */factory(name, dependencies, _ref =
22
22
  *
23
23
  * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97620294
24
24
  */
25
- return function algorithm07(a, b, callback) {
25
+ return function matAlgo07xSSf(a, b, callback) {
26
26
  // sparse matrix arrays
27
27
  var asize = a._size;
28
28
  var adt = a._datatype; // sparse matrix arrays
@@ -1,8 +1,8 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
2
  import { DimensionError } from '../../../error/DimensionError.js';
3
- var name = 'algorithm08';
3
+ var name = 'matAlgo08xS0Sid';
4
4
  var dependencies = ['typed', 'equalScalar'];
5
- export var createAlgorithm08 = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ export var createMatAlgo08xS0Sid = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed,
8
8
  equalScalar
@@ -14,7 +14,7 @@ export var createAlgorithm08 = /* #__PURE__ */factory(name, dependencies, _ref =
14
14
  *
15
15
  *
16
16
  * ┌ f(Aij, Bij) ; A(i,j) !== 0 && B(i,j) !== 0
17
- * C(i,j) = ┤ A(i,j) ; A(i,j) !== 0
17
+ * C(i,j) = ┤ A(i,j) ; A(i,j) !== 0 && B(i,j) === 0
18
18
  * └ 0 ; otherwise
19
19
  *
20
20
  *
@@ -26,7 +26,7 @@ export var createAlgorithm08 = /* #__PURE__ */factory(name, dependencies, _ref =
26
26
  *
27
27
  * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97620294
28
28
  */
29
- return function algorithm08(a, b, callback) {
29
+ return function matAlgo08xS0Sid(a, b, callback) {
30
30
  // sparse matrix arrays
31
31
  var avalues = a._values;
32
32
  var aindex = a._index;
@@ -1,8 +1,8 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
2
  import { DimensionError } from '../../../error/DimensionError.js';
3
- var name = 'algorithm09';
3
+ var name = 'matAlgo09xS0Sf';
4
4
  var dependencies = ['typed', 'equalScalar'];
5
- export var createAlgorithm09 = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ export var createMatAlgo09xS0Sf = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed,
8
8
  equalScalar
@@ -26,7 +26,7 @@ export var createAlgorithm09 = /* #__PURE__ */factory(name, dependencies, _ref =
26
26
  *
27
27
  * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97620294
28
28
  */
29
- return function algorithm09(a, b, callback) {
29
+ return function matAlgo09xS0Sf(a, b, callback) {
30
30
  // sparse matrix arrays
31
31
  var avalues = a._values;
32
32
  var aindex = a._index;
@@ -1,7 +1,7 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
- var name = 'algorithm10';
2
+ var name = 'matAlgo10xSids';
3
3
  var dependencies = ['typed', 'DenseMatrix'];
4
- export var createAlgorithm10 = /* #__PURE__ */factory(name, dependencies, _ref => {
4
+ export var createMatAlgo10xSids = /* #__PURE__ */factory(name, dependencies, _ref => {
5
5
  var {
6
6
  typed,
7
7
  DenseMatrix
@@ -26,7 +26,7 @@ export var createAlgorithm10 = /* #__PURE__ */factory(name, dependencies, _ref =
26
26
  *
27
27
  * https://github.com/josdejong/mathjs/pull/346#issuecomment-97626813
28
28
  */
29
- return function algorithm10(s, b, callback, inverse) {
29
+ return function matAlgo10xSids(s, b, callback, inverse) {
30
30
  // sparse matrix arrays
31
31
  var avalues = s._values;
32
32
  var aindex = s._index;
@@ -1,7 +1,7 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
- var name = 'algorithm11';
2
+ var name = 'matAlgo11xS0s';
3
3
  var dependencies = ['typed', 'equalScalar'];
4
- export var createAlgorithm11 = /* #__PURE__ */factory(name, dependencies, _ref => {
4
+ export var createMatAlgo11xS0s = /* #__PURE__ */factory(name, dependencies, _ref => {
5
5
  var {
6
6
  typed,
7
7
  equalScalar
@@ -26,7 +26,7 @@ export var createAlgorithm11 = /* #__PURE__ */factory(name, dependencies, _ref =
26
26
  *
27
27
  * https://github.com/josdejong/mathjs/pull/346#issuecomment-97626813
28
28
  */
29
- return function algorithm11(s, b, callback, inverse) {
29
+ return function matAlgo11xS0s(s, b, callback, inverse) {
30
30
  // sparse matrix arrays
31
31
  var avalues = s._values;
32
32
  var aindex = s._index;
@@ -1,7 +1,7 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
- var name = 'algorithm12';
2
+ var name = 'matAlgo12xSfs';
3
3
  var dependencies = ['typed', 'DenseMatrix'];
4
- export var createAlgorithm12 = /* #__PURE__ */factory(name, dependencies, _ref => {
4
+ export var createMatAlgo12xSfs = /* #__PURE__ */factory(name, dependencies, _ref => {
5
5
  var {
6
6
  typed,
7
7
  DenseMatrix
@@ -26,7 +26,7 @@ export var createAlgorithm12 = /* #__PURE__ */factory(name, dependencies, _ref =
26
26
  *
27
27
  * https://github.com/josdejong/mathjs/pull/346#issuecomment-97626813
28
28
  */
29
- return function algorithm12(s, b, callback, inverse) {
29
+ return function matAlgo12xSfs(s, b, callback, inverse) {
30
30
  // sparse matrix arrays
31
31
  var avalues = s._values;
32
32
  var aindex = s._index;
@@ -1,8 +1,8 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
2
  import { DimensionError } from '../../../error/DimensionError.js';
3
- var name = 'algorithm13';
3
+ var name = 'matAlgo13xDD';
4
4
  var dependencies = ['typed'];
5
- export var createAlgorithm13 = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ export var createMatAlgo13xDD = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed
8
8
  } = _ref;
@@ -21,7 +21,7 @@ export var createAlgorithm13 = /* #__PURE__ */factory(name, dependencies, _ref =
21
21
  *
22
22
  * https://github.com/josdejong/mathjs/pull/346#issuecomment-97658658
23
23
  */
24
- return function algorithm13(a, b, callback) {
24
+ return function matAlgo13xDD(a, b, callback) {
25
25
  // a arrays
26
26
  var adata = a._data;
27
27
  var asize = a._size;
@@ -1,8 +1,8 @@
1
1
  import { factory } from '../../../utils/factory.js';
2
2
  import { clone } from '../../../utils/object.js';
3
- var name = 'algorithm14';
3
+ var name = 'matAlgo14xDs';
4
4
  var dependencies = ['typed'];
5
- export var createAlgorithm14 = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ export var createMatAlgo14xDs = /* #__PURE__ */factory(name, dependencies, _ref => {
6
6
  var {
7
7
  typed
8
8
  } = _ref;
@@ -22,7 +22,7 @@ export var createAlgorithm14 = /* #__PURE__ */factory(name, dependencies, _ref =
22
22
  *
23
23
  * https://github.com/josdejong/mathjs/pull/346#issuecomment-97659042
24
24
  */
25
- return function algorithm14(a, b, callback, inverse) {
25
+ return function matAlgo14xDs(a, b, callback, inverse) {
26
26
  // a arrays
27
27
  var adata = a._data;
28
28
  var asize = a._size;