mathjs 10.6.4 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/HISTORY.md +79 -1
  2. package/README.md +1 -1
  3. package/lib/browser/math.js +2 -41
  4. package/lib/browser/math.js.LICENSE.txt +43 -0
  5. package/lib/browser/math.js.map +1 -1
  6. package/lib/cjs/core/create.js +6 -5
  7. package/lib/cjs/core/function/import.js +4 -14
  8. package/lib/cjs/core/function/typed.js +54 -12
  9. package/lib/cjs/defaultInstance.js +3 -3
  10. package/lib/cjs/entry/allFactoriesAny.js +1 -1
  11. package/lib/cjs/entry/allFactoriesNumber.js +1 -1
  12. package/lib/cjs/entry/configReadonly.js +1 -1
  13. package/lib/cjs/entry/dependenciesAny/dependenciesChainClass.generated.js +3 -0
  14. package/lib/cjs/entry/dependenciesAny/dependenciesKldivergence.generated.js +3 -0
  15. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +3 -0
  16. package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +3 -0
  17. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +3 -0
  18. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +56 -0
  19. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +6 -0
  20. package/lib/cjs/entry/dependenciesAny/dependenciesSqrtm.generated.js +3 -0
  21. package/lib/cjs/entry/dependenciesAny/dependenciesStd.generated.js +3 -0
  22. package/lib/cjs/entry/dependenciesAny/dependenciesStdTransform.generated.js +3 -0
  23. package/lib/cjs/entry/dependenciesAny.generated.js +8 -0
  24. package/lib/cjs/entry/dependenciesNumber/dependenciesChainClass.generated.js +3 -0
  25. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +3 -0
  26. package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +3 -0
  27. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +3 -0
  28. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +50 -0
  29. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +6 -0
  30. package/lib/cjs/entry/dependenciesNumber/dependenciesStd.generated.js +3 -0
  31. package/lib/cjs/entry/dependenciesNumber/dependenciesStdTransform.generated.js +3 -0
  32. package/lib/cjs/entry/dependenciesNumber.generated.js +8 -0
  33. package/lib/cjs/entry/impureFunctionsAny.generated.js +87 -61
  34. package/lib/cjs/entry/impureFunctionsNumber.generated.js +93 -69
  35. package/lib/cjs/entry/pureFunctionsAny.generated.js +50 -45
  36. package/lib/cjs/entry/pureFunctionsNumber.generated.js +22 -19
  37. package/lib/cjs/expression/Parser.js +1 -1
  38. package/lib/cjs/expression/embeddedDocs/construction/index.js +1 -1
  39. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +8 -5
  40. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +15 -0
  41. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  42. package/lib/cjs/expression/node/AccessorNode.js +216 -173
  43. package/lib/cjs/expression/node/ArrayNode.js +206 -160
  44. package/lib/cjs/expression/node/AssignmentNode.js +321 -270
  45. package/lib/cjs/expression/node/BlockNode.js +223 -172
  46. package/lib/cjs/expression/node/ConditionalNode.js +253 -193
  47. package/lib/cjs/expression/node/ConstantNode.js +216 -171
  48. package/lib/cjs/expression/node/FunctionAssignmentNode.js +258 -196
  49. package/lib/cjs/expression/node/FunctionNode.js +456 -416
  50. package/lib/cjs/expression/node/IndexNode.js +256 -210
  51. package/lib/cjs/expression/node/Node.js +411 -378
  52. package/lib/cjs/expression/node/ObjectNode.js +223 -178
  53. package/lib/cjs/expression/node/OperatorNode.js +474 -397
  54. package/lib/cjs/expression/node/ParenthesisNode.js +189 -143
  55. package/lib/cjs/expression/node/RangeNode.js +272 -224
  56. package/lib/cjs/expression/node/RelationalNode.js +246 -195
  57. package/lib/cjs/expression/node/SymbolNode.js +219 -172
  58. package/lib/cjs/expression/node/utils/access.js +1 -1
  59. package/lib/cjs/expression/node/utils/assign.js +1 -1
  60. package/lib/cjs/expression/operators.js +117 -23
  61. package/lib/cjs/expression/parse.js +37 -19
  62. package/lib/cjs/expression/transform/std.transform.js +3 -1
  63. package/lib/cjs/factoriesAny.js +8 -0
  64. package/lib/cjs/factoriesNumber.js +10 -1
  65. package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
  66. package/lib/cjs/function/algebra/derivative.js +25 -33
  67. package/lib/cjs/function/algebra/leafCount.js +0 -3
  68. package/lib/cjs/function/algebra/rationalize.js +78 -108
  69. package/lib/cjs/function/algebra/resolve.js +53 -16
  70. package/lib/cjs/function/algebra/simplify/util.js +1 -1
  71. package/lib/cjs/function/algebra/simplify.js +90 -115
  72. package/lib/cjs/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +44 -10
  73. package/lib/cjs/function/algebra/simplifyCore.js +196 -93
  74. package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
  75. package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
  76. package/lib/cjs/function/algebra/symbolicEqual.js +14 -32
  77. package/lib/cjs/function/arithmetic/abs.js +7 -14
  78. package/lib/cjs/function/arithmetic/add.js +26 -70
  79. package/lib/cjs/function/arithmetic/addScalar.js +17 -9
  80. package/lib/cjs/function/arithmetic/cbrt.js +7 -11
  81. package/lib/cjs/function/arithmetic/ceil.js +50 -40
  82. package/lib/cjs/function/arithmetic/cube.js +5 -10
  83. package/lib/cjs/function/arithmetic/divide.js +7 -7
  84. package/lib/cjs/function/arithmetic/divideScalar.js +4 -18
  85. package/lib/cjs/function/arithmetic/dotDivide.js +22 -65
  86. package/lib/cjs/function/arithmetic/dotMultiply.js +16 -61
  87. package/lib/cjs/function/arithmetic/dotPow.js +30 -63
  88. package/lib/cjs/function/arithmetic/exp.js +8 -12
  89. package/lib/cjs/function/arithmetic/expm1.js +10 -10
  90. package/lib/cjs/function/arithmetic/fix.js +34 -28
  91. package/lib/cjs/function/arithmetic/floor.js +51 -41
  92. package/lib/cjs/function/arithmetic/gcd.js +27 -68
  93. package/lib/cjs/function/arithmetic/hypot.js +9 -5
  94. package/lib/cjs/function/arithmetic/invmod.js +2 -2
  95. package/lib/cjs/function/arithmetic/lcm.js +27 -68
  96. package/lib/cjs/function/arithmetic/log.js +10 -12
  97. package/lib/cjs/function/arithmetic/log10.js +5 -3
  98. package/lib/cjs/function/arithmetic/log1p.js +11 -7
  99. package/lib/cjs/function/arithmetic/log2.js +5 -3
  100. package/lib/cjs/function/arithmetic/mod.js +22 -64
  101. package/lib/cjs/function/arithmetic/multiply.js +40 -35
  102. package/lib/cjs/function/arithmetic/multiplyScalar.js +2 -9
  103. package/lib/cjs/function/arithmetic/norm.js +1 -5
  104. package/lib/cjs/function/arithmetic/nthRoot.js +83 -95
  105. package/lib/cjs/function/arithmetic/nthRoots.js +2 -2
  106. package/lib/cjs/function/arithmetic/round.js +56 -42
  107. package/lib/cjs/function/arithmetic/sign.js +14 -10
  108. package/lib/cjs/function/arithmetic/sqrt.js +5 -9
  109. package/lib/cjs/function/arithmetic/square.js +6 -10
  110. package/lib/cjs/function/arithmetic/subtract.js +44 -100
  111. package/lib/cjs/function/arithmetic/unaryMinus.js +14 -16
  112. package/lib/cjs/function/arithmetic/unaryPlus.js +6 -4
  113. package/lib/cjs/function/bitwise/bitAnd.js +17 -61
  114. package/lib/cjs/function/bitwise/bitNot.js +6 -4
  115. package/lib/cjs/function/bitwise/bitOr.js +16 -60
  116. package/lib/cjs/function/bitwise/bitXor.js +17 -61
  117. package/lib/cjs/function/bitwise/leftShift.js +69 -82
  118. package/lib/cjs/function/bitwise/rightArithShift.js +69 -82
  119. package/lib/cjs/function/bitwise/rightLogShift.js +69 -82
  120. package/lib/cjs/function/bitwise/useMatrixForArrayScalar.js +36 -0
  121. package/lib/cjs/function/complex/arg.js +5 -3
  122. package/lib/cjs/function/complex/conj.js +6 -7
  123. package/lib/cjs/function/complex/im.js +7 -8
  124. package/lib/cjs/function/complex/re.js +6 -10
  125. package/lib/cjs/function/geometry/distance.js +2 -2
  126. package/lib/cjs/function/logical/and.js +74 -80
  127. package/lib/cjs/function/logical/not.js +13 -6
  128. package/lib/cjs/function/logical/or.js +21 -63
  129. package/lib/cjs/function/logical/xor.js +21 -63
  130. package/lib/cjs/function/matrix/diff.js +11 -8
  131. package/lib/cjs/function/matrix/eigs/complexEigs.js +5 -5
  132. package/lib/cjs/function/matrix/fft.js +2 -2
  133. package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
  134. package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
  135. package/lib/cjs/function/matrix/ones.js +2 -1
  136. package/lib/cjs/function/matrix/rotate.js +5 -5
  137. package/lib/cjs/function/matrix/sqrtm.js +3 -2
  138. package/lib/cjs/function/matrix/transpose.js +47 -48
  139. package/lib/cjs/function/matrix/zeros.js +2 -1
  140. package/lib/cjs/function/probability/factorial.js +5 -3
  141. package/lib/cjs/function/probability/gamma.js +38 -40
  142. package/lib/cjs/function/probability/kldivergence.js +5 -2
  143. package/lib/cjs/function/probability/lgamma.js +30 -30
  144. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  145. package/lib/cjs/function/relational/compare.js +21 -67
  146. package/lib/cjs/function/relational/compareNatural.js +59 -54
  147. package/lib/cjs/function/relational/compareText.js +10 -43
  148. package/lib/cjs/function/relational/compareUnits.js +24 -0
  149. package/lib/cjs/function/relational/equal.js +19 -80
  150. package/lib/cjs/function/relational/equalScalar.js +7 -9
  151. package/lib/cjs/function/relational/larger.js +21 -67
  152. package/lib/cjs/function/relational/largerEq.js +21 -67
  153. package/lib/cjs/function/relational/smaller.js +21 -67
  154. package/lib/cjs/function/relational/smallerEq.js +21 -67
  155. package/lib/cjs/function/relational/unequal.js +19 -80
  156. package/lib/cjs/function/special/erf.js +5 -3
  157. package/lib/cjs/function/statistics/std.js +11 -2
  158. package/lib/cjs/function/string/format.js +2 -2
  159. package/lib/cjs/function/string/hex.js +1 -2
  160. package/lib/cjs/function/trigonometry/acos.js +4 -8
  161. package/lib/cjs/function/trigonometry/acosh.js +2 -7
  162. package/lib/cjs/function/trigonometry/acot.js +6 -11
  163. package/lib/cjs/function/trigonometry/acoth.js +4 -8
  164. package/lib/cjs/function/trigonometry/acsc.js +6 -11
  165. package/lib/cjs/function/trigonometry/acsch.js +4 -8
  166. package/lib/cjs/function/trigonometry/asec.js +6 -10
  167. package/lib/cjs/function/trigonometry/asech.js +4 -8
  168. package/lib/cjs/function/trigonometry/asin.js +5 -10
  169. package/lib/cjs/function/trigonometry/asinh.js +4 -9
  170. package/lib/cjs/function/trigonometry/atan.js +5 -11
  171. package/lib/cjs/function/trigonometry/atan2.js +25 -63
  172. package/lib/cjs/function/trigonometry/atanh.js +4 -9
  173. package/lib/cjs/function/trigonometry/cos.js +11 -20
  174. package/lib/cjs/function/trigonometry/cosh.js +5 -19
  175. package/lib/cjs/function/trigonometry/cot.js +9 -15
  176. package/lib/cjs/function/trigonometry/coth.js +4 -15
  177. package/lib/cjs/function/trigonometry/csc.js +11 -17
  178. package/lib/cjs/function/trigonometry/csch.js +4 -15
  179. package/lib/cjs/function/trigonometry/sec.js +11 -17
  180. package/lib/cjs/function/trigonometry/sech.js +4 -15
  181. package/lib/cjs/function/trigonometry/sin.js +11 -21
  182. package/lib/cjs/function/trigonometry/sinh.js +5 -20
  183. package/lib/cjs/function/trigonometry/tan.js +11 -21
  184. package/lib/cjs/function/trigonometry/tanh.js +5 -20
  185. package/lib/cjs/function/trigonometry/trigUnit.js +24 -0
  186. package/lib/cjs/function/unit/to.js +7 -41
  187. package/lib/cjs/function/utils/clone.js +1 -1
  188. package/lib/cjs/function/utils/hasNumericValue.js +5 -1
  189. package/lib/cjs/function/utils/isInteger.js +6 -4
  190. package/lib/cjs/function/utils/isNaN.js +1 -1
  191. package/lib/cjs/function/utils/isNegative.js +11 -7
  192. package/lib/cjs/function/utils/isNumeric.js +6 -4
  193. package/lib/cjs/function/utils/isPositive.js +11 -7
  194. package/lib/cjs/function/utils/isPrime.js +5 -3
  195. package/lib/cjs/function/utils/isZero.js +21 -17
  196. package/lib/cjs/function/utils/numeric.js +11 -4
  197. package/lib/cjs/function/utils/typeOf.js +38 -44
  198. package/lib/cjs/header.js +2 -2
  199. package/lib/cjs/plain/bignumber/index.js +1 -1
  200. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  201. package/lib/cjs/type/bignumber/function/bignumber.js +6 -4
  202. package/lib/cjs/type/boolean.js +7 -5
  203. package/lib/cjs/type/chain/Chain.js +23 -3
  204. package/lib/cjs/type/complex/Complex.js +18 -14
  205. package/lib/cjs/type/complex/function/complex.js +6 -4
  206. package/lib/cjs/type/fraction/Fraction.js +10 -6
  207. package/lib/cjs/type/fraction/function/fraction.js +6 -4
  208. package/lib/cjs/type/matrix/DenseMatrix.js +21 -6
  209. package/lib/cjs/type/matrix/SparseMatrix.js +12 -2
  210. package/lib/cjs/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +4 -4
  211. package/lib/cjs/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +5 -5
  212. package/lib/cjs/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +5 -5
  213. package/lib/cjs/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +7 -7
  214. package/lib/cjs/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +5 -5
  215. package/lib/cjs/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +5 -5
  216. package/lib/cjs/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +5 -5
  217. package/lib/cjs/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +6 -6
  218. package/lib/cjs/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +5 -5
  219. package/lib/cjs/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +5 -5
  220. package/lib/cjs/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +5 -5
  221. package/lib/cjs/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +5 -5
  222. package/lib/cjs/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +5 -5
  223. package/lib/cjs/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +5 -5
  224. package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +238 -0
  225. package/lib/cjs/type/number.js +6 -4
  226. package/lib/cjs/type/string.js +7 -5
  227. package/lib/cjs/type/unit/Unit.js +98 -45
  228. package/lib/cjs/type/unit/function/createUnit.js +2 -1
  229. package/lib/cjs/type/unit/function/unit.js +14 -5
  230. package/lib/cjs/utils/customs.js +2 -2
  231. package/lib/cjs/utils/emitter.js +1 -1
  232. package/lib/cjs/utils/function.js +2 -2
  233. package/lib/cjs/utils/is.js +27 -25
  234. package/lib/cjs/utils/latex.js +3 -3
  235. package/lib/cjs/utils/lruQueue.js +1 -1
  236. package/lib/cjs/utils/map.js +3 -3
  237. package/lib/cjs/utils/object.js +2 -2
  238. package/lib/cjs/utils/snapshot.js +30 -57
  239. package/lib/cjs/utils/string.js +3 -3
  240. package/lib/cjs/version.js +1 -1
  241. package/lib/esm/core/create.js +2 -1
  242. package/lib/esm/core/function/import.js +2 -12
  243. package/lib/esm/core/function/typed.js +47 -11
  244. package/lib/esm/entry/dependenciesAny/dependenciesChainClass.generated.js +2 -0
  245. package/lib/esm/entry/dependenciesAny/dependenciesKldivergence.generated.js +2 -0
  246. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
  247. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +2 -0
  248. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +2 -0
  249. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +34 -0
  250. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +4 -0
  251. package/lib/esm/entry/dependenciesAny/dependenciesSqrtm.generated.js +2 -0
  252. package/lib/esm/entry/dependenciesAny/dependenciesStd.generated.js +2 -0
  253. package/lib/esm/entry/dependenciesAny/dependenciesStdTransform.generated.js +2 -0
  254. package/lib/esm/entry/dependenciesAny.generated.js +1 -0
  255. package/lib/esm/entry/dependenciesNumber/dependenciesChainClass.generated.js +2 -0
  256. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +2 -0
  257. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +2 -0
  258. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +2 -0
  259. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +30 -0
  260. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +4 -0
  261. package/lib/esm/entry/dependenciesNumber/dependenciesStd.generated.js +2 -0
  262. package/lib/esm/entry/dependenciesNumber/dependenciesStdTransform.generated.js +2 -0
  263. package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
  264. package/lib/esm/entry/impureFunctionsAny.generated.js +73 -48
  265. package/lib/esm/entry/impureFunctionsNumber.generated.js +81 -58
  266. package/lib/esm/entry/pureFunctionsAny.generated.js +39 -36
  267. package/lib/esm/entry/pureFunctionsNumber.generated.js +14 -13
  268. package/lib/esm/expression/embeddedDocs/construction/index.js +1 -1
  269. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
  270. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +8 -0
  271. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  272. package/lib/esm/expression/node/AccessorNode.js +158 -153
  273. package/lib/esm/expression/node/ArrayNode.js +162 -154
  274. package/lib/esm/expression/node/AssignmentNode.js +257 -245
  275. package/lib/esm/expression/node/BlockNode.js +177 -163
  276. package/lib/esm/expression/node/ConditionalNode.js +197 -174
  277. package/lib/esm/expression/node/ConstantNode.js +171 -163
  278. package/lib/esm/expression/node/FunctionAssignmentNode.js +205 -180
  279. package/lib/esm/expression/node/FunctionNode.js +407 -407
  280. package/lib/esm/expression/node/IndexNode.js +206 -198
  281. package/lib/esm/expression/node/Node.js +325 -325
  282. package/lib/esm/expression/node/ObjectNode.js +166 -157
  283. package/lib/esm/expression/node/OperatorNode.js +414 -377
  284. package/lib/esm/expression/node/ParenthesisNode.js +146 -138
  285. package/lib/esm/expression/node/RangeNode.js +221 -212
  286. package/lib/esm/expression/node/RelationalNode.js +190 -176
  287. package/lib/esm/expression/node/SymbolNode.js +161 -152
  288. package/lib/esm/expression/operators.js +96 -4
  289. package/lib/esm/expression/parse.js +25 -7
  290. package/lib/esm/expression/transform/std.transform.js +3 -1
  291. package/lib/esm/factoriesAny.js +1 -0
  292. package/lib/esm/factoriesNumber.js +1 -0
  293. package/lib/esm/function/algebra/derivative.js +25 -33
  294. package/lib/esm/function/algebra/leafCount.js +0 -3
  295. package/lib/esm/function/algebra/rationalize.js +83 -114
  296. package/lib/esm/function/algebra/resolve.js +25 -16
  297. package/lib/esm/function/algebra/simplify.js +85 -113
  298. package/lib/esm/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +39 -9
  299. package/lib/esm/function/algebra/simplifyCore.js +192 -91
  300. package/lib/esm/function/algebra/symbolicEqual.js +14 -32
  301. package/lib/esm/function/arithmetic/abs.js +3 -16
  302. package/lib/esm/function/arithmetic/add.js +21 -65
  303. package/lib/esm/function/arithmetic/addScalar.js +11 -5
  304. package/lib/esm/function/arithmetic/cbrt.js +7 -10
  305. package/lib/esm/function/arithmetic/ceil.js +25 -25
  306. package/lib/esm/function/arithmetic/cube.js +5 -9
  307. package/lib/esm/function/arithmetic/divide.js +7 -7
  308. package/lib/esm/function/arithmetic/divideScalar.js +2 -19
  309. package/lib/esm/function/arithmetic/dotDivide.js +22 -64
  310. package/lib/esm/function/arithmetic/dotMultiply.js +16 -60
  311. package/lib/esm/function/arithmetic/dotPow.js +30 -62
  312. package/lib/esm/function/arithmetic/exp.js +8 -11
  313. package/lib/esm/function/arithmetic/expm1.js +10 -9
  314. package/lib/esm/function/arithmetic/fix.js +18 -18
  315. package/lib/esm/function/arithmetic/floor.js +26 -26
  316. package/lib/esm/function/arithmetic/gcd.js +26 -70
  317. package/lib/esm/function/arithmetic/hypot.js +7 -6
  318. package/lib/esm/function/arithmetic/invmod.js +1 -1
  319. package/lib/esm/function/arithmetic/lcm.js +26 -70
  320. package/lib/esm/function/arithmetic/log.js +7 -10
  321. package/lib/esm/function/arithmetic/log10.js +1 -3
  322. package/lib/esm/function/arithmetic/log1p.js +4 -6
  323. package/lib/esm/function/arithmetic/log2.js +1 -3
  324. package/lib/esm/function/arithmetic/mod.js +21 -62
  325. package/lib/esm/function/arithmetic/multiply.js +23 -27
  326. package/lib/esm/function/arithmetic/multiplyScalar.js +2 -13
  327. package/lib/esm/function/arithmetic/norm.js +0 -4
  328. package/lib/esm/function/arithmetic/nthRoot.js +41 -76
  329. package/lib/esm/function/arithmetic/nthRoots.js +2 -2
  330. package/lib/esm/function/arithmetic/round.js +26 -28
  331. package/lib/esm/function/arithmetic/sign.js +5 -7
  332. package/lib/esm/function/arithmetic/sqrt.js +5 -8
  333. package/lib/esm/function/arithmetic/square.js +6 -9
  334. package/lib/esm/function/arithmetic/subtract.js +31 -95
  335. package/lib/esm/function/arithmetic/unaryMinus.js +6 -16
  336. package/lib/esm/function/arithmetic/unaryPlus.js +2 -4
  337. package/lib/esm/function/bitwise/bitAnd.js +16 -59
  338. package/lib/esm/function/bitwise/bitNot.js +2 -4
  339. package/lib/esm/function/bitwise/bitOr.js +16 -59
  340. package/lib/esm/function/bitwise/bitXor.js +16 -59
  341. package/lib/esm/function/bitwise/leftShift.js +39 -61
  342. package/lib/esm/function/bitwise/rightArithShift.js +39 -61
  343. package/lib/esm/function/bitwise/rightLogShift.js +39 -61
  344. package/lib/esm/function/bitwise/useMatrixForArrayScalar.js +13 -0
  345. package/lib/esm/function/complex/arg.js +1 -3
  346. package/lib/esm/function/complex/conj.js +3 -12
  347. package/lib/esm/function/complex/im.js +4 -15
  348. package/lib/esm/function/complex/re.js +3 -15
  349. package/lib/esm/function/geometry/distance.js +2 -2
  350. package/lib/esm/function/logical/and.js +35 -57
  351. package/lib/esm/function/logical/not.js +3 -6
  352. package/lib/esm/function/logical/or.js +16 -61
  353. package/lib/esm/function/logical/xor.js +16 -61
  354. package/lib/esm/function/matrix/diff.js +3 -8
  355. package/lib/esm/function/matrix/ones.js +2 -1
  356. package/lib/esm/function/matrix/rotate.js +5 -5
  357. package/lib/esm/function/matrix/sqrtm.js +3 -2
  358. package/lib/esm/function/matrix/transpose.js +47 -50
  359. package/lib/esm/function/matrix/zeros.js +2 -1
  360. package/lib/esm/function/probability/factorial.js +1 -3
  361. package/lib/esm/function/probability/gamma.js +38 -39
  362. package/lib/esm/function/probability/kldivergence.js +3 -2
  363. package/lib/esm/function/probability/lgamma.js +29 -29
  364. package/lib/esm/function/relational/compare.js +21 -67
  365. package/lib/esm/function/relational/compareNatural.js +54 -49
  366. package/lib/esm/function/relational/compareText.js +10 -42
  367. package/lib/esm/function/relational/compareUnits.js +15 -0
  368. package/lib/esm/function/relational/equal.js +19 -79
  369. package/lib/esm/function/relational/equalScalar.js +6 -9
  370. package/lib/esm/function/relational/larger.js +23 -73
  371. package/lib/esm/function/relational/largerEq.js +23 -73
  372. package/lib/esm/function/relational/smaller.js +23 -73
  373. package/lib/esm/function/relational/smallerEq.js +23 -73
  374. package/lib/esm/function/relational/unequal.js +19 -79
  375. package/lib/esm/function/special/erf.js +1 -3
  376. package/lib/esm/function/statistics/std.js +10 -2
  377. package/lib/esm/function/string/format.js +2 -2
  378. package/lib/esm/function/string/hex.js +1 -2
  379. package/lib/esm/function/trigonometry/acos.js +4 -7
  380. package/lib/esm/function/trigonometry/acosh.js +2 -6
  381. package/lib/esm/function/trigonometry/acot.js +6 -10
  382. package/lib/esm/function/trigonometry/acoth.js +4 -7
  383. package/lib/esm/function/trigonometry/acsc.js +6 -10
  384. package/lib/esm/function/trigonometry/acsch.js +4 -7
  385. package/lib/esm/function/trigonometry/asec.js +6 -9
  386. package/lib/esm/function/trigonometry/asech.js +4 -7
  387. package/lib/esm/function/trigonometry/asin.js +5 -9
  388. package/lib/esm/function/trigonometry/asinh.js +4 -8
  389. package/lib/esm/function/trigonometry/atan.js +5 -10
  390. package/lib/esm/function/trigonometry/atan2.js +26 -65
  391. package/lib/esm/function/trigonometry/atanh.js +4 -8
  392. package/lib/esm/function/trigonometry/cos.js +11 -22
  393. package/lib/esm/function/trigonometry/cosh.js +5 -20
  394. package/lib/esm/function/trigonometry/cot.js +10 -20
  395. package/lib/esm/function/trigonometry/coth.js +6 -20
  396. package/lib/esm/function/trigonometry/csc.js +12 -22
  397. package/lib/esm/function/trigonometry/csch.js +6 -20
  398. package/lib/esm/function/trigonometry/sec.js +12 -22
  399. package/lib/esm/function/trigonometry/sech.js +6 -20
  400. package/lib/esm/function/trigonometry/sin.js +11 -23
  401. package/lib/esm/function/trigonometry/sinh.js +5 -21
  402. package/lib/esm/function/trigonometry/tan.js +11 -23
  403. package/lib/esm/function/trigonometry/tanh.js +5 -21
  404. package/lib/esm/function/trigonometry/trigUnit.js +15 -0
  405. package/lib/esm/function/unit/to.js +8 -43
  406. package/lib/esm/function/utils/clone.js +1 -1
  407. package/lib/esm/function/utils/hasNumericValue.js +3 -1
  408. package/lib/esm/function/utils/isInteger.js +2 -4
  409. package/lib/esm/function/utils/isNaN.js +1 -1
  410. package/lib/esm/function/utils/isNegative.js +3 -7
  411. package/lib/esm/function/utils/isNumeric.js +4 -10
  412. package/lib/esm/function/utils/isPositive.js +3 -7
  413. package/lib/esm/function/utils/isPrime.js +1 -3
  414. package/lib/esm/function/utils/isZero.js +13 -17
  415. package/lib/esm/function/utils/numeric.js +11 -4
  416. package/lib/esm/function/utils/typeOf.js +38 -44
  417. package/lib/esm/type/bignumber/function/bignumber.js +1 -3
  418. package/lib/esm/type/boolean.js +1 -3
  419. package/lib/esm/type/chain/Chain.js +23 -3
  420. package/lib/esm/type/complex/Complex.js +4 -0
  421. package/lib/esm/type/complex/function/complex.js +1 -3
  422. package/lib/esm/type/fraction/Fraction.js +4 -0
  423. package/lib/esm/type/fraction/function/fraction.js +1 -3
  424. package/lib/esm/type/matrix/DenseMatrix.js +15 -1
  425. package/lib/esm/type/matrix/SparseMatrix.js +9 -0
  426. package/lib/esm/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +2 -2
  427. package/lib/esm/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +3 -3
  428. package/lib/esm/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +3 -3
  429. package/lib/esm/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +5 -5
  430. package/lib/esm/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +3 -3
  431. package/lib/esm/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +3 -3
  432. package/lib/esm/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +3 -3
  433. package/lib/esm/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +4 -4
  434. package/lib/esm/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +3 -3
  435. package/lib/esm/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +3 -3
  436. package/lib/esm/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +3 -3
  437. package/lib/esm/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +3 -3
  438. package/lib/esm/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +3 -3
  439. package/lib/esm/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +3 -3
  440. package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +168 -0
  441. package/lib/esm/type/number.js +1 -3
  442. package/lib/esm/type/string.js +1 -3
  443. package/lib/esm/type/unit/Unit.js +85 -36
  444. package/lib/esm/type/unit/function/createUnit.js +2 -1
  445. package/lib/esm/type/unit/function/unit.js +10 -5
  446. package/lib/esm/utils/is.js +18 -18
  447. package/lib/esm/utils/snapshot.js +22 -48
  448. package/lib/esm/version.js +1 -1
  449. package/package.json +22 -25
  450. package/types/index.d.ts +211 -180
  451. package/types/index.ts +358 -144
  452. package/types/tsconfig.json +4 -1
  453. package/lib/cjs/utils/polyfills.js +0 -14
  454. package/lib/esm/utils/polyfills.js +0 -12
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { config } from './configReadonly.js';
6
6
  import { createBigNumberClass, createComplexClass, createE, createFalse, createFineStructure, createFractionClass, createI, createInfinity, createLN10, createLOG10E, createMatrixClass, createNaN, createNull, createPhi, createRangeClass, createResultSet, createSQRT1_2, // eslint-disable-line camelcase
7
- createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createUnaryPlus, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBignumber, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCosh, createCoth, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLgamma, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBin, createCombinationsWithRep, createCos, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createCot, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMod, createNthRoot, createNumeric, createOr, createProd, createReshape, createSize, createSmaller, createSqueeze, createSubset, createSubtract, createTo, createTranspose, createXgcd, createZeros, createAnd, createBitAnd, createBitXor, createCbrt, createCompare, createCompareText, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFft, createFlatten, createGcd, createHasNumericValue, createHypot, createIfft, createKron, createLargerEq, createLeftShift, createLsolve, createMatrixFromColumns, createMin, createMode, createNthRoots, createOnes, createPartitionSelect, createResize, createRightArithShift, createRound, createSmallerEq, createUnequal, createUsolve, createXor, createAdd, createAtan2, createBitOr, createCatalan, createCompareNatural, createCumSum, createDeepEqual, createDiff, createDot, createEqualText, createFloor, createIdentity, createInvmod, createLarger, createLog, createLsolveAll, createMatrixFromRows, createMultiply, createQr, createRange, createRightLogShift, createSetSize, createSlu, createSum, createTrace, createUsolveAll, createAsin, createCeil, createComposition, createCross, createDet, createDistance, createDotMultiply, createFibonacciHeapClass, createFix, createImmutableDenseMatrixClass, createIndexClass, createIntersect, createLcm, createLog1p, createMax, createQuantileSeq, createRow, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSort, createColumn, createIndex, createInv, createPinv, createPow, createSetDifference, createSetMultiplicity, createSpaClass, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCreateUnit, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFirstRadiation, createGamma, createGravitationConstant, createHartreeEnergy, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createReducedPlanckConstant, createRydberg, createSetIntersect, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCoulomb, createDivide, createElectronMass, createFactorial, createGravity, createInverseConductanceQuantum, createLup, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createQuantumOfCirculation, createSecondRadiation, createStirlingS2, createUnitFunction, createBellNumbers, createEigs, createFermiCoupling, createMean, createMolarVolume, createPlanckConstant, createSetSymDifference, createClassicalElectronRadius, createLusolve, createMedian, createSetUnion, createVariance, createKldivergence, createNorm, createPlanckTime, createRotationMatrix, createGasConstant, createStd, createMad, createRotate } from '../factoriesAny.js';
7
+ createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createUnaryPlus, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBignumber, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCosh, createCoth, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLgamma, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBin, createCombinationsWithRep, createCos, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createCot, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMod, createNthRoot, createNumeric, createOr, createProd, createReshape, createSize, createSmaller, createSqueeze, createSubset, createSubtract, createTo, createTranspose, createXgcd, createZeros, createAnd, createBitAnd, createBitXor, createCbrt, createCompare, createCompareText, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFft, createFlatten, createGcd, createHasNumericValue, createHypot, createIfft, createKron, createLargerEq, createLeftShift, createLsolve, createMatrixFromColumns, createMin, createMode, createNthRoots, createOnes, createPartitionSelect, createResize, createRightArithShift, createRound, createSmallerEq, createUnequal, createUsolve, createXor, createAdd, createAtan2, createBitOr, createCatalan, createCompareNatural, createCumSum, createDeepEqual, createDiff, createDot, createEqualText, createFloor, createIdentity, createInvmod, createLarger, createLog, createLsolveAll, createMatrixFromRows, createMultiply, createQr, createRange, createRightLogShift, createSetSize, createSlu, createSum, createTrace, createUsolveAll, createAsin, createCeil, createComposition, createCross, createDet, createDistance, createDotMultiply, createFibonacciHeapClass, createFix, createImmutableDenseMatrixClass, createIndexClass, createIntersect, createLcm, createLog1p, createMax, createQuantileSeq, createRow, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSort, createColumn, createIndex, createInv, createPinv, createPow, createSetDifference, createSetMultiplicity, createSpaClass, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCreateUnit, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFirstRadiation, createGamma, createGravitationConstant, createHartreeEnergy, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createReducedPlanckConstant, createRydberg, createSetIntersect, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCoulomb, createDivide, createElectronMass, createFactorial, createGravity, createInverseConductanceQuantum, createLup, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createQuantumOfCirculation, createSecondRadiation, createStirlingS2, createUnitFunction, createBellNumbers, createEigs, createFermiCoupling, createMean, createMolarVolume, createPlanckConstant, createSetSymDifference, createVariance, createClassicalElectronRadius, createLusolve, createMedian, createSetUnion, createStd, createGasConstant, createMad, createNorm, createRotationMatrix, createKldivergence, createRotate, createPlanckTime } from '../factoriesAny.js';
8
8
  export var BigNumber = /* #__PURE__ */createBigNumberClass({
9
9
  config
10
10
  });
