mathjs 10.1.0 → 10.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/HISTORY.md +38 -0
  2. package/docs/expressions/algebra.md +27 -0
  3. package/docs/expressions/syntax.md +31 -2
  4. package/docs/reference/functions/abs.md +6 -0
  5. package/docs/reference/functions/acos.md +6 -0
  6. package/docs/reference/functions/acosh.md +6 -0
  7. package/docs/reference/functions/acot.md +6 -0
  8. package/docs/reference/functions/acoth.md +6 -0
  9. package/docs/reference/functions/acsc.md +6 -0
  10. package/docs/reference/functions/acsch.md +6 -0
  11. package/docs/reference/functions/add.md +6 -0
  12. package/docs/reference/functions/and.md +6 -0
  13. package/docs/reference/functions/apply.md +6 -0
  14. package/docs/reference/functions/arg.md +6 -0
  15. package/docs/reference/functions/asec.md +6 -0
  16. package/docs/reference/functions/asech.md +6 -0
  17. package/docs/reference/functions/asin.md +6 -0
  18. package/docs/reference/functions/asinh.md +6 -0
  19. package/docs/reference/functions/atan.md +6 -0
  20. package/docs/reference/functions/atan2.md +6 -0
  21. package/docs/reference/functions/atanh.md +6 -0
  22. package/docs/reference/functions/bellNumbers.md +6 -0
  23. package/docs/reference/functions/bin.md +6 -0
  24. package/docs/reference/functions/bitAnd.md +6 -0
  25. package/docs/reference/functions/bitNot.md +6 -0
  26. package/docs/reference/functions/bitOr.md +6 -0
  27. package/docs/reference/functions/bitXor.md +6 -0
  28. package/docs/reference/functions/catalan.md +6 -0
  29. package/docs/reference/functions/cbrt.md +6 -0
  30. package/docs/reference/functions/ceil.md +6 -0
  31. package/docs/reference/functions/clone.md +6 -0
  32. package/docs/reference/functions/column.md +6 -0
  33. package/docs/reference/functions/combinations.md +6 -0
  34. package/docs/reference/functions/combinationsWithRep.md +6 -0
  35. package/docs/reference/functions/compare.md +6 -0
  36. package/docs/reference/functions/compareNatural.md +6 -0
  37. package/docs/reference/functions/compareText.md +6 -0
  38. package/docs/reference/functions/compile.md +6 -0
  39. package/docs/reference/functions/composition.md +6 -0
  40. package/docs/reference/functions/concat.md +6 -0
  41. package/docs/reference/functions/conj.md +6 -0
  42. package/docs/reference/functions/cos.md +6 -0
  43. package/docs/reference/functions/cosh.md +6 -0
  44. package/docs/reference/functions/cot.md +6 -0
  45. package/docs/reference/functions/coth.md +6 -0
  46. package/docs/reference/functions/count.md +6 -0
  47. package/docs/reference/functions/cross.md +6 -0
  48. package/docs/reference/functions/csc.md +6 -0
  49. package/docs/reference/functions/csch.md +6 -0
  50. package/docs/reference/functions/ctranspose.md +6 -0
  51. package/docs/reference/functions/cube.md +6 -0
  52. package/docs/reference/functions/deepEqual.md +6 -0
  53. package/docs/reference/functions/derivative.md +6 -0
  54. package/docs/reference/functions/det.md +6 -0
  55. package/docs/reference/functions/diag.md +6 -0
  56. package/docs/reference/functions/diff.md +6 -0
  57. package/docs/reference/functions/distance.md +6 -0
  58. package/docs/reference/functions/divide.md +6 -0
  59. package/docs/reference/functions/dot.md +6 -0
  60. package/docs/reference/functions/dotDivide.md +6 -0
  61. package/docs/reference/functions/dotMultiply.md +6 -0
  62. package/docs/reference/functions/dotPow.md +6 -0
  63. package/docs/reference/functions/eigs.md +6 -0
  64. package/docs/reference/functions/equal.md +6 -0
  65. package/docs/reference/functions/equalText.md +6 -0
  66. package/docs/reference/functions/erf.md +6 -0
  67. package/docs/reference/functions/evaluate.md +6 -0
  68. package/docs/reference/functions/exp.md +6 -0
  69. package/docs/reference/functions/expm.md +6 -0
  70. package/docs/reference/functions/expm1.md +6 -0
  71. package/docs/reference/functions/factorial.md +6 -0
  72. package/docs/reference/functions/filter.md +6 -0
  73. package/docs/reference/functions/fix.md +6 -0
  74. package/docs/reference/functions/flatten.md +6 -0
  75. package/docs/reference/functions/floor.md +6 -0
  76. package/docs/reference/functions/forEach.md +6 -0
  77. package/docs/reference/functions/format.md +6 -0
  78. package/docs/reference/functions/gamma.md +6 -0
  79. package/docs/reference/functions/gcd.md +6 -0
  80. package/docs/reference/functions/getMatrixDataType.md +6 -0
  81. package/docs/reference/functions/hasNumericValue.md +6 -0
  82. package/docs/reference/functions/help.md +6 -0
  83. package/docs/reference/functions/hex.md +6 -0
  84. package/docs/reference/functions/hypot.md +6 -0
  85. package/docs/reference/functions/identity.md +6 -0
  86. package/docs/reference/functions/im.md +6 -0
  87. package/docs/reference/functions/intersect.md +6 -0
  88. package/docs/reference/functions/inv.md +6 -0
  89. package/docs/reference/functions/invmod.md +6 -0
  90. package/docs/reference/functions/isInteger.md +6 -0
  91. package/docs/reference/functions/isNaN.md +6 -0
  92. package/docs/reference/functions/isNegative.md +6 -0
  93. package/docs/reference/functions/isNumeric.md +6 -0
  94. package/docs/reference/functions/isPositive.md +6 -0
  95. package/docs/reference/functions/isPrime.md +6 -0
  96. package/docs/reference/functions/isZero.md +6 -0
  97. package/docs/reference/functions/kldivergence.md +6 -0
  98. package/docs/reference/functions/kron.md +6 -0
  99. package/docs/reference/functions/larger.md +6 -0
  100. package/docs/reference/functions/largerEq.md +6 -0
  101. package/docs/reference/functions/lcm.md +6 -0
  102. package/docs/reference/functions/leafCount.md +52 -0
  103. package/docs/reference/functions/leftShift.md +6 -0
  104. package/docs/reference/functions/log.md +6 -0
  105. package/docs/reference/functions/log10.md +6 -0
  106. package/docs/reference/functions/log1p.md +6 -0
  107. package/docs/reference/functions/log2.md +6 -0
  108. package/docs/reference/functions/lsolve.md +6 -0
  109. package/docs/reference/functions/lsolveAll.md +6 -0
  110. package/docs/reference/functions/lup.md +6 -0
  111. package/docs/reference/functions/lusolve.md +6 -0
  112. package/docs/reference/functions/mad.md +6 -0
  113. package/docs/reference/functions/map.md +28 -5
  114. package/docs/reference/functions/matrixFromColumns.md +6 -0
  115. package/docs/reference/functions/matrixFromFunction.md +6 -0
  116. package/docs/reference/functions/matrixFromRows.md +6 -0
  117. package/docs/reference/functions/max.md +6 -0
  118. package/docs/reference/functions/mean.md +6 -0
  119. package/docs/reference/functions/median.md +6 -0
  120. package/docs/reference/functions/min.md +6 -0
  121. package/docs/reference/functions/mod.md +6 -0
  122. package/docs/reference/functions/mode.md +6 -0
  123. package/docs/reference/functions/multinomial.md +6 -0
  124. package/docs/reference/functions/multiply.md +6 -0
  125. package/docs/reference/functions/norm.md +6 -0
  126. package/docs/reference/functions/not.md +6 -0
  127. package/docs/reference/functions/nthRoot.md +6 -0
  128. package/docs/reference/functions/nthRoots.md +6 -0
  129. package/docs/reference/functions/numeric.md +6 -0
  130. package/docs/reference/functions/oct.md +6 -0
  131. package/docs/reference/functions/ones.md +6 -0
  132. package/docs/reference/functions/or.md +6 -0
  133. package/docs/reference/functions/parser.md +6 -0
  134. package/docs/reference/functions/partitionSelect.md +6 -0
  135. package/docs/reference/functions/permutations.md +6 -0
  136. package/docs/reference/functions/pickRandom.md +6 -0
  137. package/docs/reference/functions/pow.md +6 -0
  138. package/docs/reference/functions/print.md +6 -0
  139. package/docs/reference/functions/prod.md +6 -0
  140. package/docs/reference/functions/qr.md +6 -0
  141. package/docs/reference/functions/quantileSeq.md +6 -0
  142. package/docs/reference/functions/random.md +6 -0
  143. package/docs/reference/functions/randomInt.md +6 -0
  144. package/docs/reference/functions/range.md +6 -0
  145. package/docs/reference/functions/rationalize.md +7 -1
  146. package/docs/reference/functions/re.md +6 -0
  147. package/docs/reference/functions/reshape.md +7 -0
  148. package/docs/reference/functions/resize.md +6 -0
  149. package/docs/reference/functions/resolve.md +46 -0
  150. package/docs/reference/functions/rightArithShift.md +6 -0
  151. package/docs/reference/functions/rightLogShift.md +6 -0
  152. package/docs/reference/functions/rotate.md +6 -0
  153. package/docs/reference/functions/rotationMatrix.md +6 -0
  154. package/docs/reference/functions/round.md +6 -0
  155. package/docs/reference/functions/row.md +6 -0
  156. package/docs/reference/functions/sec.md +6 -0
  157. package/docs/reference/functions/sech.md +6 -0
  158. package/docs/reference/functions/setCartesian.md +6 -0
  159. package/docs/reference/functions/setDifference.md +6 -0
  160. package/docs/reference/functions/setDistinct.md +6 -0
  161. package/docs/reference/functions/setIntersect.md +6 -0
  162. package/docs/reference/functions/setIsSubset.md +6 -0
  163. package/docs/reference/functions/setMultiplicity.md +6 -0
  164. package/docs/reference/functions/setPowerset.md +6 -0
  165. package/docs/reference/functions/setSize.md +6 -0
  166. package/docs/reference/functions/setSymDifference.md +6 -0
  167. package/docs/reference/functions/setUnion.md +6 -0
  168. package/docs/reference/functions/sign.md +6 -0
  169. package/docs/reference/functions/simplify.md +47 -7
  170. package/docs/reference/functions/simplifyCore.md +50 -0
  171. package/docs/reference/functions/sin.md +6 -0
  172. package/docs/reference/functions/sinh.md +6 -0
  173. package/docs/reference/functions/size.md +6 -0
  174. package/docs/reference/functions/slu.md +6 -0
  175. package/docs/reference/functions/smaller.md +6 -0
  176. package/docs/reference/functions/smallerEq.md +6 -0
  177. package/docs/reference/functions/sort.md +6 -0
  178. package/docs/reference/functions/sqrt.md +6 -0
  179. package/docs/reference/functions/sqrtm.md +6 -0
  180. package/docs/reference/functions/square.md +6 -0
  181. package/docs/reference/functions/squeeze.md +6 -0
  182. package/docs/reference/functions/std.md +6 -0
  183. package/docs/reference/functions/stirlingS2.md +6 -0
  184. package/docs/reference/functions/subset.md +16 -2
  185. package/docs/reference/functions/subtract.md +6 -0
  186. package/docs/reference/functions/sum.md +6 -0
  187. package/docs/reference/functions/symbolicEqual.md +62 -0
  188. package/docs/reference/functions/tan.md +6 -0
  189. package/docs/reference/functions/tanh.md +6 -0
  190. package/docs/reference/functions/to.md +6 -0
  191. package/docs/reference/functions/trace.md +6 -0
  192. package/docs/reference/functions/transpose.md +6 -0
  193. package/docs/reference/functions/typeOf.md +6 -0
  194. package/docs/reference/functions/unaryMinus.md +6 -0
  195. package/docs/reference/functions/unaryPlus.md +6 -0
  196. package/docs/reference/functions/unequal.md +6 -0
  197. package/docs/reference/functions/usolve.md +6 -0
  198. package/docs/reference/functions/usolveAll.md +6 -0
  199. package/docs/reference/functions/variance.md +6 -0
  200. package/docs/reference/functions/xgcd.md +6 -0
  201. package/docs/reference/functions/xor.md +6 -0
  202. package/docs/reference/functions/zeros.md +6 -0
  203. package/docs/reference/functions.md +5 -1
  204. package/lib/browser/math.js +6 -6
  205. package/lib/browser/math.js.map +1 -1
  206. package/lib/cjs/core/create.js +4 -4
  207. package/lib/cjs/core/function/import.js +3 -3
  208. package/lib/cjs/core/function/typed.js +2 -2
  209. package/lib/cjs/defaultInstance.js +3 -3
  210. package/lib/cjs/entry/allFactoriesAny.js +1 -1
  211. package/lib/cjs/entry/allFactoriesNumber.js +1 -1
  212. package/lib/cjs/entry/configReadonly.js +1 -1
  213. package/lib/cjs/entry/dependenciesAny/dependenciesLeafCount.generated.js +23 -0
  214. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +3 -0
  215. package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +32 -0
  216. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +6 -0
  217. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +65 -0
  218. package/lib/cjs/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +29 -0
  219. package/lib/cjs/entry/dependenciesAny.generated.js +32 -0
  220. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +3 -0
  221. package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +32 -0
  222. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +6 -0
  223. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +65 -0
  224. package/lib/cjs/entry/dependenciesNumber.generated.js +16 -0
  225. package/lib/cjs/entry/impureFunctionsAny.generated.js +80 -34
  226. package/lib/cjs/entry/impureFunctionsNumber.generated.js +96 -64
  227. package/lib/cjs/entry/pureFunctionsAny.generated.js +62 -64
  228. package/lib/cjs/entry/pureFunctionsNumber.generated.js +46 -48
  229. package/lib/cjs/expression/Help.js +4 -0
  230. package/lib/cjs/expression/Parser.js +1 -1
  231. package/lib/cjs/expression/embeddedDocs/core/typed.js +1 -1
  232. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +247 -235
  233. package/lib/cjs/expression/embeddedDocs/function/algebra/leafCount.js +15 -0
  234. package/lib/cjs/expression/embeddedDocs/function/algebra/resolve.js +16 -0
  235. package/lib/cjs/expression/embeddedDocs/function/algebra/simplify.js +1 -1
  236. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +15 -0
  237. package/lib/cjs/expression/embeddedDocs/function/algebra/symbolicEqual.js +15 -0
  238. package/lib/cjs/expression/embeddedDocs/function/matrix/subset.js +2 -2
  239. package/lib/cjs/expression/node/FunctionNode.js +80 -61
  240. package/lib/cjs/expression/node/IndexNode.js +1 -1
  241. package/lib/cjs/expression/node/Node.js +3 -3
  242. package/lib/cjs/expression/node/ObjectNode.js +1 -1
  243. package/lib/cjs/expression/node/utils/access.js +1 -1
  244. package/lib/cjs/expression/node/utils/assign.js +1 -1
  245. package/lib/cjs/expression/parse.js +13 -13
  246. package/lib/cjs/factoriesAny.js +32 -0
  247. package/lib/cjs/factoriesNumber.js +16 -0
  248. package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
  249. package/lib/cjs/function/algebra/leafCount.js +66 -0
  250. package/lib/cjs/function/algebra/rationalize.js +24 -41
  251. package/lib/cjs/function/algebra/resolve.js +106 -0
  252. package/lib/cjs/function/algebra/simplify/simplifyConstant.js +5 -5
  253. package/lib/cjs/function/algebra/simplify/util.js +171 -33
  254. package/lib/cjs/function/algebra/simplify.js +588 -211
  255. package/lib/cjs/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +67 -43
  256. package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
  257. package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
  258. package/lib/cjs/function/algebra/symbolicEqual.js +88 -0
  259. package/lib/cjs/function/arithmetic/ceil.js +3 -3
  260. package/lib/cjs/function/arithmetic/floor.js +3 -3
  261. package/lib/cjs/function/arithmetic/invmod.js +1 -1
  262. package/lib/cjs/function/arithmetic/norm.js +1 -1
  263. package/lib/cjs/function/arithmetic/round.js +1 -1
  264. package/lib/cjs/function/matrix/eigs/complexEigs.js +13 -11
  265. package/lib/cjs/function/matrix/map.js +53 -15
  266. package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
  267. package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
  268. package/lib/cjs/function/matrix/subset.js +15 -5
  269. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  270. package/lib/cjs/function/relational/compareNatural.js +6 -6
  271. package/lib/cjs/header.js +2 -2
  272. package/lib/cjs/plain/bignumber/index.js +1 -1
  273. package/lib/cjs/plain/number/combinations.js +18 -6
  274. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  275. package/lib/cjs/type/bignumber/function/bignumber.js +1 -1
  276. package/lib/cjs/type/boolean.js +2 -2
  277. package/lib/cjs/type/complex/Complex.js +14 -14
  278. package/lib/cjs/type/complex/function/complex.js +1 -1
  279. package/lib/cjs/type/fraction/Fraction.js +6 -6
  280. package/lib/cjs/type/fraction/function/fraction.js +1 -1
  281. package/lib/cjs/type/matrix/DenseMatrix.js +5 -5
  282. package/lib/cjs/type/matrix/SparseMatrix.js +2 -2
  283. package/lib/cjs/type/number.js +1 -1
  284. package/lib/cjs/type/string.js +2 -2
  285. package/lib/cjs/type/unit/Unit.js +8 -8
  286. package/lib/cjs/utils/customs.js +2 -2
  287. package/lib/cjs/utils/emitter.js +1 -1
  288. package/lib/cjs/utils/function.js +2 -2
  289. package/lib/cjs/utils/is.js +6 -6
  290. package/lib/cjs/utils/latex.js +3 -3
  291. package/lib/cjs/utils/lruQueue.js +1 -1
  292. package/lib/cjs/utils/map.js +3 -3
  293. package/lib/cjs/utils/object.js +2 -2
  294. package/lib/cjs/utils/snapshot.js +7 -7
  295. package/lib/cjs/utils/string.js +2 -2
  296. package/lib/cjs/version.js +1 -1
  297. package/lib/esm/entry/dependenciesAny/dependenciesLeafCount.generated.js +12 -0
  298. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
  299. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +18 -0
  300. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +4 -0
  301. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +40 -0
  302. package/lib/esm/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +16 -0
  303. package/lib/esm/entry/dependenciesAny.generated.js +4 -0
  304. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +2 -0
  305. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +18 -0
  306. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +4 -0
  307. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +40 -0
  308. package/lib/esm/entry/dependenciesNumber.generated.js +2 -0
  309. package/lib/esm/entry/impureFunctionsAny.generated.js +69 -27
  310. package/lib/esm/entry/impureFunctionsNumber.generated.js +83 -53
  311. package/lib/esm/entry/pureFunctionsAny.generated.js +49 -49
  312. package/lib/esm/entry/pureFunctionsNumber.generated.js +32 -32
  313. package/lib/esm/expression/Help.js +4 -0
  314. package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
  315. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +220 -212
  316. package/lib/esm/expression/embeddedDocs/function/algebra/leafCount.js +8 -0
  317. package/lib/esm/expression/embeddedDocs/function/algebra/resolve.js +9 -0
  318. package/lib/esm/expression/embeddedDocs/function/algebra/simplify.js +1 -1
  319. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +8 -0
  320. package/lib/esm/expression/embeddedDocs/function/algebra/symbolicEqual.js +8 -0
  321. package/lib/esm/expression/embeddedDocs/function/matrix/subset.js +2 -2
  322. package/lib/esm/expression/node/FunctionNode.js +70 -53
  323. package/lib/esm/factoriesAny.js +4 -0
  324. package/lib/esm/factoriesNumber.js +2 -0
  325. package/lib/esm/function/algebra/leafCount.js +59 -0
  326. package/lib/esm/function/algebra/rationalize.js +24 -40
  327. package/lib/esm/function/algebra/resolve.js +95 -0
  328. package/lib/esm/function/algebra/simplify/simplifyConstant.js +3 -3
  329. package/lib/esm/function/algebra/simplify/util.js +170 -34
  330. package/lib/esm/function/algebra/simplify.js +583 -206
  331. package/lib/esm/function/algebra/{simplify/simplifyCore.js → simplifyCore.js} +60 -44
  332. package/lib/esm/function/algebra/symbolicEqual.js +80 -0
  333. package/lib/esm/function/matrix/eigs/complexEigs.js +8 -6
  334. package/lib/esm/function/matrix/map.js +53 -15
  335. package/lib/esm/function/matrix/subset.js +15 -5
  336. package/lib/esm/plain/number/combinations.js +18 -6
  337. package/lib/esm/version.js +1 -1
  338. package/package.json +20 -15
  339. package/types/index.d.ts +52 -10
  340. package/lib/cjs/function/algebra/simplify/resolve.js +0 -76
  341. package/lib/esm/function/algebra/simplify/resolve.js +0 -67