@@ -1124,6 +1124,7 @@ export var sqrtm = /* #__PURE__ */createSqrtm({
1124
1124
  add,
1125
1125
  identity,
1126
1126
  inv,
1127
+ map,
1127
1128
  max,
1128
1129
  multiply,
1129
1130
  size,
@@ -1511,6 +1512,15 @@ export var setSymDifference = /* #__PURE__ */createSetSymDifference({
1511
1512
  subset,
1512
1513
  typed
1513
1514
  });
1515
+ export var variance = /* #__PURE__ */createVariance({
1516
+ add,
1517
+ apply,
1518
+ divide,
1519
+ isNaN,
1520
+ multiply,
1521
+ subtract,
1522
+ typed
1523
+ });
1514
1524
  export var classicalElectronRadius = /* #__PURE__ */createClassicalElectronRadius({
1515
1525
  BigNumber,
1516
1526
  Unit,
@@ -1541,23 +1551,22 @@ export var setUnion = /* #__PURE__ */createSetUnion({
1541
1551
  subset,
1542
1552
  typed
1543
1553
  });
1544
- export var variance = /* #__PURE__ */createVariance({
1545
- add,
1546
- apply,
1547
- divide,
1548
- isNaN,
1549
- multiply,
1550
- subtract,
1551
- typed
1554
+ export var std = /* #__PURE__ */createStd({
1555
+ map,
1556
+ sqrt,
1557
+ typed,
1558
+ variance
1552
1559
  });
1553
- export var kldivergence = /* #__PURE__ */createKldivergence({
1554
- divide,
1555
- dotDivide,
1556
- isNumeric,
1557
- log,
1558
- matrix,
1559
- multiply,
1560
- sum,
1560
+ export var gasConstant = /* #__PURE__ */createGasConstant({
1561
+ BigNumber,
1562
+ Unit,
1563
+ config
1564
+ });
1565
+ export var mad = /* #__PURE__ */createMad({
1566
+ abs,
1567
+ map,
1568
+ median,
1569
+ subtract,
1561
1570
  typed
1562
1571
  });
1563
1572
  export var norm = /* #__PURE__ */createNorm({
@@ -1575,11 +1584,6 @@ export var norm = /* #__PURE__ */createNorm({
1575
1584
  sqrt,
1576
1585
  typed
1577
1586
  });
1578
- export var planckTime = /* #__PURE__ */createPlanckTime({
1579
- BigNumber,
1580
- Unit,
1581
- config
1582
- });
1583
1587
  export var rotationMatrix = /* #__PURE__ */createRotationMatrix({
1584
1588
  BigNumber,
1585
1589
  DenseMatrix,
@@ -1594,25 +1598,24 @@ export var rotationMatrix = /* #__PURE__ */createRotationMatrix({
1594
1598
  typed,
1595
1599
  unaryMinus
1596
1600
  });
1597
- export var gasConstant = /* #__PURE__ */createGasConstant({
1598
- BigNumber,
1599
- Unit,
1600
- config
1601
- });
1602
- export var std = /* #__PURE__ */createStd({
1603
- sqrt,
1604
- typed,
1605
- variance
1606
- });
1607
- export var mad = /* #__PURE__ */createMad({
1608
- abs,
1601
+ export var kldivergence = /* #__PURE__ */createKldivergence({
1602
+ divide,
1603
+ dotDivide,
1604
+ isNumeric,
1605
+ log,
1609
1606
  map,
1610
- median,
1611
- subtract,
1607
+ matrix,
1608
+ multiply,
1609
+ sum,
1612
1610
  typed
1613
1611
  });
1614
1612
  export var rotate = /* #__PURE__ */createRotate({
1615
1613
  multiply,
1616
1614
  rotationMatrix,
1617
1615
  typed
1616
+ });
1617
+ export var planckTime = /* #__PURE__ */createPlanckTime({
1618
+ BigNumber,
1619
+ Unit,
1620
+ config
1618
1621
  });
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { config } from './configReadonly.js';
6
6
  import { createE, createFalse, createIndex, createInfinity, createLN10, createLOG10E, createMatrix, createNaN, createNull, createPhi, createRangeClass, createReplacer, createResultSet, createSQRT1_2, // eslint-disable-line camelcase
7
- createSubset, createTau, createTyped, createUnaryPlus, createVersion, createXor, createAbs, createAcos, createAcot, createAcsc, createAdd, createAnd, createAsec, createAsin, createAtan, createAtanh, createBitAnd, createBitOr, createBoolean, createCbrt, createCombinations, createCompare, createCompareText, createCos, createCot, createCsc, createCube, createDivide, createEqualScalar, createErf, createExp, createFilter, createForEach, createFormat, createGamma, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLargerEq, createLeftShift, createLog, createLog1p, createMap, createMean, createMod, createMultiply, createNot, createNumber, createOr, createPi, createPow, createRandom, createRightLogShift, createSQRT2, createSech, createSin, createSize, createSmallerEq, createSquare, createString, createSubtract, createTanh, createTypeOf, createUnequal, createXgcd, createAcoth, createAddScalar, createAsech, createBitNot, createClone, createCompareNatural, createCosh, createCsch, createDivideScalar, createEqualText, createExpm1, createIsNumeric, createLN2, createLcm, createLog10, createMultiplyScalar, createNthRoot, createPickRandom, createRandomInt, createRightArithShift, createSec, createSinh, createSqrt, createTan, createUnaryMinus, createAcosh, createApply, createAsinh, createBitXor, createCombinationsWithRep, createCumSum, createEqual, createFactorial, createHasNumericValue, createIsNaN, createLarger, createLog2, createMode, createNorm, createPartitionSelect, createPrint, createQuantileSeq, createRound, createSmaller, createStirlingS2, createTrue, createVariance, createAcsch, createAtan2, createCatalan, createComposition, createDeepEqual, createFloor, createHypot, createLgamma, createMedian, createMultinomial, createPermutations, createRange, createSign, createStd, createCeil, createCoth, createFix, createIsPrime, createNumeric, createProd, createSum, createBellNumbers, createGcd, createMad, createMax, createMin } from '../factoriesNumber.js';
7
+ createSubset, createTau, createTyped, createUnaryPlus, createVersion, createXor, createAbs, createAcos, createAcot, createAcsc, createAdd, createAnd, createAsec, createAsin, createAtan, createAtanh, createBitAnd, createBitOr, createBoolean, createCbrt, createCombinations, createCompare, createCompareText, createCos, createCot, createCsc, createCube, createDivide, createEqualScalar, createErf, createExp, createFilter, createForEach, createFormat, createGamma, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLargerEq, createLeftShift, createLog, createLog1p, createMap, createMean, createMod, createMultiply, createNot, createNumber, createOr, createPi, createPow, createRandom, createRightLogShift, createSQRT2, createSech, createSin, createSize, createSmallerEq, createSquare, createString, createSubtract, createTanh, createTypeOf, createUnequal, createXgcd, createAcoth, createAddScalar, createAsech, createBitNot, createCombinationsWithRep, createCosh, createCsch, createDivideScalar, createEqualText, createExpm1, createIsNumeric, createLN2, createLcm, createLog10, createMultiplyScalar, createNthRoot, createPickRandom, createRandomInt, createRightArithShift, createSec, createSinh, createSqrt, createTan, createUnaryMinus, createAcosh, createApply, createAsinh, createBitXor, createClone, createCumSum, createEqual, createFactorial, createHasNumericValue, createIsNaN, createLarger, createLog2, createMode, createNorm, createPartitionSelect, createPrint, createQuantileSeq, createRound, createSmaller, createStirlingS2, createTrue, createVariance, createAcsch, createAtan2, createCatalan, createCompareNatural, createComposition, createDeepEqual, createFloor, createHypot, createLgamma, createMedian, createMultinomial, createPermutations, createRange, createSign, createStd, createCeil, createCoth, createFix, createIsPrime, createNumeric, createProd, createBellNumbers, createGcd, createMad, createSum, createMax, createMin } from '../factoriesNumber.js';
8
8
  export var e = /* #__PURE__ */createE({
9
9
  config
10
10
  });
@@ -250,11 +250,7 @@ export var asech = /* #__PURE__ */createAsech({
250
250
  export var bitNot = /* #__PURE__ */createBitNot({
251
251
  typed
252
252
  });
253
- export var clone = /* #__PURE__ */createClone({
254
- typed
255
- });
256
- export var compareNatural = /* #__PURE__ */createCompareNatural({
257
- compare,
253
+ export var combinationsWithRep = /* #__PURE__ */createCombinationsWithRep({
258
254
  typed
259
255
  });
260
256
  export var cosh = /* #__PURE__ */createCosh({
@@ -331,7 +327,7 @@ export var asinh = /* #__PURE__ */createAsinh({
331
327
  export var bitXor = /* #__PURE__ */createBitXor({
332
328
  typed
333
329
  });
334
- export var combinationsWithRep = /* #__PURE__ */createCombinationsWithRep({
330
+ export var clone = /* #__PURE__ */createClone({
335
331
  typed
336
332
  });
337
333
  export var cumsum = /* #__PURE__ */createCumSum({
@@ -431,6 +427,10 @@ export var catalan = /* #__PURE__ */createCatalan({
431
427
  multiplyScalar,
432
428
  typed
433
429
  });
430
+ export var compareNatural = /* #__PURE__ */createCompareNatural({
431
+ compare,
432
+ typed
433
+ });
434
434
  export var composition = /* #__PURE__ */createComposition({
435
435
  addScalar,
436
436
  combinations,
@@ -495,6 +495,7 @@ export var sign = /* #__PURE__ */createSign({
495
495
  typed
496
496
  });
497
497
  export var std = /* #__PURE__ */createStd({
498
+ map,
498
499
  sqrt,
499
500
  typed,
500
501
  variance
@@ -524,12 +525,6 @@ export var prod = /* #__PURE__ */createProd({
524
525
  numeric,
525
526
  typed
526
527
  });
527
- export var sum = /* #__PURE__ */createSum({
528
- add,
529
- config,
530
- numeric,
531
- typed
532
- });
533
528
  export var bellNumbers = /* #__PURE__ */createBellNumbers({
534
529
  addScalar,
535
530
  isInteger,
@@ -547,6 +542,12 @@ export var mad = /* #__PURE__ */createMad({
547
542
  subtract,
548
543
  typed
549
544
  });
545
+ export var sum = /* #__PURE__ */createSum({
546
+ add,
547
+ config,
548
+ numeric,
549
+ typed
550
+ });
550
551
  export var max = /* #__PURE__ */createMax({
551
552
  config,
552
553
  larger,
@@ -3,6 +3,6 @@ export var indexDocs = {
3
3
  category: 'Construction',
4
4
  syntax: ['[start]', '[start:end]', '[start:step:end]', '[start1, start 2, ...]', '[start1:end1, start2:end2, ...]', '[start1:step1:end1, start2:step2:end2, ...]'],
5
5
  description: 'Create an index to get or replace a subset of a matrix',
6
- examples: ['[]', '[1, 2, 3]', 'A = [1, 2, 3; 4, 5, 6]', 'A[1, :]', 'A[1, 2] = 50', 'A[0:2, 0:2] = ones(2, 2)'],
6
+ examples: ['[1, 2, 3]', 'A = [1, 2, 3; 4, 5, 6]', 'A[1, :]', 'A[1, 2] = 50', 'A[1:2, 1:2] = ones(2, 2)'],
7
7
  seealso: ['bignumber', 'boolean', 'complex', 'matrix,', 'number', 'range', 'string', 'unit']
8
8
  };
@@ -40,6 +40,7 @@ import { qrDocs } from './function/algebra/qr.js';
40
40
  import { rationalizeDocs } from './function/algebra/rationalize.js';
41
41
  import { resolveDocs } from './function/algebra/resolve.js';
42
42
  import { simplifyDocs } from './function/algebra/simplify.js';
43
+ import { simplifyConstantDocs } from './function/algebra/simplifyConstant.js';
43
44
  import { simplifyCoreDocs } from './function/algebra/simplifyCore.js';
44
45
  import { sluDocs } from './function/algebra/slu.js';
45
46
  import { symbolicEqualDocs } from './function/algebra/symbolicEqual.js';
@@ -478,6 +479,7 @@ export var embeddedDocs = {
478
479
  leafCount: leafCountDocs,
479
480
  resolve: resolveDocs,
480
481
  simplify: simplifyDocs,
482
+ simplifyConstant: simplifyConstantDocs,
481
483
  simplifyCore: simplifyCoreDocs,
482
484
  symbolicEqual: symbolicEqualDocs,
483
485
  rationalize: rationalizeDocs,
@@ -0,0 +1,8 @@
1
+ export var simplifyConstantDocs = {
2
+ name: 'simplifyConstant',
3
+ category: 'Algebra',
4
+ syntax: ['simplifyConstant(expr)', 'simplifyConstant(expr, options)'],
5
+ description: 'Replace constant subexpressions of node with their values.',
6
+ examples: ['simplifyConatant("(3-3)*x")', 'simplifyConstant(parse("z-cos(tau/8)"))'],
7
+ seealso: ['simplify', 'simplifyCore', 'evaluate']
8
+ };
@@ -4,5 +4,5 @@ export var simplifyCoreDocs = {
4
4
  syntax: ['simplifyCore(node)'],
5
5
  description: 'Perform simple one-pass simplifications on an expression tree.',
6
6
  examples: ['simplifyCore(parse("0*x"))', 'simplifyCore(parse("(x+0)*2"))'],
7
- seealso: ['simplify', 'evaluate']
7
+ seealso: ['simplify', 'simplifyConstant', 'evaluate']
8
8
  };
@@ -1,3 +1,4 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
1
2
  import { isAccessorNode, isArrayNode, isConstantNode, isFunctionNode, isIndexNode, isNode, isObjectNode, isParenthesisNode, isSymbolNode } from '../../utils/is.js';
2
3
  import { getSafeProperty } from '../../utils/customs.js';
3
4
  import { factory } from '../../utils/factory.js';
@@ -13,196 +14,200 @@ export var createAccessorNode = /* #__PURE__ */factory(name, dependencies, _ref
13
14
  subset
14
15
  });
15
16
  /**
16
- * @constructor AccessorNode
17
- * @extends {Node}
18
- * Access an object property or get a matrix subset
19
- *
20
- * @param {Node} object The object from which to retrieve
21
- * a property or subset.
22
- * @param {IndexNode} index IndexNode containing ranges
17
+ * Are parenthesis needed?
18
+ * @private
23
19
  */
24
20
 
25
- function AccessorNode(object, index) {
26
- if (!(this instanceof AccessorNode)) {
27
- throw new SyntaxError('Constructor must be called with the new operator');
28
- }
29
-
30
- if (!isNode(object)) {
31
- throw new TypeError('Node expected for parameter "object"');
32
- }
33
-
34
- if (!isIndexNode(index)) {
35
- throw new TypeError('IndexNode expected for parameter "index"');
36
- }
37
-
38
- this.object = object || null;
39
- this.index = index; // readonly property name
40
-
41
- Object.defineProperty(this, 'name', {
42
- get: function () {
43
- if (this.index) {
44
- return this.index.isObjectProperty() ? this.index.getObjectProperty() : '';
45
- } else {
46
- return this.object.name || '';
47
- }
48
- }.bind(this),
49
- set: function set() {
50
- throw new Error('Cannot assign a new name, name is read-only');
51
- }
52
- });
21
+ function needParenthesis(node) {
22
+ // TODO: maybe make a method on the nodes which tells whether they need parenthesis?
23
+ return !(isAccessorNode(node) || isArrayNode(node) || isConstantNode(node) || isFunctionNode(node) || isObjectNode(node) || isParenthesisNode(node) || isSymbolNode(node));
53
24
  }
54
25
 
55
- AccessorNode.prototype = new Node();
56
- AccessorNode.prototype.type = 'AccessorNode';
57
- AccessorNode.prototype.isAccessorNode = true;
58
- /**
59
- * Compile a node into a JavaScript function.
60
- * This basically pre-calculates as much as possible and only leaves open
61
- * calculations which depend on a dynamic scope with variables.
62
- * @param {Object} math Math.js namespace with functions and constants.
63
- * @param {Object} argNames An object with argument names as key and `true`
64
- * as value. Used in the SymbolNode to optimize
65
- * for arguments from user assigned functions
66
- * (see FunctionAssignmentNode) or special symbols
67
- * like `end` (see IndexNode).
68
- * @return {function} Returns a function which can be called like:
69
- * evalNode(scope: Object, args: Object, context: *)
70
- */
26
+ class AccessorNode extends Node {
27
+ /**
28
+ * @constructor AccessorNode
29
+ * @extends {Node}
30
+ * Access an object property or get a matrix subset
31
+ *
32
+ * @param {Node} object The object from which to retrieve
33
+ * a property or subset.
34
+ * @param {IndexNode} index IndexNode containing ranges
35
+ */
36
+ constructor(object, index) {
37
+ super();
38
+
39
+ if (!isNode(object)) {
40
+ throw new TypeError('Node expected for parameter "object"');
41
+ }
71
42
 
72
- AccessorNode.prototype._compile = function (math, argNames) {
73
- var evalObject = this.object._compile(math, argNames);
43
+ if (!isIndexNode(index)) {
44
+ throw new TypeError('IndexNode expected for parameter "index"');
45
+ }
74
46
 
75
- var evalIndex = this.index._compile(math, argNames);
47
+ this.object = object;
48
+ this.index = index;
49
+ } // readonly property name
76
50
 
77
- if (this.index.isObjectProperty()) {
78
- var prop = this.index.getObjectProperty();
79
- return function evalAccessorNode(scope, args, context) {
80
- // get a property from an object evaluated using the scope.
81
- return getSafeProperty(evalObject(scope, args, context), prop);
82
- };
83
- } else {
84
- return function evalAccessorNode(scope, args, context) {
85
- var object = evalObject(scope, args, context);
86
- var index = evalIndex(scope, args, object); // we pass object here instead of context
87
51
 
88
- return access(object, index);
89
- };
52
+ get name() {
53
+ if (this.index) {
54
+ return this.index.isObjectProperty() ? this.index.getObjectProperty() : '';
55
+ } else {
56
+ return this.object.name || '';
57
+ }
90
58
  }
91
- };
92
- /**
93
- * Execute a callback for each of the child nodes of this node
94
- * @param {function(child: Node, path: string, parent: Node)} callback
95
- */
96
59
 
60
+ get type() {
61
+ return name;
62
+ }
97
63
 
98
- AccessorNode.prototype.forEach = function (callback) {
99
- callback(this.object, 'object', this);
100
- callback(this.index, 'index', this);
101
- };
102
- /**
103
- * Create a new AccessorNode having it's childs be the results of calling
104
- * the provided callback function for each of the childs of the original node.
105
- * @param {function(child: Node, path: string, parent: Node): Node} callback
106
- * @returns {AccessorNode} Returns a transformed copy of the node
107
- */
64
+ get isAccessorNode() {
65
+ return true;
66
+ }
67
+ /**
68
+ * Compile a node into a JavaScript function.
69
+ * This basically pre-calculates as much as possible and only leaves open
70
+ * calculations which depend on a dynamic scope with variables.
71
+ * @param {Object} math Math.js namespace with functions and constants.
72
+ * @param {Object} argNames An object with argument names as key and `true`
73
+ * as value. Used in the SymbolNode to optimize
74
+ * for arguments from user assigned functions
75
+ * (see FunctionAssignmentNode) or special symbols
76
+ * like `end` (see IndexNode).
77
+ * @return {function} Returns a function which can be called like:
78
+ * evalNode(scope: Object, args: Object, context: *)
79
+ */
80
+
81
+
82
+ _compile(math, argNames) {
83
+ var evalObject = this.object._compile(math, argNames);
84
+
85
+ var evalIndex = this.index._compile(math, argNames);
86
+
87
+ if (this.index.isObjectProperty()) {
88
+ var prop = this.index.getObjectProperty();
89
+ return function evalAccessorNode(scope, args, context) {
90
+ // get a property from an object evaluated using the scope.
91
+ return getSafeProperty(evalObject(scope, args, context), prop);
92
+ };
93
+ } else {
94
+ return function evalAccessorNode(scope, args, context) {
95
+ var object = evalObject(scope, args, context); // we pass just object here instead of context:
96
+
97
+ var index = evalIndex(scope, args, object);
98
+ return access(object, index);
99
+ };
100
+ }
101
+ }
102
+ /**
103
+ * Execute a callback for each of the child nodes of this node
104
+ * @param {function(child: Node, path: string, parent: Node)} callback
105
+ */
108
106
 
109
107
 
110
- AccessorNode.prototype.map = function (callback) {
111
- return new AccessorNode(this._ifNode(callback(this.object, 'object', this)), this._ifNode(callback(this.index, 'index', this)));
112
- };
113
- /**
114
- * Create a clone of this node, a shallow copy
115
- * @return {AccessorNode}
116
- */
117
-
108
+ forEach(callback) {
109
+ callback(this.object, 'object', this);
110
+ callback(this.index, 'index', this);
111
+ }
112
+ /**
113
+ * Create a new AccessorNode whose children are the results of calling
114
+ * the provided callback function for each child of the original node.
115
+ * @param {function(child: Node, path: string, parent: Node): Node} callback
116
+ * @returns {AccessorNode} Returns a transformed copy of the node
117
+ */
118
118
 
119
- AccessorNode.prototype.clone = function () {
120
- return new AccessorNode(this.object, this.index);
121
- };
122
- /**
123
- * Get string representation
124
- * @param {Object} options
125
- * @return {string}
126
- */
127
119
 
120
+ map(callback) {
121
+ return new AccessorNode(this._ifNode(callback(this.object, 'object', this)), this._ifNode(callback(this.index, 'index', this)));
122
+ }
123
+ /**
124
+ * Create a clone of this node, a shallow copy
125
+ * @return {AccessorNode}
126
+ */
128
127
 
129
- AccessorNode.prototype._toString = function (options) {
130
- var object = this.object.toString(options);
131
128
 
132
- if (needParenthesis(this.object)) {
133
- object = '(' + object + ')';
129
+ clone() {
130
+ return new AccessorNode(this.object, this.index);
134
131
  }
132
+ /**
133
+ * Get string representation
134
+ * @param {Object} options
135
+ * @return {string}
136
+ */
135
137
 
136
- return object + this.index.toString(options);
137
- };
138
- /**
139
- * Get HTML representation
140
- * @param {Object} options
141
- * @return {string}
142
- */
143
138
 
139
+ _toString(options) {
140
+ var object = this.object.toString(options);
144
141
 
145
- AccessorNode.prototype.toHTML = function (options) {
146
- var object = this.object.toHTML(options);
142
+ if (needParenthesis(this.object)) {
143
+ object = '(' + object + ')';
144
+ }
147
145
 
148
- if (needParenthesis(this.object)) {
149
- object = '<span class="math-parenthesis math-round-parenthesis">(</span>' + object + '<span class="math-parenthesis math-round-parenthesis">)</span>';
146
+ return object + this.index.toString(options);
150
147
  }
148
+ /**
149
+ * Get HTML representation
150
+ * @param {Object} options
151
+ * @return {string}
152
+ */
151
153
 
152
- return object + this.index.toHTML(options);
153
- };
154
- /**
155
- * Get LaTeX representation
156
- * @param {Object} options
157
- * @return {string}
158
- */
159
154
 
155
+ toHTML(options) {
156
+ var object = this.object.toHTML(options);
160
157
 
161
- AccessorNode.prototype._toTex = function (options) {
162
- var object = this.object.toTex(options);
158
+ if (needParenthesis(this.object)) {
159
+ object = '<span class="math-parenthesis math-round-parenthesis">(</span>' + object + '<span class="math-parenthesis math-round-parenthesis">)</span>';
160
+ }
163
161
 
164
- if (needParenthesis(this.object)) {
165
- object = '\\left(\' + object + \'\\right)';
162
+ return object + this.index.toHTML(options);
166
163
  }
164
+ /**
165
+ * Get LaTeX representation
166
+ * @param {Object} options
167
+ * @return {string}
168
+ */
167
169
 
168
- return object + this.index.toTex(options);
169
- };
170
- /**
171
- * Get a JSON representation of the node
172
- * @returns {Object}
173
- */
174
170
 
171
+ _toTex(options) {
172
+ var object = this.object.toTex(options);
175
173
 
176
- AccessorNode.prototype.toJSON = function () {
177
- return {
178
- mathjs: 'AccessorNode',
179
- object: this.object,
180
- index: this.index
181
- };
182
- };
183
- /**
184
- * Instantiate an AccessorNode from its JSON representation
185
- * @param {Object} json An object structured like
186
- * `{"mathjs": "AccessorNode", object: ..., index: ...}`,
187
- * where mathjs is optional
188
- * @returns {AccessorNode}
189
- */
174
+ if (needParenthesis(this.object)) {
175
+ object = '\\left(\' + object + \'\\right)';
176
+ }
190
177
 
178
+ return object + this.index.toTex(options);
179
+ }
180
+ /**
181
+ * Get a JSON representation of the node
182
+ * @returns {Object}
183
+ */
191
184
 
192
- AccessorNode.fromJSON = function (json) {
193
- return new AccessorNode(json.object, json.index);
194
- };
195
- /**
196
- * Are parenthesis needed?
197
- * @private
198
- */
199
185
 
186
+ toJSON() {
187
+ return {
188
+ mathjs: name,
189
+ object: this.object,
190
+ index: this.index
191
+ };
192
+ }
193
+ /**
194
+ * Instantiate an AccessorNode from its JSON representation
195
+ * @param {Object} json
196
+ * An object structured like
197
+ * `{"mathjs": "AccessorNode", object: ..., index: ...}`,
198
+ * where mathjs is optional
199
+ * @returns {AccessorNode}
200
+ */
201
+
202
+
203
+ static fromJSON(json) {
204
+ return new AccessorNode(json.object, json.index);
205
+ }
200
206
 
201
- function needParenthesis(node) {
202
- // TODO: maybe make a method on the nodes which tells whether they need parenthesis?
203
- return !(isAccessorNode(node) || isArrayNode(node) || isConstantNode(node) || isFunctionNode(node) || isObjectNode(node) || isParenthesisNode(node) || isSymbolNode(node));
204
207
  }
205
208
 
209
+ _defineProperty(AccessorNode, "name", name);
210
+
206
211
  return AccessorNode;
207
212
  }, {
208
213
  isClass: true,