package/types/index.d.ts CHANGED
@@ -575,7 +575,7 @@ declare namespace math {
575
575
  * @param unit The unit to be created
576
576
  * @returns The created unit
577
577
  */
578
- unit(value: number | MathArray | Matrix, unit: string): Unit;
578
+ unit(value: number | MathArray | Matrix | BigNumber, unit: string): Unit;
579
579
 
580
580
  /*************************************************************************
581
581
  * Expression functions
@@ -1674,6 +1674,19 @@ declare namespace math {
1674
1674
  column: number
1675
1675
  ): T;
1676
1676
 
1677
+ /**
1678
+ * Return a rotated matrix.
1679
+ * @param {Array | Matrix} w Vector to rotate
1680
+ * @param {number | BigNumber | Complex | Unit} theta Rotation angle
1681
+ * @param {Array | Matrix} [v] Rotation axis
1682
+ * @return {Array | Matrix} Multiplication of the rotation matrix and w
1683
+ */
1684
+ rotate<T extends MathArray | Matrix>(
1685
+ w: T,
1686
+ theta: number | BigNumber | Complex | Unit,
1687
+ v?: T
1688
+ ): T;
1689
+
1677
1690
  /**
1678
1691
  * Calculate the size of a matrix or scalar.
1679
1692
  * @param A matrix
@@ -1710,7 +1723,7 @@ declare namespace math {
1710
1723
  /**
1711
1724
  * Get or set a subset of a matrix or string.
1712
1725
  * @param value An array, matrix, or string
1713
- * @param index An index containing ranges for each dimension
1726
+ * @param index For each dimension, an index or list of indices to get or set.
1714
1727
  * @param replacement An array, matrix, or scalar. If provided, the
1715
1728
  * subset is replaced with replacement. If not provided, the subset is
1716
1729
  * returned
@@ -1783,7 +1796,7 @@ declare namespace math {
1783
1796
  * @param n A real or complex number
1784
1797
  * @returns The gamma of n
1785
1798
  */
1786
- gamma(n: number | MathArray | Matrix): number | MathArray | Matrix;
1799
+ gamma<T extends number | BigNumber | Complex | MathArray | Matrix>(n: T): NoLiteralType<T>;
1787
1800
 
1788
1801
  /**
1789
1802
  * Calculate the Kullback-Leibler (KL) divergence between two
@@ -3121,6 +3134,28 @@ declare namespace math {
3121
3134
  fixPrefix?: boolean;
3122
3135
  }
3123
3136
 
3137
+ interface UnitComponent {
3138
+ power: number;
3139
+ prefix: string;
3140
+ unit: {
3141
+ name: string;
3142
+ base: {
3143
+ dimensions: number[];
3144
+ key: string;
3145
+ };
3146
+ prefixes: Record<string, UnitPrefix>;
3147
+ value: number;
3148
+ offset: number;
3149
+ dimensions: number[];
3150
+ };
3151
+ }
3152
+
3153
+ interface UnitPrefix {
3154
+ name: string;
3155
+ value: number;
3156
+ scientific: boolean;
3157
+ }
3158
+
3124
3159
  interface Unit {
3125
3160
  valueOf(): string;
3126
3161
  clone(): Unit;
@@ -3139,7 +3174,14 @@ declare namespace math {
3139
3174
  toJSON(): MathJSON;
3140
3175
  formatUnits(): string;
3141
3176
  format(options: FormatOptions): string;
3177
+ simplify(): Unit;
3142
3178
  splitUnit(parts: ReadonlyArray<string | Unit>): Unit[];
3179
+
3180
+ units: UnitComponent[];
3181
+ dimensions: number[];
3182
+ value: number;
3183
+ fixPrefix: boolean;
3184
+ skipAutomaticSimplification: true;
3143
3185
  }
3144
3186
 
3145
3187
  interface CreateUnitOptions {
@@ -3176,8 +3218,6 @@ declare namespace math {
3176
3218
  ): MathNode;
3177
3219
 
3178
3220
  rules: SimplifyRule[];
3179
-
3180
- simplifyCore(expr: MathNode): MathNode;
3181
3221
  }
3182
3222
 
3183
3223
  interface UnitDefinition {
@@ -3409,11 +3449,11 @@ declare namespace math {
3409
3449
 
3410
3450
  interface ConfigOptions {
3411
3451
  epsilon?: number;
3412
- matrix?: string;
3413
- number?: string;
3452
+ matrix?: 'Matrix' | 'Array';
3453
+ number?: 'number' | 'BigNumber' | 'Fraction';
3414
3454
  precision?: number;
3415
- parenthesis?: string;
3416
- randomSeed?: string;
3455
+ predictable?: boolean;
3456
+ randomSeed?: string | null;
3417
3457
  }
3418
3458
 
3419
3459
  interface MathJsJson {
@@ -3640,6 +3680,8 @@ declare namespace math {
3640
3680
  */
3641
3681
  simplify(rules?: SimplifyRule[], scope?: object): MathJsChain;
3642
3682
 
3683
+ simplifyCore(expr: MathNode): MathNode;
3684
+
3643
3685
  /**
3644
3686
  * Calculate the Sparse Matrix LU decomposition with full pivoting.
3645
3687
  * Sparse Matrix A is decomposed in two matrices (L, U) and two
@@ -4277,7 +4319,7 @@ declare namespace math {
4277
4319
 
4278
4320
  /**
4279
4321
  * Get or set a subset of a matrix or string.
4280
- * @param index An index containing ranges for each dimension
4322
+ * @param index For each dimension, an index or list of indices to get or set
4281
4323
  * @param replacement An array, matrix, or scalar. If provided, the
4282
4324
  * subset is replaced with replacement. If not provided, the subset is
4283
4325
  * returned
@@ -1,76 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createResolve = void 0;
7
-
8
- var _map = require("../../../utils/map.js");
9
-
10
- var _is = require("../../../utils/is.js");
11
-
12
- var _factory = require("../../../utils/factory.js");
13
-
14
- var name = 'resolve';
15
- var dependencies = ['parse', 'FunctionNode', 'OperatorNode', 'ParenthesisNode'];
16
- var createResolve = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
17
- var parse = _ref.parse,
18
- FunctionNode = _ref.FunctionNode,
19
- OperatorNode = _ref.OperatorNode,
20
- ParenthesisNode = _ref.ParenthesisNode;
21
-
22
- /**
23
- * resolve(expr, scope) replaces variable nodes with their scoped values
24
- *
25
- * Syntax:
26
- *
27
- * simplify.resolve(expr, scope)
28
- *
29
- * Examples:
30
- *
31
- * math.simplify.resolve('x + y', {x:1, y:2}) // Node {1 + 2}
32
- * math.simplify.resolve(math.parse('x+y'), {x:1, y:2}) // Node {1 + 2}
33
- * math.simplify('x+y', {x:2, y:'x+x'}).toString() // "6"
34
- *
35
- * @param {Node} node
36
- * The expression tree to be simplified
37
- * @param {Object} scope with variables to be resolved
38
- */
39
- function resolve(node, scope) {
40
- if (!scope) {
41
- return node;
42
- }
43
-
44
- if (!(0, _map.isMap)(scope)) {
45
- scope = (0, _map.createMap)(scope);
46
- }
47
-
48
- if ((0, _is.isSymbolNode)(node)) {
49
- var value = scope.get(node.name);
50
-
51
- if ((0, _is.isNode)(value)) {
52
- return resolve(value, scope);
53
- } else if (typeof value === 'number') {
54
- return parse(String(value));
55
- }
56
- } else if ((0, _is.isOperatorNode)(node)) {
57
- var args = node.args.map(function (arg) {
58
- return resolve(arg, scope);
59
- });
60
- return new OperatorNode(node.op, node.fn, args, node.implicit);
61
- } else if ((0, _is.isParenthesisNode)(node)) {
62
- return new ParenthesisNode(resolve(node.content, scope));
63
- } else if ((0, _is.isFunctionNode)(node)) {
64
- var _args = node.args.map(function (arg) {
65
- return resolve(arg, scope);
66
- });
67
-
68
- return new FunctionNode(node.name, _args);
69
- }
70
-
71
- return node;
72
- }
73
-
74
- return resolve;
75
- });
76
- exports.createResolve = createResolve;
@@ -1,67 +0,0 @@
1
- import { createMap, isMap } from '../../../utils/map.js';
2
- import { isFunctionNode, isNode, isOperatorNode, isParenthesisNode, isSymbolNode } from '../../../utils/is.js';
3
- import { factory } from '../../../utils/factory.js';
4
- var name = 'resolve';
5
- var dependencies = ['parse', 'FunctionNode', 'OperatorNode', 'ParenthesisNode'];
6
- export var createResolve = /* #__PURE__ */factory(name, dependencies, _ref => {
7
- var {
8
- parse,
9
- FunctionNode,
10
- OperatorNode,
11
- ParenthesisNode
12
- } = _ref;
13
-
14
- /**
15
- * resolve(expr, scope) replaces variable nodes with their scoped values
16
- *
17
- * Syntax:
18
- *
19
- * simplify.resolve(expr, scope)
20
- *
21
- * Examples:
22
- *
23
- * math.simplify.resolve('x + y', {x:1, y:2}) // Node {1 + 2}
24
- * math.simplify.resolve(math.parse('x+y'), {x:1, y:2}) // Node {1 + 2}
25
- * math.simplify('x+y', {x:2, y:'x+x'}).toString() // "6"
26
- *
27
- * @param {Node} node
28
- * The expression tree to be simplified
29
- * @param {Object} scope with variables to be resolved
30
- */
31
- function resolve(node, scope) {
32
- if (!scope) {
33
- return node;
34
- }
35
-
36
- if (!isMap(scope)) {
37
- scope = createMap(scope);
38
- }
39
-
40
- if (isSymbolNode(node)) {
41
- var value = scope.get(node.name);
42
-
43
- if (isNode(value)) {
44
- return resolve(value, scope);
45
- } else if (typeof value === 'number') {
46
- return parse(String(value));
47
- }
48
- } else if (isOperatorNode(node)) {
49
- var args = node.args.map(function (arg) {
50
- return resolve(arg, scope);
51
- });
52
- return new OperatorNode(node.op, node.fn, args, node.implicit);
53
- } else if (isParenthesisNode(node)) {
54
- return new ParenthesisNode(resolve(node.content, scope));
55
- } else if (isFunctionNode(node)) {
56
- var _args = node.args.map(function (arg) {
57
- return resolve(arg, scope);
58
- });
59
-
60
- return new FunctionNode(node.name, _args);
61
- }
62
-
63
- return node;
64
- }
65
-
66
- return resolve;
67
- });