nerdamer 1.1.13 → 2.0.0-rc.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 (341) hide show
  1. package/LICENSE.md +184 -0
  2. package/README.md +293 -312
  3. package/dist/bundle.js +2 -0
  4. package/dist/bundle.js.LICENSE.txt +7 -0
  5. package/dist/parser.js +2 -0
  6. package/dist/parser.js.LICENSE.txt +7 -0
  7. package/docs-data/parser-functions.json +1960 -0
  8. package/index.d.ts +10 -426
  9. package/output/algebra/adapters.d.ts +33 -0
  10. package/output/algebra/adapters.js +109 -0
  11. package/output/algebra/algorithms/arith.d.ts +84 -0
  12. package/output/algebra/algorithms/arith.js +323 -0
  13. package/output/algebra/algorithms/factor.d.ts +3 -0
  14. package/output/algebra/algorithms/factor.js +5 -0
  15. package/output/algebra/algorithms/factorMultivariate.d.ts +23 -0
  16. package/output/algebra/algorithms/factorMultivariate.js +2393 -0
  17. package/output/algebra/algorithms/factorUnivariate.d.ts +72 -0
  18. package/output/algebra/algorithms/factorUnivariate.js +1072 -0
  19. package/output/algebra/algorithms/gcd.d.ts +22 -0
  20. package/output/algebra/algorithms/gcd.js +690 -0
  21. package/output/algebra/algorithms/groebnerBase.d.ts +157 -0
  22. package/output/algebra/algorithms/groebnerBase.js +1166 -0
  23. package/output/algebra/algorithms/multiPoly/MultiPoly.d.ts +137 -0
  24. package/output/algebra/algorithms/multiPoly/MultiPoly.js +346 -0
  25. package/output/algebra/algorithms/poly.d.ts +228 -0
  26. package/output/algebra/algorithms/poly.js +1299 -0
  27. package/output/algebra/algorithms/rational.d.ts +17 -0
  28. package/output/algebra/algorithms/rational.js +115 -0
  29. package/output/algebra/factor/factor.d.ts +62 -0
  30. package/output/algebra/factor/factor.js +158 -0
  31. package/output/algebra/gcd/gcd.d.ts +29 -0
  32. package/output/algebra/gcd/gcd.js +141 -0
  33. package/output/algebra/groebner.d.ts +21 -0
  34. package/output/algebra/groebner.js +42 -0
  35. package/output/algebra/partfrac.d.ts +19 -0
  36. package/output/algebra/partfrac.js +398 -0
  37. package/output/algebra/polynomialize.d.ts +20 -0
  38. package/output/algebra/polynomialize.js +24 -0
  39. package/output/algebra/simplify/complexsimp.d.ts +7 -0
  40. package/output/algebra/simplify/complexsimp.js +24 -0
  41. package/output/algebra/simplify/factorCommon.d.ts +13 -0
  42. package/output/algebra/simplify/factorCommon.js +136 -0
  43. package/output/algebra/simplify/funcsimp.d.ts +26 -0
  44. package/output/algebra/simplify/funcsimp.js +633 -0
  45. package/output/algebra/simplify/invtrigrewrite.d.ts +10 -0
  46. package/output/algebra/simplify/invtrigrewrite.js +96 -0
  47. package/output/algebra/simplify/ratsimp.d.ts +21 -0
  48. package/output/algebra/simplify/ratsimp.js +140 -0
  49. package/output/algebra/simplify/simplify.d.ts +25 -0
  50. package/output/algebra/simplify/simplify.js +228 -0
  51. package/output/algebra/simplify/trigreduce.d.ts +38 -0
  52. package/output/algebra/simplify/trigreduce.js +424 -0
  53. package/output/algebra/simplify/trigrewrite.d.ts +17 -0
  54. package/output/algebra/simplify/trigrewrite.js +156 -0
  55. package/output/algebra/simplify/trigsimp.d.ts +11 -0
  56. package/output/algebra/simplify/trigsimp.js +369 -0
  57. package/output/algebra/simplify/utils.d.ts +32 -0
  58. package/output/algebra/simplify/utils.js +56 -0
  59. package/output/algebra/utils.d.ts +32 -0
  60. package/output/algebra/utils.js +48 -0
  61. package/output/api/advanced.d.ts +7 -0
  62. package/output/api/advanced.js +18 -0
  63. package/output/api/algebra.d.ts +17 -0
  64. package/output/api/algebra.js +32 -0
  65. package/output/api/assumptions.d.ts +4 -0
  66. package/output/api/assumptions.js +11 -0
  67. package/output/api/calculus.d.ts +9 -0
  68. package/output/api/calculus.js +21 -0
  69. package/output/api/core.d.ts +17 -0
  70. package/output/api/core.js +41 -0
  71. package/output/api/debug.d.ts +16 -0
  72. package/output/api/debug.js +23 -0
  73. package/output/api/parser.d.ts +85 -0
  74. package/output/api/parser.js +16 -0
  75. package/output/api/solve.d.ts +10 -0
  76. package/output/api/solve.js +16 -0
  77. package/output/api/structures.d.ts +10 -0
  78. package/output/api/structures.js +22 -0
  79. package/output/calculus/derivative/diff.d.ts +30 -0
  80. package/output/calculus/derivative/diff.js +238 -0
  81. package/output/calculus/fresnel.d.ts +16 -0
  82. package/output/calculus/fresnel.js +39 -0
  83. package/output/calculus/integrate/byParts.d.ts +18 -0
  84. package/output/calculus/integrate/byParts.js +339 -0
  85. package/output/calculus/integrate/bySubstitution.d.ts +135 -0
  86. package/output/calculus/integrate/bySubstitution.js +411 -0
  87. package/output/calculus/integrate/integrate.d.ts +38 -0
  88. package/output/calculus/integrate/integrate.js +652 -0
  89. package/output/calculus/integrate/integrationTable.d.ts +2 -0
  90. package/output/calculus/integrate/integrationTable.js +914 -0
  91. package/output/calculus/integrate/utils.d.ts +28 -0
  92. package/output/calculus/integrate/utils.js +96 -0
  93. package/output/calculus/laplace/ilaplace.d.ts +31 -0
  94. package/output/calculus/laplace/ilaplace.js +192 -0
  95. package/output/calculus/laplace/ilaplaceTable.d.ts +2 -0
  96. package/output/calculus/laplace/ilaplaceTable.js +200 -0
  97. package/output/calculus/laplace/laplace.d.ts +22 -0
  98. package/output/calculus/laplace/laplace.js +109 -0
  99. package/output/calculus/laplace/laplaceTable.d.ts +2 -0
  100. package/output/calculus/laplace/laplaceTable.js +187 -0
  101. package/output/calculus/limit/limit.d.ts +35 -0
  102. package/output/calculus/limit/limit.js +1183 -0
  103. package/output/calculus/limit/limitsTable.d.ts +2 -0
  104. package/output/calculus/limit/limitsTable.js +7 -0
  105. package/output/core/Settings.d.ts +32 -0
  106. package/output/core/Settings.js +68 -0
  107. package/output/core/adapters.d.ts +18 -0
  108. package/output/core/adapters.js +40 -0
  109. package/output/core/classes/assumption/Assumption.d.ts +218 -0
  110. package/output/core/classes/assumption/Assumption.js +605 -0
  111. package/output/core/classes/assumption/assertiveFunctions.d.ts +6 -0
  112. package/output/core/classes/assumption/assertiveFunctions.js +64 -0
  113. package/output/core/classes/assumption/assume.d.ts +90 -0
  114. package/output/core/classes/assumption/assume.js +145 -0
  115. package/output/core/classes/collection/Collection.d.ts +107 -0
  116. package/output/core/classes/collection/Collection.js +231 -0
  117. package/output/core/classes/complex/Complex.d.ts +99 -0
  118. package/output/core/classes/complex/Complex.js +135 -0
  119. package/output/core/classes/decimalSet/DecimalSet.d.ts +226 -0
  120. package/output/core/classes/decimalSet/DecimalSet.js +453 -0
  121. package/output/core/classes/dictionary/Dictionary.d.ts +102 -0
  122. package/output/core/classes/dictionary/Dictionary.js +213 -0
  123. package/output/core/classes/equation/Equation.d.ts +256 -0
  124. package/output/core/classes/equation/Equation.js +350 -0
  125. package/output/core/classes/expression/CoeffObject.d.ts +100 -0
  126. package/output/core/classes/expression/CoeffObject.js +198 -0
  127. package/output/core/classes/expression/Expression.d.ts +1674 -0
  128. package/output/core/classes/expression/Expression.js +2332 -0
  129. package/output/core/classes/expression/analysis.d.ts +25 -0
  130. package/output/core/classes/expression/analysis.js +218 -0
  131. package/output/core/classes/expression/collect.d.ts +9 -0
  132. package/output/core/classes/expression/collect.js +49 -0
  133. package/output/core/classes/expression/format.d.ts +45 -0
  134. package/output/core/classes/expression/format.js +217 -0
  135. package/output/core/classes/expression/products.d.ts +23 -0
  136. package/output/core/classes/expression/products.js +115 -0
  137. package/output/core/classes/expression/shortcuts.d.ts +35 -0
  138. package/output/core/classes/expression/shortcuts.js +129 -0
  139. package/output/core/classes/expression/traversal.d.ts +31 -0
  140. package/output/core/classes/expression/traversal.js +216 -0
  141. package/output/core/classes/expression/trig.d.ts +25 -0
  142. package/output/core/classes/expression/trig.js +40 -0
  143. package/output/core/classes/expression/utils.d.ts +52 -0
  144. package/output/core/classes/expression/utils.js +189 -0
  145. package/output/core/classes/lookupTable/LookupTable.d.ts +12 -0
  146. package/output/core/classes/lookupTable/LookupTable.js +55 -0
  147. package/output/core/classes/matrix/Matrix.d.ts +227 -0
  148. package/output/core/classes/matrix/Matrix.js +889 -0
  149. package/output/core/classes/matrix/Sylvester.d.ts +11 -0
  150. package/output/core/classes/matrix/Sylvester.js +54 -0
  151. package/output/core/classes/matrix/functions.d.ts +26 -0
  152. package/output/core/classes/matrix/functions.js +52 -0
  153. package/output/core/classes/matrix/utils.d.ts +9 -0
  154. package/output/core/classes/matrix/utils.js +22 -0
  155. package/output/core/classes/parser/Parser.d.ts +480 -0
  156. package/output/core/classes/parser/Parser.js +1812 -0
  157. package/output/core/classes/parser/Token.d.ts +58 -0
  158. package/output/core/classes/parser/Token.js +137 -0
  159. package/output/core/classes/parser/constants.d.ts +160 -0
  160. package/output/core/classes/parser/constants.js +227 -0
  161. package/output/core/classes/parser/helpers.d.ts +21 -0
  162. package/output/core/classes/parser/helpers.js +42 -0
  163. package/output/core/classes/parser/operations/add.d.ts +15 -0
  164. package/output/core/classes/parser/operations/add.js +238 -0
  165. package/output/core/classes/parser/operations/comma.d.ts +7 -0
  166. package/output/core/classes/parser/operations/comma.js +11 -0
  167. package/output/core/classes/parser/operations/compare.d.ts +21 -0
  168. package/output/core/classes/parser/operations/compare.js +461 -0
  169. package/output/core/classes/parser/operations/divide.d.ts +2 -0
  170. package/output/core/classes/parser/operations/divide.js +72 -0
  171. package/output/core/classes/parser/operations/functions.d.ts +46 -0
  172. package/output/core/classes/parser/operations/functions.js +430 -0
  173. package/output/core/classes/parser/operations/multiply.d.ts +11 -0
  174. package/output/core/classes/parser/operations/multiply.js +321 -0
  175. package/output/core/classes/parser/operations/power.d.ts +48 -0
  176. package/output/core/classes/parser/operations/power.js +673 -0
  177. package/output/core/classes/parser/operations/subtract.d.ts +3 -0
  178. package/output/core/classes/parser/operations/subtract.js +35 -0
  179. package/output/core/classes/parser/preprocess.d.ts +14 -0
  180. package/output/core/classes/parser/preprocess.js +259 -0
  181. package/output/core/classes/parser/scripting/controlFlow.d.ts +121 -0
  182. package/output/core/classes/parser/scripting/controlFlow.js +355 -0
  183. package/output/core/classes/parser/scripting/evaluate.d.ts +10 -0
  184. package/output/core/classes/parser/scripting/evaluate.js +112 -0
  185. package/output/core/classes/parser/scripting/functions.d.ts +14 -0
  186. package/output/core/classes/parser/scripting/functions.js +59 -0
  187. package/output/core/classes/parser/scripting/scope.d.ts +35 -0
  188. package/output/core/classes/parser/scripting/scope.js +155 -0
  189. package/output/core/classes/parser/types.d.ts +125 -0
  190. package/output/core/classes/parser/types.js +2 -0
  191. package/output/core/classes/parser/wrappers/IndexedReference.d.ts +31 -0
  192. package/output/core/classes/parser/wrappers/IndexedReference.js +68 -0
  193. package/output/core/classes/parser/wrappers/KeyValuePair.d.ts +24 -0
  194. package/output/core/classes/parser/wrappers/KeyValuePair.js +51 -0
  195. package/output/core/classes/polynomial/Polynomial.d.ts +500 -0
  196. package/output/core/classes/polynomial/Polynomial.js +1149 -0
  197. package/output/core/classes/polynomial/Term.d.ts +222 -0
  198. package/output/core/classes/polynomial/Term.js +430 -0
  199. package/output/core/classes/polynomial/functions.d.ts +69 -0
  200. package/output/core/classes/polynomial/functions.js +126 -0
  201. package/output/core/classes/polynomial/utils.d.ts +62 -0
  202. package/output/core/classes/polynomial/utils.js +206 -0
  203. package/output/core/classes/rational/Rational.d.ts +504 -0
  204. package/output/core/classes/rational/Rational.js +779 -0
  205. package/output/core/classes/seq/SEQ.d.ts +13 -0
  206. package/output/core/classes/seq/SEQ.js +137 -0
  207. package/output/core/classes/valuesSet/ValuesSet.d.ts +179 -0
  208. package/output/core/classes/valuesSet/ValuesSet.js +381 -0
  209. package/output/core/classes/vector/Vector.d.ts +222 -0
  210. package/output/core/classes/vector/Vector.js +497 -0
  211. package/output/core/classes/vector/functions.d.ts +28 -0
  212. package/output/core/classes/vector/functions.js +47 -0
  213. package/output/core/common/classes/MathematicalAggregate.d.ts +53 -0
  214. package/output/core/common/classes/MathematicalAggregate.js +140 -0
  215. package/output/core/common/classes/Scope.d.ts +62 -0
  216. package/output/core/common/classes/Scope.js +122 -0
  217. package/output/core/common/classes/StructuredEntity.d.ts +55 -0
  218. package/output/core/common/classes/StructuredEntity.js +151 -0
  219. package/output/core/common/common.d.ts +63 -0
  220. package/output/core/common/common.js +279 -0
  221. package/output/core/common/functions/functions.d.ts +14 -0
  222. package/output/core/common/functions/functions.js +33 -0
  223. package/output/core/common/functions/structuredEntityUtils.d.ts +27 -0
  224. package/output/core/common/functions/structuredEntityUtils.js +40 -0
  225. package/output/core/converters/BaseConverter.d.ts +97 -0
  226. package/output/core/converters/BaseConverter.js +405 -0
  227. package/output/core/converters/Converter.d.ts +111 -0
  228. package/output/core/converters/Converter.js +802 -0
  229. package/output/core/converters/Pattern.d.ts +71 -0
  230. package/output/core/converters/Pattern.js +302 -0
  231. package/output/core/dispatch.d.ts +34 -0
  232. package/output/core/dispatch.js +304 -0
  233. package/output/core/errors.d.ts +531 -0
  234. package/output/core/errors.js +621 -0
  235. package/output/core/functions/bigint/bigint.d.ts +121 -0
  236. package/output/core/functions/bigint/bigint.js +392 -0
  237. package/output/core/functions/bigint/primeFactor.d.ts +49 -0
  238. package/output/core/functions/bigint/primeFactor.js +267 -0
  239. package/output/core/functions/bigint/primes.d.ts +1 -0
  240. package/output/core/functions/bigint/primes.js +11 -0
  241. package/output/core/functions/build/definitions.d.ts +12 -0
  242. package/output/core/functions/build/definitions.js +133 -0
  243. package/output/core/functions/build/index.d.ts +32 -0
  244. package/output/core/functions/build/index.js +136 -0
  245. package/output/core/functions/complex.d.ts +90 -0
  246. package/output/core/functions/complex.js +482 -0
  247. package/output/core/functions/decimal.d.ts +24 -0
  248. package/output/core/functions/decimal.js +664 -0
  249. package/output/core/functions/expand/expand.d.ts +42 -0
  250. package/output/core/functions/expand/expand.js +376 -0
  251. package/output/core/functions/fresnelNumeric.d.ts +12 -0
  252. package/output/core/functions/fresnelNumeric.js +123 -0
  253. package/output/core/functions/numeric.d.ts +140 -0
  254. package/output/core/functions/numeric.js +790 -0
  255. package/output/core/functions/rationalNormalization.d.ts +11 -0
  256. package/output/core/functions/rationalNormalization.js +117 -0
  257. package/output/core/functions/setFunction.d.ts +19 -0
  258. package/output/core/functions/setFunction.js +75 -0
  259. package/output/core/functions/string.d.ts +26 -0
  260. package/output/core/functions/string.js +101 -0
  261. package/output/core/functions/subst.d.ts +90 -0
  262. package/output/core/functions/subst.js +498 -0
  263. package/output/core/functions/utils.d.ts +24 -0
  264. package/output/core/functions/utils.js +51 -0
  265. package/output/core/types.d.ts +48 -0
  266. package/output/core/types.js +2 -0
  267. package/output/index.d.ts +339 -0
  268. package/output/index.js +715 -0
  269. package/output/math/defint/defintDecimal.d.ts +37 -0
  270. package/output/math/defint/defintDecimal.js +320 -0
  271. package/output/math/defint/defintNative.d.ts +57 -0
  272. package/output/math/defint/defintNative.js +292 -0
  273. package/output/math/geometry.d.ts +8 -0
  274. package/output/math/geometry.js +32 -0
  275. package/output/math/math.d.ts +655 -0
  276. package/output/math/math.js +1811 -0
  277. package/output/math/trig.d.ts +518 -0
  278. package/output/math/trig.js +1444 -0
  279. package/output/math/trunc.d.ts +19 -0
  280. package/output/math/trunc.js +36 -0
  281. package/output/math/utils.d.ts +60 -0
  282. package/output/math/utils.js +180 -0
  283. package/output/solve/classes/DecimalMatrix.d.ts +17 -0
  284. package/output/solve/classes/DecimalMatrix.js +86 -0
  285. package/output/solve/classes/FunctionSolver.d.ts +135 -0
  286. package/output/solve/classes/FunctionSolver.js +433 -0
  287. package/output/solve/classes/MultivariateSolver.d.ts +84 -0
  288. package/output/solve/classes/MultivariateSolver.js +240 -0
  289. package/output/solve/classes/PolynomialSolver.d.ts +85 -0
  290. package/output/solve/classes/PolynomialSolver.js +292 -0
  291. package/output/solve/classes/SolutionSet.d.ts +153 -0
  292. package/output/solve/classes/SolutionSet.js +357 -0
  293. package/output/solve/classes/Solver.d.ts +17 -0
  294. package/output/solve/classes/Solver.js +132 -0
  295. package/output/solve/classes/SymbolicSolver.d.ts +74 -0
  296. package/output/solve/classes/SymbolicSolver.js +601 -0
  297. package/output/solve/linsolve.d.ts +51 -0
  298. package/output/solve/linsolve.js +225 -0
  299. package/output/solve/solve.d.ts +34 -0
  300. package/output/solve/solve.js +260 -0
  301. package/output/solve/solveSystem.d.ts +31 -0
  302. package/output/solve/solveSystem.js +290 -0
  303. package/output/solve/utils.d.ts +9 -0
  304. package/output/solve/utils.js +62 -0
  305. package/output/utils/array.d.ts +42 -0
  306. package/output/utils/array.js +98 -0
  307. package/output/utils/debug.d.ts +131 -0
  308. package/output/utils/debug.js +295 -0
  309. package/output/utils/decimal.d.ts +3 -0
  310. package/output/utils/decimal.js +16 -0
  311. package/output/utils/numeric.d.ts +14 -0
  312. package/output/utils/numeric.js +51 -0
  313. package/output/utils/object.d.ts +26 -0
  314. package/output/utils/object.js +56 -0
  315. package/package.json +213 -57
  316. package/.travis.yml +0 -3
  317. package/Algebra.js +0 -4568
  318. package/BREAKING_CHANGES.md +0 -5
  319. package/CODE_OF_CONDUCT.md +0 -46
  320. package/CONTRIBUTING.md +0 -14
  321. package/Calculus.js +0 -2675
  322. package/Extra.js +0 -622
  323. package/Solve.js +0 -1783
  324. package/all.js +0 -16
  325. package/all.min.js +0 -1
  326. package/gulpfile.js +0 -16
  327. package/index.html +0 -158
  328. package/license.txt +0 -19
  329. package/nerdamer.core.js +0 -12510
  330. package/spec/LaTeX.spec.js +0 -302
  331. package/spec/TeXConvert.spec.js +0 -8
  332. package/spec/algebra.spec.js +0 -287
  333. package/spec/basic_parser.spec.js +0 -134
  334. package/spec/build.spec.js +0 -131
  335. package/spec/calculus.spec.js +0 -183
  336. package/spec/core.spec.js +0 -2970
  337. package/spec/extra.spec.js +0 -54
  338. package/spec/solve.spec.js +0 -126
  339. package/spec/support/jasmine.json +0 -11
  340. package/spec/support/utils.js +0 -42
  341. package/spec/text.spec.js +0 -132
package/dist/bundle.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! For license information please see bundle.js.LICENSE.txt */
2
+ !function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.nerdamer=t():e.nerdamer=t()}(this,()=>{return e={12(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Token=t.dotOrDigitRegex=t.digitRegex=t.variableRegex=t.bracketRegex=t.operatorRegex=t.operatorArray=t.ALLOWED_CHARACTERS=void 0,t.refreshOperatorSymbols=function refreshOperatorSymbols(){t.operatorArray.splice(0,t.operatorArray.length,...(0,r.getOperatorSymbolArray)()),t.operatorRegex=new RegExp(`[${t.operatorArray.join("")}]`)};const i=n(6441),r=n(9725),s=n(8300);t.ALLOWED_CHARACTERS=[],t.operatorArray=(0,r.getOperatorSymbolArray)(),t.operatorRegex=new RegExp(`[${t.operatorArray.join("")}]`),t.bracketRegex=new RegExp(`[${Object.keys(i.brackets).join("\\")}]`),t.variableRegex=/[a-z_αAβBγΓδΔϵEζZηHθΘιIκKλΛμMνNξΞoOπΠρPσΣτTυϒϕΦχXψΨωΩ∞]/i,t.digitRegex=/\d/,t.dotOrDigitRegex=/\d|\./;class Token{static BRACKET="BKT";static CHARACTER="CHR";static FUNCTION="FUN";static NUMBER="NUM";static OPERATOR="OPR";static PREFIX="PFX";static SPACE="SPC";static UNDEFINED="UND";static VARIABLE="VAR";dataType;position;resolvedOperator;type;value;constructor(e,t,n){this.dataType=s.TOKEN,this.position=n,this.type=t,this.value=String(e)}static getCharType(e,n,i){if(t.digitRegex.test(e))return i.tokenType===Token.VARIABLE?Token.VARIABLE:Token.NUMBER;if(e===s.SPACE)return Token.SPACE;if(e===s.DOT)return i.tokenType===Token.VARIABLE?Token.OPERATOR:Token.NUMBER;if("e"!==e&&"E"!==e||i.tokenType!==Token.NUMBER){if(t.variableRegex.test(e)||t.ALLOWED_CHARACTERS.includes(e))return Token.VARIABLE;if(t.bracketRegex.test(e))return Token.BRACKET;if(t.operatorRegex.test(e)){const t=i.last();return i.tokenType!==Token.NUMBER||e!==s.PLUS&&e!==s.MINUS||"e"!==t&&"E"!==t?Token.OPERATOR:Token.NUMBER}return Token.CHARACTER}{const e=i.prev(n),r=i.next(n);return r===s.PLUS||r===s.MINUS||t.dotOrDigitRegex.test(e)&&t.digitRegex.test(r)?(i.scientificNumber=!0,Token.NUMBER):Token.VARIABLE}}static isToken(e){return(0,i.isNerdamerNativeType)(e,s.TOKEN)}static O(e){return new Token(e,Token.OPERATOR,-1)}static V(e){return new Token(e,Token.VARIABLE,-1)}is(e){return this.type===e}text(){return this.value}toString(){return this.type===Token.PREFIX?"`"+this.value:this.value}}t.Token=Token},205(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.extractVariable=extractVariable,t.prepareSolverInputs=function prepareSolverInputs(e,t){let n;if(i.Equation.isEquation(e))n=e.toLHS().LHS;else if(r.Expression.isExpression(e))n=e;else{const t=o.Parser.parse(String(e));if(i.Equation.isEquation(t))n=t.toLHS().LHS;else{if(!r.Expression.isExpression(t))throw new a.UnexpectedInputError((0,a.message)("expressionExpected",{type:s.dataTypes[t.dataType]}));n=t}}const l=n.variables();let u;if(t){if(u=extractVariable(t),u&&l[0]&&!l.includes(u))throw new a.UnexpectedInputError((0,a.message)("tooManyUnknowns"))}else{if(1!==l.length)throw new a.UnexpectedInputError((0,a.message)("tooManyUnknowns"));u=l[0]}return{expression:n,x:u}};const i=n(6184),r=n(296),s=n(8300),o=n(238),a=n(4703);function extractVariable(e){if(!(e=r.Expression.create(e)).isPlainVariable())throw new a.UnexpectedInputError((0,a.message)("plainVariableExpected",{input:e.text()}));return e.value}},238(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Parser=void 0;const i=n(8891),r=n(2809),s=n(6441),o=n(9725),a=n(4861),l=n(9426),u=n(4703),c=n(7103),m=n(5817),p=n(6284),d=n(6528),g=n(6184),h=n(296),x=n(4462),E=n(5584),y=n(5598),v=n(3982),P=n(8300),w=n(8801),b=n(5823),M=n(12),A=n(8054),T=n(8584);function shouldPopOperator(e,t){let n=e.precedence>t.precedence;return n||e.precedence!==t.precedence||(n=t.leftAssoc),n}class ExpressionParser{CONSTANTS=P.PARSER_CONSTANTS;MAX_COMPOUND_OPERATOR_LENGTH=2;operators=(0,o.getOperators)();VALUE_SETS=[P.VECTOR,P.MATRIX];WHITE_SPACE=[P.NEWLINE,P.TAB,P.RETURN];KNOWN_VALUES={};extractIndices(e,t,n){const i=[];let s,o=!0;for(let t=0;t<e.length;t++){const n=e[t];if(r.Scope.isScope(n)){o=!1;break}if(n.type!==M.Token.OPERATOR){if(n.type!==M.Token.NUMBER){o=!1;break}i.push(Number(n.value)-m.Settings.INDEX_BASE)}}if(o&&i.length>0)s=i;else{const i=this.parseRPN(e,t,n),r=[];if(v.Vector.isVector(i))for(let e=0;e<i.elements.length;e++)r.push(h.Expression.create(i.elements[e]));else if(p.Collection.isCollection(i))for(const e of i.getElements())r.push(h.Expression.create(e));else r.push(h.Expression.create(i));const o=[];let a=!0;for(let e=0;e<r.length;e++){const t=Number(r[e].evaluate().text());if(!Number.isFinite(t)){a=!1;break}o.push(t-m.Settings.INDEX_BASE)}s=a?o:r}return s}extractStringKeys(e){const t=[];for(let n=0;n<e.length;n++){const i=e[n];r.Scope.isScope(i)||i.type!==M.Token.OPERATOR&&t.push(i.value)}return t}aliasOperator(e,t){const n=this.operators[e];if(!n)throw new u.ParserError(`Unknown operator ${e}`);return this.operators[t]={...n,operator:t,postfixVariant:n.postfixVariant?{...n.postfixVariant,operator:t}:void 0},(0,M.refreshOperatorSymbols)(),this}create(){return new ExpressionParser}evaluate(e,n){return(0,m.scopedBlock)("EVALUATE",!0,()=>t.Parser.parse(e,n))}get(e){return m.Settings[e]}getI(){return h.Expression.imaginary}getOperator(e){const t=this.operators[e];let n;return t&&(n={...t,postfixVariant:t.postfixVariant?{...t.postfixVariant}:void 0}),n}getPrecision(){return E.Rational.getPrecision()}parse(e,t){if(t){const e={};for(const n in t){const i=t[n];e[n]=h.Expression.isExpression(i)||g.Equation.isEquation(i)||(0,a.isEnumerable)(i)?i:h.Expression.create(i)}t=e}const n=(0,b.preprocess)(String(e),l.mathFunctionRegistry),i=this.toRPN(this.tokenize(n));return this.parseRPN(i,t)}parseRPN(e,t,n){const i=[],o=this.operators;function addToOutput(e){if(void 0===e)throw new u.ParserError((0,u.message)("malformedExpression"));i.push(e)}function resolveStackValue(e){if(A.IndexedReference.isIndexedReference(e))return e.resolve();if(T.KeyValuePair.isKeyValuePair(e)||"function"==typeof e)throw new u.ParserError((0,u.message)("malformedExpression"));return e}function resolveStackValues(e){const t=[];for(const n of e)t.push(resolveStackValue(n));return t}const createDeferredArgument=(e,t,n)=>{let i;return r=>{const s=i??e();i=s;let o,a=!1===r?.inheritValues?void 0:t;if(a&&r?.excludeValues?.length){a={...a};for(const e of r.excludeValues)delete a[e]}return o="boolean"==typeof r?.substitute?(0,m.scopedBlock)("SUBSTITUTE",r.substitute,()=>this.parseRPN(s,a,n)):this.parseRPN(s,a,n),o}};for(let c=0;c<e.length;c++){const E=e[c];if(r.Scope.isScope(E)){const r=i[i.length-1];if(E.deferRHSResolution)addToOutput(createDeferredArgument(()=>E,t,n));else if(E.deferLHSResolution)addToOutput((0,m.scopedBlock)("SUBSTITUTE",!1,()=>this.parseRPN(E,void 0,n)));else if("square"===E.type&&E.implicitMultiply&&r)if((0,a.isEnumerable)(r)||A.IndexedReference.isIndexedReference(r)){const s=A.IndexedReference.isIndexedReference(r)?r.resolve():r,o=e[c-1];let a,l;if(!M.Token.isToken(o)||o.type!==M.Token.VARIABLE||t&&o.value in t||!(o.value in this.KNOWN_VALUES)||(a=o.value),l=d.Dictionary.isDictionary(s)?this.extractStringKeys(E)[0]:this.extractIndices(E,t,n),i.pop(),Array.isArray(l)&&l.length>0&&h.Expression.isExpression(l[0])){const e=l;let t;if((v.Vector.isVector(s)||x.Matrix.isMatrix(s))&&s.symbolicTarget?t=s.symbolicTarget:M.Token.isToken(o)&&o.type===M.Token.VARIABLE&&(t=h.Expression.Variable(o.value)),!t||!v.Vector.isVector(s)&&!x.Matrix.isMatrix(s))throw new u.ParserError("Symbolic indexed access requires a named Vector or Matrix target.");if(v.Vector.isVector(s)&&1!==e.length)throw new u.ParserError("Symbolic Vector access requires exactly one index.");if(x.Matrix.isMatrix(s)&&2!==e.length){if(1===e.length)throw new u.ParserError("Symbolic Matrix row access is not scalar and cannot be deferred as an Expression.");throw new u.ParserError("Symbolic Matrix cell access requires exactly two indices.")}addToOutput(s.withSymbolicAccessor(t,e))}else addToOutput(new A.IndexedReference(s,l,a))}else if(h.Expression.isExpression(r)&&r.isPlainVariable()){const e=this.extractIndices(E,t,n);if(e.length>0&&h.Expression.isExpression(e[0])){const t=e;if(t.length>2)throw new u.ParserError("Symbolic indexed access supports at most two unresolved indices.");const n=2===t.length?new x.Matrix([]):new v.Vector;i.pop(),addToOutput(n.withSymbolicAccessor(r,t))}else if(m.Settings.ALLOW_IMPLICIT_MULTIPLICATION){const e=this.parseRPN(E,t,n);addToOutput((0,w._.multiply)(resolveStackValue(i.pop()),e))}else addToOutput(this.parseRPN(E,t,n))}else if(E.implicitMultiply&&m.Settings.ALLOW_IMPLICIT_MULTIPLICATION){const e=this.parseRPN(E,t,n);addToOutput((0,w._.multiply)(resolveStackValue(i.pop()),e))}else addToOutput(this.parseRPN(E,t,n));else addToOutput(this.parseRPN(E,t,n))}else if(E.type===M.Token.OPERATOR){const t=E.resolvedOperator??this.operators[E.value];let s,o=i.pop();if("comma"===t.action){const e=i.pop();s=(0,w._[t.action])(e,o)}else if(t.isPostfix)o=resolveStackValue(o),o=h.Expression.fromSymbolicAccess(o)??o,s=(0,w._[t.action])(o);else{let a=i.pop();const l=e[c-1],m=e[c-2];if(-1===E.position&&"times"===t.action&&r.Scope.isScope(l)&&p.Collection.isCollection(o)&&M.Token.isToken(m)&&m.type===M.Token.VARIABLE&&h.Expression.isExpression(a)&&a.isPlainVariable())throw new u.ParserError(`Unsupported function ${m.value}`);if("assign"===t.action&&A.IndexedReference.isIndexedReference(a))o=resolveStackValue(o),a.indices,a.target.__set__(a.indices,o),a.targetName&&(this.KNOWN_VALUES[a.targetName]=a.target),s=a.target;else if(t.deferRHSResolution){if(a=resolveStackValue(a),"function"!=typeof o)throw new u.ParserError((0,u.message)("malformedExpression"));s=(0,w._[t.action])(a,o)}else if(t.deferLHSResolution)a=resolveStackValue(a),o=resolveStackValue(o),s=(0,w._[t.action])(a,o);else if("mapTo"===t.action){a=resolveStackValue(a),o=resolveStackValue(o);const e=h.Expression.isExpression(a)?a.text():String(a.text());s=new T.KeyValuePair(e,o)}else{a=resolveStackValue(a),o=resolveStackValue(o),a=h.Expression.fromSymbolicAccess(a)??a,o=h.Expression.fromSymbolicAccess(o)??o;const e=n&&t.assertiveAction?t.assertiveAction:t.action,i=w._[e];s=a.isEnumerable||o.isEnumerable||g.Equation.isEquation(a)||g.Equation.isEquation(o)?(0,w.route)(a,o,t.action):i(a,o)}}Array.isArray(s)?(addToOutput(s[0]),addToOutput(s[1])):addToOutput(s)}else if(E.type===M.Token.FUNCTION){const i=e[++c];if(E.value===P.SYMBOLIC_ACCESSOR){const e=(0,m.scopedBlock)("SUBSTITUTE",!1,()=>this.parseRPN(i,void 0,n)),r=p.Collection.isCollection(e)?e.getElements():[e],s=this.parseRPN(i,t,n),o=p.Collection.isCollection(s)?s.getElements():[s];if(r.length<2||r.length!==o.length||!h.Expression.isExpression(r[0])||!r[0].isPlainVariable())throw new u.ParserError("Malformed internal symbolic accessor.");const a=r[0],l=o[0],c=[],d=[];let g,E=!0;for(let e=1;e<r.length;e++){const t=r[e],n=o[e];if(!h.Expression.isExpression(t))throw new u.ParserError("Malformed internal symbolic accessor index.");if(!h.Expression.isExpression(n))throw new u.ParserError("Symbolic accessor indices must evaluate to scalar expressions.");c.push(n);const i=Number(n.text());Number.isFinite(i)?d.push(i-m.Settings.INDEX_BASE):E=!1}if(c.length>2)throw new u.ParserError("Symbolic indexed access supports at most two unresolved indices.");if(v.Vector.isVector(l)&&1!==c.length)throw new u.ParserError("Symbolic Vector access requires exactly one index.");if(x.Matrix.isMatrix(l)&&2!==c.length){if(1===c.length)throw new u.ParserError("Symbolic Matrix row access is not scalar and cannot be deferred as an Expression.");throw new u.ParserError("Symbolic Matrix cell access requires exactly two indices.")}if((v.Vector.isVector(l)||x.Matrix.isMatrix(l))&&E)g=l.__get__(d);else{let e;if(v.Vector.isVector(l)||x.Matrix.isMatrix(l))e=l;else{if(!h.Expression.isExpression(l)||!l.isPlainVariable())throw new u.ParserError("Symbolic indexed access target must resolve to a Vector or Matrix.");e=2===c.length?new x.Matrix([]):new v.Vector}g=e.withSymbolicAccessor(a,c)}addToOutput(g)}else if(l.mathFunctionRegistry[E.value]?.deferArguments){const e=[];if(i.length>0){let t=new r.Scope(i.type,i.column);for(const n of i)M.Token.isToken(n)&&n.type===M.Token.OPERATOR&&n.value===P.COMMA?(e.push(t),t=new r.Scope(i.type,i.column)):t.push(n);e.push(t)}const n=l.mathFunctionRegistry[E.value].normalizeDeferredArguments,o=n?n(e):e,a=s.ASSERTIVE_FUNCTIONS.includes(E.value),u=o.map(e=>createDeferredArgument(()=>this.toRPN(e),t,a));addToOutput((0,w.callFunction)(E.value,u))}else if(i.deferLHSResolution){let e=[];if(i.length>0){const t=(0,m.scopedBlock)("SUBSTITUTE",!1,()=>this.parseRPN(i,void 0,n));e=p.Collection.isCollection(t)?[...t.getElements()]:[t]}e.push(h.Expression.Variable(E.value)),addToOutput(new p.Collection(e))}else{const e=this.parseRPN(i,t,s.ASSERTIVE_FUNCTIONS.includes(E.value)),n=p.Collection.isCollection(e)?e.getElements():[e];addToOutput((0,w.callFunction)(E.value,n))}}else if(E.type===M.Token.PREFIX){const e=resolveStackValue(i.pop()),t=h.Expression.fromSymbolicAccess(e)??e,n=`${o[E.value].action}Prefix`;addToOutput((0,w._[n])(t))}else{let e;const n=this.CONSTANTS[E.value];if("string"==typeof n)e=this.parse(n);else if(t&&E.value in t&&!E.is(M.Token.NUMBER)){const n=t[E.value];e=h.Expression.isExpression(n)||g.Equation.isEquation(n)||(0,a.isEnumerable)(n)?n.copy():h.Expression.create(n,void 0,!0)}else if(E.value in this.KNOWN_VALUES&&m.Settings.SUBSTITUTE)e=this.KNOWN_VALUES[E.value].copy();else if(m.Settings.EVALUATE&&"function"==typeof n)e=this.parse(n(),t);else switch(E.type){case M.Token.FUNCTION:e=h.Expression.Function(E.value);break;case M.Token.VARIABLE:e=P.INFINITY.includes(E.value)?h.Expression.Inf():h.Expression.Variable(E.value);break;default:e=h.Expression.Number(E.value)}addToOutput(e)}}let c;if("square"===e.type)c=new v.Vector(resolveStackValues(i));else if("curly"===e.type)if(i.length>0&&T.KeyValuePair.isKeyValuePair(i[0])){const e=new d.Dictionary;for(const t of i)T.KeyValuePair.isKeyValuePair(t)&&e.set(t.key,t.value);c=e}else c=new y.ValuesSet(resolveStackValues(i));else c=i.length>1?new p.Collection(resolveStackValues(i)):resolveStackValue(i[0]);return c}parseTeXRPN(e){const t=["int","int_","frac","sum_","prod_","lim_","infty","mathrm"],n={Re:"realpart",Im:"imagpart",arccos:"acos",arcsin:"asin",arctan:"atan"},i=[],{FUNCTION:s,VARIABLE:o}=M.Token;let a;const integral=()=>{const t=(t=>{const n=new r.Scope("",-1);for(;a<e.length;a++){const i=e[a];if(n.push(i),t(i))break}return n})(e=>/^d/.test(e.value)),n=M.Token.V(t.pop().text().substring(1));return t.at(-1)?.text()===P.COMMA&&t.pop(),[t,n]},getLimits=e=>{const t=new r.Scope("",-1),n=new r.Scope("",-1);let i=t;for(let t=0;t<e.length;t++){const r=e[t];"to"!==r.text()?i.push(r):i=n}return[t,n]};for(a=0;a<e.length;a++){const l=e[a];if(r.Scope.isScope(l)){const e=this.parseTeXRPN(l);i.push(`(${e})`)}else if(l.is(s)||l.is(o)&&t.includes(l.value)){a++;const t=l.text().split("_")[0],r=l.text();switch(l.value){case"cos":case"sin":case"tan":case"sec":case"csc":case"cot":case"acos":case"arccos":case"arcsin":case"arctan":case"asec":case"acsc":case"acot":case"sqrt":case"gcd":case"Re":case"Im":i.push(`${n[r]||r}(${this.parseTeXRPN(e[a])})`);break;case"sum_":case"prod_":{const n=e[a],r=n.shift().text();n.shift();const s=this.parseTeXRPN(n);a+=2;const o=this.parseTeXRPN(e[a]);i.push(`${t}(${this.parseTeXRPN(e[++a])},${r},${s},${o})`);break}case"lim_":{const[n,r]=getLimits(e[a]);i.push(`${t}(${this.parseTeXRPN(e[++a])},${n},${r})`);break}case"int_":{const[e,t]=integral(),n=this.parseTeXRPN(e.shift());e.shift();const r=this.parseTeXRPN(e.shift());i.push(`defint(${this.parseTeXRPN(e)},${n},${r},${t})`);break}case"int":{const[e,n]=integral();i.push(`${t}(${this.parseTeXRPN(e)},${n})`);break}case"frac":{const t=this.parseTeXRPN(e[a]),n=this.parseTeXRPN(e[++a]);i.push(`(${t})/(${n})`);break}case"infty":i.push(P.INFINITY[0]);break;case"mathrm":i.push(`${this.parseTeXRPN(e[a])}(${this.parseTeXRPN(e[++a])})`);break;default:i.push(`${r}(${this.parseTeXRPN(e[a])})`)}}else/\s+/.test(l.value)||i.push(l.value)}return i.join("")}scopedBlock(e,t,n){return(0,m.scopedBlock)(e,t,n)}set(e,t){if("object"==typeof e)for(const t in e)m.Settings[t]=e[t];else m.Settings[e]=t;return this}setConstants(e){for(const t in e){const n=e[t];"string"==typeof n&&""===n&&t in this.CONSTANTS?delete this.CONSTANTS[t]:this.CONSTANTS[t]=n}}setI(e){const t=h.Expression.imaginary;return(0,i.remove)(m.RESTRICTED,t),h.Expression.imaginary=e,m.RESTRICTED.push(e),this}setImaginary(e){return this.setI(e)}setOperator(e,t){const{prefix:n,postfix:i,...r}=e,s={...r,isPostfix:r.isPostfix??i??!1,isPrefix:r.isPrefix??n??!1,iterates:r.iterates??!0};if(t)w._[s.action]=t;else if(!w._[s.action])throw new u.ParserError(`Unknown operator action ${s.action}`);return this.operators[s.operator]=s,(0,M.refreshOperatorSymbols)(),this}setPrecision(e){E.Rational.set({precision:e})}tokenize(e,t){t={pure:!1,keepWhiteSpace:!1,...t};let n=String(e)+"\0";t.keepWhiteSpace||(n=n.replace(/\s+/g," ").trim());const i=Object.keys(this.operators).sort(),o=i.filter(e=>this.operators[e].deferLHSResolution).sort((e,t)=>t.length-e.length);let a=0;const p=new r.Scope("top",0);let d=p;const g={tokenType:M.Token.UNDEFINED,chars:[],inputString:n,last:function(){return this.chars[this.chars.length-1]},next:function(e){return this.inputString.charAt(e+1)},is(e){return this.tokenType===e},prev:function(e){return this.inputString.charAt(e-1)},scientificNumber:!1};for(;a<n.length;a++){const e=n.charAt(a),r=M.Token.getCharType(e,a,g);if(g.is(M.Token.BRACKET)){const e=g.last();if(void 0===e)throw new u.ParserError("Bracket token is missing its character.");const i=s.brackets[e];if(i.isOpen){const e=d[d.length-1];e&&e.type===M.Token.VARIABLE&&(e.value in l.mathFunctionRegistry||e.value===P.SYMBOLIC_ACCESSOR)&&(e.type=M.Token.FUNCTION);let n=!1;if(e&&e.type!==M.Token.FUNCTION&&e.type!==M.Token.OPERATOR)if("square"===i.type)n=!0;else{if(!m.Settings.ALLOW_IMPLICIT_MULTIPLICATION)throw new u.UnexpectedTokenError(`Expected operator or function name but "${e.value}" found!`);"parenthesis"===i.type&&e.type===M.Token.VARIABLE&&(n=!0),t.pure||d.push(new M.Token("*",M.Token.OPERATOR,-1))}d=d.addScope(i.type,a),n&&(d.implicitMultiply=!0)}else{const e=d.type===i.type;if(e&&"parenthesis"===i.type&&d.parent){const e=n.slice(a).trimStart();if(o.find(t=>e.startsWith(t))){const e=d.parent;let t=e.length-2,n=e[t];M.Token.isToken(n)&&n.type===M.Token.OPERATOR&&"*"===n.value&&-1===n.position&&(e.splice(t,1),n=e[--t]),!M.Token.isToken(n)||n.type!==M.Token.VARIABLE&&n.type!==M.Token.FUNCTION||(n.type=M.Token.FUNCTION,d.deferLHSResolution=!0)}}if(d=d.upperScope(),void 0===d||!e)throw new u.UnexpectedTokenError(`Missing opening bracket for "${g.last()}":${a}`)}g.chars.pop()}if(g.tokenType!==M.Token.UNDEFINED&&g.tokenType!==r){let n=g.chars.join(P.BLANK);const r=P.ALIASES[n];r&&(n=r);const s=a-g.chars.length;if(i.includes(n)&&g.tokenType!==M.Token.PREFIX)g.tokenType=M.Token.OPERATOR;else if(g.is(M.Token.OPERATOR)&&g.chars.length>1){let e=g.chars[0];for(let t=1;t<g.chars.length+1;t++){const i=e+g.chars[t];i in this.operators?e=i:(d.push(new M.Token(e,M.Token.OPERATOR,s+t-e.length)),e=g.chars[t],n=P.BLANK)}g.chars=[],g.scientificNumber=!1}const o=n===P.SPACE;if(o&&t.keepWhiteSpace)d.push(new M.Token(n,M.Token.SPACE,s));else if(n!==P.BLANK&&!o){g.scientificNumber&&(n=(0,c.scientificToDecimal)(n),g.scientificNumber=!1);const e=d[d.length-1],i=M.Token.isToken(e)&&e.type===M.Token.OPERATOR?this.operators[e.value]:void 0;if(e&&(g.is(M.Token.VARIABLE)&&e.type!==M.Token.OPERATOR&&e.type!==M.Token.PREFIX||(g.is(M.Token.VARIABLE)||g.is(M.Token.NUMBER))&&i?.isPostfix)){if(!m.Settings.ALLOW_IMPLICIT_MULTIPLICATION)throw new u.UnexpectedTokenError(`Expected operator or function name but "${e.value}" found!`);t.pure||d.push(new M.Token("*",M.Token.OPERATOR,-1))}m.Settings.USE_SINGLE_LETTER_VARIABLES&&!(n in l.mathFunctionRegistry)?d.push(...n.split("").map(e=>new M.Token(e,g.tokenType,-1)).flatMap(e=>[new M.Token("*",M.Token.OPERATOR,-1),e]).slice(1)):d.push(new M.Token(n,g.tokenType,s))}g.chars=[e]}else g.chars.push(e);g.tokenType=r}const h=p[p.length-1];if(r.Scope.isScope(h)&&h.isOpen)throw new u.UnexpectedTokenError(`Missing closing bracket for "${n.charAt(h.column-1)}":${h.column}`);return p}toRPN(e){const t=new r.Scope(e.type,e.depth),n=[],peek=()=>n[n.length-1],peekOperator=()=>{const e=peek();if(e)return e.resolvedOperator??this.operators[e.value]};for(let i=0;i<e.length;i++){let o=e[i];if(r.Scope.isScope(o)){const e=t[t.length-1];if(M.Token.isToken(e)&&e.type===M.Token.FUNCTION&&l.mathFunctionRegistry[e.value]?.deferArguments)t.push(o);else{const e=this.toRPN(o);e.implicitMultiply=o.implicitMultiply,e.deferLHSResolution=o.deferLHSResolution,e.deferRHSResolution=o.deferRHSResolution,t.push(e)}}else{const a=e[i+1],c=e[i+2];switch(o.type===M.Token.VARIABLE&&M.Token.isToken(a)&&a.type===M.Token.OPERATOR&&"*"===a.value&&-1===a.position&&r.Scope.isScope(c)&&"parenthesis"===c.type&&c.implicitMultiply&&o.value in l.mathFunctionRegistry&&(o=new M.Token(o.value,M.Token.FUNCTION,o.position),i++),o.type){case M.Token.OPERATOR:{let s=o.resolvedOperator??this.operators[o.value];if(s.postfixVariant){let t=i+1,n=e[t];for(;M.Token.isToken(n)&&(n.type===M.Token.SPACE||n.type===M.Token.UNDEFINED);)n=e[++t];(void 0===n||M.Token.isToken(n)&&(n.type===M.Token.OPERATOR||n.type===M.Token.PREFIX))&&(s=s.postfixVariant,o.resolvedOperator=s)}let a=peekOperator();for(let t=i+1;t<e.length;t++){const n=e[t];if(!n||n.type!==M.Token.OPERATOR||s.isPostfix)break;if(!this.operators[n.value].isPrefix)throw new u.ParserError(`Prefix operator expected but ${n.value} encountered.`);n.type=M.Token.PREFIX}const l=t[t.length-1];if(s.isPrefix&&(0===t.length||t.length>0&&l&&l.type===M.Token.PREFIX)){o.type=M.Token.PREFIX,n.push(o);break}const greaterPrecedence=()=>{let e=!1;if(a){e=shouldPopOperator(a,s);const t=n[n.length-1];!e&&t&&t.type===M.Token.PREFIX&&s.leftAssoc&&(e=!0)}return e};for(;greaterPrecedence();)t.push(n.pop()),a=peekOperator();if(s.deferLHSResolution){const e=t[t.length-1];if(M.Token.isToken(e)&&e.type===M.Token.VARIABLE){const n=new r.Scope("",e.position);n.deferLHSResolution=!0,n.push(t.pop()),t.push(n)}}if(s.deferRHSResolution){const n=new r.Scope("",o.position);let a=i+1;for(;a<e.length;a++){const t=e[a];if(M.Token.isToken(t)&&t.type===M.Token.OPERATOR){const e=t.resolvedOperator??this.operators[t.value];if(e&&!shouldPopOperator(e,s))break}n.push(t)}if(0===n.length)throw new u.ParserError((0,u.message)("malformedExpression"));const l=this.toRPN(n);l.deferRHSResolution=!0,t.push(l),i=a-1}n.push(o);break}case M.Token.BRACKET:if(s.brackets[String(o.value)].isOpen)n.push(o);else{t.push(o);const e=peek();for(;e;){const e=n.pop();if(t.push(e),e.type===M.Token.BRACKET&&s.brackets[o.value].matches===e.value)break}}break;case M.Token.PREFIX:n.push(o);break;case M.Token.UNDEFINED:case M.Token.SPACE:break;default:t.push(o)}}}for(;n.length;){const e=n.pop();t.push(e)}return t}}t.Parser=new ExpressionParser},266(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.wrappedFunction=function wrappedFunction(e,t){return(...n)=>{const s=new Map,o=new Set;for(let e=0;e<t.length;e++){const r=t[e];s.has(r)||o.has(r)||(Object.prototype.hasOwnProperty.call(i.Parser.KNOWN_VALUES,r)?s.set(r,i.Parser.KNOWN_VALUES[r]):o.add(r)),i.Parser.KNOWN_VALUES[r]=n[e]}let a;try{a=(0,r.functionBoundary)(()=>{let t;return t="string"==typeof e?i.Parser.parse(e):e({inheritValues:!1}),t})}finally{for(const[e,t]of s)i.Parser.KNOWN_VALUES[e]=t;for(const e of o)delete i.Parser.KNOWN_VALUES[e]}return a}};const i=n(238),r=n(294)},294(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContinueSignal=t.BreakSignal=t.ReturnSignal=t.ControlFlowSignal=t.CONTINUE_SIGNAL=t.BREAK_SIGNAL=t.RETURN_SIGNAL=void 0,t.functionBoundary=function functionBoundary(e){let t;g++;try{t=e()}catch(e){if(!ReturnSignal.isReturnSignal(e))throw BreakSignal.isBreakSignal(e)?new r.ParserError((0,r.message)("breakOutsideLoop")):ContinueSignal.isContinueSignal(e)?new r.ParserError((0,r.message)("continueOutsideLoop")):e;t=e.value}finally{g--}return t},t.RETURN=function RETURN(e){throw new ReturnSignal(e)},t.BREAK=function BREAK(){if(0===p)throw new r.ParserError((0,r.message)("breakOutsideLoop"));throw c},t.CONTINUE=function CONTINUE(){if(0===p)throw new r.ParserError((0,r.message)("continueOutsideLoop"));throw m},t.AND=function AND(...e){let t=(0,a.one)();for(const n of e)if(!isTruthy(n())){t=(0,a.zero)();break}return t},t.OR=function OR(...e){let t=(0,a.zero)();for(const n of e)if(isTruthy(n())){t=(0,a.one)();break}return t},t.NOT=function NOT(e){return isTruthy(e)?(0,a.zero)():(0,a.one)()},t.XOR=function XOR(...e){let t=!1;for(const n of e)isTruthy(n)&&(t=!t);return t?(0,a.one)():(0,a.zero)()},t.IFERROR=function IFERROR(e,t){let n;try{n=e()}catch(e){if(e instanceof ControlFlowSignal)throw e;n=t()}return n},t.ISERROR=function ISERROR(e){let t=(0,a.zero)();try{e()}catch(e){if(e instanceof ControlFlowSignal)throw e;t=(0,a.one)()}return t},t.IF=function IF(e,t,n){let i;return i=isTruthy(e())?t():n?n():new l.Vector,i},t.WHILE=WHILE,t.FOR=function FOR(e,t,n,i){return e(),WHILE(t,()=>{let e;try{e=i()}catch(e){throw ContinueSignal.isContinueSignal(e)&&n(),e}return n(),e})},t.BLOCK=BLOCK,t.parserReturnBoundary=parserReturnBoundary,t.parserBlock=function parserBlock(...e){return parserReturnBoundary(()=>BLOCK(...e))};const i=n(6441),r=n(4703),s=n(5817),o=n(296),a=n(6099),l=n(3982),u=n(8300);t.RETURN_SIGNAL="RETURN_SIGNAL",t.BREAK_SIGNAL="BREAK_SIGNAL",t.CONTINUE_SIGNAL="CONTINUE_SIGNAL";class ControlFlowSignal extends Error{constructor(){super(),this.name=new.target.name}}t.ControlFlowSignal=ControlFlowSignal;class ReturnSignal extends ControlFlowSignal{value;dataType=t.RETURN_SIGNAL;constructor(e){super(),this.value=e}static isReturnSignal(e){return(0,i.isNerdamerNativeType)(e,t.RETURN_SIGNAL)}}t.ReturnSignal=ReturnSignal;class BreakSignal extends ControlFlowSignal{dataType=t.BREAK_SIGNAL;static isBreakSignal(e){return(0,i.isNerdamerNativeType)(e,t.BREAK_SIGNAL)}}t.BreakSignal=BreakSignal;class ContinueSignal extends ControlFlowSignal{dataType=t.CONTINUE_SIGNAL;static isContinueSignal(e){return(0,i.isNerdamerNativeType)(e,t.CONTINUE_SIGNAL)}}t.ContinueSignal=ContinueSignal;const c=new BreakSignal,m=new ContinueSignal;let p=0,d=0,g=0;function isTruthy(e){if(!o.Expression.isExpression(e))throw new r.UnexpectedDataType((0,r.message)("expressionExpected",{type:u.dataTypes[e.dataType]}));return!e.isZero()}function WHILE(e,t){let n=new l.Vector,i=!0,o=0;for(;i;)if(isTruthy(e())){if(o>=s.Settings.MAX_LOOP_ITERATIONS)throw new r.ParserError((0,r.message)("loopIterationLimitExceeded",{max:String(s.Settings.MAX_LOOP_ITERATIONS)}));p++;try{n=t()}catch(e){if(BreakSignal.isBreakSignal(e))i=!1;else if(!ContinueSignal.isContinueSignal(e))throw e}finally{p--}o++}else i=!1;return n}function BLOCK(...e){let t=new l.Vector;for(const n of e)t=n();return t}function parserReturnBoundary(e){const t=0===g&&0===d;let n;d++;try{n=e()}catch(e){if(!t||!ReturnSignal.isReturnSignal(e))throw e;n=e.value}finally{d--}return n}},296(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Expression=void 0;const r=i(n(3110)),s=n(8533),o=n(6441),a=n(4703),l=n(4895),u=n(4600),c=n(7741),m=n(886),p=n(5817),d=n(8300),g=n(6255),h=n(619),x=n(3171),E=n(6498),y=n(3957),v=n(3957),P=n(6910),w=n(238),b=n(5584),M=n(6056),A=n(6056),T=n(6056),N=n(8137),O=n(6099),R=n(5118),F=n(5118),D=n(5118),k=n(1897),{NUM:z,VAR:L,EXP:V,FUN:U,GRP:q,PRD:B,SUM:$,INF:Z}=d.EXPRESSION_TYPES;class Expression{static DISTRIBUTE_MULTIPLIER=!0;static imaginary=d.DEFAULT_IMAGINARY;static LOG=d.LOG;static LOG10="log_10";static numberHash="#";static POW_OPR="^";static RESERVED=[d.E].concat(d.PI).concat(d.INFINITY);static sortFunction=(e,t)=>e.isI()?1:e.type===t.type?e.value===t.value?Number(t.getPower())-Number(e.getPower()):e.value>t.value?1:t.value>e.value?-1:0:e.type-t.type;static TYPES=d.EXPRESSION_TYPES;args;base;dataType=d.EXPRESSION;deferred=!1;elements=void 0;isEnumerable=!1;multiplier;name;power;precision;type;value;constructor(e,t){return e=Expression.hook(e),t&&"string"==typeof e?(this.value=e,this):Expression.isExpression(e)?void(0,k.copyOver)(e,this):Expression.create(e)}static create(e,t,n){if(Expression.isExpression(e)&&!t)return n?e.copy():e;if(b.Rational.isRational(e))return Expression.fromRational(e);if((0,o.isNerdamerNativeType)(e,d.EQUATION))return e.toLHS().LHS;const i=w.Parser.parse(String(e),t);if(!Expression.isExpression(i))throw new a.UnexpectedDataType((0,a.message)("expressionExpected",{type:d.dataTypes[i.dataType]}));return i}static E(e){return p.Settings.EVALUATE||e?Expression.fromRational(b.Rational.E):Expression.Variable(d.E)}static fromRational(e){const t=1n===e.denominator?e.numerator.toString():`${e.numerator}/${e.denominator}`,n=Expression.Number(t);return n.getMultiplier().asDecimal=e.asDecimal,n}static fromSymbolicAccess(e){let t;if("object"==typeof e&&null!==e){const n=e,i=n.symbolicTarget,r=n.symbolicAccessor;Expression.isExpression(i)&&r&&r.length>0&&r.every(e=>Expression.isExpression(e))&&(t=Expression.toAccessor(i,r))}return t}static Function(e){const t=Expression.Type(e,U);return t.name=e,t}static getValue(e,t,n){return e.map(e=>{let i=e[t]();return e.type!==$&&e.type!==q||n!==B||(i=`(${i})`),i}).sort().join(n===$||n===q?"+":"*").replace("+-","-")}static hook(e){return e}static Img(){return Expression.Variable(Expression.imaginary)}static Inf(){return Expression.Type(d.INFINITY[0],Z)}static isExpression(e){return(0,o.isNerdamerNativeType)(e,d.EXPRESSION)}static isExpressionArray(e){if(!Array.isArray(e))return!1;for(let t=0;t<e.length;t++)if(!Expression.isExpression(e[t]))return!1;return!0}static N(){return Expression.Variable(d.INDEX_VARIABLE)}static NegInf(){return Expression.Inf().neg()}static Number(e){return Expression.Type(String(e),z)}static Pi(e){return p.Settings.EVALUATE||e?Expression.fromRational(b.Rational.PI):Expression.Variable(d.PI[0])}static setPower(e,t){return e.power=t,e}static symbols(...e){return e.map(e=>Expression.create(e))}static toAccessor(e,t){return Expression.toFunction(d.SYMBOLIC_ACCESSOR,[e,...t])}static toEXP(e,t,n=!1){let i;return e=Expression.create(e),t=Expression.create(t),e.isOne()?i=Expression.create(e):(n&&delete e.power,i=new Expression(e.idString(),!0),i.base=Expression.create(e),i.power=t,i.type=V),i}static toFunction(e,t){const n=Expression.Function(e);return n.args=t.filter(e=>void 0!==e).map(e=>Expression.fromSymbolicAccess(e)??Expression.create(e)),n.name=e,n.updateValue(),n}static Type(e,t){const n=new Expression(e,!0);return n.type=t,n}static Variable(e){return Expression.Type(e,L)}abs(){return(0,s.abs)(this)}add(e){return this.plus(e)}buildFunction(e){return(0,l.build)(this,e)}coeffs(...e){return(0,M.coeffs)(this,e)}copy(){return new Expression(this)}denominator(){return this.getDenominator()}distributeMultiplier(){const e=this.copy();if(this.isSum()&&!this.getMultiplier().isOne()&&this.isLinear()){const t=e.getMultiplier();e.multiplier=void 0;const n=e.getElements();for(const e in n){const i=n[e];i.multiplier=i.getMultiplier().times(t),i.isSum()&&(n[e]=i.distributeMultiplier())}}return e}div(e){return(0,x.divide)(this,Expression.create(e))}divide(e){return this.div(e)}each(e){if(this.elements){const t=this.getElements();for(const n in t)e(t[n],n)}else e(this.toUnitMultiplier(),this.value);return this}elementsArray(e){const t=[];if(this.isProduct()||this.isSum()){const e=this.getElements();for(const n in e){const i=e[n];if(i.isSum()&&this.isSum()&&i.isLinear()){const e=i.getElements();for(const n in e)t.push(e[n])}else t.push(i)}}else t.push(this.toUnitMultiplier());return e&&this.isProduct()&&t.push(Expression.fromRational(this.getMultiplier())),t.sort(Expression.sortFunction)}eq(e){return e=Expression.create(e),(0,h.equal)(this,e)}evaluate(e){const t=this.hasFunction(d.SYMBOLIC_ACCESSOR,!0)?(0,N.toText)(this,{internalAccessor:!0},void 0,Expression.POW_OPR,Expression.sortFunction):this.text(),n=w.Parser.evaluate(t,e);return Expression.fromSymbolicAccess(n)??Expression.create(n)}expand(){return(0,c.expand)(this)}forEveryElement(e){return(0,D.forEveryElement)(this,e)}functions(e,t){return(0,F.functions)(this,e,t)}getArguments(){return this.args||(this.args=[]),this.args}getBase(){let e;return this.isEXP()?e=this.base:(e=this.copy(),delete e.multiplier,delete e.power),e}getDenominator(){return(0,T.getDenominator)(this)}getElements(){return this.elements?this.elements:{}}getMultiplier(e){if(void 0===this.multiplier){const e=this.type===z?this.value:"1";this.multiplier=b.Rational.create(e)}return e?Expression.create(this.multiplier):this.multiplier}getNumerator(){return(0,T.getNumerator)(this)}getPower(){return this.power||(this.isNUM()?this.power=Expression.Number("0"):this.power=Expression.Number("1")),this.power}getVariable(e){return(0,A.getVariable)(this,e)}gt(e){return e=Expression.create(e),(0,h.gt)(this,e)}gte(e){return e=Expression.create(e),(0,h.gte)(this,e)}hasDecimal(){let e=this.getMultiplier().asDecimal;return!e&&this.power&&(e=this.power.hasDecimal()),!e&&this.base&&(e=this.base.hasDecimal()),!e&&this.args&&(e=this.args.some(e=>e.hasDecimal())),!e&&this.elements&&(e=Object.values(this.elements).some(e=>e.hasDecimal())),e}hasFunction(e,t=!1){return(0,R.hasFunction)(this,e,t)}hasRadical(e){const t=this.getPower(),n=t.getMultiplier(),i=t.isNUM()&&1n!==n.denominator;return e?i&&n.isNegative():i}hasVariable(e){return(0,R.hasVariable)(this,e)}i(){return this.times(Expression.Img())}idString(){return this.text(void 0,!0)}imagPart(){return(0,u.imagPart)(this)}invert(){let e;return this.isComplex()?e=(0,O.one)().div(this):(e=new Expression(this),e.power=e.getPower().neg(),e.multiplier=e.getMultiplier().invert()),e.hasRadical()?(0,v.rationalizeRadical)(e):e}isComplex(){let e=!1;if(this.isFunction(d.SYMBOLIC_ACCESSOR))e=!1;else if(!this.isComplexComponentFunction())if(this.isVAR()&&this.isI())e=!0;else if(this.isFunction()){for(const t of this.getArguments())if(t.isComplex()){e=!0;break}}else if(this.isEXP())e=this.getBase().isComplex()||this.getPower().isComplex();else if(this.elements)for(const t of Object.values(this.getElements()))if(t.isComplex()){e=!0;break}return e}isComplexComponentFunction(){return this.isFunction([d.REALPART,d.IMAGPART])}isConstant(){if(this.isSum()||this.isProduct()){const e=this.getElements();for(const t in e)if(!e[t].isConstant())return!1;return!0}return this.isNUM()||this.value in d.PARSER_CONSTANTS&&this.isVAR()||this.isEXP()&&this.getBase().isConstant()&&this.getPower().isConstant()}isE(){return this.value===d.E}isEven(){return this.isNUM()&&this.getMultiplier().isEven()}isEXP(){return this.type===V}isFunction(e){let t;return t=void 0===e?this.type===U:"string"==typeof e?e===this.name:e.includes(String(this.name)),t}isHalf(){if(this.isNUM()){const e=this.getMultiplier();return 1n===e.numerator&&2n===e.denominator}return!1}isI(){return this.value===Expression.imaginary}isImaginary(){return this.evaluate().isComplex()}isInf(){return this.type===Z}isInteger(){return!!this.isOne()||this.type===z&&this.getMultiplier().isInteger()}isLinear(){return this.getPower().isOne()}isMinusOne(){return!!this.isNUM()&&(void 0===this.multiplier&&-1===Number(this.value)||this.getMultiplier().isMinusOne())}isNearlyZero(e=8){const t=new r.default(10).pow(-r.default.precision+e),n=this.realPart(),i=this.imagPart();return n.abs().lte(t)&&i.abs().lte(t)}isNegative(){return this.lt((0,O.zero)())}isNegInf(){return this.isInf()&&this.getMultiplier().lt("0")}isNUM(){return this.type===z}isNumber(){return this.isNUM()}isOdd(){return this.isInteger()&&!this.isEven()}isOne(){if(this.isNUM()){const e=this.getMultiplier();return 1n===e.numerator&&1n===e.denominator}return!1}isPi(){return d.PI.includes(this.value)}isPlainVariable(){return this.isVAR()&&this.getMultiplier().isOne()&&this.getPower().isOne()}isPolynomialLike(){return(0,A.isPolynomialLike)(this)}isPosInf(){return this.isInf()&&this.getMultiplier().gt((0,O.zero)())}isProduct(){return this.type===B}isQuarter(){if(this.isNUM()){const e=this.getMultiplier();return 1n===e.numerator&&4n===e.denominator}return!1}isSum(){return this.type===$||this.type===q}isVAR(){return this.type===L}isZero(){return this.getMultiplier().isZero()}keyValue(e=!1,t=!1){let n="";if(t)n=this.getPower().text();else switch(this.type){case z:n=e?this.value:Expression.numberHash;break;case L:case U:case V:case Z:n=e?this.idString():this.value;break;case q:n=e?this.text():Object.values(this.getElements())[0].keyValue();break;case $:case B:n=Expression.getValue(Object.values(this.getElements()),"text",this.type)}if(!n)throw new Error(`The function 'keyValue' not yet implemented for type ${this.type}`);return n}lt(e){return e=Expression.create(e),(0,h.lt)(this,e)}lte(e){return e=Expression.create(e),(0,h.lte)(this,e)}minus(e){return(0,P.subtract)(this,Expression.create(e))}mod(e){return(0,s.mod)(this,Expression.create(e))}multiply(e){return this.times(e)}neg(){const e=this.copy();return e.multiplier=e.getMultiplier().neg(),e}numerator(){return this.getNumerator()}parseValue(){return this.toLinearAndUnitMultiplier()}plus(e){return(0,g.add)(this,Expression.create(e))}pow(e){return(0,y.power)(this,Expression.create(e))}realPart(){return(0,u.realPart)(this)}sign(){return this.type===V?this.getBase().sign()*this.getMultiplier().sign():this.getMultiplier().sign()}signFree(){let e;if(this.isComplex())e=this.abs();else{e=this.copy();const t=e.getMultiplier();e.value.startsWith("-")&&(e.value=e.value.substring(1)),t.lt("0")&&(e.multiplier=t.neg())}return e}sptext(e,t){const n=Expression.POW_OPR;Expression.POW_OPR="**";const i=(0,N.toText)(this,e,t,Expression.POW_OPR,Expression.sortFunction);return Expression.POW_OPR=n,i}sq(){return this.pow("2")}strictEqual(e){return((e=Expression.create(e)).isFunction()&&this.isFunction()?e.name===this.name:e.type===this.type)&&(0,h.equal)(this,e)}sub(e,t){return this.subst(e,t)}subst(e,t){return e=Expression.create(e),t=Expression.create(t),(0,m.subst)(this,e,t)}subtract(e){return this.minus(e)}text(e,t){return(0,N.toText)(this,e,t,Expression.POW_OPR,Expression.sortFunction)}times(e){return(0,E.multiply)(this,Expression.create(e))}toDecimal(e){const t={decimal:!0};return void 0!==e&&(t.precision=e),this.text(t)}toLinearAndUnitMultiplier(){let e=this.getBase();return this.isEXP()&&(e=e.copy()),e}toString(e){return this.text(e)}totalPower(){if(!this.isProduct())return this.getPower();let e=Expression.Number("0");const t=this.getElements();for(const n in t)e=e.plus(t[n].getPower());return e}toUnitMultiplier(){let e;return this.isNUM()?e=(0,O.one)():(e=this.copy(),delete e.multiplier),e}updateValue(){return this.isFunction()?this.value=`${this.name}(${this.getArguments().map(e=>e.text()).join(", ")})`:(this.isProduct()||this.isSum())&&(this.value=Expression.getValue(this.elementsArray(),"text",this.type)),this}valueOf(){let e;return e=this.isNUM()?this.getMultiplier().valueOf():this.text({decimal:!0}),e}variables(e){return(0,F.variables)(this,e,Expression.RESERVED)}}t.Expression=Expression},388(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.radicalSubstitution=function radicalSubstitution(e,t,n="t"){const o=i.Expression.create(e);if(!t){const e=o.variables();if(0===e.length)return null;t=e[0]}const a=function collectPowerDenominators(e,t){const n=[];function walk(e){if(e.isVAR()&&e.value===t){const t=e.getPower();if(t.isNUM()){const e=t.getMultiplier(),i=e.denominator<0n?-e.denominator:e.denominator;1n!==i&&n.push(i)}return}if(e.isSum()||e.isProduct())for(const t of e.elementsArray())walk(t);else if(e.isFunction())for(const t of e.getArguments())walk(t)}return walk(e),n}(o,t);if(0===a.length)return null;const l=(0,r.bigintLCM)(a),u=Number(l),c=i.Expression.create(n),m=(0,s.rewriteRadicals)(o,t,c,l),p=i.Expression.create(String(u)).times(c.pow(u-1)),d=m.times(p),g=i.Expression.create(t).pow(i.Expression.create(`1/${u}`));return{integrand:d,newVariable:n,originalVariable:t,n:u,backSub:g}},t.hasTranscendental=function hasTranscendental(e,t){if(e.isFunction()&&e.hasVariable(t))return!0;if(e.isEXP()&&e.hasVariable(t))return!0;let n=!1;return(e.isProduct()||e.isSum())&&e.each(e=>{hasTranscendental(e,t)&&(n=!0)}),n};const i=n(296),r=n(551),s=n(886)},417(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.definitions=void 0;const i=n(2348),r=n(3703);t.definitions={cos:[e=>Math.cos(e)],sin:[e=>Math.sin(e)],tan:[e=>Math.tan(e)],sec:[e=>1/Math.cos(e)],csc:[e=>0===e?NaN:1/Math.sin(e)],cot:[e=>0===e?NaN:1/Math.tan(e)],acos:[e=>Math.acos(e)],asin:[e=>Math.asin(e)],atan:[e=>Math.atan(e)],asec:[e=>Math.acos(1/e)],acsc:[e=>Math.asin(1/e)],acot:[e=>e<0?Math.PI+Math.atan(1/e):Math.atan(1/e)],atan2:[(e,t)=>0===e&&0===t||!Number.isFinite(e)&&!Number.isFinite(t)?NaN:Math.atan2(e,t)],cosh:[e=>Math.cosh(e)],sinh:[e=>Math.sinh(e)],tanh:[e=>Math.tanh(e)],sech:[e=>1/Math.cosh(e)],csch:[e=>0===e?NaN:1/Math.sinh(e)],coth:[e=>0===e?NaN:1/Math.tanh(e)],acosh:[e=>Math.acosh(e)],asinh:[e=>Math.asinh(e)],atanh:[e=>1===e?NaN:Math.atanh(e)],asech:[e=>0===e?NaN:Math.acosh(1/e)],acsch:[e=>0===e?NaN:Math.asinh(1/e)],acoth:[e=>Math.atanh(1/e)],abs:[e=>Math.abs(e)],sqrt:[e=>Math.sqrt(e)],cbrt:[e=>Math.cbrt(e)],nthroot:[(e,t)=>0===t?NaN:Math.pow(e,1/t)],log:[(e,t)=>void 0===t?Math.log(e):t<=0||1===t?NaN:Math.log(e)/Math.log(t)],exp:[e=>Math.exp(e)],hypot:[(e,t)=>Math.hypot(e,t)],round:[r.round,["isInt"]],sign:[e=>Math.sign(e)],floor:[e=>Math.floor(e)],ceil:[e=>Math.ceil(e)],ceiling:[e=>Math.ceil(e)],trunc:[e=>Math.trunc(e)],mod:[r.mod],modinv:[r.modInv,["mod"]],max:[(...e)=>Math.max(...e)],min:[(...e)=>Math.min(...e)],avg:[(...e)=>e.reduce((e,t)=>e+t,0)/e.length],heaviside:[r.heaviside],realpart:[e=>e],imagpart:[()=>0],arg:[e=>Number.isNaN(e)?NaN:e<0?Math.PI:0],conjugate:[e=>e],polarform:[e=>e],rectform:[e=>e],csgn:[e=>Math.sign(e)],isInt:[r.isInt],GCD:[r.GCD],gcd:[r.GCD],LCM:[r.LCM,["GCD"]],lcm:[r.LCM,["GCD"]],modInv:[r.modInv,["mod"]],isPrime:[r.isPrime],isprime:[r.isPrime],fib:[e=>{let t=NaN;if(Number.isSafeInteger(e)){const n=e<0,i=Math.abs(e);let r=0,s=1;for(let e=0;e<i;e++){const e=r+s;if(r=s,s=e,!Number.isSafeInteger(r))break}Number.isSafeInteger(r)&&(t=n&&i%2==0?-r:r)}return t}],fact:[r.factorial,["isInt","gamma"]],factorial:[r.factorial,["isInt","gamma"]],dfact:[r.doubleFactorial,["isInt","gamma"]],erf:[r.erf,["erfc"]],erfc:[r.erfc],gammaLN:[r.gammaLN],gamma:[r.gamma,["gammaLN","isInt","factorial"]],sinc:[r.sinc],Si:[r.Si],Shi:[r.Shi],Ci:[r.Ci],Chi:[r.Chi],Ei:[r.Ei],Li:[r.Li],fresnelIntegral:[i.fresnelIntegral],S:[i.fresnelS,["fresnelIntegral"]],C:[i.fresnelC,["fresnelIntegral"]]}},430(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.imatrix=function imatrix(e){let t;return t=e.isInteger()?s.Matrix.identity(Number(e)):i.Expression.toFunction(r.IMATRIX,[e]),t};const i=n(296),r=n(8300),s=n(4462)},542(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.contains=function contains(e,t){let n=!1;const r=e.getMultiplier().abs(),s=t.getMultiplier().abs();if(r.isInteger()&&s.isInteger()&&r.gte(s))if(t.isNUM())n=!0;else if(e.isProduct())if(t.isVAR())n=e.hasVariable(t.value);else if(t.isProduct()){const r=t.elementsArray();for(let t=0;t<r.length;t++){const s=r[t],o=s.getPower();if(!(s.isVAR()&&e.hasVariable(s.value)&&o.isInteger()&&o.gt((0,i.zero)()))){n=!1;break}n=!0}}return n},t.constantsFreeProduct=function constantsFreeProduct(e,t){let n=e.getMultiplier(!0);if((e=e.toUnitMultiplier()).isProduct()&&e.isLinear()){let r=(0,i.one)();e.each(i=>{i.hasVariable(t)?r=r.times(i):n=n.times(i),e=r})}return{constants:n,expression:e}},t.splitProductFactors=function splitProductFactors(e,t){return e.isProduct()?(t??=[],e.each(e=>{const n=e.getPower(),r=n.getMultiplier();if(r.isInteger()&&r.gt((0,i.one)())){const i=n.toUnitMultiplier(),s=e.toLinearAndUnitMultiplier();for(let e=0;e<Number(r.numerator);e++)t.push(s.pow(i))}else e.isProduct()?splitProductFactors(e,t):t.push(e)}),t):[e]};const i=n(6099)},551(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.factorial=void 0,t.abs=abs,t.uniqueSortedArray=uniqueSortedArray,t.GCD=GCD,t.LCM=function LCM(...e){let t=(e=uniqueSortedArray(e))[0];for(let n=1;n<e.length;n++){const i=e[n];t=t*i/GCD(t,i)}return t},t.simplifyRatio=simplifyRatio,t.convert=function convert(e){const[t,n]=(0,i.decimalSplit)(e),r=10n**BigInt(n.length);return simplifyRatio(BigInt(t+n),r)},t.sign=sign,t.isEven=isEven,t.fibonacci=function fibonacci(e){const t=e<0n,n=t?-e:e;let i=0n,r=1n;for(const e of n.toString(2)){const t=i*(2n*r-i),n=i*i+r*r;"0"===e?(i=t,r=n):(i=n,r=t+n)}let s=i;return t&&isEven(n)&&(s=-s),s},t.mod=mod,t.invMod=function invMod(e,t){let n=-1n;const i=abs(t);if(0n!==i){let t=0n,r=1n,s=i,o=mod(e,i);for(;0n!==o;){const e=s/o;[t,r]=[r,t-e*r],[s,o]=[o,s-e*o]}1n===s&&(n=mod(t,i))}return n},t.productInRange=function productInRange(e,t,n=1){let i=BigInt(e),r=BigInt(e);const s=BigInt(n);for(;r<t;)r+=s,i*=r;return i},t.max=function max(...e){if(e.length<1)throw new Error("maxBigInt() requires at least one argument");let t=e[0];for(let n=1;n<e.length;n++)e[n]>t&&(t=e[n]);return t},t.min=function min(...e){if(0===e.length)throw new Error("Min of empty list is not defined for BigInt.");let t=e[0];for(let n=1;n<e.length;n++)e[n]<t&&(t=e[n]);return t},t.recoverCoeffsZ=function recoverCoeffsZ(e,t){const n=Object.keys(t).sort((e,t)=>/\w+[-+]\w+/.test(e)?1:e.localeCompare(t)),i={};for(const r of n){const n=t[r];let s=0,o=!0;do{const t=e/n;if(0n===t)break;0n===e%t?(s++,e=t):o=!1}while(o);i[r]=s}return i.coeff=e,i},t.binom=function binom(e,t){if(e<0n)throw new RangeError("binomBigInt: n must be non-negative");if(t<0n||t>e)return 0n;if(0n===t||t===e)return 1n;let n=t;const i=e-t;i<n&&(n=i);let r=1n;for(let t=1n;t<=n;t++)r=r*(e-n+t)/t;return r},t.bigintLCM=function bigintLCM(e){if(0===e.length)return 1n;function lcm(e,t){return e/function gcd(e,t){for(e=e<0n?-e:e,t=t<0n?-t:t;0n!==t;)[e,t]=[t,e%t];return e}(e,t)*t}let t=e[0];for(let n=1;n<e.length;n++)t=lcm(t,e[n]);return t};const i=n(7103),r=n(5869);function abs(e){return e<0n?-e:e}function uniqueSortedArray(e){return(0,r.arrayUnique)([].slice.call(e).map(function(e){return abs(e)})).sort()}function GCD(...e){let t=(e=uniqueSortedArray(e))[0];for(let n=1;n<e.length;n++){let i=e[n];for(;;){if(t%=i,0n===t){t=i;break}if(i%=t,0n===i)break}}return t}function simplifyRatio(e,t){if(1n!==t){const n=GCD(t,e);return[e/n,t/n]}return[e,t]}function sign(e){return 0n===e?0:e<0n?-1:1}function isEven(e){return e%2n==0n}function mod(e,t){let n;return n=sign(e)===sign(t)?e%t:(e%t+t)%t,n}t.factorial=function(){const e=[1n,1n];let t=2;function bigFactorial(n){if("bigint"==typeof n&&(n=Number(n)),n<0)throw new RangeError("Factorial is undefined for negative integers.");if(void 0!==e[n])return e[n];let i=e[t-1];for(;t<=n;t++)e[t]=i*=BigInt(t);return i}return bigFactorial(100),bigFactorial}()},619(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assume=void 0,t.equal=equal,t.gt=gt,t.gte=function gte(e,t){if(e=o.Expression.create(e),t=o.Expression.create(t),e.isComplex()||t.isComplex())throw new i.UnsupportedOperationError((0,i.message)("unsupportedOperation"));const n=e.isPlainVariable()&&t.isPlainVariable()&&e.value===t.value,r=(0,s.getAssumptionFor)(e),a=(0,s.getAssumptionFor)(t);let l,u;if(n)u=!0;else if(r&&a?l=r.gte(a):r?l=r.gte(t):a&&(l=a.lte(e)),void 0!==l)u=l;else{const n=(0,s.hasAssumptions)()?compareAffineExpressions(e,t,"gte"):void 0;u=void 0===n?gt(e,t)||equal(e,t):n}return u},t.lt=lt,t.lte=function lte(e,t){if(e=o.Expression.create(e),t=o.Expression.create(t),e.isComplex()||t.isComplex())throw new i.UnsupportedOperationError((0,i.message)("unsupportedOperation"));const n=e.isPlainVariable()&&t.isPlainVariable()&&e.value===t.value,r=(0,s.getAssumptionFor)(e),a=(0,s.getAssumptionFor)(t);let l,u;if(n)u=!0;else if(r&&a?l=r.lte(a):r?l=r.lte(t):a&&(l=a.gte(e)),void 0!==l)u=l;else{const n=(0,s.hasAssumptions)()?compareAffineExpressions(e,t,"lte"):void 0;u=void 0===n?lt(e,t)||equal(e,t):n}return u};const i=n(4703),r=n(5523),s=n(6351),o=n(296),a=n(6498),l=n(6910);var u=n(6351);function getAffineForm(e){let t;if(!e.isComplex()&&e.getPower().isOne())if(e.isVAR())(0,s.getAssumptionFor)(e.value)&&(t={coefficient:o.Expression.fromRational(e.getMultiplier()),constant:o.Expression.Number(0),symbol:e.value});else if(e.isSum()){const n=e.elementsArray();let i,r=!0;for(const e of n)if(!e.isNUM()){if(!e.isVAR()||!e.getPower().isOne()){r=!1;break}if(void 0===i){if(i=e.value,!(0,s.getAssumptionFor)(i)){r=!1;break}}else if(i!==e.value){r=!1;break}}if(r&&void 0!==i){let e=o.Expression.Number(0),r=o.Expression.Number(0);for(const t of n)t.isNUM()?r=r.plus(t):e=e.plus(o.Expression.fromRational(t.getMultiplier()));e.isZero()||(t={coefficient:e,constant:r,symbol:i})}}return t}function compareAffineToValue(e,t,n){const i=getAffineForm(e);let r;if(i){const e=(0,s.getAssumptionFor)(i.symbol);if(e){const s=t.minus(i.constant).div(i.coefficient);let o=n;i.coefficient.getMultiplier().isNegative()&&(o="gt"===n?"lt":"gte"===n?"lte":"lt"===n?"gt":"gte"),r=e[o](s)}}return r}function compareAffineExpressions(e,t,n){let i;const r=e.isSum()||e.isVAR()&&!e.isPlainVariable(),s=t.isSum()||t.isVAR()&&!t.isPlainVariable();if(r&&t.isNUM())i=compareAffineToValue(e,t,n);else if(e.isNUM()&&s){let r;r="gt"===n?"lt":"gte"===n?"lte":"lt"===n?"gt":"gte",i=compareAffineToValue(t,e,r)}return i}function getProvenSign(e){let t;if(!e.isComplex())if(e.isNUM())t=e.getMultiplier().sign();else{const n=e.getMultiplier().sign(),i=e.getPower();if(0===n)t=0;else if(!i.isOne()&&i.isNUM()){const r=getProvenSign(e.toLinearAndUnitMultiplier());let s;1===r?s=1:-1===r&&i.isInteger()?s=i.isEven()?1:-1:0===r&&i.getMultiplier().gt("0")&&(s=0),void 0!==s&&(t=n*s)}else if(e.isProduct()){let i=n,r=!0;for(const t of e.elementsArray()){const e=getProvenSign(t);if(void 0===e){r=!1;break}if(i*=e,0===i)break}r&&(t=i)}if(void 0===t&&i.isOne()){const i=e.toLinearAndUnitMultiplier(),r=(0,s.getAssumptionFor)(i);if(r){const e=o.Expression.Number(0);let i;!0===r.gt(e)?i=1:!0===r.lt(e)?i=-1:!0===r.eq(e)&&(i=0),void 0!==i&&(t=n*i)}else e.isSum()&&(0,s.hasAssumptions)()&&(t=function getAffineSign(e){const t=getAffineForm(e);let n;if(t){const e=(0,s.getAssumptionFor)(t.symbol);if(e){const i=t.constant.neg().div(t.coefficient),r=t.coefficient.getMultiplier().isNegative(),s=r?e.lt(i):e.gt(i),o=r?e.gt(i):e.lt(i);!0===s?n=1:!0===o?n=-1:!0===e.eq(i)&&(n=0)}}return n}(e))}}return t}function equal(e,t){e=o.Expression.create(e),t=o.Expression.create(t);const n=e.isPlainVariable()&&t.isPlainVariable()&&e.value===t.value,i=(0,s.getAssumptionFor)(e),u=(0,s.getAssumptionFor)(t);let c,m;if(n)m=!0;else if(i&&u?c=i.eq(u):i?c=i.eq(t):u&&(c=u.eq(e)),void 0!==c)m=c;else{let n;e.isNUM()&&t.isNUM()?n=(0,l.subtract)(e,t):(e=(0,a.canonicalizeRadicals)(e),t=(0,a.canonicalizeRadicals)(t),n=(0,r.toCommonDenominator)((0,l.subtract)(e,t).expand()).expand()),m=n.isNUM()&&n.getMultiplier().eq("0")}return m}function gt(e,t){if(e=o.Expression.create(e),t=o.Expression.create(t),e.isComplex()||t.isComplex())throw new i.UnsupportedOperationError((0,i.message)("unsupportedOperation"));const n=(0,s.getAssumptionFor)(e),r=(0,s.getAssumptionFor)(t);let a,u;if(n&&r?a=n.gt(r):n?a=n.gt(t):r&&(a=r.lt(e)),void 0!==a)u=a;else{let n;if(t.isZero())n=getProvenSign(e);else if(e.isZero()){const e=getProvenSign(t);void 0!==e&&(n=-e)}if(void 0!==n)u=n>0;else{const n=!(0,s.hasAssumptions)()||e.isZero()||t.isZero()?void 0:compareAffineExpressions(e,t,"gt");if(void 0!==n)u=n;else{const n=(0,l.subtract)(e.evaluate(),t.evaluate()).expand();u=n.isNUM()&&n.getMultiplier().gt("0")}}}return u}function lt(e,t){if(e=o.Expression.create(e),t=o.Expression.create(t),e.isComplex()||t.isComplex())throw new i.UnsupportedOperationError((0,i.message)("unsupportedOperation"));const n=(0,s.getAssumptionFor)(e),r=(0,s.getAssumptionFor)(t);let a,u;if(n&&r?a=n.lt(r):n?a=n.lt(t):r&&(a=r.gt(e)),void 0!==a)u=a;else{let n;if(t.isZero())n=getProvenSign(e);else if(e.isZero()){const e=getProvenSign(t);void 0!==e&&(n=-e)}if(void 0!==n)u=n<0;else{const n=!(0,s.hasAssumptions)()||e.isZero()||t.isZero()?void 0:compareAffineExpressions(e,t,"lt");if(void 0!==n)u=n;else{const n=(0,l.subtract)(e.evaluate(),t.evaluate()).expand();u=n.isNUM()&&n.getMultiplier().lt("0")}}}return u}Object.defineProperty(t,"assume",{enumerable:!0,get:function(){return u.assume}})},652(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isTrig=function isTrig(e){return e.isFunction()&&i.TRIG.includes(e.name)},t.isInverseTrig=function isInverseTrig(e){return e.isFunction()&&i.INVERSE_TRIG.includes(e.name)},t.isHyperbolicTrig=function isHyperbolicTrig(e){return e.isFunction()&&i.HYPERBOLIC_TRIG.includes(e.name)},t.isInverseHyperbolicTrig=function isInverseHyperbolicTrig(e){return e.isFunction()&&i.INVERSE_HYPERBOLIC_TRIG.includes(e.name)};const i=n(8300)},706(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sum=t.stripPower=t.product=void 0,t.toFactor=function toFactor(e){return s.Expression.toEXP(e,(0,o.one)())},t.roots=function roots(e,t,n){const i=(e+t+Math.sqrt((e+t)**2-4*n))/2,r=(e+t-Math.sqrt((e+t)**2-4*n))/2;return[Math.min(i,r),Math.max(i,r)]},t.getCombinations=function getCombinations(e,t,n=1,i){i??=[e[0]],t=t||e[0];for(let r=n;r<e.length;r++){const s=t*e[r];i.push(s);for(let t=n+1;t<e.length;t++)i.push(e[n]*e[t]);getCombinations(e,s,r+1,i)}return i=[...new Set(i)].sort((e,t)=>e-t)},t.findMatches=function findMatches(e,t){const n=[];for(let i=0;i<e.length;i++){const r=e[i];for(let s=e.length-1;s>i;s--){const i=e[s],o=r*i;if(o<t)break;o===t&&n.push([Math.min(r,i),Math.max(r,i)])}}return n},t.polynomialStringFromArray=function polynomialStringFromArray(e,t="x"){const n=[],i=[...e].reverse();for(let e=0;e<i.length;e++){const r=i[e];if(0!==r)if(0===e)n.push(String(r));else{const i=1===r?"":-1===r?"-":`${r}*`,s=1===e?"":"^"+e;n.push(`${i}${t}${s}`)}}return n.reverse().join("+").replace(/\+-/g,"-")},t.trimZeros=function trimZeros(e){let t=e.length-1;for(;t>0&&e[t].isZero();)t--;return e.slice(0,t+1)},t.indexOf=function indexOf(e,t){for(let n=0;n<e.length;n++)if(e[n].eq(t))return n;return-1},t.count=function count(e){return m.Vector.isVector(e)||c.ValuesSet.isValuesSet(e)||r.Dictionary.isDictionary(e)?s.Expression.Number(e.count()):s.Expression.toFunction(u.COUNT,[e])},t.size=function size(e){return m.Vector.isVector(e)||l.Matrix.isMatrix(e)||i.Collection.isCollection(e)||c.ValuesSet.isValuesSet(e)||r.Dictionary.isDictionary(e)?m.Vector.create(e.dimensions()):s.Expression.toFunction(u.SIZE,[e])},t.isprime=function isprime(e){const t=s.Expression.create(e);let n;return n=t.isInteger()?s.Expression.Number(Number((0,p.isPrimeBig)(t.getMultiplier().numerator))):s.Expression.toFunction(u.ISPRIME,[t]),n};const i=n(6284),r=n(6528),s=n(296),o=n(6099);var a=n(1897);Object.defineProperty(t,"product",{enumerable:!0,get:function(){return a.product}}),Object.defineProperty(t,"stripPower",{enumerable:!0,get:function(){return a.stripPower}}),Object.defineProperty(t,"sum",{enumerable:!0,get:function(){return a.sum}});const l=n(4462),u=n(8300),c=n(5598),m=n(3982),p=n(982)},886(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prodSubst=prodSubst,t.sumSubst=sumSubst,t.subst=subst,t.getU=getU,t.uSub=uSub,t.rewriteRadicals=rewriteRadicals,t.subRadicals=function subRadicals(e){let t=e.getNumerator(),n=e.getDenominator();const r={},s={},o={};function collectPowers(e){const t=e.elementsArray();for(const e of t)if(e.hasRadical()){if(e.isNUM())continue;const t=e.getPower().getDenominator(),n=e.value,i=r[n];r[n]=i?r[n].times(t):t}}function makeSubstitutions(e){for(const t in r){const n=o[t]?o[t]:getU(e,s);o[t]=n;const a=r[t],l=a.getMultiplier().numerator;s[n]=i.Expression.create(t).pow(a.invert()),e=rewriteRadicals(e,t,i.Expression.create(n),l)}return e}return collectPowers(t),collectPowers(n),t=makeSubstitutions(t),n=makeSubstitutions(n),[t.div(n),s]},t.uUnSub=function uUnSub(e,t){for(const n in t){const i=t[n];e=subst(e,(0,o._)(n),i)}return e},t.uSubConstants=function uSubConstants(e,t){t??={};const n=new Set;e.isVAR()&&(e.isConstant()||e.isI())&&n.add(e.value),e.forEveryElement(e=>(e.isVAR()&&(e.isConstant()||e.isI())&&n.add(e.value),e));for(const i of n)[e,t]=uSub(e,(0,o._)(i),t);return[e,t]},t.uSubFN=function uSubFN(e,t){return t??={},e.functions(void 0,!0).forEach(n=>{[e,t]=uSub(e,(0,o._)(n),t)}),[e,t]},t.uSubEXP=function uSubEXP(e,t){t??={};const n=new Set;e.forEveryElement(e=>(e.isEXP()&&n.add(e.toUnitMultiplier().text()),e));for(const i of n)[e,t]=uSub(e,(0,o._)(i),t);return[e,t]};const i=n(296),r=n(6099),s=n(1897),o=n(7056),a=n(5817);function prodSubst(e,t,n,r){let o;if(e.isProduct())if(t.isProduct()){const l=e.getMultiplier().div(t.getMultiplier());if(l.isInteger()||a.Settings.ALLOW_RAT_SUBS){let i,a=e.elementsArray();const u=t.elementsArray();let c=!1,m=[],p=u.length;for(;u.length>0;){m=[],c=!1;const e=u[u.length-1];u.pop();for(const s of a)if(s.value===e.value){const t=s.getPower().div(e.getPower());if(void 0===i&&(i=t),!(t.isInteger()&&t.eq(i)||s.isEXP()))break;c=!0,p--}else m.push(subst(s,t,n,r));if(!c)break;a=m}0!==p||void 0===i?o=(0,s.product)(...e.elementsArray(!0).map(e=>subst(e,t,n,r))).pow(e.getPower()):(m.push(n.pow(i)),o=(0,s.product)(...m),o.multiplier=o.getMultiplier().times(l)),o=o.pow(subst(e.getPower(),t,n,r))}else o=new i.Expression(e)}else o=(0,s.product)(...e.elementsArray(!0).map(e=>subst(e,t,n,r))).pow(e.getPower());return o||e}function sumSubst(e,t,n,i){let o;if(!e.isSum())return e;const a=e.getPower(),l=e.getMultiplier();if(t.isSum()){const u=e.elementsArray().slice(),c=t.isSum()&&t.isLinear()?t.elementsArray():[t.toUnitMultiplier()],m=[];let p;for(const r of c){const o=u.findIndex(e=>e.value===r.value&&e.getPower().eq(r.getPower()));if(-1===o)return(0,s.sum)(...e.elementsArray().map(e=>subst(e,t,n,i))).pow(a).times(l);const c=u[o];u.splice(o,1),m.push(c);const d=c.div(r);if(p){if(!d.eq(p))return(0,s.sum)(...e.elementsArray().map(e=>subst(e,t,n,i))).pow(a).times(l)}else p=d}const d=n.times(p||(0,r.one)()),g=u.map(e=>subst(e,t,n,i));g.push(d),o=(0,s.sum)(...g).pow(a).times(l)}else o=(0,s.sum)(...e.elementsArray().map(e=>subst(e,t,n,i))).pow(a).times(l);return o||e}function subst(e,t,n,s=!1){let o;if(e=i.Expression.create(e),t=i.Expression.create(t),n=i.Expression.create(n),e.isNUM()&&!s)o=e;else if(e.eq(t))o=n;else if(t.isVAR()&&t.getPower().isOne()&&t.getMultiplier().isOne()&&e.isVAR()&&e.value===t.value){const i=subst(e.getPower(),t,n,s),a=e.getMultiplier();o=i.isNUM()&&i.getMultiplier().isNegative()?(0,r.one)().div(n.copy().pow(i.abs())):n.copy().pow(i),a.isOne()||(o=o.times(a))}else if(e.isProduct())o=prodSubst(e,t,n,s);else if(e.isSum())o=sumSubst(e,t,n,s);else if(e.isFunction())e.value===t.value?o=new i.Expression(n):(o=i.Expression.Function(e.name),o.args=e.getArguments().map(e=>subst(e,t,n,s)),o.updateValue()),o=o.pow(e.getPower()).times(e.getMultiplier());else if(e.isEXP()){const i=subst(e.getBase(),t,n,!0),r=subst(e.getPower(),t,n,s);o=i.pow(r).times(e.getMultiplier())}return o||e}function getU(e,t){const n=(e=i.Expression.create(e)).variables();t??={};let r,s=0;do{r=`u${s}`,s++}while(n.includes(r)||r in t);return r}function uSub(e,t,n){n??={},e=i.Expression.create(e),t=i.Expression.create(t);const r=getU(e,n),s=subst(e,t,(0,o._)(r));return s.eq(e)||(n[r]=t),[s,n]}function rewriteRadicals(e,t,n,s){let o=e;if((e.isVAR()||e.isEXP())&&e.value===t){const t=e.getMultiplier(),r=e.getPower();if(r.isNUM()){const e=r.getMultiplier(),a=s*e.numerator,l=e.denominator<0n?-e.denominator:e.denominator;if(a%l!==0n)o=i.Expression.fromRational(t).times(n.pow(`${a}/${l}`));else{const e=a/l;o=i.Expression.fromRational(t).times(n.pow(e.toString()))}}else o=i.Expression.fromRational(t).times(n.pow(r.times(s.toString())))}else if(e.isEXP()){const r=rewriteRadicals(e.getBase(),t,n,s),a=rewriteRadicals(e.getPower(),t,n,s);o=i.Expression.toEXP(r,a),e.getMultiplier().isOne()||(o=o.times(i.Expression.fromRational(e.getMultiplier())))}else if(e.isSum()){const a=e.getMultiplier(),l=e.getPower();o=(0,r.zero)();for(const i of e.elementsArray())o=o.plus(rewriteRadicals(i,t,n,s));l.isOne()||(o=o.pow(l)),a.isOne()||(o=o.times(i.Expression.fromRational(a)))}else if(e.isProduct()){const a=e.getMultiplier(),l=e.getPower();o=(0,r.one)();for(const i of e.elementsArray())o=o.times(rewriteRadicals(i,t,n,s));l.isOne()||(o=o.pow(l)),a.isOne()||(o=o.times(i.Expression.fromRational(a)))}else if(e.isFunction()){const r=e.getArguments();if(r.length>0){const a=r.map(e=>rewriteRadicals(e,t,n,s));o=i.Expression.toFunction(e.name,a),o.multiplier=e.getMultiplier().copy(),o=i.Expression.setPower(o,e.getPower())}}return o}},959(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tableOfIntegrals=void 0;const i=n(296),r=n(6099),s=n(2178),o=n(8533),a=n(5530),l={"a1*cos(a2*x1^n1)^n2":(e,t)=>{if(e.get("n1").isOne()){const n=e.get("n2");if(n.isOne())return e.fromPattern("(a1*sin(a2*x1))/a2");if(n.isEven()){const n=e.fromPattern("a1*((1+cos(2*a2*x1^n1))/2)^(n2/2)").expand();return(0,a.integrate)(n,e.get("x1"),t)}{const n=e.fromPattern("a1*cos(a2*x1^n1)*((1+cos(2*a2*x1^n1))/2)^((n2-1)/2)").expand();return(0,a.integrate)(n,e.get("x1"),t)}}},"a1*sin(a2*x1^n1)^n2":(e,t)=>{if(e.get("n1").isOne()){const n=e.get("n2");if(n.isOne())return e.fromPattern("-((a1*cos(a2*x1))/a2)");if(n.isEven()){const n=e.fromPattern("a1*((1-cos(2*a2*x1^n1))/2)^(n2/2)").expand();return(0,a.integrate)(n,e.get("x1"),t)}{const n=e.fromPattern("a1*sin(a2*x1^n1)*((1-cos(2*a2*x1^n1))/2)^((n2-1)/2)").expand();return(0,a.integrate)(n,e.get("x1"),t)}}},"a1*tan(a2*x1^n1)^n2":(e,t)=>{if(e.get("n1").isOne()){const n=e.get("n2");if(n.isOne())return e.fromPattern("(a1*log(sec(a2*x1)))/a2");if(n.isEven()){const n=e.fromPattern("a1*tan(a2*x1)^(n2-2)*(sec(a2*x1)^2-1)").expand();return(0,a.integrate)(n,e.get("x1"),t)}{const n=e.fromPattern("(a1*tan(a2*x1)^(n2-1))/(a2*(n2-1))"),i=(0,a.integrate)(e.fromPattern("-a1*tan(a2*x1)^(n2-2)"),e.get("x1"),t);return n.plus(i)}}},"a1*sec(a2*x1^n1)^n2":(e,t)=>{if(e.get("n1").isOne()){if(e.get("n2").isOne())return e.fromPattern("(a1*log(tan(a2*x1)+sec(a2*x1)))/a2");const n=e.fromPattern("(a1*sec(a2*x1)^(n2-2)*tan(a2*x1))/(a2*(n2-1))"),i=(0,a.integrate)(e.fromPattern("a1*((n2-2)/(n2-1))*sec(a2*x1)^(n2-2)"),e.get("x1"),t);return n.plus(i)}},"a1*csc(a2*x1^n1)^n2":(e,t)=>{if(e.get("n1").isOne()){if(e.get("n2").isOne())return e.fromPattern("-(a1*log(csc(a2*x1)+cot(a2*x1)))/a2");const n=e.fromPattern("-(a1*csc(a2*x1)^(n2-2)*cot(a2*x1))/(a2*(n2-1))"),i=(0,a.integrate)(e.fromPattern("-a1*((n2-2)/(n2-1))*csc(a2*x1)^(n2-2)"),e.get("x1"),t);return n.plus(i)}},"a1*cot(a2*x1^n1)^n2":(e,t)=>{if(e.get("n1").isOne()){const n=e.get("n2");if(n.isOne())return e.fromPattern("(a1*log(sin(a2*x1)))/a2");if(n.isEven()){const n=e.fromPattern("a1*cot(a2*x1)^(n2-2)*(csc(a2*x1)^2-1)").expand();return(0,a.integrate)(n,e.get("x1"),t)}{const n=e.fromPattern("-(a1*cot(a2*x1)^(n2-1))/(a2*(n2-1))"),i=(0,a.integrate)(e.fromPattern("-a1*cot(a2*x1)^(n2-2)"),e.get("x1"),t);return n.plus(i)}}},"a1*cos(a2*x1^n1)^n2*cos(a3*x1^n3)^n4":(e,t)=>{if(e.get("n1").isOne()&&e.get("n3").isOne()){const n=e.get("n2"),i=e.get("n4");if(!n.isOne()){let i;return i=n.isEven()?e.fromPattern("a1*((1+cos(2*a2*x1))/2)^(n2/2)*cos(a3*x1)^n4").expand():e.fromPattern("a1*cos(a2*x1)*((1+cos(2*a2*x1))/2)^((n2-1)/2)*cos(a3*x1)^n4").expand(),(0,a.integrate)(i,e.get("x1"),t)}if(!i.isOne()){let n;return n=i.isEven()?e.fromPattern("a1*cos(a2*x1)^n2*((1+cos(2*a3*x1))/2)^(n4/2)").expand():e.fromPattern("a1*cos(a2*x1)^n2*cos(a3*x1)*((1+cos(2*a3*x1))/2)^((n4-1)/2)").expand(),(0,a.integrate)(n,e.get("x1"),t)}return e.get("a2").eq(e.get("a3"))?e.fromPattern("(a1*x1)/2+(a1*sin(2*a2*x1))/(4*a2)"):e.fromPattern("a1*(sin((a2+a3)*x1)/(2*(a2+a3))+sin((a2-a3)*x1)/(2*(a2-a3)))")}},"a1*sin(a2*x1^n1)^n2*sin(a3*x1^n3)^n4":(e,t)=>{if(e.get("n1").isOne()&&e.get("n3").isOne()){const n=e.get("n2"),i=e.get("n4");if(!n.isOne()){let i;return i=n.isEven()?e.fromPattern("a1*((1-cos(2*a2*x1))/2)^(n2/2)*sin(a3*x1)^n4").expand():e.fromPattern("a1*sin(a2*x1)*((1-cos(2*a2*x1))/2)^((n2-1)/2)*sin(a3*x1)^n4").expand(),(0,a.integrate)(i,e.get("x1"),t)}if(!i.isOne()){let n;return n=i.isEven()?e.fromPattern("a1*sin(a2*x1)^n2*((1-cos(2*a3*x1))/2)^(n4/2)").expand():e.fromPattern("a1*sin(a2*x1)^n2*sin(a3*x1)*((1-cos(2*a3*x1))/2)^((n4-1)/2)").expand(),(0,a.integrate)(n,e.get("x1"),t)}return e.get("a2").eq(e.get("a3"))?e.fromPattern("(a1*x1)/2-(a1*sin(2*a2*x1))/(4*a2)"):e.fromPattern("a1*(sin((a2-a3)*x1)/(2*(a2-a3))-sin((a2+a3)*x1)/(2*(a2+a3)))")}},"a1*cos(a2*x1^n1)^n2*sin(a3*x1^n3)^n4":(e,t)=>{if(e.get("n1").isOne()&&e.get("n3").isOne()){const n=e.get("n2"),i=e.get("n4");if(!n.isOne()){let i;return i=n.isEven()?e.fromPattern("a1*((1+cos(2*a2*x1))/2)^(n2/2)*sin(a3*x1)^n4").expand():e.fromPattern("a1*cos(a2*x1)*((1+cos(2*a2*x1))/2)^((n2-1)/2)*sin(a3*x1)^n4").expand(),(0,a.integrate)(i,e.get("x1"),t)}if(!i.isOne()){let n;return n=i.isEven()?e.fromPattern("a1*cos(a2*x1)^n2*((1-cos(2*a3*x1))/2)^(n4/2)").expand():e.fromPattern("a1*cos(a2*x1)^n2*sin(a3*x1)*((1-cos(2*a3*x1))/2)^((n4-1)/2)").expand(),(0,a.integrate)(n,e.get("x1"),t)}return e.get("a2").eq(e.get("a3"))?e.fromPattern("-(a1*cos(2*a2*x1))/(4*a2)"):e.fromPattern("a1*(-cos((a2+a3)*x1)/(2*(a2+a3))+cos((a2-a3)*x1)/(2*(a2-a3)))")}},"a1*sec(a2*x1^n1)^n2*tan(a3*x1^n3)^n4":e=>{if(e.get("n1").isOne()&&e.get("n3").isOne()&&e.get("n2").isOne()&&e.get("n4").isOne()&&e.get("a2").eq(e.get("a3")))return e.fromPattern("(a1*sec(a2*x1))/a2")},"a1*cot(a2*x1^n1)^n2*csc(a3*x1^n3)^n4":e=>{if(e.get("n1").isOne()&&e.get("n3").isOne()&&e.get("n2").isOne()&&e.get("n4").isOne()&&e.get("a2").eq(e.get("a3")))return e.fromPattern("-(a1*csc(a2*x1))/a2")},"a1/(cos(a2*x1^n1)^n2)":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*log(tan(a2*x1)+sec(a2*x1)))/a2")},"a1/(sin(a2*x1^n1)^n2)":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("-(a1*log(csc(a2*x1)+cot(a2*x1)))/a2")},"a1/(tan(a2*x1^n1)^n2)":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*log(sin(a2*x1)))/a2")},"a1/(sec(a2*x1^n1)^n2)":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*sin(a2*x1))/a2")},"a1/(csc(a2*x1^n1)^n2)":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("-((a1*cos(a2*x1))/a2)")},"a1/(cot(a2*x1^n1)^n2)":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*log(sec(a2*x1)))/a2")},"a1*sin(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("-((a1*cos(a2*(a3*x1+a4)))/(a2*a3))")},"a1*cos(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*sin(a2*(a3*x1+a4)))/(a2*a3)")},"a1*tan(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*log(sec(a2*(a3*x1+a4))))/(a2*a3)")},"a1*sec(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*log(tan(a2*(a3*x1+a4))+sec(a2*(a3*x1+a4))))/(a2*a3)")},"a1*csc(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("-(a1*log(csc(a2*(a3*x1+a4))+cot(a2*(a3*x1+a4))))/(a2*a3)")},"a1*cot(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*log(sin(a2*(a3*x1+a4))))/(a2*a3)")}},u={"a1*cosh(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*sinh(a2*x1))/a2")},"a1*sinh(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*cosh(a2*x1))/a2")},"a1*tanh(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*log(cosh(a2*x1)))/a2")},"a1*sech(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()){if(e.get("n2").isOne())return e.fromPattern("(a1*atan(sinh(a2*x1)))/a2");if(e.get("n2").eq(2))return e.fromPattern("(a1*tanh(a2*x1))/a2")}},"a1*csch(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()){if(e.get("n2").isOne())return e.fromPattern("(a1*log(tanh((a2*x1)/2)))/a2");if(e.get("n2").eq(2))return e.fromPattern("-(a1*coth(a2*x1))/a2")}},"a1*coth(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*log(sinh(a2*x1)))/a2")},"a1*sinh(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*cosh(a2*(a3*x1+a4)))/(a2*a3)")},"a1*cosh(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*sinh(a2*(a3*x1+a4)))/(a2*a3)")},"a1*tanh(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*log(cosh(a2*(a3*x1+a4))))/(a2*a3)")},"a1*coth(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*log(sinh(a2*(a3*x1+a4))))/(a2*a3)")},"a1*sech(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()){if(e.get("n3").isOne())return e.fromPattern("(a1*atan(sinh(a2*(a3*x1+a4))))/(a2*a3)");if(e.get("n3").eq(2))return e.fromPattern("(a1*tanh(a2*(a3*x1+a4)))/(a2*a3)")}},"a1*csch(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()){if(e.get("n3").isOne())return e.fromPattern("(a1*log(tanh((a2*(a3*x1+a4))/2)))/(a2*a3)");if(e.get("n3").eq(2))return e.fromPattern("-(a1*coth(a2*(a3*x1+a4)))/(a2*a3)")}},"a1*sech(a2*(a3*x1^n1+a4)^n2)^n3*tanh(a5*(a6*x1^n4+a7)^n5)^n6":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne()&&e.get("n4").isOne()&&e.get("n5").isOne()&&e.get("n6").isOne()&&e.get("a2").eq(e.get("a5"))&&e.get("a3").eq(e.get("a6"))&&e.get("a4").eq(e.get("a7")))return e.fromPattern("-(a1*sech(a2*(a3*x1+a4)))/(a2*a3)")},"a1*coth(a2*(a3*x1^n1+a4)^n2)^n3*csch(a5*(a6*x1^n4+a7)^n5)^n6":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne()&&e.get("n4").isOne()&&e.get("n5").isOne()&&e.get("n6").isOne()&&e.get("a2").eq(e.get("a5"))&&e.get("a3").eq(e.get("a6"))&&e.get("a4").eq(e.get("a7")))return e.fromPattern("-(a1*csch(a2*(a3*x1+a4)))/(a2*a3)")},"a1*cosh(a2*x1^n1)^n2*sinh(a3*x1^n3)^n4":(e,t)=>{if(e.get("n1").isOne()&&e.get("n3").isOne()&&e.get("a2").eq(e.get("a3"))){const n=e.get("n2"),i=e.get("n4");if(i.isOne())return e.fromPattern("(a1*cosh(a2*x1)^(n2+1))/(a2*(n2+1))");if(n.isOne())return e.fromPattern("(a1*sinh(a2*x1)^(n4+1))/(a2*(n4+1))");if(i.isOdd()){const n=e.fromPattern("a1*cosh(a2*x1)^n2*(cosh(a2*x1)^2-1)^((n4-1)/2)*sinh(a2*x1)").expand();return(0,a.integrate)(n,e.get("x1"),t)}if(n.isOdd()){const n=e.fromPattern("a1*(1+sinh(a2*x1)^2)^((n2-1)/2)*sinh(a2*x1)^n4*cosh(a2*x1)").expand();return(0,a.integrate)(n,e.get("x1"),t)}}},"a1*sech(a2*x1^n1)^n2*tanh(a3*x1^n3)^n4":(e,t)=>{if(e.get("n1").isOne()&&e.get("n3").isOne()&&e.get("a2").eq(e.get("a3"))){const n=e.get("n2"),i=e.get("n4");if(i.isOne())return e.fromPattern("-(a1*sech(a2*x1)^n2)/(a2*n2)");if(n.eq(2))return e.fromPattern("(a1*tanh(a2*x1)^(n4+1))/(a2*(n4+1))");if(i.isOdd()){const n=e.fromPattern("a1*sech(a2*x1)^n2*(1-sech(a2*x1)^2)^((n4-1)/2)*tanh(a2*x1)").expand();return(0,a.integrate)(n,e.get("x1"),t)}if(n.isEven()){const n=e.fromPattern("a1*(1-tanh(a2*x1)^2)^((n2-2)/2)*sech(a2*x1)^2*tanh(a2*x1)^n4").expand();return(0,a.integrate)(n,e.get("x1"),t)}}},"a1*coth(a2*x1^n1)^n2*csch(a3*x1^n3)^n4":(e,t)=>{if(e.get("n1").isOne()&&e.get("n3").isOne()&&e.get("a2").eq(e.get("a3"))){const n=e.get("n2"),i=e.get("n4");if(n.isOne())return e.fromPattern("-(a1*csch(a2*x1)^n4)/(a2*n4)");if(i.eq(2))return e.fromPattern("-(a1*coth(a2*x1)^(n2+1))/(a2*(n2+1))");if(n.isOdd()){const n=e.fromPattern("a1*(1+csch(a2*x1)^2)^((n2-1)/2)*csch(a2*x1)^n4*coth(a2*x1)").expand();return(0,a.integrate)(n,e.get("x1"),t)}if(i.isEven()){const n=e.fromPattern("a1*coth(a2*x1)^n2*(coth(a2*x1)^2-1)^((n4-2)/2)*csch(a2*x1)^2").expand();return(0,a.integrate)(n,e.get("x1"),t)}}}},c={"a1*log(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(a2*x1*log(a2*x1)-a2*x1))/a2")},"(a1*log(a2*x1^n2)^n3)/x1^n1":e=>{if(e.get("n2").isOne()&&e.get("n3").isOne())return e.get("n1").isOne()?e.fromPattern("a1*log(x1)*log(a2*x1)-(a1*log(x1)^2)/2"):e.fromPattern("(a1*x1^(1-n1)*log(a2*x1))/(1-n1)-(a1*x1^(1-n1))/(1-n1)^2")},"a1*x1^n1*log(a2*x1^n2)^n3":e=>{if(e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*x1^(n1+1)*log(a2*x1))/(n1+1)-(a1*x1^(n1+1))/(n1+1)^2")},"a1*x1^n1":e=>e.fromPattern("(a1*x1^(n1+1))/(n1+1)"),"a1/x1^n1":e=>e.get("n1").isOne()?e.fromPattern("a1*log(x1)"):e.fromPattern("(a1*x1^(-n1+1))/(-n1+1)"),"a1*(a2*x1^n1+a3)^n2":e=>{if(e.get("n1").isOne())return e.fromPattern("(a1*(a2*x1+a3)^(n2+1))/(a2*(n2+1))")},"a1/((a2*x1^n1+a3)^n2)":e=>{if(e.get("n1").isOne())return e.get("n2").isOne()?e.fromPattern("(a1*log(a2*x1+a3))/a2"):e.fromPattern("(a1*(a2*x1+a3)^(-n2+1))/(a2*(-n2+1))")},"a1*log(a2*(a3*x1^n1+a4)^n2)^n3":e=>{if(e.get("n3").isOne()&&e.get("n2").isOne()){const t=e.get("n1");if(t.isOne())return e.fromPattern("(a1*(a2*(a3*x1+a4)*log(a2*(a3*x1+a4))-a2*(a3*x1+a4)))/(a2*a3)");if(e.get("a3").times(e.get("a4")).lt((0,r.zero)())){if(t.eq((0,r.two)()))return e.fromPattern("a1*(x1*log(a2*(a3*x1^2+a4))-2*a3*(x1/a3-(a4*log((2*a3*x1-2*sqrt(-(a3*a4)))/(2*a3*x1+2*sqrt(-(a3*a4)))))/(2*a3*sqrt(-(a3*a4)))))");if(t.eq((0,r.three)()))return e.fromPattern(`a1*(x1*log(a2*(a3*x1^3+a4))-3*a3*((${i.Expression.Img()}*a4^(1/3)*log((2*a3^(2/3)*x1-sqrt(3)*${i.Expression.Img()}*a3^(1/3)*a4^(1/3)-a3^(1/3)*a4^(1/3))/(2*a3^(2/3)*x1+sqrt(3)*${i.Expression.Img()}*a3^(1/3)*a4^(1/3)-a3^(1/3)*a4^(1/3))))/(2*sqrt(3)*a3^(4/3))+(a4^(1/3)*log(a3^(2/3)*x1^2-a3^(1/3)*a4^(1/3)*x1+a4^(2/3)))/(6*a3^(4/3))-(a4^(1/3)*log((a3^(1/3)*x1+a4^(1/3))/a3^(1/3)))/(3*a3^(4/3))+x1/a3))`)}else{if(t.eq((0,r.two)()))return e.fromPattern("a1*(x1*log(a2*(a3*x1^2+a4))-2*a3*(x1/a3-(a4*atan((a3*x1)/sqrt(a3*a4)))/(a3*sqrt(a3*a4))))");if(t.eq((0,r.three)()))return e.fromPattern(`a1*(x1*log(a2*(a3*x1^3+a4))-3*a3*((${i.Expression.Img()}*a4^(1/3)*log((2*a3^(2/3)*x1-sqrt(3)*${i.Expression.Img()}*a3^(1/3)*a4^(1/3)-a3^(1/3)*a4^(1/3))/(2*a3^(2/3)*x1+sqrt(3)*${i.Expression.Img()}*a3^(1/3)*a4^(1/3)-a3^(1/3)*a4^(1/3))))/(2*sqrt(3)*a3^(4/3))+(a4^(1/3)*log(a3^(2/3)*x1^2-a3^(1/3)*a4^(1/3)*x1+a4^(2/3)))/(6*a3^(4/3))-(a4^(1/3)*log((a3^(1/3)*x1+a4^(1/3))/a3^(1/3)))/(3*a3^(4/3))+x1/a3))`)}}}},m={"a1*(a2)^(a3*x1^n1)*cos(a4*x1^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*(e^(log(a2)*a3*x1)*a4*sin(a4*x1)+e^(log(a2)*a3*x1)*log(a2)*a3*cos(a4*x1)))/(a4^2+log(a2)^2*a3^2)")},"a1*(a2)^(a3*x1^n1)*sin(a4*x1^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*(e^(log(a2)*a3*x1)*log(a2)*a3*sin(a4*x1)-e^(log(a2)*a3*x1)*a4*cos(a4*x1)))/(a4^2+log(a2)^2*a3^2)")},"a1*(a2)^(a3*x1^n1)*cosh(a4*x1^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*(x1-e^(-((-((log(a2)*a3)/a4)-1)*a4*x1))/((-((log(a2)*a3)/a4)-1)*a4)))/2")},"a1*(a2)^(a3*x1^n1)*sinh(a4*x1^n2)^n3":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return e.fromPattern("(a1*(-x1-e^(-((-((log(a2)*a3)/a4)-1)*a4*x1))/((-((log(a2)*a3)/a4)-1)*a4)))/2")},"a1*(a2)^(a3*x1^n1)*x1^n2":e=>{if(e.get("n1").isOne()){const t=e.get("n2");if(t.isOne())return e.fromPattern("(e^(log(a2)*a3*x1)*a1*(log(a2)*a3*x1-1))/(log(a2)^2*a3^2)");if(t.eq((0,r.two)()))return e.fromPattern("(e^(log(a2)*a3*x1)*a1*(log(a2)^2*a3^2*x1^2-2*log(a2)*a3*x1+2))/(log(a2)^3*a3^3)");if(t.eq((0,r.three)()))return e.fromPattern("(e^(log(a2)*a3*x1)*a1*(log(a2)^3*a3^3*x1^3-3*log(a2)^2*a3^2*x1^2+6*log(a2)*a3*x1-6))/(log(a2)^4*a3^4)");if(t.eq((0,r.four)()))return e.fromPattern("(e^(log(a2)*a3*x1)*a1*(log(a2)^4*a3^4*x1^4-4*log(a2)^3*a3^3*x1^3+12*log(a2)^2*a3^2*x1^2-24*log(a2)*a3*x1+24))/(log(a2)^5*a3^5)");if(t.eq((0,r.five)()))return e.fromPattern("(e^(log(a2)*a3*x1)*a1*(log(a2)^5*a3^5*x1^5-5*log(a2)^4*a3^4*x1^4+20*log(a2)^3*a3^3*x1^3-60*log(a2)^2*a3^2*x1^2+120*log(a2)*a3*x1-120))/(log(a2)^6*a3^6)");if(t.eq((0,r.six)()))return e.fromPattern("(e^(log(a2)*a3*x1)*a1*(log(a2)^6*a3^6*x1^6-6*log(a2)^5*a3^5*x1^5+30*log(a2)^4*a3^4*x1^4-120*log(a2)^3*a3^3*x1^3+360*log(a2)^2*a3^2*x1^2-720*log(a2)*a3*x1+720))/(log(a2)^7*a3^7)")}}},p={"(a1*sin(a2*x1^n2)^n3)/x1^n1":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return(0,o.Si)(e.fromPattern("a2*x1")).times(e.get("a1"))},"(a1*cos(a2*x1^n2)^n3)/x1^n1":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne()&&e.get("n3").isOne())return(0,o.Ci)(e.fromPattern("a2*x1")).times(e.get("a1"))},"(a1*(a2)^(a3*x1^n1))/x1^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return(0,o.Ei)(e.fromPattern("log(a2)*a3*x1")).times(e.get("a1"))}};t.tableOfIntegrals=new s.LookupTable,t.tableOfIntegrals.addEntries(l),t.tableOfIntegrals.addEntries({"a1*acos(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(a2*x1*acos(a2*x1)-sqrt(1-a2^2*x1^2)))/a2")},"a1*asin(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(a2*x1*asin(a2*x1)+sqrt(1-a2^2*x1^2)))/a2")},"a1*atan(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(a2*x1*atan(a2*x1)-log(a2^2*x1^2+1)/2))/a2")},"a1*asec(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(a2*x1*asec(a2*x1)-log(sqrt(1-1/(a2^2*x1^2))+1)/2+log(1-sqrt(1-1/(a2^2*x1^2)))/2))/a2")},"a1*acsc(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(a2*x1*acsc(a2*x1)+log(sqrt(1-1/(a2^2*x1^2))+1)/2-log(1-sqrt(1-1/(a2^2*x1^2)))/2))/a2")},"a1*acot(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(log(a2^2*x1^2+1)/2+a2*x1*acot(a2*x1)))/a2")}}),t.tableOfIntegrals.addEntries(c),t.tableOfIntegrals.addEntries({"a1*(a2)^(a3*x1^n1)":e=>{if(e.get("n1").isOne())return e.fromPattern("(a1*a2^(a3*x1))/(log(a2)*a3)")},"a1*(a2)^(a3*(a4*x1^n1+a5)^n2)":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*a2^(a3*(a4*x1+a5)))/(log(a2)*a3*a4)")}}),t.tableOfIntegrals.addEntries(u),t.tableOfIntegrals.addEntries({"a1*acosh(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(a2*x1*acosh(a2*x1)-sqrt(a2^2*x1^2-1)))/a2")},"a1*asinh(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(a2*x1*asinh(a2*x1)-sqrt(a2^2*x1^2+1)))/a2")},"a1*atanh(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(log(1-a2^2*x1^2)/2+a2*x1*atanh(a2*x1)))/a2")},"a1*asech(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(a2*x1*asech(a2*x1)-atan(sqrt(1/(a2^2*x1^2)-1))))/a2")},"a1*acsch(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(a2*x1*acsch(a2*x1)+log(sqrt(1/(a2^2*x1^2)+1)+1)/2-log(sqrt(1/(a2^2*x1^2)+1)-1)/2))/a2")},"a1*acoth(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*(log(1-a2^2*x1^2)/2+a2*x1*acoth(a2*x1)))/a2")}}),t.tableOfIntegrals.addEntries(m),t.tableOfIntegrals.addEntries({"a1*(-a2*x1^n1+a3)^n2":e=>{if(e.get("n1").eq(2)&&e.get("n2").isHalf())return e.fromPattern("(a1*x1*(-a2*x1^2+a3)^(1/2))/2+(a1*a3*asin((a2^(1/2)*x1)/(a3^(1/2))))/(2*a2^(1/2))")},"a1/((-a2*x1^n1+a3)^n2)":e=>e.get("n1").eq(2)&&e.get("n2").isOne()?e.fromPattern("(a1/(a2^(1/2)*a3^(1/2)))*atanh((a2^(1/2)*x1)/(a3^(1/2)))"):e.get("n1").eq(2)&&e.get("n2").isHalf()?e.fromPattern("(a1/a2^(1/2))*asin((a2^(1/2)*x1)/(a3^(1/2)))"):void 0,"-a1/((-a2*x1^n1+a3)^n2)":e=>{if(e.get("n1").eq(2)&&e.get("n2").isHalf())return e.fromPattern("(a1/a2^(1/2))*acos((a2^(1/2)*x1)/(a3^(1/2)))")},"a1/((a2*x1^n1+a3)^n2)":e=>e.get("n1").eq(2)&&e.get("n2").isOne()?e.fromPattern("(a1/(a2^(1/2)*a3^(1/2)))*atan((a2^(1/2)*x1)/(a3^(1/2)))"):e.get("n1").eq(2)&&e.get("n2").isHalf()?e.fromPattern("(a1/a2^(1/2))*asinh((a2^(1/2)*x1)/(a3^(1/2)))"):void 0,"-a1/((a2*x1^n1+a3)^n2)":e=>{if(e.get("n1").eq(2)&&e.get("n2").isOne())return e.fromPattern("(a1/(a2^(1/2)*a3^(1/2)))*acot((a2^(1/2)*x1)/(a3^(1/2)))")},"a1/(x1^n1*(-a2/x1^n2+a3)^n3)":e=>{if(e.get("n1").isOne()&&e.get("n2").eq(2)&&e.get("n3").isHalf())return e.fromPattern("(a1/a3^(1/2))*asec((a3^(1/2)*x1)/(a2^(1/2)))")},"-a1/(x1^n1*(-a2/x1^n2+a3)^n3)":e=>{if(e.get("n1").isOne()&&e.get("n2").eq(2)&&e.get("n3").isHalf())return e.fromPattern("(a1/a3^(1/2))*acsc((a3^(1/2)*x1)/(a2^(1/2)))")},"a1/(x1^n1*(a2/x1^n2+a3)^n3)":e=>{if(e.get("n1").isOne()&&e.get("n2").eq(2)&&e.get("n3").eq(.5))return e.fromPattern("a1*acsch((sqrt(a2/a3))/x1)/sqrt(a2*a3)")}}),t.tableOfIntegrals.addEntries(p)},982(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isPrimeBig=isPrimeBig,t.trialDivisionBig=trialDivisionBig,t.pollardRhoBig=pollardRhoBig,t.primeFactorsBig=primeFactorsBig,t.primeFactorCounts=function primeFactorCounts(e){const t={},n=primeFactorsBig(e).factors;for(const e of n){const n=String(e);n in t?t[n]++:t[n]=1n}return t},t.mergeFactors=function mergeFactors(e,t){const n=Object.assign(e,{});for(const e in t)n[e]=e in n?n[e]+t[e]:t[e];return n},t.getFactors=function getFactors(e){const{sign:t,factors:n}=primeFactorsBig(BigInt(e),!0);if(n.unshift(1),-1===t){const e=n.length;for(let t=0;t<e;t++)n.push(-n[t])}return n};const i=n(551);function isPrimeBig(e){if(e<2n)return!1;if(2n===e||3n===e)return!0;if(e%2n==0n)return!1;let t=0n,n=e-1n;for(;n%2n==0n;)t++,n/=2n;const modPow=(e,t,n)=>{let i=1n;for(e%=n;t>0n;)t%2n==1n&&(i=i*e%n),e=e*e%n,t/=2n;return i},i=e<18446744073709551616n?[2n,325n,9375n,28178n,450775n,9780504n,1795265022n]:[2n,3n,5n,7n,11n,13n,17n,19n,23n,29n,31n,37n];for(const r of i){const i=r%e;if(i<2n)continue;let s=modPow(i,n,e);if(1n===s||s===e-1n)continue;let o=!1;for(let n=0n;n<t-1n;n++)if(s=s*s%e,s===e-1n){o=!0;break}if(!o)return!1}return!0}function trialDivisionBig(e){if(e<=1n)return[];const t=[];for(;e%2n==0n;)t.push(2n),e/=2n;let n=3n;const i=(e=>{if(e<2n)return e;let t=e,n=(t+1n)/2n;for(;n<t;)t=n,n=(t+e/t)/2n;return t})(e);for(;n<=i;){for(;e%n===0n;)t.push(n),e/=n;n+=2n}return e>1n&&t.push(e),t}function pollardRhoBig(e){if(e%2n==0n)return 2n;let t=2n,n=2n,i=1n;const f=t=>(t*t+1n)%e,gcd=(e,t)=>{for(;0n!==t;)[e,t]=[t,e%t];return e};for(;1n===i;)t=f(t),n=f(f(n)),i=gcd(t>n?t-n:n-t,e);return i===e?0n:i}function primeFactorsBig(e,t){const n=(0,i.sign)(e);e=(0,i.abs)(e);const r=[];if(1n===e||2n===e||isPrimeBig(e))r.push(e);else{const factorize=e=>{if(1n===e)return;if(isPrimeBig(e))return void r.push(e);const t=pollardRhoBig(e);if(0n===t){const t=trialDivisionBig(e);return void r.push(...t)}factorize(t),factorize(e/t)};factorize(e)}return r.sort((e,t)=>e<t?-1:1),{sign:n,factors:t?r.map(e=>Number(e)):r}}},1024(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasDerivedInverseTrig=function hasDerivedInverseTrig(e){let t=!1;return e.forEveryElement(e=>((e.isFunction(s.ASEC)||e.isFunction(s.ACSC)||e.isFunction(s.ACOT))&&(t=!0),e)),t},t.rewriteInverseTrig=function rewriteInverseTrig(e){if(e.isFunction(s.ASEC)||e.isFunction(s.ACSC)||e.isFunction(s.ACOT))return function rewriteInverseTrigElement(e){const t=e.getMultiplier(),n=e.getPower(),o=e.getArguments();if(e.isFunction(s.ASEC)&&o.length>0){const e=o[0],s=i.Expression.create("acos(x)",{x:(0,r.one)().div(e)});return i.Expression.fromRational(t).times(s.pow(n))}if(e.isFunction(s.ACSC)&&o.length>0){const e=o[0],s=i.Expression.create("asin(x)",{x:(0,r.one)().div(e)});return i.Expression.fromRational(t).times(s.pow(n))}if(e.isFunction(s.ACOT)&&o.length>0){const e=o[0],s=i.Expression.create("atan(x)",{x:(0,r.one)().div(e)});return i.Expression.fromRational(t).times(s.pow(n))}return e}(e);if(e.isSum()){const t=e.getMultiplier(),n=e.getPower();let s=(0,r.zero)();for(const t of e.elementsArray())s=s.plus(rewriteInverseTrig(t));return n.isOne()||(s=s.pow(n)),t.isOne()||(s=s.times(i.Expression.fromRational(t))),s}if(e.isProduct()){const t=e.getMultiplier(),n=e.getPower();let s=(0,r.one)();for(const t of e.elementsArray())s=s.times(rewriteInverseTrig(t));return n.isOne()||(s=s.pow(n)),t.isOne()||(s=s.times(i.Expression.fromRational(t))),s}return e};const i=n(296),r=n(6099),s=n(8300)},1097(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bySubstitution=bySubstitution,t.tryIntegrateBySubstitution=function tryIntegrateBySubstitution(e,t){if(e.isProduct()||(e=(0,i.factor)(e)),!e.isProduct())return;const n=e.elementsArray();return n.length<2?void 0:bySubstitution(n,t)},t.tryIntegrateByWrappedFactorSubstitution=function tryIntegrateByWrappedFactorSubstitution(e,t,n){let i=t[0];for(let e=1;e<t.length;e++)i=i.times(t[e]);for(const o of t){const t=(0,r.simplify)(i.div(o));for(const i of getWrappedInnerCandidates(o,n)){const p=(0,c.diff)(i,n);if(p.isZero())continue;const d=(0,r.simplify)(t.div(p));if(d.hasVariable(n))continue;const g=s.Expression.create((0,u.getU)(e)),h=(0,r.simplify)((0,u.subst)(o,i,g));if(h.hasVariable(n)||!h.hasVariable(g.text()))continue;const x=m.tableOfIntegrals.lookup(new l.Pattern(h,[g.text()]),0);if(x&&!x.hasFunction(a.INTEGRATE))return(0,r.simplify)((0,u.subst)(x,g,i).times(d))}}},t.tryIntegrateByLogSubstitution=function tryIntegrateByLogSubstitution(e,t){const n=(0,r.simplify)(e.getNumerator()),i=(0,r.simplify)(e.getDenominator());if(!i.isOne())return function testQuotientSides(e,t,n){const i=(0,c.diff)(t,n),s=(0,r.simplify)(e.div(i));if(!s.hasVariable(n))return{fx:t,constant:s}}(n,i,t)},t.tryIntegrateByPowerSubstitution=function tryIntegrateByPowerSubstitution(e,t){const n=(0,r.simplify)(e.getNumerator()),i=(0,r.simplify)(e.getDenominator());if(i.isOne()||!i.hasVariable(t))return;const s=i.getBase(),a=i.getPower();if(!s.hasVariable(t))return;const l=(0,c.diff)(s,t);if(l.isZero())return;const u=(0,r.simplify)(n.div(l));if(!u.hasVariable(t)){if((0,r.simplify)((0,o.one)().plus(a.times((0,o.minusOne)()))).isZero())return;return{fx:s,constant:u,power:a}}};const i=n(2724),r=n(9684),s=n(296),o=n(6099),a=n(8300),l=n(2292),u=n(886),c=n(2012),m=n(959),p=n(388);function testProductSides(e,t,n){if(!(0,p.hasTranscendental)(t,n)&&(0,p.hasTranscendental)(e,n))return;const i=(0,c.diff)(e,n);if(i.isZero())return;const a=(0,r.simplify)(t.div(i));if(!a.hasVariable(n))return{fx:e,constant:a,power:(0,o.one)()};if(e.isVAR())return;let l=a,u=0;for(let t=0;t<8;t++){const t=(0,r.simplify)(l.div(e));if(!t.hasVariable(n)){const n=s.Expression.Number(u+2);if(s.Expression.Number(u+3).isZero())return;return{fx:e,constant:t,power:n}}l=t,u++}}function bySubstitution(e,t){const n=e.length;let i=e[0];for(let t=1;t<n;t++)i=i.times(e[t]);for(let i=0;i<n;i++){const r=e[i];let s;for(let t=0;t<n;t++)t!==i&&(s=s?s.times(e[t]):e[t]);s=s??(0,o.one)();const a=testProductSides(r,s,t);if(a)return a;const l=testProductSides(s,r,t);if(l)return l;const u=r.getBase(),c=r.getPower();if(!c.isOne()&&u.hasVariable(t)){const e=u.pow(c.minus((0,o.one)())).times(s),n=testProductSides(u,e,t);if(n)return n}const m=s.getBase(),p=s.getPower();if(!p.isOne()&&m.hasVariable(t)){const e=m.pow(p.minus((0,o.one)())).times(r),n=testProductSides(m,e,t);if(n)return n}}}function getWrappedInnerCandidates(e,t){const n=[];if(e.isFunction()){const i=e.getArguments();1===i.length&&i[0].hasVariable(t)&&n.push(i[0])}if(e.isEXP()){const i=e.getBase(),r=e.getPower();i.hasVariable(t)&&!i.eq(e)&&n.push(i),i.isE()&&r.hasVariable(t)&&!r.eq(e)&&n.push(r)}if(!e.isFunction()&&!e.isEXP()){const i=e.getBase();e.getPower().isOne()||!i.hasVariable(t)||i.eq(e)||n.push(i)}return n}},1280(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.solveLinearSystem=function solveLinearSystem(e,t){const n=function normalizeEquations(e){if(a.Vector.isVector(e)){const t=[];for(let n=0;n<e.count();n++)t.push(e.getExpressionAt(n));return t}return e.map(e=>r.Expression.isExpression(e)?e:r.Expression.create(e))}(e);if(0===n.length)return{type:"unique",solutions:{}};const l=t??(0,i.collectVariablesSet)(n);if(0===l.length){for(const e of n)if(!e.eq((0,s.zero)()))return{type:"inconsistent"};return{type:"unique",solutions:{}}}const{coeffMatrix:u,constants:c}=function extractCoefficients(e,t){const n=t.length,i=[],r=[];for(let o=0;o<e.length;o++){const a=e[o].coeffs(...t),l=new Array(n).fill(null).map(()=>(0,s.zero)());let u=(0,s.zero)();a.each((e,t)=>{const n=t.split(",").map(Number),i=n.reduce((e,t)=>e+t,0);if(0===i)u=e;else{if(1!==i)throw new Error(`Nonlinear term detected in equation ${o+1}: degree ${i} term found. solveLinearSystem only handles linear systems.`);{const t=n.findIndex(e=>1===e);-1!==t&&(l[t]=e)}}});const c=[...l,u];for(const e of c)for(const n of t)if(e.hasVariable(n))throw new Error(`Nonlinear term detected in equation ${o+1}: variable "${n}" appears in a non-polynomial position. solveLinearSystem only handles linear systems.`);i.push(l),r.push(u)}return{coeffMatrix:i,constants:r}}(n,l),m=n.length,p=l.length,d=[];for(let e=0;e<m;e++){const t=[];for(let n=0;n<p;n++)t.push(u[e][n]);t.push((0,s.zero)().minus(c[e])),d.push(t)}const g=new o.Matrix(...d).rref(),h=g.rows(),x=(0,s.zero)(),E=[];for(let e=0;e<h;e++){let t=-1;for(let n=0;n<p;n++)if(!g.get(e,n).eq(x)){t=n;break}if(-1===t){if(!g.get(e,p).eq(x))return{type:"inconsistent"};E.push(-1)}else E.push(t)}const y=new Set;for(const e of E)-1!==e&&y.add(e);const v=[];for(let e=0;e<p;e++)y.has(e)||v.push(e);if(0===v.length){const e={};for(let t=0;t<h;t++){const n=E[t];-1!==n&&(e[l[n]]=g.get(t,p))}return{type:"unique",solutions:e}}const P=v.map(e=>l[e]),w={};for(const e of P)w[e]=r.Expression.create(e);for(let e=0;e<h;e++){const t=E[e];if(-1===t)continue;let n=g.get(e,p);for(const t of v){const i=g.get(e,t);i.eq(x)||(n=n.minus(i.times(r.Expression.create(l[t]))))}w[l[t]]=n}return{type:"infinite",solutions:w,freeVariables:P}};const i=n(6338),r=n(296),s=n(6099),o=n(4462),a=n(3982)},1339(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.polynomialToMultiPoly=function polynomialToMultiPoly(e,t){e=s.Polynomial.toPolynomial(e);const n=new o.MultiPoly;t=t??e.variables;for(const i of e.terms){const e=[];for(let n=0;n<t.length;n++){const r=i.powers[t[n]];r&&e.push(`${n}:${r}`)}const r=e.join(",");n.terms.set(r,i.coeff.getMultiplier().numerator)}return{poly:n,variables:t}},t.multiPolyToExpression=multiPolyToExpression,t.factorsToExpressions=factorsToExpressions,t.factorsToPolynomials=function factorsToPolynomials(e,t){return factorsToExpressions(e,t).map(e=>new s.Polynomial(e))};const i=n(296),r=n(6099),s=n(2116),o=n(4737);function multiPolyToExpression(e,t){let n;if(0===e.terms.size)n=(0,r.zero)();else{let s;for(const[n,r]of e.terms){let e=i.Expression.Number(r);if(""!==n)for(const r of n.split(",")){const[n,s]=r.split(":"),o=i.Expression.Variable(t[+n]);e=e.times("1"===s?o:o.pow(i.Expression.Number(s)))}s=void 0===s?e:s.plus(e)}n=s??(0,r.zero)()}return n}function makeExpression(e,t){let n=multiPolyToExpression(e.poly,t);return e.multiplicity>1n&&(n=n.pow(i.Expression.Number(e.multiplicity))),n}function factorsToExpressions(e,t){const n=[];1n!==e.content&&n.push(i.Expression.Number(e.content));for(const i of e.factors){const e=makeExpression(i,t);n.push(e)}return n}},1440(e,t,n){"use strict";var i,r=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=i(e),o=0;o<n.length;o++)"default"!==n[o]&&r(t,e,n[o]);return s(t,e),t}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const l=a(n(8330)),u=n(2724),c=n(4692),m=n(3725),p=n(2766),d=n(9684),g=n(2634),h=n(2012),x=n(7410),E=n(5530),y=n(7571),v=n(6698),P=n(6082),w=n(6351),b=n(2446),M=n(6284),A=n(6528),T=n(6184),N=n(296),O=n(6099),R=n(6430),F=n(4462),D=n(430),k=n(8300),z=n(238),L=n(2707),V=n(6913),U=n(2116),q=n(5584),B=n(5598),$=n(3552),Z=n(3982),j=n(7130),G=n(9426),H=o(n(4703)),X=n(4895),W=n(4600),K=n(7741),Y=n(3148),Q=n(886),J=n(7867),ee=n(8533),te=n(1649),ne=n(6925),ie=n(706),re=n(1526),se=n(2295),oe=n(6950),ae=new j.Converter,le=new j.Converter("text");function normalizeTeXOptions(e){let t;return t="string"==typeof e?{decimal:!0}:!0!==e?.decimals||"decimal"in e?e:{...e,decimal:!0},t}function nerdamer(e,t){return z.Parser.parse(e,t)}N.Expression.prototype.solveFor=function(e){return(0,se.solve)(this,e)},T.Equation.prototype.solveFor=function(e){return(0,se.solve)(this,e)},N.Expression.prototype.toTeX=function(e){return ae.convert(this,normalizeTeXOptions(e))},N.Expression.prototype.toText=function(){return le.convert(this)},N.Expression.prototype.latex=function(e){return ae.convert(this,normalizeTeXOptions(e))},N.Expression.prototype.isInfinity=function(){return this.isInf()},N.Expression.prototype.isFraction=function(){return!this.getMultiplier().isInteger()},N.Expression.prototype.hasIntegral=function(){return this.hasFunction("integrate",!0)},N.Expression.prototype.equals=function(e){return new T.Equation(this,N.Expression.create(e))},nerdamer.pretty=function(e,t="TeX"){return("TeX"===t?ae:le).convert(e)},nerdamer.convertFromLaTeX=function(e){return ae.fromTeX(e)},nerdamer.convertToTeX=function(e,t){let n=normalizeTeXOptions(t);return"string"!=typeof e||n?.decimal||(n={...n??{},preserveSource:!0}),ae.convert(e,n)},nerdamer.convertToLaTeX=nerdamer.convertToTeX,nerdamer.setFunction=function(e,t,n){return(0,Y.setFunction)({type:"symbolic",name:e,argsOrder:t,fn:n}),nerdamer},nerdamer.setConstant=function(e,t){let n="delete"===t?"":String(t);if("number"==typeof t){const e=q.Rational.create(String(t));n=1n===e.denominator?String(e.numerator):`${e.numerator}/${e.denominator}`}return z.Parser.setConstants({[e]:n}),nerdamer},nerdamer.getConstant=function(e){const t=k.PARSER_CONSTANTS[e];return String("function"==typeof t?t():t)},nerdamer.set=function(e,t){if("PRECISION"===e)z.Parser.setPrecision(Number(t));else if("object"==typeof e&&"PRECISION"in e){const{PRECISION:t,...n}=e;z.Parser.set(n),z.Parser.setPrecision(Number(t))}else z.Parser.set(e,t);return nerdamer},nerdamer.get=function(e){let t;return t="PRECISION"===e?z.Parser.getPrecision():z.Parser.get(e),t},nerdamer.getOperator=function(e){return z.Parser.getOperator(e)},nerdamer.setOperator=function(e,t){return z.Parser.setOperator(e,t),nerdamer},nerdamer.aliasOperator=function(e,t){return z.Parser.aliasOperator(e,t),nerdamer},nerdamer.setVar=function(e,t){"delete"===t?(0,L.unassign)(e):(0,L.assign)(e,String(t))},nerdamer.clearVars=function(){for(const e of Object.keys(z.Parser.KNOWN_VALUES))(0,L.unassign)(e);return nerdamer},nerdamer.getVars=function(e="text"){const t="LaTeX"===e?ae:le,n={};for(const e of Object.keys(z.Parser.KNOWN_VALUES))n[e]=t.convert(z.Parser.KNOWN_VALUES[e]);return n},nerdamer.functions=function(){const e={user:[],system:[]};for(const t in G.mathFunctionRegistry)e[G.mathFunctionRegistry[t].level].push(t);return e},nerdamer.symbols=O.symbols,nerdamer.version=function(){return l.default.version},nerdamer.errors=H,nerdamer.buildFunction=X.build,nerdamer.classes={Expression:N.Expression,Rational:q.Rational,Polynomial:U.Polynomial,Matrix:F.Matrix,Vector:Z.Vector,Collection:M.Collection,Converter:j.Converter,Dictionary:A.Dictionary,ValuesSet:B.ValuesSet,SolutionSet:re.SolutionSet,Assumption:b.Assumption,Equation:T.Equation,instance:{Parser:z.Parser}},nerdamer.cos=te.cos,nerdamer.sin=te.sin,nerdamer.tan=te.tan,nerdamer.acos=te.acos,nerdamer.asin=te.asin,nerdamer.atan=te.atan,nerdamer.arccos=te.acos,nerdamer.arcsin=te.asin,nerdamer.arctan=te.atan,nerdamer.atan2=te.atan2,nerdamer.sec=te.sec,nerdamer.csc=te.csc,nerdamer.cot=te.cot,nerdamer.asec=te.asec,nerdamer.acsc=te.acsc,nerdamer.acot=te.acot,nerdamer.cosh=te.cosh,nerdamer.sinh=te.sinh,nerdamer.tanh=te.tanh,nerdamer.acosh=te.acosh,nerdamer.asinh=te.asinh,nerdamer.atanh=te.atanh,nerdamer.sech=te.sech,nerdamer.csch=te.csch,nerdamer.coth=te.coth,nerdamer.asech=te.asech,nerdamer.acsch=te.acsch,nerdamer.acoth=te.acoth,nerdamer.log=ee.log,nerdamer.exp=ee.exp,nerdamer.sqrt=ee.sqrt,nerdamer.cbrt=ee.cbrt,nerdamer.nthroot=ee.nthroot,nerdamer.numeric=ee.numeric,nerdamer.abs=ee.abs,nerdamer.sign=ee.sign,nerdamer.min=ee.min,nerdamer.max=ee.max,nerdamer.round=ee.round,nerdamer.floor=ee.floor,nerdamer.ceil=ee.ceiling,nerdamer.trunc=ne.trunc,nerdamer.hypot=J.hypot,nerdamer.fact=ee.factorial,nerdamer.factorial=ee.factorial,nerdamer.dfact=ee.doubleFactorial,nerdamer.dfactorial=ee.doubleFactorial,nerdamer.fib=ee.fibonacci,nerdamer.mod=ee.mod,nerdamer.modInv=ee.modInv,nerdamer.isPrime=ie.isprime,nerdamer.imagpart=W.imagPart,nerdamer.realpart=W.realPart,nerdamer.polarform=W.polarForm,nerdamer.rectform=W.rectForm,nerdamer.arg=W.arg,nerdamer.conjugate=W.conjugate,nerdamer.csgn=W.csgn,nerdamer.gamma=ee.gamma,nerdamer.erf=ee.erf,nerdamer.erfc=ee.erfc,nerdamer.heaviside=ee.heaviside,nerdamer.delta=ee.dirac,nerdamer.Ci=ee.Ci,nerdamer.Chi=ee.Chi,nerdamer.Si=ee.Si,nerdamer.Shi=ee.Shi,nerdamer.Li=ee.Li,nerdamer.Ei=ee.Ei,nerdamer.sinc=ee.sinc,nerdamer.contains=ee.contains,nerdamer.subst=Q.subst,nerdamer.uSub=Q.uSub,nerdamer.uUnSub=Q.uUnSub,nerdamer.expand=K.expand,nerdamer.factor=u.factor,nerdamer.polyFactors=u.polyFactors,nerdamer.completeSquare=g.sqcomp,nerdamer.gcd=c.gcd,nerdamer.lcm=c.lcm,nerdamer.partfrac=p.partfrac,nerdamer.div=V.div,nerdamer.divide=V.divide,nerdamer.simplify=d.simplify,nerdamer.groebner=m.groebner,nerdamer.solve=se.solve,nerdamer.solveSystem=oe.solveSystem,nerdamer.solveeqs=oe.solveSystem,nerdamer.diff=h.diff,nerdamer.integrate=E.integrate,nerdamer.laplace=v.laplace,nerdamer.ilaplace=y.ilaplace,nerdamer.ilt=y.ilaplace,nerdamer.sum=ee.sum,nerdamer.product=ee.product,nerdamer.limit=P.limit,nerdamer.defint=ee.defint,nerdamer.S=x.S,nerdamer.C=x.C,nerdamer.matrix=ee.matrix,nerdamer.imatrix=D.imatrix,nerdamer.determinant=R.determinant,nerdamer.nullspace=R.nullspace,nerdamer.dot=$.dot,nerdamer.cross=$.cross,nerdamer.deg=V.deg,nerdamer.content=V.content,nerdamer.assume=w.assume,nerdamer.updateAPI=function(){const e={diff:nerdamer.diff,expand:nerdamer.expand,factor:nerdamer.factor,integrate:nerdamer.integrate,numeric:nerdamer.numeric,simplify:nerdamer.simplify,subst:nerdamer.subst},t={buildFunction:nerdamer.buildFunction};return function extendApi(e,t,n={}){for(const i of e){const e=i.prototype;for(const n in t)if(!(n in e)){const i=t[n];Object.defineProperty(e,n,{configurable:!0,writable:!0,value:function(...e){const apply=t=>{let n;return n=T.Equation.isEquation(t)?t.each(e=>apply(e)):t.isEnumerable?t.copy().each(e=>apply(e)):i(t,...e),n};return apply(this)}})}for(const t in n)if(!(t in e)){const i=n[t];Object.defineProperty(e,t,{configurable:!0,writable:!0,value:function(...e){if(!N.Expression.isExpression(this))throw new H.UnexpectedDataType(H.message("expressionExpected",{type:k.dataTypes[this.dataType]??this.dataType}));return i(this,...e)}})}}}([N.Expression,F.Matrix,Z.Vector,M.Collection,A.Dictionary,B.ValuesSet,T.Equation],e,t),nerdamer},nerdamer.updateAPI(),t.default=nerdamer},1458(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ratNorm=ratNorm,t.rat=rat,t.ratAdd=ratAdd,t.ratSub=ratSub,t.ratMul=ratMul,t.ratDiv=ratDiv,t.ratToInt=function ratToInt(e){return 1n===e.d?e.n:null},t.uniAddRat=uniAddRat,t.uniMulRat=uniMulRat,t.interpolateUnivariateRat=function interpolateUnivariateRat(e){if(0===e.length)return[rat(0n)];const t=new Map;for(const n of e){const e=t.get(n.x);if(e){if(0n!==ratSub(e,n.y).n)throw new Error("interpolateUnivariateRat: duplicate x with conflicting y")}else t.set(n.x,n.y)}const n=[...t.entries()].map(([e,t])=>({x:e,y:t})).sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:0),i=n.length;if(1===i)return[n[0].y];let r=[rat(0n)];for(let e=0;e<i;e++){let t=[rat(1n)],s=rat(1n);for(let r=0;r<i;r++)r!==e&&(t=uniMulRat(t,[rat(-n[r].x),rat(1n)]),s=ratMul(s,rat(n[e].x-n[r].x)));const o=ratDiv(n[e].y,s);r=uniAddRat(r,t.map(e=>ratMul(e,o)))}for(;r.length>1&&0n===r[r.length-1].n;)r.pop();return r};const i=n(4988);function ratNorm(e){if(0n===e.d)throw new Error("Rat: division by zero");if(0n===e.n)return{n:0n,d:1n};let t=e.n,n=e.d;n<0n&&(t=-t,n=-n);const r=(0,i.gcd)(t,n);return{n:t/r,d:n/r}}function rat(e,t=1n){return ratNorm({n:e,d:t})}function ratAdd(e,t){return ratNorm({n:e.n*t.d+t.n*e.d,d:e.d*t.d})}function ratSub(e,t){return ratNorm({n:e.n*t.d-t.n*e.d,d:e.d*t.d})}function ratMul(e,t){return ratNorm({n:e.n*t.n,d:e.d*t.d})}function ratDiv(e,t){if(0n===t.n)throw new Error("Rat: divide by zero");return ratNorm({n:e.n*t.d,d:e.d*t.n})}function uniAddRat(e,t){const n=Math.max(e.length,t.length),i=new Array(n).fill(0).map(()=>rat(0n));for(let r=0;r<n;r++)i[r]=ratAdd(e[r]??rat(0n),t[r]??rat(0n));for(;i.length>1&&0n===i[i.length-1].n;)i.pop();return i}function uniMulRat(e,t){const n=new Array(e.length+t.length-1).fill(0).map(()=>rat(0n));for(let i=0;i<e.length;i++)for(let r=0;r<t.length;r++)n[i+r]=ratAdd(n[i+r],ratMul(e[i],t[r]));for(;n.length>1&&0n===n[n.length-1].n;)n.pop();return n}},1508(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.factorPoly=function factorPoly(e,t){if(e.isZero())return{content:0n,factors:[]};const[n,i]=makePrimitiveZ(e),r=factorMultivariate(i),s=new Map;for(const e of r){const n=e.text(t),i=s.get(n);i?i.multiplicity++:s.set(n,{poly:e,multiplicity:1})}return{content:n,factors:Array.from(s.values())}};const i=n(4988),r=n(5141),s=n(4737),o=n(9350),a=n(1458);function makePrimitiveZ(e){if(e.isZero())return[1n,e];const{content:t,primitive:n}=(0,o.mvNormalizePrimitiveSignLex)(e);return[0n===t?1n:t,n]}function filterUnitConstants(e){return e.filter(e=>!function isUnitConstant(e){return e.isConstant()&&(1n===e.constantTerm()||-1n===e.constantTerm())}(e))}function factorsReconstruct(e,t){const n=(0,o.mvNormalize)(function multiplyFactors(e){let t=s.MultiPoly.constant(1n);for(const n of e)t=(0,o.mulPoly)(t,n);return t}(t)),i=(0,o.mvNormalize)(e);return(0,o.equalPoly)(n,i)}function tryFactorLinearInVar(e,t){const n=new s.MultiPoly,i=new s.MultiPoly;for(const[r,o]of e.terms){const e=(0,s.keyToExp)(r),a=e.get(t)??0;if(a>1)return null;e.delete(t);const l=(0,s.expToKey)(e);1===a?n.terms.set(l,(n.terms.get(l)??0n)+o):i.terms.set(l,(i.terms.get(l)??0n)+o)}if(n.trim(),i.trim(),n.isZero())return null;if(i.isZero())return[s.MultiPoly.variable(t),n];const r=Array.from(n.variables()),a=Array.from(i.variables());if(0===r.filter(e=>a.includes(e)).length&&1===n.terms.size&&1===i.terms.size)return null;const l=factorMultivariate(n);for(const r of l){if(r.isConstant())continue;const a=(0,o.mvExactDiv)(i,r);if(null===a)continue;const l=(0,o.mvExactDiv)(n,r);if(null===l)continue;const u=(0,o.addPoly)((0,o.mulPoly)(l,s.MultiPoly.variable(t)),a);if((0,o.equalPoly)((0,o.mulPoly)(r,u),e))return[r,u]}const u=factorMultivariate(i);for(const r of u){if(r.isConstant())continue;const a=(0,o.mvExactDiv)(n,r);if(null===a)continue;const l=(0,o.mvExactDiv)(i,r);if(null===l)continue;const u=(0,o.addPoly)((0,o.mulPoly)(a,s.MultiPoly.variable(t)),l);if((0,o.equalPoly)((0,o.mulPoly)(r,u),e))return[r,u]}return null}function tryFactorBinomialInVar(e,t){const n=new Map;for(const[i,r]of e.terms){const e=(0,s.keyToExp)(i),o=e.get(t)??0;e.delete(t);const a=(0,s.expToKey)(e);let l=n.get(o);void 0===l&&(l=new s.MultiPoly,n.set(o,l)),l.terms.set(a,(l.terms.get(a)??0n)+r)}for(const[e,t]of n)t.trim(),t.isZero()&&n.delete(e);if(2!==n.size)return null;const i=Array.from(n.entries()).sort(([e],[t])=>e-t),[r,a]=i[0],[l,u]=i[1];if(l<2)return null;if(u.isZero()||a.isZero())return null;const buildVPower=e=>{if(0===e)return s.MultiPoly.constant(1n);const n=new Map;n.set(t,e);const i=new s.MultiPoly;return i.terms.set((0,s.expToKey)(n),1n),i},c=factorMultivariate(u);for(const t of c){if(t.isConstant())continue;const n=(0,o.mvExactDiv)(a,t);if(null===n)continue;const i=(0,o.mvExactDiv)(u,t);if(null===i)continue;const s=(0,o.addPoly)((0,o.mulPoly)(i,buildVPower(l)),(0,o.mulPoly)(n,buildVPower(r)));if((0,o.equalPoly)((0,o.mulPoly)(t,s),e))return[t,s]}const m=factorMultivariate(a);for(const t of m){if(t.isConstant())continue;const n=(0,o.mvExactDiv)(u,t);if(null===n)continue;const i=(0,o.mvExactDiv)(a,t);if(null===i)continue;const s=(0,o.addPoly)((0,o.mulPoly)(n,buildVPower(l)),(0,o.mulPoly)(i,buildVPower(r)));if((0,o.equalPoly)((0,o.mulPoly)(t,s),e))return[t,s]}return null}function tryFactorQuadraticInVar(e,t){const{A:n,B:i,C:r}=(0,o.quadraticCoeffsInVar)(e,t);if(n.isZero()||0===n.terms.size)return null;if(1===n.terms.size){const[[a,l]]=[...n.terms.entries()],u=(0,s.keyToExp)(a),c=[];for(const[e,t]of i.terms){if(0n===l)continue;if(t%l!==0n)continue;const n=(0,s.keyToExp)(e);let i=!0;for(const[e,t]of u)if((n.get(e)??0)<t){i=!1;break}if(!i)continue;const r=new Map(n);for(const[e,t]of u){const n=(r.get(e)??0)-t;0===n?r.delete(e):r.set(e,n)}const o=new s.MultiPoly;o.terms.set((0,s.expToKey)(r),-t/l),o.trim(),c.push(o)}if(0===c.length&&(i.isZero()||0===i.terms.size)&&1===r.terms.size){const[[e,t]]=[...r.terms.entries()];if(0n!==l&&-t%l===0n&&1n===-t/l){const t=(0,s.keyToExp)(e);let n=!0;for(const[e,i]of u)if((t.get(e)??0)<i){n=!1;break}if(n){const e=new Map(t);for(const[t,n]of u){const i=(e.get(t)??0)-n;0===i?e.delete(t):e.set(t,i)}let n=!0;for(const t of e.values())if(t%2!=0){n=!1;break}if(n){const t=new Map;for(const[n,i]of e)t.set(n,i/2);const n=new s.MultiPoly;n.terms.set((0,s.expToKey)(t),1n),n.trim(),c.push(n),c.push((0,o.scalePoly)(n,-1n))}}}}for(const a of c){const l=(0,o.mulPoly)(a,a),u=(0,o.mulPoly)(n,l),c=(0,o.mulPoly)(i,a);if(!(0,o.addPoly)((0,o.addPoly)(u,c),r).isZero())continue;const m=(0,o.addPoly)(i,(0,o.mulPoly)(n,a)),p=s.MultiPoly.variable(t),d=(0,o.subPoly)(p,a),g=(0,o.addPoly)((0,o.mulPoly)(n,p),m),h=(0,o.mulPoly)(d,g);if((0,o.subPoly)(h,e).isZero())return[d,g]}}const a=(0,o.mulPoly)(i,i),l=(0,o.mulPoly)(n,r),u=(0,o.mulPoly)(l,s.MultiPoly.constant(4n)),c=(0,o.subPoly)(a,u);c.isZero();const m=tryPolynomialSquareRoot(c);if(null!==m){const r=(0,o.negPoly)(i),a=(0,o.addPoly)(r,m),l=(0,o.subPoly)(r,m),u=(0,o.mulPoly)(n,s.MultiPoly.constant(2n)),c=(0,o.mvExactDiv)(a,u),p=(0,o.mvExactDiv)(l,u);for(const r of[c,p]){if(null===r)continue;const a=s.MultiPoly.variable(t),l=(0,o.subPoly)(a,r),u=(0,o.addPoly)(i,(0,o.mulPoly)(n,r)),c=(0,o.addPoly)((0,o.mulPoly)(n,a),u),m=(0,o.mulPoly)(l,c);if((0,o.subPoly)(m,e).isZero())return[l,c]}}{const a=decomposeMonomialFactors(factorMultivariate(n));if(a.length>=2){const n=a.length;for(let l=1;l<(1<<n)-1;l++){let u=s.MultiPoly.constant(1n),c=s.MultiPoly.constant(1n);for(let e=0;e<n;e++)l&1<<e?u=(0,o.mulPoly)(u,a[e]):c=(0,o.mulPoly)(c,a[e]);if(r.isZero()){const n=(0,o.mvExactDiv)(i,u);if(null!==n){const i=(0,o.mulPoly)(u,s.MultiPoly.variable(t)),r=(0,o.addPoly)((0,o.mulPoly)(c,s.MultiPoly.variable(t)),n),a=(0,o.mulPoly)(i,r);if((0,o.equalPoly)(a,e))return[i,r]}const r=(0,o.mvExactDiv)(i,c);if(null!==r){const n=(0,o.addPoly)((0,o.mulPoly)(u,s.MultiPoly.variable(t)),r),i=(0,o.mulPoly)(c,s.MultiPoly.variable(t)),a=(0,o.mulPoly)(n,i);if((0,o.equalPoly)(a,e))return[n,i]}continue}const m=decomposeMonomialFactors(factorMultivariate(r)),p=m.length;if(!(p>12)){for(let n=0;n<1<<p;n++){let r=s.MultiPoly.constant(1n),a=s.MultiPoly.constant(1n);for(let e=0;e<p;e++)n&1<<e?r=(0,o.mulPoly)(r,m[e]):a=(0,o.mulPoly)(a,m[e]);const l=(0,o.addPoly)((0,o.mulPoly)(u,a),(0,o.mulPoly)(c,r));if((0,o.equalPoly)(l,i)){const n=s.MultiPoly.variable(t),i=(0,o.addPoly)((0,o.mulPoly)(u,n),r),l=(0,o.addPoly)((0,o.mulPoly)(c,n),a),m=(0,o.mulPoly)(i,l);if((0,o.equalPoly)(m,e))return[i,l]}const d=(0,o.negPoly)(r),g=(0,o.negPoly)(a);for(const[n,l]of[[r,g],[d,a],[d,g]]){const r=(0,o.addPoly)((0,o.mulPoly)(u,l),(0,o.mulPoly)(c,n));if((0,o.equalPoly)(r,i)){const i=s.MultiPoly.variable(t),r=(0,o.addPoly)((0,o.mulPoly)(u,i),n),a=(0,o.addPoly)((0,o.mulPoly)(c,i),l),m=(0,o.mulPoly)(r,a);if((0,o.equalPoly)(m,e))return[r,a]}}}for(const n of[1n,-1n]){const a=s.MultiPoly.constant(n),l=1n===n?r:(0,o.negPoly)(r),m=(0,o.addPoly)((0,o.mulPoly)(u,l),(0,o.mulPoly)(c,a));if((0,o.equalPoly)(m,i)){const n=s.MultiPoly.variable(t),i=(0,o.addPoly)((0,o.mulPoly)(u,n),a),r=(0,o.addPoly)((0,o.mulPoly)(c,n),l),m=(0,o.mulPoly)(i,r);if((0,o.equalPoly)(m,e))return[i,r]}const p=1n===n?r:(0,o.negPoly)(r),d=s.MultiPoly.constant(n),g=(0,o.addPoly)((0,o.mulPoly)(u,d),(0,o.mulPoly)(c,p));if((0,o.equalPoly)(g,i)){const n=s.MultiPoly.variable(t),i=(0,o.addPoly)((0,o.mulPoly)(u,n),p),r=(0,o.addPoly)((0,o.mulPoly)(c,n),d),a=(0,o.mulPoly)(i,r);if((0,o.equalPoly)(a,e))return[i,r]}}}}}}return null}function decomposeMonomialFactors(e){const t=[];for(const n of e)if(1===n.terms.size){const e=n.terms.entries().next();if(e.done)continue;const[i,r]=e.value,o=(0,s.keyToExp)(i);1n!==r&&-1n!==r&&t.push(s.MultiPoly.constant(r));for(const[e,n]of o)for(let i=0;i<n;i++)t.push(s.MultiPoly.variable(e))}else t.push(n);return t}function tryPolynomialSquareRoot(e){if(e.isZero())return s.MultiPoly.zero();if(e.isConstant()){const t=e.constantTerm(),n=(0,i.intNthRootExact)(t,2);return null!==n?s.MultiPoly.constant(n):null}const t=[];for(const[n,i]of e.terms){const e=(0,s.keyToExp)(n);let r=0;for(const t of e.values())r+=t;t.push({key:n,exp:e,coeff:i,totalDeg:r})}t.sort((e,t)=>t.totalDeg-e.totalDeg);const n=t[0],r=(0,i.intNthRootExact)(n.coeff,2);if(null===r)return null;for(const[,e]of n.exp)if(e%2!=0)return null;const a=new Map;for(const[e,t]of n.exp)a.set(e,t/2);const l=new s.MultiPoly;l.terms.set((0,s.expToKey)(a),r);let u=(0,o.subPoly)(e,(0,o.mulPoly)(l,l));const c=2*t.length;for(let t=0;t<c&&!u.isZero();t++){let t=-1,n="",i=0n;for(const[e,r]of u.terms){const o=(0,s.keyToExp)(e);let a=0;for(const e of o.values())a+=e;a>t&&(t=a,n=e,i=r)}if(t<0)break;if(2n*r==0n)return null;if(i%(2n*r)!=0n)return null;const c=i/(2n*r),m=(0,s.keyToExp)(n),p=new Map;for(const[e,t]of m){const n=a.get(e)??0;if(t<n)return null;const i=t-n;i>0&&p.set(e,i)}l.terms.set((0,s.expToKey)(p),c),u=(0,o.subPoly)(e,(0,o.mulPoly)(l,l))}return u.isZero()?l:null}function tryRationalRootFactorization(e,t){const n=e.degree(t);if(n<=1)return[e];const r=new Array(n+1).fill(0n);for(const[n,i]of e.terms)r[(0,s.keyToExp)(n).get(t)??0]=i;const a=r[0],l=r[n];if(0n===a){const n=s.MultiPoly.variable(t),[i,r]=(0,o.pseudoDivide)(e,n,t);if(r.isZero())return[n,...tryRationalRootFactorization(i,t)]}const u=(0,i.getDivisors)(a<0n?-a:a),c=(0,i.getDivisors)(l<0n?-l:l);for(const i of u)for(const a of c)for(const l of[1n,-1n]){const u=l*i;let c=0n;const m=[1n];for(let e=1;e<=n;e++)m.push(m[e-1]*u);for(let e=0;e<=n;e++){const t=n-e;let i=1n;for(let e=0;e<t;e++)i*=a;c+=r[e]*m[e]*i}if(0n===c){const n=(0,o.addPoly)((0,o.mulPoly)(s.MultiPoly.constant(a),s.MultiPoly.variable(t)),s.MultiPoly.constant(-u)),[i,r]=(0,o.pseudoDivide)(e,n,t);if(r.isZero()){const[e,r]=makePrimitiveZ(i);return[n,...tryRationalRootFactorization(r,t)]}}}return[e]}function tryFactorMonomialGcdFast(e){const t=function monomialGCD(e){if(e.isZero()||0===e.terms.size)return s.MultiPoly.constant(1n);let t=null;const n=new Map;for(const[r,o]of e.terms){const e=o<0n?-o:o;t=null===t?e:(0,i.gcd)(t,e);const a=(0,s.keyToExp)(r),l=new Set([...n.keys(),...a.keys()]);for(const e of l){const t=a.get(e)??0,i=n.get(e);void 0===i?n.set(e,t):n.set(e,Math.min(i,t))}}if(null===t||0n===t)return s.MultiPoly.constant(1n);const r=new s.MultiPoly,o=new Map;for(const[e,t]of n)t>0&&o.set(e,t);return r.terms.set((0,s.expToKey)(o),t),r.trim(),r.isConstant()&&1n===t?s.MultiPoly.constant(1n):r}(e);if((0,o.isOnePoly)(t))return null;const n=(0,o.mvExactDivByMonomial)(e,t);return n?[t,...factorMultivariate(n)]:null}function buildLinearInTwoVars(e,t,n,i){const r=new s.MultiPoly;return 0n!==e&&r.terms.set((0,s.expToKey)(new Map([[n,1]])),e),0n!==t&&r.terms.set((0,s.expToKey)(new Map([[i,1]])),(r.terms.get((0,s.expToKey)(new Map([[i,1]])))??0n)+t),r.trim(),r}function tryFactorEvenQuarticInVar(e,t){let n=null;const i=new s.MultiPoly,r=new s.MultiPoly;for(const[o,a]of e.terms){const e=(0,s.keyToExp)(o),l=e.get(t)??0;if(1===l||3===l)return null;if(0!==l&&2!==l&&4!==l)return null;e.delete(t);const u=(0,s.expToKey)(e);4===l?(null===n&&(n=new s.MultiPoly),n.terms.set(u,(n.terms.get(u)??0n)+a)):2===l?i.terms.set(u,(i.terms.get(u)??0n)+a):r.terms.set(u,(r.terms.get(u)??0n)+a)}if(null===n)return null;if(n.trim(),i.trim(),r.trim(),!n.isConstant()||1n!==n.constantTerm())return null;const a=tryPolynomialSquareRoot(r);if(null===a)return null;const l=tryPolynomialSquareRoot((0,o.subPoly)((0,o.mulPoly)(a,s.MultiPoly.constant(2n)),i));if(null===l)return null;const u=s.MultiPoly.variable(t),c=(0,o.mulPoly)(u,u),m=(0,o.addPoly)((0,o.addPoly)(c,(0,o.mulPoly)(l,u)),a),p=(0,o.addPoly)((0,o.addPoly)(c,(0,o.mulPoly)((0,o.scalePoly)(l,-1n),u)),a);return(0,o.equalPoly)((0,o.mulPoly)(m,p),e)?[m,p]:null}function tryFactorBinomialPowerFast(e){const t=function tryBinomialPower(e){const t=e.terms.size;if(t<3)return null;const n=t-1;if(n<2)return null;const r=[];let a=-1;for(const[t,n]of e.terms){const e=(0,s.keyToExp)(t);for(const[t]of e)t>a&&(a=t);r.push({key:t,exp:e,coeff:n})}const l=Math.max(1,a+1);function expToDense(e){const t=new Array(l).fill(0);for(const[n,i]of e)t[n]=i;return t}const u=r.map(e=>({...e,dense:expToDense(e.exp)}));u.sort((e,t)=>function cmpExp(e,t){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]-t[n];return 0}(e.dense,t.dense));const c=u[0],m=u[u.length-1];function divisibleByN(e){for(const t of e)if(t%n!==0)return!1;return!0}if(!divisibleByN(c.dense)||!divisibleByN(m.dense))return null;const p=c.dense.map(e=>e/n),d=m.dense.map(e=>e/n),g=d.map((e,t)=>e-p[t]),h=new Map;for(let e=0;e<=n;e++){const t=p.map((t,i)=>n*t+e*g[i]),i=new Map;for(let e=0;e<t.length;e++)0!==t[e]&&i.set(e,t[e]);h.set((0,s.expToKey)(i),0n)}for(const e of r){if(!h.has(e.key))return null;h.set(e.key,e.coeff)}for(const[,e]of h)if(0n===e)return null;const x=(0,i.intNthRootExact)(c.coeff,n),E=(0,i.intNthRootExact)(m.coeff,n);if(null===E||null===x)return null;function binom(e,t){let n=t;if(n<0||n>e)return 0n;n=Math.min(n,e-n);let i=1n,r=1n;for(let t=1;t<=n;t++)i*=BigInt(e-(n-t)),r*=BigInt(t);return i/r}for(let e=0;e<=n;e++){const t=(()=>{const t=p.map((t,i)=>n*t+e*g[i]),i=new Map;for(let e=0;e<t.length;e++)0!==t[e]&&i.set(e,t[e]);return(0,s.expToKey)(i)})();if(h.get(t)!==binom(n,e)*(0,i.powN)(E,e)*(0,i.powN)(x,n-e))return null}const y=s.MultiPoly.monomial(E,d),v=s.MultiPoly.monomial(x,p);return{base:(0,o.addPoly)(y,v),n}}(makePrimitiveZ(e)[1]);if(!t)return null;const{base:n,n:r}=t,a=factorMultivariate(n),l=[];for(let e=0;e<r;e++)l.push(...a);return l}function tryFactorSpecialBivariatePatternsFast(e){const t=(0,o.mvVariablesSorted)(e);if(2!==t.length)return null;const n=e.degree(t[0]),i=e.degree(t[1]);if(!(n>1&&i>1))return null;const a=function trySpecialBivariatePatterns(e,t,n){const i=e.degree(t),a=e.degree(n);if(i===a&&i>=1){const r=s.MultiPoly.monomial(1n,0===t?[i,0]:[0,i]),l=s.MultiPoly.monomial(1n,0===n?[a,0]:[0,a]),u=(0,o.subPoly)(r,l);if((0,o.equalPoly)(e,u)){const e=(0,o.subPoly)(s.MultiPoly.variable(t),s.MultiPoly.variable(n));let r=s.MultiPoly.zero();for(let e=0;e<i;e++){const n=s.MultiPoly.monomial(1n,0===t?[i-1-e,e]:[e,i-1-e]);r=(0,o.addPoly)(r,n)}return[e,r]}const c=(0,o.addPoly)(r,l);if((0,o.equalPoly)(e,c)&&i%2==1){const e=(0,o.addPoly)(s.MultiPoly.variable(t),s.MultiPoly.variable(n));let r=s.MultiPoly.zero();for(let e=0;e<i;e++){const n=e%2==0?1n:-1n,a=s.MultiPoly.monomial(n,0===t?[i-1-e,e]:[e,i-1-e]);r=(0,o.addPoly)(r,a)}return[e,r]}}if(2===i&&2===a){const i=e.getCoeff(0===t?[2,0]:[0,2]),r=e.getCoeff(0===n?[2,0]:[0,2]),a=e.getCoeff([1,1]);if(1n===i&&1n===r&&2n===a&&3===e.terms.size){const e=(0,o.addPoly)(s.MultiPoly.variable(t),s.MultiPoly.variable(n));return[e,e]}if(1n===i&&1n===r&&-2n===a&&3===e.terms.size){const e=(0,o.subPoly)(s.MultiPoly.variable(t),s.MultiPoly.variable(n));return[e,e]}}if(i===a&&i%2==0&&i>=4){const r=i/2,a=s.MultiPoly.monomial(1n,0===t?[2*r,0]:[0,2*r]),l=s.MultiPoly.monomial(1n,0===n?[2*r,0]:[0,2*r]),u=s.MultiPoly.monomial(1n,[r,r]),c=(0,o.addPoly)((0,o.addPoly)(a,u),l);if((0,o.equalPoly)(e,c))if(r%2==0){const i=r/2,a=s.MultiPoly.monomial(1n,0===t?[r,0]:[0,r]),l=s.MultiPoly.monomial(1n,0===n?[r,0]:[0,r]),u=s.MultiPoly.monomial(1n,[i,i]),c=(0,o.addPoly)((0,o.addPoly)(a,u),l),m=(0,o.subPoly)((0,o.addPoly)(a,l),u),p=(0,o.mulPoly)(c,m);if((0,o.equalPoly)(p,e))return[c,m]}else{let n=s.MultiPoly.zero(),i=s.MultiPoly.zero();for(let e=0;e<=r;e++){const a=s.MultiPoly.monomial(1n,0===t?[r-e,e]:[e,r-e]);n=(0,o.addPoly)(n,a);const l=e%2==0?1n:-1n;i=(0,o.addPoly)(i,(0,o.scalePoly)(a,l))}const a=(0,o.mulPoly)(n,i);if((0,o.equalPoly)(a,e))return[n,i]}const m=(0,o.subPoly)((0,o.addPoly)(a,l),u);(0,o.equalPoly)(e,m)}{let i=0n;for(const[t,r]of e.terms)i+=r*(((0,s.keyToExp)(t).get(n)??0)%2==0?1n:-1n);if(0n===i&&e.terms.size>1){const i=(0,o.addPoly)(s.MultiPoly.variable(t),s.MultiPoly.variable(n)),r=(0,o.mvExactDiv)(e,i);if(null!==r&&!r.isConstant())return[i,r]}let r=0n;for(const t of e.terms.values())r+=t;if(0n===r&&e.terms.size>1){const i=(0,o.subPoly)(s.MultiPoly.variable(t),s.MultiPoly.variable(n)),r=(0,o.mvExactDiv)(e,i);if(null!==r&&!r.isConstant())return[i,r]}}{let r=!0;for(const i of e.terms.keys()){const e=(0,s.keyToExp)(i),o=e.get(t)??0,a=e.get(n)??0;if(o%2!=0||a%2!=0){r=!1;break}}if(r&&i>=2&&a>=2){const i=s.MultiPoly.monomial(1n,0===t?[2,0]:[0,2]),r=s.MultiPoly.monomial(1n,0===n?[2,0]:[0,2]),a=(0,o.addPoly)(i,r),l=(0,o.mvExactDiv)(e,a);if(null!==l&&!l.isConstant())return[a,l];const u=(0,o.subPoly)(i,r),c=(0,o.mvExactDiv)(e,u);if(null!==c&&!c.isConstant())return[u,c]}}{const a=i;let l=!0;for(const[i]of e.terms){const e=(0,s.keyToExp)(i);if((e.get(t)??0)+(e.get(n)??0)!==a){l=!1;break}}if(l&&a>=4){const n=new Array(a+1).fill(0n);for(const[i,r]of e.terms){const e=(0,s.keyToExp)(i).get(t)??0;n[e]=(n[e]??0n)+r}const i=(0,r.factorPolynomialBig)(n);if(i.factors&&i.factors.length>=2){const n=[];for(const e of i.factors){const i=e.coefficients,r=i.length-1;let a=s.MultiPoly.zero();for(let e=0;e<=r;e++){const n=i[e]??0n;if(0n!==n){const i=s.MultiPoly.monomial(n,0===t?[e,r-e]:[r-e,e]);a=(0,o.addPoly)(a,i)}}for(let t=0;t<(e.multiplicity??1);t++)n.push(a)}if(1n!==i.content&&0n!==i.content&&(-1n===i.content&&n.length>0?n[0]=(0,o.scalePoly)(n[0],-1n):-1n!==i.content&&n.unshift(s.MultiPoly.constant(i.content))),n.length>=2){let t=n[0];for(let e=1;e<n.length;e++)t=(0,o.mulPoly)(t,n[e]);if((0,o.equalPoly)(t,e))return n}}}}return null}(e,t[0],t[1]);if(!a||a.length<2)return null;const l=[];for(const e of a)l.push(...factorMultivariate(e));return l}function factorMultivariate(e){if(e.isZero())return[];if(e.isConstant()){const t=e.constantTerm();return 1n===t||-1n===t?[]:[e]}const t=tryFactorMonomialGcdFast(e)??function tryFactorPerfectSquareFast(e){if(e.isZero()||e.isConstant())return null;const t=tryPolynomialSquareRoot(e);if(null===t)return null;if(!(0,o.equalPoly)((0,o.mulPoly)(t,t),e))return null;const n=factorMultivariate(t);return[...n,...n]}(e)??function tryFactorPolynomialInMonomialFast(e){if((0,o.mvVariablesSorted)(e).length<2)return null;let t=null;for(const n of e.terms.keys()){const e=(0,s.keyToExp)(n);if(0!==e.size)if(null!==t)for(const[n,i]of t){const r=e.get(n)??0;0!==r?t.set(n,Math.min(i,r)):t.delete(n)}else t=new Map(e)}if(!t||t.size<2)return null;for(const e of t.values())if(e<=0)return null;let n=0;const i=[];for(const[r,o]of e.terms){const e=(0,s.keyToExp)(r);if(0===e.size){i[0]=(i[0]??0n)+o;continue}let a=null;for(const[n,i]of t){const t=e.get(n)??0;if(t%i!==0)return null;const r=t/i;if(null===a)a=r;else if(a!==r)return null}for(const[n,i]of e)if(void 0===t.get(n)&&0!==i)return null;if(null===a)return null;n=Math.max(n,a),i[a]=(i[a]??0n)+o}if(n<2)return null;const a=(0,r.factorPolynomialBig)(i);if(0===(a.factors?.length??0))return null;const l=new s.MultiPoly;function powMV(e,t){let n=s.MultiPoly.constant(1n),i=e,r=t;for(;r>0;)1&r&&(n=(0,o.mulPoly)(n,i)),r>>=1,r&&(i=(0,o.mulPoly)(i,i));return n}function fromTPolyToMV(e){let t=s.MultiPoly.zero();for(let n=0;n<e.length;n++){const i=e[n]??0n;if(0n===i)continue;const r=(0,o.mulPoly)(s.MultiPoly.constant(i),powMV(l,n));t=(0,o.addPoly)(t,r)}return t.trim(),t}l.terms.set((0,s.expToKey)(t),1n),l.trim();const u=[];1n!==a.content&&-1n!==a.content?u.push(s.MultiPoly.constant(a.content)):-1n===a.content&&u.push(s.MultiPoly.constant(-1n));for(const e of a.factors)for(let t=0;t<(e.multiplicity??1);t++)u.push(fromTPolyToMV(e.coefficients));return u.length>=2?u:null}(e)??tryFactorBinomialPowerFast(e)??function tryFactorHomogeneousQuadratic2VarsFast(e){const t=(0,o.mvVariablesSorted)(e);if(2!==t.length)return null;const[n,r]=t;let a=0n,l=0n,u=0n;for(const[t,i]of e.terms){const e=(0,s.keyToExp)(t),o=e.get(n)??0,c=e.get(r)??0;if(e.delete(n),e.delete(r),0!==e.size)return null;if(o+c!==2)return null;if(2===o&&0===c)a+=i;else if(1===o&&1===c)l+=i;else{if(0!==o||2!==c)return null;u+=i}}if(0n===a||0n===u)return null;const c=(0,i.getDivisors)((0,i.abs)(a)),m=(0,i.getDivisors)((0,i.abs)(u));function withSigns(e){return 0n===e||0n===e?[0n]:[e,-e]}for(const t of c)for(const i of withSigns(t)){if(0n===i)continue;if(a%i!==0n)continue;const t=a/i;for(const s of m)for(const a of withSigns(s)){if(0n===a)continue;if(u%a!==0n)continue;const s=u/a;if(i*s+a*t!==l)continue;const c=buildLinearInTwoVars(i,a,n,r),m=buildLinearInTwoVars(t,s,n,r);if(!c.isConstant()&&!m.isConstant()&&(0,o.equalPoly)((0,o.mulPoly)(c,m),e))return[c,m]}}return null}(e)??tryFactorSpecialBivariatePatternsFast(e)??function tryFactorSmallDegreeInVarFast(e){const t=(0,o.mvVariablesSorted)(e);for(const n of t){const t=(0,o.mvContentInVar)(e,n);if(!t.isConstant()||1n!==t.constantTerm()){const i=(0,o.primitivePart)(e,n);if(!(0,o.equalPoly)(i,e)&&!i.isConstant()&&factorsReconstruct(e,[t,i])){const e=factorMultivariate(t),n=factorMultivariate(i);if(e.length+n.length>=2)return[...e,...n]}}}for(const n of t)if(1===e.degree(n)){const t=tryFactorLinearInVar(e,n);if(t){const e=[];for(const n of t)e.push(...factorMultivariate(n));return e}}for(const n of t){const t=tryFactorBinomialInVar(e,n);if(t){const e=[];for(const n of t)e.push(...factorMultivariate(n));return e}}for(const n of t)if(2===e.degree(n)){const t=tryFactorQuadraticInVar(e,n);if(t){const e=[];for(const n of t)e.push(...factorMultivariate(n));return e}}for(const n of t)if(4===e.degree(n)){const t=tryFactorEvenQuarticInVar(e,n);if(t){const e=[];for(const n of t)e.push(...factorMultivariate(n));return e}}return null}(e)??function tryFactorEEZWangMonicLinearFast(e){function varsPresent(e){return(0,o.mvVariablesSorted)(e)}function isMonicLinearInVar(e,t){if(1!==e.degree(t))return{ok:!1};let n=null;const i=new s.MultiPoly;for(const[r,o]of e.terms){const e=(0,s.keyToExp)(r),a=e.get(t)??0;if(0===a){i.terms.set(r,o);continue}if(1!==a)return{ok:!1};e.delete(t);const l=(0,s.expToKey)(e);null===n&&(n=new s.MultiPoly),n.terms.set(l,(n.terms.get(l)??0n)+o)}return null===n?{ok:!1}:(n.trim(),i.trim(),n.isConstant()&&1n===n.constantTerm()?{ok:!0,rest:i}:{ok:!1})}const ratZ=e=>(0,a.rat)(e),toInt=e=>(0,a.ratToInt)(e);function solveDeg2(e,t){const[n,i,r]=e,[s,o,l]=t,u=[[ratZ(1n),ratZ(n),ratZ(n*n),ratZ(s)],[ratZ(1n),ratZ(i),ratZ(i*i),ratZ(o)],[ratZ(1n),ratZ(r),ratZ(r*r),ratZ(l)]];for(let e=0;e<3;e++){let t=e;for(let n=e;n<3;n++)if(0n!==u[n][e].n){t=n;break}if(0n===u[t][e].n)return null;if(t!==e){const n=u[e];u[e]=u[t],u[t]=n}const n=u[e][e];for(let t=e;t<4;t++)u[e][t]=(0,a.ratDiv)(u[e][t],n);for(let t=0;t<3;t++){if(t===e)continue;const n=u[t][e];if(0n!==n.n)for(let i=e;i<4;i++)u[t][i]=(0,a.ratSub)(u[t][i],(0,a.ratMul)(n,u[e][i]))}}const c=toInt(u[0][3]),m=toInt(u[1][3]),p=toInt(u[2][3]);return null===c||null===m||null===p?null:[c,m,p]}const t=varsPresent(e);if(t.length>=2){const n=function tryEEZMonicLinearFactorInY(e,t,n){const i=varsPresent(e);if(!i.includes(t)||!i.includes(n))return null;const r=i.filter(e=>e!==t&&e!==n);if(0===r.length)return null;const a=e.degree(n);if(a<1||a>3)return null;const l=r[0],u=r.slice(1),c=[1n,2n,3n],m=new Map;for(let e=0;e<u.length;e++)m.set(u[e],BigInt(e+1));const p=new Map;for(let i=0;i<c.length;i++){let r=e;for(const[e,t]of m)r=(0,o.substituteVarIndex)(r,e,t);r=(0,o.substituteVarIndex)(r,l,c[i]);const a=filterUnitConstants(factorMultivariate(r));let u=null;for(const e of a){const t=isMonicLinearInVar(e,n);if(t.ok&&t.rest){u=t.rest;break}}if(null===u)return null;for(const[e,r]of u.terms){const o=(0,s.keyToExp)(e);if(0!==(o.get(n)??0))return null;const a=o.get(t)??0;let l=p.get(a);l||(l=Array(c.length).fill(0n),p.set(a,l)),l[i]=r}}const d=new s.MultiPoly;for(const[e,n]of p){const i=solveDeg2(c,n);if(null===i)return null;const[r,o,a]=i,addTerm=(n,i)=>{if(0n===i)return;const r=new Map;0!==e&&r.set(t,e),0!==n&&r.set(l,n);const o=(0,s.expToKey)(r);d.terms.set(o,(d.terms.get(o)??0n)+i)};addTerm(0,r),addTerm(1,o),addTerm(2,a)}d.trim();const g=new s.MultiPoly;g.terms.set((0,s.expToKey)(new Map([[n,1]])),1n);for(const[e,t]of d.terms)g.terms.set(e,(g.terms.get(e)??0n)+t);return g.trim(),(0,o.mvExactDiv)(e,g)?g:null}(e,t[0],t[1]);if(null!==n){const t=(0,o.mvExactDiv)(e,n);if(t)return[n,...factorMultivariate(t)]}}return null}(e);if(t)return t;const n=(0,o.scalePoly)(e,1n),c=Array.from(n.variables()).sort();if(1===c.length)return function factorUnivariateMultiPoly(e,t){function unpackFactorResult(e){const n=[];let i=BigInt(e.content);const r=[];for(const n of e.factors)for(let e=0;e<(n.multiplicity??1);e++)r.push((0,o.fromUnivariate)(n.coefficients,t));return-1n===i&&r.length>0&&(r[0]=(0,o.scalePoly)(r[0],-1n),i=1n),1n!==i&&n.push(s.MultiPoly.constant(i)),n.push(...r),n}function nonConstFactorCount(e){let t=0;for(const n of e.factors)(n.coefficients?.length??0)-1>0&&(t+=n.multiplicity??1);return t}const n=(0,o.toUnivariate)(e,t);if(n){const i=(0,r.factorPolynomial)(n);if(nonConstFactorCount(i)>1){const n=unpackFactorResult(i),r=tryRationalRootFactorization(e,t);if(r.length>1){const e=refineRationalRootFactors(r,t);if(e.length>n.length)return e}return n}}const i=tryRationalRootFactorization(e,t);return i.length>1?refineRationalRootFactors(i,t):[e]}(n,c[0]);const m=c[0],p=c.length>1?c[1]:c[0],d=n.leadingCoeff(m),g=function evalBudgetForMV(e,t){const n=Math.max(0,e.degree(t));let r=0n;for(const t of e.terms.values()){const e=t<0n?-t:t;e>r&&(r=e)}const s=(0,i.bigintBitLength)(r);let o=20+Math.ceil(n/2)+Math.ceil(s/128),a=10+Math.ceil(n/3)+Math.ceil(s/256);return o<20&&(o=20),o>200&&(o=200),a<10&&(a=10),a>80&&(a=80),{maxAttempts:o,maxSetsMultiplier:a}}(n,p),h=void 0,x=function findGenericEvalPoint(e){const{workingPoly:t,mainVar:n,evalVar:i,lcMultivariate:s,maxAttempts:a}=e,l=e.stats;l&&(l.stage="find-generic-eval-point",l.maxAttempts=a,l.attemptsUsed=0);for(let e=0;e<a;e++){l&&(l.attemptsUsed=e+1);const a=0===e?0n:e%2==1?BigInt(Math.floor(e/2)+1):-BigInt(e/2);if((0,o.substituteVarIndex)(s,i,a).isZero())continue;const u=(0,o.substituteVarIndex)(t,i,a),c=(0,o.toUnivariate)(u,n);if(c&&uniSplitSquarefree((0,r.factorPolynomial)(c)).ok)return a}return null}({workingPoly:n,mainVar:m,evalVar:p,lcMultivariate:d,maxAttempts:g.maxAttempts,stats:h});if(null===x)return[n];const fingerprint=e=>function fingerprintUnivariateInVar(e,t){const n=(0,o.mvNormalizeSignUnivariateInVar)(e,t),r=n.degree(t),s=u.map(e=>function evalUnivariateMod(e,t,n,r){let s=0n,o=1n;const a=e.degree(r);for(let r=0;r<=a;r++){const a=e.getCoeff([r]);s=(0,i.modNorm)(s+(0,i.modNorm)(a,n)*o,n),o=(0,i.modNorm)(o*t,n)}return s}(n,e,l,t).toString());return`${r}|${s.join(",")}`}(e,m),E=function collectStableFactorSetsMajority(e){const{workingPoly:t,mainVar:n,evalVar:i,evalPoint:s,lcMultivariate:a,maxSetsMultiplier:l,fingerprint:u}=e,c=e.stats;c&&(c.stage="collect-stable-factor-sets",c.pointsTried=0,c.factorSetsFound=0);const m=t.degree(i),p=m+1;c&&(c.numPointsNeeded=p);const d=[],g=[];g.push(s),g.push(0n);for(let e=1;e<p*l;e++)g.push(BigInt(e)),g.push(-BigInt(e));const h=new Set,x=[];for(const e of g){const t=e.toString();h.has(t)||(h.add(t),x.push(e))}const E=Math.max(p*l,20);c&&(c.maxSets=E);for(const e of x){if(c&&(c.pointsTried=(c.pointsTried??0)+1),d.length>=E)break;if((0,o.substituteVarIndex)(a,i,e).isZero())continue;const s=(0,o.substituteVarIndex)(t,i,e),l=(0,o.toUnivariate)(s,n);if(!l)continue;const u=(0,r.factorPolynomial)(l);if(!uniSplitSquarefree(u).ok)continue;if(0===u.factors.length)continue;const m=[],p=[];for(const e of u.factors)if(!((e.coefficients?.length??0)-1<=0))for(let t=0;t<e.multiplicity;t++){const t=(0,o.fromUnivariate)(e.coefficients,n);m.push(t),p.push(t.degree(n))}if(m.length<2)continue;const g=m.map(e=>(0,o.mvNormalizeSignUnivariateInVar)(e,n)),h=g.map(e=>e.degree(n));d.push({point:e,factors:g,degrees:h}),c&&(c.factorSetsFound=d.length)}if(0===d.length)return null;const sigKey=e=>[...e.degrees].sort((e,t)=>e-t).join(","),y=new Map;for(const e of d){let t=0;for(const n of e.degrees)n>0&&t++;const n=sigKey(e),i=y.get(n)??{count:0,bestNonConst:-1,bestSet:null};i.count+=1,t>i.bestNonConst&&(i.bestNonConst=t,i.bestSet=e),y.set(n,i)}let v=null,P=-1,w=-1,b=null;for(const[e,t]of y.entries())t.bestNonConst<=1||(t.count>P||t.count===P&&t.bestNonConst>w)&&(v=e,P=t.count,w=t.bestNonConst,b=t.bestSet);if(!v||!b)return null;const M=d.filter(e=>sigKey(e)===v);if(c&&(c.numPointsNeeded=p,c.maxSets=E,c.stableSetsFound=M.length),M.length<p)return null;const A=b.factors.length,T=b.factors.map(e=>u(e));return{numPointsNeeded:p,numFactors:A,referenceSet:b,referenceFingerprints:T,stableSets:M}}({workingPoly:n,mainVar:m,evalVar:p,evalPoint:x,lcMultivariate:d,maxSetsMultiplier:g.maxSetsMultiplier,fingerprint,stats:h});if(!E)return[n];const y=function alignFactorsAcrossPoints(e){const{stableSets:t,referenceSet:n,referenceFingerprints:i,numFactors:r,fingerprint:o}=e,a=Array.from({length:r},()=>[]);for(const e of t){const t=new Array(e.factors.length).fill(!1);for(let l=0;l<r;l++){const r=n.degrees[l],u=i[l];let c=-1;for(let n=0;n<e.factors.length;n++)if(!t[n]&&e.degrees[n]===r&&o(e.factors[n])===u){c=n;break}if(-1===c)for(let n=0;n<e.factors.length;n++)if(!t[n]&&e.degrees[n]===r){c=n;break}-1===c?a[l].push(s.MultiPoly.constant(1n)):(t[c]=!0,a[l].push(e.factors[c]))}}return a}({stableSets:E.stableSets.slice(0,E.numPointsNeeded),referenceSet:E.referenceSet,referenceFingerprints:E.referenceFingerprints,numFactors:E.numFactors,fingerprint}),v=function interpolateCandidateFactors(e){const{alignedFactors:t,stableSets:n,mainVar:i}=e,r=[],o=t.length;for(let e=0;e<o;e++){const o=t[e],a=[];for(let e=0;e<Math.min(o.length,n.length);e++)a.push({y:n[e].point,poly:o[e]});let l=0;for(const{poly:e}of a){const t=e.degree(i);t>l&&(l=t)}const u=new s.MultiPoly;for(let e=0;e<=l;e++){const t=[];for(const{y:n,poly:i}of a)t.push({y:Number(n),value:i.getCoeff([e])});const n=lagrangeInterpolation(t);for(const[t,i]of n.entries())0n!==i&&u.setCoeff([e,t],i)}u.isZero()||u.isConstant()||r.push(u)}return r}({alignedFactors:y,stableSets:E.stableSets,mainVar:m,evalVar:p});if(0===v.length)return[n];const P=function divideOutCandidates(e,t){const n=[];let i=e.clone();for(const e of t){const t=(0,o.mvExactDiv)(i,e);if(t&&(n.push(e),i=t,i.isConstant()||i.isZero()))break}return i.isConstant()||i.isZero()||n.push(i),n}(n,v);return P.length>0?P:[n]}function refineRationalRootFactors(e,t){const n=[];for(const i of e){if(i.degree(t)>=2){const e=(0,o.toUnivariate)(i,t);if(e){const i=(0,r.factorPolynomial)(e);if(i.factors.length>1||1===i.factors.length&&(i.factors[0].multiplicity??1)>1){let e=BigInt(i.content);for(const e of i.factors)for(let i=0;i<(e.multiplicity??1);i++)n.push((0,o.fromUnivariate)(e.coefficients,t));-1n===e&&n.length>0&&(n[n.length-1]=(0,o.scalePoly)(n[n.length-1],-1n),e=1n),1n!==e&&0n!==e&&n.push(s.MultiPoly.constant(e));continue}}}n.push(i)}return n}function uniSplitSquarefree(e){if(!e||!e.factors)return{ok:!1,nonConst:0};let t=0;for(const n of e.factors)if(!((n.coefficients?.length??0)-1<=0)&&(t+=1,1!==(n.multiplicity??1)))return{ok:!1,nonConst:t};return{ok:t>=2,nonConst:t}}const l=1000003n,u=[2n,3n,5n];function lagrangeInterpolation(e){const t=e.length;if(0===t)return new Map;if(1===t){const t=new Map;return t.set(0,e[0].value),t}let n=1n;for(let i=0;i<t;i++)for(let r=0;r<t;r++)i!==r&&(n*=BigInt(Math.abs(e[i].y-e[r].y)));const r=new Map;for(let i=0;i<t;i++){let s=new Map([[0,1n]]);for(let n=0;n<t;n++){if(i===n)continue;const t=BigInt(e[n].y),r=new Map;for(const[e,n]of s.entries())r.set(e+1,(r.get(e+1)||0n)+n),r.set(e,(r.get(e)||0n)-n*t);s=r}let o=1n;for(let n=0;n<t;n++)i!==n&&(o*=BigInt(e[i].y-e[n].y));const a=e[i].value*(n/o);for(const[e,t]of s.entries())r.set(e,(r.get(e)||0n)+t*a)}let s=0n;for(const e of r.values())s=(0,i.gcd)(s,e);s=(0,i.gcd)(s,n);const o=new Map;for(const[e,t]of r.entries()){const n=t/s;0n!==n&&o.set(e,n)}return o}},1526(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SolutionSet=void 0;const r=i(n(3110)),s=n(296),o=n(8300),a=n(5598),l=n(6441),u=n(4703);class SolutionSet extends a.ValuesSet{excluded=new a.ValuesSet;roots=[];dataType=o.SOLUTIONS_SET;partial=!1;solutionsType=void 0;unsolved;constructor(e){if(super(),e)for(const t of e)this.add(t)}static isSolutionSet(e){return(0,l.isNerdamerNativeType)(e,o.SOLUTIONS_SET)}mergeSolutionsType(e){void 0===this.solutionsType?this.solutionsType=e:void 0!==e&&this.solutionsType!==e&&(this.solutionsType="mixed")}verifyAndAddSolution(e,t,n){let i=!1;try{const r=t.evaluate({[n]:e.evaluate()}).expand(),s=0===r.variables().length;(s&&r.isNearlyZero()||!s)&&(this.add(e),i=this.has(e))}catch(t){t instanceof u.DivisionByZeroError&&(this.excluded.add(e),this.delete(e))}return i}__set__(e,t){if(!s.Expression.isExpression(t))throw new u.UnexpectedDataType((0,u.message)("expressionExpected",{type:t.dataType}));if(this.excluded.has(t)){const t=e[0];if(t<0||t>=this.count())throw new RangeError(`Index ${t} out of bounds for ${this.dataType} of length ${this.count()}`);const n=this.at(t);n&&this.delete(n)}else super.__set__(e,t)}add(e){if(!s.Expression.isExpression(e)){const t=e;throw new u.UnexpectedDataType((0,u.message)("expressionExpected",{type:t.dataType}))}return this.excluded.has(e)||super.add(e),this}addMany(e){const t=[...e];for(const e of t)if(!s.Expression.isExpression(e)){const t=e;throw new u.UnexpectedDataType((0,u.message)("expressionExpected",{type:t.dataType}))}for(const e of t)this.add(e);return this}addRawRoot(e){return this.roots.push({root:new r.default(e.root),iterations:e.iterations,converged:e.converged,error:new r.default(e.error),errorMsg:e.errorMsg}),this}addSolution(e,t,n){return this.verifyAndAddSolution(e,t,n),this}addSolutions(e,t,n){let i,r;SolutionSet.isSolutionSet(e)?(i=e,r=e.elements):r=e;let s=!1;for(const e of r)this.verifyAndAddSolution(e,t,n)&&(s=!0);return i&&s&&this.mergeSolutionsType(i.solutionsType),this}append(e){this.exclude(e.getExcluded()),this.addMany(e.elements);for(const t of e.getRawRoots())this.addRawRoot(t);return this.partial=this.partial||e.partial,this.mergeSolutionsType(e.solutionsType),!this.unsolved&&e.unsolved&&(this.unsolved=e.unsolved.copy()),this}at(e){return super.at(e)}clear(){return super.clear(),this.excluded.clear(),this.roots.length=0,this.partial=!1,this.solutionsType=void 0,this.unsolved=void 0,this}copy(){const e=new SolutionSet(this.elements);return e.excluded=this.excluded.copy(),e.roots=this.getRawRoots(),e.solutionsType=this.solutionsType,e.partial=this.partial,this.unsolved&&(e.unsolved=this.unsolved.copy()),e}each(e){super.each((t,n,i)=>{if(!s.Expression.isExpression(t))throw new u.UnexpectedDataType((0,u.message)("expressionExpected",{type:t.dataType}));const r=e(t,n,i);if(void 0===r)return t;if(!s.Expression.isExpression(r))throw new u.UnexpectedDataType((0,u.message)("expressionExpected",{type:r.dataType}));return r});for(const e of this.excluded.elements)this.delete(e);return this}get elements(){return super.elements}evaluate(){return this.copy().each(e=>e.evaluate())}exclude(e){const t=e.elements;for(const e of t)if(!s.Expression.isExpression(e))throw new u.UnexpectedDataType((0,u.message)("expressionExpected",{type:e.dataType}));for(const e of t)this.excluded.add(e),this.delete(e);return this}expand(){return this.copy().each(e=>e.expand())}forEach(e){const t=this.elements;for(let n=0;n<t.length;n++)e(t[n],n)}getExcluded(){return this.excluded.copy()}getRawRoots(){return this.roots.map(e=>({root:new r.default(e.root),iterations:e.iterations,converged:e.converged,error:new r.default(e.error),errorMsg:e.errorMsg}))}get solutionForm(){let e="finite";for(const t of this.elements){if(t.eq(o.ALL_SYMBOL)){e="all";break}t.hasVariable(o.INDEX_VARIABLE)&&(e="parametric")}return e}[Symbol.iterator](){return this.elements[Symbol.iterator]()}text(){return super.text()}toArray(){return this.elements}}t.SolutionSet=SolutionSet},1649(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.INVERSE_HYPERBOLIC_TRIG=t.HYPERBOLIC_TRIG=t.INVERSE_TRIG=t.TRIG=t.ACOTH=t.ACSCH=t.ASECH=t.ATANH=t.ASINH=t.ACOSH=t.COTH=t.CSCH=t.SECH=t.TANH=t.COSH=t.SINH=t.ATAN2=t.ACOT=t.ACSC=t.ASEC=t.ATAN=t.COT=t.CSC=t.SEC=t.ACOS=t.ASIN=t.TAN=t.SIN=t.COS=t.TRIG_FUNCTION_NAMES=void 0,t.cos=cos,t.sin=sin,t.tan=function tan(e){let t;if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));if(-1===e.sign()&&!e.isNUM())return tan(e.neg()).neg();const n=Math.abs(+e.getMultiplier());if(1===n&&e.isFunction(s.ATAN))t=e.getArguments()[0].times(e.sign());else if(1===n&&e.isFunction(s.ASIN)){const[n,i]=argNumDen(e);t=n.div((0,m.sqrt)(i.sq().minus(n.sq()))).times(e.sign())}else if(1===n&&e.isFunction(s.ACOS)){const[n,i]=argNumDen(e);t=(0,m.sqrt)(i.sq().minus(n.sq())).div(n).times(e.sign())}else{const n=toPiValue(e).getMultiplier().div(o.Rational.PI).denominator;if(1n===n||e.isZero())t=(0,r.zero)();else{if(2n===n)throw new a.UndefinedError((0,a.message)("tanUndefined"));if(u.Settings.EVALUATE&&e.isNUM())t=i.Expression.Number(e.getMultiplier().toDecimal().tan());else if(u.Settings.EVALUATE&&e.isComplex()){const n=e.realPart().times(2),i=e.imagPart().times(2),r=cos(n).plus(cosh(i));t=sin(n).div(r).plus(sinh(i).div(r).i())}else t=sin(e).div(cos(e)),t.hasFunction(s.COS)&&(t=i.Expression.toFunction(s.TAN,[e]))}}return t},t.sec=function sec(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE&&e.isComplex()){const n=e.realPart(),i=e.imagPart(),r=cos(n),s=cosh(i),o=sin(n),a=sinh(i),l=r.sq().times(s.sq()).plus(o.sq().times(a.sq()));t=r.times(s).div(l).plus(o.times(a).div(l).i())}else{const n=cos(e);if(n.isZero())throw new a.UndefinedError((0,a.message)("secUndefined"));t=n.invert(),t.hasFunction(s.COS)&&(t=i.Expression.toFunction(s.SEC,[e]))}return t},t.csc=function csc(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE&&e.isComplex()){const n=e.realPart(),i=e.imagPart(),r=sin(n),s=cosh(i),o=cos(n),a=sinh(i),l=r.sq().times(s.sq()).plus(o.sq().times(a.sq()));t=r.times(s).div(l).minus(o.times(a).div(l).i())}else{const n=sin(e);if(n.isZero())throw new a.UndefinedError((0,a.message)("cscUndefined"));t=n.invert(),t.hasFunction(s.SIN)&&(t=i.Expression.toFunction(s.CSC,[e]))}return t},t.cot=function cot(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE&&e.isComplex()){const n=e.realPart(),i=e.imagPart(),s=sin(n),o=cos(n),a=sinh(i.times((0,r.two)())),l=cosh(i.times((0,r.two)())),u=cos(n.times((0,r.two)())),c=l.minus(u);t=s.times(o).times((0,r.two)()).div(c).plus(a.neg().div(c).i())}else{const n=sin(e);if(n.isZero())throw new a.UndefinedError((0,a.message)("cotUndefined"));t=cos(e).div(n),t.hasFunction(s.COS)&&(t=i.Expression.toFunction(s.COT,[e]))}return t},t.acos=acos,t.asin=asin,t.atan=atan,t.asec=function asec(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return i.Expression.Pi().div((0,r.two)());const t=acos(e.invert());return t.isFunction(s.ACOS)&&t.getArguments()[0].eq(e.invert())?i.Expression.toFunction(s.ASEC,[e]):t},t.acsc=function acsc(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return(0,r.zero)();const t=asin(e.invert());return t.isFunction(s.ASIN)&&t.getArguments()[0].eq(e.invert())?i.Expression.toFunction(s.ACSC,[e]):t},t.acot=function acot(e){let t;return(e=i.Expression.create(e)).isPosInf()||e.isNegInf()?t=e.isNegInf()?i.Expression.Pi():(0,r.zero)():e.isZero()?t=i.Expression.Pi().div((0,r.two)()):(t=atan(e.invert()),t.isFunction(s.ATAN)&&t.getArguments()[0].eq(e.invert())?t=i.Expression.toFunction(s.ACOT,[e]):e.isNUM()&&-1===e.sign()&&(t=i.Expression.Pi().plus(t))),t},t.atan2=function atan2(e,t){if(t=i.Expression.create(t),e=i.Expression.create(e),t.isZero()&&e.isZero())throw new a.UndefinedError((0,a.message)("atan2Undefined"));if((t.isPosInf()||t.isNegInf())&&(e.isPosInf()||e.isNegInf()))throw new a.UndefinedError((0,a.message)("atan2Undefined"));if(t.isPosInf()||t.isNegInf())return t.isNegInf()?-1===e.sign()?i.Expression.Pi().neg():i.Expression.Pi():(0,r.zero)();if(e.isPosInf()||e.isNegInf()){const t=i.Expression.Pi().div((0,r.two)());return e.isNegInf()?t.neg():t}let n;if(t.isNUM()&&e.isNUM()){const s=e.getMultiplier(),o=t.getMultiplier();n=o.gt((0,r.zero)())?atan(e.div(t)):o.lt("0")&&s.gte("0")?atan(e.div(t)).plus(i.Expression.Pi()):o.lt("0")&&s.lt("0")?atan(e.div(t)).plus(i.Expression.Pi().neg()):o.eq("0")&&s.gt((0,r.zero)())?i.Expression.Pi().div((0,r.two)()):i.Expression.Pi().neg().div((0,r.two)())}else n=i.Expression.toFunction(s.ATAN2,[e,t]);return n},t.cosh=cosh,t.sinh=sinh,t.tanh=tanh,t.sech=function sech(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return(0,r.zero)();let t=(0,r.one)().div(cosh(e));return t.hasFunction(s.COSH)&&(t=i.Expression.toFunction(s.SECH,[e])),t},t.csch=function csch(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return(0,r.zero)();if(e.isZero())throw new a.UndefinedError((0,a.message)("cschUndefined"));let t=(0,r.one)().div(sinh(e));return t.hasFunction(s.SINH)&&(t=i.Expression.toFunction(s.CSCH,[e])),t},t.coth=function coth(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?(0,r.one)().neg():(0,r.one)();if(e.isZero())throw new a.UndefinedError((0,a.message)("cothUndefined"));let t=(0,r.one)().div(tanh(e));return t.hasFunction(s.TANH)&&(t=i.Expression.toFunction(s.COTH,[e])),t},t.acosh=acosh,t.asinh=asinh,t.atanh=atanh,t.asech=function asech(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE)if(e.isComplex())t=acosh(e.invert());else{const n=(0,r.one)().div(e),i=(0,m.sqrt)((0,r.one)().div(e.sq()).minus((0,r.one)()));t=(0,p.log)(i.plus(n))}return t||(t=i.Expression.toFunction(s.ASECH,[e])),t},t.acsch=function acsch(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return(0,r.zero)();let t;if(u.Settings.EVALUATE)if(e.isComplex())t=asinh(e.invert());else{const n=(0,r.one)().div(e),i=(0,m.sqrt)((0,r.one)().div(e.sq()).plus((0,r.one)()));t=(0,p.log)(i.plus(n))}return t||(t=i.Expression.toFunction(s.ACSCH,[e])),t},t.acoth=function acoth(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return(0,r.zero)();let t;return u.Settings.EVALUATE&&(t=e.isComplex()?atanh(e.invert()):(0,p.log)(e.plus((0,r.one)()).div(e.minus((0,r.one)()))).div((0,r.two)()).expand()),t||(t=i.Expression.toFunction(s.ACOTH,[e])),t};const i=n(296),r=n(6099),s=n(8300),o=n(5584),a=n(4703),l=n(551),u=n(5817),c=n(7867),m=n(8533),p=n(8533);var d=n(8300);function getQuadrant(e){const t=o.Rational.PI.toDecimal(),n=t.times(2);let i=e.toDecimal().mod(n);i.lt(0)&&(i=i.plus(n));const r=Math.floor(Number(i.div(t.div(2))))+1;return Math.min(r,4)}function toPiValue(e){let t=e;return s.PI.includes(e.value)&&e.isLinear()&&(t=e.evaluate({[e.value]:`${o.Rational.PI}`})),t}function argNumDen(e,t=!1){const n=e.getArguments()[0],i=n.getNumerator(),r=n.getDenominator(),s=[i,r];return t&&s.push((0,c.hypot)(i,r)),s}function cos(e){let t;if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));if(-1===e.sign()&&!e.isNUM())return cos(e.neg());const n=Math.abs(+e.getMultiplier());if(1===n&&e.isFunction(s.ATAN)){const[,n,i]=argNumDen(e,!0);t=n.div(i)}else if(1===n&&e.isFunction(s.ACOS))t=e.getArguments()[0];else if(1===n&&e.isFunction(s.ASIN)){const[n,i]=argNumDen(e);t=(0,m.sqrt)(i.sq().minus(n.sq())).div(i)}else{const n=toPiValue(e);let a=!0;const c=[2,3];if(n.isNUM()){const p=n.getMultiplier(),d=p.div(o.Rational.PI);if(d.isInteger())t=i.Expression.Number((0,l.isEven)(d.numerator)?"1":"-1");else{switch(d.denominator){case 2n:t=(0,r.zero)();break;case 3n:t=(0,r.one)().div((0,r.two)());break;case 4n:t=(0,r.one)().div((0,m.sqrt)((0,r.two)()));break;case 6n:t=(0,m.sqrt)((0,r.three)()).div((0,r.two)());break;default:a=!1,t=u.Settings.EVALUATE?i.Expression.Number(p.toDecimal().cos()):i.Expression.toFunction(s.COS,[e])}a&&2n!==d.denominator&&c.includes(getQuadrant(p))&&(t=t.neg())}}else if(u.Settings.EVALUATE&&e.isComplex()){const n=e.realPart(),i=e.imagPart();t=cos(n).times(cosh(i)).minus(sin(n).times(sinh(i)).i())}else t=i.Expression.toFunction(s.COS,[e])}return t}function sin(e){let t;if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));if(-1===e.sign()&&!e.isNUM())return sin(e.neg()).neg();const n=Math.abs(+e.getMultiplier());if(1===n&&e.isFunction(s.ATAN)){const[n,,i]=argNumDen(e,!0);t=n.div(i).times(e.sign())}else if(1===n&&e.isFunction(s.ASIN))t=e.getArguments()[0].times(e.sign());else if(1===n&&e.isFunction(s.ACOS)){const[n,i]=argNumDen(e);t=(0,m.sqrt)(i.sq().minus(n.sq())).div(i).times(e.sign())}else{const n=toPiValue(e);let a=!0;const l=[3,4];if(n.isNUM()){const c=n.getMultiplier(),p=c.div(o.Rational.PI);if(p.isInteger())t=(0,r.zero)();else{switch(p.denominator){case 2n:t=(0,r.one)();break;case 3n:t=(0,m.sqrt)((0,r.three)()).div((0,r.two)());break;case 4n:t=(0,r.one)().div((0,m.sqrt)((0,r.two)()));break;case 6n:t=(0,r.one)().div((0,r.two)());break;default:a=!1,t=u.Settings.EVALUATE?i.Expression.Number(c.toDecimal().sin()):i.Expression.toFunction(s.SIN,[e])}a&&l.includes(getQuadrant(c))&&(t=t.neg())}}else if(u.Settings.EVALUATE&&e.isComplex()){const n=e.realPart(),i=e.imagPart();t=sin(n).times(cosh(i)).plus(cos(n).times(sinh(i)).i())}else t=i.Expression.toFunction(s.SIN,[e])}return t}function acos(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE&&e.isNUM())if(e.lt(-1)||e.gt(1)){const n=e.sign(),s=i.Expression.Pi().div((0,r.two)());let o=asin(e.abs());1===n&&(o=o.neg()),t=s.plus(o)}else t=i.Expression.Number(e.getMultiplier().toDecimal().acos());else if(u.Settings.EVALUATE&&e.isComplex()){const n=i.Expression.Img(),s=(0,m.sqrt)((0,r.one)().minus(e.pow((0,r.two)()))),o=n.times(e);t=i.Expression.Pi().div((0,r.two)()).minus(n.times((0,p.log)(s.minus(o)))).expand()}else if(!e.isComplex()){const n=[[(0,r.zero)(),i.Expression.Pi().div((0,r.two)())],[(0,r.one)().div((0,r.two)()),i.Expression.Pi().div((0,r.three)())],[(0,r.one)().div((0,m.sqrt)((0,r.two)())),i.Expression.Pi().div((0,r.four)())],[(0,m.sqrt)((0,r.three)()).div((0,r.two)()),i.Expression.Pi().div((0,r.six)())],[(0,r.one)(),(0,r.zero)()]],s=e.abs();for(const[r,o]of n)if(s.eq(r)){t=-1===e.sign()?i.Expression.Pi().minus(o):o;break}}return void 0===t&&(t=i.Expression.toFunction(s.ACOS,[e])),t}function asin(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE&&e.isNUM())if(e.lt((0,r.minusOne)())||e.gt((0,r.one)())){const n=e.sign();e=e.abs();const s=(0,m.sqrt)(e.sq().minus((0,r.one)()));let o=i.Expression.Pi().div((0,r.two)()),a=i.Expression.Img();-1===n?o=o.neg():a=a.neg(),t=o.plus(a.times((0,p.log)(e.plus(s))))}else t=i.Expression.Number(e.getMultiplier().toDecimal().asin());else if(u.Settings.EVALUATE&&e.isComplex()){const n=i.Expression.Img(),s=(0,m.sqrt)((0,r.one)().minus(e.pow((0,r.two)()))),o=n.times(e);t=n.times((0,p.log)(s.minus(o))).expand()}else if(!e.isComplex()){const n=[[(0,r.zero)(),(0,r.zero)()],[(0,r.one)().div((0,r.two)()),i.Expression.Pi().div((0,r.six)())],[(0,r.one)().div((0,m.sqrt)((0,r.two)())),i.Expression.Pi().div((0,r.four)())],[(0,m.sqrt)((0,r.three)()).div((0,r.two)()),i.Expression.Pi().div((0,r.three)())],[(0,r.one)(),i.Expression.Pi().div((0,r.two)())]],s=e.abs();for(const[i,r]of n)if(s.eq(i)){t=-1===e.sign()?r.neg():r;break}}return void 0===t&&(t=i.Expression.toFunction(s.ASIN,[e])),t}function atan(e){let t;if((e=i.Expression.create(e)).isPosInf()||e.isNegInf()){const t=i.Expression.Pi().div((0,r.two)());return e.isNegInf()?t.neg():t}if(u.Settings.EVALUATE&&e.isNUM())t=i.Expression.Number(e.getMultiplier().toDecimal().atan());else if(u.Settings.EVALUATE&&e.isComplex()){const n=i.Expression.Img(),s=(0,p.log)(n.minus(e).div(n.plus(e)));t=n.neg().div((0,r.two)()).times(s).expand()}else if(!e.isComplex()){const n=[[(0,r.zero)(),(0,r.zero)()],[(0,m.sqrt)((0,r.three)()).invert(),i.Expression.Pi().div((0,r.six)())],[(0,r.one)(),i.Expression.Pi().div((0,r.four)())],[(0,m.sqrt)((0,r.three)()),i.Expression.Pi().div((0,r.three)())]],s=e.abs();for(const[i,r]of n)if(s.eq(i)){t=-1===e.sign()?r.neg():r;break}}return t||(t=i.Expression.toFunction(s.ATAN,[e])),t}function cosh(e){let t;if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return i.Expression.Inf();if(e.isZero())t=(0,r.one)();else if(u.Settings.EVALUATE&&e.isNUM())t=i.Expression.Number(e.getMultiplier().toDecimal().cosh());else if(u.Settings.EVALUATE&&e.isComplex()){const n=e.realPart(),i=e.imagPart();t=cosh(n).times(cos(i)).plus(sinh(n).times(sin(i)).i())}else t=i.Expression.toFunction(s.COSH,[e]);return t}function sinh(e){let t;if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?i.Expression.NegInf():i.Expression.Inf();if(e.isZero())t=(0,r.zero)();else if(u.Settings.EVALUATE&&e.isNUM())t=i.Expression.Number(e.getMultiplier().toDecimal().sinh());else if(u.Settings.EVALUATE&&e.isComplex()){const n=e.realPart(),i=e.imagPart();t=sinh(n).times(cos(i)).plus(cosh(n).times(sin(i)).i())}else t=i.Expression.toFunction(s.SINH,[e]);return t}function tanh(e){let t;if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?(0,r.one)().neg():(0,r.one)();if(e.isZero())t=(0,r.zero)();else if(u.Settings.EVALUATE&&e.isNUM())t=i.Expression.Number(e.getMultiplier().toDecimal().tanh());else if(u.Settings.EVALUATE&&e.isComplex()){const n=e.realPart(),i=e.imagPart(),r=sinh(n).times(cos(i)).plus(cosh(n).times(sin(i)).i()),s=cosh(n).times(cos(i)).plus(sinh(n).times(sin(i)).i());t=r.div(s)}else t=i.Expression.toFunction(s.TANH,[e]);return t}function acosh(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf()){if(e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));return i.Expression.Inf()}let t;if(e.isOne())t=(0,r.zero)();else if(e.isZero())t=i.Expression.Pi().div((0,r.two)()).times(i.Expression.Img());else if(u.Settings.EVALUATE)if(e.isComplex()||e.lt("1")){const n=(0,m.sqrt)(e.plus((0,r.one)())),i=(0,m.sqrt)(e.minus((0,r.one)())),s=e.plus(n.times(i));t=(0,p.log)(s)}else t=i.Expression.Number(e.getMultiplier().toDecimal().acosh());return t||(t=i.Expression.toFunction(s.ACOSH,[e])),t}function asinh(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?i.Expression.NegInf():i.Expression.Inf();let t;return e.isZero()?t=(0,r.zero)():u.Settings.EVALUATE&&(t=e.isComplex()?(0,p.log)(e.plus((0,m.sqrt)(e.sq().plus((0,r.one)())))):i.Expression.Number(e.getMultiplier().toDecimal().asinh())),t||(t=i.Expression.toFunction(s.ASINH,[e])),t}function atanh(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(e.isZero())t=(0,r.zero)();else{if(e.isOne())throw new a.UndefinedError((0,a.message)("atanhUndefined"));u.Settings.EVALUATE&&(t=e.isComplex()||e.lt((0,r.minusOne)())||e.gt((0,r.one)())?(0,p.log)((0,r.one)().plus(e).div((0,r.one)().minus(e))).div((0,r.two)()).expand():i.Expression.Number(e.getMultiplier().toDecimal().atanh()))}return t||(t=i.Expression.toFunction(s.ATANH,[e])),t}Object.defineProperty(t,"TRIG_FUNCTION_NAMES",{enumerable:!0,get:function(){return d.TRIG_FUNCTION_NAMES}}),Object.defineProperty(t,"COS",{enumerable:!0,get:function(){return d.COS}}),Object.defineProperty(t,"SIN",{enumerable:!0,get:function(){return d.SIN}}),Object.defineProperty(t,"TAN",{enumerable:!0,get:function(){return d.TAN}}),Object.defineProperty(t,"ASIN",{enumerable:!0,get:function(){return d.ASIN}}),Object.defineProperty(t,"ACOS",{enumerable:!0,get:function(){return d.ACOS}}),Object.defineProperty(t,"SEC",{enumerable:!0,get:function(){return d.SEC}}),Object.defineProperty(t,"CSC",{enumerable:!0,get:function(){return d.CSC}}),Object.defineProperty(t,"COT",{enumerable:!0,get:function(){return d.COT}}),Object.defineProperty(t,"ATAN",{enumerable:!0,get:function(){return d.ATAN}}),Object.defineProperty(t,"ASEC",{enumerable:!0,get:function(){return d.ASEC}}),Object.defineProperty(t,"ACSC",{enumerable:!0,get:function(){return d.ACSC}}),Object.defineProperty(t,"ACOT",{enumerable:!0,get:function(){return d.ACOT}}),Object.defineProperty(t,"ATAN2",{enumerable:!0,get:function(){return d.ATAN2}}),Object.defineProperty(t,"SINH",{enumerable:!0,get:function(){return d.SINH}}),Object.defineProperty(t,"COSH",{enumerable:!0,get:function(){return d.COSH}}),Object.defineProperty(t,"TANH",{enumerable:!0,get:function(){return d.TANH}}),Object.defineProperty(t,"SECH",{enumerable:!0,get:function(){return d.SECH}}),Object.defineProperty(t,"CSCH",{enumerable:!0,get:function(){return d.CSCH}}),Object.defineProperty(t,"COTH",{enumerable:!0,get:function(){return d.COTH}}),Object.defineProperty(t,"ACOSH",{enumerable:!0,get:function(){return d.ACOSH}}),Object.defineProperty(t,"ASINH",{enumerable:!0,get:function(){return d.ASINH}}),Object.defineProperty(t,"ATANH",{enumerable:!0,get:function(){return d.ATANH}}),Object.defineProperty(t,"ASECH",{enumerable:!0,get:function(){return d.ASECH}}),Object.defineProperty(t,"ACSCH",{enumerable:!0,get:function(){return d.ACSCH}}),Object.defineProperty(t,"ACOTH",{enumerable:!0,get:function(){return d.ACOTH}}),Object.defineProperty(t,"TRIG",{enumerable:!0,get:function(){return d.TRIG}}),Object.defineProperty(t,"INVERSE_TRIG",{enumerable:!0,get:function(){return d.INVERSE_TRIG}}),Object.defineProperty(t,"HYPERBOLIC_TRIG",{enumerable:!0,get:function(){return d.HYPERBOLIC_TRIG}}),Object.defineProperty(t,"INVERSE_HYPERBOLIC_TRIG",{enumerable:!0,get:function(){return d.INVERSE_HYPERBOLIC_TRIG}})},1668(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.evaluate=function evaluate(e,t,n){const i=e();let s;if(t){const e=t();if(s={},n){const t=n();if(!p.Vector.isVector(e))throw new r.UnexpectedDataType((0,r.message)("vectorExpected",{type:d.dataTypes[e.dataType]}));if(!p.Vector.isVector(t))throw new r.UnexpectedDataType((0,r.message)("vectorExpected",{type:d.dataTypes[t.dataType]}));if(e.count()!==t.count())throw new r.DimensionError((0,r.message)("mismatchedDimensions",{function:"evaluate"}));for(let n=0;n<e.count();n++){const i=e.elements[n];if(!l.Expression.isExpression(i))throw new r.UnexpectedDataType((0,r.message)("expressionExpected",{type:d.dataTypes[i.dataType]}));s[(0,u.assertPlainVariableAndGetString)(i)]=t.elements[n]}}else{if(!o.Dictionary.isDictionary(e))throw new r.UnexpectedDataType((0,r.message)("unsupportedType",{type:d.dataTypes[e.dataType]}));for(const[t,n]of e)s[t]=n}}let a=i;try{a=s&&(l.Expression.isExpression(i)||p.Vector.isVector(i)||c.Matrix.isMatrix(i))?i.evaluate(s):i.evaluate()}catch{a=i}return a},t.numeric=function numeric(e,t){const n=e();let i;if(t){const e=t();if(!l.Expression.isExpression(e))throw new r.UnexpectedDataType((0,r.message)("expressionExpected",{type:d.dataTypes[e.dataType]}));i=e}return applyNumeric(n,i)};const i=n(8533),r=n(4703),s=n(6284),o=n(6528),a=n(6184),l=n(296),u=n(1897),c=n(4462),m=n(5598),p=n(3982),d=n(8300);function applyNumeric(e,t){let n;return n=l.Expression.isExpression(e)?(0,i.numeric)(e,t):a.Equation.isEquation(e)?e.copy().each(e=>l.Expression.isExpression(e)?(0,i.numeric)(e,t):e):p.Vector.isVector(e)?e.copy().each(e=>applyNumeric(e,t)):c.Matrix.isMatrix(e)?e.copy().each(e=>(0,i.numeric)(e,t)):s.Collection.isCollection(e)||o.Dictionary.isDictionary(e)||m.ValuesSet.isValuesSet(e)?e.copy().each(e=>applyNumeric(e,t)):e,n}},1683(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MultivariateSolver=void 0;const r=i(n(3110)),s=n(296),o=n(9009);t.MultivariateSolver=class MultivariateSolver{dedupTol;equations;gridPoints;h;lowerBound;maxIterations;tolerance;upperBound;variables;constructor(e,t,n={}){this.equations=e,this.variables=t,this.lowerBound=n.lowerBound??-10,this.upperBound=n.upperBound??10,this.gridPoints=n.gridPoints??5,this.maxIterations=n.maxIterations??100,this.tolerance=new r.default(n.tolerance??1e-12),this.h=new r.default(n.derivativeStep??1e-8),this.dedupTol=new r.default(n.deduplicationTolerance??1e-8)}evaluateSystem(e){const t={};for(let n=0;n<this.variables.length;n++){const i=e[n];t[this.variables[n]]=i.isFinite()?s.Expression.Number(i):i}const n=[];for(const e of this.equations)try{const i=e.evaluate(t);if(!s.Expression.isExpression(i))return null;n.push(i.getMultiplier().toDecimal())}catch{return null}return n}generateStartingPoints(){const e=this.variables.length,t=[],n=(this.upperBound-this.lowerBound)/(this.gridPoints-1),i=new Array(e).fill(0);for(;;){const s=[];for(let t=0;t<e;t++)s.push(new r.default(this.lowerBound+i[t]*n));t.push(s);let o=!0;for(let t=e-1;t>=0&&o;t--)i[t]++,i[t]<this.gridPoints?o=!1:i[t]=0;if(o)break}return t}isDuplicate(e,t){for(const n of t){let t=new r.default(0);for(let i=0;i<e.length;i++){const r=e[i].minus(n[i]).abs();r.greaterThan(t)&&(t=r)}if(t.lessThan(this.dedupTol))return!0}return!1}jacobian(e){const t=this.variables.length,n=this.equations.length,i=new Array(n).fill(null).map(()=>[]),s=this.h.times(2);for(let o=0;o<t;o++){const t=e.map(e=>new r.default(e)),a=e.map(e=>new r.default(e));t[o]=t[o].plus(this.h),a[o]=a[o].minus(this.h);const l=this.evaluateSystem(t),u=this.evaluateSystem(a);if(!l||!u)return null;for(let e=0;e<n;e++)i[e].push(l[e].minus(u[e]).div(s))}return new o.DecimalMatrix(i)}newtonRaphson(e){const t=e.map(e=>new r.default(e));for(let e=0;e<this.maxIterations;e++){const e=this.evaluateSystem(t);if(!e)return null;let n=new r.default(0);for(const t of e)n=n.plus(t.times(t));if(n=n.sqrt(),n.lessThan(this.tolerance))return t;const i=this.jacobian(t);if(!i)return null;const s=e.map(e=>e.neg()),a=o.DecimalMatrix.solve(i,s);if(!a)return null;for(let e=0;e<t.length;e++)t[e]=t[e].plus(a[e])}const n=this.evaluateSystem(t);if(n){let e=new r.default(0);for(const t of n)e=e.plus(t.times(t));if(e.sqrt().lessThan(this.tolerance))return t}return null}roots(){const e=[],t=this.generateStartingPoints();for(const n of t){const t=this.newtonRaphson(n);t&&!this.isDuplicate(t,e)&&e.push(t)}return e.map(e=>{const t=new Map;for(let n=0;n<this.variables.length;n++){const i=e[n];t.set(this.variables[n],i.isFinite()?s.Expression.Number(i):s.Expression.create(i))}return t})}}},1897(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.product=function product(...e){let t=(0,a.one)();for(const n of e)t=t.times(n);return t},t.sum=function sum(...e){let t=(0,a.zero)();for(const n of e)t=t.plus(n);return t},t.stripPower=stripPower,t.copyOver=function copyOver(e,t,n){if(n={omitMultiplier:!1,omitPower:!1,...n},e.multiplier&&!n.omitMultiplier&&(t.multiplier=s.Rational.makeCopy(e.multiplier)),void 0!==e.name&&(t.name=e.name),e.power&&!n.omitPower&&(t.power=o.Expression.create(e.power,void 0,!0)),e.args){t.args=[];for(const n of e.args)t.args.push(o.Expression.create(n,void 0,!0))}if(e.base&&(t.base=e.base.copy()),e.elements){t.elements={};for(const n in e.elements)t.elements[n]=o.Expression.create(e.elements[n],void 0,!0)}return t.type=e.type,t.value=e.value,t.precision=e.precision,t.deferred=e.deferred,t},t.toArrays=function toArrays(e,t){const n=t||{num:[],den:[]};function addMultiplier(e){n.num.push(o.Expression.Number(e.numerator)),1n!==e.denominator&&n.den.push(o.Expression.Number(e.denominator))}if(e.isNUM())addMultiplier(e.getMultiplier());else{addMultiplier(e.getMultiplier());const t=e.getPower();if(e.isProduct()){const t=e.elementsArray();for(const e of t)toArrays(e,n)}else{const i=stripPower(e.toUnitMultiplier());(t.getMultiplier().isNegative()?n.den:n.num).push(i)}n.power=toArrays(t.abs()),e.args&&(n.args=e.getArguments().map(e=>toArrays(e)))}return n},t.largestPower=function largestPower(e,...t){let n=e;for(const e of t)e.getPower().gt(n.getPower())&&(n=e);return n},t.assertPlainVariableAndGetString=function assertPlainVariableAndGetString(e){if(!e.isVAR())throw new i.UnexpectedInputError((0,i.message)("plainVariableExpected",{input:e.text()}));return e.value},t.getNumericOrAssumedValue=function getNumericOrAssumedValue(e){let t;if(e.isNUM())t=e;else{const n=(0,r.getAssumptionFor)(e);n&&n.isSingleton&&(t=n.getSingletonValue())}return t};const i=n(4703),r=n(6351),s=n(5584),o=n(296),a=n(6099);function stripPower(e){const t=e.copy();return delete t.power,t}},1997(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tableOfInverseTransforms=void 0;const i=n(2178),r=n(2292),s={"a1/x1^n1":e=>{const{n1:t}=e.references;if(!t.isZero()&&!t.isNegative())return e.fromPattern("(a1*t^(n1-1))/gamma(n1)")},"a1/((a2*x1^n1+a3)^n2)":e=>{const{n1:t,n2:n}=e.references;return t.isOne()?e.fromPattern("(a1*t^(n2-1)*e^((-a3/a2)*t))/(a2^n2*gamma(n2))"):t.eq(2)&&n.isOne()?e.fromPattern("(a1*sin((a3^(1/2)*t)/(a2^(1/2))))/(a2^(1/2)*a3^(1/2))"):t.eq(2)&&n.eq(2)?e.fromPattern("(a1*sin((a3^(1/2)*t)/(a2^(1/2))))/(2*a2^(1/2)*a3^(3/2))").minus(e.fromPattern("(a1*t*cos((a3^(1/2)*t)/(a2^(1/2))))/(2*a2*a3)")):void 0},"(a1*x1^n1)/((a2*x1^n2+a3)^n3)":e=>{const{n1:t,n2:n,n3:i}=e.references;if(n.eq(2)){if(t.isOne()){if(i.isOne())return e.fromPattern("(a1*cos((a3^(1/2)*t)/(a2^(1/2))))/a2");if(i.eq(2))return e.fromPattern("(a1*t*sin((a3^(1/2)*t)/(a2^(1/2))))/(2*a2^(3/2)*a3^(1/2))")}return t.eq(2)&&i.eq(2)?e.fromPattern("(a1*sin((a3^(1/2)*t)/(a2^(1/2))))/(2*a2^(1/2)*a3^(1/2))").plus(e.fromPattern("(a1*t*cos((a3^(1/2)*t)/(a2^(1/2))))/(2*a2)")):void 0}},"a1/((a2*(a3*x1^n1+a4)^n2+a5)^n3)":e=>{const{n1:t,n2:n,n3:i,a5:r}=e.references;if(t.isOne()&&n.eq(2))return r.sign()<0?i.isOne()?e.fromPattern("(a1*e^((-a4/a3)*t)*sinh((((-a5)^(1/2))*t)/(a2^(1/2)*a3)))/(a2^(1/2)*a3*((-a5)^(1/2)))"):i.eq(2)?e.fromPattern("(a1*e^((-a4/a3)*t)*((((-a5)^(1/2))*t*cosh((((-a5)^(1/2))*t)/(a2^(1/2)*a3)))/(a2^(1/2)*a3)-sinh((((-a5)^(1/2))*t)/(a2^(1/2)*a3))))/(2*a2^(1/2)*a3*((-a5)^(3/2)))"):void 0:i.isOne()?e.fromPattern("(a1*e^((-a4/a3)*t)*sin((a5^(1/2)*t)/(a2^(1/2)*a3)))/(a2^(1/2)*a3*a5^(1/2))"):i.eq(2)?e.fromPattern("(a1*e^((-a4/a3)*t)*(sin((a5^(1/2)*t)/(a2^(1/2)*a3))-(a5^(1/2)*t*cos((a5^(1/2)*t)/(a2^(1/2)*a3)))/(a2^(1/2)*a3)))/(2*a2^(1/2)*a3*a5^(3/2))"):void 0},"(a1*((a6*x1^n4+a7)^n5))/((a2*(a3*x1^n1+a4)^n2+a5)^n3)":e=>{const{n1:t,n2:n,n3:i,n4:r,n5:s,a3:o,a4:a,a5:l,a6:u,a7:c}=e.references;if(t.isOne()&&n.eq(2)&&r.isOne()&&s.isOne()&&c.times(o).eq(a.times(u)))return l.sign()<0?i.isOne()?e.fromPattern("(a1*a6*e^((-a4/a3)*t)*cosh((((-a5)^(1/2))*t)/(a2^(1/2)*a3)))/(a2*a3^2)"):i.eq(2)?e.fromPattern("(a1*a6*t*e^((-a4/a3)*t)*sinh((((-a5)^(1/2))*t)/(a2^(1/2)*a3)))/(2*a2^(3/2)*a3^3*((-a5)^(1/2)))"):void 0:i.isOne()?e.fromPattern("(a1*a6*e^((-a4/a3)*t)*cos((a5^(1/2)*t)/(a2^(1/2)*a3)))/(a2*a3^2)"):i.eq(2)?e.fromPattern("(a1*a6*t*e^((-a4/a3)*t)*sin((a5^(1/2)*t)/(a2^(1/2)*a3)))/(2*a2^(3/2)*a3^3*a5^(1/2))"):void 0},"(a1*(a6*x1^n4+a7)^n5)/((a2*(a3*x1^n1+a4)^n2+a5)^n3)":e=>{const{n1:t,n2:n,n3:i,n4:r,n5:s,a3:o,a4:a,a5:l,a6:u,a7:c}=e.references;if(t.isOne()&&n.eq(2)&&i.eq(2)&&r.isOne()&&s.eq(2)&&c.times(o).eq(a.times(u)))return l.sign()<0?e.fromPattern("(a1*a6^2*e^((-a4/a3)*t)*(sinh((((-a5)^(1/2))*t)/(a2^(1/2)*a3))+(((-a5)^(1/2))*t*cosh((((-a5)^(1/2))*t)/(a2^(1/2)*a3)))/(a2^(1/2)*a3)))/(2*a2^(3/2)*a3^3*((-a5)^(1/2)))"):e.fromPattern("(a1*a6^2*e^((-a4/a3)*t)*(sin((a5^(1/2)*t)/(a2^(1/2)*a3))+(a5^(1/2)*t*cos((a5^(1/2)*t)/(a2^(1/2)*a3)))/(a2^(1/2)*a3)))/(2*a2^(3/2)*a3^3*a5^(1/2))")},"a1/(a2*(a3*x1^n1+a4)^n2-a5)":e=>{const{n1:t,n2:n}=e.references;if(t.isOne()&&n.eq(2))return e.fromPattern("(a1*e^((-a4/a3)*t)*sinh((a5^(1/2)*t)/(a2^(1/2)*a3)))/(a2^(1/2)*a3*a5^(1/2))")},"(a1*(a6*x1^n3+a7)^n4)/(a2*(a3*x1^n1+a4)^n2-a5)":e=>{const{n1:t,n2:n,n3:i,n4:r}=e.references;if(t.isOne()&&n.eq(2)&&i.isOne()&&r.isOne())return e.fromPattern("(a1*e^((-a4/a3)*t)*cosh((a5^(1/2)*t)/(a2^(1/2)*a3)))/(a2*a3^2)")},"a1/((a2*(a3*x1^n1+a4)^n2-a5)^n3)":e=>{const{n1:t,n2:n,n3:i}=e.references;if(t.isOne()&&n.eq(2)&&i.eq(2))return e.fromPattern("(a1*e^((-a4/a3)*t)*(a5^(1/2)*t*cosh((a5^(1/2)*t)/(a2^(1/2)*a3))-a2^(1/2)*a3*sinh((a5^(1/2)*t)/(a2^(1/2)*a3))))/(2*a2*a3^2*a5^(3/2))")},"(a1*(a6*x1^n3+a7)^n4)/((a2*(a3*x1^n1+a4)^n2-a5)^n5)":e=>{const{n1:t,n2:n,n3:i,n4:r,n5:s}=e.references;if(t.isOne()&&n.eq(2)&&i.isOne()&&r.isOne()&&s.eq(2))return e.fromPattern("(a1*t*e^((-a4/a3)*t)*sinh((a5^(1/2)*t)/(a2^(1/2)*a3)))/(2*a2^(1/2)*a3*a5^(1/2))")},"(a1*((a2*(a3*x1^n1+a4)^n2+a5)^n3))/((a6*(a7*x1^n4+a8)^n5+a9)^n6)":e=>{const{n1:n,n2:i,n3:s,n4:o,n5:a,n6:l,_a2:u,a3:c,a4:m,_a6:p,a7:d,a8:g,_a9:h}=e.references;if(!(n.isOne()&&i.eq(2)&&s.isOne()&&o.isOne()&&a.eq(2)&&l.eq(2)))return;if(!c.eq(d)||!m.eq(g))return;const x=e.get("x1").text(),E=e.fromPattern("1/(a6*(a7*x1^n4+a8)^n5+a9)"),y=e.fromPattern("1/((a6*(a7*x1^n4+a8)^n5+a9)^2)"),v=t.tableOfInverseTransforms.lookup(new r.Pattern(E,[x]),0),P=t.tableOfInverseTransforms.lookup(new r.Pattern(y,[x]),0);return v&&P?e.fromPattern("(a1*a2)/a6").times(v).plus(e.fromPattern("a1*(a5-(a2*a9)/a6)").times(P)):void 0}};t.tableOfInverseTransforms=new i.LookupTable,t.tableOfInverseTransforms.addEntries(s)},2012(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.diff=diff;const i=n(296),r=n(6099),s=n(8300),o=n(7056),a=n(4703),l=n(8533);function diff(e,t,n){const u=(e=i.Expression.create(e)).variables();t??=i.Expression.Variable(u[0]),t=i.Expression.create(t);const c="number"==typeof n?i.Expression.create(n):n;if(t?.isNUM())throw new a.UnsupportedOperationError((0,a.message)("unsupportedOperation"));let m;if(0===u.length||!e.hasVariable(t.value)||e.isConstant())m=(0,r.zero)();else if(t&&!t.isVAR()||c&&!c.isInteger())m=i.Expression.toFunction(s.DIFF,[e,t,c]);else if(e.isEXP()){const n=(0,l.log)(e.getBase()),i=e.getPower(),r=diff(n.times(i),t);m=e.times(r)}else{const n=c?Number(c)-1:0,a=e.getMultiplier().times(e.getPower()),l=e.getPower().minus("1"),u=i.Expression.create(e.value),p=u.pow(l).times(a);if(u.isVAR())m=(0,r.one)();else if(u.isSum()){let e=(0,r.zero)();u.elementsArray().forEach(n=>{e=e.plus(diff(n,t))}),m=e}else if(u.isProduct())m=function productRule(e,t){const n=e.elementsArray();let i=(0,r.zero)();for(let e=0;e<n.length;e++){let r=diff(n[e],t);for(let t=0;t<n.length;t++)e!==t&&(r=r.times(n[t]));i=i.plus(r)}return i}(u,t);else if(u.isFunction()){const e=u.getArguments()[0],n=u.getMultiplier();switch(u.name){case s.LOG:m=(0,o._)(`(${n})/(${e})`);break;case s.COS:m=(0,o._)(`-sin(${e})`);break;case s.SIN:m=(0,o._)(`cos(${e})`);break;case s.TAN:m=(0,o._)(`sec(${e})^2`);break;case s.SEC:m=(0,o._)(`tan(${e})*sec(${e})`);break;case s.CSC:m=(0,o._)(`-cot(${e})*csc(${e})`);break;case s.COT:m=(0,o._)(`-csc(${e})^2`);break;case s.ACOS:m=(0,o._)(`-1/sqrt(1-(${e})^2)`);break;case s.ASIN:m=(0,o._)(`1/sqrt(1-(${e})^2)`);break;case s.ATAN:m=(0,o._)(`1/(1+(${e})^2)`);break;case s.ASEC:m=(0,o._)(`1/(sqrt(1-1/(${e})^2)*(${e})^2)`);break;case s.ACSC:m=(0,o._)(`-1/(sqrt(1-1/(${e})^2)*(${e})^2)`);break;case s.ACOT:m=(0,o._)(`-1/(1+(${e})^2)`);break;case s.COSH:m=(0,o._)(`sinh(${e})`);break;case s.SINH:m=(0,o._)(`cosh(${e})`);break;case s.TANH:m=(0,o._)(`sech(${e})^2`);break;case s.SECH:m=(0,o._)(`-sech(${e})*tanh(${e})`);break;case s.CSCH:m=(0,o._)(`-coth(${e})*csch(${e})`);break;case s.COTH:m=(0,o._)(`-csch(${e})^2`);break;case s.ASINH:m=(0,o._)(`1/sqrt(1+(${e})^2)`);break;case s.ACOSH:m=(0,o._)(`1/(sqrt(-1+(${e}))*sqrt(1+(${e})))`);break;case s.ATANH:m=(0,o._)(`1/(1-(${e})^2)`);break;case s.ASECH:m=(0,o._)(`-1/(sqrt(-1+1/(${e}))*sqrt(1+1/(${e}))*(${e})^2)`);break;case s.ACSCH:m=(0,o._)(`-1/(sqrt(1+1/(${e})^2)*(${e})^2)`);break;case s.ACOTH:m=(0,o._)(`1/(1-(${e})^2)`);break;case s.ABS:m=(0,o._)(`sign(${e})`);break;case s.CI:m=(0,o._)(`cos(${e})/${e}`);break;case s.CHI:m=(0,o._)(`cosh(${e})/${e}`);break;case s.SI:m=(0,o._)(`sin(${e})/${e}`);break;case s.SHI:m=(0,o._)(`sinh(${e})/${e}`);break;case s.EI:m=(0,o._)(`e^(${e})/${e}`);break;case s.LI:m=(0,o._)(`1/${s.LOG}(${e})`);break;case s.ERF:m=(0,o._)(`(2*e^(-(${e})^2))/sqrt(pi)`);break;case s.SGN:m=(0,r.zero)()}m&&(m=m.times(diff(e,t)))}m&&(m=m.times(p)),n>0&&m&&(m=diff(m,t,i.Expression.Number(n)))}return m||i.Expression.toFunction(s.DIFF,[e,t,c])}},2116(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Polynomial=void 0;const r=i(n(3110)),s=n(8891),o=n(8015),a=n(6441),l=n(4703),u=n(7741),c=n(5869),m=n(6056),p=n(296),d=n(6099),g=n(8300),h=n(5584),x=n(5640),E=n(9565);class Polynomial{static defaultOrdering="lex";dataType=g.POLYNOMIAL;expression;isMultivariate;ordering="none";terms;variables;constructor(e,t,n){if(Polynomial.isPolynomial(e))this.expression=new p.Expression(e.expression),this.variables=[...e.variables],this.ordering=e.ordering,this.isMultivariate=e.isMultivariate,this.terms=e.terms.map(e=>e.copy());else{n??=Polynomial.defaultOrdering;let i,r=p.Expression.create(e);if(!p.Expression.isExpression(r))throw new l.UnsupportedOperationError((0,l.message)("unsupportedType",{type:typeof r}));if(!r.isPolynomialLike())throw new l.PolynomialError((0,l.message)("notAPolynomial"));(r.value.includes("(")||r.isSum()&&r.getPower().gt("1"))&&(r=(0,u.expand)(r)),this.expression=r,t?i=t:(i=r.variables(),(0,c.isSorted)(i)||i.sort()),this.variables=i,this.isMultivariate=this.variables.length>1,this.terms=[],r.coeffs(...this.variables).each((e,t)=>{this.terms.push(new x.Term(e,t,this.variables))}),this.variables=this.variables||[],this.order(n)}}static fromArray(e,t){const n=[];let i,r=!1;for(const i of e){const e=p.Expression.isExpression(i)?i:p.Expression.create(String(i));n.push(e),t.some(t=>e.hasVariable(t))&&(r=!0)}if(r)i=Polynomial.fromArrayCanonicalized(n,t);else{i=new Polynomial((0,d.zero)(),t),i.terms=[];for(let e=0;e<n.length;e++){const r=n[e];if(!r.isZero()){const n={};for(const i of t)n[i]=e;i.terms.push(new x.Term(new p.Expression(r),n,t))}}i.order(),i.updateExpression()}return i}static fromArrayCanonicalized(e,t){let n=(0,d.one)();for(const e of t)n=n.times(p.Expression.Variable(e));let i=(0,d.zero)();for(let t=0;t<e.length;t++)i=i.plus(e[t].times(n.pow(t)));return new Polynomial(i,t)}static grevlex(e,t){return e.getTotalPower()===t.getTotalPower()?Polynomial.revlex(e,t):e.getTotalPower()>t.getTotalPower()?-1:1}static grlex(e,t){return e.getTotalPower()===t.getTotalPower()?Polynomial.lex(e,t):e.getTotalPower()>t.getTotalPower()?-1:1}static isPolynomial(e){return(0,a.isNerdamerNativeType)(e,g.POLYNOMIAL)}static lex(e,t){const n=e.difference(t);for(let e=0;e<n.length;e++)if(0!==n[e])return-1===Math.sign(n[e])?1:-1;return 1}static polyArraySort(e,t){let n;switch(t??=Polynomial.defaultOrdering,e=e.map(e=>e.order(t)),t){case"lex":n=Polynomial.lex;break;case"grevlex":n=Polynomial.grevlex;break;case"revlex":n=Polynomial.revlex;break;default:n=Polynomial.grlex}return e=e.sort((e,t)=>n(e.LT(),t.LT()))}static rationalToString(e){return 1n===e.denominator?e.numerator.toString():`(${e.numerator}/${e.denominator})`}static revlex(e,t){const n=e.difference(t);for(let e=n.length-1;e>=0;e--)if(0!==n[e])return Math.sign(n[e]);return-1}static toExpression(e){return Polynomial.isPolynomial(e)?e.getExpression():p.Expression.create(e)}static toPolynomial(e,t,n){return Polynomial.isPolynomial(e)?e.ordering!==t&&e.order(t):e=new Polynomial(e,n,t||Polynomial.defaultOrdering),e}append(e,t){const n=new Polynomial(this);if(n.variables=(0,c.arrayAddUnique)(e.variables,n.variables),n.variables&&e.variables&&n.variables.length>e.variables.length&&n.variables.sort(),n.isMultivariate=n.variables.length>1,Polynomial.isPolynomial(e))for(const i of e.terms)n.appendTerm(i,t);else n.appendTerm(e,t);return 0!==n.terms.length&&n.updateExpression(),0===n.terms.length?new Polynomial("0"):n}appendTerm(e,t){for(let n=0;n<this.terms.length;n++){const i=this.terms[n];if(i.canAddOrSubtract(e))return i.coeff=i.coeff[t](e.coeff),void(i.coeff.isZero()&&(0,s.remove)(this.terms,i))}const n=e.copy();"minus"===t&&(n.coeff=n.coeff.neg()),this.terms.push(n),this.order()}monomialGCDTerm(e){const t=[...new Set([...this.variables,...e.variables])].sort(),n=this.commonTermVariables(),i=e.commonTermVariables(),r={};for(const e of t){const t=n[e]??0,s=i[e]??0,o=Math.min(t,s);o>0&&(r[e]=o)}return new x.Term("1",r,t)}updateExpression(){let e=(0,d.zero)();for(const t of this.terms)e=e.plus(t.copy().getExpression());this.expression=e}at(e){if(this.variables.length>1)throw new l.UnsupportedOperationError((0,l.message)("univariatePolynomialOnly"));let t=0;const n=this.variables[0];for(let i=0;i<this.terms.length;i++){const r=this.terms[i],s=r.powers[n];t+=Math.pow(e,s)*Number(r.coeff)}return t}coeffs(e){return(0,m.coeffs)(this.getExpression(),e?[e]:this.variables)}commonTermVariables(){const e={};for(const t of this.variables){let n;for(const e of this.terms){const i=e.deg(t);if(0===i){n=void 0;break}n=void 0===n?i:Math.min(n,i)}n&&(e[t]=n)}return e}constantTerm(){const e=this.terms.at(-1);return e&&e.isConstant()?e.coeff:(0,d.zero)()}content(){const e=this.numericCoeffs();return 0===e.length?h.Rational.create("1"):h.Rational.GCD(...e)}deg(e){let t=0;for(const n of this.terms){const i=void 0===e?n.getTotalPower():n.deg(e);t=Math.max(t,i)}return t}diff(e,t=1){if(e=e||this.variables[0],0===t)return new Polynomial(this);if(!e)return new Polynomial("0");const n=[];for(const i of this.terms){const r=i.diff(e,t);r.isZero()||(r.variables=[...this.variables],n.push(r))}if(0===n.length)return new Polynomial("0");const i=new Polynomial("0",this.variables,this.ordering);i.terms=[];for(const e of n)i.terms.push(e);return i.order(this.ordering),i.updateExpression(),i}div(e){return(0,E.divide)(this,e).map(e=>new Polynomial(e))}divides(e){return this.LT().divides(e.LT())}eq(e){return this.minus(e).isZero()}evaluate(e){const t=this.variables.filter(t=>!(t in e)),n={};for(const t in e){const i=e[t];h.Rational.isRational(i)?n[t]=i:n[t]=h.Rational.create(i.toString())}const i=new Map;for(const e of this.terms){let r=e.coeff.getMultiplier();const s={};for(const t of this.variables){const i=e.deg(t);if(t in n){if(0!==i){const e=n[t].pow(i.toString());r=r.times(e)}}else 0!==i&&(s[t]=i)}if(r.isZero())continue;const o=t.length>0?t.map(e=>`${e}:${s[e]||0}`).join(","):"constant",a=i.get(o);a?a.coefficient=a.coefficient.plus(r):i.set(o,{coefficient:r,powers:s})}let r;if(0===i.size)r=new Polynomial((0,d.zero)());else if(0===t.length){const e=i.get("constant"),t=e?e.coefficient:h.Rational.create("0");r=new Polynomial(p.Expression.Number(t.value))}else{r=new Polynomial((0,d.zero)(),t,this.ordering),r.terms=[];for(const e of i.values())e.coefficient.isZero()||r.terms.push(new x.Term(p.Expression.Number(e.coefficient.value),{...e.powers},t));r.order(this.ordering),r.updateExpression()}return r}evaluateToRational(e){for(const t of this.variables)if(!(t in e))throw new l.UnsupportedOperationError((0,l.message)("unknownVariable",{variable:t}));const t={};for(const n in e){const i=e[n];h.Rational.isRational(i)?t[n]=i:t[n]=h.Rational.create(i.toString())}let n=h.Rational.create("0");for(const e of this.terms){let i=e.coeff.getMultiplier();for(const n of this.variables){const r=e.deg(n);0!==r&&(i=i.times(t[n].pow(r.toString())))}n=n.plus(i)}return n}gcdFree(e=!1,t=!1){const n=t?this:new Polynomial(this);if(n.isConstant())return n;let i,r=n.content();-1===n.LC().sign()&&(r=r.neg()),e&&(i=n.commonTermVariables());for(let e=0;e<n.terms.length;e++){const t=n.terms[e];if(i)for(const e in i)t.powers[e]-=i[e];const s=t.coeff.getMultiplier().div(r);t.coeff=p.Expression.fromRational(s)}return n.updateExpression(),n}getExpression(){return this.expression}grevlexSort(){return this.terms.sort((e,t)=>Polynomial.grevlex(e,t)),this.ordering="grevlex",this}grlexSort(){return this.terms.sort((e,t)=>Polynomial.grlex(e,t)),this.ordering="grlex",this}isConstant(){return 1===this.terms.length&&this.terms[0].isConstant()}isZero(){return 0===this.terms.length||this.LT().isZero()}LC(){return this.LT().coeff}lexSort(){return this.terms.sort((e,t)=>Polynomial.lex(e,t)),this.ordering="lex",this}LM(){const e=this.LT();return new x.Term("1",{...e.powers},[...e.variables])}LT(){return this.terms[0]}maxVariableFrequency(){const e=this.variableFrequency();let t=[];for(const n in e){const i=e[n].count;!t[0]||t[0].count<i?t=[e[n]]:t[0].count===i&&t.push(e[n])}return(0,o.arrayToObject)(t,e=>e.variable)}minus(e){return this.append(e,"minus")}mod(e){e=p.Expression.create(e);const t=this.coeffs();return t.each((n,i)=>{t.coeffs[i]=n.mod(e)}),t}monic(){const e=new Polynomial(this),t=this.LT();if(t&&!t.isConstant()){const n=t.coeff;for(const t of e.terms)t.coeff=t.coeff.div(n);e.updateExpression()}return e}multideg(){return this.terms[0].multidegArray}numericCoeffs(){return this.terms.map(e=>e.coeff.getMultiplier())}order(e){if(this.variables.length<2)this.sort(),this.ordering="deg";else switch(e&&(this.ordering=e),this.ordering){case"lex":this.lexSort();break;case"grevlex":this.grevlexSort();break;case"revlex":this.revlexSort();break;default:this.grlexSort()}return this}plus(e){return this.append(e,"plus")}pow(e){return new Polynomial(this.getExpression().pow(e),void 0,this.ordering)}revlexSort(){return this.terms.sort((e,t)=>Polynomial.revlex(e,t)),this.ordering="revlex",this}sort(){return this.terms.sort((e,t)=>t.getTotalPower()>e.getTotalPower()?1:-1),this}stripMonomialGCD(e){const t=this.monomialGCDTerm(e),n=new Polynomial(this),i=new Polynomial(e);for(let e=0;e<n.terms.length;e++)n.terms[e]=n.terms[e].div(t);for(let e=0;e<i.terms.length;e++)i.terms[e]=i.terms[e].div(t);const r=new Polynomial(t.getExpression());return n.updateExpression(),i.updateExpression(),{mGCD:r,p:n,q:i}}text(){if(0===this.terms.length||1===this.terms.length&&this.terms[0].isZero())return"0";const e=[];for(const t of this.terms){const n=t.text(this.variables);"0"!==n&&e.push(n)}return e.join("+").replace(/\+-/g,"-")}times(e){let t;if(x.Term.isTerm(e)){t=new Polynomial(this),t.variables=(0,c.arrayAddUnique)(t.variables,e.variables),(0,c.isSorted)(this.variables)&&t.variables.sort(),t.isMultivariate=t.variables.length>1;for(let n=0;n<t.terms.length;n++)t.terms[n]=t.terms[n].times(e);t.updateExpression()}else t=new Polynomial(this.getExpression().times(e.getExpression()),void 0,this.ordering);return t}toArray(e=!1,t){const n=[],i=Number(this.deg(t)),r=this.coeffs(t);for(let e=0;e<=i;e++)n.push(r.hasPower(e)?r.getPower(e):(0,d.zero)());return e?n.map(e=>Number(e)):n}toBigIntArray(e=!0,t){return this.toArray(!1,t).map(t=>{if(e&&!t.isInteger())throw new Error((0,l.message)("integerRequired"));return t.getMultiplier().numerator})}toDecimalArray(){return this.toArray().map(e=>new r.default(e.text()))}toString(){return this.text()}variableFrequency(){const e={};for(const t of this.terms)for(const n in t.powers){let i=e[n];i||(e[n]=i={variable:n,count:0,deg:0});const r=t.powers[n];0!==r&&(i.count++,i.deg+=r)}return e}}t.Polynomial=Polynomial},2178(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LookupTable=void 0,t.LookupTable=class LookupTable{_entries=new Map;addEntry(e,t){const n=this._entries.get(e);n?n.push(t):this._entries.set(e,[t])}get(e){return this._entries.get(e)}addEntries(e){for(const t in e){const n=e[t];this.addEntry(t,n)}}lookup(e,t){const n=this.get(e.patternString);if(n)for(const i of n){const n=i(e,t);if(n)return n}}set(e,t){const n=this._entries.get(e);return!!t&&(n?.push(t),!0)}}},2212(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tryIntegrationByParts=function tryIntegrationByParts(e,t,n,s=0,a=0){if(!e.isProduct())return;if(a>=4)return;const p=e.elementsArray(),d=[];let g=e.getMultiplier(!0);for(let e of p)if(e.hasVariable(t)){const t=e.getMultiplier(!0);t.isOne()||(g=g.times(t),e=e.div(t)),d.push(e)}else g=g.times(e);if(d.length>2){const e=function tryMergeDerivativePair(e,t){if(e.length<3)return;const n=i.Expression.create(t);for(let i=0;i<e.length;i++){const r=e[i],s=(0,l.diff)(r,n);if(!s.isFunction(o.DIFF))for(let n=0;n<e.length;n++){if(n===i)continue;let o;for(let t=0;t<e.length;t++)t!==i&&t!==n&&(o=o?o.times(e[t]):e[t]);if(o&&!s.div(o).hasVariable(t))return[r,e[n]]}}}(d,t);e&&(d.length=0,d.push(...e))}if(2!==d.length)return;const h=liatePriority(d[0]),x=liatePriority(d[1]);if(h<0||x<0)return;let E,y;h>=x?(E=d[0],y=d[1]):(E=d[1],y=d[0]);const v=h>=x?h:x;if(function isCyclicPair(e,t,n,i){if(e===t&&(e===c||e===u))return!0;if(e===u&&t===c||e===c&&t===u){const t=e===c?n:i;if(t.isFunction()){const e=t.name;if(e!==o.SIN&&e!==o.COS)return!0}}return!1}(h,x,E,y))return;const P=(0,l.diff)(E,i.Expression.create(t));if(P.isFunction(o.DIFF))return;const w=n(y,t,s);if(w.isFunction(o.INTEGRATE))return;const b=g.times(E).times(w),M=g.times(w).times(P);if(!function isProgress(e,t,n,i){if(n===m){const n=maxAlgebraicDegree(e,i);return maxAlgebraicDegree(t,i)<n}return functionCount(t)<functionCount(e)}(e,M,v,t))return;const A=n(M,t,s);let T;if(A.isFunction(o.INTEGRATE)){const e=tryIntegrationByParts(M,t,n,s+1,a+1);void 0!==e&&(T=b.plus(e.times((0,r.minusOne)())))}else T=b.plus(A.times((0,r.minusOne)()));return T};const i=n(296),r=n(6099),s=n(652),o=n(8300),a=n(8533),l=n(2012),u=0,c=1,m=2,p=3,d=4;function maxAlgebraicDegree(e,t){let n;if(e.isVAR()&&e.hasVariable(t))n=e.getPower();else if(e.isProduct()){let i=(0,r.zero)();for(const n of e.elementsArray())if(n.isVAR()&&n.hasVariable(t)){const e=n.getPower();i=(0,a.max)(i,e)}n=i}else if(e.isSum()){let i=(0,r.zero)();e.each(e=>{i=(0,a.max)(i,maxAlgebraicDegree(e,t))}),n=i}return n??(0,r.zero)()}function functionCount(e){let t=0;return e.isFunction()&&(t=1),(e.isProduct()||e.isSum())&&e.each(e=>{t+=functionCount(e)}),t}function liatePriority(e){if(e.isVAR())return m;if(e.isEXP())return u;if(e.isFunction()){const t=e.name;if(t===o.LOG||t===o.LN)return d;if((0,s.isInverseTrig)(e))return p;if((0,s.isTrig)(e))return c;if((0,s.isHyperbolicTrig)(e))return c}return-1}},2292(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Pattern=void 0;const i=n(8891),r=n(296),s=n(6099),o=n(8300),a=n(4703),l=n(5190);class Pattern extends l.BaseConverter{allEqualArguments=void 0;args=[];c;constCount=0;expression;multiplier="";p;powerCount=0;referenceMap={};reuseReferences;v;variables={};patternString="";references={};stack=[];constructor(e,t=[],n){super(),this.setMode("text"),this.expression=r.Expression.create(e);const i={constantSymbol:"a",powerSymbol:"n",variableSymbol:"x",reuseReferences:!1,...n};this.v=i.variableSymbol,this.p=i.powerSymbol,this.c=i.constantSymbol,this.reuseReferences=i.reuseReferences,this.initializeVariables(t),this.patternString=this.convert(this.expression,i)}static showStructure(e,t="x"){let n=`Input: ${e}\n`;const i=new Pattern(e,[t]);n+=`patternString: ${i.patternString}\n`,n+="references: {\n";for(const e in i.references)n+=`\t${e}: ${i.references[e]}\n`;return n+="}",n}convertPower(e,t,n){return e.isEXP()?this.inBrackets(this.convert(t,{...n,ignoreMultiplier:!1})):!this.hasAsVariable(e)||e.isProduct()?"":this.createConstantReference(t,!0)}createConstantReference(e,t=!1){const n=e.isNUM(),i=`${t?"pow":"cnt"}_${e.text()}`;if(!n){const e=this.referenceMap[i];if(e)return e}const r=t?this.nextPower(e):this.nextConstant(e);return this.addReference(r,e),n||(this.referenceMap[i]=r),r}createVariableReference(e,t){const n=this.variables[e.value];return this.addReference(n,e),n}finalizePowerAndInput(e,t,n){let i=t.toLinearAndUnitMultiplier();return t.isEXP()&&!i.isEXP()&&this.hasAsVariable(e)&&(i=r.Expression.toEXP(i,(0,s.one)())),[e,i]}hasAsVariable(e){return e.isVAR()?!!this.variables[e.value]:Object.keys(this.variables).some(t=>e.hasVariable(t))}isBracketed(e){return/^\(.+\)$/.test(e)}multiplyToMultiplier(e){this.references[this.multiplier]=this.references[this.multiplier].times(e)}requiresMultiplicationSymbol(e){return!0}setMultiplier(e,t,n,i){const s=this.createConstantReference(new r.Expression(e));this.multiplier=s,t[0]=s}toFraction(e,t){const wrapIfNeeded=e=>/[*+]/.test(e)&&!this.isBracketed(e)?this.inBrackets(e):e;return`${wrapIfNeeded(e)}/${wrapIfNeeded(t)}`}value(e,t,n,i){const r=["",""],s=t?1:0;if(e.isNUM())return r;if(!this.hasAsVariable(e)&&!e.isEXP())return this.multiplyToMultiplier(e),r;if(e.isEXP()){const t=e.getBase();r[s]=this.inBrackets(this.convert(t,{...i,ignoreMultiplier:!1}))}else if(e.isInf())r[s]=o.INFINITY[0];else if(e.elements||e.args){if(e.isFunction())r[s]=this.formatFunctionCall(e,i);else if(e.isSum())r[s]=this.handlePatternSum(e,i);else if(e.isProduct())return this.handlePatternProduct(e,t,i)}else r[s]=this.createVariableReference(e,i);return r}addReference(e,t){this.references[e]||(this.references[e]=t)}formatFunctionCall(e,t){const n=e.getArguments();this.args.push(n.map(e=>e.text()).join(","));const i=n.map(e=>this.convert(e,{...t,ignoreMultiplier:!1})).join(", ");return`${e.name}${this.inBrackets(i)}`}getReferenceFromMap(e,t=!1){if(e&&!e.isNUM()){const n=`${t?"pow":"cnt"}_${e.text()}`;return this.referenceMap[n]}}handlePatternProduct(e,t,n){const i=this.getMultiplicationSymbol(),r=[],s=[];for(let i of e.elementsArray()){if(!this.hasAsVariable(i)){this.multiplyToMultiplier(i);continue}i.isFunction(o.WRAP)&&(i=i.getArguments()[0]);const e=i.getPower().sign(),a=t?-1!==e:-1===e,l=a?s:r;a&&!t&&(i=i.invert());let u=this.convert(i,{...n,ignoreMultiplier:!0});i.isSum()&&i.isLinear()&&"text"===this.mode&&(u=this.inBrackets(u)),l.push(u)}return[r.join(i),s.join(i)]}handlePatternSum(e,t){let n=(0,s.zero)();const i=e.elementsArray(),r=[];for(const e of i)this.hasAsVariable(e)?r.push(this.convert(e,{...t,ignoreMultiplier:!1})):n=n.plus(e);return n.isZero()||r.push(this.createConstantReference(n)),this.inBrackets(r.join("+"))}initializeVariables(e){let t=1;e.slice().sort().forEach(e=>{this.variables[e]=this.v+t++})}nextConstant(e){const t=this.getReferenceFromMap(e,!1);return this.reuseReferences&&t?t:`${this.c}${++this.constCount}`}nextPower(e){const t=this.getReferenceFromMap(e,!0);return this.reuseReferences&&t?t:`${this.p}${++this.powerCount}`}argumentsMatch(){return void 0===this.allEqualArguments&&(this.allEqualArguments=(0,i.allEqual)(this.args)),this.allEqualArguments}equal(e,t){if("string"==typeof e)return this.get(e).eq(t);if(0==e.length)return!1;for(let n=0;n<e.length;n++)if(!this.get(e[n]).eq(t))return!1;return!0}fromPattern(e){return r.Expression.create(e,this.references)}get(e){const t=this.references[e];if(!t)throw new a.MissingReferenceError((0,a.message)("missingReference",{ref:e}));return t}}t.Pattern=Pattern},2295(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.solve=function solve(e,t,n){const u=new d.SolutionSet;let m=!1;try{const{expression:n,x:p}=(0,h.prepareSolverInputs)(e,t);m=n.hasDecimal();const x=n.variables();if(n.isZero())u.addSolution((0,a.all)(),n,p),u.solutionsType="symbolic";else if(n.isVAR()||!x.includes(p)&&!n.isNUM())u.addSolution((0,a.zero)(),n,p),u.solutionsType="symbolic";else{const e=n.isSum()&&n.elementsArray().some(e=>{let t=e.hasVariable(p)&&e.getPower().eq((0,a.half)());if(!t&&e.isProduct()&&e.hasVariable(p)){const n=e.elementsArray().filter(e=>e.hasVariable(p));t=1===n.length&&n[0].getPower().eq((0,a.half)().neg())}return t}),t=n.isPolynomialLike()?n.coeffs(p).toArray():void 0;let m;if(t){const e=t.length-1,n=t.some(e=>e.variables().length>0);if(e>4&&n&&!t[0].isZero()&&t.slice(1,e).every(e=>e.isZero())){const n=o.Expression.create(e),i=(0,a.one)().div(n),r=t[0].neg().div(t[e]),s=o.Expression.toEXP(r,i),u=(0,a.two)().times(o.Expression.Variable(l.PI_NAME));m=[];for(let t=0;t<e;t++){let e=(0,a.one)();if(t>0){const i=u.copy().times(o.Expression.create(t)).div(n);e=(0,c.cos)(i).plus((0,c.sin)(i).times(o.Expression.Img()))}m.push(s.copy().times(e))}}}const h=3===t?.length&&t[0].isZero()?(0,r.factorCommonPower)(n):void 0,x=h?.isProduct()?h.elementsArray():void 0,E=e?new g.SymbolicSolver(n,p).solve():void 0;let y,v;if(!n.isPolynomialLike())try{const e=(0,s.toCommonDenominator)(n),t=e.getNumerator().expand(),i=e.getDenominator().expand();!i.isOne()&&t.isPolynomialLike()&&i.isPolynomialLike()&&(y=t,v=i)}catch{}if(m){const e=new d.SolutionSet(m);e.solutionsType="symbolic",u.addSolutions(e,n,p)}else if(x)u.addSolution((0,a.zero)(),n,p),u.solutionsType="symbolic",u.addSolutions(calculateSolutions(x,p),n,p);else if(E&&!E.unsolved){const e=new d.SolutionSet(E.solutions);e.solutionsType="symbolic",u.addSolutions(e,n,p)}else if(y&&v){const e=calculateSolutions([v],p);u.exclude(e),u.addSolutions(calculateSolutions([y],p),n,p)}else{const e=(0,i.factorExpressionParts)(n),t=calculateSolutions(e.denominator,p);u.exclude(t);const r=calculateSolutions(e.numerator,p);u.addSolutions(r,n,p)}}}catch(e){}return m&&u.each(e=>(e.getMultiplier().asDecimal=!0,e)),u};const i=n(2724),r=n(6117),s=n(8989),o=n(296),a=n(6099),l=n(8300),u=n(2116),c=n(1649),m=n(7176),p=n(2646),d=n(1526),g=n(8520),h=n(205);function calculateSolutions(e,t){const n=new d.SolutionSet,i=e.map(e=>{let i=e;if(e.isEXP()&&e.getBase().isE())i=(0,a.zero)();else if(e.hasVariable(t)){let r=new g.SymbolicSolver(e,t).solve();if(r.unsolved&&e.isPolynomialLike()&&e.getPower().gt(4)){const n=e.toLinearAndUnitMultiplier();r=new g.SymbolicSolver(n,t).solve()}if(!r.unsolved){const s=new d.SolutionSet(r.solutions);s.solutionsType="symbolic",n.addSolutions(s,e,t),i=(0,a.zero)()}}return i}).filter(e=>!e.eq((0,a.zero)())).map(e=>{let i=e;const r=e.variables();if(1===r.length&&r[0]===t&&e.isPolynomialLike()){const r=new p.PolynomialSolver(new u.Polynomial(e),t).roots();if(r.length>0){const e=new d.SolutionSet(r.map(e=>e.evaluate()));e.solutionsType="numeric",n.append(e)}i=(0,a.zero)()}return i}).filter(e=>!e.eq((0,a.zero)()));for(const e of i){const i=e.variables(),r={method:"Brent"};if(1===i.length&&i[0]===t){const i=new m.FunctionSolver(e,t,r).roots();if(i.length>0){const e=new d.SolutionSet(i);e.solutionsType="numeric",n.append(e)}}}return n}},2332(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assertEQ=function assertEQ(e,t){return assertRelation(e,t,"=")},t.assertGT=function assertGT(e,t){return assertRelation(e,t,">")},t.assertGTE=function assertGTE(e,t){return assertRelation(e,t,">=")},t.assertLT=function assertLT(e,t){return assertRelation(e,t,"<")},t.assertLTE=function assertLTE(e,t){return assertRelation(e,t,"<=")};const i=n(4703),r=n(296),s=n(6351),o=n(2446);function assertRelation(e,t,n){let a,l;if(r.Expression.isExpression(t)&&t.isNUM())a=t.getMultiplier();else if(r.Expression.isExpression(t)&&t.isPosInf())a=1/0;else{if(!r.Expression.isExpression(t)||!t.isNegInf())throw new i.UnexpectedInputError((0,i.message)("wrongInput",{expected:"a real numeric value",received:String(t)}));a=-1/0}return l="="===n?o.Assumption.exactly(a):">"===n?o.Assumption.atLeast(a,!1):">="===n?o.Assumption.atLeast(a,!0):"<"===n?o.Assumption.atMost(a,!1):o.Assumption.atMost(a,!0),(0,s.assume)(String(e),l),e}},2348(e,t){"use strict";function fresnelIntegral(e,t){const n=[1,-3,105,-10395],i=[1,-15,945,-135135],r=.5;let s;if(Number.isNaN(e))s=NaN;else if(Number.isFinite(e))if(0===e)s=0;else{const o=e<0?-1:1;e=Math.abs(e);const a=Math.PI*e*e*r,l=0!==t;if(e>=8){const t=1/(Math.PI*Math.PI*e**4),[u,c,m,p]=n,[d,g,h,x]=i,E=(u+c*t+m*t**2+p*t**3)/(Math.PI*e),y=(d+g*t+h*t**2+x*t**3)/(Math.PI**2*e**3);s=o*(l?r-E*Math.cos(a)-y*Math.sin(a):r+E*Math.sin(a)-y*Math.cos(a))}else{const t=l?e=>Math.sin(Math.PI*e*e*r):e=>Math.cos(Math.PI*e*e*r),n=Math.max(1,Math.ceil(2*e));let i=0,a=0;for(let s=0;s<n;s++){const o=e*(s+1)/n,l=(a+o)*r,u=t(a),c=t(l),m=t(o),p=[[a,o,u,c,m,(o-a)/6*(u+4*c+m),0]];for(;p.length>0;){const e=p.pop(),[s,o,a,l,u,c,m]=e,d=(s+o)*r,g=(d+o)*r,h=t((s+d)*r),x=t(g),E=(d-s)/6*(a+4*h+l),y=(o-d)/6*(l+4*x+u),v=E+y;m>=20||Math.abs(v-c)<=15e-13/n?i+=v+(v-c)/15:(p.push([d,o,l,x,u,y,m+1]),p.push([s,d,a,h,l,E,m+1]))}a=o}s=o*i}}else s=Math.sign(e)*r;return s}Object.defineProperty(t,"__esModule",{value:!0}),t.fresnelIntegral=fresnelIntegral,t.fresnelS=function fresnelS(e){return fresnelIntegral(e,1)},t.fresnelC=function fresnelC(e){return fresnelIntegral(e,0)}},2446(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Assumption=void 0;const r=i(n(3110)),s=n(6441),o=n(296),a=n(8300),l=n(5584);function isIdentChar(e){return/[A-Za-z0-9_]/.test(e)}function normalizeAssumptionValue(e){let t,n;return l.Rational.isRational(e)?(n=l.Rational.makeCopy(e),t=n.toDecimal()):(t="number"==typeof e||"string"==typeof e?new r.default(e):e,t.isFinite()&&(n=l.Rational.create(t.toString()))),{value:t,exact:n}}function compareBoundValues(e,t,n,i){let r;if(e.isFinite()&&n.isFinite()){const s=t??l.Rational.create(e.toString()),o=i??l.Rational.create(n.toString());r=s.lt(o)?-1:s.gt(o)?1:0}else r=e.eq(n)?0:e.lt(n)?-1:1;return r}function compareNumericExpressionToBound(e,t,n){let i;if(e.isNegInf())i=t.eq(-1/0)?0:-1;else if(e.isPosInf())i=t.eq(1/0)?0:1;else if(e.isNUM())if(t.isFinite()){const r=n??l.Rational.create(t.toString()),s=e.getMultiplier();i=s.lt(r)?-1:s.gt(r)?1:0}else i=t.lt(0)?1:-1;return i}class Assumption{endExact;startExact;dataType=a.ASSUMPTION;end;isSingleton;start;constructor(e,t,n=!0,i=!0){const r=normalizeAssumptionValue(e),s=normalizeAssumptionValue(t),o=r.value,a=s.value,l=o.isFinite()&&!!n,u=a.isFinite()&&!!i,c=o.isNaN()||a.isNaN()?void 0:compareBoundValues(o,r.exact,a,s.exact);if(void 0===c||c>0||0===c&&(!l||!u))throw new Error(`Invalid interval: (${o}, ${a})`);this.start=Object.freeze({value:o,inclusive:l}),this.end=Object.freeze({value:a,inclusive:u}),this.startExact=r.exact,this.endExact=s.exact,this.isSingleton=0===c&&this.start.inclusive&&this.end.inclusive,Object.freeze(this)}static atLeast(e,t=!0){return new Assumption(e,1/0,!!t,!1)}static atMost(e,t=!0){return new Assumption(-1/0,e,!1,!!t)}static exactly(e){return new Assumption(e,e,!0,!0)}static isAssumption(e){return(0,s.isNerdamerNativeType)(e,a.ASSUMPTION)}static parse(e){if("string"!=typeof e)throw new Error(`Invalid assumption: "${String(e)}"`);const t=e.replace(/\s+/g,"");if(!t)throw new Error(`Invalid assumption: "${e}"`);if(t.length<3)throw new Error(`Invalid assumption: "${e}"`);let n=0;if(!function isIdentStart(e){return/[A-Za-z_]/.test(e)}(t[n]))throw new Error("Expected identifier");let i=n+1;for(;i<t.length&&isIdentChar(t[i]);)i++;const s=t.slice(n,i);n=i;let o="";for(;n<t.length;){const e=t[n];if("<"!==e&&">"!==e&&"="!==e)break;o+=e,n++}if(!o)throw new Error("Missing operator");const a=t.slice(n);if(!a)throw new Error("Missing value");const l=function parseNumber(e){const t=String(e).toLowerCase();if("inf"===t||"infinity"===t||"+inf"===t||"+infinity"===t)return new r.default(1/0);if("-inf"===t||"-infinity"===t)return new r.default(-1/0);const n=new r.default(t);if(n.isNaN())throw new Error(`Invalid Decimal: "${e}"`);return n}(a);let u;switch(o){case">":u={symbol:s,assumption:Assumption.atLeast(l,!1)};break;case">=":u={symbol:s,assumption:Assumption.atLeast(l,!0)};break;case"<":u={symbol:s,assumption:Assumption.atMost(l,!1)};break;case"<=":u={symbol:s,assumption:Assumption.atMost(l,!0)};break;case"=":case"==":u={symbol:s,assumption:Assumption.exactly(l)};break;default:throw new Error(`Unsupported operator "${o}"`)}return u}contains(e){const t=normalizeAssumptionValue(e);let n=!t.value.isNaN();return(n&&(compareBoundValues(t.value,t.exact,this.start.value,this.startExact)<0||compareBoundValues(t.value,t.exact,this.end.value,this.endExact)>0)||n&&0===compareBoundValues(t.value,t.exact,this.start.value,this.startExact)&&!this.start.inclusive||n&&0===compareBoundValues(t.value,t.exact,this.end.value,this.endExact)&&!this.end.inclusive)&&(n=!1),n}eq(e){let t;if(o.Expression.isExpression(e)){const n=compareNumericExpressionToBound(e,this.start.value,this.startExact),i=compareNumericExpressionToBound(e,this.end.value,this.endExact);void 0!==n&&void 0!==i&&(n<0||i>0||0===n&&!this.start.inclusive||0===i&&!this.end.inclusive?t=!1:this.isSingleton&&(t=!0))}else this.isSingleton&&e.isSingleton?t=0===compareBoundValues(this.start.value,this.startExact,e.start.value,e.startExact):this.overlaps(e)||(t=!1);return t}getSingletonValue(){let e;return this.isSingleton&&this.startExact&&(e=o.Expression.fromRational(this.startExact)),e}gt(e){let t;if(o.Expression.isExpression(e)){const n=compareNumericExpressionToBound(e,this.start.value,this.startExact),i=compareNumericExpressionToBound(e,this.end.value,this.endExact);void 0!==n&&void 0!==i&&(n<0||0===n&&!this.start.inclusive?t=!0:i>=0&&(t=!1))}else{const n=compareBoundValues(this.start.value,this.startExact,e.end.value,e.endExact),i=compareBoundValues(this.end.value,this.endExact,e.start.value,e.startExact);n>0||0===n&&(!this.start.inclusive||!e.end.inclusive)?t=!0:i<=0&&(t=!1)}return t}gte(e){let t;if(o.Expression.isExpression(e)){const n=compareNumericExpressionToBound(e,this.start.value,this.startExact),i=compareNumericExpressionToBound(e,this.end.value,this.endExact);void 0!==n&&void 0!==i&&(n<=0?t=!0:(i>0||0===i&&!this.end.inclusive)&&(t=!1))}else{const n=compareBoundValues(this.start.value,this.startExact,e.end.value,e.endExact),i=compareBoundValues(this.end.value,this.endExact,e.start.value,e.startExact);n>=0?t=!0:(i<0||0===i&&(!this.end.inclusive||!e.start.inclusive))&&(t=!1)}return t}intersect(e){const t=compareBoundValues(this.start.value,this.startExact,e.start.value,e.startExact),n=compareBoundValues(this.end.value,this.endExact,e.end.value,e.endExact);let i,r,s,o;t>0?(i=this.startExact??this.start.value,r=this.start.inclusive):t<0?(i=e.startExact??e.start.value,r=e.start.inclusive):(i=this.startExact??this.start.value,r=this.start.inclusive&&e.start.inclusive),n<0?(s=this.endExact??this.end.value,o=this.end.inclusive):n>0?(s=e.endExact??e.end.value,o=e.end.inclusive):(s=this.endExact??this.end.value,o=this.end.inclusive&&e.end.inclusive);const a=normalizeAssumptionValue(i),l=normalizeAssumptionValue(s),u=compareBoundValues(a.value,a.exact,l.value,l.exact);let c;return(u<0||0===u&&r&&o)&&(c=new Assumption(i,s,r,o)),c}lt(e){let t;if(o.Expression.isExpression(e)){const n=compareNumericExpressionToBound(e,this.start.value,this.startExact),i=compareNumericExpressionToBound(e,this.end.value,this.endExact);void 0!==n&&void 0!==i&&(i>0||0===i&&!this.end.inclusive?t=!0:n<=0&&(t=!1))}else{const n=compareBoundValues(this.end.value,this.endExact,e.start.value,e.startExact),i=compareBoundValues(this.start.value,this.startExact,e.end.value,e.endExact);n<0||0===n&&(!this.end.inclusive||!e.start.inclusive)?t=!0:i>=0&&(t=!1)}return t}lte(e){let t;if(o.Expression.isExpression(e)){const n=compareNumericExpressionToBound(e,this.start.value,this.startExact),i=compareNumericExpressionToBound(e,this.end.value,this.endExact);void 0!==n&&void 0!==i&&(i>=0?t=!0:(n<0||0===n&&!this.start.inclusive)&&(t=!1))}else{const n=compareBoundValues(this.end.value,this.endExact,e.start.value,e.startExact),i=compareBoundValues(this.start.value,this.startExact,e.end.value,e.endExact);n<=0?t=!0:(i>0||0===i&&(!this.start.inclusive||!e.end.inclusive))&&(t=!1)}return t}overlaps(e){const t=compareBoundValues(this.end.value,this.endExact,e.start.value,e.startExact),n=compareBoundValues(this.start.value,this.startExact,e.end.value,e.endExact);let i=!0;return t<0||n>0?i=!1:0===t?i=this.end.inclusive&&e.start.inclusive:0===n&&(i=this.start.inclusive&&e.end.inclusive),i}sameInterval(e){return 0===compareBoundValues(this.start.value,this.startExact,e.start.value,e.startExact)&&0===compareBoundValues(this.end.value,this.endExact,e.end.value,e.endExact)&&this.start.inclusive===e.start.inclusive&&this.end.inclusive===e.end.inclusive}toString(){const e=this.start.inclusive?"[":"(",t=this.end.inclusive?"]":")";return`${e}${this.start.value}, ${this.end.value}${t}`}}t.Assumption=Assumption},2634(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sqcomp=function sqcomp(e,t){const n=i.Expression.create(e);if(!t){const e=n.variables();if(0===e.length)throw new s.UnexpectedInputError((0,s.message)("noVariableInExpression"));t=e[0]}const o=n.coeffs(t);if(2!==o.max())throw new s.UnexpectedInputError((0,s.message)("quadraticExpressionExpected"));const a=o.hasPower(2)?o.getPower(2):(0,r.zero)(),l=o.hasPower(1)?o.getPower(1):(0,r.zero)(),u=o.hasPower(0)?o.getPower(0):(0,r.zero)(),c=l.div(a.times(2)),m=u.minus(l.pow(2).div(a.times(4))),p=i.Expression.create(t),d=a.times(p.plus(c).pow(2)).plus(m);return{a,h:c,k:m,variable:t,expression:d}};const i=n(296),r=n(6099),s=n(4703)},2646(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PolynomialSolver=void 0;const r=i(n(3110)),s=n(3170),o=n(296),a=n(2116),l=n(4703),u=1e-6;t.PolynomialSolver=class PolynomialSolver{degree;eps;p;precision;constructor(e,t,n=50,i){if("string"==typeof e&&(e=new a.Polynomial(e)),a.Polynomial.isPolynomial(e)){const n=e.variables;if(n.length>1||1===n.length&&t&&n[0]!==t)throw new l.UnexpectedInputError((0,l.message)("tooManyUnknowns"))}const o=a.Polynomial.isPolynomial(e)?e.toDecimalArray():e;this.p=o.slice().reverse().map(e=>new s.Complex(e,0)),this.degree=this.p.length-1,this.eps=i||new r.default(1e-14),this.precision=n}aberthMethod(e){const t=e.length-1,n=[],i=this.cauchyBound(e);for(let e=0;e<t;e++){const o=new r.default(2).mul(Math.PI).mul(e).div(t).plus(.4),a=i.mul(.9).mul(new r.default(1).plus(new r.default(e).mul(.01).div(t)));n.push(new s.Complex(a.mul(r.default.cos(o)),a.mul(r.default.sin(o))))}for(let i=0;i<100;i++){let i=new r.default(0);const o=[];for(let r=0;r<t;r++){const a=n[r],[l,u]=this.syntheticDiv(t,e,a),[c,m]=this.syntheticDiv(t-1,u,a);if(c.abs().lessThan(this.eps)){o.push(a);continue}const p=l.div(c);let d=new s.Complex(0,0);for(let e=0;e<t;e++)if(r!==e){const t=a.sub(n[e]);t.abs().greaterThan(this.eps)&&(d=d.add(new s.Complex(1,0).div(t)))}const g=new s.Complex(1,0).sub(p.mul(d)),h=g.abs().lessThan(this.eps)?p:p.div(g),x=a.sub(h);o.push(x);const E=h.abs();E.greaterThan(i)&&(i=E)}for(let e=0;e<t;e++)n[e]=o[e];if(i.lessThan(this.eps.mul(.01)))break}for(let i=0;i<t;i++)n[i]=this.newtonRefine(e,n[i]);return n}cauchyBound(e){const t=e.length-1;let n=new r.default(0);for(let i=1;i<=t;i++){const t=e[i].abs().div(e[0].abs());t.greaterThan(n)&&(n=t)}return n.plus(1)}complexSqrt(e){const t=e.abs();if(t.isZero())return new s.Complex(0,0);const n=e.re,i=e.im;if(i.abs().lessThan(this.eps))return n.greaterThanOrEqualTo(0)?new s.Complex(n.sqrt(),0):new s.Complex(0,n.neg().sqrt());const r=t.plus(n.abs()).div(2).sqrt();if(n.greaterThanOrEqualTo(0))return new s.Complex(r,i.div(r.mul(2)));{const e=i.abs(),t=i.greaterThanOrEqualTo(0)?r:r.neg();return new s.Complex(e.div(r.mul(2)),t)}}finalize(e,t,n,i=!0){return r.default.set({precision:n}),t?e.map(e=>{let t=e.re,n=e.im;if(i){const i=e.abs().mul(this.eps);t=e.re.abs().lt(i)?new r.default(0):e.re,n=e.im.abs().lt(i)?new r.default(0):e.im}return o.Expression.create(t).plus(o.Expression.Img().times(n))}):e}newtonRefine(e,t){for(let n=0;n<20;n++){const[n,i]=this.syntheticDiv(e.length-1,e,t);if(n.abs().lessThan(this.eps.mul(u)))break;const[r,s]=this.syntheticDiv(e.length-2,i,t);if(r.abs().lessThan(this.eps))break;const o=n.div(r),a=t.sub(o);if(o.abs().lessThan(this.eps.mul(u).mul(a.abs().plus(1)))){t=a;break}t=a}return t}solveQuadratic(e){const t=e[0],n=e[1],i=e[2],r=n.mul(n),s=t.mul(i).scale(4),o=r.sub(s),a=this.complexSqrt(o),l=t.scale(2),u=n.neg();return[u.add(a).div(l),u.sub(a).div(l)]}syntheticDiv(e,t,n){const i=[];let r=t[0];i[0]=r;for(let s=1;s<=e;s++)r=r.mul(n).add(t[s]),s<e&&(i[s]=r);return[r,i]}roots(e=!0){const t=r.default.precision;r.default.set({precision:this.precision});let n=[...this.p],i=this.degree;for(;i>0&&n[0].re.isZero()&&n[0].im.isZero();)n.shift(),i--;if(0===i)return this.finalize([],e,t);const s=n[0];if(n=n.map(e=>e.div(s)),1===i)return this.finalize([n[1].neg()],e,t);if(2===i)return this.finalize(this.solveQuadratic(n),e,t,!1);const o=this.aberthMethod(n);return this.finalize(o,e,t)}}},2707(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assign=assign,t.normalizeLetArguments=function normalizeLetArguments(e){const t=[];for(let n=0;n<e.length;n++){const r=e[n];let s=-1;if(n<e.length-1)for(let e=0;e<r.length;e++){const t=r[e];if(c.Token.isToken(t)&&t.type===c.Token.OPERATOR&&t.value===l.ASSIGN){s=e;break}}if(s>0&&s<r.length-1){const e=new i.Scope(r.type,r.column),n=new i.Scope(r.type,r.column);for(let t=0;t<s;t++)e.push(r[t]);for(let e=s+1;e<r.length;e++)n.push(r[e]);t.push(e,n)}else t.push(r)}return t},t.LET=function LET(...e){if(e.length<3||e.length%2==0)throw new r.ParserError((0,r.message)("letRequiresBindingsAndBody"));const t=new Map,n=new Set,i=[];let s;try{for(let s=0;s<e.length-1;s+=2){const l=e[s]({inheritValues:!1,substitute:!1});if(!o.Expression.isExpression(l))throw new r.UnexpectedInputError((0,r.message)("plainVariableExpected",{input:l.text()}));const c=(0,a.assertPlainVariableAndGetString)(l),m=e[s+1]({excludeValues:i});t.has(c)||n.has(c)||(Object.prototype.hasOwnProperty.call(u.Parser.KNOWN_VALUES,c)?t.set(c,u.Parser.KNOWN_VALUES[c]):n.add(c)),assign(l,m),i.includes(c)||i.push(c)}s=e[e.length-1]({excludeValues:i})}finally{for(const[e,n]of t)u.Parser.KNOWN_VALUES[e]=n;for(const e of n)delete u.Parser.KNOWN_VALUES[e]}return s},t.unassign=function unassign(e){let t,n;if("function"==typeof e){const n=e({inheritValues:!1,substitute:!1});if(!o.Expression.isExpression(n))throw new r.UnexpectedInputError((0,r.message)("plainVariableExpected",{input:n.text()}));t=n}else t=e;return n=o.Expression.isExpression(t)?(0,a.assertPlainVariableAndGetString)(t):t,delete u.Parser.KNOWN_VALUES[n],o.Expression.create(t)};const i=n(2809),r=n(4703),s=n(5817),o=n(296),a=n(1897),l=n(8300),u=n(238),c=n(12);function assign(e,t){if(e=o.Expression.create(e),"string"==typeof t&&(t=u.Parser.parse(t)),o.Expression.isExpression(e)&&!e.isPlainVariable())throw new r.UnexpectedInputError((0,r.message)("plainVariableExpected",{input:String(e)}));if(s.RESTRICTED.includes(e.value))throw new r.AssignmentError((0,r.message)("restrictedVariableName",{name:e.value}));return u.Parser.KNOWN_VALUES[e.value]=t,t}},2724(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.factor=function factor(e){let t;try{if((e=r.Expression.create(e)).isZero())t=e;else if(e.isNUM()&&e.isInteger()){let n;const i=(0,u.primeFactorCounts)(e.getMultiplier().numerator);for(const e in i){const t=r.Expression.toEXP(e,i[e]);n=n?(0,o.merge)(n,t):t}t=n??r.Expression.Number("1"),-1===e.sign()&&(t=t.neg())}else if(e.isVAR())t=e;else{const n=factors(e);t=n.numerator.prod().div(n.denominator.prod())}}catch{t=r.Expression.toFunction(s.FACTOR,[e])}return t},t.polyFactorExpressions=polyFactorExpressions,t.polyFactors=function polyFactors(e){return new l.Vector(polyFactorExpressions(e))},t.factorExpressionParts=factorExpressionParts,t.factors=factors,t.numberFactors=function numberFactors(e){const t=(e=r.Expression.create(e)).getNumerator(),n=e.getDenominator();function factorNumber(e){if(!e.isNUM())return new l.Vector([e]);const t=new l.Vector,n=(0,u.primeFactorCounts)(e.getMultiplier().numerator);for(const e in n)t.append(r.Expression.toEXP(e,n[e]));return t}return{numerator:factorNumber(t),denominator:factorNumber(n)}};const i=n(6056),r=n(296),s=n(8300),o=n(6498),a=n(2116),l=n(3982),u=n(982),c=n(886),m=n(1339),p=n(8215),d=n(6827);function polyFactorExpressions(e){let t;try{const n=(0,i.normalizeMultiplierDenominators)(r.Expression.create(e)),s=n.getNumerator(),o=n.getDenominator(),[l,u]=(0,c.uSubConstants)(s),d=new a.Polynomial(l),g=d.variables,{poly:h}=(0,m.polynomialToMultiPoly)(d),x=(0,p.factorPoly)(h,g);t=(0,m.factorsToExpressions)(x,g).map(e=>(0,c.uUnSub)(e,u).div(o))}catch{t=[r.Expression.create(e)]}return t}function factorExpressionParts(e){const{numerator:t,denominator:n,map:i}=(0,d.polynomialize)(r.Expression.create(e));return{numerator:polyFactorExpressions(t).map(e=>(0,c.uUnSub)(e,i)),denominator:polyFactorExpressions(n).map(e=>(0,c.uUnSub)(e,i))}}function factors(e){const{numerator:t,denominator:n}=factorExpressionParts(e);return{numerator:new l.Vector(t),denominator:new l.Vector(n)}}},2766(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.partfrac=function partfrac(e,t){const n=i.Expression.create(e);let u=n;const c=n.variables(),m=t?String(t):c[0];if(m&&c.length>0){const{num:e,den:t}=function extractNumDen(e,t){try{const t=e.getNumerator(),n=e.getDenominator();if(n&&!n.isOne())return{num:t,den:n}}catch{}if(e.isProduct()){let t=(0,r.one)(),n=(0,r.one)();for(const i of e.elementsArray())i.getPower().isNegative()?n=n.times(i.invert()):t=t.times(i);return t=t.times(i.Expression.fromRational(e.getMultiplier())),{num:t,den:n}}return-1===e.getPower().sign()?{num:i.Expression.fromRational(e.getMultiplier()),den:e.invert()}:{num:e,den:(0,r.one)()}}(n);if(t.hasVariable(m)){const n=new o.Polynomial(e,[m]),c=new o.Polynomial(t,[m]),p=n.deg(),d=c.deg();let g=(0,r.zero)(),h=e;if(p>=d){const[n,i]=(0,a.divide)(e,t);g=n,h=i}if(i.Expression.create(h).isZero())u=g;else if(d<=1)g.isZero()||(u=g.plus(h.div(t)));else{const e=function collectFactors(e,t){const n=[],i=new Map;for(const r of e){let e=r;if(!e.hasVariable(t))continue;let s=1;const a=e.getPower();if(a.isInteger()){const t=Number(a.getNumerator());t>1&&(s=t,e=e.getBase())}const l=e.text(),u=new o.Polynomial(e,[t]).deg();i.has(l)?n[i.get(l)].power+=s:(i.set(l,n.length),n.push({expr:e,power:s,degree:u}))}return n}((0,l.polyFactorExpressions)(t),m);if(e.length>1||1===e.length&&e[0].power>1){const n=function decompose(e,t,n,o){const l=[];let u=0,c=!0;for(const e of n)for(let t=1;t<=e.power;t++)1===e.degree?(l.push({factor:e.expr,power:t,degree:e.degree,unknownIndex:u,numUnknowns:1}),u+=1):2===e.degree?(l.push({factor:e.expr,power:t,degree:e.degree,unknownIndex:u,numUnknowns:2}),u+=2):c=!1;if(!c)return;const m=[];for(const e of n)if(1===e.degree){const t=findLinearRoot(e.expr,o);void 0!==t&&m.push(t)}let p=0;for(;m.length<u;){const e=i.Expression.Number(p);evaluateAt(t,o,e).isZero()||m.some(t=>t.eq(e))||m.push(e),p=p<=0?1-p:-p}const d=[],g=[],h=l.map(e=>function computeCofactor(e,t,n){const r=1===n?t:t.pow(i.Expression.Number(n)),[s]=(0,a.divide)(e,r);return s}(t,e.factor,e.power));for(let t=0;t<u;t++){const n=m[t],i=evaluateAt(e,o,n);g.push(i);const r=[];for(let e=0;e<l.length;e++){const t=l[e],i=evaluateAt(h[e],o,n);1===t.numUnknowns||r.push(n.times(i)),r.push(i)}d.push(r)}const x=function solveLinearSystem(e,t){const n=t.length;if(0===n)return[];const i=new s.Matrix(...e),r=new s.Matrix(...t.map(e=>[e])),o=i.augment(r).rref(),a=o.rows(),l=o.cols()-1;if(a!==n||l!==n)return;for(let e=0;e<a;e++){let t=!0;for(let n=0;n<l;n++)if(!o.elements[e][n].isZero()){t=!1;break}if(t&&!o.elements[e][l].isZero())return}const u=new Array(n),c=new Set;for(let e=0;e<a;e++){let t=-1;for(let n=0;n<l;n++)if(!o.elements[e][n].isZero()){t=n;break}if(-1!==t){if(!o.elements[e][t].eq("1"))return;if(c.has(t))return;c.add(t),u[t]=o.elements[e][l]}}if(c.size===n){for(let e=0;e<n;e++)if(!u[e])return;return u}}(d,g);if(void 0===x)return;let E=(0,r.zero)();for(const e of l){const t=1===e.power?e.factor:e.factor.pow(i.Expression.Number(e.power));if(1===e.numUnknowns){const n=x[e.unknownIndex];n.isZero()||(E=E.plus(n.div(t)))}else{const n=x[e.unknownIndex],r=x[e.unknownIndex+1],s=n.times(i.Expression.create(o)).plus(r);s.isZero()||(E=E.plus(s.div(t)))}}return E}(h,t,e,m);void 0!==n&&(u=g.isZero()?n:g.plus(n))}}}}return u.text()===n.text()?n:u};const i=n(296),r=n(6099),s=n(4462),o=n(2116),a=n(9565),l=n(2724);function findLinearRoot(e,t){const n=evaluateAt(e,t,(0,r.zero)()),i=evaluateAt(e,t,(0,r.one)()).plus(n.times((0,r.minusOne)()));if(!i.isZero())return n.times((0,r.minusOne)()).div(i)}function evaluateAt(e,t,n){return e.subst(t,n)}},2809(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Scope=void 0;const i=n(8300),r=n(6441);class Scope extends Array{column;dataType;deferLHSResolution=!1;deferRHSResolution=!1;depth=0;implicitMultiply=!1;isOpen=!1;parent;type;constructor(e,t,n){super(),this.dataType=i.SCOPE,this.column=t,this.type=e,this.parent=n}static isScope(e){return(0,r.isNerdamerNativeType)(e,i.SCOPE)}addScope(e,t){const n=new Scope(e,t,this);return n.depth=this.depth+1,n.isOpen=!0,this.push(n),n}text(e=!0){return this.map(t=>{if(!Scope.isScope(t))return e?t.toString():`<${t.toString()}, ${t.type}>`;{const n=t.text(e);switch(t.type){case"parenthesis":return`( ${n} )`;case"square":return`[ ${n} ]`;case"curly":return`{ ${n} }`;case"pipe":return`| ${n} |`;default:return n}}}).join(e?" ":", ").replace(/\s+/gi," ")}upperScope(){this.isOpen=!1;const e=this.parent;return delete this.parent,e}}t.Scope=Scope},2826(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.complexSimplify=function complexSimplify(e){const t=e.getPower();if(!t.isInteger()||!t.isMinusOne())return e;const n=(0,s.expand)(e.invert()),o=n.realPart(),a=n.imagPart(),l=o.pow((0,r.two)()).plus(a.pow((0,r.two)()));return o.div(l).minus(a.div(l).times(i.Expression.Img()))};const i=n(296),r=n(6099),s=n(7741)},2992(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.zippelGCDMulti=zippelGCDMulti;const i=n(4988),r=n(4737),s=n(9350),o=n(1458),a=[17n,19n,23n,29n,31n,37n,41n,43n,47n,53n],l=[2n,3n,5n,7n,11n,13n,17n,19n,23n,29n,31n,37n,41n,43n,47n],u=(1n<<64n)-1n;function zippelGCDMulti(e,t,n,i={}){return zippelGCD(e,t,n,i)}function zippelGCD(e,t,n,o={}){if(0===n.length)throw new Error("zippelGCD: no variables");const l=(0,s.mvNormalize)(e),u=(0,s.mvNormalize)(t);if(0===l.terms.size&&0===u.terms.size)return r.MultiPoly.zero();if(0===l.terms.size)return normalizeSignLex(u,n);if(0===u.terms.size)return normalizeSignLex(l,n);const c=(0,s.mvDivideByCoeffContent)(l),m=(0,s.mvDivideByCoeffContent)(u),p=(0,i.gcd)(c.content,m.content);{const e=new r.MultiPoly(c.primitive.terms),t=new r.MultiPoly(m.primitive.terms),i=e.variables(),l=t.variables(),u=[];for(let e=0;e<n.length;e++)i.has(e)!==l.has(e)&&u.push({idx:e,name:n[e]});if(u.length>0){let i=e,l=t;const c=[...n];for(let e=0;e<u.length;e++){const{idx:t}=u[e],n=a[e%a.length];i=(0,s.substituteVarIndex)(i,t,n),l=(0,s.substituteVarIndex)(l,t,n)}const m=[...u].sort((e,t)=>t.idx-e.idx);for(const{idx:e}of m)i=(0,s.removeVarIndex)(i,e),l=(0,s.removeVarIndex)(l,e),c.splice(e,1);if(0===c.length)return r.MultiPoly.constant(0n===p?1n:p);const d=i,g=l;let h=o.mainVar??n[0];c.includes(h)||(h=c[0]);let x=zippelGCD(d,g,c,{...o,mainVar:h}).clone();const E=[...c],y=[...u].sort((e,t)=>e.idx-t.idx);for(const{idx:e,name:t}of y)x=(0,s.addVarIndex)(x,e),E.splice(e,0,t);let v=x;return 1n!==p&&0n!==p&&(v=(0,s.scalePoly)(v,p)),normalizeSignLex((0,s.mvNormalize)(v),n)}}const d=o.mainVar??n[0],g=o.maxTries??32,h=new r.MultiPoly(c.primitive.terms),x=new r.MultiPoly(m.primitive.terms);let E=null,y=null;const v=new Map;let P=-1,w=-1;for(let e=0;e<g;e++){const t=randomEvalPoint(n,d,e),i=evalToUnivariate(h,n,d,t),r=evalToUnivariate(x,n,d,t);if(uniIsZeroBig(i)||uniIsZeroBig(r))continue;const o=i.length-1,a=r.length-1;if(P<0&&(P=o,w=a),o===P&&a===w)try{const e=(0,s.zNormalizePrimitiveSign)((0,s.zGcdFull)(i,r)).primitive,n=e.length-1;if(n<=0)continue;const o=(v.get(n)??0)+1;v.set(n,o),o>=2&&(!y||n>y.length-1)&&(E=t,y=(0,s.zNormalizePrimitiveSign)(e).primitive)}catch{continue}}if(!E||!y){if(o.throwOnBudget){const e={};for(const[t,n]of v.entries())e[String(t)]=n;throw new i.GcdBudgetExceededError("zippelGCD: could not find a good specialization point within budget",{stage:"base-specialization",vars:[...n],mainVar:d,maxTries:g,degFMain:P,degGMain:w,gcdDegreeHistogram:e})}return r.MultiPoly.constant(0n===p?1n:p)}const b=n.indexOf(d),M=n.filter(e=>e!==d),A=y.length-1;function sameUni(e,t){const n=(0,s.zNormalizePrimitiveSign)(e).primitive,i=(0,s.zNormalizePrimitiveSign)(t).primitive;if(n.length!==i.length)return!1;for(let e=0;e<n.length;e++)if(n[e]!==i[e])return!1;return!0}function verifyCandidate(e){for(let t=0;t<6;t++){const i=randomEvalPoint(n,d,9e5+t),r=evalToUnivariate(h,n,d,i),o=evalToUnivariate(x,n,d,i);if(uniIsZeroBig(r)||uniIsZeroBig(o))continue;const a=(0,s.zNormalizePrimitiveSign)((0,s.zGcdFull)(r,o)).primitive;if(a.length-1!==A)return!1;if(!sameUni(evalToUnivariate(e,n,d,i),a))return!1}return!0}let T=null;for(let e=0;e<8;e++){const t=new Array(A+1);for(let e=0;e<=A;e++)t[e]=r.MultiPoly.zero();const i=new Map;for(let r=0;r<=A;r++){let s=null;for(let t=0;t<4&&!s;t++){let a=i.get(t);a||(a=sampleGcdAcrossPoints(c.primitive,m.primitive,n,d,Math.min(g*(t+1),64),1e6*e+1e5*t,o.gridMap),i.set(t,a));const l=a.map(e=>({values:e.values,y:r<e.coefficients.length?e.coefficients[r]:0n}));try{s=interpolateCoeffAsMV(n,M,l)}catch{s=null}}if(!s)throw new Error("zippelGCD: coefficient interpolation failed (non-integer)");t[r]=s.clone()}let a=r.MultiPoly.zero();for(let e=0;e<=A;e++){if(0===t[e].terms.size)continue;if(0===e){a=(0,s.addPoly)(a,t[e]);continue}const i=new Array(n.length).fill(0);i[b]=e;const o=new r.MultiPoly;o.terms.set((0,s.denseToKey)(i),1n),a=(0,s.addPoly)(a,(0,s.mulPoly)(t[e],o))}1n!==p&&0n!==p&&(a=(0,s.scalePoly)(a,p)),a=(0,s.mvNormalize)(a),a=stripParamFactorFromMainVarCoeffsMP(a,n,d);let l=a.clone();if(l=normalizeSignLex(l,n),T=l,verifyCandidate(l))return l}return T||(0,s.mvNormalize)(r.MultiPoly.zero())}function sampleGcdAcrossPoints(e,t,n,i,o,a,u){const c=[],m=n.filter(e=>e!==i);function maxDegInVar(e,t){const i=n.indexOf(t);if(i<0)return 0;let s=0;for(const t of e.terms.keys()){const e=(0,r.keyToExp)(t).get(i)??0;e>s&&(s=e)}return s}let p=-1,d=-1,g=-1;const h={};!function rec(r,o){if(o.n<=0)return;if(r===m.length){const r={...h},a=evalToUnivariate(e,n,i,r),l=evalToUnivariate(t,n,i,r);if(uniIsZeroBig(a)||uniIsZeroBig(l))return;const u=a.length-1,m=l.length-1;if((u>p||m>d)&&(p=Math.max(p,u),d=Math.max(d,m),c.length=0,g=-1),p<0&&(p=u,d=m),u!==p||m!==d)return;const x=(0,s.zGcdFull)(a,l),E=x.length-1;if((g<0||E>g)&&(g=E,c.length=0),E!==g)return;return c.push({values:r,coefficients:x}),void o.n--}const a=m[r];for(const n of function pointsForVar(n){const i=u?.[n];if(i&&i.length)return i.slice();if(m.length&&n===m[0]){const i=Math.min(maxDegInVar(e,n),maxDegInVar(t,n)),r=Math.min(Math.max(i+1,3),15);return l.slice(0,r)}return l.slice(0,3)}(a))if(h[a]=n,rec(r+1,o),o.n<=0)break}(0,{n:o});for(let r=0;c.length<Math.min(6,o)&&r<2*o;r++){const o=randomEvalPoint(n,i,a+5e4+r),l=evalToUnivariate(e,n,i,o),u=evalToUnivariate(t,n,i,o);if(uniIsZeroBig(l)||uniIsZeroBig(u))continue;const m=l.length-1,h=u.length-1;if((m>p||h>d)&&(p=Math.max(p,m),d=Math.max(d,h),c.length=0,g=-1),p<0&&(p=m,d=h),m!==p||h!==d)continue;const x=(0,s.zGcdFull)(l,u),E=x.length-1;(g<0||E>g)&&(g=E,c.length=0),E===g&&c.push({values:o,coefficients:x})}return 0===c.length?[{values:randomEvalPoint(n,i,9999),coefficients:[]}]:c}function interpolateCoeffAsMV(e,t,n){function groupKey(e,t){return e.map(e=>`${e}=${t[e]??0n}`).join("|")}const a=function recInterpolate(t,n){if(0===t.length){const t=zeroMVF(e);return t.terms.set((0,s.denseToKey)(new Array(e.length).fill(0)),n[0]?.y??(0,o.rat)(0n)),t}const i=t[0],r=t.slice(1),a=e.indexOf(i);if(a<0)throw new Error("interpolateCoeffAsMV: missing var index");const l=new Map;for(const e of n){const t=groupKey(r,e.values),n=l.get(t)??[];n.push({x:e.values[i]??0n,y:e.y,values:e.values}),l.set(t,n)}const u=[];let c=0;for(const e of l.values()){e.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:0);const t=e.map(e=>({x:e.x,y:e.y})),n=(0,o.interpolateUnivariateRat)(t);c=Math.max(c,n.length-1),u.push({values:e[0].values,uni:n})}const m=new Array(c+1);for(let e=0;e<=c;e++)m[e]=[];for(const e of u)for(let t=0;t<=c;t++)m[t].push({values:e.values,y:t<e.uni.length?e.uni[t]:(0,o.rat)(0n)});let p=zeroMVF(e);for(let e=0;e<m.length;e++)p=addMVF(p,shiftMVF(recInterpolate(r,m[e]),a,e));return p}(t,n.map(e=>({values:e.values,y:(0,o.rat)(e.y)})));return function mvfToInt(e){const t=r.MultiPoly.zero();let n=1n;for(const t of e.terms.values()){if(0n===t.n)continue;const e=t.d<0n?-t.d:t.d;n=n/(0,i.gcd)(n,e)*e}for(const[i,r]of e.terms.entries()){if(0n===r.n)continue;const e=(0,o.ratMul)(r,(0,o.rat)(n));if(1n!==e.d)throw new Error("interpolateCoeffAsMV: failed to clear denominators");t.terms.set(i,e.n)}return(0,s.mvNormalize)(t)}(a)}function zeroMVF(e){return{vars:e,terms:new Map}}function addMVF(e,t){const n={vars:e.vars,terms:new Map(e.terms)};return(0,s.mapCombineInPlace)(n.terms,t.terms,(e,t)=>(0,o.ratAdd)(e,t),e=>0n===e.n,()=>(0,o.rat)(0n)),n}function shiftMVF(e,t,n){const i=zeroMVF(e.vars);for(const[s,o]of e.terms.entries()){const e=(0,r.keyToExp)(s);e.set(t,(e.get(t)??0)+n),i.terms.set((0,r.expToKey)(e),o)}return i}function randomEvalPoint(e,t,n){const i={};let r=11400714819323198485n^BigInt(n);function nextU32(){return r=6364136223846793005n*r+1442695040888963407n&u,r>>32n&4294967295n}function hashVar(e){let t=1469598103934665603n;for(let n=0;n<e.length;n++)t^=BigInt(e.charCodeAt(n)),t*=1099511628211n,t&=u;return t}for(const n of e){if(n===t)continue;r^=hashVar(n);const e=nextU32();i[n]=2n+e%96n}return i}function stripParamFactorFromMainVarCoeffsMP(e,t,n){const i=t.indexOf(n);if(i<0)return e;const o=t.filter(e=>e!==n);if(0===o.length)return e;let a=0;for(const t of e.terms.keys()){const e=(0,r.keyToExp)(t).get(i)??0;e>a&&(a=e)}const l=new Array(a+1);for(let e=0;e<=a;e++)l[e]=r.MultiPoly.zero();for(const[t,n]of e.terms.entries()){const e=(0,r.keyToExp)(t),s=e.get(i)??0,o=new Map(e);o.delete(i);const a=(0,r.expToKey)(o);l[s].terms.set(a,(l[s].terms.get(a)??0n)+n)}for(const e of l)e.trim();let u=null;for(const e of l)if(0!==e.terms.size&&(u=u?zippelGCDMulti(u,e,t,{mainVar:o[0],maxTries:24}):e,0!==u.terms.size)){const e=(0,s.mvNormalizePrimitiveSignLex)(u).primitive;if(1===e.terms.size&&1n===(e.terms.get("")??0n)){u=e;break}}if(!u)return e;if(u=(0,s.mvNormalizePrimitiveSignLex)(u).primitive,0===u.terms.size)return e;if(1===u.terms.size&&1n===(u.terms.get("")??0n))return e;const c=[];for(const t of l){if(0===t.terms.size){c.push(t);continue}const n=(0,s.mvExactDiv)(t,u);if(!n)return e;c.push(n)}const m=r.MultiPoly.zero();for(let e=0;e<c.length;e++){const t=c[e];if(0!==t.terms.size)for(const[n,s]of t.terms.entries()){const t=(0,r.keyToExp)(n),o=new Map(t);0!==e&&o.set(i,e);const a=(0,r.expToKey)(o);m.terms.set(a,(m.terms.get(a)??0n)+s)}}return m.trim(),m}function evalToUnivariate(e,t,n,s){const o=t.indexOf(n);if(o<0)throw new Error(`evalToUnivariate: main var ${n} not in vars`);let a=0;for(const t of e.terms.keys()){const e=(0,r.keyToExp)(t);a=Math.max(a,e.get(o)??0)}const l=new Array(a+1).fill(0n);for(const[n,a]of e.terms.entries()){const e=(0,r.keyToExp)(n),u=e.get(o)??0;let c=1n;for(let n=0;n<t.length;n++){if(n===o)continue;const r=t[n],a=s[r];if(void 0===a)throw new Error(`evalToUnivariate: missing value for ${r}`);c*=(0,i.pow)(a,BigInt(e.get(n)??0))}l[u]+=a*c}for(;l.length>1&&0n===l[l.length-1];)l.pop();return l}function uniIsZeroBig(e){return 0===e.length||1===e.length&&0n===e[0]}function normalizeSignLex(e,t){if(0===e.terms.size)return e;const n=(0,s.leadTermLex)(e,t.length);return!n||n.coeff>=0n?e:(0,s.scalePoly)(e,-1n)}},3110(e,t,n){var i;!function(){"use strict";var r,s,o,a=9e15,l=1e9,u="0123456789abcdef",c="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",m="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",p={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-a,maxE:a,crypto:!1},d=!0,g="[DecimalError] ",h=g+"Invalid argument: ",x=g+"Precision limit exceeded",E=g+"crypto unavailable",y="[object Decimal]",v=Math.floor,P=Math.pow,w=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,b=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,M=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,A=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,T=1e7,N=c.length-1,O=m.length-1,R={toStringTag:y};function digitsToString(e){var t,n,i,r=e.length-1,s="",o=e[0];if(r>0){for(s+=o,t=1;t<r;t++)(n=7-(i=e[t]+"").length)&&(s+=getZeroString(n)),s+=i;(n=7-(i=(o=e[t])+"").length)&&(s+=getZeroString(n))}else if(0===o)return"0";for(;o%10==0;)o/=10;return s+o}function checkInt32(e,t,n){if(e!==~~e||e<t||e>n)throw Error(h+e)}function checkRoundingDigits(e,t,n,i){var r,s,o,a;for(s=e[0];s>=10;s/=10)--t;return--t<0?(t+=7,r=0):(r=Math.ceil((t+1)/7),t%=7),s=P(10,7-t),a=e[r]%s|0,null==i?t<3?(0==t?a=a/100|0:1==t&&(a=a/10|0),o=n<4&&99999==a||n>3&&49999==a||5e4==a||0==a):o=(n<4&&a+1==s||n>3&&a+1==s/2)&&(e[r+1]/s/100|0)==P(10,t-2)-1||(a==s/2||0==a)&&!(e[r+1]/s/100|0):t<4?(0==t?a=a/1e3|0:1==t?a=a/100|0:2==t&&(a=a/10|0),o=(i||n<4)&&9999==a||!i&&n>3&&4999==a):o=((i||n<4)&&a+1==s||!i&&n>3&&a+1==s/2)&&(e[r+1]/s/1e3|0)==P(10,t-3)-1,o}function convertBase(e,t,n){for(var i,r,s=[0],o=0,a=e.length;o<a;){for(r=s.length;r--;)s[r]*=t;for(s[0]+=u.indexOf(e.charAt(o++)),i=0;i<s.length;i++)s[i]>n-1&&(void 0===s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/n|0,s[i]%=n)}return s.reverse()}R.absoluteValue=R.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),finalise(e)},R.ceil=function(){return finalise(new this.constructor(this),this.e+1,2)},R.clampedTo=R.clamp=function(e,t){var n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(h+t);return n.cmp(e)<0?e:n.cmp(t)>0?t:new i(n)},R.comparedTo=R.cmp=function(e){var t,n,i,r,s=this,o=s.d,a=(e=new s.constructor(e)).d,l=s.s,u=e.s;if(!o||!a)return l&&u?l!==u?l:o===a?0:!o^l<0?1:-1:NaN;if(!o[0]||!a[0])return o[0]?l:a[0]?-u:0;if(l!==u)return l;if(s.e!==e.e)return s.e>e.e^l<0?1:-1;for(t=0,n=(i=o.length)<(r=a.length)?i:r;t<n;++t)if(o[t]!==a[t])return o[t]>a[t]^l<0?1:-1;return i===r?0:i>r^l<0?1:-1},R.cosine=R.cos=function(){var e,t,n=this,i=n.constructor;return n.d?n.d[0]?(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+7,i.rounding=1,n=function cosine(e,t){var n,i,r;if(t.isZero())return t;(i=t.d.length)<32?r=(1/tinyPow(4,n=Math.ceil(i/3))).toString():(n=16,r="2.3283064365386962890625e-10"),e.precision+=n,t=taylorSeries(e,1,t.times(r),new e(1));for(var s=n;s--;){var o=t.times(t);t=o.times(o).minus(o).times(8).plus(1)}return e.precision-=n,t}(i,toLessThanHalfPi(i,n)),i.precision=e,i.rounding=t,finalise(2==o||3==o?n.neg():n,e,t,!0)):new i(1):new i(NaN)},R.cubeRoot=R.cbrt=function(){var e,t,n,i,r,s,o,a,l,u,c=this,m=c.constructor;if(!c.isFinite()||c.isZero())return new m(c);for(d=!1,(s=c.s*P(c.s*c,1/3))&&Math.abs(s)!=1/0?i=new m(s.toString()):(n=digitsToString(c.d),(s=((e=c.e)-n.length+1)%3)&&(n+=1==s||-2==s?"0":"00"),s=P(n,1/3),e=v((e+1)/3)-(e%3==(e<0?-1:2)),(i=new m(n=s==1/0?"5e"+e:(n=s.toExponential()).slice(0,n.indexOf("e")+1)+e)).s=c.s),o=(e=m.precision)+3;;)if(u=(l=(a=i).times(a).times(a)).plus(c),i=F(u.plus(c).times(a),u.plus(l),o+2,1),digitsToString(a.d).slice(0,o)===(n=digitsToString(i.d)).slice(0,o)){if("9999"!=(n=n.slice(o-3,o+1))&&(r||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(finalise(i,e+1,1),t=!i.times(i).times(i).eq(c));break}if(!r&&(finalise(a,e+1,0),a.times(a).times(a).eq(c))){i=a;break}o+=4,r=1}return d=!0,finalise(i,e,m.rounding,t)},R.decimalPlaces=R.dp=function(){var e,t=this.d,n=NaN;if(t){if(n=7*((e=t.length-1)-v(this.e/7)),e=t[e])for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},R.dividedBy=R.div=function(e){return F(this,new this.constructor(e))},R.dividedToIntegerBy=R.divToInt=function(e){var t=this.constructor;return finalise(F(this,new t(e),0,1,1),t.precision,t.rounding)},R.equals=R.eq=function(e){return 0===this.cmp(e)},R.floor=function(){return finalise(new this.constructor(this),this.e+1,3)},R.greaterThan=R.gt=function(e){return this.cmp(e)>0},R.greaterThanOrEqualTo=R.gte=function(e){var t=this.cmp(e);return 1==t||0===t},R.hyperbolicCosine=R.cosh=function(){var e,t,n,i,r,s=this,o=s.constructor,a=new o(1);if(!s.isFinite())return new o(s.s?1/0:NaN);if(s.isZero())return a;n=o.precision,i=o.rounding,o.precision=n+Math.max(s.e,s.sd())+4,o.rounding=1,(r=s.d.length)<32?t=(1/tinyPow(4,e=Math.ceil(r/3))).toString():(e=16,t="2.3283064365386962890625e-10"),s=taylorSeries(o,1,s.times(t),new o(1),!0);for(var l,u=e,c=new o(8);u--;)l=s.times(s),s=a.minus(l.times(c.minus(l.times(c))));return finalise(s,o.precision=n,o.rounding=i,!0)},R.hyperbolicSine=R.sinh=function(){var e,t,n,i,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(t=s.precision,n=s.rounding,s.precision=t+Math.max(r.e,r.sd())+4,s.rounding=1,(i=r.d.length)<3)r=taylorSeries(s,2,r,r,!0);else{e=(e=1.4*Math.sqrt(i))>16?16:0|e,r=taylorSeries(s,2,r=r.times(1/tinyPow(5,e)),r,!0);for(var o,a=new s(5),l=new s(16),u=new s(20);e--;)o=r.times(r),r=r.times(a.plus(o.times(l.times(o).plus(u))))}return s.precision=t,s.rounding=n,finalise(r,t,n,!0)},R.hyperbolicTangent=R.tanh=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+7,i.rounding=1,F(n.sinh(),n.cosh(),i.precision=e,i.rounding=t)):new i(n.s)},R.inverseCosine=R.acos=function(){var e=this,t=e.constructor,n=e.abs().cmp(1),i=t.precision,r=t.rounding;return-1!==n?0===n?e.isNeg()?getPi(t,i,r):new t(0):new t(NaN):e.isZero()?getPi(t,i+4,r).times(.5):(t.precision=i+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=i,t.rounding=r,e.times(2))},R.inverseHyperbolicCosine=R.acosh=function(){var e,t,n=this,i=n.constructor;return n.lte(1)?new i(n.eq(1)?0:NaN):n.isFinite()?(e=i.precision,t=i.rounding,i.precision=e+Math.max(Math.abs(n.e),n.sd())+4,i.rounding=1,d=!1,n=n.times(n).minus(1).sqrt().plus(n),d=!0,i.precision=e,i.rounding=t,n.ln()):new i(n)},R.inverseHyperbolicSine=R.asinh=function(){var e,t,n=this,i=n.constructor;return!n.isFinite()||n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,i.rounding=1,d=!1,n=n.times(n).plus(1).sqrt().plus(n),d=!0,i.precision=e,i.rounding=t,n.ln())},R.inverseHyperbolicTangent=R.atanh=function(){var e,t,n,i,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=s.precision,t=s.rounding,i=r.sd(),Math.max(i,e)<2*-r.e-1?finalise(new s(r),e,t,!0):(s.precision=n=i-r.e,r=F(r.plus(1),new s(1).minus(r),n+e,1),s.precision=e+4,s.rounding=1,r=r.ln(),s.precision=e,s.rounding=t,r.times(.5))):new s(NaN)},R.inverseSine=R.asin=function(){var e,t,n,i,r=this,s=r.constructor;return r.isZero()?new s(r):(t=r.abs().cmp(1),n=s.precision,i=s.rounding,-1!==t?0===t?((e=getPi(s,n+4,i).times(.5)).s=r.s,e):new s(NaN):(s.precision=n+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=n,s.rounding=i,r.times(2)))},R.inverseTangent=R.atan=function(){var e,t,n,i,r,s,o,a,l,u=this,c=u.constructor,m=c.precision,p=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&m+4<=O)return(o=getPi(c,m+4,p).times(.25)).s=u.s,o}else{if(!u.s)return new c(NaN);if(m+4<=O)return(o=getPi(c,m+4,p).times(.5)).s=u.s,o}for(c.precision=a=m+10,c.rounding=1,e=n=Math.min(28,a/7+2|0);e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(d=!1,t=Math.ceil(a/7),i=1,l=u.times(u),o=new c(u),r=u;-1!==e;)if(r=r.times(l),s=o.minus(r.div(i+=2)),r=r.times(l),void 0!==(o=s.plus(r.div(i+=2))).d[t])for(e=t;o.d[e]===s.d[e]&&e--;);return n&&(o=o.times(2<<n-1)),d=!0,finalise(o,c.precision=m,c.rounding=p,!0)},R.isFinite=function(){return!!this.d},R.isInteger=R.isInt=function(){return!!this.d&&v(this.e/7)>this.d.length-2},R.isNaN=function(){return!this.s},R.isNegative=R.isNeg=function(){return this.s<0},R.isPositive=R.isPos=function(){return this.s>0},R.isZero=function(){return!!this.d&&0===this.d[0]},R.lessThan=R.lt=function(e){return this.cmp(e)<0},R.lessThanOrEqualTo=R.lte=function(e){return this.cmp(e)<1},R.logarithm=R.log=function(e){var t,n,i,r,s,o,a,l,u=this,c=u.constructor,m=c.precision,p=c.rounding;if(null==e)e=new c(10),t=!0;else{if(n=(e=new c(e)).d,e.s<0||!n||!n[0]||e.eq(1))return new c(NaN);t=e.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new c(n&&!n[0]?-1/0:1!=u.s?NaN:n?0:1/0);if(t)if(n.length>1)s=!0;else{for(r=n[0];r%10==0;)r/=10;s=1!==r}if(d=!1,o=naturalLogarithm(u,a=m+5),i=t?getLn10(c,a+10):naturalLogarithm(e,a),checkRoundingDigits((l=F(o,i,a,1)).d,r=m,p))do{if(o=naturalLogarithm(u,a+=10),i=t?getLn10(c,a+10):naturalLogarithm(e,a),l=F(o,i,a,1),!s){+digitsToString(l.d).slice(r+1,r+15)+1==1e14&&(l=finalise(l,m+1,0));break}}while(checkRoundingDigits(l.d,r+=10,p));return d=!0,finalise(l,m,p)},R.minus=R.sub=function(e){var t,n,i,r,s,o,a,l,u,c,m,p,g=this,h=g.constructor;if(e=new h(e),!g.d||!e.d)return g.s&&e.s?g.d?e.s=-e.s:e=new h(e.d||g.s!==e.s?g:NaN):e=new h(NaN),e;if(g.s!=e.s)return e.s=-e.s,g.plus(e);if(u=g.d,p=e.d,a=h.precision,l=h.rounding,!u[0]||!p[0]){if(p[0])e.s=-e.s;else{if(!u[0])return new h(3===l?-0:0);e=new h(g)}return d?finalise(e,a,l):e}if(n=v(e.e/7),c=v(g.e/7),u=u.slice(),s=c-n){for((m=s<0)?(t=u,s=-s,o=p.length):(t=p,n=c,o=u.length),s>(i=Math.max(Math.ceil(a/7),o)+2)&&(s=i,t.length=1),t.reverse(),i=s;i--;)t.push(0);t.reverse()}else{for((m=(i=u.length)<(o=p.length))&&(o=i),i=0;i<o;i++)if(u[i]!=p[i]){m=u[i]<p[i];break}s=0}for(m&&(t=u,u=p,p=t,e.s=-e.s),o=u.length,i=p.length-o;i>0;--i)u[o++]=0;for(i=p.length;i>s;){if(u[--i]<p[i]){for(r=i;r&&0===u[--r];)u[r]=T-1;--u[r],u[i]+=T}u[i]-=p[i]}for(;0===u[--o];)u.pop();for(;0===u[0];u.shift())--n;return u[0]?(e.d=u,e.e=getBase10Exponent(u,n),d?finalise(e,a,l):e):new h(3===l?-0:0)},R.modulo=R.mod=function(e){var t,n=this,i=n.constructor;return e=new i(e),!n.d||!e.s||e.d&&!e.d[0]?new i(NaN):!e.d||n.d&&!n.d[0]?finalise(new i(n),i.precision,i.rounding):(d=!1,9==i.modulo?(t=F(n,e.abs(),0,3,1)).s*=e.s:t=F(n,e,0,i.modulo,1),t=t.times(e),d=!0,n.minus(t))},R.naturalExponential=R.exp=function(){return naturalExponential(this)},R.naturalLogarithm=R.ln=function(){return naturalLogarithm(this)},R.negated=R.neg=function(){var e=new this.constructor(this);return e.s=-e.s,finalise(e)},R.plus=R.add=function(e){var t,n,i,r,s,o,a,l,u,c,m=this,p=m.constructor;if(e=new p(e),!m.d||!e.d)return m.s&&e.s?m.d||(e=new p(e.d||m.s===e.s?m:NaN)):e=new p(NaN),e;if(m.s!=e.s)return e.s=-e.s,m.minus(e);if(u=m.d,c=e.d,a=p.precision,l=p.rounding,!u[0]||!c[0])return c[0]||(e=new p(m)),d?finalise(e,a,l):e;if(s=v(m.e/7),i=v(e.e/7),u=u.slice(),r=s-i){for(r<0?(n=u,r=-r,o=c.length):(n=c,i=s,o=u.length),r>(o=(s=Math.ceil(a/7))>o?s+1:o+1)&&(r=o,n.length=1),n.reverse();r--;)n.push(0);n.reverse()}for((o=u.length)-(r=c.length)<0&&(r=o,n=c,c=u,u=n),t=0;r;)t=(u[--r]=u[r]+c[r]+t)/T|0,u[r]%=T;for(t&&(u.unshift(t),++i),o=u.length;0==u[--o];)u.pop();return e.d=u,e.e=getBase10Exponent(u,i),d?finalise(e,a,l):e},R.precision=R.sd=function(e){var t,n=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(h+e);return n.d?(t=getPrecision(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t},R.round=function(){var e=this,t=e.constructor;return finalise(new t(e),e.e+1,t.rounding)},R.sine=R.sin=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+7,i.rounding=1,n=function sine(e,t){var n,i=t.d.length;if(i<3)return t.isZero()?t:taylorSeries(e,2,t,t);n=(n=1.4*Math.sqrt(i))>16?16:0|n,t=t.times(1/tinyPow(5,n)),t=taylorSeries(e,2,t,t);for(var r,s=new e(5),o=new e(16),a=new e(20);n--;)r=t.times(t),t=t.times(s.plus(r.times(o.times(r).minus(a))));return t}(i,toLessThanHalfPi(i,n)),i.precision=e,i.rounding=t,finalise(o>2?n.neg():n,e,t,!0)):new i(NaN)},R.squareRoot=R.sqrt=function(){var e,t,n,i,r,s,o=this,a=o.d,l=o.e,u=o.s,c=o.constructor;if(1!==u||!a||!a[0])return new c(!u||u<0&&(!a||a[0])?NaN:a?o:1/0);for(d=!1,0==(u=Math.sqrt(+o))||u==1/0?(((t=digitsToString(a)).length+l)%2==0&&(t+="0"),u=Math.sqrt(t),l=v((l+1)/2)-(l<0||l%2),i=new c(t=u==1/0?"5e"+l:(t=u.toExponential()).slice(0,t.indexOf("e")+1)+l)):i=new c(u.toString()),n=(l=c.precision)+3;;)if(i=(s=i).plus(F(o,s,n+2,1)).times(.5),digitsToString(s.d).slice(0,n)===(t=digitsToString(i.d)).slice(0,n)){if("9999"!=(t=t.slice(n-3,n+1))&&(r||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(finalise(i,l+1,1),e=!i.times(i).eq(o));break}if(!r&&(finalise(s,l+1,0),s.times(s).eq(o))){i=s;break}n+=4,r=1}return d=!0,finalise(i,l,c.rounding,e)},R.tangent=R.tan=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+10,i.rounding=1,(n=n.sin()).s=1,n=F(n,new i(1).minus(n.times(n)).sqrt(),e+10,0),i.precision=e,i.rounding=t,finalise(2==o||4==o?n.neg():n,e,t,!0)):new i(NaN)},R.times=R.mul=function(e){var t,n,i,r,s,o,a,l,u,c=this,m=c.constructor,p=c.d,g=(e=new m(e)).d;if(e.s*=c.s,!(p&&p[0]&&g&&g[0]))return new m(!e.s||p&&!p[0]&&!g||g&&!g[0]&&!p?NaN:p&&g?0*e.s:e.s/0);for(n=v(c.e/7)+v(e.e/7),(l=p.length)<(u=g.length)&&(s=p,p=g,g=s,o=l,l=u,u=o),s=[],i=o=l+u;i--;)s.push(0);for(i=u;--i>=0;){for(t=0,r=l+i;r>i;)a=s[r]+g[i]*p[r-i-1]+t,s[r--]=a%T|0,t=a/T|0;s[r]=(s[r]+t)%T|0}for(;!s[--o];)s.pop();return t?++n:s.shift(),e.d=s,e.e=getBase10Exponent(s,n),d?finalise(e,m.precision,m.rounding):e},R.toBinary=function(e,t){return toStringBinary(this,2,e,t)},R.toDecimalPlaces=R.toDP=function(e,t){var n=this,i=n.constructor;return n=new i(n),void 0===e?n:(checkInt32(e,0,l),void 0===t?t=i.rounding:checkInt32(t,0,8),finalise(n,e+n.e+1,t))},R.toExponential=function(e,t){var n,i=this,r=i.constructor;return void 0===e?n=finiteToString(i,!0):(checkInt32(e,0,l),void 0===t?t=r.rounding:checkInt32(t,0,8),n=finiteToString(i=finalise(new r(i),e+1,t),!0,e+1)),i.isNeg()&&!i.isZero()?"-"+n:n},R.toFixed=function(e,t){var n,i,r=this,s=r.constructor;return void 0===e?n=finiteToString(r):(checkInt32(e,0,l),void 0===t?t=s.rounding:checkInt32(t,0,8),n=finiteToString(i=finalise(new s(r),e+r.e+1,t),!1,e+i.e+1)),r.isNeg()&&!r.isZero()?"-"+n:n},R.toFraction=function(e){var t,n,i,r,s,o,a,l,u,c,m,p,g=this,x=g.d,E=g.constructor;if(!x)return new E(g);if(u=n=new E(1),i=l=new E(0),o=(s=(t=new E(i)).e=getPrecision(x)-g.e-1)%7,t.d[0]=P(10,o<0?7+o:o),null==e)e=s>0?t:u;else{if(!(a=new E(e)).isInt()||a.lt(u))throw Error(h+a);e=a.gt(t)?s>0?t:u:a}for(d=!1,a=new E(digitsToString(x)),c=E.precision,E.precision=s=7*x.length*2;m=F(a,t,0,1,1),1!=(r=n.plus(m.times(i))).cmp(e);)n=i,i=r,r=u,u=l.plus(m.times(r)),l=r,r=t,t=a.minus(m.times(r)),a=r;return r=F(e.minus(n),i,0,1,1),l=l.plus(r.times(u)),n=n.plus(r.times(i)),l.s=u.s=g.s,p=F(u,i,s,1).minus(g).abs().cmp(F(l,n,s,1).minus(g).abs())<1?[u,i]:[l,n],E.precision=c,d=!0,p},R.toHexadecimal=R.toHex=function(e,t){return toStringBinary(this,16,e,t)},R.toNearest=function(e,t){var n=this,i=n.constructor;if(n=new i(n),null==e){if(!n.d)return n;e=new i(1),t=i.rounding}else{if(e=new i(e),void 0===t?t=i.rounding:checkInt32(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(d=!1,n=F(n,e,0,t,1).times(e),d=!0,finalise(n)):(e.s=n.s,n=e),n},R.toNumber=function(){return+this},R.toOctal=function(e,t){return toStringBinary(this,8,e,t)},R.toPower=R.pow=function(e){var t,n,i,r,s,o,a=this,l=a.constructor,u=+(e=new l(e));if(!(a.d&&e.d&&a.d[0]&&e.d[0]))return new l(P(+a,u));if((a=new l(a)).eq(1))return a;if(i=l.precision,s=l.rounding,e.eq(1))return finalise(a,i,s);if((t=v(e.e/7))>=e.d.length-1&&(n=u<0?-u:u)<=9007199254740991)return r=intPow(l,a,n,i),e.s<0?new l(1).div(r):finalise(r,i,s);if((o=a.s)<0){if(t<e.d.length-1)return new l(NaN);if(1&e.d[t]||(o=1),0==a.e&&1==a.d[0]&&1==a.d.length)return a.s=o,a}return(t=0!=(n=P(+a,u))&&isFinite(n)?new l(n+"").e:v(u*(Math.log("0."+digitsToString(a.d))/Math.LN10+a.e+1)))>l.maxE+1||t<l.minE-1?new l(t>0?o/0:0):(d=!1,l.rounding=a.s=1,n=Math.min(12,(t+"").length),(r=naturalExponential(e.times(naturalLogarithm(a,i+n)),i)).d&&checkRoundingDigits((r=finalise(r,i+5,1)).d,i,s)&&(t=i+10,+digitsToString((r=finalise(naturalExponential(e.times(naturalLogarithm(a,t+n)),t),t+5,1)).d).slice(i+1,i+15)+1==1e14&&(r=finalise(r,i+1,0))),r.s=o,d=!0,l.rounding=s,finalise(r,i,s))},R.toPrecision=function(e,t){var n,i=this,r=i.constructor;return void 0===e?n=finiteToString(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(checkInt32(e,1,l),void 0===t?t=r.rounding:checkInt32(t,0,8),n=finiteToString(i=finalise(new r(i),e,t),e<=i.e||i.e<=r.toExpNeg,e)),i.isNeg()&&!i.isZero()?"-"+n:n},R.toSignificantDigits=R.toSD=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(checkInt32(e,1,l),void 0===t?t=n.rounding:checkInt32(t,0,8)),finalise(new n(this),e,t)},R.toString=function(){var e=this,t=e.constructor,n=finiteToString(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n},R.truncated=R.trunc=function(){return finalise(new this.constructor(this),this.e+1,1)},R.valueOf=R.toJSON=function(){var e=this,t=e.constructor,n=finiteToString(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};var F=function(){function multiplyInteger(e,t,n){var i,r=0,s=e.length;for(e=e.slice();s--;)i=e[s]*t+r,e[s]=i%n|0,r=i/n|0;return r&&e.unshift(r),e}function compare(e,t,n,i){var r,s;if(n!=i)s=n>i?1:-1;else for(r=s=0;r<n;r++)if(e[r]!=t[r]){s=e[r]>t[r]?1:-1;break}return s}function subtract(e,t,n,i){for(var r=0;n--;)e[n]-=r,r=e[n]<t[n]?1:0,e[n]=r*i+e[n]-t[n];for(;!e[0]&&e.length>1;)e.shift()}return function(e,t,n,i,r,o){var a,l,u,c,m,p,d,g,h,x,E,y,P,w,b,M,A,N,O,R,F=e.constructor,D=e.s==t.s?1:-1,k=e.d,z=t.d;if(!(k&&k[0]&&z&&z[0]))return new F(e.s&&t.s&&(k?!z||k[0]!=z[0]:z)?k&&0==k[0]||!z?0*D:D/0:NaN);for(o?(m=1,l=e.e-t.e):(o=T,m=7,l=v(e.e/m)-v(t.e/m)),O=z.length,A=k.length,x=(h=new F(D)).d=[],u=0;z[u]==(k[u]||0);u++);if(z[u]>(k[u]||0)&&l--,null==n?(w=n=F.precision,i=F.rounding):w=r?n+(e.e-t.e)+1:n,w<0)x.push(1),p=!0;else{if(w=w/m+2|0,u=0,1==O){for(c=0,z=z[0],w++;(u<A||c)&&w--;u++)b=c*o+(k[u]||0),x[u]=b/z|0,c=b%z|0;p=c||u<A}else{for((c=o/(z[0]+1)|0)>1&&(z=multiplyInteger(z,c,o),k=multiplyInteger(k,c,o),O=z.length,A=k.length),M=O,y=(E=k.slice(0,O)).length;y<O;)E[y++]=0;(R=z.slice()).unshift(0),N=z[0],z[1]>=o/2&&++N;do{c=0,(a=compare(z,E,O,y))<0?(P=E[0],O!=y&&(P=P*o+(E[1]||0)),(c=P/N|0)>1?(c>=o&&(c=o-1),1==(a=compare(d=multiplyInteger(z,c,o),E,g=d.length,y=E.length))&&(c--,subtract(d,O<g?R:z,g,o))):(0==c&&(a=c=1),d=z.slice()),(g=d.length)<y&&d.unshift(0),subtract(E,d,y,o),-1==a&&(a=compare(z,E,O,y=E.length))<1&&(c++,subtract(E,O<y?R:z,y,o)),y=E.length):0===a&&(c++,E=[0]),x[u++]=c,a&&E[0]?E[y++]=k[M]||0:(E=[k[M]],y=1)}while((M++<A||void 0!==E[0])&&w--);p=void 0!==E[0]}x[0]||x.shift()}if(1==m)h.e=l,s=p;else{for(u=1,c=x[0];c>=10;c/=10)u++;h.e=u+l*m-1,finalise(h,r?n+h.e+1:n,i,p)}return h}}();function finalise(e,t,n,i){var r,s,o,a,l,u,c,m,p,g=e.constructor;e:if(null!=t){if(!(m=e.d))return e;for(r=1,a=m[0];a>=10;a/=10)r++;if((s=t-r)<0)s+=7,o=t,l=(c=m[p=0])/P(10,r-o-1)%10|0;else if((p=Math.ceil((s+1)/7))>=(a=m.length)){if(!i)break e;for(;a++<=p;)m.push(0);c=l=0,r=1,o=(s%=7)-7+1}else{for(c=a=m[p],r=1;a>=10;a/=10)r++;l=(o=(s%=7)-7+r)<0?0:c/P(10,r-o-1)%10|0}if(i=i||t<0||void 0!==m[p+1]||(o<0?c:c%P(10,r-o-1)),u=n<4?(l||i)&&(0==n||n==(e.s<0?3:2)):l>5||5==l&&(4==n||i||6==n&&(s>0?o>0?c/P(10,r-o):0:m[p-1])%10&1||n==(e.s<0?8:7)),t<1||!m[0])return m.length=0,u?(t-=e.e+1,m[0]=P(10,(7-t%7)%7),e.e=-t||0):m[0]=e.e=0,e;if(0==s?(m.length=p,a=1,p--):(m.length=p+1,a=P(10,7-s),m[p]=o>0?(c/P(10,r-o)%P(10,o)|0)*a:0),u)for(;;){if(0==p){for(s=1,o=m[0];o>=10;o/=10)s++;for(o=m[0]+=a,a=1;o>=10;o/=10)a++;s!=a&&(e.e++,m[0]==T&&(m[0]=1));break}if(m[p]+=a,m[p]!=T)break;m[p--]=0,a=1}for(s=m.length;0===m[--s];)m.pop()}return d&&(e.e>g.maxE?(e.d=null,e.e=NaN):e.e<g.minE&&(e.e=0,e.d=[0])),e}function finiteToString(e,t,n){if(!e.isFinite())return nonFiniteToString(e);var i,r=e.e,s=digitsToString(e.d),o=s.length;return t?(n&&(i=n-o)>0?s=s.charAt(0)+"."+s.slice(1)+getZeroString(i):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):r<0?(s="0."+getZeroString(-r-1)+s,n&&(i=n-o)>0&&(s+=getZeroString(i))):r>=o?(s+=getZeroString(r+1-o),n&&(i=n-r-1)>0&&(s=s+"."+getZeroString(i))):((i=r+1)<o&&(s=s.slice(0,i)+"."+s.slice(i)),n&&(i=n-o)>0&&(r+1===o&&(s+="."),s+=getZeroString(i))),s}function getBase10Exponent(e,t){var n=e[0];for(t*=7;n>=10;n/=10)t++;return t}function getLn10(e,t,n){if(t>N)throw d=!0,n&&(e.precision=n),Error(x);return finalise(new e(c),t,1,!0)}function getPi(e,t,n){if(t>O)throw Error(x);return finalise(new e(m),t,n,!0)}function getPrecision(e){var t=e.length-1,n=7*t+1;if(t=e[t]){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function getZeroString(e){for(var t="";e--;)t+="0";return t}function intPow(e,t,n,i){var r,s=new e(1),o=Math.ceil(i/7+4);for(d=!1;;){if(n%2&&truncate((s=s.times(t)).d,o)&&(r=!0),0===(n=v(n/2))){n=s.d.length-1,r&&0===s.d[n]&&++s.d[n];break}truncate((t=t.times(t)).d,o)}return d=!0,s}function isOdd(e){return 1&e.d[e.d.length-1]}function maxOrMin(e,t,n){for(var i,r,s=new e(t[0]),o=0;++o<t.length;){if(!(r=new e(t[o])).s){s=r;break}((i=s.cmp(r))===n||0===i&&s.s===n)&&(s=r)}return s}function naturalExponential(e,t){var n,i,r,s,o,a,l,u=0,c=0,m=0,p=e.constructor,g=p.rounding,h=p.precision;if(!e.d||!e.d[0]||e.e>17)return new p(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(d=!1,l=h):l=t,a=new p(.03125);e.e>-2;)e=e.times(a),m+=5;for(l+=i=Math.log(P(2,m))/Math.LN10*2+5|0,n=s=o=new p(1),p.precision=l;;){if(s=finalise(s.times(e),l,1),n=n.times(++c),digitsToString((a=o.plus(F(s,n,l,1))).d).slice(0,l)===digitsToString(o.d).slice(0,l)){for(r=m;r--;)o=finalise(o.times(o),l,1);if(null!=t)return p.precision=h,o;if(!(u<3&&checkRoundingDigits(o.d,l-i,g,u)))return finalise(o,p.precision=h,g,d=!0);p.precision=l+=10,n=s=a=new p(1),c=0,u++}o=a}}function naturalLogarithm(e,t){var n,i,r,s,o,a,l,u,c,m,p,g=1,h=e,x=h.d,E=h.constructor,y=E.rounding,v=E.precision;if(h.s<0||!x||!x[0]||!h.e&&1==x[0]&&1==x.length)return new E(x&&!x[0]?-1/0:1!=h.s?NaN:x?0:h);if(null==t?(d=!1,c=v):c=t,E.precision=c+=10,i=(n=digitsToString(x)).charAt(0),!(Math.abs(s=h.e)<15e14))return u=getLn10(E,c+2,v).times(s+""),h=naturalLogarithm(new E(i+"."+n.slice(1)),c-10).plus(u),E.precision=v,null==t?finalise(h,v,y,d=!0):h;for(;i<7&&1!=i||1==i&&n.charAt(1)>3;)i=(n=digitsToString((h=h.times(e)).d)).charAt(0),g++;for(s=h.e,i>1?(h=new E("0."+n),s++):h=new E(i+"."+n.slice(1)),m=h,l=o=h=F(h.minus(1),h.plus(1),c,1),p=finalise(h.times(h),c,1),r=3;;){if(o=finalise(o.times(p),c,1),digitsToString((u=l.plus(F(o,new E(r),c,1))).d).slice(0,c)===digitsToString(l.d).slice(0,c)){if(l=l.times(2),0!==s&&(l=l.plus(getLn10(E,c+2,v).times(s+""))),l=F(l,new E(g),c,1),null!=t)return E.precision=v,l;if(!checkRoundingDigits(l.d,c-10,y,a))return finalise(l,E.precision=v,y,d=!0);E.precision=c+=10,u=o=h=F(m.minus(1),m.plus(1),c,1),p=finalise(h.times(h),c,1),r=a=1}l=u,r+=2}}function nonFiniteToString(e){return String(e.s*e.s/0)}function parseDecimal(e,t){var n,i,r;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(i=t.search(/e/i))>0?(n<0&&(n=i),n+=+t.slice(i+1),t=t.substring(0,i)):n<0&&(n=t.length),i=0;48===t.charCodeAt(i);i++);for(r=t.length;48===t.charCodeAt(r-1);--r);if(t=t.slice(i,r)){if(r-=i,e.e=n=n-i-1,e.d=[],i=(n+1)%7,n<0&&(i+=7),i<r){for(i&&e.d.push(+t.slice(0,i)),r-=7;i<r;)e.d.push(+t.slice(i,i+=7));i=7-(t=t.slice(i)).length}else i-=r;for(;i--;)t+="0";e.d.push(+t),d&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function parseOther(e,t){var n,i,s,o,a,l,u,c,m;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),A.test(t))return parseDecimal(e,t)}else if("Infinity"===t||"NaN"===t)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(b.test(t))n=16,t=t.toLowerCase();else if(w.test(t))n=2;else{if(!M.test(t))throw Error(h+t);n=8}for((o=t.search(/p/i))>0?(u=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),a=(o=t.indexOf("."))>=0,i=e.constructor,a&&(o=(l=(t=t.replace(".","")).length)-o,s=intPow(i,new i(n),o,2*o)),o=m=(c=convertBase(t,n,T)).length-1;0===c[o];--o)c.pop();return o<0?new i(0*e.s):(e.e=getBase10Exponent(c,m),e.d=c,d=!1,a&&(e=F(e,s,4*l)),u&&(e=e.times(Math.abs(u)<54?P(2,u):r.pow(2,u))),d=!0,e)}function taylorSeries(e,t,n,i,r){var s,o,a,l,u=e.precision,c=Math.ceil(u/7);for(d=!1,l=n.times(n),a=new e(i);;){if(o=F(a.times(l),new e(t++*t++),u,1),a=r?i.plus(o):i.minus(o),i=F(o.times(l),new e(t++*t++),u,1),void 0!==(o=a.plus(i)).d[c]){for(s=c;o.d[s]===a.d[s]&&s--;);if(-1==s)break}s=a,a=i,i=o,o=s}return d=!0,o.d.length=c+1,o}function tinyPow(e,t){for(var n=e;--t;)n*=e;return n}function toLessThanHalfPi(e,t){var n,i=t.s<0,r=getPi(e,e.precision,1),s=r.times(.5);if((t=t.abs()).lte(s))return o=i?4:1,t;if((n=t.divToInt(r)).isZero())o=i?3:2;else{if((t=t.minus(n.times(r))).lte(s))return o=isOdd(n)?i?2:3:i?4:1,t;o=isOdd(n)?i?1:4:i?3:2}return t.minus(r).abs()}function toStringBinary(e,t,n,i){var r,o,a,c,m,p,d,g,h,x=e.constructor,E=void 0!==n;if(E?(checkInt32(n,1,l),void 0===i?i=x.rounding:checkInt32(i,0,8)):(n=x.precision,i=x.rounding),e.isFinite()){for(E?(r=2,16==t?n=4*n-3:8==t&&(n=3*n-2)):r=t,(a=(d=finiteToString(e)).indexOf("."))>=0&&(d=d.replace(".",""),(h=new x(1)).e=d.length-a,h.d=convertBase(finiteToString(h),10,r),h.e=h.d.length),o=m=(g=convertBase(d,10,r)).length;0==g[--m];)g.pop();if(g[0]){if(a<0?o--:((e=new x(e)).d=g,e.e=o,g=(e=F(e,h,n,i,0,r)).d,o=e.e,p=s),a=g[n],c=r/2,p=p||void 0!==g[n+1],p=i<4?(void 0!==a||p)&&(0===i||i===(e.s<0?3:2)):a>c||a===c&&(4===i||p||6===i&&1&g[n-1]||i===(e.s<0?8:7)),g.length=n,p)for(;++g[--n]>r-1;)g[n]=0,n||(++o,g.unshift(1));for(m=g.length;!g[m-1];--m);for(a=0,d="";a<m;a++)d+=u.charAt(g[a]);if(E){if(m>1)if(16==t||8==t){for(a=16==t?4:3,--m;m%a;m++)d+="0";for(m=(g=convertBase(d,r,t)).length;!g[m-1];--m);for(a=1,d="1.";a<m;a++)d+=u.charAt(g[a])}else d=d.charAt(0)+"."+d.slice(1);d=d+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)d="0"+d;d="0."+d}else if(++o>m)for(o-=m;o--;)d+="0";else o<m&&(d=d.slice(0,o)+"."+d.slice(o))}else d=E?"0p+0":"0";d=(16==t?"0x":2==t?"0b":8==t?"0o":"")+d}else d=nonFiniteToString(e);return e.s<0?"-"+d:d}function truncate(e,t){if(e.length>t)return e.length=t,!0}function abs(e){return new this(e).abs()}function acos(e){return new this(e).acos()}function acosh(e){return new this(e).acosh()}function add(e,t){return new this(e).plus(t)}function asin(e){return new this(e).asin()}function asinh(e){return new this(e).asinh()}function atan(e){return new this(e).atan()}function atanh(e){return new this(e).atanh()}function atan2(e,t){e=new this(e),t=new this(t);var n,i=this.precision,r=this.rounding,s=i+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(n=t.s<0?getPi(this,i,r):new this(0)).s=e.s:!e.d||t.isZero()?(n=getPi(this,s,1).times(.5)).s=e.s:t.s<0?(this.precision=s,this.rounding=1,n=this.atan(F(e,t,s,1)),t=getPi(this,s,1),this.precision=i,this.rounding=r,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(F(e,t,s,1)):(n=getPi(this,s,1).times(t.s>0?.25:.75)).s=e.s:n=new this(NaN),n}function cbrt(e){return new this(e).cbrt()}function ceil(e){return finalise(e=new this(e),e.e+1,2)}function clamp(e,t,n){return new this(e).clamp(t,n)}function config(e){if(!e||"object"!=typeof e)throw Error(g+"Object expected");var t,n,i,r=!0===e.defaults,s=["precision",1,l,"rounding",0,8,"toExpNeg",-a,0,"toExpPos",0,a,"maxE",0,a,"minE",-a,0,"modulo",0,9];for(t=0;t<s.length;t+=3)if(n=s[t],r&&(this[n]=p[n]),void 0!==(i=e[n])){if(!(v(i)===i&&i>=s[t+1]&&i<=s[t+2]))throw Error(h+n+": "+i);this[n]=i}if(n="crypto",r&&(this[n]=p[n]),void 0!==(i=e[n])){if(!0!==i&&!1!==i&&0!==i&&1!==i)throw Error(h+n+": "+i);if(i){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(E);this[n]=!0}else this[n]=!1}return this}function cos(e){return new this(e).cos()}function cosh(e){return new this(e).cosh()}function div(e,t){return new this(e).div(t)}function exp(e){return new this(e).exp()}function floor(e){return finalise(e=new this(e),e.e+1,3)}function hypot(){var e,t,n=new this(0);for(d=!1,e=0;e<arguments.length;)if((t=new this(arguments[e++])).d)n.d&&(n=n.plus(t.times(t)));else{if(t.s)return d=!0,new this(1/0);n=t}return d=!0,n.sqrt()}function isDecimalInstance(e){return e instanceof r||e&&e.toStringTag===y||!1}function ln(e){return new this(e).ln()}function log(e,t){return new this(e).log(t)}function log2(e){return new this(e).log(2)}function log10(e){return new this(e).log(10)}function max(){return maxOrMin(this,arguments,-1)}function min(){return maxOrMin(this,arguments,1)}function mod(e,t){return new this(e).mod(t)}function mul(e,t){return new this(e).mul(t)}function pow(e,t){return new this(e).pow(t)}function random(e){var t,n,i,r,s=0,o=new this(1),a=[];if(void 0===e?e=this.precision:checkInt32(e,1,l),i=Math.ceil(e/7),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(i));s<i;)(r=t[s])>=429e7?t[s]=crypto.getRandomValues(new Uint32Array(1))[0]:a[s++]=r%1e7;else{if(!crypto.randomBytes)throw Error(E);for(t=crypto.randomBytes(i*=4);s<i;)(r=t[s]+(t[s+1]<<8)+(t[s+2]<<16)+((127&t[s+3])<<24))>=214e7?crypto.randomBytes(4).copy(t,s):(a.push(r%1e7),s+=4);s=i/4}else for(;s<i;)a[s++]=1e7*Math.random()|0;for(e%=7,(i=a[--s])&&e&&(r=P(10,7-e),a[s]=(i/r|0)*r);0===a[s];s--)a.pop();if(s<0)n=0,a=[0];else{for(n=-1;0===a[0];n-=7)a.shift();for(i=1,r=a[0];r>=10;r/=10)i++;i<7&&(n-=7-i)}return o.e=n,o.d=a,o}function round(e){return finalise(e=new this(e),e.e+1,this.rounding)}function sign(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function sin(e){return new this(e).sin()}function sinh(e){return new this(e).sinh()}function sqrt(e){return new this(e).sqrt()}function sub(e,t){return new this(e).sub(t)}function sum(){var e=0,t=arguments,n=new this(t[e]);for(d=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return d=!0,finalise(n,this.precision,this.rounding)}function tan(e){return new this(e).tan()}function tanh(e){return new this(e).tanh()}function trunc(e){return finalise(e=new this(e),e.e+1,1)}r=function clone(e){var t,n,i;function Decimal(e){var t,n,i,r=this;if(!(r instanceof Decimal))return new Decimal(e);if(r.constructor=Decimal,isDecimalInstance(e))return r.s=e.s,void(d?!e.d||e.e>Decimal.maxE?(r.e=NaN,r.d=null):e.e<Decimal.minE?(r.e=0,r.d=[0]):(r.e=e.e,r.d=e.d.slice()):(r.e=e.e,r.d=e.d?e.d.slice():e.d));if("number"==(i=typeof e)){if(0===e)return r.s=1/e<0?-1:1,r.e=0,void(r.d=[0]);if(e<0?(e=-e,r.s=-1):r.s=1,e===~~e&&e<1e7){for(t=0,n=e;n>=10;n/=10)t++;return void(d?t>Decimal.maxE?(r.e=NaN,r.d=null):t<Decimal.minE?(r.e=0,r.d=[0]):(r.e=t,r.d=[e]):(r.e=t,r.d=[e]))}return 0*e!=0?(e||(r.s=NaN),r.e=NaN,void(r.d=null)):parseDecimal(r,e.toString())}if("string"===i)return 45===(n=e.charCodeAt(0))?(e=e.slice(1),r.s=-1):(43===n&&(e=e.slice(1)),r.s=1),A.test(e)?parseDecimal(r,e):parseOther(r,e);if("bigint"===i)return e<0?(e=-e,r.s=-1):r.s=1,parseDecimal(r,e.toString());throw Error(h+e)}if(Decimal.prototype=R,Decimal.ROUND_UP=0,Decimal.ROUND_DOWN=1,Decimal.ROUND_CEIL=2,Decimal.ROUND_FLOOR=3,Decimal.ROUND_HALF_UP=4,Decimal.ROUND_HALF_DOWN=5,Decimal.ROUND_HALF_EVEN=6,Decimal.ROUND_HALF_CEIL=7,Decimal.ROUND_HALF_FLOOR=8,Decimal.EUCLID=9,Decimal.config=Decimal.set=config,Decimal.clone=clone,Decimal.isDecimal=isDecimalInstance,Decimal.abs=abs,Decimal.acos=acos,Decimal.acosh=acosh,Decimal.add=add,Decimal.asin=asin,Decimal.asinh=asinh,Decimal.atan=atan,Decimal.atanh=atanh,Decimal.atan2=atan2,Decimal.cbrt=cbrt,Decimal.ceil=ceil,Decimal.clamp=clamp,Decimal.cos=cos,Decimal.cosh=cosh,Decimal.div=div,Decimal.exp=exp,Decimal.floor=floor,Decimal.hypot=hypot,Decimal.ln=ln,Decimal.log=log,Decimal.log10=log10,Decimal.log2=log2,Decimal.max=max,Decimal.min=min,Decimal.mod=mod,Decimal.mul=mul,Decimal.pow=pow,Decimal.random=random,Decimal.round=round,Decimal.sign=sign,Decimal.sin=sin,Decimal.sinh=sinh,Decimal.sqrt=sqrt,Decimal.sub=sub,Decimal.sum=sum,Decimal.tan=tan,Decimal.tanh=tanh,Decimal.trunc=trunc,void 0===e&&(e={}),e&&!0!==e.defaults)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<i.length;)e.hasOwnProperty(n=i[t++])||(e[n]=this[n]);return Decimal.config(e),Decimal}(p),r.prototype.constructor=r,r.default=r.Decimal=r,c=new r(c),m=new r(m),void 0===(i=function(){return r}.call(t,n,t,e))||(e.exports=i)}()},3148(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setFunction=function setFunction(e){const t=s.mathFunctionRegistry[e.name];if("system"===t?.level)throw new o.AssignmentError((0,o.message)("restrictedVariableName",{name:e.name}));if("js"===e.type){const t=e.name;if("function"!=typeof e.fn)throw new o.UnexpectedInputError((0,o.message)("setJSFunctionExpectsFunction"));if(!e.minArgs||!e.maxArgs)throw new o.UnexpectedInputError((0,o.message)("functionRequiresMinAndMaxArgs"));s.mathFunctionRegistry[t]=entry(e.minArgs,e.maxArgs,function jsWrapper(e,t){return(...n)=>{const r=[];for(const t of n){if(!t.isNUM())return i.Expression.toFunction(e,n);r.push(Number(t.getMultiplier().toDecimal()))}return i.Expression.create(Number(t(...r)))}}(t,e.fn),17)}else if("symbolic"===e.type)if("string"==typeof e.fn){const t=e.argsOrder??i.Expression.create(e.fn).variables().sort();s.mathFunctionRegistry[e.name]=entry(e.minArgs??t.length,e.maxArgs??t.length,(0,r.wrappedFunction)(e.fn,t))}else{const t=e.name;if(void 0===e.minArgs||void 0===e.maxArgs)throw new o.UnexpectedInputError((0,o.message)("functionRequiresMinAndMaxArgs"));s.mathFunctionRegistry[t]=entry(e.minArgs,e.maxArgs,e.fn)}};const i=n(296),r=n(266),s=n(9426),o=n(4703);function entry(e,t,n,i){return{minArgs:e,maxArgs:t,fn:n,maxPrecision:i,usage:"notation",level:"user"}}},3170(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Complex=void 0;const r=i(n(3110)),s=n(4703);class Complex{im;re;constructor(e,t=0){this.re="number"==typeof e?new r.default(e):e,this.im="number"==typeof t?new r.default(t):t}static create(e,t=0){return new Complex(e instanceof r.default?e:new r.default(e),t instanceof r.default?t:new r.default(t))}abs(){return this.re.mul(this.re).plus(this.im.mul(this.im)).sqrt()}add(e){return new Complex(this.re.plus(e.re),this.im.plus(e.im))}conjugate(){return new Complex(this.re,this.im.neg())}div(e){const t=e.re.mul(e.re).plus(e.im.mul(e.im));if(t.isZero())throw new s.DivisionByZeroError((0,s.message)("divisionByZero"));return new Complex(this.re.mul(e.re).plus(this.im.mul(e.im)).div(t),this.im.mul(e.re).minus(this.re.mul(e.im)).div(t))}mul(e){return new Complex(this.re.mul(e.re).minus(this.im.mul(e.im)),this.re.mul(e.im).plus(this.im.mul(e.re)))}neg(){return new Complex(this.re.neg(),this.im.neg())}scale(e){const t=e instanceof r.default?e:new r.default(e);return new Complex(this.re.mul(t),this.im.mul(t))}sub(e){return new Complex(this.re.minus(e.re),this.im.minus(e.im))}}t.Complex=Complex},3171(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.divide=function divide(e,t){let n;if(r.Settings.DEFER_SIMPLIFICATION)t.isNUM()&&(t.power=(0,o.one)()),n=div(e,t),n.deferred=!0;else{if(t.isZero())throw new i.DivisionByZeroError((0,i.message)("divisionByZero"));if(e.isZero()&&!t.isInf())n=s.Expression.Number("0");else if(e.isNUM()&&t.isNUM())n=s.Expression.fromRational(e.getMultiplier().div(t.getMultiplier()));else if(t.isNUM()){n=e.copy();const i=e.getMultiplier().div(t.getMultiplier());n.multiplier=i}else{if(e.isComplex()||t.isComplex()){const n=e.realPart(),i=t.realPart(),r=e.imagPart(),o=t.imagPart(),a=i.sq().plus(o.sq()),l=n.times(i).plus(r.times(o)).div(a),u=r.times(i).minus(n.times(o)).div(a).times(s.Expression.Img());return l.plus(u)}t.isInf()&&!e.isZero()?t.getMultiplier().isNegative()||e.isInf()||(n=s.Expression.Number("0")):(n=div(e,t),n.isEXP()&&n.hasRadical()&&(n=(0,l.rationalizeRadical)(n)))}if(!n)throw new i.UndefinedError((0,i.message)("undefinedDivision",{type:`${e}/${t}`}))}return n};const i=n(4703),r=n(5817),s=n(296),o=n(6099),a=n(6498),l=n(3957);function div(e,t){return(t=t.copy()).power=t.getPower().neg(),t.multiplier=t.getMultiplier().invert(),(0,a.multiply)(e,t)}},3552(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dot=function dot(e,t){let n;if(o.Vector.isVector(e)&&o.Vector.isVector(t))n=e.dot(t);else{if(!r.Expression.isExpression(e)||!r.Expression.isExpression(t)){const n=o.Vector.isVector(e)?t:e;throw new i.UnexpectedDataType((0,i.message)("vectorExpected",{type:s.dataTypes[n.dataType]}))}n=r.Expression.toFunction(s.DOT_PRODUCT,[e,t])}return n},t.cross=function cross(e,t){let n;if(o.Vector.isVector(e)&&o.Vector.isVector(t))n=e.cross(t);else{if(!r.Expression.isExpression(e)||!r.Expression.isExpression(t)){const n=o.Vector.isVector(e)?t:e;throw new i.UnexpectedDataType((0,i.message)("vectorExpected",{type:s.dataTypes[n.dataType]}))}n=r.Expression.toFunction(s.CROSS,[e,t])}return n};const i=n(4703),r=n(296),s=n(8300),o=n(3982)},3703(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EULER_GAMMA=void 0,t.factorial=factorial,t.gammaLN=gammaLN,t.gamma=gamma,t.erfc=erfc,t.erf=function erf(e){return 0===e?0:1-erfc(e)},t.GCD=GCD,t.isInt=isInt,t.doubleFactorial=function doubleFactorial(e){if(isInt(e)){if(!Number.isSafeInteger(e)||e<0)return NaN;let t=1;for(let n=e;n>1&&(t*=n,Number.isFinite(t));n-=2);return t}const t=Math.cos(Math.PI*e);return Math.pow(2,(2*e+1-t)/4)*Math.pow(Math.PI,(t-1)/4)*gamma(e/2+1)},t.LCM=function LCM(...e){let t=1;for(const n of e){if(!Number.isSafeInteger(n)){t=NaN;break}if(0===n){t=0;break}const e=GCD(t,n),i=Math.abs(t/e*n);if(!Number.isSafeInteger(i)){t=NaN;break}t=i}return t},t.modInv=function modInv(e,t){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||0===t)return NaN;let n=0,i=1,r=Math.abs(t),s=mod(e,r);for(;0!==s;){const e=Math.floor(r/s);[n,i]=[i,n-e*i],[r,s]=[s,r-e*s]}return 1===r?mod(n,Math.abs(t)):NaN},t.isPrime=function isPrime(e){if(!Number.isSafeInteger(e)||e<2)return 0;if(2===e)return 1;if(e%2==0)return 0;for(let t=3;t*t<=e;t+=2)if(e%t===0)return 0;return 1},t.heaviside=function heaviside(e){return Number.isNaN(e)?NaN:e<0?0:e>0?1:.5},t.round=function round(e,t=0){let n=e;if(!isInt(e)){const i=Math.pow(10,t),r=e*i;n=(r<0?-Math.round(-r):Math.round(r))/i}return n},t.product=function product(...e){let t=1;for(let n=0;n<e.length;n++)t*=e[n];return t},t.productInRange=function productInRange(e,t,n=1){let i=e,r=e;for(;r<t;)r+=n,i*=r;return i},t.avg=function avg(...e){return sum(...e)/e.length},t.sum=sum,t.getRandomInt=function getRandomInt(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e},t.mod=mod,t.diff=function diff(e,t=1e-4){return n=>(e(n+t)-e(n-t))/(2*t)},t.sinc=function sinc(e){if(0===e)return 1;if(Math.abs(e)<1e-4){const t=e*e;return 1-t/6+t*t/120-t*t*t/5040}return Math.sin(e)/e},t.Si=function Si(e){if(0===e)return 0;let t=1;function polevl(e,t){let n=t[0];for(let i=1;i<t.length;i++)n=n*e+t[i];return n}function p1evl(e,t){let n=e+t[0];for(let i=1;i<t.length;i++)n=n*e+t[i];return n}if(e<0&&(t=-1,e=-e),e>1e9)return t*(Math.PI/2-Math.cos(e)/e);if(e<=4){const n=[20326926619595193e-28,1.279978911799433e-9,4.418278428012189e-7,9964121220438756e-20,.01420852393261499,1],i=e*e;return t*(e*polevl(i,[-8391678279103039e-26,4.625917144270128e-8,-9757593038436328e-21,.0009769454381704354,-.04134703162294066,1])/polevl(i,n))}const n=Math.sin(e),i=Math.cos(e),r=1/(e*e);let s,o;if(e<8){const t=[8.16496634205391,7.308288225055645,1.867922579501842,.1787920529631499,.007017106683227897,.00011003435715391573,5.489002527562557e-7],n=[.08710016989731142,.6113791099522193,.3971802963923375,.07485277376284691,.005388686814621773,.00016199979459893403,19796387414096365e-22,7.825790407440903e-9],i=[1.6440220241335535,.666296701268988,.09887717612776888,.006223963454417684,.0001732210814741771,20265918208634397e-22,7.825792189335346e-9];s=polevl(r,[4.236128628922166,5.4593771716181285,1.6208328770153833,.16700661183132304,.006810201324725182,.00010893658065032867,5.489002234213736e-7])/(e*p1evl(r,t)),o=r*polevl(r,n)/p1evl(r,i)}else{const t=[.9174636118736841,.17868554533207454,.012225359477197129,.00035869648188185157,4924350643178815e-21,3.21956939101046e-8,9437205903502767e-26,970507110881952e-28],n=[.6973599534432762,.33041097930563207,.03848787676499743,.001717182390523479,34894116550227946e-21,3.471311670841167e-7,1.7040445278204452e-9,3859459254302766e-27,31404009894636335e-31],i=[1.6854889881101165,.48785225869530496,.04679131942596258,.0019028442667439953,3684755044425611e-20,3.5704322344374083e-7,1.7269374896631615e-9,3878301660239547e-27,31404009894636335e-31];s=polevl(r,[.4558808734704653,.7137152741001467,.16030015822231947,.01160642294081244,.00034955644244785906,48621543082645475e-22,3.200927900910049e-8,941779576128513e-25,970507110881952e-28])/(e*p1evl(r,t)),o=r*polevl(r,n)/p1evl(r,i)}const a=Math.PI/2-s*i-o*n;return t*a},t.Shi=function Shi(e){const t=1e-16;if(0===e)return 0;const i=e<0?-1:1,r=Math.abs(e);if(r<8){let e=r,n=e,s=0;for(let i=0;i<200;i++){const i=2*s+1;if(e*=r*r*i/((i+2)*(i+2)*(i+1)),n+=e,s++,Math.abs(e)<Math.abs(n)*t)break}return i*n}function Ei(e){if(0===e)return-1/0;if(e>40||e<-40){let n=1,i=1,r=Math.abs(n);for(let s=1;s<100;s++){n*=s/e;const o=Math.abs(n);if(o>r)break;if(r=o,i+=n,o<Math.abs(i)*t)break}return Math.exp(e)*i/e}let i=e,r=i;for(let n=1;n<500&&(i*=e*n/((n+1)*(n+1)),r+=i,!(Math.abs(i)<Math.abs(r)*t));n++);return n+Math.log(Math.abs(e))+r}return.5*(Ei(e)-Ei(-e))},t.Ci=function Ci(e){if(0===e)return-1/0;function polevl(e,t){let n=t[0];for(let i=1;i<t.length;i++)n=n*e+t[i];return n}function p1evl(e,t){let n=e+t[0];for(let i=1;i<t.length;i++)n=n*e+t[i];return n}if(e<0&&(e=-e),e>1e9)return Math.sin(e)/e;if(e<=4){const t=[4077460400618806e-27,3.067809975818878e-9,12321035568588342e-22,.00031744202477503275,.051002805623644606,4],i=e*e,r=i*polevl(i,[20252400238910228e-27,-1.3524950491579076e-8,3593250514199931e-21,-.0004740072068734079,.028915965260755523,-1])/polevl(i,t);return n+Math.log(e)+r}const t=Math.sin(e),i=Math.cos(e),r=1/(e*e);let s,o;if(e<8){const t=[8.16496634205391,7.308288225055645,1.867922579501842,.1787920529631499,.007017106683227897,.00011003435715391573,5.489002527562557e-7],n=[.08710016989731142,.6113791099522193,.3971802963923375,.07485277376284691,.005388686814621773,.00016199979459893403,19796387414096365e-22,7.825790407440903e-9],i=[1.6440220241335535,.666296701268988,.09887717612776888,.006223963454417684,.0001732210814741771,20265918208634397e-22,7.825792189335346e-9];s=polevl(r,[4.236128628922166,5.4593771716181285,1.6208328770153833,.16700661183132304,.006810201324725182,.00010893658065032867,5.489002234213736e-7])/(e*p1evl(r,t)),o=r*polevl(r,n)/p1evl(r,i)}else{const t=[.9174636118736841,.17868554533207454,.012225359477197129,.00035869648188185157,4924350643178815e-21,3.21956939101046e-8,9437205903502767e-26,970507110881952e-28],n=[.6973599534432762,.33041097930563207,.03848787676499743,.001717182390523479,34894116550227946e-21,3.471311670841167e-7,1.7040445278204452e-9,3859459254302766e-27,31404009894636335e-31],i=[1.6854889881101165,.48785225869530496,.04679131942596258,.0019028442667439953,3684755044425611e-20,3.5704322344374083e-7,1.7269374896631615e-9,3878301660239547e-27,31404009894636335e-31];s=polevl(r,[.4558808734704653,.7137152741001467,.16030015822231947,.01160642294081244,.00034955644244785906,48621543082645475e-22,3.200927900910049e-8,941779576128513e-25,970507110881952e-28])/(e*p1evl(r,t)),o=r*polevl(r,n)/p1evl(r,i)}return s*t-o*i},t.Chi=function Chi(e){const t=1e-16,i=Math.abs(e);if(0===i)return-1/0;if(i<8){let e=1,r=i*i/4,s=r;for(let n=0;n<200&&(r*=i*i*e/((e+1)*(2*e+1)*(2*e+2)),s+=r,e++,!(Math.abs(r)<Math.abs(s)*t));n++);return n+Math.log(i)+s}function Ei(e){if(0===e)return-1/0;if(e>40||e<-40){let n=1,i=1,r=Math.abs(n);for(let s=1;s<100;s++){n*=s/e;const o=Math.abs(n);if(o>r)break;if(r=o,i+=n,o<Math.abs(i)*t)break}return Math.exp(e)*i/e}let i=e,r=i;for(let n=1;n<500&&(i*=e*n/((n+1)*(n+1)),r+=i,!(Math.abs(i)<Math.abs(r)*t));n++);return n+Math.log(Math.abs(e))+r}return.5*(Ei(e)+Ei(-e))},t.Ei=function Ei(e){if(0===e)return-1/0;if(e>40||e<-40){let t=1,n=1,i=Math.abs(t);for(let r=1;r<100;r++){t*=r/e;const s=Math.abs(t);if(s>i)break;if(i=s,n+=t,s<1e-16*Math.abs(n))break}return Math.exp(e)*n/e}let t=e,i=t;for(let n=1;n<500&&(t*=e*n/((n+1)*(n+1)),i+=t,!(Math.abs(t)<1e-16*Math.abs(i)));n++);return n+Math.log(Math.abs(e))+i},t.Li=function Li(e){if(e<=0)return NaN;if(1===e)return-1/0;const t=Math.log(e);if(0===t)return-1/0;if(t>40||t<-40){let e=1,n=1,i=Math.abs(e);for(let r=1;r<100;r++){e*=r/t;const s=Math.abs(e);if(s>i)break;if(i=s,n+=e,s<1e-16*Math.abs(n))break}return Math.exp(t)*n/t}let i=t,r=i;for(let e=1;e<500&&(i*=t*e/((e+1)*(e+1)),r+=i,!(Math.abs(i)<1e-16*Math.abs(r)));e++);return n+Math.log(Math.abs(t))+r};const n=.5772156649015329;function factorial(e){if(!isInt(e))return gamma(e+1);if(!Number.isSafeInteger(e)||e<0)return NaN;if(e>170)return 1/0;const t=[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368e3,20922789888e3,355687428096e3,6402373705728e3,0x1b02b9306890000,243290200817664e4,5109094217170944e4,11240007277776077e5,2585201673888498e7,6204484017332394e8,15511210043330986e9,40329146112660565e10,10888869450418352e12,30488834461171384e13,8.841761993739701e30,26525285981219103e16];if(void 0!==t[e])return t[e];const n=t.length-1;let i=t[n];for(let t=n+1;t<=e;t++)i*=t;return i}function gammaLN(e){const t=[.9999999999999953,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];let n=0;if(e<.5)return Math.log(Math.PI/Math.sin(e*Math.PI))-gammaLN(1-e);const i=(e-=1)+607/128+.5;for(let i=14;i>=1;i--)n+=t[i]/(e+i);return n+=t[0],Math.log(Math.sqrt(2*Math.PI))+Math.log(n)-i+Math.log(i)*(e+.5)}function gamma(e){return isInt(e)&&e>1?factorial(e-1):Math.exp(gammaLN(e))}function erfc(e){if(e<0)return 2-erfc(-e);const t=e**2;return.5641895835477563/(e+2.0695502313291416)*((t+2.710785400451478*e+5.807556131303016)/(t+3.4795405709951894*e+12.061668872862395))*((t+3.474695137774396*e+12.074020364063815)/(t+3.720684439602251*e+8.443197810039685))*((t+4.0056150920225955*e+9.305966594858878)/(t+3.902257040299241*e+6.361616309538805))*((t+5.167227058178126*e+9.126616176736732)/(t+4.032968931092625*e+5.135785305856816))*((t+5.959087954466333*e+9.194356128869693)/(t+4.112409429574509*e+4.486403295234087))*Math.exp(-t)}function GCD(...e){let t=0;const n=[...new Set(e)].map(e=>Math.abs(e));for(const e of n){if(!Number.isSafeInteger(e)){t=NaN;break}let n=e;for(;0!==n;){const e=t%n;t=n,n=e}}return t}function isInt(e){return e%1==0}function sum(...e){let t=0;for(let n=0;n<e.length;n++)t+=e[n];return t}function mod(e,t){return(e%t+t)%t}t.EULER_GAMMA=n},3725(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.groebner=function groebner(e,t){const n=(a.Vector.isVector(e)?e.elements:e).map(e=>s.Expression.create(e));t??=(0,r.collectVariablesSet)(n);const c=n.map(e=>{const n=(0,i.normalizeMultiplierDenominators)(e);return(0,l.polynomialToMultiPoly)(new o.Polynomial(n,t),t).poly});return new a.Vector((0,u.Groebner)(c,t).map(e=>(0,l.multiPolyToExpression)(e,t)))};const i=n(6056),r=n(6338),s=n(296),o=n(2116),a=n(3982),l=n(1339),u=n(6431)},3957(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.power=power,t.setPower=setPower,t.sqrtToPow=function sqrtToPow(e){let t;return e.isFunction(h.SQRT)?(t=new p.Expression(e.getArguments()[0]),t=setPower(t,e.getPower().div((0,d.two)())),t.multiplier=e.getMultiplier().copy()):t=new p.Expression(e),t},t.powToSqrt=function powToSqrt(e){let t;if(e.power&&e.power.dataType===h.RATIONAL&&(0,o.isEven)(e.getPower().getMultiplier().denominator)){const n=power(e.toUnitMultiplier(),(0,d.two)());t=p.Expression.toFunction(h.SQRT,[powToSqrt(n)]),t.multiplier=e.getMultiplier().copy()}else t=new p.Expression(e);return t},t.nthPow=nthPow,t.rationalizeRadical=rationalizeRadical;const i=n(8533),r=n(1649),s=n(4703),o=n(551),a=n(551),l=n(982),u=n(4600),c=n(4600),m=n(5817),p=n(296),d=n(6099),g=n(1897),h=n(8300),x=n(619),E=n(6498),y={[h.COS]:h.SEC,[h.SEC]:h.COS,[h.SIN]:h.CSC,[h.CSC]:h.SIN,[h.TAN]:h.COT,[h.COT]:h.TAN,[h.COSH]:h.SECH,[h.SECH]:h.COSH,[h.SINH]:h.CSCH,[h.CSCH]:h.SINH,[h.TANH]:h.COTH,[h.COTH]:h.TANH};function power(e,t){let n;if(e.isZero()&&t.isZero())throw new s.ZeroToZeroPowerError((0,s.message)("zeroToZeroPower"));if(m.Settings.DEFER_SIMPLIFICATION)n=new p.Expression(e),n=p.Expression.toEXP(n,new p.Expression(t)),n.deferred=!0;else{if(e.isI()&&t.isInteger())n=(0,u.simplifyImaginary)(setPower(e,t));else if(e.isE()&&t.isComplex()){const i=new p.Expression(t),r=i.getMultiplier();if(delete i.multiplier,(0,x.equal)(i,`${p.Expression.imaginary}*${h.PI[0]}`))if(r.isInteger()){const t=p.Expression.Number(r.evenNumerator()?"1":"-1");n=(0,E.multiply)(p.Expression.fromRational(e.getMultiplier()),t)}else if("2"===r.denominator.toString()){const t=p.Expression.Number(1n===r.abs().mod("4").numerator?"1":"-1");n=(0,E.multiply)((0,E.multiply)(p.Expression.fromRational(e.getMultiplier()),p.Expression.Img()),t),r.isNegative()&&(n=n.neg())}}else if(m.Settings.EVALUATE){if(e.isFunction()&&t.isMinusOne()&&e.getMultiplier().isOne()&&e.getPower().isOne()&&y[e.name])n=p.Expression.toFunction(y[e.name],e.getArguments());else if(e.isNUM()&&t.isNUM()){const i=-1===e.sign(),s=-1===t.sign();let o=e.abs();const a=t.abs();if(i){let e=a.times(p.Expression.Pi());s&&(o=o.invert(),e=e.neg());const t=p.Expression.Number(o.getMultiplier().toDecimal().pow(a.getMultiplier().toDecimal())),i=(0,r.cos)(e).times(t),l=(0,r.sin)(e).times(t).times(p.Expression.Img());n=i.plus(l)}else n=p.Expression.fromRational(o.getMultiplier().pow(a.getMultiplier())),s&&(n=n.invert())}else if(e.isComplex())if(t.isComplex()){const[s,o]=(0,c.toPolarFormArray)(e),a=(0,u.realPart)(t),l=(0,u.imagPart)(t),m=a.times(o).plus(l.times((0,i.log)(s)));n=power(s,a).times(p.Expression.E().pow(l.neg().times(o))).times((0,r.cos)(m).plus(p.Expression.Img().times((0,r.sin)(m))))}else{const i=e.distributeMultiplier(),[s,o]=(0,c.toPolarFormArray)(i),a=o.times(t),l=s.pow(t);n=l.times((0,r.cos)(a)).plus(l.times(p.Expression.Img().times((0,r.sin)(a))))}else if(t.isComplex()){const s=e.pow(t.realPart()),o=e.pow(t.imagPart());n=s.times((0,r.cos)((0,i.log)(o))).plus(s.times((0,r.sin)((0,i.log)(o))).times(p.Expression.Img()))}}else{const r=t.isInf();if(e.isOne()&&!r)n=(0,d.one)();else if(!e.isZero()||r||t.isZero())if(!t.isZero()||e.isInf()||e.isNUM())if(t.isOne())n=new p.Expression(e);else if(e.isInf()||r){const i=e.isInf(),r=t.isInf();if(i&&r)throw new s.UndefinedError((0,s.message)("infinityToInfinity"));if(e.isNUM()){const i=e.getMultiplier();if(i.gt("1")&&t.isPosInf()||e.isPosInf()&&t.isPosInf())n=p.Expression.Inf();else{if(!(i.gt("1")&&t.isNegInf()||i.eq("0")&&t.isPosInf()))throw new s.UndefinedError((0,s.message)("valueToInfinityUndefined",{value:i.lt("0")?`(${e})`:`${e}`}));n=p.Expression.Number("0")}}else if(t.isZero())throw new s.UndefinedError((0,s.message)("infinityToPowerZero"))}else if(e.isProduct()&&(e.isLinear()&&t.isInteger()||e.isConstant()&&!e.isComplex()&&e.sign()>0)){n=p.Expression.fromRational(e.getMultiplier()).pow(t);const i=e.getElements();for(const e in i)n=n.times(i[e].pow(t))}else if(!t.isNUM()||t.isInteger()||e.isNUM()||e.getMultiplier().abs().isOne())if(t.isNUM()&&!t.isInteger()&&e.isProduct()&&e.isLinear()){let i=(0,d.one)(),r=(0,d.one)(),s=!1;for(const n of e.elementsArray())!n.isComplex()&&n.gt(0)?(i=i.times(power(n,t)),s=!0):r=r.times(n);s&&(n=r.isOne()?i:i.times(power(r,t)))}else if(t.isNUM())if(e.isZero())n=p.Expression.Number("0");else if(e.isMinusOne()&&t.isInteger()&&t.isOdd())n=(0,d.one)().neg();else if(t.isZero())n=(0,d.one)();else if(e.isEXP()&&!e.getBase().isNUM()&&t.isInteger()){const i=(0,E.multiply)(e.getPower(),t);i.isOne()?n=e.getBase().times(e.getMultiplier()):(n=new p.Expression(e),n.power=i)}else{const r=t.abs().getMultiplier(),s=r.numerator,a=r.denominator,l=e.getMultiplier().abs(),u=l.numerator**s,c=l.denominator**s;if(u<=m.Settings.MAX_FRAC_INT&&c<=m.Settings.MAX_FRAC_INT){const r=nthPow(u,a),l=nthPow(c,a),m=(0,o.isEven)(s);let x;if(x=-1===t.sign()?l.times(r.invert()):r.times(l.invert()),1n!==a&&!e.isNUM()&&e.getMultiplier().isNegative())n=p.Expression.toEXP(new p.Expression(e),t),n=n.times(x),n=rationalizeRadical(n);else if(1n!==a&&2n!==a&&e.isNUM()&&-1===e.sign())n=p.Expression.toEXP((0,d.minusOne)(),t).times(x);else{if(n=e.toUnitMultiplier(),n.isOne()&&-1===e.sign()&&2n===a)n=n.times(p.Expression.Img()),s%4n==3n&&(n=n.neg()),-1===t.sign()&&(n=n.invert());else if(-1!==e.sign()||m){const e=n.getPower(),r=e.times(t);if(r.isZero())n=(0,d.one)();else if(r.isNUM()){const s=e.getMultiplier().abs(),a=t.isInteger()||e.isOne()||s.lt("1");!t.isInteger()&&e.isInteger()&&e.isEven()&&!(0,g.stripPower)(n).isComplex()?(n=(0,i.abs)((0,g.stripPower)(n)),n=p.Expression.setPower(n,r)):a?n.isEXP()?n=power(n.getBase(),r).times(n.getMultiplier()):(n.isFunction(h.ABS)&&(0,o.isEven)(r.getMultiplier().numerator)&&(n=n.getArguments()[0].times(n.getMultiplier())),n=p.Expression.setPower(n,r)):n=p.Expression.toEXP(n,t)}else n=n.getPower().isNUM()?p.Expression.toEXP(n,r,!0):p.Expression.toEXP(n,t)}else{n=n.neg();const i=t.isInteger();e.isVAR()&&i?n=p.Expression.setPower(n,t):n.isMinusOne()&&i||(n=p.Expression.toEXP(n,t))}n=n.times(x),n=rationalizeRadical(n)}}}else if(e.isInf()||t.isInf()){const i=e.isInf(),r=t.isInf();if(i&&r)throw new s.UndefinedError((0,s.message)("infinityToInfinity"));if(e.isNUM()){const i=e.getMultiplier();if(i.gt("1")&&t.isPosInf()||e.isPosInf()&&t.isPosInf())n=p.Expression.Inf();else{if(!(i.gt("1")&&t.isNegInf()||i.eq("0")&&t.isPosInf()))throw new s.UndefinedError((0,s.message)("valueToInfinityUndefined",{value:i.lt("0")?`(${e})`:`${e}`}));n=p.Expression.Number("0")}}else if(t.isZero())throw new s.UndefinedError((0,s.message)("infinityToPowerZero"))}else{const r=e.getPower(),s=t.times(r);if(r.isNUM()&&!s.isNUM()){const o=e.getMultiplier(),a=r.getMultiplier().abs(),l=(0,g.stripPower)(e.toUnitMultiplier());!o.isNegative()&&r.isInteger()&&r.isEven()&&!l.isComplex()?(n=(0,i.abs)(l),n=p.Expression.toEXP(n,s),o.isOne()||(n=n.times(p.Expression.toEXP(p.Expression.fromRational(o),t)))):o.isNegative()||!r.isOne()&&!a.lt("1")||(n=p.Expression.toEXP(l,s),o.isOne()||(n=n.times(p.Expression.toEXP(p.Expression.fromRational(o),t))))}}else{const i=e.getMultiplier(),r=i.abs();let s=e.toUnitMultiplier();i.isNegative()&&(s=s.neg()),n=power(s,t).times(power(p.Expression.fromRational(r),t))}else n=(0,d.one)();else n=p.Expression.Number("0")}n||(n=setPower(e,t)),n.isI()&&(n=(0,u.simplifyImaginary)(n)),e.hasDecimal()&&((n.isEXP()?n.getBase():n).getMultiplier().asDecimal=!0)}return n}function setPower(e,t){let n;if(m.Settings.EVALUATE&&e.isNUM()&&t.isNUM()&&!e.getMultiplier().isNegative()&&!t.getMultiplier().isNegative())n=p.Expression.fromRational(e.getMultiplier().pow(t.getMultiplier()));else if(e.isNUM())n=p.Expression.toEXP(e.getMultiplier(),t);else if(t.isNUM()&&!e.isEXP()){n=e.toUnitMultiplier();const i=t.getMultiplier().sign(),r=t.getMultiplier().abs();let s=e.getMultiplier();s.isNegative()&&(n.power=n.getPower().times(r),n=n.times((0,d.minusOne)().pow(r)),s=s.abs());const o=s.pow(r);n.multiplier=n.getMultiplier().isNegative()?o.neg():o,-1===i&&(n.multiplier=n.getMultiplier().invert()),n=p.Expression.setPower(n,e.getPower().times(t.getMultiplier()))}else{const i=e.getPower().times(t);if(i.isNUM()&&e.isEXP()&&!e.getBase().isComplex()&&e.getBase().gt(0)&&(0,u.imagPart)(e.getPower()).isZero())n=power(e.getBase(),i).times(e.getMultiplier());else{const i=e.getMultiplier(),r=i.abs();let s=e.toUnitMultiplier();i.isNegative()&&(s=s.neg()),n=p.Expression.toEXP(s,t),r.isOne()||(n=n.times(p.Expression.toEXP(r,t)))}}return n}function nthPow(e,t){let n;if(1n===t&&"bigint"==typeof e)n=p.Expression.Number(e);else{let i=1n;const r={},s="bigint"==typeof e?(0,l.primeFactorCounts)(e):e;for(const e in s){const n=s[e],o=n/t,a=n-o*t;i*=BigInt(e)**o,a>0n&&(r[e]=a)}const o={};for(const e in r){const t=String(r[e]);o[t]=o[t]?BigInt(e)*o[t]:BigInt(e)}n=1n===i?(0,d.one)():p.Expression.Number(i);for(const e in o){const i=o[e],r=p.Expression.Number(BigInt(e)).div(p.Expression.Number(t));n=n.times(p.Expression.toEXP(p.Expression.Number(i),r))}}return n}function rationalizeRadical(e,t=!1){if(!e.isEXP()||!e.hasRadical())return e;const n=e.getPower().getMultiplier();if(!n.isNegative())return e;const i=e.getBase(),r=(0,a.abs)(n.numerator),s=(0,a.abs)(n.denominator),o=(r+s-1n)/s,l=o*s-r;if(!t&&l>r)return e;let u;u=0n===l?(0,d.one)():i.pow(p.Expression.Number(l).div(p.Expression.Number(s)));const c=i.pow(p.Expression.Number(-o));return u.times(c).times(e.getMultiplier())}},3982(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Vector=void 0;const i=n(6746),r=n(6441),s=n(4861),o=n(4703),a=n(6284),l=n(296),u=n(6099),c=n(8300),m=n(2116);class Vector extends i.MathematicalAggregate{dataType=c.VECTOR;elements;isEnumerable=!0;precision;constructor(e){super(),a.Collection.isCollection(e)?this.elements=e.elements.map(e=>e.copy()):this.elements=e?(0,s.toParserEntities)(e):[]}static create(e){return new Vector(e.map(e=>l.Expression.create(e)))}static isVector(e){return(0,r.isNerdamerNativeType)(e,c.VECTOR)}getValuesArray(){return[...this.elements]}setValuesArray(e){this.elements=e}__get__(e){const t=e[0];if(t<0||t>=this.elements.length)throw new o.UnexpectedDataType(`Index ${t} out of bounds for Vector of length ${this.elements.length}`);return this.elements[t]}add(e){return this.append(e)}append(e){return this.elements.push(e),this}arrayMap(e){const t=[];for(let n=0;n<this.elements.length;n++)t.push(e(this.elements[n]));return t}at(e){return this.elements[e]}clear(){return this.elements=[],this}copy(){const e=new Vector;return this.each((t,n)=>(e.elements[n]=t.copy(),t)),this.copySymbolicAccessTo(e)}count(){return this.elements.length}cross(e){if(3!==this.elements.length||3!==e.elements.length)throw new o.DimensionError((0,o.message)("incorrectCrossDimension"));const t=this.getExpressionAt(0),n=this.getExpressionAt(1),i=this.getExpressionAt(2),r=e.getExpressionAt(0),s=e.getExpressionAt(1),a=e.getExpressionAt(2);return Vector.create([n.times(a).minus(i.times(s)),i.times(r).minus(t.times(a)),t.times(s).minus(n.times(r))])}delete(e){const t=this.indexOf(e);return-1!==t&&(this.elements.splice(t,1),!0)}dimensions(){return[this.elements.length]}div(e){if(Vector.isVector(e)&&!this.dimensionsMatch(e))throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.div"}));return super.div(e)}dot(e){if(this.elements.length!==e.elements.length)throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.dot"}));let t=(0,u.zero)();for(let n=0;n<this.elements.length;n++)t=t.plus(this.getExpressionAt(n).times(e.getExpressionAt(n)));return t}each(e){for(let t=0;t<this.elements.length;t++){const n=e(this.elements[t],t);void 0!==n&&(this.elements[t]=n)}return this}eq(e){if(!Vector.isVector(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].eq(e.elements[t]))return!1;return!0}evaluate(e){let t;const n=l.Expression.fromSymbolicAccess(this);if(n&&e)t=n.evaluate(e);else{const n=this.copy();n.each(t=>l.Expression.isExpression(t)?t.evaluate(e):t.evaluate()),t=n}return t}expand(){const e=this.copy();return e.each(e=>e.expand()),e}extend(e){if(!Vector.isVector(e))throw new o.UnexpectedDataType((0,o.message)("vectorExpected",{type:c.dataTypes[e.dataType]}));return this.elements.push(...e.elements),this}getExpressionAt(e){const t=this.elements[e];if(!l.Expression.isExpression(t))throw new o.UnexpectedDataType((0,o.message)("expressionExpected",{type:c.dataTypes[t.dataType]}));return t}gt(e){if(!Vector.isVector(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].gt(e.elements[t]))return!1;return!0}gte(e){if(!Vector.isVector(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].gte(e.elements[t]))return!1;return!0}indexOf(e){for(let t=0;t<this.elements.length;t++)if(this.elements[t].eq(e))return t;return-1}insert(e,t){return this.elements.splice(e,0,t),this}lt(e){if(!Vector.isVector(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].lt(e.elements[t]))return!1;return!0}lte(e){if(!Vector.isVector(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].lte(e.elements[t]))return!1;return!0}minus(e){if(Vector.isVector(e)&&!this.dimensionsMatch(e))throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.minus"}));return super.minus(e)}norm(){let e=(0,u.zero)();for(let t=0;t<this.elements.length;t++)e=e.plus(this.getExpressionAt(t).abs().sq());return e.pow("1/2")}plus(e){if(Vector.isVector(e)&&!this.dimensionsMatch(e))throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.plus"}));return super.plus(e)}pop(e){let t;return t=void 0!==e?this.elements.splice(e,1)[0]:this.elements.pop(),t}pow(e){if(Vector.isVector(e)&&!this.dimensionsMatch(e))throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.pow"}));return super.pow(e)}prod(){let e=(0,u.one)();return this.each(t=>{e=e.times(l.Expression.create(t))}),e}remove(e){const t=this.indexOf(e);return-1!==t&&this.elements.splice(t,1),this}reverse(){return this.elements.reverse(),this}sum(){let e=(0,u.zero)();return this.each(t=>{e=e.plus(l.Expression.create(t))}),e}text(){const e=`[${this.elements.map(e=>e.text()).join(", ")}]`;return this.formatSymbolicAccess(e)}times(e){let t;if((0,r.isNerdamerNativeType)(e,c.MATRIX)){const n=e;if(0===n.cols()){if(this.count()!==n.rows())throw new o.MathError((0,o.message)("mismatchedDimensions",{function:"Matrix.times"}));t=new Vector}else t=n.transpose().times(this)}else{if(Vector.isVector(e)&&!this.dimensionsMatch(e))throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.times"}));t=super.times(e)}return t}toPolynomial(e=["x"]){return m.Polynomial.fromArray(this.elements,e)}trim(){const e=[];for(const t of this.elements)t.eq((0,u.zero)())||e.push(t);return this.elements=e,this}}t.Vector=Vector},4091(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.comma=function comma(e,t){return[e,t]}},4166(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasIrrationalDenominator=function hasIrrationalDenominator(e){return e.hasRadical(!0)},t.hasFactorialRatio=function hasFactorialRatio(e){if(!e.isProduct())return!1;let t=!1,n=!1;for(const r of e.elementsArray())r.isFunction(i.FACTORIAL)&&(1===r.getPower().sign()?t=!0:-1===r.getPower().sign()&&(n=!0));return t&&n};const i=n(8300)},4462(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Matrix=void 0;const i=n(8533),r=n(8505),s=n(6441),o=n(4861),a=n(4703),l=n(296),u=n(6099),c=n(8300),m=n(3982);class Matrix extends r.StructuredEntity{_rowSwaps=0;dataType=c.MATRIX;elements;isEnumerable=!0;precision;constructor(...e){let t;super(),this.elements=[];for(let n=0;n<e.length;n++){const i=e[n],r=(m.Vector.isVector(i)?i.elements:(0,o.toParserEntities)(i)).map(e=>l.Expression.create(e));if(r.length>0){if(void 0!==t&&t!==r.length)throw new a.MathError((0,a.message)("cannotCreateMatrix"));this.elements.push(r),t=r.length}}}static fill(e,t,n){const i=new Matrix([]);for(let r=0;r<e;r++){const e=[];for(let i=0;i<t;i++)e.push(n.copy());i.elements.push(e)}return i}static identity(e){const t=new Matrix([]);for(let n=0;n<e;n++){const i=[];for(let t=0;t<e;t++)i.push(n===t?(0,u.one)():(0,u.zero)());t.elements.push(i)}return t}static isMatrix(e){return(0,s.isNerdamerNativeType)(e,c.MATRIX)}static zeroMatrix(e,t){return Matrix.fill(e,t,(0,u.zero)())}__get__(e){const t=e[0];if(t<0||t>=this.elements.length)throw new a.MathError(`Row index ${t} out of bounds for Matrix with ${this.elements.length} rows`);if(e.length>1){const n=e[1];if(n<0||n>=this.elements[t].length)throw new a.MathError(`Column index ${n} out of bounds for Matrix with ${this.elements[t].length} columns`);return this.elements[t][n]}return new m.Vector(this.elements[t])}__set__(e,t){if("string"==typeof e)throw new a.MathError("Matrix does not support string key access");const n=e[0],i=e.length>1?e[1]:void 0;if(n<0||n>=this.elements.length)throw new a.MathError(`Row index ${n} out of bounds for Matrix with ${this.elements.length} rows`);if(void 0!==i){if(i<0||i>=this.elements[n].length)throw new a.MathError(`Column index ${i} out of bounds for Matrix with ${this.elements[n].length} columns`);this.elements[n][i]=l.Expression.create(t)}else{if(!m.Vector.isVector(t))throw new a.UnexpectedDataType((0,a.message)("vectorExpected",{type:c.dataTypes[t.dataType]}));if(t.elements.length!==this.cols())throw new a.MathError((0,a.message)("mismatchedDimensions",{function:"Matrix.__set__"}));const e=t.elements.map(e=>l.Expression.create(e));this.elements[n]=e}}augment(e){const t=this.rows();if(t!==e.rows())throw new a.MathError((0,a.message)("rowsMustMatch"));if(0===t)return this.copy();const n=e.copy(),i=this.copy(),r=i.cols();let s=t;const o=n.cols();let l;for(;s--;)for(l=o;l--;)i.elements[s][r+l]=n.elements[s][l];return i}canMultiplyFromLeft(e){return this.cols()===e.rows()}col(e){const t=[],n=this.rows();if(e>0&&e<=this.cols())for(let i=0;i<n;i++)t.push([this.elements[i][e-1]]);return new Matrix(...t)}cols(){return 0===this.elements.length?0:this.elements[0].length}copy(){const e=this.map(e=>e.copy());return this.copySymbolicAccessTo(e)}determinant(){if(0===this.rows())return(0,u.one)();if(!this.isSquare())throw new a.UnsupportedOperationError((0,a.message)("squareMatrixRequired"));const e=this.toRightTriangular(),t=this.rows();let n=e.elements[0][0];for(let i=1;i<t;i++)n=n.times(e.get(i,i));return e._rowSwaps%2!=0&&(n=n.neg()),n}dimensions(){return[this.rows(),this.cols()]}dimensionsMatch(e){return Matrix.isMatrix(e)&&this.cols()===e.cols()&&this.rows()===e.rows()}div(e){if(Matrix.isMatrix(e)&&!this.dimensionsMatch(e))throw new a.DimensionError((0,a.message)("mismatchedDimensions",{function:"Matrix.div"}));return super.div(e)}e(e,t){return this.get(e-1,t-1)}each(e){for(let t=0;t<this.elements.length;t++){const n=this.elements[t];for(let i=0;i<n.length;i++){const r=e(n[i],t,i);void 0!==r&&(n[i]=r)}}return this}eq(e){if(!Matrix.isMatrix(e)||!this.dimensionsMatch(e))return!1;const t=this.rows(),n=this.cols();for(let i=0;i<t;i++)for(let t=0;t<n;t++)if(!this.elements[i][t].eq(e.elements[i][t]))return!1;return!0}evaluate(e){let t;const n=l.Expression.fromSymbolicAccess(this);if(n&&e)t=n.evaluate(e);else{const n=this.copy();n.each(t=>t.evaluate(e)),t=n}return t}expand(){const e=this.copy();return e.each(e=>e.expand()),e}forEach(e){for(let t=0;t<this.elements.length;t++)for(let n=0;n<this.elements[t].length;n++)e(this.elements[t][n],t,n)}get(e,t){return this.__get__([e,t])}gt(e){if(!Matrix.isMatrix(e)||!this.dimensionsMatch(e))return!1;const t=this.rows(),n=this.cols();for(let i=0;i<t;i++)for(let t=0;t<n;t++)if(!this.elements[i][t].gt(e.elements[i][t]))return!1;return!0}gte(e){if(!Matrix.isMatrix(e)||!this.dimensionsMatch(e))return!1;const t=this.rows(),n=this.cols();for(let i=0;i<t;i++)for(let t=0;t<n;t++)if(!this.elements[i][t].gte(e.elements[i][t]))return!1;return!0}inspect(){let e="";for(let t=0;t<this.elements.length;t++)e+=`[${this.elements[t].map(e=>e.text()).join(", ")}]\n`;return e}inverse(){if(!this.isSquare())throw new a.UnsupportedOperationError((0,a.message)("squareMatrixRequired"));if(0===this.rows())return this.copy();if(this.isSingular())throw new a.MathError((0,a.message)("singularMatrix"));const e=this.elements.length;let t=e;const n=this.augment(Matrix.identity(e)).toRightTriangular(),i=[];let r,s,o,l,c;const m=n.elements[0].length,p=(0,u.zero)();for(;t--;){if(o=[],i[t]=[],l=n.elements[t][t],l.eq(p))throw new a.MathError((0,a.message)("singularMatrix"));for(s=0;s<m;s++)c=n.elements[t][s].div(l),o.push(c),s>=e&&i[t].push(c);for(n.elements[t]=o,r=t;r--;){for(o=[],s=0;s<m;s++)o.push(n.elements[r][s].minus(n.elements[t][s].times(n.elements[r][t])));n.elements[r]=o}}return new Matrix(...i)}isSingular(){return this.isSquare()&&this.determinant().eq("0")}isSquare(){return this.rows()===this.cols()}lt(e){if(!Matrix.isMatrix(e)||!this.dimensionsMatch(e))return!1;const t=this.rows(),n=this.cols();for(let i=0;i<t;i++)for(let t=0;t<n;t++)if(!this.elements[i][t].lt(e.elements[i][t]))return!1;return!0}lte(e){if(!Matrix.isMatrix(e)||!this.dimensionsMatch(e))return!1;const t=this.rows(),n=this.cols();for(let i=0;i<t;i++)for(let t=0;t<n;t++)if(!this.elements[i][t].lte(e.elements[i][t]))return!1;return!0}map(e){const t=new Matrix([]);for(let n=0;n<this.elements.length;n++){t.elements[n]=[];for(let i=0;i<this.elements[n].length;i++)t.elements[n][i]=e(this.elements[n][i],n,i)}return t}minus(e){if(Matrix.isMatrix(e)&&!this.dimensionsMatch(e))throw new a.DimensionError((0,a.message)("mismatchedDimensions",{function:"Matrix.minus"}));return super.minus(e)}multiply(e){return this.times(e)}nullspace(e){const t=void 0===e?void 0:l.Expression.create(e),n=this.rref(e),r=n.rows(),s=n.cols(),o=(0,u.zero)(),a=new Set,c=new Array(r).fill(-1);for(let e=0;e<r;e++)for(let t=0;t<s;t++)if(!n.elements[e][t].eq(o)){a.add(t),c[e]=t;break}const m=[];for(let e=0;e<s;e++)a.has(e)||m.push(e);const p=[];for(const e of m){const o=Array.from({length:s},()=>(0,u.zero)());o[e]=(0,u.one)();for(let s=0;s<r;s++){const r=c[s];if(-1!==r){const a=(0,u.zero)().minus(n.elements[s][e]);o[r]=t?(0,i.mod)(a,t):a}}p.push(o)}return p}plus(e){if(Matrix.isMatrix(e)&&!this.dimensionsMatch(e))throw new a.DimensionError((0,a.message)("mismatchedDimensions",{function:"Matrix.plus"}));return super.plus(e)}pow(e){const t=l.Expression.create(e);if(!t.isNUM()||!t.isInteger())throw new a.UnsupportedOperationError((0,a.message)("unsupportedOperation"));const n=t.getMultiplier().numerator;let i;if(1n===n)i=this.copy();else{if(!this.isSquare())throw new a.UnsupportedOperationError((0,a.message)("squareMatrixRequired"));if(0n===n)i=Matrix.identity(this.rows());else{let e=n<0n?-n:n,t=n<0n?this.inverse():this.copy();for(i=Matrix.identity(this.rows());e>0n;)e%2n==1n&&(i=i.times(t)),e/=2n,e>0n&&(t=t.times(t))}}return i}rank(){const e=this.toRightTriangular();let t=0,n=e.rows();const i=e.cols(),r=(0,u.zero)();let s;for(;n--;)for(s=i;s--;)if(!e.elements[n][s].eq(r)){t++;break}return t}row(e){let t;return t=e<1||e>this.rows()?new Matrix([]):0===this.cols()?Matrix.zeroMatrix(1,0):new Matrix(this.elements[e-1]),t}rows(){return this.elements.length}rref(e){const t=this.rows(),n=this.cols();let r=0;const s=this.copy(),o=(0,u.zero)(),a=e?l.Expression.create(e):void 0;a&&s.each(e=>(0,i.mod)(e,a));for(let e=0;e<t&&!(n<=r);e++){let l=e;for(;s.elements[l][r].eq(o);)if(l++,t===l&&(l=e,r++,n===r))return s;if([s.elements[l],s.elements[e]]=[s.elements[e],s.elements[l]],a){const o=(0,i.modInv)(s.elements[e][r],a);for(let t=0;t<n;t++)s.elements[e][t]=(0,i.mod)(s.elements[e][t].times(o),a);for(let o=0;o<t;o++)if(o!==e){const t=s.elements[o][r];for(let r=0;r<n;r++)s.elements[o][r]=(0,i.mod)(s.elements[o][r].minus(t.times(s.elements[e][r])),a)}}else{const i=s.elements[e][r];for(let t=0;t<n;t++)s.elements[e][t]=s.elements[e][t].div(i);for(let i=0;i<t;i++)if(i!==e){const t=s.elements[i][r];if(t.eq(o))continue;for(let r=0;r<n;r++)s.elements[i][r]=s.elements[i][r].minus(t.times(s.elements[e][r]))}}r++}return s.elements.sort((e,t)=>{const n=e.every(e=>e.eq(o)),i=t.every(e=>e.eq(o));return n&&!i?1:!n&&i?-1:0}),s}set(e,t,n){return this.__set__([e,t],n),this}text(){const e=[];for(let t=0;t<this.elements.length;t++){const n=this.elements[t],i=[];for(let e=0;e<n.length;e++)i.push(n[e].text());e.push(`[${i.join(", ")}]`)}const t=`matrix(${e.join(", ")})`;return this.formatSymbolicAccess(t)}times(e){let t;if(l.Expression.isExpression(e))t=this.map(t=>t.times(e));else if(m.Vector.isVector(e)){if(this.cols()!==e.count())throw new a.MathError((0,a.message)("mismatchedDimensions",{function:"Matrix.times"}));const n=[];for(let t=0;t<this.rows();t++)n.push(new m.Vector(this.elements[t]).dot(e));t=new m.Vector(n)}else{if(!Matrix.isMatrix(e))throw new a.UnsupportedOperationError((0,a.message)("unsupportedType",{type:c.dataTypes[e.dataType]}));if(!this.canMultiplyFromLeft(e))throw new a.MathError((0,a.message)("mismatchedDimensions",{function:"Matrix.times"}));if(0===this.rows())t=new Matrix([]);else if(0===e.cols())t=Matrix.zeroMatrix(this.rows(),0);else{const n=this.elements,i=n.length,r=n[0].length,s=[];let o=i;const a=e.cols();let l,c,m,p,d;for(;o--;){for(p=[],m=n[o],l=a;l--;){for(d=(0,u.zero)(),c=r;c--;){const t=m[c],n=e.elements[c][l];d=d.plus(t.times(n))}p[l]=d}s[o]=p}t=new Matrix(...s)}}return t}toRightTriangular(){const e=this.copy(),t=e.rows(),n=e.cols(),i=(0,u.zero)();let r=0;e._rowSwaps=0;for(let s=0;s<n&&r<t;s++){let o=r;for(;o<t&&e.elements[o][s].eq(i);)o++;if(o===t)continue;o!==r&&([e.elements[o],e.elements[r]]=[e.elements[r],e.elements[o]],e._rowSwaps++);const a=e.elements[r][s];for(let o=r+1;o<t;o++)if(!e.elements[o][s].eq(i)){const t=e.elements[o][s].div(a),i=[];for(let a=0;a<n;a++)i.push(a<=s?(0,u.zero)():e.elements[o][a].minus(e.elements[r][a].times(t)));e.elements[o]=i}r++}return e}toUpperTriangular(){return this.toRightTriangular()}trace(){if(!this.isSquare())throw new a.MathError("Unable to calculate trace for the matrix");let e=(0,u.zero)();const t=this.elements.length;for(let n=0;n<t;n++){const t=this.elements[n][n];if(!l.Expression.isExpression(t))throw new a.MathError("Unable to calculate trace for the matrix");e=e.plus(t)}return e}transpose(){const e=this.rows(),t=this.cols();if(e>0&&0===t)throw new a.UnsupportedOperationError((0,a.message)("unsupportedOperation"));const n=[];let i=t;for(;i--;){let t=e;for(n[i]=[];t--;)n[i][t]=this.elements[t][i]}return new Matrix(...n)}unroll(){const e=[];for(let t=1;t<=this.cols();t++)for(let n=1;n<=this.rows();n++)e.push(this.e(n,t));return new m.Vector(e)}}t.Matrix=Matrix},4600(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.realPart=realPart,t.imagPart=imagPart,t.simplifyImaginary=function simplifyImaginary(e){const t=e.getPower();if(e.isI()&&t.isInteger()){let n;switch(t.mod("4").abs().text()){case"1":n=s.Expression.Img();break;case"2":n=(0,o.minusOne)();break;case"3":n=s.Expression.Img().neg();break;default:n=(0,o.one)()}return n=(0,c.multiply)(n,s.Expression.fromRational(e.getMultiplier())),n}return e},t.toPolarFormArray=toPolarFormArray,t.polarForm=function polarForm(e){let t;if(e.isNUM()||e.isI()&&e.isLinear())t=new s.Expression(e);else{const[n,i]=toPolarFormArray((0,p.expand)(e)),r=(0,c.multiply)(s.Expression.Img(),i),o=(0,m.power)(s.Expression.Variable(a.E),r);t=(0,c.multiply)(o,n)}return t},t.rectForm=function rectForm(e){let t;if((e=s.Expression.create(e)).isE()){const n=e.getPower(),i=e.getMultiplier();if(n.isComplex()){const e=function toTheta(e){const t=e.elementsArray();let n=(0,o.one)(),i=(0,o.one)();for(const e of t)e.isComplex()?n=n.times(e):i=i.times(e);if(n.value===s.Expression.imaginary)return i.isFunction(a.ATAN)?i:i.times(e.getMultiplier());if(n.isFunction(a.ATAN)&&n.getArguments()[0].value===s.Expression.imaginary){const t=n.getArguments()[0];return s.Expression.toFunction(a.ATANH,[s.Expression.fromRational(t.getMultiplier())]).times(e.getMultiplier())}}(n);e&&(t=(0,r.cos)(e).times(i).plus((0,r.sin)(e).times(i).i()))}}else if(e.isProduct()){let n=s.Expression.fromRational(e.getMultiplier());e.each(e=>{n=n.times(rectForm(e))}),t=n}else if(e.isSum()){let n=(0,o.zero)();e.each(e=>{n=n.plus(rectForm(e))}),t=n}return t?t.expand():e.isComplex()?e.evaluate():e},t.arg=function arg(e){e=s.Expression.create(e);const[,t]=toPolarFormArray(e);return t},t.conjugate=function conjugate(e){e=s.Expression.create(e);const t=(0,p.expand)(e);let n;const i=t.getPower();if(t.isEXP()||!t.isNUM()&&!i.isOne()){const e=s.Expression.fromRational(t.getMultiplier()),r=t.getBase(),o=realPart(r),l=imagPart(r),u=o.isConstant()&&l.isConstant()&&(!l.isZero()||!o.isZero()&&o.sign()>0);if(i.isInteger()||u){const t=conjugate(r),s=i.isComplex()?conjugate(i):i;n=e.times(t.pow(s))}else n=s.Expression.toFunction(a.CONJUGATE,[t])}else if(t.isVAR()&&t.isI())n=t.neg();else if(t.isSum()){n=(0,o.zero)();for(const e of t.elementsArray())n=n.plus(conjugate(e))}else if(t.isProduct()){n=s.Expression.fromRational(t.getMultiplier());for(const e of t.elementsArray())n=n.times(conjugate(e))}return n??e},t.csgn=function csgn(e){e=s.Expression.create(e);const t=(0,p.expand)(e),n=realPart(t),i=imagPart(t);let r;return n.isZero()&&i.isZero()?r=(0,o.zero)():!n.isZero()&&n.isConstant()?r=n.sign()>0?(0,o.one)():(0,o.minusOne)():n.isZero()&&i.isConstant()&&(r=i.sign()>0?(0,o.one)():(0,o.minusOne)()),r??s.Expression.toFunction(a.CSGN,[t])};const i=n(7867),r=n(1649),s=n(296),o=n(6099),a=n(8300),l=n(6255),u=n(3171),c=n(6498),m=n(3957),p=n(7741);function realPart(e){let t;const n=(0,p.expand)(e);if(n.isVAR()&&n.isI()){const e=n.getPower(),i=(0,u.divide)(s.Expression.Pi(),(0,o.two)()),a=(0,r.cos)((0,c.multiply)(e,i));t=(0,c.multiply)(s.Expression.fromRational(n.getMultiplier()),a)}else if(n.isEXP()){const e=n.getPower(),i=s.Expression.fromRational(n.getMultiplier());if(e.isInteger())t=(0,c.multiply)(i,realPart((0,m.power)(n.getBase(),e)));else{const[s,o]=toPolarFormArray(n.getBase()),a=(0,m.power)(s,e),l=(0,r.cos)((0,c.multiply)(e,o));t=(0,c.multiply)(i,(0,c.multiply)(a,l))}}else if(n.isComplexComponentFunction())t=new s.Expression(n);else if(n.isFunction())t=n.isComplex()?s.Expression.toFunction(a.REALPART,[n]):new s.Expression(n);else if(n.isProduct()&&n.isComplex()){const e=s.Expression.fromRational(n.getMultiplier());let i,r=(0,o.one)(),a=0;const l=n.getElements();for(const e in l){const t=l[e];t.isComplex()?(i=t,a++):r=(0,c.multiply)(r,t)}if(1===a&&i)t=(0,c.multiply)(e,(0,c.multiply)(r,realPart(i)));else{let n=(0,o.one)(),i=(0,o.zero)();for(const e in l){const t=l[e];if(t.isComplex()){const e=realPart(t),r=imagPart(t),s=n,o=i;n=(0,c.multiply)(s,e).minus((0,c.multiply)(o,r)),i=(0,c.multiply)(s,r).plus((0,c.multiply)(o,e))}}t=(0,c.multiply)(e,(0,c.multiply)(r,n))}}else if(n.isConstant()||n.isVAR()&&!n.isI()||n.isProduct()&&!n.isComplex())t=new s.Expression(e);else if(n.isSum())if(n.getPower().isOne()){t=(0,o.zero)();const e=n.getElements();for(const n in e){const i=realPart(e[n]);t=(0,l.add)(t,i)}}else t=new s.Expression(e);else t=(0,o.zero)();return t}function imagPart(e){let t;const n=(0,p.expand)(e);if(n.isVAR()&&n.isI()){const e=n.getPower(),i=(0,u.divide)(s.Expression.Pi(),(0,o.two)()),a=(0,r.sin)((0,c.multiply)(e,i));t=(0,c.multiply)(s.Expression.fromRational(n.getMultiplier()),a)}else if(n.isEXP()){const e=n.getPower(),i=s.Expression.fromRational(n.getMultiplier());if(e.isInteger())t=(0,c.multiply)(i,imagPart((0,m.power)(n.getBase(),e)));else{const[s,o]=toPolarFormArray(n.getBase()),a=(0,m.power)(s,e),l=(0,r.sin)((0,c.multiply)(e,o));t=(0,c.multiply)(i,(0,c.multiply)(a,l))}}else if(n.isComplexComponentFunction())t=(0,o.zero)();else if(n.isFunction()&&n.isComplex())t=s.Expression.toFunction(a.IMAGPART,[n]);else if(n.isSum()){t=(0,o.zero)();const e=n.getElements();for(const n in e)t=(0,l.add)(t,imagPart(e[n]))}else if(n.isProduct())if(n.isComplex()){const e=s.Expression.fromRational(n.getMultiplier());let i,r=(0,o.one)(),a=0;const l=n.getElements();for(const e in l){const t=l[e];t.isComplex()?(i=t,a++):r=(0,c.multiply)(r,t)}if(1===a&&i)t=(0,c.multiply)(e,(0,c.multiply)(r,imagPart(i)));else{let n=(0,o.one)(),i=(0,o.zero)();for(const e in l){const t=l[e];if(t.isComplex()){const e=realPart(t),r=imagPart(t),s=n,o=i;n=(0,c.multiply)(s,e).minus((0,c.multiply)(o,r)),i=(0,c.multiply)(s,r).plus((0,c.multiply)(o,e))}}t=(0,c.multiply)(e,(0,c.multiply)(r,i))}}else t=(0,o.zero)();else t=(0,o.zero)();return t}function toPolarFormArray(e){const t=e.realPart(),n=e.imagPart(),a=(0,i.hypot)(t,n);let l;return l=t.isZero()?n.isZero()?(0,o.zero)():n.isConstant()?n.sign()<0?(0,c.multiply)((0,o.minusOne)(),(0,u.divide)(s.Expression.Pi(),(0,o.two)())):(0,u.divide)(s.Expression.Pi(),(0,o.two)()):(0,r.atan2)(n,t):(0,r.atan2)(n,t),[a,l]}},4692(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.gcd=gcd,t.lcm=function lcm(e,t){const n=r.Expression.create(e),i=r.Expression.create(t);let o;return o=n.isZero()||i.isZero()?(0,s.zero)():n.isNUM()&&i.isNUM()?r.Expression.fromRational(n.getMultiplier().LCM(i.getMultiplier()).abs()):n.times(i).div(gcd(n,i)),o};const i=n(6338),r=n(296),s=n(6099),o=n(8300),a=n(2116),l=n(9565),u=n(886),c=n(1339),m=n(2992),p=n(2724),d=n(6827);function gcd(e,t){try{e=r.Expression.create(e),t=r.Expression.create(t);const n=e.hasDecimal()||t.hasDecimal(),{numerator:s,denominator:o,map:a}=(0,d.polynomialize)(e),{numerator:l,denominator:c,map:m}=(0,d.polynomialize)(t,a),p=(0,i.collectVariablesSet)([s,o,l,c]),g=expressionGCD(s,l,p),h=expressionGCD(o,c,p),x=(0,u.uUnSub)(g.div(h),m);return x.getMultiplier().asDecimal=n,x}catch{}return r.Expression.toFunction(o.GCD,[e,t])}function expressionGCD(e,t,n){let i;if(e.isNUM()&&t.isNUM())i=r.Expression.create(e.getMultiplier().GCD(t.getMultiplier()));else{const o=new a.Polynomial(e),u=new a.Polynomial(t);if(o.isZero()&&u.isZero())return(0,s.zero)();if(o.isZero())return r.Expression.create(t);if(u.isZero())return r.Expression.create(e);const{mGCD:d,p:g,q:h}=o.stripMonomialGCD(u);n??=[...new Set(g.variables.concat(h.variables))].sort();const{poly:x}=(0,c.polynomialToMultiPoly)(g,n),{poly:E}=(0,c.polynomialToMultiPoly)(h,n),y=(0,m.zippelGCDMulti)(x,E,n);i=(0,c.multiPolyToExpression)(y,n),(0,l.divide)(g,i)[1].isZero()||(i=(0,s.one)()),i.isOne()&&(i=function gcdByCommonFactors(e,t){let n=(0,s.one)();if(e.isProduct()||(e=(0,p.factor)(e)),t.isProduct()||(t=(0,p.factor)(t)),e.isProduct()&&t.isProduct()){const i=e.elementsArray(),r=t.elementsArray();for(const e of i)for(const t of r)if(e.eq(t))n=n.times(e);else if(e.isProduct()&&t.isProduct())return gcd(e,t)}return n}(g.getExpression(),h.getExpression())),i=i.times(d.getExpression())}return i}},4703(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ErrorMessages=t.AssignmentError=t.ZeroToZeroPowerError=t.MissingReferenceError=t.NotImplementedError=t.DimensionError=t.NaNError=t.MathError=t.ParserSyntaxError=t.UnsupportedOperationError=t.PolynomialError=t.UndefinedError=t.ParserError=t.OperatorError=t.DivisionByZeroError=t.UnexpectedInputError=t.UnexpectedDataType=t.UnexpectedTokenError=void 0,t.message=function message(e,n){const s=t.ErrorMessages[r.Settings.LANGUAGE][e];return(0,i.format)(s,n||{})};const i=n(7103),r=n(5817);class UnexpectedTokenError extends Error{}t.UnexpectedTokenError=UnexpectedTokenError;class UnexpectedDataType extends Error{}t.UnexpectedDataType=UnexpectedDataType;class UnexpectedInputError extends Error{}t.UnexpectedInputError=UnexpectedInputError;class DivisionByZeroError extends Error{}t.DivisionByZeroError=DivisionByZeroError;class OperatorError extends Error{}t.OperatorError=OperatorError;class ParserError extends Error{}t.ParserError=ParserError;class UndefinedError extends Error{}t.UndefinedError=UndefinedError;class PolynomialError extends Error{}t.PolynomialError=PolynomialError;class UnsupportedOperationError extends Error{}t.UnsupportedOperationError=UnsupportedOperationError;class ParserSyntaxError extends Error{}t.ParserSyntaxError=ParserSyntaxError;class MathError extends Error{}t.MathError=MathError;class NaNError extends Error{}t.NaNError=NaNError;class DimensionError extends Error{}t.DimensionError=DimensionError;class NotImplementedError extends Error{}t.NotImplementedError=NotImplementedError;class MissingReferenceError extends Error{}t.MissingReferenceError=MissingReferenceError;class ZeroToZeroPowerError extends Error{}t.ZeroToZeroPowerError=ZeroToZeroPowerError;class AssignmentError extends Error{}t.AssignmentError=AssignmentError,t.ErrorMessages={eng:{notImplemented:"This method has not yet been implemented.",noInverse:"Unable to calculate inverse!",undefinedValue:"The requested value is undefined!",univariateInputOnly:"The input for this function must be univariate!",differentSignsAtEndPointsRequired:"Function must have opposite signs at endpoints a and b!",integerRequired:"This function requires the coefficient to be an integer!",plainVariableExpected:"Expected plain variable! Received {{input}}.",missingReference:'The reference "{{ref}}" does not exist on this pattern!!',undefinedDivision:"Division not defined expression of this type! {{type}}",restrictedVariableName:'Cannot assign the requested value to the reserved name "{{name}}"!',noVariableInExpression:"No variable found in expression!",quadraticExpressionExpected:"Expression must be quadratic!",wrongInput:"Wrong input! Expected {{expected}} but received {{received}}.",infinityMinusInfinityUndefined:"Infinity-Infinity is undefined!",inconsistentAssumptions:"Assumptions are inconsistent (empty intersection)!",unsupportedType:"The provided type ({{type}}) is not supported for this function!",unsupportedOperation:"This operation is currently not supported!",buildFunctionUnsupportedFunction:'buildFunction cannot compile the function "{{function}}" to JavaScript number arithmetic!',buildFunctionComplexUnsupported:"buildFunction cannot compile expressions containing the imaginary unit to JavaScript number arithmetic!",nonMatchingDimensions:"This operation cannot be completed because the dimensions don't match!",malformedExpression:"Unable to parse malformed expression!",divisionByZero:"Division by zero is not defined!",zeroToZeroPower:"0^0 is undefined!",infinityToPowerZero:"Infinity^0 is not defined!",infinityTimesZero:"0*Infinity is not defined!",infinityToInfinity:"Infinity^Infinity is not defined!",valueToInfinityUndefined:"{{value}}^Infinity is not defined!",atan2Undefined:"atan2 is undefined for 0, 0!",tanUndefined:"tan is undefined for multiples of pi/2!",loopIterationLimitExceeded:"Loop exceeded the maximum of {{max}} iterations.",breakOutsideLoop:"break can only be used inside a loop.",continueOutsideLoop:"continue can only be used inside a loop.",letRequiresBindingsAndBody:"let requires one or more name/value pairs followed by a body expression.",secUndefined:"sec is undefined for odd multiples of pi/2!",cscUndefined:"csc is undefined for multiples of pi!",cotUndefined:"cot is undefined for multiples of pi!",cothUndefined:"coth is undefined for 0!",cschUndefined:"csch is undefined for 0!",atanhUndefined:"atanh is undefined for 0!",cannotCreateArrayFromNaN:"Cannot create array from NaN!",expressionExpected:"Expression expected!. Received {{type}}!",unrecognizedMode:'"{{mode}}" is is not a valid mode!',notAPolynomial:"The expression is not a valid polynomial!",multidegreeMismatch:"The number of variables must match the multidegree of the polynomial!",cannotCreateMatrix:"Unable to create Matrix. Row dimensions do not match!",cannotMultiplyMatrix:"Cannot multiply matrix!",squareMatrixRequired:"The matrix must be square!",rowsMustMatch:"The rows of the matrices must match!",columnsMustMatch:"The columns of the matrices must match!",singularMatrix:"The provided matrix is singular!",matrixExpected:"Matrix expected! Received {{type}}.",mismatchedDimensions:'The dimensions must match for the function "{{function}}"!',incorrectCrossDimension:"The cross product is only defined for vectors of dimension 3!",vectorExpected:"Expected Vector! Received {{type}}.",univariatePolynomialOnly:"This function is only supported for univariate polynomials!",unknownVariable:'Unknown variable! "{{variable}}"',convergenceFailed:"Failed to converge! {{iters}} iterations were tried.",endPointIsRoot:"End point is root.",zeroDerivative:"The derivative is zero at x = {{x}}. Cannot continue.",tooManyUnknowns:"Too many unknowns!",solveSystemInfiniteSolutions:"This system does not have a finite isolated solution set!",solveSystemPolynomialOnly:"solveSystem currently supports only linear or polynomial systems!",solveSystemNonRationalUnsupported:"This nonlinear polynomial system requires non-rational or non-symbolic solving, which is not yet supported!",setJSFunctionExpectsFunction:"The function parameter when setting a JS function must be of type function!",functionRequiresMinAndMaxArgs:"You must provide a min and max arg when setting the function!"},spa:{notImplemented:"Este método aún no se ha implementado.",noInverse:"Incapaz de calcular inversa!",undefinedValue:"¡El valor solicitado no está definido!",univariateInputOnly:"¡La entrada para esta función debe ser univariada!",differentSignsAtEndPointsRequired:"¡La función debe tener signos opuestos en los puntos extremos a y b!",integerRequired:"¡Esta función requiere que el coeficiente sea un número entero!",plainVariableExpected:"¡Se esperaba una variable simple! Se recibió {{input}}.",missingReference:'¡La referencia "{{ref}}" no existe en este patrón!',undefinedDivision:"¡División no definida expresión de este tipo! {{type}}",restrictedVariableName:'¡No se puede asignar el valor solicitado al nombre reservado "{{name}}"!',noVariableInExpression:"¡No se encontró ninguna variable en la expresión!",quadraticExpressionExpected:"¡La expresión debe ser cuadrática!",wrongInput:"¡Entrada incorrecta! Se esperaba {{expected}}, pero se recibió {{received}}.",infinityMinusInfinityUndefined:"¡Infinito menos infinito es indefinido!",inconsistentAssumptions:"¡Las suposiciones son inconsistentes (intersección vacía)!",unsupportedType:"¡El tipo ({{type}}) proporcionado no es compatible con esta función!",unsupportedOperation:"¡Esta operación no está soportada actualmente!",buildFunctionUnsupportedFunction:'¡buildFunction no puede compilar la función "{{function}}" a aritmética numérica de JavaScript!',buildFunctionComplexUnsupported:"¡buildFunction no puede compilar expresiones que contienen la unidad imaginaria a aritmética numérica de JavaScript!",nonMatchingDimensions:"¡Esta operación no se puede completar porque las dimensiones no coinciden!",malformedExpression:"¡No se puede analizar la expresión malformada!",divisionByZero:"¡La división por cero no está definida!",zeroToZeroPower:"¡0^0 no está definido!",infinityToPowerZero:"¡Infinito^0 no está definido!",infinityTimesZero:"¡0*Infinito no está definido!",infinityToInfinity:"¡Infinito^Infinito no está definido!",valueToInfinityUndefined:"{{value}}^Infinito no está definido!",atan2Undefined:"¡atan2 no está definida para 0, 0!",tanUndefined:"¡tan no está definida para múltiplos de pi / 2!",loopIterationLimitExceeded:"El bucle superó el máximo de {{max}} iteraciones.",breakOutsideLoop:"break solo se puede usar dentro de un bucle.",continueOutsideLoop:"continue solo se puede usar dentro de un bucle.",letRequiresBindingsAndBody:"let requiere uno o más pares nombre/valor seguidos de una expresión de cuerpo.",secUndefined:"¡sec no está definida para múltiplos impares de pi/2!",cscUndefined:"¡csc no está definida para múltiplos de pi!",cotUndefined:"¡cot no está definida para múltiplos de pi!",cothUndefined:"¡coth no está definida para 0!",cschUndefined:"¡csch no está definida para 0!",atanhUndefined:"¡Atanh no está definida para 0!",cannotCreateArrayFromNaN:"¡No se puede crear una matriz de NaN!",expressionExpected:"¡Se esperaba Expression! ¡Se recibió {{type}}!",unrecognizedMode:"¡{{mode}} no es un modo válido!",notAPolynomial:"¡La expresión no es un polinomio válido!",multidegreeMismatch:"¡El número de variables debe coincidir con el multigrado del polinomio!",unknownVariable:'¡Variable desconocida! "{{variable}}"',cannotCreateMatrix:"No se puede crear la matriz. ¡Las dimensiones de las filas no coinciden!",cannotMultiplyMatrix:"¡No se puede multiplicar la matriz!",squareMatrixRequired:"¡La matriz debe ser cuadrada!",rowsMustMatch:"¡Las filas de las matrices deben coincidir!",columnsMustMatch:"¡Las columnas de las matrices deben coincidir!",singularMatrix:"¡La matriz proporcionada es singular!",matrixExpected:"¡Matriz esperada! Se recibió {{type}}.",mismatchedDimensions:'¡Las dimensiones deben coincidir para la función "{{function}}"!',incorrectCrossDimension:"¡El producto vectorial sólo está definido para vectores de dimensión 3!",vectorExpected:"¡Vector esperado! Recibido. {{type}}.",univariatePolynomialOnly:"¡Esta función solo es compatible con polinomios univariados!",convergenceFailed:"¡No se logró la convergencia! Se intentaron {{iters}} iteraciones.",endPointIsRoot:"El punto final es la raíz.",zeroDerivative:"La derivada es cero en x = {{x}}. No se puede continuar.",tooManyUnknowns:"¡Demasiadas incógnitas!",solveSystemInfiniteSolutions:"¡Este sistema no tiene un conjunto finito de soluciones aisladas!",solveSystemPolynomialOnly:"¡solveSystem actualmente solo admite sistemas lineales o polinómicos!",solveSystemNonRationalUnsupported:"¡Este sistema polinómico no lineal requiere resolución no racional o no simbólica, lo cual aún no está soportado!",setJSFunctionExpectsFunction:"¡El parámetro de la función, al configurar una función JS, debe ser de tipo función!",functionRequiresMinAndMaxArgs:"¡Debes proporcionar los argumentos mínimo y máximo al configurar la función!"},fra:{notImplemented:"Cette méthode n'a pas encore été implémentée.",noInverse:"Impossible de calculer l'inverse !",undefinedValue:"La valeur demandée n'est pas définie !",univariateInputOnly:"L'entrée de cette fonction doit être univariée !",differentSignsAtEndPointsRequired:"La fonction doit avoir des signes opposés aux extrémités a et b !",integerRequired:"Cette fonction exige que le coefficient soit un entier !",plainVariableExpected:"Une variable simple était attendue ! Reçu : {{input}}.",missingReference:"La référence « {{ref}} » n'existe pas dans ce modèle !",undefinedDivision:"La division n'est pas définie pour une expression de ce type ! {{type}}",restrictedVariableName:"Impossible d'affecter la valeur demandée au nom réservé « {{name}} » !",noVariableInExpression:"Aucune variable n'a été trouvée dans l'expression !",quadraticExpressionExpected:"L'expression doit être quadratique !",wrongInput:"Entrée incorrecte ! {{expected}} était attendu, mais {{received}} a été reçu.",infinityMinusInfinityUndefined:"Infini moins infini n'est pas défini !",inconsistentAssumptions:"Les hypothèses sont incohérentes (intersection vide) !",unsupportedType:"Le type fourni ({{type}}) n'est pas pris en charge par cette fonction !",unsupportedOperation:"Cette opération n'est actuellement pas prise en charge !",buildFunctionUnsupportedFunction:"buildFunction ne peut pas compiler la fonction « {{function}} » en arithmétique numérique JavaScript !",buildFunctionComplexUnsupported:"buildFunction ne peut pas compiler les expressions contenant l'unité imaginaire en arithmétique numérique JavaScript !",nonMatchingDimensions:"Cette opération ne peut pas être effectuée car les dimensions ne correspondent pas !",malformedExpression:"Impossible d'analyser l'expression mal formée !",divisionByZero:"La division par zéro n'est pas définie !",zeroToZeroPower:"0^0 n'est pas défini !",infinityToPowerZero:"Infini^0 n'est pas défini !",infinityTimesZero:"0*Infini n'est pas défini !",infinityToInfinity:"Infini^Infini n'est pas défini !",valueToInfinityUndefined:"{{value}}^Infini n'est pas défini !",atan2Undefined:"atan2 n'est pas définie pour 0, 0 !",tanUndefined:"tan n'est pas définie pour les multiples de pi/2 !",loopIterationLimitExceeded:"La boucle a dépassé le maximum de {{max}} itérations.",breakOutsideLoop:"break ne peut être utilisé qu'à l'intérieur d'une boucle.",continueOutsideLoop:"continue ne peut être utilisé qu'à l'intérieur d'une boucle.",letRequiresBindingsAndBody:"let exige une ou plusieurs paires nom/valeur suivies d’une expression de corps.",secUndefined:"sec n'est pas définie pour les multiples impairs de pi/2 !",cscUndefined:"csc n'est pas définie pour les multiples de pi !",cotUndefined:"cot n'est pas définie pour les multiples de pi !",cothUndefined:"coth n'est pas définie pour 0 !",cschUndefined:"csch n'est pas définie pour 0 !",atanhUndefined:"atanh n'est pas définie pour 0 !",cannotCreateArrayFromNaN:"Impossible de créer un tableau à partir de NaN !",expressionExpected:"Une expression était attendue ! Reçu : {{type}} !",unrecognizedMode:"« {{mode}} » n’est pas un mode valide !",notAPolynomial:"L'expression n'est pas un polynôme valide !",multidegreeMismatch:"Le nombre de variables doit correspondre au multidegré du polynôme !",unknownVariable:"Variable inconnue ! « {{variable}} »",cannotCreateMatrix:"Impossible de créer la matrice. Les dimensions des lignes ne correspondent pas !",cannotMultiplyMatrix:"Impossible de multiplier la matrice !",squareMatrixRequired:"La matrice doit être carrée !",rowsMustMatch:"Les lignes des matrices doivent correspondre !",columnsMustMatch:"Les colonnes des matrices doivent correspondre !",singularMatrix:"La matrice fournie est singulière !",matrixExpected:"Une matrice était attendue ! Reçu : {{type}}.",mismatchedDimensions:"Les dimensions doivent correspondre pour la fonction « {{function}} » !",incorrectCrossDimension:"Le produit vectoriel est défini uniquement pour les vecteurs de dimension 3 !",vectorExpected:"Un vecteur était attendu ! Reçu : {{type}}.",univariatePolynomialOnly:"Cette fonction est prise en charge uniquement pour les polynômes univariés !",convergenceFailed:"Échec de la convergence ! {{iters}} itérations ont été tentées.",endPointIsRoot:"Le point d'extrémité est une racine.",zeroDerivative:"La dérivée est nulle en x = {{x}}. Impossible de continuer.",tooManyUnknowns:"Trop d'inconnues !",solveSystemInfiniteSolutions:"Ce système ne possède pas un ensemble fini de solutions isolées !",solveSystemPolynomialOnly:"solveSystem prend actuellement en charge uniquement les systèmes linéaires ou polynomiaux !",solveSystemNonRationalUnsupported:"Ce système polynomial non linéaire nécessite une résolution non rationnelle ou non symbolique, qui n’est pas encore prise en charge !",setJSFunctionExpectsFunction:"Le paramètre function lors de la définition d’une fonction JS doit être de type function !",functionRequiresMinAndMaxArgs:"Vous devez fournir un nombre minimal et maximal d’arguments lors de la définition de la fonction !"},deu:{notImplemented:"Diese Methode wurde noch nicht implementiert.",noInverse:"Die Inverse konnte nicht berechnet werden!",undefinedValue:"Der angeforderte Wert ist nicht definiert!",univariateInputOnly:"Die Eingabe für diese Funktion muss univariat sein!",differentSignsAtEndPointsRequired:"Die Funktion muss an den Endpunkten a und b unterschiedliche Vorzeichen haben!",integerRequired:"Für diese Funktion muss der Koeffizient eine ganze Zahl sein!",plainVariableExpected:"Eine einfache Variable wurde erwartet! Erhalten: {{input}}.",missingReference:"Die Referenz „{{ref}}“ existiert in diesem Muster nicht!",undefinedDivision:"Division ist für einen Ausdruck dieses Typs nicht definiert! {{type}}",restrictedVariableName:"Der angeforderte Wert kann dem reservierten Namen „{{name}}“ nicht zugewiesen werden!",noVariableInExpression:"Im Ausdruck wurde keine Variable gefunden!",quadraticExpressionExpected:"Der Ausdruck muss quadratisch sein!",wrongInput:"Falsche Eingabe! Erwartet wurde {{expected}}, erhalten wurde {{received}}.",infinityMinusInfinityUndefined:"Unendlich minus Unendlich ist nicht definiert!",inconsistentAssumptions:"Die Annahmen sind widersprüchlich (leere Schnittmenge)!",unsupportedType:"Der angegebene Typ ({{type}}) wird von dieser Funktion nicht unterstützt!",unsupportedOperation:"Diese Operation wird derzeit nicht unterstützt!",buildFunctionUnsupportedFunction:"buildFunction kann die Funktion „{{function}}“ nicht in JavaScript-Zahlenarithmetik kompilieren!",buildFunctionComplexUnsupported:"buildFunction kann Ausdrücke mit der imaginären Einheit nicht in JavaScript-Zahlenarithmetik kompilieren!",nonMatchingDimensions:"Diese Operation kann nicht ausgeführt werden, weil die Dimensionen nicht übereinstimmen!",malformedExpression:"Der fehlerhafte Ausdruck konnte nicht geparst werden!",divisionByZero:"Division durch null ist nicht definiert!",zeroToZeroPower:"0^0 ist nicht definiert!",infinityToPowerZero:"Unendlich^0 ist nicht definiert!",infinityTimesZero:"0*Unendlich ist nicht definiert!",infinityToInfinity:"Unendlich^Unendlich ist nicht definiert!",valueToInfinityUndefined:"{{value}}^Unendlich ist nicht definiert!",atan2Undefined:"atan2 ist für 0, 0 nicht definiert!",tanUndefined:"tan ist für Vielfache von pi/2 nicht definiert!",loopIterationLimitExceeded:"Die Schleife hat das Maximum von {{max}} Iterationen überschritten.",breakOutsideLoop:"break kann nur innerhalb einer Schleife verwendet werden.",continueOutsideLoop:"continue kann nur innerhalb einer Schleife verwendet werden.",letRequiresBindingsAndBody:"let benötigt ein oder mehrere Name/Wert-Paare, gefolgt von einem Ausdrucksrumpf.",secUndefined:"sec ist für ungerade Vielfache von pi/2 nicht definiert!",cscUndefined:"csc ist für Vielfache von pi nicht definiert!",cotUndefined:"cot ist für Vielfache von pi nicht definiert!",cothUndefined:"coth ist für 0 nicht definiert!",cschUndefined:"csch ist für 0 nicht definiert!",atanhUndefined:"atanh ist für 0 nicht definiert!",cannotCreateArrayFromNaN:"Aus NaN kann kein Array erstellt werden!",expressionExpected:"Ein Ausdruck wurde erwartet! Erhalten: {{type}}!",unrecognizedMode:"„{{mode}}“ ist kein gültiger Modus!",notAPolynomial:"Der Ausdruck ist kein gültiges Polynom!",multidegreeMismatch:"Die Anzahl der Variablen muss mit dem Multigrad des Polynoms übereinstimmen!",unknownVariable:"Unbekannte Variable! „{{variable}}“",cannotCreateMatrix:"Die Matrix kann nicht erstellt werden. Die Zeilendimensionen stimmen nicht überein!",cannotMultiplyMatrix:"Die Matrix kann nicht multipliziert werden!",squareMatrixRequired:"Die Matrix muss quadratisch sein!",rowsMustMatch:"Die Zeilen der Matrizen müssen übereinstimmen!",columnsMustMatch:"Die Spalten der Matrizen müssen übereinstimmen!",singularMatrix:"Die angegebene Matrix ist singulär!",matrixExpected:"Eine Matrix wurde erwartet! Erhalten: {{type}}.",mismatchedDimensions:"Die Dimensionen müssen für die Funktion „{{function}}“ übereinstimmen!",incorrectCrossDimension:"Das Kreuzprodukt ist nur für Vektoren der Dimension 3 definiert!",vectorExpected:"Ein Vektor wurde erwartet! Erhalten: {{type}}.",univariatePolynomialOnly:"Diese Funktion wird nur für univariate Polynome unterstützt!",convergenceFailed:"Keine Konvergenz! {{iters}} Iterationen wurden versucht.",endPointIsRoot:"Der Endpunkt ist eine Nullstelle.",zeroDerivative:"Die Ableitung ist bei x = {{x}} null. Fortsetzung nicht möglich.",tooManyUnknowns:"Zu viele Unbekannte!",solveSystemInfiniteSolutions:"Dieses System besitzt keine endliche Menge isolierter Lösungen!",solveSystemPolynomialOnly:"solveSystem unterstützt derzeit nur lineare oder polynomielle Systeme!",solveSystemNonRationalUnsupported:"Dieses nichtlineare polynomielle System erfordert eine nicht rationale oder nicht symbolische Lösung, die noch nicht unterstützt wird!",setJSFunctionExpectsFunction:"Der Funktionsparameter muss beim Festlegen einer JS-Funktion vom Typ function sein!",functionRequiresMinAndMaxArgs:"Beim Festlegen der Funktion müssen minimale und maximale Argumentanzahl angegeben werden!"},por:{notImplemented:"Este método ainda não foi implementado.",noInverse:"Não foi possível calcular a inversa!",undefinedValue:"O valor solicitado não está definido!",univariateInputOnly:"A entrada desta função deve ser univariada!",differentSignsAtEndPointsRequired:"A função deve ter sinais opostos nos pontos extremos a e b!",integerRequired:"Esta função exige que o coeficiente seja um número inteiro!",plainVariableExpected:"Era esperada uma variável simples! Recebido: {{input}}.",missingReference:'A referência "{{ref}}" não existe neste padrão!',undefinedDivision:"A divisão não está definida para uma expressão deste tipo! {{type}}",restrictedVariableName:'Não é possível atribuir o valor solicitado ao nome reservado "{{name}}"!',noVariableInExpression:"Nenhuma variável foi encontrada na expressão!",quadraticExpressionExpected:"A expressão deve ser quadrática!",wrongInput:"Entrada incorreta! Esperado {{expected}}, mas recebido {{received}}.",infinityMinusInfinityUndefined:"Infinito menos infinito não está definido!",inconsistentAssumptions:"As suposições são inconsistentes (interseção vazia)!",unsupportedType:"O tipo fornecido ({{type}}) não é compatível com esta função!",unsupportedOperation:"Esta operação não é suportada atualmente!",buildFunctionUnsupportedFunction:'buildFunction não pode compilar a função "{{function}}" para aritmética numérica JavaScript!',buildFunctionComplexUnsupported:"buildFunction não pode compilar expressões que contêm a unidade imaginária para aritmética numérica JavaScript!",nonMatchingDimensions:"Esta operação não pode ser concluída porque as dimensões não correspondem!",malformedExpression:"Não foi possível analisar a expressão malformada!",divisionByZero:"A divisão por zero não está definida!",zeroToZeroPower:"0^0 não está definido!",infinityToPowerZero:"Infinito^0 não está definido!",infinityTimesZero:"0*Infinito não está definido!",infinityToInfinity:"Infinito^Infinito não está definido!",valueToInfinityUndefined:"{{value}}^Infinito não está definido!",atan2Undefined:"atan2 não está definida para 0, 0!",tanUndefined:"tan não está definida para múltiplos de pi/2!",loopIterationLimitExceeded:"O laço excedeu o máximo de {{max}} iterações.",breakOutsideLoop:"break só pode ser usado dentro de um laço.",continueOutsideLoop:"continue só pode ser usado dentro de um laço.",letRequiresBindingsAndBody:"let exige um ou mais pares nome/valor seguidos de uma expressão de corpo.",secUndefined:"sec não está definida para múltiplos ímpares de pi/2!",cscUndefined:"csc não está definida para múltiplos de pi!",cotUndefined:"cot não está definida para múltiplos de pi!",cothUndefined:"coth não está definida para 0!",cschUndefined:"csch não está definida para 0!",atanhUndefined:"atanh não está definida para 0!",cannotCreateArrayFromNaN:"Não é possível criar um array a partir de NaN!",expressionExpected:"Era esperada uma expressão! Recebido: {{type}}!",unrecognizedMode:'"{{mode}}" não é um modo válido!',notAPolynomial:"A expressão não é um polinômio válido!",multidegreeMismatch:"O número de variáveis deve corresponder ao multigrau do polinômio!",unknownVariable:'Variável desconhecida! "{{variable}}"',cannotCreateMatrix:"Não foi possível criar a matriz. As dimensões das linhas não correspondem!",cannotMultiplyMatrix:"Não é possível multiplicar a matriz!",squareMatrixRequired:"A matriz deve ser quadrada!",rowsMustMatch:"As linhas das matrizes devem corresponder!",columnsMustMatch:"As colunas das matrizes devem corresponder!",singularMatrix:"A matriz fornecida é singular!",matrixExpected:"Era esperada uma matriz! Recebido: {{type}}.",mismatchedDimensions:'As dimensões devem corresponder para a função "{{function}}"!',incorrectCrossDimension:"O produto vetorial só é definido para vetores de dimensão 3!",vectorExpected:"Era esperado um vetor! Recebido: {{type}}.",univariatePolynomialOnly:"Esta função é suportada apenas para polinômios univariados!",convergenceFailed:"Falha na convergência! Foram tentadas {{iters}} iterações.",endPointIsRoot:"O ponto extremo é uma raiz.",zeroDerivative:"A derivada é zero em x = {{x}}. Não é possível continuar.",tooManyUnknowns:"Muitas incógnitas!",solveSystemInfiniteSolutions:"Este sistema não possui um conjunto finito de soluções isoladas!",solveSystemPolynomialOnly:"solveSystem atualmente suporta apenas sistemas lineares ou polinomiais!",solveSystemNonRationalUnsupported:"Este sistema polinomial não linear exige resolução não racional ou não simbólica, que ainda não é suportada!",setJSFunctionExpectsFunction:"O parâmetro da função, ao definir uma função JS, deve ser do tipo function!",functionRequiresMinAndMaxArgs:"É necessário fornecer os números mínimo e máximo de argumentos ao definir a função!"},ita:{notImplemented:"Questo metodo non è ancora stato implementato.",noInverse:"Impossibile calcolare l’inversa!",undefinedValue:"Il valore richiesto non è definito!",univariateInputOnly:"L’input di questa funzione deve essere univariato!",differentSignsAtEndPointsRequired:"La funzione deve avere segni opposti agli estremi a e b!",integerRequired:"Questa funzione richiede che il coefficiente sia un numero intero!",plainVariableExpected:"Era attesa una variabile semplice! Ricevuto: {{input}}.",missingReference:'Il riferimento "{{ref}}" non esiste in questo modello!',undefinedDivision:"La divisione non è definita per un’espressione di questo tipo! {{type}}",restrictedVariableName:'Impossibile assegnare il valore richiesto al nome riservato "{{name}}"!',noVariableInExpression:"Nessuna variabile trovata nell’espressione!",quadraticExpressionExpected:"L’espressione deve essere quadratica!",wrongInput:"Input errato! Atteso {{expected}}, ricevuto {{received}}.",infinityMinusInfinityUndefined:"Infinito meno infinito non è definito!",inconsistentAssumptions:"Le ipotesi sono incoerenti (intersezione vuota)!",unsupportedType:"Il tipo fornito ({{type}}) non è supportato da questa funzione!",unsupportedOperation:"Questa operazione non è attualmente supportata!",buildFunctionUnsupportedFunction:'buildFunction non può compilare la funzione "{{function}}" nell’aritmetica numerica JavaScript!',buildFunctionComplexUnsupported:"buildFunction non può compilare espressioni contenenti l’unità immaginaria nell’aritmetica numerica JavaScript!",nonMatchingDimensions:"Questa operazione non può essere completata perché le dimensioni non corrispondono!",malformedExpression:"Impossibile analizzare l’espressione non valida!",divisionByZero:"La divisione per zero non è definita!",zeroToZeroPower:"0^0 non è definito!",infinityToPowerZero:"Infinito^0 non è definito!",infinityTimesZero:"0*Infinito non è definito!",infinityToInfinity:"Infinito^Infinito non è definito!",valueToInfinityUndefined:"{{value}}^Infinito non è definito!",atan2Undefined:"atan2 non è definita per 0, 0!",tanUndefined:"tan non è definita per multipli di pi/2!",loopIterationLimitExceeded:"Il ciclo ha superato il massimo di {{max}} iterazioni.",breakOutsideLoop:"break può essere usato solo all’interno di un ciclo.",continueOutsideLoop:"continue può essere usato solo all’interno di un ciclo.",letRequiresBindingsAndBody:"let richiede una o più coppie nome/valore seguite da un’espressione corpo.",secUndefined:"sec non è definita per multipli dispari di pi/2!",cscUndefined:"csc non è definita per multipli di pi!",cotUndefined:"cot non è definita per multipli di pi!",cothUndefined:"coth non è definita per 0!",cschUndefined:"csch non è definita per 0!",atanhUndefined:"atanh non è definita per 0!",cannotCreateArrayFromNaN:"Impossibile creare un array da NaN!",expressionExpected:"Era attesa un’espressione! Ricevuto: {{type}}!",unrecognizedMode:'"{{mode}}" non è una modalità valida!',notAPolynomial:"L’espressione non è un polinomio valido!",multidegreeMismatch:"Il numero di variabili deve corrispondere al multigrado del polinomio!",unknownVariable:'Variabile sconosciuta! "{{variable}}"',cannotCreateMatrix:"Impossibile creare la matrice. Le dimensioni delle righe non corrispondono!",cannotMultiplyMatrix:"Impossibile moltiplicare la matrice!",squareMatrixRequired:"La matrice deve essere quadrata!",rowsMustMatch:"Le righe delle matrici devono corrispondere!",columnsMustMatch:"Le colonne delle matrici devono corrispondere!",singularMatrix:"La matrice fornita è singolare!",matrixExpected:"Era attesa una matrice! Ricevuto: {{type}}.",mismatchedDimensions:'Le dimensioni devono corrispondere per la funzione "{{function}}"!',incorrectCrossDimension:"Il prodotto vettoriale è definito solo per vettori di dimensione 3!",vectorExpected:"Era atteso un vettore! Ricevuto: {{type}}.",univariatePolynomialOnly:"Questa funzione è supportata solo per polinomi univariati!",convergenceFailed:"Convergenza non riuscita! Sono state tentate {{iters}} iterazioni.",endPointIsRoot:"Il punto estremo è una radice.",zeroDerivative:"La derivata è zero in x = {{x}}. Impossibile continuare.",tooManyUnknowns:"Troppe incognite!",solveSystemInfiniteSolutions:"Questo sistema non ha un insieme finito di soluzioni isolate!",solveSystemPolynomialOnly:"solveSystem attualmente supporta solo sistemi lineari o polinomiali!",solveSystemNonRationalUnsupported:"Questo sistema polinomiale non lineare richiede una risoluzione non razionale o non simbolica, che non è ancora supportata!",setJSFunctionExpectsFunction:"Il parametro della funzione, quando si imposta una funzione JS, deve essere di tipo function!",functionRequiresMinAndMaxArgs:"È necessario fornire il numero minimo e massimo di argomenti quando si imposta la funzione!"},nld:{notImplemented:"Deze methode is nog niet geïmplementeerd.",noInverse:"Kan de inverse niet berekenen!",undefinedValue:"De gevraagde waarde is niet gedefinieerd!",univariateInputOnly:"De invoer voor deze functie moet univariaat zijn!",differentSignsAtEndPointsRequired:"De functie moet tegengestelde tekens hebben bij de eindpunten a en b!",integerRequired:"Deze functie vereist dat de coëfficiënt een geheel getal is!",plainVariableExpected:"Er werd een eenvoudige variabele verwacht! Ontvangen: {{input}}.",missingReference:'De verwijzing "{{ref}}" bestaat niet in dit patroon!',undefinedDivision:"Deling is niet gedefinieerd voor een uitdrukking van dit type! {{type}}",restrictedVariableName:'Kan de gevraagde waarde niet toewijzen aan de gereserveerde naam "{{name}}"!',noVariableInExpression:"Geen variabele gevonden in de uitdrukking!",quadraticExpressionExpected:"De uitdrukking moet kwadratisch zijn!",wrongInput:"Onjuiste invoer! Verwacht: {{expected}}, ontvangen: {{received}}.",infinityMinusInfinityUndefined:"Oneindig min oneindig is niet gedefinieerd!",inconsistentAssumptions:"De aannames zijn inconsistent (lege doorsnede)!",unsupportedType:"Het opgegeven type ({{type}}) wordt niet ondersteund voor deze functie!",unsupportedOperation:"Deze bewerking wordt momenteel niet ondersteund!",buildFunctionUnsupportedFunction:'buildFunction kan de functie "{{function}}" niet compileren naar JavaScript-rekenkunde met getallen!',buildFunctionComplexUnsupported:"buildFunction kan uitdrukkingen met de imaginaire eenheid niet compileren naar JavaScript-rekenkunde met getallen!",nonMatchingDimensions:"Deze bewerking kan niet worden voltooid omdat de dimensies niet overeenkomen!",malformedExpression:"Kan de onjuist gevormde uitdrukking niet parseren!",divisionByZero:"Delen door nul is niet gedefinieerd!",zeroToZeroPower:"0^0 is niet gedefinieerd!",infinityToPowerZero:"Oneindig^0 is niet gedefinieerd!",infinityTimesZero:"0*Oneindig is niet gedefinieerd!",infinityToInfinity:"Oneindig^Oneindig is niet gedefinieerd!",valueToInfinityUndefined:"{{value}}^Oneindig is niet gedefinieerd!",atan2Undefined:"atan2 is niet gedefinieerd voor 0, 0!",tanUndefined:"tan is niet gedefinieerd voor veelvouden van pi/2!",loopIterationLimitExceeded:"De lus heeft het maximum van {{max}} iteraties overschreden.",breakOutsideLoop:"break kan alleen binnen een lus worden gebruikt.",continueOutsideLoop:"continue kan alleen binnen een lus worden gebruikt.",letRequiresBindingsAndBody:"let vereist een of meer naam/waarde-paren gevolgd door een hoofdexpressie.",secUndefined:"sec is niet gedefinieerd voor oneven veelvouden van pi/2!",cscUndefined:"csc is niet gedefinieerd voor veelvouden van pi!",cotUndefined:"cot is niet gedefinieerd voor veelvouden van pi!",cothUndefined:"coth is niet gedefinieerd voor 0!",cschUndefined:"csch is niet gedefinieerd voor 0!",atanhUndefined:"atanh is niet gedefinieerd voor 0!",cannotCreateArrayFromNaN:"Kan geen array maken van NaN!",expressionExpected:"Er werd een uitdrukking verwacht! Ontvangen: {{type}}!",unrecognizedMode:'"{{mode}}" is geen geldige modus!',notAPolynomial:"De uitdrukking is geen geldig polynoom!",multidegreeMismatch:"Het aantal variabelen moet overeenkomen met de multigraad van het polynoom!",unknownVariable:'Onbekende variabele! "{{variable}}"',cannotCreateMatrix:"Kan de matrix niet maken. De rijafmetingen komen niet overeen!",cannotMultiplyMatrix:"Kan de matrix niet vermenigvuldigen!",squareMatrixRequired:"De matrix moet vierkant zijn!",rowsMustMatch:"De rijen van de matrices moeten overeenkomen!",columnsMustMatch:"De kolommen van de matrices moeten overeenkomen!",singularMatrix:"De opgegeven matrix is singulier!",matrixExpected:"Er werd een matrix verwacht! Ontvangen: {{type}}.",mismatchedDimensions:'De dimensies moeten overeenkomen voor de functie "{{function}}"!',incorrectCrossDimension:"Het kruisproduct is alleen gedefinieerd voor vectoren met dimensie 3!",vectorExpected:"Er werd een vector verwacht! Ontvangen: {{type}}.",univariatePolynomialOnly:"Deze functie wordt alleen ondersteund voor univariate polynomen!",convergenceFailed:"Convergentie mislukt! Er zijn {{iters}} iteraties geprobeerd.",endPointIsRoot:"Het eindpunt is een wortel.",zeroDerivative:"De afgeleide is nul bij x = {{x}}. Kan niet doorgaan.",tooManyUnknowns:"Te veel onbekenden!",solveSystemInfiniteSolutions:"Dit stelsel heeft geen eindige verzameling geïsoleerde oplossingen!",solveSystemPolynomialOnly:"solveSystem ondersteunt momenteel alleen lineaire of polynomiale stelsels!",solveSystemNonRationalUnsupported:"Dit niet-lineaire polynomiale stelsel vereist een niet-rationele of niet-symbolische oplossing, die nog niet wordt ondersteund!",setJSFunctionExpectsFunction:"De functieparameter moet bij het instellen van een JS-functie van het type function zijn!",functionRequiresMinAndMaxArgs:"U moet het minimale en maximale aantal argumenten opgeven bij het instellen van de functie!"}}},4737(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MultiPoly=void 0,t.expToKey=expToKey,t.keyToExp=keyToExp;class MultiPoly{terms;constructor(e){this.terms=e?new Map(e):new Map}static constant(e){const t=new MultiPoly;return 0n!==e&&t.terms.set("",e),t}static monomial(e,t){const n=new MultiPoly;if(0n===e)return n;const i=new Map;for(let e=0;e<t.length;e++)0!==t[e]&&i.set(e,t[e]);return n.terms.set(expToKey(i),e),n}static one(){return MultiPoly.constant(1n)}static variable(e){const t=new MultiPoly,n=new Map([[e,1]]);return t.terms.set(expToKey(n),1n),t}static zero(){return new MultiPoly}clone(){return new MultiPoly(new Map(this.terms))}constantTerm(){return this.terms.get("")??0n}degree(e){let t=-1;for(const n of this.terms.keys()){const i=keyToExp(n).get(e)??0;i>t&&(t=i)}return 0===this.terms.size?-1:t}getCoeff(e){const t=new Map;for(let n=0;n<e.length;n++)0!==e[n]&&t.set(n,e[n]);return this.terms.get(expToKey(t))??0n}isConstant(){return 0===this.terms.size||!(1!==this.terms.size||!this.terms.has(""))}isZero(){return 0===this.terms.size}leadingCoeff(e){const t=this.degree(e);if(t<0)return MultiPoly.zero();const n=new MultiPoly;for(const[i,r]of this.terms){const s=keyToExp(i);if((s.get(e)??0)===t){const t=new Map(s);t.delete(e),n.terms.set(expToKey(t),r)}}return n}setCoeff(e,t){const n=new Map;for(let t=0;t<e.length;t++)0!==e[t]&&n.set(t,e[t]);const i=expToKey(n);0n===t?this.terms.delete(i):this.terms.set(i,t)}text(e){if(0===this.terms.size)return"0";const t=e,n=[],i=Array.from(this.terms.entries()).sort(([e],[t])=>function compareKeyTotalDegDescThenLex(e,t){const n=keyTotalDegree(e),i=keyTotalDegree(t);return n!==i?i-n:e.localeCompare(t)}(e,t));for(const[e,r]of i){const i=keyToExp(e);let s="";const o=r<0n?-r:r,a=r<0n?"-":"+";if(0===i.size)s=o.toString();else{1n!==o&&(s=o.toString());for(const[e,n]of Array.from(i.entries()).sort((e,t)=>e[0]-t[0])){const i=e<t.length?t[e]:`x${e}`;s+=1===n?i:`${i}^${n}`}""===s&&(s="1")}n.push((0===n.length?"+"===a?"":"-":` ${a} `)+s)}return n.join("")||"0"}totalDegree(){let e=-1;for(const t of this.terms.keys()){const n=keyToExp(t);let i=0;for(const e of n.values())i+=e;i>e&&(e=i)}return 0===this.terms.size?-1:e}trim(){for(const[e,t]of this.terms.entries())0n===t&&this.terms.delete(e)}variables(){const e=new Set;for(const t of this.terms.keys()){const n=keyToExp(t);for(const t of n.keys())e.add(t)}return e}}function expToKey(e){const t=Array.from(e.entries()).filter(([,e])=>0!==e).sort((e,t)=>e[0]-t[0]);return 0===t.length?"":t.map(([e,t])=>`${e}:${t}`).join(",")}function keyToExp(e){const t=new Map;if(""===e)return t;for(const n of e.split(",")){const[i,r]=n.split(":"),s=Number(i),o=Number(r);if(!Number.isFinite(s)||!Number.isFinite(o))throw new Error(`keyToExpImpl: invalid monomial key '${e}'`);0!==o&&t.set(s,o)}return t}function keyTotalDegree(e){if(""===e)return 0;let t=0;for(const n of e.split(",")){const[,e]=n.split(":");t+=Number(e)}return t}t.MultiPoly=MultiPoly},4861(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEnumerable=isEnumerable,t.toParserEntities=function toParserEntities(e){const t=[];for(let n=0;n<e.length;n++){const r=e[n];t.push(isEnumerable(r)?r:i.Expression.create(r))}return t},t.toExpressions=function toExpressions(e){return e.map(e=>i.Expression.create(e))};const i=n(296);function isEnumerable(e){return void 0!==e&&!!e.isEnumerable}},4895(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.build=function build(e,t){if((e=i.Expression.create(e)).hasVariable(i.Expression.imaginary))throw new s.UnsupportedOperationError((0,s.message)("buildFunctionComplexUnsupported"));const n=function collectConstants(e){const t="EULER_GAMMA",n=[],i={[r.PI_NAME]:Math.PI,[r.E]:Math.E};function setConstant(e,t){n.push(`var ${e} = ${t};\n`)}return[r.PI_NAME,r.E].forEach(t=>{e.hasVariable(t)&&setConstant(t,i[t])}),[r.CI,r.CHI,r.SI,r.SHI,r.LI,r.EI].some(t=>e.hasFunction(t,!0))&&setConstant(t,o.EULER_GAMMA),n.join(" ")}(e),a=`${e.text({wrapPow:!0})};`.replace(/\^/g,"**"),l=[[],[]];e.functions().forEach(e=>{importDeps(e,l)});let u="";for(let e=0;e<l[0].length;e++)u+=`var ${l[0][e]} = ${l[1][e]};\n`;const c=t||e.variables().sort();return new Function(...c,`${n}${u} return ${a}`)};const i=n(296),r=n(8300),s=n(4703),o=n(3703),a=n(417);function importDeps(e,t,n=new Set){if(""===e)return t;const i=t[0],r=t[1];if(i.includes(e))return t;const o=a.definitions[e];if(void 0===o)throw new s.UnsupportedOperationError((0,s.message)("buildFunctionUnsupportedFunction",{function:e}));if(n.has(e))return t;n.add(e);const[l,u]=o;if(void 0!==u)for(const e of u)importDeps(e,t,n);return n.delete(e),i.includes(e)||(i.push(e),r.push(l)),t}},4988(e,t){"use strict";function abs(e){return e<0n?-e:e}function gcd(e,t){for(e=abs(e),t=abs(t);0n!==t;)[e,t]=[t,e%t];return e}function pow(e,t){if(t<0n)throw new Error("pow: negative exponent");let n=e,i=t,r=1n;for(;i>0n;)1n&i&&(r*=n),n*=n,i>>=1n;return r}function powN(e,t){if(!Number.isInteger(t)||t<0)throw new Error("powN: exponent must be a nonnegative integer");return pow(e,BigInt(t))}function bigIntSqrt(e){if(e<0n)throw new Error("bigIntSqrt: negative input");if(e<2n)return e;let t=e,n=t+1n>>1n;for(;n<t;)t=n,n=n+e/n>>1n;return t}function modNorm(e,t){if(0n===t)throw new Error("modNorm: modulus must be nonzero");const n=abs(t),i=e%n;return i<0n?i+n:i}function isPrime32(e){if(!Number.isInteger(e)||e<2)return!1;if(2===e||3===e)return!0;if(!(1&e))return!1;if(e%3==0)return!1;const t=Math.floor(Math.sqrt(e));for(let n=5;n<=t;n+=6)if(e%n===0||e%(n+2)===0)return!1;return!0}Object.defineProperty(t,"__esModule",{value:!0}),t.GcdBudgetExceededError=t.PrimeSelectionError=void 0,t.abs=abs,t.gcd=gcd,t.pow=pow,t.powN=powN,t.bigIntSqrt=bigIntSqrt,t.intNthRootExact=function intNthRootExact(e,t){if(!Number.isInteger(t)||t<=0)throw new Error("intNthRootExact: n must be a positive integer");if(e<0n){if(!(1&t))return null;const n=intNthRootExact(-e,t);return null===n?null:-n}if(0n===e)return 0n;if(1n===e)return 1n;let n=0n,i=1n;for(;powN(i,t)<e;)i<<=1n;for(;n+1n<i;){const r=n+i>>1n,s=powN(r,t);if(s===e)return r;s<e?n=r:i=r}return powN(i,t)===e?i:powN(n,t)===e?n:null},t.getDivisors=function getDivisors(e){if(e<=0n)throw new Error("getDivisors: n must be positive");const t=[],n=bigIntSqrt(e);for(let i=1n;i<=n;i++)if(e%i===0n){t.push(i);const n=e/i;n!==i&&t.push(n)}return t.sort((e,t)=>e<t?-1:e>t?1:0),t},t.modNorm=modNorm,t.modSymmetric=function modSymmetric(e,t){if(0n===t)throw new Error("modSymmetric: modulus must be nonzero");const n=abs(t),i=modNorm(e,n);return i>n/2n?i-n:i},t.modInv=function modInv(e,t){const n=modNorm(e,t);if(0n===n)throw new Error("modInv: non-invertible (0)");const{g:i,x:r}=function egcd(e,t){let n=e,i=t,r=1n,s=0n,o=0n,a=1n;for(;0n!==i;){const e=n/i;[n,i]=[i,n-e*i],[r,s]=[s,r-e*s],[o,a]=[a,o-e*a]}return{g:n,x:r,y:o}}(n,t);if(1n!==i&&-1n!==i)throw new Error("modInv: non-invertible");return modNorm(r,t)},t.contentBigint=function contentBigint(e){let t=0n;for(const n of e)if(t=gcd(t,abs(n)),1n===t)return 1n;return t},t.bigintBitLength=function bigintBitLength(e){e<0n&&(e=-e);let t=0;for(;e>0n;)t++,e>>=1n;return t},t.nextPrime32=function nextPrime32(e){let t=e;if(t<=2)return 2;for(1&t||t++;!isPrime32(t);)t+=2;return t};class AlgebraError extends Error{details;phase;constructor(e,t="unknown",n){super(e),this.name=this.constructor.name,this.phase=t,this.details=n??{}}}t.PrimeSelectionError=class PrimeSelectionError extends AlgebraError{constructor(e,t){super(e,"prime-selection",t)}},t.GcdBudgetExceededError=class GcdBudgetExceededError extends AlgebraError{constructor(e,t){super(e,"budget",t)}}},5118(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.collectVariablesSet=function collectVariablesSet(e){const t=new Set;for(const n of e){const e=n.variables();for(const n of e)t.add(n)}return Array.from(t).sort()},t.variables=function variables(e,t,n){return collect(e,(e,t)=>e.isVAR()&&!e.isI()&&!t.includes(e.value)&&!n.includes(e.value),(e,t)=>{t.push(e.value)},t)},t.functions=function functions(e,t,n){return collect(e,(e,t)=>e.isFunction()&&!t.includes(!0===n?e.value:e.name),(e,t)=>{!0===n?t.push(e.value):e.isFunction()&&t.push(e.name)},t)},t.hasFunction=function hasFunction(e,t,n=!1){if(e.isFunction()&&e.name===t)return!0;if(n&&e.args)for(const i of e.args)if(hasFunction(i,t,n))return!0;if(e.elements)for(const i in e.elements)if(hasFunction(e.elements[i],t,n))return!0;if(n&&e.isEXP()){if(hasFunction(e.getBase(),t,n))return!0;if(hasFunction(e.getPower(),t,n))return!0}return!1},t.hasVariable=function hasVariable(e,t){if(e.isVAR()&&e.value===t)return!0;if(e.args)for(const n of e.args)if(hasVariable(n,t))return!0;if(e.elements){const n=e.getElements();for(const e in n)if(hasVariable(n[e],t))return!0}if(e.isEXP()){if(hasVariable(e.getBase(),t))return!0;if(hasVariable(e.getPower(),t))return!0}return!1},t.forEveryElement=function forEveryElement(e,t,n=!1){if(e.isNUM()||e.isVAR())return e;const r=e.getMultiplier();let s=e.getPower();e.isEXP()&&(s=forEveryElement(s,t,!0));const o=t(e.toLinearAndUnitMultiplier());let a;if(o.isFunction())o.args=o.getArguments().map(e=>n?t(e):forEveryElement(e,t,!0)),a=o;else if(o.isProduct()){a=(0,i.one)();for(let e of o.elementsArray())e=t(e),a=a.times(forEveryElement(e,t,!0))}else if(o.isSum()){a=(0,i.zero)();for(let e of o.elementsArray())e=t(e),a=a.plus(forEveryElement(e,t,!0))}else a=t(o);return a.pow(s).times(r)};const i=n(6099);function collect(e,t,n,i){if(i??=[],t(e,i)&&n(e,i),e.args)for(const r of e.args)collect(r,t,n,i);if(e.elements)for(const r in e.elements)collect(e.elements[r],t,n,i);return e.isEXP()&&(collect(e.getBase(),t,n,i),collect(e.getPower(),t,n,i)),i}},5141(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.factorPolynomialBig=factorPolynomialBig,t.factorPolynomial=function factorPolynomial(e){Array.isArray(e)&&function assertSafeIntArray(e,t){if(0===e.length)throw new Error(`${t}: empty coefficient array`);for(let n=0;n<e.length;n++){const i=e[n];if(!Number.isFinite(i)||!Number.isInteger(i)||!Number.isSafeInteger(i))throw new Error(`${t}: coefficient at index ${n} is not a safe integer: ${i}`)}}(e,"factorPolynomial");const t=factorPolynomialBig(function toBigFromNumberPoly(e){return(0,r.zTrim)(e.map(e=>BigInt(e)))}(e)),n=(()=>{if(t.content>BigInt(Number.MAX_SAFE_INTEGER)||t.content<BigInt(Number.MIN_SAFE_INTEGER))throw new Error(`factorPolynomial: content out of safe range: ${t.content.toString()}`);return Number(t.content)})(),i=t.factors.map(e=>({coefficients:toNumberFromBigPoly(e.coefficients),multiplicity:e.multiplicity}));return{content:n,factors:i}};const i=n(4988),r=n(9350);function sqrtExactBigint(e){if(e<0n)return null;const t=(0,i.bigIntSqrt)(e);return t*t===e?t:null}function degZPoly(e){const t=(0,r.zTrim)(e);return 1===t.length&&0n===t[0]?-1:t.length-1}const modP=(e,t)=>(0,i.modNorm)(e,t),invP=(e,t)=>(0,i.modInv)(e,t),asFp=(e,t)=>({p:t,coeffs:e}),addFp=(e,t,n)=>(0,r.fpAdd)(asFp(e,n),asFp(t,n)).coeffs,subFp=(e,t,n)=>(0,r.fpSub)(asFp(e,n),asFp(t,n)).coeffs,mulFp=(e,t,n)=>(0,r.fpMul)(asFp(e,n),asFp(t,n)).coeffs,scalarMulFp=(e,t,n)=>(0,r.fpScale)(asFp(e,n),t).coeffs,divFp=(e,t,n)=>{const{q:i,r:s}=(0,r.fpDivRem)(asFp(e,n),asFp(t,n));return[i.coeffs,s.coeffs]},gcdFp=(e,t,n)=>(0,r.fpGCD)(asFp(e,n),asFp(t,n)).coeffs;function powXModFp(e,t,n){if(0n===e)return[1n];let i=[1n],s=[0n,1n];s=divFp(s,t,n)[1];let o=e;for(;o>0n;)1n&o&&(i=divFp(mulFp(i,s,n),t,n)[1]),s=divFp(mulFp(s,s,n),t,n)[1],o>>=1n;return(0,r.zTrim)(i)}function powPolyModFp(e,t,n,i){if(0n===t)return[1n];let s=[1n],o=divFp(e,n,i)[1],a=t;for(;a>0n;)1n&a&&(s=divFp(mulFp(s,o,i),n,i)[1]),o=divFp(mulFp(o,o,i),n,i)[1],a>>=1n;return(0,r.zTrim)(s)}function berlekampMatrixFp(e,t){const n=degZPoly(e);if(n<=0)return[];const r=[];for(let s=0;s<n;s++){const o=powXModFp((0,i.pow)(t,BigInt(s)),e,t),a=new Array(n).fill(0n);for(let e=0;e<n;e++)a[e]=modP(o[e]??0n,t);a[s]=modP(a[s]-1n,t),r.push(a)}return r}function nullSpaceFp(e,t){const n=e.length;if(0===n)return[];const i=e[0].length,r=e.map(e=>e.map(e=>modP(e,t))),s=[];let o=0;for(let e=0;e<i&&o<n;e++){let a=-1;for(let t=o;t<n;t++)if(0n!==r[t][e]){a=t;break}if(-1===a)continue;[r[o],r[a]]=[r[a],r[o]];const l=invP(r[o][e],t);for(let n=e;n<i;n++)r[o][n]=modP(r[o][n]*l,t);for(let s=0;s<n;s++){if(s===o)continue;const n=r[s][e];if(0n!==n)for(let a=e;a<i;a++)r[s][a]=modP(r[s][a]-n*r[o][a],t)}s.push(e),o++}const a=new Array(i).fill(!1);for(const e of s)a[e]=!0;const l=[];for(let e=0;e<i;e++)a[e]||l.push(e);const u=[];for(const e of l){const n=new Array(i).fill(0n);n[e]=1n;for(let e=s.length-1;e>=0;e--){const o=s[e];let a=0n;for(let s=o+1;s<i;s++)a=modP(a+r[e][s]*n[s],t);n[o]=modP(-a,t)}u.push(n)}if(!u.some(e=>1n===e[0]&&e.slice(1).every(e=>0n===e))){const e=new Array(i).fill(0n);e[0]=1n,u.unshift(e)}return u}function berlekampFactorFp(e,t){let n=(0,r.zTrim)(e.slice());const s=degZPoly(n);if(s<=0)return[n];if(1===s)return[n];const o=invP((0,r.zLC)(n),t);n=scalarMulFp(n,o,t);const a=nullSpaceFp(berlekampMatrixFp(n,t),t);if(a.length<=1)return[n];const l=a.map(e=>function vecToPoly(e,t){return(0,r.zTrim)(e.map(e=>modP(e,t)))}(e,t));let u=[n];for(let e=0;e<l.length;e++){const n=l[e];if(degZPoly(n)<=0)continue;const i=[];let s=!1;for(const e of u){if(degZPoly(e)<=1){i.push(e);continue}let o=!1;for(let a=0n;a<t;a++){const l=n.slice();l[0]=modP((l[0]??0n)-a,t);const u=gcdFp(e,(0,r.zTrim)(l),t);if(degZPoly(u)>0&&degZPoly(u)<degZPoly(e)){const[n]=divFp(e,u,t);i.push(u,n),s=!0,o=!0;break}}o||i.push(e)}u=i}const trySplitCZ=(e,n)=>{const r=degZPoly(e);if(r<=1)return null;const s=new Array(r).fill(0n).map((e,i)=>modP(17n*n+31n*BigInt(i)+n*BigInt(i),t));for(let n=1;n<r;n++){const o=powPolyModFp(s,((0,i.pow)(t,BigInt(n))-1n)/2n,e,t),a=gcdFp(e,subFp(o,[1n],t),t);if(degZPoly(a)>0&&degZPoly(a)<r){const[n]=divFp(e,a,t);return[a,n]}const l=gcdFp(e,addFp(o,[1n],t),t);if(degZPoly(l)>0&&degZPoly(l)<r){const[n]=divFp(e,l,t);return[l,n]}}return null};for(let e=1n;e<=64n;e++){let t=!1;const n=[];for(const i of u){if(degZPoly(i)<=1){n.push(i);continue}const r=trySplitCZ(i,e);r?(n.push(r[0],r[1]),t=!0):n.push(i)}if(u=n,!t)break}return u}function henselLiftMulti(e,t,n,i){if(0===t.length)return[];if(1===t.length)return[(0,r.zPrimitivePart)(e)];const s=BigInt(n);function liftTree(e,t,n){if(!e.left||!e.right)return;const i=function henselStep(e,t,n,i,s,o,a){const l=a*o,u=(0,r.zMulMod)(t,n,l),c=(0,r.zSubMod)((0,r.zTrimMod)(e,l),u,l),m=(0,r.zMulMod)(i,c,l),{q:p,r:d}=(0,r.zDivRemMod)(m,n,l);let g=(0,r.zAddMod)(t,(0,r.zMulMod)(s,c,l),l);g=(0,r.zAddMod)(g,(0,r.zMulMod)(p,t,l),l);const h=(0,r.zAddMod)(n,d,l),x=(0,r.zAddMod)((0,r.zMulMod)(i,g,l),(0,r.zMulMod)(s,h,l),l),E=(0,r.zSubMod)(x,[1n],l),y=(0,r.zMulMod)(i,E,l),{q:v,r:P}=(0,r.zDivRemMod)(y,h,l),w=(0,r.zSubMod)(i,P,l);let b=(0,r.zSubMod)(s,(0,r.zMulMod)(s,E,l),l);return b=(0,r.zSubMod)(b,(0,r.zMulMod)(v,g,l),l),{g:(0,r.zTrimMod)(g,l),h:(0,r.zTrimMod)(h,l),s:(0,r.zTrimMod)(w,l),t:(0,r.zTrimMod)(b,l)}}(t,e.left.poly,e.right.poly,e.s,e.t,s,n);e.left.poly=i.g,e.right.poly=i.h,e.s=i.s,e.t=i.t,liftTree(e.left,i.g,n),liftTree(e.right,i.h,n)}let o=s;const a=function buildTree(e,t){if(1===e.length)return{poly:(0,r.zTrimMod)(e[0],t)};const n=Math.floor(e.length/2),i=buildTree(e.slice(0,n),t),s=buildTree(e.slice(n),t),o=(0,r.zMulMod)(i.poly,s.poly,t),[,a,l]=function extendedGcdMod(e,t,n){let i=(0,r.zTrimMod)(e,n),s=(0,r.zTrimMod)(t,n),o=[1n],a=[0n],l=[0n],u=[1n];for(;!(0,r.zIsZero)(s);){const{q:e,r:t}=(0,r.zDivRemMod)(i,s,n);i=s,s=t,o=(0,r.zSubMod)(o,(0,r.zMulMod)(e,a,n),n),l=(0,r.zSubMod)(l,(0,r.zMulMod)(e,u,n),n),[o,a]=[a,o],[l,u]=[u,l]}if(!(0,r.zIsZero)(i)){const e=invP((0,r.zLC)(i),n);i=(0,r.zScaleMod)(i,e,n),o=(0,r.zScaleMod)(o,e,n),l=(0,r.zScaleMod)(l,e,n)}return[i,o,l]}(i.poly,s.poly,t);return{poly:o,s:a,t:l,left:i,right:s}}(t.map(function toZPolyFromFp(e){return(0,r.zTrim)(e.map(e=>BigInt(e)))}),o);for(let t=1;t<i;t++){const t=o*s;liftTree(a,(0,r.zTrimMod)(e,t),o),o=t}return function collectLeaves(e){return e.left||e.right?[...e.left?collectLeaves(e.left):[],...e.right?collectLeaves(e.right):[]]:[e.poly]}(a).map(e=>(0,r.zTrimMod)(e,o))}function combinations(e,t){const n=[],i=[];return function rec(r){if(i.length!==t)for(let t=r;t<e;t++)i.push(t),rec(t+1),i.pop();else n.push(i.slice())}(0),n}function toFpPolyFromZ(e,t){return(0,r.zTrim)(e.map(e=>modP(e,t)))}function countFactorsModP_Berlekamp(e,t){const n=BigInt(t),i=toFpPolyFromZ(e,n),s=(0,r.zLC)(i);return nullSpaceFp(berlekampMatrixFp(1n===s?i:scalarMulFp(i,invP(s,n),n),n),n).length}function primeBudgetForUniZ(e){const t=Math.max(0,degZPoly(e));let n=0n;for(const t of e){const e=t<0n?-t:t;e>n&&(n=e)}const r=(0,i.bigintBitLength)(n);let s=32+Math.ceil(t/4)+Math.ceil(r/64);return s<32&&(s=32),s>256&&(s=256),s}function factorSquareFreeBig(e){if(degZPoly(e=(0,r.zTrim)(e))<=1)return[(0,r.zPrimitivePart)(e)];const t=function tryFactorQuarticEvenZ(e){if(4!==degZPoly(e=(0,r.zTrim)(e)))return null;const t=e[0]??0n,n=e[1]??0n,i=e[2]??0n,s=e[3]??0n,o=e[4]??0n;if(0n===o)return null;if(1n!==o)return null;if(0n!==n||0n!==s)return null;const a=sqrtExactBigint(t);if(null!==a){const e=sqrtExactBigint(2n*a-i);if(null!==e){const t=[a,e,1n],n=[a,-e,1n];return[(0,r.zPrimitivePart)(t),(0,r.zPrimitivePart)(n)]}}const l=sqrtExactBigint(i*i-4n*t);if(null!==l){const e=-i+l,t=-i-l;if(e%2n==0n&&t%2n==0n){const n=[-e/2n,0n,1n],i=[-t/2n,0n,1n];return[(0,r.zPrimitivePart)(n),(0,r.zPrimitivePart)(i)]}}return null}(e);if(t)return t;const n=function tryFactorStrideSubstitutionZ(e){const t=degZPoly(e=(0,r.zTrim)(e));if(t<4)return null;let n=0;for(let t=1;t<e.length;t++)0n!==(e[t]??0n)&&(n=0===n?t:Number((0,i.gcd)(BigInt(n),BigInt(t))));if(n<2)return null;const s=Math.floor(t/n)+1,o=new Array(s).fill(0n);for(let t=0;t<e.length;t++){const i=e[t]??0n;if(0n!==i){if(t%n!==0)return null;o[t/n]=i}}let a=factorPolynomialBig((0,r.zTrim)(o));if(!a.factors||a.factors.length<=1){const e=(0,r.zTrim)(o),t=degZPoly(e);if(t>=2&&t<=6){const n=e[0]??0n,s=e[t]??1n;if(0n!==n){const o=(0,i.getDivisors)(n<0n?-n:n),l=(0,i.getDivisors)(s<0n?-s:s);for(const n of o){for(const i of l){for(const s of[1n,-1n]){const o=s*n;let l=0n;for(let n=0;n<=t;n++){const r=e[n]??0n;let s=1n;for(let e=0;e<n;e++)s*=o;let a=1n;for(let e=0;e<t-n;e++)a*=i;l+=r*s*a}if(0n===l){const t=[-o,i],n=(0,r.zTryDivExact)(e,t);if(n){const e=factorPolynomialBig(n),i=[{coefficients:(0,r.zTrim)(t),multiplicity:1}];for(const t of e.factors)i.push(t);a={content:e.content,factors:i};break}}}if(a.factors.length>1)break}if(a.factors.length>1)break}}}}if(!a.factors||a.factors.length<=1)return null;const l=[];for(const e of a.factors){const t=e.coefficients,i=e.multiplicity??1,s=new Array((t.length-1)*n+1).fill(0n);for(let e=0;e<t.length;e++)s[e*n]=t[e];const o=factorSquareFreeBig((0,r.zTrim)(s));for(let e=0;e<i;e++)l.push(...o)}return 1n!==a.content&&-1n!==a.content?l.unshift([a.content]):-1n===a.content&&l.length>0&&(l[0]=l[0].map(e=>-e)),l.length>1?l:null}(e);if(n)return n;const s=function coefficientBoundMignotte(e){const t=degZPoly(e);let n=0n;for(const t of e)n+=t*t;const r=(0,i.bigIntSqrt)(n)+((0,i.bigIntSqrt)(n)*(0,i.bigIntSqrt)(n)===n?0n:1n);return(1n<<BigInt(Math.max(0,t)))*r}(e),o=(0,i.abs)((0,r.zLC)(e));let a,l;const u=(0,r.zDerivative)(e),c=primeBudgetForUniZ(e);let m=3;try{m=function findGoodPrimeBig(e,t=3,n){const s=(0,i.abs)((0,r.zLC)(e)),o=(0,r.zDerivative)(e),a=0|(n??primeBudgetForUniZ(e));if(!Number.isFinite(a)||a<=0)throw new i.PrimeSelectionError("findGoodPrimeBig: invalid maxPrimes",{budget:a});let l=0,u=Number.POSITIVE_INFINITY,c=0,m=(0,i.nextPrime32)(Math.max(2,t));for(;c<a;){c++;const t=BigInt(m);if(s%t===0n){m=(0,i.nextPrime32)(m+1);continue}const n=t,r=toFpPolyFromZ(e,n),a=toFpPolyFromZ(o,n);if(0!==degZPoly(gcdFp(r,a,n))){m=(0,i.nextPrime32)(m+1);continue}const p=countFactorsModP_Berlekamp(e,m);if(p<u&&(u=p,l=m,p<=2))break;m=(0,i.nextPrime32)(m+1)}if(0===l)throw new i.PrimeSelectionError(`Could not find suitable prime after trying ${c} primes (budget=${a})`,{tried:c,budget:a,minPrime:t});return{p:l,numFactors:u}}(e).p}catch{m=3}let p,d=0,g=(0,i.nextPrime32)(Math.max(2,m));for(;d<c;){d++;const t=BigInt(g);if(0n===modP((0,r.zLC)(e),t)){g=(0,i.nextPrime32)(g+1);continue}const n=toFpPolyFromZ(e,t),s=toFpPolyFromZ(u,t);if(0!==degZPoly(gcdFp(n,s,t))){g=(0,i.nextPrime32)(g+1);continue}const o=berlekampFactorFp(n,t);if(o.length>1){a=g,l=t,p=o;break}g=(0,i.nextPrime32)(g+1)}if(!a||!l||!p)return[(0,r.zPrimitivePart)(e)];const h=2n*o*s;let x=1,E=l;for(;E<=h;)E*=l,x++;const y=modP((0,r.zLC)(e),l),v=p.map(e=>e.slice());1n!==y&&(v[0]=scalarMulFp(v[0],y,l));const P=function recombineFactorsBig(e,t,n){const i=[];let s=(0,r.zTrim)(e.slice());const o=t.length,a=new Set;for(let e=1;e<o;e++){const l=combinations(o,e);for(const e of l){if(e.some(e=>a.has(e)))continue;let o=[1n];for(const i of e)o=(0,r.zMulMod)(o,t[i],n);const l=(0,r.zToSymmetricMod)(o,n),{primitive:u}=(0,r.zNormalizePrimitiveSign)(l);if(degZPoly(u)<=0)continue;const c=(0,r.zTryDivExact)(s,u);if(c){i.push(u),s=c;for(const t of e)a.add(t);if(degZPoly(s)<=0)return i}}}return degZPoly(s)>0&&i.push((0,r.zPrimitivePart)(s)),i}(e,henselLiftMulti((0,r.zTrim)(e),v,a,x),E);if(1===P.length){const t=(0,r.zPrimitivePart)(e);if(polyEqualsZ(t,(0,r.zPrimitivePart)(P[0])))return[t]}const w=[];for(const t of P)if(degZPoly(t)<=1)w.push((0,r.zPrimitivePart)(t));else{const n=(0,r.zPrimitivePart)(t);polyEqualsZ(n,(0,r.zPrimitivePart)(e))?w.push(n):w.push(...factorSquareFreeBig(n))}return w}function polyEqualsZ(e,t){if(e=(0,r.zTrim)(e),t=(0,r.zTrim)(t),e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function factorPolynomialBig(e){let t=(0,r.zTrim)(e);if((0,r.zIsZero)(t))return{content:0n,factors:[]};if(0===degZPoly(t))return{content:t[0]??0n,factors:[]};const{content:n,primitive:i}=(0,r.zNormalizePrimitiveSign)(t);t=i;const s=function squareFreeFactorizationBig(e){if(degZPoly(e=(0,r.zTrim)(e))<=0)return[];e=(0,r.zPrimitivePart)(e);const t=(0,r.zDerivative)(e);if((0,r.zIsZero)(t))return[[e,1]];let n=(0,r.zGcdPrimitivePRS)(e,t);if(0===degZPoly(n))return[[e,1]];const i=(0,r.zTryDivExact)(e,n);if(!i)return[[e,1]];let s=i,o=1;const a=[];for(;degZPoly(s)>0;){const e=(0,r.zGcdPrimitivePRS)(n,s),t=(0,r.zTryDivExact)(s,e);t&&degZPoly(t)>0&&a.push([(0,r.zPrimitivePart)(t),o]),s=e;const i=(0,r.zTryDivExact)(n,e);if(!i)break;n=i,o++}return a}(t),o=0===s.length?[[t,1]]:s,a={content:n,factors:[]};for(const[e,t]of o){const n=factorSquareFreeBig(e);for(const e of n)a.factors.push({coefficients:(0,r.zPrimitivePart)(e),multiplicity:t})}return a}function toNumberFromBigPoly(e){const t=[];for(const n of e){if(n>BigInt(Number.MAX_SAFE_INTEGER)||n<BigInt(Number.MIN_SAFE_INTEGER))throw new Error(`toNumberFromBigPoly: coefficient out of safe range: ${n.toString()}`);t.push(Number(n))}for(;t.length>1&&0===t[t.length-1];)t.pop();return t}},5190(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseConverter=void 0;const i=n(296),r=n(8300),s=n(4703),o={TeX:"TeX",TEXT:"text"};class BaseConverter{static GREEK_LETTERS=["alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omnikron","pi","rho","sigma","tau","upsilon","phi","chi","psi","omega","Gamma","Delta","Epsilon","Theta","Lambda","Xi","Pi","Sigma","Phi","Psi","Omega"];static modes=o;greek=BaseConverter.GREEK_LETTERS;modes=[o.TeX,o.TEXT];mode=this.modes[0];static convertNtRoot(e,t){return i.Expression.toFunction(r.NTHROOT,[BaseConverter.strip(e),t])}static convertSQRT(e){return i.Expression.toFunction(r.SQRT,[BaseConverter.strip(e)])}static join(e,t,n){return e||t?e&&!t?e:t&&!e?t:e+n+t:""}static merge(e,t){return[e[0]+t[0],e[1]+t[1]]}static strip(e){const t=new i.Expression(e);return delete t.power,delete t.multiplier,t}cleanup(){}convertPower(e,t,n){return t.isOne()||e.isNUM()&&t.isZero()?"":this.convert(t,n)}finalizePowerAndInput(e,t,n){return[e,t]}formatPowerOutput(e,t){const n=["",""];for(let i=0;i<e.length;i++){const r=e[i];if(""===r){n[i]="";continue}const s=this.mode===BaseConverter.modes.TEXT&&t?this.inBrackets(r):this.inBraces(r);n[i]="^"+s}return n}formatSubscripts(e){const t=e.split("_");let n="";for(;t.length>1;)n="_"+this.inBraces(t.pop()+n);return t[0]+n}getMultiplicationSymbol(){return"TeX"===this.mode?" \\cdot ":"*"}inBraces(e){return this.mode===BaseConverter.modes.TEXT?e:`{${e}}`}inBrackets(e,t="parens"){const[n,i]={parens:["(",")"],square:["[","]"],brace:["{","}"],abs:["|","|"]}[t];return this.mode===BaseConverter.modes.TEXT?`${n}${e}${i}`:"brace"===t?`\\left\\{${e}\\right\\}`:`\\left${n}${e}\\right${i}`}initInput(e){return e}isBracketed(e){return/^\\left\(.+\\right\)$/.test(e)}requiresMultiplicationSymbol(e){return e.isSum()}set(e,t,n,i){const r=this.getMultiplicationSymbol(),s=i.isProduct();let o;if(n){const e=i.getPower(),t=(e.isSum()||e.isProduct())&&e.isLinear()||e.isNUM()&&!e.isInteger()||-1===e.getPower().sign();n=this.formatPowerOutput(n,t)}s&&(o=n[0],n[0]=""),t=BaseConverter.merge(t,n);let[a,l]=e;const[u,c]=t;u&&1===Number(a)&&(a=""),1===Number(l)&&(l="");const m=this.requiresMultiplicationSymbol(i),p=this.mode===BaseConverter.modes.TeX,d=BaseConverter.join(a,u,p||!this.isBracketed(u)||m?r:"");let g=BaseConverter.join(l,c,p||!this.isBracketed(c)||m?r:"");if(l&&c&&this.mode===BaseConverter.modes.TEXT&&(g=this.inBrackets(g)),d&&g){let e=this.toFraction(d,g);return s&&o&&(e=this.inBrackets(e)+o),e}return d}setMultiplier(e,t,n,i){i?.decimal?t[0]=e.isInteger()?String(e.numerator):e.text(i):(t[0]=String(e.numerator),t[1]=String(e.denominator))}toFraction(e,t){return"TeX"===this.mode?"\\frac"+this.inBraces(this.stripOuterBrackets(e))+this.inBraces(this.stripOuterBrackets(t)):`${e}/${t}`}value(e,t,n,i){return["",""]}convertCollection(e,t){const n=e.elements.map(e=>this.convert(e,t)).join(this.mode===BaseConverter.modes.TeX?", \\, ":", ");return this.inBrackets(n)}convertDictionary(e,t){const n=e.entries().map(([e,n])=>{const i=this.convert(n,t);return this.mode===BaseConverter.modes.TeX?`${e} \\mapsto ${i}`:`${e} => ${i}`}).join(this.mode===BaseConverter.modes.TeX?", \\, ":", ");return this.mode===BaseConverter.modes.TeX?`\\left\\{${n}\\right\\}`:`{${n}}`}convertEquation(e,t){return`${this.convert(e.LHS,t)}=${this.convert(e.RHS,t)}`}convertExpression(e,t){const n=(e=this.initInput(e)).getPower(),i=n.isComplex(),r=i?n:n.signFree(),s=!i&&(n.lt(0)||-1===n.sign()),o=e.getMultiplier().isNegative(),a=e.getMultiplier().abs(),l=["",""];t.ignoreMultiplier||this.setMultiplier(a,l,e,t);const[u,c]=this.finalizePowerAndInput(r,e,t),m=this.value(c,s,o,t),p=this.convertPower(c,u,t),d=["",""];d[s?1:0]=p;const g=(o?"-":"")+this.set(l,m,d,c);return this.cleanup(),g.replace(/\+-/g,"-")}convertMatrix(e,t){let n;if(this.mode===BaseConverter.modes.TEXT)n=`matrix(${e.elements.map(e=>`[${e.map(e=>this.convert(e,t)).join(", ")}]`).join(", ")})`;else{const i=t.matrixStyle||"",r={...t,insideMatrix:!0};n=`\\begin{${i}matrix} ${e.elements.map(e=>e.map(e=>this.convert(e,r)).join(" & ")).join(" \\\\ ")} \\end{${i}matrix}`}return n}convertValuesSet(e,t){const n=e.elements.map(e=>this.convert(e,t)).join(this.mode===BaseConverter.modes.TeX?", \\, ":", ");return this.mode===BaseConverter.modes.TeX?`\\left\\{${n}\\right\\}`:`{${n}}`}stripOuterBrackets(e){const t="\\left(",n="\\right)";let i=e;if(e.startsWith(t)&&e.endsWith(n)){let r=0,s=!0;for(let i=0;i<e.length&&s;)e.startsWith(t,i)?(r++,i+=6):e.startsWith(n,i)?(r--,i+=7,(0===r&&i<e.length||r<0)&&(s=!1)):i++;s&&0===r&&(i=e.slice(6,-7))}return i}convert(e,t){if(t={convertRoots:!0,...t},"number"==typeof e)return String(e);if("string"==typeof e||i.Expression.isExpression(e))return this.convertExpression(i.Expression.create(e),t);if(e.dataType===r.COLLECTION)return this.convertCollection(e,t);if(e.dataType===r.EQUATION)return this.convertEquation(e,t);if(e.dataType===r.VECTOR){const n=e,i=t.insideMatrix?" & ":this.mode===BaseConverter.modes.TeX?", \\, ":", ",r=n.arrayMap(e=>this.convert(e,t)).join(i);return t.insideMatrix?r:this.inBrackets(r,"square")}if(e.dataType===r.MATRIX)return this.convertMatrix(e,t);if(e.dataType===r.SOLUTIONS_SET)return this.convertValuesSet(e,t);if(e.dataType===r.SET)return this.convertValuesSet(e,t);if(e.dataType===r.DICTIONARY)return this.convertDictionary(e,t);throw new Error((0,s.message)("unsupportedType",{type:r.dataTypes[e.dataType]||typeof e}))}setMode(e){if(!this.modes.includes(e))throw new Error((0,s.message)("unrecognizedMode",{mode:e}));this.mode=e}}t.BaseConverter=BaseConverter},5523(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toCommonDenominator=function toCommonDenominator(e){let t=e;if(e.isProduct())t=i.Expression.fromRational(e.getMultiplier()),e.each(n=>{n=n.pow(e.getPower()),t=n.isSum()?t.times(toCommonDenominator(n)):t.times(n)});else if(e.isSum()){if(e=function groupByDenominator(e){let t=e;if(e.isSum()){let n=(0,r.zero)();const s={};e.each(e=>{const t=e.getNumerator(),i=e.getDenominator();if(e.getMultiplier().asDecimal&&(t.getMultiplier().asDecimal=!0),i.isOne())n=n.plus(t);else{const e=i.text();s[e]=s[e]?s[e].plus(t):t}}),t=n;for(const e in s)t=t.plus(s[e].div(i.Expression.create(e)));t=t.pow(e.getPower()).times(e.getMultiplier())}return t}(e),!e.isSum())return e;const n=e.getPower().abs(),s=e.getMultiplier(),o=e.elementsArray();let a=!1,l=!1;for(const e of o){const t=e.getDenominator();t.isOne()||(a=!0,t.isNUM()||(l=!0))}if(!a)return e;if(!l&&!e.isPolynomialLike())return e;let u=(0,r.zero)(),c=(0,r.one)();for(const e of o){const t=toCommonDenominator(e),n=t.getNumerator(),i=t.getDenominator();e.getMultiplier().asDecimal&&(n.getMultiplier().asDecimal=!0),u=u.times(i).plus(c.times(n)),c=c.times(i)}-1===e.getPower().sign()&&([c,u]=[u,c]),t=u.div(c),n.isOne()||(t=t.pow(n)),s.isOne()||(t=t.times(i.Expression.fromRational(s)))}return t};const i=n(296),r=n(6099)},5530(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.integrate=integrate;const i=n(2766),r=n(9684),s=n(8125),o=n(296),a=n(542),l=n(6099),u=n(1897),c=n(8300),m=n(2116),p=n(9565),d=n(2292),g=n(886),h=n(8533),x=n(1649),E=n(2212),y=n(1097),v=n(959),P=n(388);function integrate(e,t,n=0){e=o.Expression.create(e),t=(0,u.assertPlainVariableAndGetString)(o.Expression.create(t));const i=o.Expression.create(e);let w;if(n++>10)w=o.Expression.toFunction(c.INTEGRATE,[i,t]);else{let i;if(({constants:i,expression:e}=(0,a.constantsFreeProduct)(e,t)),e.hasVariable(t))if(e.isSum()&&e.isLinear()){let i=(0,l.zero)();e.each(e=>{i=i.plus(integrate(e,t,n))}),w=i}else w=v.tableOfIntegrals.lookup(new d.Pattern(e,[t]),n);else w=e.times(t);if(w||(w=function tryIntegrateLogPower(e,t,n){if(!e.isFunction(c.LOG))return;const i=e.getPower();if(!i.isInteger()||!i.gt((0,l.one)()))return;const r=e.getArguments();if(1!==r.length)return;let s;try{s=new m.Polynomial(r[0],[t])}catch{return}if(1!==s.deg())return;const o=s.toArray(!1,t),a=o[1]??(0,l.zero)();if(a.isZero())return;const u=e.getBase().pow(i.minus((0,l.one)())),p=integrate(u,t,n);if(p.isFunction(c.INTEGRATE))return;const d=r[0].div(a).times(e);return d.minus(i.times(p))}(e,t,n)),w||(w=function tryIntegrateByRadicalSubstitutionFastPath(e,t,n){const i=(0,g.getU)(e),s=(0,P.radicalSubstitution)(e,t,i);if(!s)return;const a=(0,r.simplify)(s.integrand);if(!isRationalFunctionInVariable(a,s.newVariable))return;const l=tryIntegrateRational(a,s.newVariable,n);return l&&!l.isFunction(c.INTEGRATE)?(0,r.simplify)((0,g.subst)(l,o.Expression.create(s.newVariable),s.backSub)):void 0}(e,t,n)),w||(w=function tryIntegrateSqrtQuadratic(e,t){const n=e.getPower();if(!n.eq((0,l.half)()))return;const i=e.getBase();if((0,P.hasTranscendental)(i,t))return;let r;try{r=new m.Polynomial(i,[t])}catch{return}if(2!==r.deg())return;const s=r.toArray(!1,t),a=s[0]??(0,l.zero)(),u=s[1]??(0,l.zero)(),p=s[2]??(0,l.zero)();if(p.isZero())return;const d=o.Expression.create(t),g=d.plus(u.div((0,l.two)().times(p))),x=a.minus(u.pow((0,l.two)()).div((0,l.four)().times(p))),E=e,y=(0,l.half)().times(g).times(E);if(!x.isZero()){if(p.gt((0,l.zero)())){const e=p.pow((0,l.half)());if(x.gt((0,l.zero)())){const t=x.pow((0,l.half)()),n=e.times(g).div(t);return y.plus(x.div((0,l.two)().times(e)).times(o.Expression.toFunction(c.ASINH,[n])))}if(x.lt((0,l.zero)())){const t=e.times(g).plus(E);return y.plus(x.div((0,l.two)().times(e)).times((0,h.log)(t)))}return}if(p.lt((0,l.zero)())&&x.gt((0,l.zero)())){const e=p.times("-1").pow((0,l.half)()),t=x.pow((0,l.half)()),n=e.times(g).div(t);return y.plus(x.div((0,l.two)().times(e)).times(o.Expression.toFunction(c.ASIN,[n])))}}}(e,t)),!w&&e.isProduct()){const n=(0,y.tryIntegrateByWrappedFactorSubstitution)(e,e.elementsArray(),t);n&&(w=n)}if(!w&&e.isProduct()){let i=!1;for(const n of e.elementsArray())if(n.isSum()&&(0,P.hasTranscendental)(n,t)){i=!0;break}if(i){const i=e.expand();if(i.isSum()&&i.isLinear()){let e=(0,l.zero)(),r=!0;i.each(i=>{const s=integrate(i,t,n);s.isFunction(c.INTEGRATE)&&(r=!1),e=e.plus(s)}),r&&(w=e)}}}if(!w){const i=(0,E.tryIntegrationByParts)(e,t,integrate,n);i&&(w=i)}if(!w){const n=(0,y.tryIntegrateByLogSubstitution)(e,t);n&&(w=(0,h.log)(n.fx).times(n.constant))}if(!w){const n=(0,y.tryIntegrateBySubstitution)(e,t);if(n){const e=n.power.plus((0,l.one)());w=n.fx.pow(e).div(e).times(n.constant)}}w||(w=function tryIntegratePolynomial(e,t){if(!e.isPolynomialLike()||(0,P.hasTranscendental)(e,t))return;let n;try{n=new m.Polynomial(e,[t])}catch{return}const i=n.toArray(!1,t),r=o.Expression.create(t);let s=(0,l.zero)();for(let e=0;e<i.length;e++){const t=i[e]??(0,l.zero)();if(!t.isZero()){const n=e+1;s=s.plus(t.times(r.pow(n)).div(n))}}return s}(e,t)),w||(w=function tryIntegratePowerQuotient(e,t,n){const i=(0,y.tryIntegrateByPowerSubstitution)(e,t);if(i){const e=i.power,t=(0,l.one)().plus(e.times((0,l.minusOne)()));return i.fx.pow(t).div(t).times(i.constant)}const r=e.getNumerator(),s=e.getDenominator();if(s.isOne()||!s.hasVariable(t))return;const a=s.getBase(),u=s.getPower();if(u.isOne())return;if((0,P.hasTranscendental)(r,t)||(0,P.hasTranscendental)(a,t))return;let d,g,h;try{d=new m.Polynomial(r,[t]),new m.Polynomial(a,[t])}catch{return}if(d.deg()<1)return;try{[g,h]=(0,p.divide)(r,a,void 0,[t])}catch{return}if(o.Expression.create(g).isZero())return;const x=o.Expression.create(g).times(a.pow((0,l.one)().plus(u.times((0,l.minusOne)())))),E=o.Expression.create(h),v=E.isZero()?(0,l.zero)():E.div(s),w=integrate(x,t,n);if(w.isFunction(c.INTEGRATE))return;let b=w;if(!E.isZero()){const e=integrate(v,t,n);if(e.isFunction(c.INTEGRATE))return;b=b.plus(e)}return b}(e,t,n)),w||(w=tryIntegrateRational(e,t,n)),w||(w=function tryIntegrateByWeierstrass(e,t,n){let i=e;(0,s.hasDerivedTrig)(i)&&(i=(0,s.rewrite)(i));const a=function getTrigArgIfRationalInTrig(e,t){let n,i=!0;function walk(e){if(i){if(e.isFunction(c.SIN)||e.isFunction(c.COS)){const r=e.getArguments();return void(1===r.length&&r[0].hasVariable(t)&&(void 0===n?n=r[0]:n.eq(r[0])||(i=!1)))}if(e.isVAR()&&e.hasVariable(t))i=!1;else{if(e.isSum()||e.isProduct()){for(const t of e.elementsArray())walk(t);return void(e.getPower().hasVariable(t)&&(i=!1))}(e.isFunction()&&e.hasVariable(t)||e.isEXP()&&e.hasVariable(t))&&(i=!1)}}}if(walk(e),i&&void 0!==n)return n}(i,t);if(!a)return;const u=function getLinearCoefficient(e,t){try{const n=new m.Polynomial(e,[t]);if(1!==n.deg())return;return n.toArray(!1,t)[1]??void 0}catch{return}}(a,t);if(!u)return;const p=(0,g.getU)(e),d=o.Expression.create(p),h=d.pow((0,l.two)()),E=(0,l.one)().plus(h),y=(0,l.two)().times(d).div(E),v=(0,l.one)().minus(h).div(E);let P=(0,g.subst)(i,(0,x.sin)(a),y);P=(0,g.subst)(P,(0,x.cos)(a),v);const w=(0,l.two)().div(u.times(E));if(P=P.times(w),P=(0,r.simplify)(P),P.hasVariable(t))return;if(!isRationalFunctionInVariable(P,p))return;const b=integrate(P,p,n);if(b.isFunction(c.INTEGRATE))return;const M=(0,x.tan)(a.div((0,l.two)()));return(0,r.simplify)((0,g.subst)(b,d,M))}(e,t,n)),w&&(w=w.times(i))}return w??o.Expression.toFunction(c.INTEGRATE,[i,t])}function isRationalFunctionInVariable(e,t){try{return new m.Polynomial(e.getNumerator(),[t]),new m.Polynomial(e.getDenominator(),[t]),!0}catch{return!1}}function tryIntegrateRational(e,t,n){const r=e.getNumerator(),s=e.getDenominator();if(s.isOne()||!s.hasVariable(t))return;if((0,P.hasTranscendental)(r,t)||(0,P.hasTranscendental)(s,t))return;let a,u;try{a=new m.Polynomial(r,[t]),u=new m.Polynomial(s,[t])}catch{return}const d=a.deg(),g=u.deg();if(g<2)return;let x=(0,l.zero)(),E=r;if(d>=g){try{const[e,i]=(0,p.divide)(r,s,void 0,[t]),o=integrate(e,t,n);if(o.isFunction(c.INTEGRATE))return;x=x.plus(o),E=i}catch{return}if(o.Expression.create(E).isZero())return x}const y=o.Expression.create(E).div(s);if(d>=g){const e=integrate(y,t,n);if(!e.isFunction(c.INTEGRATE))return x=x.plus(e),x}const v=function tryIntegrateLinearOverQuadratic(e,t){const n=e.getNumerator(),i=e.getDenominator();if(i.isOne()||!i.hasVariable(t))return;if((0,P.hasTranscendental)(n,t)||(0,P.hasTranscendental)(i,t))return;let r,s;try{const e=n.coeffs(t),o=i.coeffs(t);if(2!==o.max()||e.max()>1)return;r=e.toArray(),s=o.toArray()}catch{return}const a=s[2]??(0,l.zero)(),u=s[1]??(0,l.zero)(),m=s[0]??(0,l.zero)(),p=r[1]??(0,l.zero)(),d=r[0]??(0,l.zero)();if(a.isZero())return;const g=o.Expression.create(t),x=p.div((0,l.two)().times(a)),E=d.minus(x.times(u));let y=(0,l.zero)();if(x.isZero()||(y=y.plus(x.times((0,h.log)(i)))),E.isZero())return y;const v=(0,l.two)().times(a).times(g).plus(u),w=(0,l.four)().times(a).times(m).minus(u.pow("2"));let b;if(w.isZero())b=(0,l.two)().times("-1").div(v);else if(w.gt((0,l.zero)())){const e=w.pow((0,l.half)()),t=v.div(e);b=(0,l.two)().div(e).times(o.Expression.toFunction(c.ATAN,[t]))}else{if(!w.lt((0,l.zero)()))return;{const e=w.times("-1").pow((0,l.half)()),t=v.minus(e).div(v.plus(e));b=(0,h.log)(t).div(e)}}return y.plus(E.times(b))}(y,t);if(v)return x.plus(v);let w;try{w=(0,i.partfrac)(y,t)}catch{return}if(w.text()===y.text())return;const b=integrate(w,t,n);return b.isFunction(c.INTEGRATE)?void 0:x.plus(b)}},5584(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Rational=void 0;const r=i(n(3110)),s=n(6441),o=n(4703),a=n(551),l=n(551),u=n(7103),c=n(296),m=n(8300);class Rational{static E=Rational.create(m.PARSER_CONSTANTS.e());static PI=Rational.create(m.PARSER_CONSTANTS.pi());static precision=r.default.precision;asDecimal=!1;dataType=m.RATIONAL;denominator;numerator;value;constructor(e,t){this.numerator=e,this.denominator=t,this.value=1n===t?String(e):`${e}/${t}`}static allNegative(...e){for(const t of e)if(-1!==t.sign())return!1;return!0}static create(e){let t,n,i=!1;if("bigint"==typeof e)t=e,n=1n,e=String(t);else if(/^[+-]?\d+$/.test(e))t=BigInt(e),n=1n;else if(e.includes("/")){if([t,n]=e.split("/").map(e=>BigInt(e)),0n===n)throw new o.DivisionByZeroError((0,o.message)("divisionByZero"));n<0n&&(t=-t,n=-n),[t,n]=(0,a.simplifyRatio)(t,n),e=1n===n?String(t):`${t}/${n}`}else{const r=e.toLocaleLowerCase().includes("e");i=r||e.includes(m.DOT),r&&(e=(0,u.scientificToDecimal)(e),i=!0),[t,n]=(0,a.convert)(e)}const r=new Rational(t,n);return r.value=e,r.asDecimal=i,r}static GCD(...e){let t=e[0];for(let n=1;n<e.length;n++)t=t.GCD(e[n]);return t}static getPrecision(){return Rational.precision}static hook(e){return e}static isRational(e){return(0,s.isNerdamerNativeType)(e,m.RATIONAL)}static LCM(...e){let t=e[0];for(let n=1;n<e.length;n++)t=t.LCM(e[n]);return t}static makeCopy(e){const t=new Rational(e.numerator,e.denominator);return t.value=e.value,t.asDecimal=e.asDecimal,t}static set(e){if("precision"in e){const t=Number(e.precision);r.default.set({precision:t}),Rational.precision=t,Rational.PI=Rational.create(m.PARSER_CONSTANTS.pi()),Rational.E=Rational.create(m.PARSER_CONSTANTS.e())}}static toRational(e,t=!1){return"string"==typeof e?Rational.create(e):t?Rational.makeCopy(e):e}abs(){const e=this.copy();return e.numerator=(0,a.abs)(e.numerator),e.updateValue(),e}copy(){return Rational.makeCopy(this)}div(e){let t;return c.Expression.isExpression(e)?t=c.Expression.create(this).div(e):(e=Rational.toRational(e,!0),t=this.times(e.invert())),t}eq(e){return c.Expression.isExpression(e)?c.Expression.create(this).eq(e):(e=Rational.toRational(e),this.numerator*e.denominator===e.numerator*this.denominator)}evenDenominator(){return(0,a.isEven)(this.denominator)}evenNumerator(){return(0,a.isEven)(this.numerator)}GCD(e){e=Rational.toRational(e);const[t,n]=(0,a.simplifyRatio)((0,l.GCD)(this.numerator*e.denominator,this.denominator*e.numerator),this.denominator*e.denominator),i=new Rational(t,n);return i.asDecimal=this.asDecimal||e.asDecimal,i}gt(e){return c.Expression.isExpression(e)?c.Expression.create(this).gt(e):(e=Rational.toRational(e),this.numerator*e.denominator>e.numerator*this.denominator)}gte(e){return e=Rational.toRational(e),this.numerator*e.denominator>=e.numerator*this.denominator}invert(){if(this.isZero())throw new o.DivisionByZeroError((0,o.message)("divisionByZero"));const e=this.copy(),t=e.sign();return e.numerator=(0,a.abs)(e.numerator),[e.numerator,e.denominator]=[e.denominator,e.numerator],-1===t?e.neg():e.updateValue()}isEven(){return this.isInteger()&&this.evenNumerator()}isInteger(){return 1n===this.denominator}isMinusOne(){return-1n===this.numerator&&1n===this.denominator}isNegative(){return this.numerator<0n}isOne(){return 1n===this.numerator&&1n===this.denominator}isZero(){return 0n===this.numerator}LCM(e){e=Rational.toRational(e);let t=0n,n=1n;this.isZero()||e.isZero()||([t,n]=(0,a.simplifyRatio)((0,a.abs)(this.numerator*e.numerator),(0,l.GCD)(this.numerator*e.denominator,this.denominator*e.numerator)));const i=new Rational(t,n);return i.asDecimal=this.asDecimal||e.asDecimal,i}lt(e){return e=Rational.toRational(e),this.numerator*e.denominator<e.numerator*this.denominator}lte(e){return e=Rational.toRational(e),this.numerator*e.denominator<=e.numerator*this.denominator}minus(e){let t;return c.Expression.isExpression(e)?t=c.Expression.create(this).minus(e):(e=Rational.toRational(e,!0),t=this.plus(e.neg())),t}mod(e){e=Rational.toRational(e);const t=(0,l.mod)(this.numerator*e.denominator,e.numerator*this.denominator),n=this.denominator*e.denominator,i=new Rational(...(0,a.simplifyRatio)(t,n));return i.asDecimal=this.asDecimal||e.asDecimal,i}neg(){const e=this.copy();return e.numerator*=-1n,e.updateValue(),e}plus(e){let t;if(c.Expression.isExpression(e))t=c.Expression.create(this).plus(e);else{let n,i;(e=Rational.toRational(e)).denominator===this.denominator?(n=e.numerator+this.numerator,i=e.denominator):(n=this.numerator*e.denominator+e.numerator*this.denominator,i=this.denominator*e.denominator),[n,i]=(0,a.simplifyRatio)(n,i),t=new Rational(n,i),t.asDecimal=this.asDecimal||e.asDecimal}return t}pow(e){let t;if(c.Expression.isExpression(e))t=c.Expression.create(this).pow(e);else{if(e=Rational.toRational(e),this.isZero()&&e.isZero())throw new o.ZeroToZeroPowerError((0,o.message)("zeroToZeroPower"));if(e.isInteger()){let n=e.numerator,i=this.numerator,r=this.denominator;if(n<0n){const e=this.invert();i=e.numerator,r=e.denominator,n=(0,a.abs)(n)}const[s,o]=(0,a.simplifyRatio)(i**n,r**n);t=new Rational(s,o),t.asDecimal=this.asDecimal}else{const n=this.toDecimal().toPower(e.toDecimal()).toString();t=Rational.create(n),t.asDecimal=this.asDecimal||t.asDecimal}}return t}sign(){return(0,a.sign)(this.numerator)}text(e){let t;const n=this.isInteger();if(this.asDecimal||e?.decimal)if(n)t=`${this.numerator}.0`;else{const n=r.default.precision,i=Number(e?.precision)||n;if(i===n)t=this.toDecimal().toString();else try{r.default.set({precision:i}),t=this.toDecimal().toString()}finally{r.default.set({precision:n})}t.includes(".")||/[eE]/.test(t)||(t+=".0")}else t=n?`${this.numerator}`:`${this.numerator}/${this.denominator}`;return t}times(e){let t;if(c.Expression.isExpression(e))t=e.times(this);else{e=Rational.toRational(e);const[n,i]=(0,a.simplifyRatio)(this.numerator*e.numerator,this.denominator*e.denominator);t=new Rational(n,i),t.asDecimal=this.asDecimal||e.asDecimal}return t}toDecimal(){let e=new r.default(String(this.numerator));return 1n!==this.denominator&&(e=e.div(String(this.denominator))),e}toDecimalString(e){const t=(0,a.sign)(this.numerator),n=(0,a.abs)(this.numerator),i=this.denominator,r=n/i,s=n%i,o=e??Rational.precision,l=(10n**BigInt(o)*s/i).toString();return`${t<0?"-":""}${r}.${"0".repeat(Math.max(0,o-l.length))}${l}`.replace(/0+$/g,"").replace(/\.$/g,"")}toString(e){return this.text(e)}updateValue(){return this.value=1n===this.denominator?String(this.numerator):`${this.numerator}/${this.denominator}`,this}valueOf(){const e=Number(this.numerator),t=Number(this.denominator);let n;return n=Number.isSafeInteger(e)&&Number.isSafeInteger(t)?e/t:Number(this.toDecimal()),n}}t.Rational=Rational},5598(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValuesSet=void 0;const i=n(6746),r=n(6441),s=n(4703),o=n(8300);class ValuesSet extends i.MathematicalAggregate{_elements=[];dataType=o.SET;isEnumerable=!0;precision;constructor(e){if(super(),e)for(const t of e)this.add(t)}static isValuesSet(e){return(0,r.isNerdamerNativeType)(e,o.SET)||(0,r.isNerdamerNativeType)(e,o.SOLUTIONS_SET)}getValuesArray(){return this.elements}setValuesArray(e){this.clear();for(const t of e)this.add(t)}indexOf(e){for(let t=0;t<this._elements.length;t++)if(this.membersEqual(this._elements[t],e))return t;return-1}membersEqual(e,t){let n=!1;try{n=e.eq(t)&&t.eq(e)}catch(e){if(!(e instanceof s.UnexpectedDataType))throw e}return n}__get__(e){const t=e[0];if(t<0||t>=this._elements.length)throw new RangeError(`Index ${t} out of bounds for ${this.dataType} of length ${this._elements.length}`);return this._elements[t].copy()}__set__(e,t){const n=e[0];if(n<0||n>=this._elements.length)throw new RangeError(`Index ${n} out of bounds for ${this.dataType} of length ${this._elements.length}`);const i=t.copy(),r=this.indexOf(i);-1!==r&&r!==n?this._elements.splice(n,1):this._elements[n]=i}add(e){return this.has(e)||this._elements.push(e.copy()),this}addMany(e){for(const t of e)this.add(t);return this}at(e){const t=this._elements[e];return t?t.copy():void 0}clear(){return this._elements.length=0,this}copy(){return new ValuesSet(this._elements)}count(){return this._elements.length}delete(e){const t=this.indexOf(e);return-1!==t&&(this._elements.splice(t,1),!0)}difference(e){const t=new ValuesSet;for(const n of this._elements)e.has(n)||t.add(n);return t}dimensions(){return[this._elements.length]}div(e){throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"))}each(e){const t=[];for(let n=0;n<this._elements.length;n++){const i=e(this._elements[n].copy(),n),r=void 0===i?this._elements[n]:i;let s=!1;for(let e=0;e<t.length;e++)if(this.membersEqual(t[e],r)){s=!0;break}s||t.push(r.copy())}return this._elements=t,this}get elements(){return this._elements.map(e=>e.copy())}eq(e){return!!ValuesSet.isValuesSet(e)&&e.count()===this.count()&&this.isSubsetOf(e)}evaluate(){return this.copy().each(e=>e.evaluate())}expand(){return this.copy().each(e=>e.expand())}gt(e){return ValuesSet.isValuesSet(e)&&this.isProperSupersetOf(e)}gte(e){return ValuesSet.isValuesSet(e)&&this.isSupersetOf(e)}has(e){return-1!==this.indexOf(e)}intersection(e){const t=new ValuesSet;for(const n of this._elements)e.has(n)&&t.add(n);return t}isDisjointFrom(e){for(const t of this._elements)if(e.has(t))return!1;return!0}isProperSubsetOf(e){return this.count()<e.count()&&this.isSubsetOf(e)}isProperSupersetOf(e){return this.count()>e.count()&&this.isSupersetOf(e)}isSubsetOf(e){for(const t of this._elements)if(!e.has(t))return!1;return!0}isSupersetOf(e){return e.isSubsetOf(this)}lt(e){return ValuesSet.isValuesSet(e)&&this.isProperSubsetOf(e)}lte(e){return ValuesSet.isValuesSet(e)&&this.isSubsetOf(e)}minus(e){throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"))}plus(e){throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"))}pow(e){throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"))}sort(e){return e?this._elements.sort((t,n)=>e(t.copy(),n.copy())):this._elements.sort((e,t)=>{const n=e&&"function"==typeof e.text?e.text():String(e),i=t&&"function"==typeof t.text?t.text():String(t);return n<i?-1:n>i?1:0}),this}symmetricDifference(e){const t=this.difference(e);return t.addMany(e.difference(this)._elements),t}text(){return`{${this._elements.map(e=>e.text()).join(", ")}}`}times(e){throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"))}union(e){const t=new ValuesSet(this._elements);return t.addMany(e._elements),t}}t.ValuesSet=ValuesSet},5640(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Term=void 0;const i=n(6441),r=n(551),s=n(3703),o=n(5869),a=n(296),l=n(8300);class Term{coeff;dataType=l.TERM;expression;length;multidegArray;powers;totalPower;valueString;variables;constructor(e,t,n){"string"==typeof t?(this.powers={},t.split(",").forEach((e,t)=>{this.powers[n[t]]=Number(e)})):this.powers=t,this.coeff="string"==typeof e?a.Expression.create(e):e,this.length=this.getLength(),this.variables=[...n].sort()}static isTerm(e){return(0,i.isNerdamerNativeType)(e,l.TERM)}getLength(){let e=0;for(const t in this.powers)this.powers[t]>0&&e++;return e}update(){return this.updateMultiDegArray(),this.updateTotalPower(),this.length=this.getLength(),this}updateMultiDegArray(){const e=this.multideg(this.variables);return this.multidegArray=e,e}updateTotalPower(){let e=0;for(const t in this.powers)e+=this.deg(t);return this.totalPower=e,e}canAddOrSubtract(e){return this.getValueString()===e.getValueString()}copy(){return new Term(new a.Expression(this.coeff),{...this.powers},this.variables)}deg(e,t){return void 0!==t?(this.powers[e]=t,this):this.powers[e]||0}diff(e,t=1){const n=this.deg(e);let i;if(t>n)i=new Term("0","0",[]);else{i=this.copy(),i.powers[e]=n-t;const s=t-1,o=(0,r.productInRange)(n-s,n);i.coeff=i.coeff.times(BigInt(o))}return i}difference(e){const t=this.getMultidegArray(),n=e.getMultidegArray(),i=[];for(let e=0;e<t.length;e++)i[e]=t[e]-n[e];return i}div(e){const t=this.copy();t.coeff=t.coeff.div(e.coeff);for(const n in e.powers)t.variables.includes(n)||t.variables.push(n),t.deg(n,t.deg(n)-e.deg(n));return t.update()}divides(e){if(0===this.getTotalPower())return!0;for(const t in this.powers)if(this.deg(t)>e.deg(t))return!1;return!0}eq(e){return this.div(e).eqNumber(1)}eqNumber(e){return 0===(0,s.sum)(...Object.values(this.powers))&&this.coeff.eq(e)}getExpression(){if(void 0===this.expression){let e=new a.Expression(this.coeff);for(const t of this.variables){const n=this.deg(t);0!==n&&(e=e.times(a.Expression.Variable(t).pow(n)))}this.expression=e}return this.expression}getMultidegArray(){let e=this.multidegArray;return void 0===e&&(e=this.updateMultiDegArray()),e}getTotalPower(){let e=this.totalPower;return void 0===e&&(e=this.updateTotalPower()),e}getValueString(e){if(void 0===this.valueString||void 0!==e)if(0===this.getTotalPower())this.valueString="1";else{const t=e||[...this.variables].sort(),n=[];for(const e of t){const t=this.deg(e),i=1===t?"":a.Expression.POW_OPR+t;0!==t&&n.push(`${e}${i}`)}this.valueString=n.join("*")}return this.valueString}isConstant(){for(const e in this.powers)if(0!==this.powers[e])return!1;return!0}isZero(){return this.coeff.isZero()}LCM(e,t=!1){const n=(0,o.arrayAddUnique)([...this.variables],e.variables),i={};for(const t of n)i[t]=Math.max(this.deg(t),e.deg(t));const r=t?a.Expression.fromRational(this.coeff.getMultiplier().LCM(e.coeff.getMultiplier())):"1";return new Term(r,i,n)}max(){return Object.keys(this.powers).reduce((e,t)=>this.powers[e]>this.powers[t]?e:t)}min(){return Object.keys(this.powers).reduce((e,t)=>this.powers[e]<this.powers[t]?e:t)}multideg(e){const t=[];for(const n of e)t.push(this.deg(n));return t}text(e){let t,n=this.coeff.text();if(this.coeff.isSum()&&(n=`(${n})`),"0"===n)t=n;else{let i=this.getValueString(e);"1"===i&&(i=""),i&&("1"===n?n="":"-1"===n?n="-":n+="*"),t=`${n}${i}`}return t}times(e){const t=this.copy();t.coeff=t.coeff.times(e.coeff);for(const n in e.powers)t.variables.includes(n)||t.variables.push(n),t.deg(n,t.deg(n)+e.deg(n));return t.update()}toString(){return this.text()}}t.Term=Term},5817(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SPECIAL=t.RESTRICTED=t.Settings=void 0,t.scopedBlock=function scopedBlock(e,n,i){let r;const s=t.Settings[e];t.Settings[e]=n;try{r=i()}finally{t.Settings[e]=s}return r};const i=n(8300);t.Settings={USE_FRACTIONS:!0,ALLOW_BIGINT:!0,EVALUATE:!1,SUBSTITUTE:!0,LANGUAGE:"eng",ALLOW_IMPLICIT_MULTIPLICATION:!0,SORT_TERMS:!1,DEFER_SIMPLIFICATION:!1,REWRITE_SQRT:!0,MAX_FRAC_INT:BigInt(1e60),ALLOW_RAT_SUBS:!1,IMMUTABLE_VALUE_SETS:!0,USE_SINGLE_LETTER_VARIABLES:!1,MAX_PRODUCT_AND_SUMMATION_ITERATION:1e4,MAX_LOOP_ITERATIONS:1e4,INITIALIZE_RULES:!0,INDEX_BASE:0},t.RESTRICTED=[i.E,i.PI_NAME,i.DEFAULT_IMAGINARY,i.INDEX_VARIABLE,i.ALL_SYMBOL],t.SPECIAL=[i.E,i.PI_NAME]},5823(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.preprocess=function preprocess(e,t){let n=function normalizeComments(e){let t="",n=0;for(;n<e.length;){const r=e.indexOf(s,n);if(-1===r){t+=e.slice(n);break}t+=e.slice(n,r);const o=e.indexOf(s,r+2);if(-1===o)throw new i.ParserError(`Missing closing comment delimiter "${s}".`);t+=" ",n=o+2}return t}(e);n=function normalizeStatementSeparators(e){const t=[];let n="",i=!1;for(let s=0;s<e.length;s++){const o=e[s];if("("===o||"["===o||"{"===o){const i="("===o?")":"["===o?"]":"}";t.push({closingBracket:i,functionName:"("===o?getPreviousIdentifier(e,s):void 0}),n+=o;continue}if(")"===o||"]"===o||"}"===o){const e=t[t.length-1];e?.closingBracket===o&&t.pop(),n+=o;continue}if(";"===o){const a=getNextSignificantCharacter(e,s+1),l=t[t.length-1],u=void 0===a||","===a||a===l?.closingBracket;if(0===t.length)u||(n+=",",i=!0);else{if(u)continue;n+=l?.functionName===r?",":o}continue}n+=o}return i&&(n=`${r}(${n})`),n}(n);let o=findBracketlessFunction(n,t);for(;o;){const e=findArgumentEnd(n,o.argumentStart,o.maxArgs,o.consumeStatement),i=n.slice(o.nameStart,o.nameEnd),r=n.slice(o.argumentStart,e);n=n.slice(0,o.nameStart)+`${i}(${r})`+n.slice(e),o=findBracketlessFunction(n,t)}return n};const i=n(4703),r="block",s="##";function isIdentifierStart(e){return/[a-z_]/i.test(e)}function isIdentifierPart(e){return/[a-z0-9_]/i.test(e)}function getPreviousIdentifier(e,t){let n=t;for(;n>0&&/\s/.test(e[n-1]);)n--;let i=n;for(;i>0&&isIdentifierPart(e[i-1]);)i--;const r=e.slice(i,n);return r&&isIdentifierStart(r[0])?r:void 0}function getNextSignificantCharacter(e,t){let n=t;for(;n<e.length&&/\s/.test(e[n]);)n++;return e[n]}function findBracketlessFunction(e,t){let n,i=0;for(;i<e.length;){if(!isIdentifierStart(e[i])){i++;continue}const r=i;for(i++;i<e.length&&isIdentifierPart(e[i]);)i++;const s=i,o=e.slice(r,s);if(o in t&&/\s/.test(e[i]??"")){for(;i<e.length&&/\s/.test(e[i]);)i++;if(i<e.length){const a=e[i],l=e[i+1]??"";/[*/=<>:&|]/.test(a)||("+"===a||"-"===a)&&/\s/.test(l)||(n={argumentStart:i,consumeStatement:!0===t[o].bracketlessStatement,maxArgs:t[o].maxArgs,nameEnd:s,nameStart:r})}}}return n}function isOpeningBracket(e){return"("===e||"["===e||"{"===e}function isClosingBracket(e){return")"===e||"]"===e||"}"===e}function findArgumentEnd(e,t,n,i=!1){let r=0,s=t,o="";const a=1!==n;for(;s<e.length;s++){const n=e[s];if(isOpeningBracket(n)){r++,o=n;continue}if(isClosingBracket(n)){if(0===r)break;r--,o=n;continue}if(r>0){/\s/.test(n)||(o=n);continue}if(i){if(","===n)break;/\s/.test(n)||(o=n);continue}if(/\s/.test(n)){if(a&&","===o)continue;break}if(","===n){if(!a)break;o=n;continue}const l=!("+"!==n&&"-"!==n||s!==t&&","!==o&&"^"!==o);if(/[+\-*/=<>:&|]/.test(n)&&!l)break;o=n}return s}},5869(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.arrayUnique=function arrayUnique(e){return[...new Set(e)]},t.arrayAddUnique=function arrayAddUnique(e,t){for(const n of e)t.includes(n)||t.push(n);return t},t.checkDecimal=function checkDecimal(e,t){return 1/(e%1)<=t},t.isSorted=function isSorted(e){if(e.length<=1)return!0;for(let t=1;t<e.length;t++)if(e[t-1]>e[t])return!1;return!0}},5894(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CoeffObject=void 0;const i=n(4703),r=n(2116),s=n(5640),o=n(3982),a=n(296),l=n(6099);t.CoeffObject=class CoeffObject{coeffs={};variables;constructor(e){this.variables=e}buildTerms(){const e=[];for(const t in this.coeffs)e.push(new s.Term(new a.Expression(this.coeffs[t]),t,this.variables));return e}add(e,t){const n=this.coeffs[e];this.coeffs[e]=n?n.plus(t):t}each(e){for(const t in this.coeffs)e(this.coeffs[t],t);return this}getPower(e){return this.coeffs[e]}hasPower(e){return e in this.coeffs}max(){const e=Object.keys(this.coeffs).map(e=>Number(e));return Math.max(...e)}text(e=!1){const t=e?"\n":"",n=e?" ":"",i=[],r=", "+t;for(const e in this.coeffs)i.push(`${n}${e}: ${this.coeffs[e]}`);return`{ ${t}${i.join(r)} ${t}}`}toArray(e=!1){const t=this.max(),n=[];if(isNaN(t))throw new i.NaNError((0,i.message)("cannotCreateArrayFromNaN"));for(let i=0;i<=t;i++){let t=this.coeffs[i];t||(t=(0,l.zero)()),n[i]=e?Number(t):t}return n}toExpression(){let e=(0,l.zero)();for(const t of this.buildTerms())t.isZero()||(e=e.plus(t.getExpression()));return e}toParsableString(){const e=[];for(const t of this.buildTerms())t.isZero()||e.push(t.text(this.variables));return e.join("+").replace(/\+-/g,"-")}toPolynomial(){const e=this.buildTerms(),t=e.some(e=>this.variables.some(t=>e.coeff.hasVariable(t))),n=this.toExpression();let i;return t?i=new r.Polynomial(n,this.variables):(i=new r.Polynomial((0,l.zero)(),this.variables),i.terms=e.filter(e=>!e.isZero()),i.order(),i.expression=n),i}toString(){return this.text()}toVector(){return new o.Vector(this.toArray())}}},6056(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.separateVar=separateVar,t.coeffs=function coeffs(e,t,n){const r=n||new o.CoeffObject(t);if(e.isComplex()&&!t.includes(a.Expression.imaginary)){const n=coeffs(e.realPart(),t),i=coeffs(e.imagPart(),t);return n.each((e,t)=>r.add(t,e)),i.each((e,t)=>r.add(t,e.times(a.Expression.Img()))),r}if(e.isProduct()){let n=(0,l.one)(),s=a.Expression.fromRational(e.getMultiplier()),o=!1;for(const r of e.elementsArray())if(r.isSum()&&r.getPower().sign()<0){if(t.some(e=>r.hasVariable(e)))throw new i.PolynomialError((0,i.message)("notAPolynomial"));n=n.times(r),o=!0}else s=s.times(r);if(o)return coeffs(s,t).each((e,t)=>{r.add(t,n.times(e))}),r;e=s}const u=(0,s.expand)(e);if(u.isSum())u.each(e=>{coeffs(e,t,r)});else{const[n,i]=separateVar(e,t),s=t.map(e=>i.getVariable(e).getPower().text());r.add(s.join(","),n)}return r},t.getDenominator=function getDenominator(e){let t=a.Expression.Number(e.getMultiplier().denominator);const n=e.isProduct();if(-1===e.getPower().sign())t=t.times(e.toUnitMultiplier().invert());else if(n&&e.isLinear())for(const n of e.elementsArray())n.isProduct()?t=t.times(getDenominator(n)):n.getPower().sign()<0&&(t=t.times(n.invert()));return t},t.getNumerator=function getNumerator(e){let t=a.Expression.Number(e.getMultiplier().numerator);const n=e.isProduct(),i=e.getPower().sign();if(!n&&i>0||n&&i>0&&!e.isLinear())t=t.times(e.toUnitMultiplier());else if(n&&e.isLinear()){const n=e.elementsArray();for(const e of n){const n=getNumerator(e);t=t.times(n)}}return t},t.isPolynomialLike=function isPolynomialLike(e){const t=e.getPower();if(!t.isInteger()||-1===t.sign()||e.isEXP()||e.isFunction()||e.isInf())return!1;if(e.isSum()||e.isProduct())for(const t of e.elementsArray())if(!isPolynomialLike(t))return!1;return!0},t.getVariable=function getVariable(e,t){if(e.value===t)return e;if(e.isProduct()){const n=e.getElements();for(const e in n)if(n[e].value===t)return n[e]}return(0,l.zero)()},t.normalizeMultiplierDenominators=function normalizeMultiplierDenominators(e){let t;if(e.isSum()){const n=e.distributeMultiplier(),i=n.elementsArray(),s=[];for(const e of i)s.push(e.getMultiplier().denominator);const o=(0,r.LCM)(...s);t=n.times(o).distributeMultiplier().div(o)}else t=e;return t};const i=n(4703),r=n(551),s=n(7741),o=n(5894),a=n(296),l=n(6099),u=n(1897);function separateVar(e,t){const n=t.map(e=>"string"!=typeof e?e.value:e);function isLike(e,t){return t.includes(e.value)}let i;if(e.isProduct()){const t=[a.Expression.fromRational(e.getMultiplier())],r=[];e.each(e=>{isLike(e,n)?r.push(e):t.push(e)}),i=[(0,u.product)(...t),(0,u.product)(...r)||(0,l.one)()]}else i=isLike(e,n)?[a.Expression.fromRational(e.getMultiplier()),e.toUnitMultiplier()]:[a.Expression.create(e),(0,l.one)()];return i}},6082(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.limit=limit;const i=n(9684),r=n(296),s=n(6099),o=n(8300),a=n(2116),l=n(2292),u=n(8533),c=n(2012),m=n(6541);function evalCategory(e,t,n){try{const r=(0,i.simplify)(e.subst(t,n));return r.isZero()?"zero":r.isPosInf()?"inf":r.isNegInf()?"neginf":r.eq((0,s.one)())?"one":"finite"}catch{return}}function tryRewriteIndeterminate(e,t,n,a,l){if(e.getDenominator().isOne()&&e.isProduct()){const o=e.elementsArray().map(e=>r.Expression.create(e));let u=-1,c=-1;for(let e=0;e<o.length;e++){const i=evalCategory(o[e],t,n);"zero"===i&&-1===u?u=e:"inf"!==i&&"neginf"!==i||-1!==c||(c=e)}if(-1!==u&&-1!==c){const e=o[u],r=o[c],m=[];for(let e=0;e<o.length;e++)e!==u&&e!==c&&m.push(o[e]);let p=e.div((0,s.one)().div(r));for(const e of m)p=p.times(e);return limit((0,i.simplify)(p),t,n,a,l+1)}}if(function isInfMinusInf(e,t,n){if(!e.isSum())return!1;const i=e.elementsArray().map(e=>r.Expression.create(e));let s=!1,o=!1;for(const e of i){const i=evalCategory(e,t,n);"inf"===i?s=!0:"neginf"===i&&(o=!0)}return s&&o}(e,t,n)){const s=(0,i.simplify)(e);if(!s.eq(e))return limit(s,t,n,a,l+1);const o=e.elementsArray().map(e=>r.Expression.create(e));if(2===o.length){const[r,s]=o,u=r.getNumerator(),c=r.getDenominator(),m=s.getNumerator(),p=s.getDenominator(),d=(0,i.simplify)(u.times(p).plus(m.times(c))),g=(0,i.simplify)(c.times(p)),h=d.div(g);if(!h.eq(e))return limit(h,t,n,a,l+1)}}if(e.isEXP()){const i=e.getBase(),c=e.getPower(),m=function classifyPowerForm(e,t,n,i){const r=evalCategory(e,n,i),s=evalCategory(t,n,i);return r&&s?"one"!==r||"inf"!==s&&"neginf"!==s?"zero"===r&&"zero"===s?"zero_to_zero":"inf"!==r&&"neginf"!==r||"zero"!==s?"none":"inf_to_zero":"one_to_inf":"none"}(i,c,t,n);if("one_to_inf"===m||"zero_to_zero"===m||"inf_to_zero"===m){const e=limit(c.times(r.Expression.toFunction(o.LOG,[i])),t,n,a,l+1);if(e.isPosInf())return r.Expression.Inf();if(e.isNegInf())return(0,s.zero)();if(!e.isFunction(o.LIMIT))return(0,u.exp)(e)}}}function growthTier(e){switch(e.type){case"bounded":return 0;case"logarithmic":return 1;case"polynomial":return 2;case"exponential":return 3;case"unknown":return-1}}function getInfinityGrowthClassification(e,t){if(!e.hasVariable(t.text()))return{type:"bounded"};if(e.isEXP()&&e.getBase().isE()&&e.getPower().hasVariable(t.text()))return{type:"exponential",exponent:e.getPower()};if(e.isProduct()){const n=e.elementsArray().map(e=>r.Expression.create(e));let i={type:"bounded"},s=0,o=!1;for(const e of n){const n=getInfinityGrowthClassification(e,t);if("unknown"===n.type)return{type:"unknown"};"bounded"===n.type&&e.hasVariable(t.text())&&(o=!0);const r=growthTier(n);r>s?(i=n,s=r):r===s&&"polynomial"===n.type&&"polynomial"===i.type&&(i={type:"polynomial",degree:i.degree+n.degree})}return o&&s>0?{type:"unknown"}:i}if(e.isFunction(o.LOG)&&e.getArguments()[0]?.hasVariable(t.text())){const n=getInfinityGrowthClassification(e.getArguments()[0],t);return"polynomial"===n.type||"exponential"===n.type||"logarithmic"===n.type?{type:"logarithmic"}:{type:"bounded"}}if(e.isPolynomialLike())return{type:"polynomial",degree:new a.Polynomial(e).deg()};if((e.isVAR()||e.isEXP())&&!e.getPower().hasVariable(t.text()))try{const t=e.getPower(),n=t.getMultiplier(),i=Number(n.numerator)/Number(n.denominator);if(isFinite(i)&&0!==i&&t.isNUM())return{type:"polynomial",degree:i}}catch{}return e.isFunction(o.SIN)||e.isFunction(o.COS)||e.isFunction(o.ATAN)?{type:"bounded"}:{type:"unknown"}}function getDominantAtInfinity(e,t){const n=function getAdditiveTerms(e){const t=e.distributeMultiplier();return t.isSum()?t.elementsArray().map(e=>r.Expression.create(e)):[t]}(e);let s=-1,o=-1/0;const a=[];for(const e of n){const n=getInfinityGrowthClassification(e,t);if("unknown"===n.type)return;let i=growthTier(n);"polynomial"===n.type&&n.degree<0&&(i=-1),i>s?(s=i,o="polynomial"===n.type?n.degree:-1/0,a.length=0,a.push(e)):i<s||("polynomial"===n.type?n.degree>o?(o=n.degree,a.length=0,a.push(e)):n.degree===o&&a.push(e):a.push(e))}if(0===a.length)return;let l=a[0];for(let e=1;e<a.length;e++)l=l.plus(a[e]);return(0,i.simplify)(l)}function tryComposition(e,t,n,a,l){if(e.isFunction()&&!e.isFunction(o.LIMIT)){const u=e.getArguments();if(0===u.length||!u.some(e=>e.hasVariable(t.text())))return;const m=e.name;if(m===o.ABS||m===o.SGN){const e=u[0],p=limit(e,t,n,a,l+1);if(p.isFunction(o.LIMIT))return;if(!p.isZero())try{return(0,i.simplify)(r.Expression.toFunction(m,[p]))}catch{return}if(p.isZero()){if(m===o.ABS)return(0,s.zero)();if(m===o.SGN){if("both"===a)return;try{const s=(0,c.diff)(e,t),o=(0,i.simplify)(s.subst(t,n)).sign();if(0!==o){if("right"===a)return r.Expression.create(o>0?1:-1);if("left"===a)return r.Expression.create(o>0?-1:1)}}catch{return}return}}return}const p=[];for(const e of u){let i;try{i=limit(e,t,n,a,l+1)}catch{return}if(i.isFunction(o.LIMIT))return;p.push(i)}const d=p[0];if(d.isPosInf())switch(m){case o.LOG:return r.Expression.Inf();case o.ATAN:return r.Expression.Pi().div((0,s.two)());case o.SQRT:return r.Expression.Inf();case o.SIN:case o.COS:return}if(d.isNegInf())switch(m){case o.ATAN:return r.Expression.Pi().div((0,s.minusTwo)());case o.LOG:case o.SIN:case o.COS:return}try{const e=r.Expression.toFunction(m,p),t=(0,i.simplify)(e);if(!t.isFunction(m))return t;const n=r.Expression.create(e.evaluate());if(!n.isFunction(m))return n}catch{}return}if(e.isEXP()){const u=e.getBase(),c=e.getPower();if(!u.hasVariable(t.text())&&!c.hasVariable(t.text()))return;let m,p;try{m=limit(u,t,n,a,l+1),p=limit(c,t,n,a,l+1)}catch{return}if(m.isFunction(o.LIMIT)||p.isFunction(o.LIMIT))return;const d=m.isPosInf()||m.isNegInf()?"inf":m.isZero()?"zero":m.eq((0,s.one)())?"one":"finite",g=p.isPosInf()||p.isNegInf()?"inf":p.isZero()?"zero":"finite";if("one"===d&&"inf"===g)return;if("zero"===d&&"zero"===g)return;if("inf"===d&&"zero"===g)return;if(m.isPosInf()&&p.isPosInf())return r.Expression.Inf();if(m.isPosInf()&&p.isNegInf())return(0,s.zero)();if(m.isZero()&&p.isPosInf())return(0,s.zero)();if("finite"===d&&"zero"===g)return(0,s.one)();if(!("finite"!==d&&"one"!==d||"finite"!==g&&"zero"!==g))try{return(0,i.simplify)(m.pow(p))}catch{return}if(m.isE()){if(p.isPosInf())return r.Expression.Inf();if(p.isNegInf())return(0,s.zero)()}return}if(e.isSum()){const s=e.elementsArray().map(e=>r.Expression.create(e));if(s.length<2)return;const u=[];let c=!1,m=!1;for(const e of s){let i;try{i=limit(e,t,n,a,l+1)}catch{return}if(i.isFunction(o.LIMIT))return;i.isPosInf()&&(c=!0),i.isNegInf()&&(m=!0),u.push(i)}if(c&&m)return;if(!c&&!m)try{let e=u[0];for(let t=1;t<u.length;t++)e=e.plus(u[t]);return(0,i.simplify)(e)}catch{return}return c&&!m?r.Expression.Inf():m&&!c?r.Expression.NegInf():void 0}if(e.isProduct()){const u=e.elementsArray(!0).map(e=>r.Expression.create(e));if(u.length<2)return;const m=[];let p=!1,d=!1;for(const e of u){let i;try{i=limit(e,t,n,a,l+1)}catch{return}if(i.isFunction(o.LIMIT))return;i.isZero()&&(p=!0),(i.isPosInf()||i.isNegInf())&&(d=!0),m.push(i)}if(p&&d){let e=-1,r=-1;for(let t=0;t<m.length;t++)m[t].isZero()&&-1===e?e=t:(m[t].isPosInf()||m[t].isNegInf())&&-1===r&&(r=t);if(-1!==e&&-1!==r){const s=u[e],o=u[r];try{const m=(0,c.diff)(s,t),p=(0,c.diff)(o,t);if(!p.isZero()){let s=(0,i.simplify)(m.times(o.pow(2)).div(p).neg());for(let t=0;t<u.length;t++)t!==e&&t!==r&&(s=s.times(u[t]));return limit(s,t,n,a,l+1)}}catch{return}}return}if(!d)try{let e=m[0];for(let t=1;t<m.length;t++)e=e.times(m[t]);return(0,i.simplify)(e)}catch{return}if(p&&!d)return(0,s.zero)();if(d&&!p){let e=1;for(const t of m)if(t.isNegInf())e*=-1;else if(t.isPosInf());else{const n=t.sign();if(0===n)return(0,s.zero)();e*=n}return e>0?r.Expression.Inf():r.Expression.NegInf()}return}}function limit(e,t,n,p="both",d=0){let g;e=r.Expression.create(e),t=r.Expression.create(t),n=r.Expression.create(n);const h=e.hasDecimal();if(d>=12)return r.Expression.toFunction(o.LIMIT,[e,t,n,p]);if(n.isPosInf()||n.isNegInf()){e.isSum()&&(g=tryComposition(e,t,n,p,d));const o=g?void 0:getDominantAtInfinity(e.getNumerator(),t),l=g?void 0:getDominantAtInfinity(e.getDenominator(),t);if(o&&l&&o.isPolynomialLike()&&l.isPolynomialLike()){const e=new a.Polynomial(o),t=new a.Polynomial(l),u=e.deg()-t.deg();if(u<0)g=(0,s.zero)();else if(0===u)g=(0,i.simplify)(r.Expression.create(e.LC()).div(r.Expression.create(t.LC())));else{let i=r.Expression.create(e.LC()).div(r.Expression.create(t.LC())).sign();n.isNegInf()&&u%2!=0&&(i*=-1),i>0?g=r.Expression.Inf():i<0&&(g=r.Expression.NegInf())}}if(!g&&o&&l){const e=getInfinityGrowthClassification(o,t),i=getInfinityGrowthClassification(l,t),a="polynomial"===e.type?e.degree:"bounded"===e.type?0:void 0,u="polynomial"===i.type?i.degree:"bounded"===i.type?0:void 0;if(void 0!==a&&void 0!==u){const e=a-u;if(e<0)g=(0,s.zero)();else if(e>0){let t=o.sign()*l.sign();n.isNegInf()&&e%2!=0&&(t*=-1),t>0?g=r.Expression.Inf():t<0&&(g=r.Expression.NegInf())}}}if(!g&&o&&l&&(g=function tryNonPolynomialInfinityLimit(e,t,n,o,a,l){const c=getInfinityGrowthClassification(e,n),m=getInfinityGrowthClassification(t,n),p=growthTier(c),d=growthTier(m);if(!(p<0||d<0))if(p>d){if("exponential"===c.type){const e=limit(c.exponent,n,o,a,l+1);if(e.isPosInf()){const e=t.sign();if(e>0)return r.Expression.Inf();if(e<0)return r.Expression.NegInf()}if(e.isNegInf())return(0,s.zero)()}if("polynomial"===c.type&&("logarithmic"===m.type||"bounded"===m.type)){const n=e.sign(),i=t.sign();if(0!==n&&0!==i)return n*i>0?r.Expression.Inf():r.Expression.NegInf()}}else{if(p<d){if("exponential"===m.type){const e=limit(m.exponent,n,o,a,l+1);if(e.isPosInf())return(0,s.zero)();if(e.isNegInf())return}return(0,s.zero)()}if("exponential"===c.type&&"exponential"===m.type){const r=(0,i.simplify)(c.exponent.minus(m.exponent)),s=(0,u.exp)(r),p=e.getMultiplier(!0),d=t.getMultiplier(!0),g=(0,i.simplify)(p.div(d));return limit((0,i.simplify)(g.times(s)),n,o,a,l+1)}if("logarithmic"===c.type&&"logarithmic"===m.type){const r=(0,i.simplify)(e.div(t));return r.eq(e.div(t))?void 0:limit(r,n,o,a,l+1)}}}(o,l,t,n,p,d)),!g&&o&&l){const i=o.div(l);i.eq(e)||(g=limit(i,t,n,p,d))}if(!g){const i=tryRewriteIndeterminate(e,t,n,p,d);i&&(g=i)}g||(g=tryComposition(e,t,n,p,d))}else{if(e.isFunction(o.SGN)||e.isFunction(o.ABS)){const i=tryComposition(e,t,n,p,d);void 0!==i&&(g=i)}if(!g){const s=function classifyAtPoint(e,t,n){const i={[t.text()]:n};try{const t=r.Expression.create(e.getNumerator().evaluate(i));return r.Expression.create(e.getDenominator().evaluate(i)).isZero()?t.isZero()?"zero_over_zero":"nonzero_over_zero":"regular"}catch{return"unknown"}}(e,t,n);if("regular"===s&&(g=r.Expression.create(e.evaluate({[t.text()]:n}))),g||"nonzero_over_zero"!==s||(g=function tryNonzeroOverZero(e,t,n,i){const s=e.getNumerator(),o=e.getDenominator(),a={[t.text()]:n};let l;try{l=r.Expression.create(s.evaluate(a)).sign()}catch{return}if(0===l)return;let u=o,m=0;for(let e=0;e<4;e++){let n;u=(0,c.diff)(u,t),m=e+1;try{n=r.Expression.create(u.evaluate(a))}catch{return}if(n.isZero())continue;const s=n.sign();if(0===s)return;if(m%2==0&&("both"===i||"left"===i||"right"===i))return l*s>0?r.Expression.Inf():r.Expression.NegInf();const o=s,p=-s;if("right"===i)return l*o>0?r.Expression.Inf():r.Expression.NegInf();if("left"===i)return l*p>0?r.Expression.Inf():r.Expression.NegInf();const d=l*o;return d===l*p?d>0?r.Expression.Inf():r.Expression.NegInf():void 0}}(e,t,n,p)),!g&&"zero_over_zero"===s){const r=(0,i.simplify)(e);r.eq(e)||(g=limit(r,t,n,p,d))}if(!g){const i=tryRewriteIndeterminate(e,t,n,p,d);i&&(g=i)}if(!g){const s=function tryLHopital(e,t,n,s,o){if(o>=4)return;const a=e.getDenominator();if(a.isOne())return;const l=e.getNumerator(),u={[t.text()]:n};let m,p;try{m=r.Expression.create(l.evaluate(u)),p=r.Expression.create(a.evaluate(u))}catch{return}const d=m.isZero()&&p.isZero(),g=(m.isPosInf()||m.isNegInf())&&(p.isPosInf()||p.isNegInf());if(!d&&!g)return;const h=(0,c.diff)(l,t),x=(0,c.diff)(a,t);if(x.isZero())return;const E=(0,i.simplify)(h.div(x));return E.eq(e)?void 0:limit(E,t,n,s,o+1)}(e,t,n,p,d);s&&(g=s)}g||(g=tryComposition(e,t,n,p,d))}}return g||(g=m.tableOfLimits.lookup(new l.Pattern(e,[t.text()]),0)),g??=r.Expression.toFunction(o.LIMIT,[e,t,n,p]),h&&(g.getMultiplier().asDecimal=!0),g}},6099(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.zero=function zero(){return getFromCacheOrCreate("0")},t.quarter=function quarter(){return getFromCacheOrCreate("1/4")},t.third=function third(){return getFromCacheOrCreate("1/3")},t.half=function half(){return getFromCacheOrCreate("1/2")},t.one=function one(){return getFromCacheOrCreate("1")},t.minusOne=function minusOne(){return getFromCacheOrCreate("-1")},t.two=function two(){return getFromCacheOrCreate("2")},t.minusTwo=function minusTwo(){return getFromCacheOrCreate("-2")},t.three=function three(){return getFromCacheOrCreate("3")},t.minusThree=function minusThree(){return getFromCacheOrCreate("-3")},t.four=function four(){return getFromCacheOrCreate("4")},t.five=function five(){return getFromCacheOrCreate("5")},t.six=function six(){return getFromCacheOrCreate("6")},t.seven=function seven(){return getFromCacheOrCreate("7")},t.eight=function eight(){return getFromCacheOrCreate("8")},t.sixteen=function sixteen(){return getFromCacheOrCreate("16")},t.twentySeven=function twentySeven(){return getFromCacheOrCreate("27")},t.twoHundredFiftySix=function twoHundredFiftySix(){return getFromCacheOrCreate("256")},t.I=function I(){return s.Expression.Img()},t.all=function all(){return s.Expression.Variable(r.ALL_SYMBOL)},t.symbols=function symbols(...e){const t={};for(const n of e){const e=s.Expression.create(n);if(e.getMultiplier(),e.getPower(),!e.isVAR())throw new i.UnexpectedInputError((0,i.message)("plainVariableExpected"));Object.freeze(e),t[n]=e}return t};const i=n(4703),r=n(8300),s=n(296),o={};function getFromCacheOrCreate(e){if(void 0===o[e]){const t=s.Expression.Number(e);t.getMultiplier(),t.getPower(),Object.freeze(t),o[e]=t}return o[e]}},6117(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.factorCommonPower=function factorCommonPower(e){if(!e.isSum())return e;const t=e.getMultiplier(),n=e.getPower(),s=e.elementsArray();if(s.length<2)return e;const o=[];let a=!1;for(const e of s){const t=extractBasePowers(e);o.push(t),0===t.size&&(a=!0)}if(a)return e;const l=new Set(o[0].keys());for(let e=1;e<o.length;e++)for(const t of l)o[e].has(t)||l.delete(t);if(0===l.size)return e;const u=new Map;for(const e of l){let t=o[0].get(e);if(void 0!==t){for(let n=1;n<o.length;n++){const i=o[n].get(e);if(void 0===i){t=void 0;break}i.lt(t)&&(t=i)}void 0!==t&&1===t.sign()&&u.set(e,t)}}if(0===u.size)return e;let c=(0,r.one)();for(const[e,t]of u)c=c.times(i.Expression.create(e).pow(t));let m=(0,r.zero)();for(const e of s)m=m.plus(e.div(c));let p=c.times(m);return n.isOne()||(p=p.pow(n)),t.isOne()||(p=p.times(t)),p};const i=n(296),r=n(6099);function extractBasePowers(e){const t=new Map;if(e.isNUM())return t;if(e.isProduct()){for(const n of e.elementsArray())if(!n.isNUM()){const e=n.getBase().text(),i=n.getPower(),r=t.get(e);t.set(e,void 0!==r?r.plus(i):i)}}else{const n=e.getBase().text();t.set(n,e.getPower())}return t}},6184(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Equation=void 0;const i=n(6441),r=n(4703),s=n(296),o=n(6099),a=n(8300);class Equation{dataType=a.EQUATION;isEnumerable=!1;LHS;precision;RHS;constructor(e,t){this.LHS=e,this.RHS=t}static isEquation(e){return(0,i.isNerdamerNativeType)(e,a.EQUATION)}abs(){throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"))}add(e){return this.plus(e)}copy(){return new Equation(this.LHS.copy(),this.RHS.copy())}div(e){if(Equation.isEquation(e))throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"));const t=s.Expression.create(e);if(!t.isNUM()||t.isZero())throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"));return new Equation(this.LHS.div(t),this.RHS.div(t))}each(e){const t=e(this.LHS,0),n=e(this.RHS,1);if(s.Expression.isExpression(t)&&s.Expression.isExpression(n))return new Equation(t,n);const i=`${a.dataTypes[t.dataType]||typeof t} & ${a.dataTypes[n.dataType]||typeof n}`;throw new r.UnexpectedDataType((0,r.message)("expressionExpected",{type:i}))}eq(e){return!!Equation.isEquation(e)&&this.toLHS().LHS.eq(e.toLHS().LHS)}evaluate(){return this.copy().each(e=>e.evaluate())}expand(){return this.copy().each(e=>e.expand())}gt(e){return!!Equation.isEquation(e)&&this.toLHS().LHS.gt(e.toLHS().LHS)}gte(e){return this.gt(e)||this.eq(e)}lt(e){return!!Equation.isEquation(e)&&this.toLHS().LHS.lt(e.toLHS().LHS)}lte(e){return this.lt(e)||this.eq(e)}minus(e){if(Equation.isEquation(e))throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"));const t=s.Expression.create(e);return this.each(e=>e.minus(t))}multiply(e){return this.times(e)}plus(e){if(Equation.isEquation(e))throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"));const t=s.Expression.create(e);return this.each(e=>e.plus(t))}subtract(e){return this.minus(e)}text(){return`${this.LHS.text()}=${this.RHS.text()}`}times(e){if(Equation.isEquation(e))throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"));const t=s.Expression.create(e);if(!t.isNUM()||t.isZero())throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"));return this.LHS=this.LHS.times(t),this.RHS=this.RHS.times(t),this}toLHS(){const e=this.copy();return e.LHS=e.LHS.minus(e.RHS),e.RHS=(0,o.zero)(),e}toString(){return this.text()}}t.Equation=Equation},6255(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.add=add,t.addPrefix=function addPrefix(e){return e},t.join=join;const i=n(4703),r=n(5817),s=n(296),o=n(8300),{NUM:a,VAR:l,EXP:u,FUN:c,GRP:m,PRD:p,SUM:d,INF:g}=o.EXPRESSION_TYPES;function add(e,t){let n;if(r.Settings.DEFER_SIMPLIFICATION)n=join(e,t,!1),n.deferred=!0;else{const r=e.keyValue(),a=t.keyValue();s.Expression.DISTRIBUTE_MULTIPLIER&&(e=e.distributeMultiplier(),t=t.distributeMultiplier());const l=!e.isNUM()&&r===a;if(e.isNUM()&&t.isNUM())n=s.Expression.fromRational(e.getMultiplier().plus(t.getMultiplier()));else if(e.isComplex()&&t.isComplex()){const i=e.realPart().plus(t.realPart()),r=e.imagPart().plus(t.imagPart()).times(s.Expression.Img());n=i.isZero()?r:r.isZero()?i:join(i,r)}else if(e.isZero())n=s.Expression.create(t);else if(e.value===t.value&&e.type===t.type&&e.getPower().eq(t.getPower()))if(e.isInf()){const r=e.getMultiplier(),o=t.getMultiplier();if(r.isNegative()&&!o.isNegative()||o.isNegative()&&!r.isNegative())throw new i.UndefinedError((0,i.message)("infinityMinusInfinityUndefined"));n=e.isNegInf()?s.Expression.NegInf():s.Expression.Inf()}else{n=s.Expression.create(e);const i=e.getMultiplier().plus(t.getMultiplier());i.isZero()&&(n=s.Expression.Number("0")),e.isSum()&&t.isSum()&&e.isLinear()&&t.isLinear()?n=join(e,t):(n.multiplier=i,n.power&&(n=s.Expression.setPower(n,e.getPower().copy()))),e.power&&(n=s.Expression.setPower(n,e.getPower().copy()))}else if(l)n=join(e,t,l);else if(e.isInf()&&t.isInf()){const n=e.getMultiplier(),r=t.getMultiplier();if(n.isNegative()&&!r.isNegative()||r.isNegative()&&!n.isNegative())throw new i.UndefinedError((0,i.message)("infinityMinusInfinityUndefined"))}else o.RANK[e.type]>o.RANK[t.type]&&(n=add(t,e));n=n||join(e,t,l)}return n}function canJoin(e,t){return(e.type===d||e.type===m&&e.keyValue()===t.keyValue())&&e.isLinear()&&(!e.multiplier||e.multiplier&&e.getMultiplier().isOne())}function join(e,t,n=!1){let i,r=[];const o=n?m:d;let a=canJoin(e,t),l=canJoin(t,e);if(a&&!l&&([t,e]=[e,t],[l,a]=[a,l]),l)if(!a&&l){i=t.copy();const s=i.getElements();let o=!0,a=e.keyValue(o,!1);if(a in s||(o=!1,a=e.keyValue(o,n)),a in s){const t=add(e,s[a]);t.isZero()?delete s[a]:s[a]=t}else s[a]=e.copy();r=Object.values(s)}else{i=e.copy(),i.multiplier=e.getMultiplier().times(t.getMultiplier());const n=i.getElements(),s=t.getElements();for(const e in s){const t=s[e];if(e in n){const i=add(t,n[e]);i.isZero()?delete n[e]:n[e]=i}else n[e]=t.copy()}r=Object.values(n)}else{let o=!1,a=e.keyValue(o,n),l=t.keyValue(o,n);a===l&&(o=!0,n=!1,a=e.keyValue(o,n),l=t.keyValue(o,n)),i=s.Expression.Number("1"),i.elements={},i.elements[a]=e.copy(),i.elements[l]=t.copy(),r=[e,t]}if((i.isSum()||i.isProduct())&&1===r.length){const e=r[0];(i.multiplier||e.multiplier)&&(e.multiplier=e.getMultiplier().times(i.getMultiplier())),i=e}else 0===r.length?i=s.Expression.Number("0"):(i.type=o,i.value=s.Expression.getValue(r,"text",o));return i}},6284(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Collection=void 0;const i=n(8505),r=n(6441),s=n(8300);class Collection extends i.StructuredEntity{dataType=s.COLLECTION;elements=[];isEnumerable=!0;precision;constructor(e){super(),this.elements=e||[]}static isCollection(e){return(0,r.isNerdamerNativeType)(e,s.COLLECTION)}__get__(e){const t=e[0];if(t<0||t>=this.elements.length)throw new RangeError(`Index ${t} out of bounds for Collection of length ${this.elements.length}`);return this.elements[t]}__set__(e,t){const n=e[0];if(n<0||n>=this.elements.length)throw new RangeError(`Index ${n} out of bounds for Collection of length ${this.elements.length}`);this.elements[n]=t}at(e){return this.elements[e]}copy(){const e=new Collection;return this.each((t,n)=>(e.elements[n]=t.copy(),t)),e}count(){return this.elements.length}dimensions(){return[this.elements.length]}each(e){for(let t=0;t<this.elements.length;t++){const n=e(this.elements[t],t);void 0!==n&&(this.elements[t]=n)}return this}eq(e){if(!Collection.isCollection(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++){const n=this.elements[t],i=e.elements[t];if(!n.eq(i))return!1}return!0}evaluate(){const e=this.copy();return e.each(e=>e.evaluate()),e}expand(){const e=this.copy();return e.each(e=>e.expand()),e}forEach(e){for(let t=0;t<this.elements.length;t++)e(this.elements[t],t)}getElements(){return this.elements}gt(e){if(!Collection.isCollection(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++){const n=this.elements[t],i=e.elements[t];if(!n.gt(i))return!1}return!0}gte(e){if(!Collection.isCollection(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].gte(e.elements[t]))return!1;return!0}lt(e){if(!Collection.isCollection(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++){const n=this.elements[t],i=e.elements[t];if(!n.lt(i))return!1}return!0}lte(e){if(!Collection.isCollection(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].lte(e.elements[t]))return!1;return!0}[Symbol.iterator](){return this.elements[Symbol.iterator]()}text(){return`(${this.elements.map(e=>e.text()).join(", ")})`}toArray(){return[...this.elements]}}t.Collection=Collection},6338(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.collect=function collect(e,t,n,i){if(i??=[],t(e,i)&&n(e,i),e.args)for(const r of e.args)collect(r,t,n,i);if(e.elements)for(const r in e.elements)collect(e.elements[r],t,n,i);return e.isEXP()&&(collect(e.getBase(),t,n,i),collect(e.getPower(),t,n,i)),i},t.collectVariablesSet=function collectVariablesSet(e){const t=new Set;for(const n of e){const e=n.variables();for(const n of e)t.add(n)}return Array.from(t).sort()}},6351(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasAssumptions=function hasAssumptions(){return 0!==l.size},t.assume=function assume(e,t){let n;if(1===arguments.length){const t=a.Assumption.parse(e);n=setAssumption(t.symbol,t.assumption)}else{const r=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(r))throw new i.UnexpectedInputError((0,i.message)("plainVariableExpected",{input:r}));if("string"==typeof t){const e=a.Assumption.parse(t);if(e.symbol!==r)throw new i.UnexpectedInputError((0,i.message)("wrongInput",{expected:r,received:e.symbol}));n=setAssumption(r,e.assumption)}else{if(!a.Assumption.isAssumption(t))throw new i.UnexpectedInputError((0,i.message)("wrongInput",{expected:"string or Assumption",received:typeof t}));n=setAssumption(r,t)}}return n},t.clearAssumptions=clearAssumptions,t.forgetAssumptionFor=forgetAssumptionFor,t.getAssumptionFor=function getAssumptionFor(e){let t;return s.Expression.isExpression(e)&&e.isPlainVariable()?t=e.value:"string"==typeof e&&(t=e),void 0===t?void 0:l.get(t)},t.assuming=function assuming(e){return e},t.forget=function forget(e){return e.eq(o.ALL_SYMBOL)?clearAssumptions():forgetAssumptionFor(e),e};const i=n(4703),r=n(5817),s=n(296),o=n(8300),a=n(2446),l=new Map;function setAssumption(e,t){if(s.Expression.RESERVED.includes(e)||r.RESTRICTED.includes(e)||e===s.Expression.imaginary)throw new i.UnexpectedInputError((0,i.message)("plainVariableExpected",{input:e}));const n=l.get(e);let o=t;if(n){const e=n.intersect(t);if(!e)throw new i.UnexpectedInputError((0,i.message)("inconsistentAssumptions"));o=e}return l.set(e,o),o}function clearAssumptions(){l.clear()}function forgetAssumptionFor(e){let t;s.Expression.isExpression(e)&&e.isPlainVariable()?t=e.value:"string"==typeof e&&(t=e),void 0!==t&&l.delete(t)}},6430(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.determinant=function determinant(e){return e.copy().determinant()},t.nullspace=function nullspace(e,t){return new o.Vector(e.nullspace(t).map(e=>new o.Vector(e)))},t.characteristicPolynomial=function characteristicPolynomial(e,t){if(!e.isSquare())throw new i.UnsupportedOperationError((0,i.message)("squareMatrixRequired"));const n=e.rows(),o=r.Expression.Variable(t),l=a.Matrix.identity(n);let u=l,c=o.pow(n);for(let t=1;t<=n;t++){const i=e.times(u),r=i.trace().neg().div(t);c=c.plus(r.times(o.pow(n-t))),u=i.plus(l.times(r))}return new s.Polynomial(c,[t])};const i=n(4703),r=n(296),s=n(2116),o=n(3982),a=n(4462)},6431(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GroebnerBudgetExceeded=void 0,t.Groebner=function Groebner(e,t,n="LEX",i=!0){if(0===e.length)return[];const r=t.length,s=groebnerBasis(e,{order:n,reduced:i}),o=new Map,getInfo=e=>{let t=o.get(e);return t||(t={pv:variablePresence(e,r),lt:ltOrNull(e,n,r)},o.set(e,t)),t};return[...s].sort((e,t)=>{const i=getInfo(e),s=getInfo(t);for(let e=0;e<r;e++){const t=i.pv[e]?1:0,n=s.pv[e]?1:0;if(t!==n)return t>n?-1:1}if(i.lt&&s.lt){const e=compareMonomialDense(i.lt.exp,s.lt.exp,n);if(0!==e)return e}const o=e.terms.size,a=t.terms.size;return o!==a?o<a?-1:1:0})},t.groebnerBasisWithOptions=function groebnerBasisWithOptions(e,t){return groebnerBasis(e,t)},t.eliminate=function eliminate(e,t,n,i){if(0===e.length)return[];const r=new Set(n),s=new Set;for(let e=0;e<t.length;e++)r.has(t[e])||s.add(e);const o=groebnerBasis(e,{...i,order:"LEX",reduced:!0}),a=t.length,l=[];for(const e of o){const t=variablePresence(e,a);let n=!0;for(const e of s)if(t[e]){n=!1;break}n&&l.push(e)}return l},t.idealMembership=function idealMembership(e,t,n="LEX",i){if(polyIsZero(e))return!0;if(0===t.length)return!1;const r=groebnerBasis(t,{...i,order:n,reduced:!0});return polyIsZero(reduceByBasis(e,r,n))},t.reduceByBasis=reduceByBasis,t.solve=function solve(e,t,n){if(0===e.length||0===t.length)return[new Map];const i=groebnerBasis(e,{...n,order:"LEX",reduced:!0});if(1===i.length&&i[0].isConstant()&&0n!==i[0].constantTerm())return[];if(0===i.length)return[];const o=t.length;return function backSubstitute(e,t,n){let i=[{assignment:new Map,basis:e.map(e=>(0,s.mvNormalize)(e))}];for(let e=n-1;e>=0;e--){const t=[];for(const{assignment:n,basis:o}of i){const i=o.filter(t=>{if(polyIsZero(t))return!1;for(const n of t.terms.keys()){const t=(0,r.keyToExp)(n);for(const[n,i]of t.entries())if(i>0&&n!==e)return!1}return t.degree(e)>0});if(0===i.length){t.push({assignment:new Map(n),basis:o});continue}const a=rationalRootsUnivariate(i[0],e);for(const r of a){let a=!0;for(let t=1;t<i.length;t++)if(!evaluatesToZero(i[t],e,r)){a=!1;break}if(!a)continue;const l=o.map(t=>{if(t.degree(e)<=0)return t;let n=t;return 1n!==r.d&&(n=scaleByDenomPow(n,e,r.d)),(0,s.mvNormalize)((0,s.substituteVarIndex)(n,e,r.n))}),u=new Map(n);u.set(e,r),t.push({assignment:u,basis:l})}}i=t}return i.map(({assignment:e})=>{const n=new Map;for(const[i,r]of e)i<t.length&&n.set(t[i],r);return n})}(i,t,o)};const i=n(551),r=n(4737),s=n(9350);class GroebnerBudgetExceeded extends Error{stats;constructor(e,t){super(e),this.name="GroebnerBudgetExceeded",this.stats=t}}function ltOrNull(e,t,n){return function mvLeadTermDense(e,t,n){if(0===e.terms.size)return null;let i=null,s=0n;for(const[o,a]of e.terms.entries()){if(0n===a)continue;const e=(0,r.keyToExp)(o),l=new Array(n).fill(0);for(const[t,i]of e.entries())t>=0&&t<n&&(l[t]=i);(!i||compareMonomialDense(l,i,t)>0)&&(i=l,s=a)}return i?{exp:i,coeff:s}:null}(e,t,n)}function polyIsZero(e){return 0===e.terms.size}function numVarsFromPolys(...e){let t=-1;for(const n of e)for(const e of n.terms.keys()){const n=(0,r.keyToExp)(e);for(const[e,i]of n.entries())i>0&&e>t&&(t=e)}return t+1}function polyKey(e){const t=[];for(const[n,i]of e.terms.entries())0n!==i&&t.push(`${n}:${i.toString()}`);return t.sort(),t.join("|")}function primitiveNormalizeOrder(e,t,n){if(polyIsZero(e))return r.MultiPoly.zero();let i=(0,s.mvNormalize)(e);const{primitive:o}=(0,s.mvDivideByCoeffContent)(i);i=(0,s.mvNormalize)(o);const a=ltOrNull(i,t,n);a&&a.coeff<0n&&(i=(0,s.negPoly)(i));const l=ltOrNull(i,t,n);if(l&&0n!==l.coeff&&1n!==l.coeff){const e=l.coeff;let t=!0;for(const n of i.terms.values())if(n%e!==0n){t=!1;break}t&&(i=(0,s.mvNormalize)(function divScalarExact(e,t){if(0n===t)throw new Error("divScalarExact: divide by 0");if(1n===t)return e;const n=new r.MultiPoly;for(const[i,r]of e.terms.entries()){if(r%t!==0n)throw new Error("divScalarExact: non-exact");const e=r/t;0n!==e&&n.terms.set(i,e)}return n.trim(),n}(i,e)))}return i}function sPolynomialFF(e,t,n,i){const o=(0,s.mvNormalize)(e),a=(0,s.mvNormalize)(t),l=ltOrNull(o,n,i),u=ltOrNull(a,n,i);if(!l||!u)return r.MultiPoly.zero();const c=expLcmDense(l.exp,u.exp),m=(0,s.monoSubDense)(c,l.exp),p=(0,s.monoSubDense)(c,u.exp),d=r.MultiPoly.monomial(u.coeff,m),g=r.MultiPoly.monomial(l.coeff,p),h=(0,s.mulPoly)(o,d),x=(0,s.mulPoly)(a,g);return(0,s.mvNormalize)((0,s.subPoly)(h,x))}function normalFormFractionFree(e,t,n,i){let o=(0,s.mvNormalize)(e);if(polyIsZero(o))return o;for(;;){const e=ltOrNull(o,n,i);if(!e)break;let a=!1;for(const l of t){const t=(0,s.mvNormalize)(l);if(polyIsZero(t))continue;const u=ltOrNull(t,n,i);if(!u)continue;if(!(0,s.monoDividesDense)(u.exp,e.exp))continue;const c=(0,s.monoSubDense)(e.exp,u.exp),m=(0,s.scalePoly)(o,u.coeff),p=(0,s.mulPoly)(t,r.MultiPoly.monomial(e.coeff,c));o=(0,s.mvNormalize)((0,s.subPoly)(m,p)),a=!0;break}if(!a)break}return o}function collectDenseTermsDesc(e,t,n){const i=[];for(const[t,s]of e.terms.entries()){if(0n===s)continue;const e=(0,r.keyToExp)(t),o=new Array(n).fill(0);for(const[t,i]of e.entries())t>=0&&t<n&&(o[t]=i);i.push({exp:o,coeff:s})}return i.sort((e,n)=>-compareMonomialDense(e.exp,n.exp,t)),i}function normalFormFractionFreeAllTerms(e,t,n,i){let o=primitiveNormalizeOrder((0,s.mvNormalize)(e),n,i);if(polyIsZero(o)||0===t.length)return o;const a=[];for(const e of t){const t=primitiveNormalizeOrder((0,s.mvNormalize)(e),n,i);if(polyIsZero(t))continue;const r=ltOrNull(t,n,i);r&&0n!==r.coeff&&a.push({poly:t,lt:r})}if(0===a.length)return o;for(;;){let e=!1;const t=collectDenseTermsDesc(o,n,i);if(0===t.length)break;e:for(const l of t)for(const{poly:t,lt:u}of a){if(!(0,s.monoDividesDense)(u.exp,l.exp))continue;const a=(0,s.monoSubDense)(l.exp,u.exp),c=(0,s.scalePoly)(o,u.coeff),m=(0,s.mulPoly)(t,r.MultiPoly.monomial(l.coeff,a));o=primitiveNormalizeOrder((0,s.mvNormalize)((0,s.subPoly)(c,m)),n,i),e=!0;break e}if(!e)break}return o}function variablePresence(e,t){const n=new Array(t).fill(!1);for(const t of e.terms.keys()){const e=(0,r.keyToExp)(t);for(const[t,i]of e.entries())i>0&&(n[t]=!0)}return n}function sugarDegree(e,t,n){const i=ltOrNull(e,t,n);return i?monomialTotalDegreeDense(i.exp):0}function sPairSugar(e,t,n,i){const r=monomialTotalDegreeDense(expLcmDense(n,i)),s=monomialTotalDegreeDense(n),o=monomialTotalDegreeDense(i);return Math.max(e+(r-s),t+(r-o))}function insertPairSorted(e,t){let n=0,i=e.length;for(;n<i;){const r=n+i>>>1,s=e[r];s.sugar<t.sugar||s.sugar===t.sugar&&s.lcmDeg<t.lcmDeg?n=r+1:i=r}e.splice(n,0,t)}function groebnerBasis(e,t="LEX"){const n="string"==typeof t?{order:t}:t??{},o=n.order??"LEX",a=n.reduced??!0,l=n.maxPairsPopped,u=n.maxBasisSize,c=n.strategy??"sugar",m={pairsPopped:0,pairsSkippedProduct:0,pairsSkippedChain:0,pairsReducedToZero:0,basisAppends:0},p=e.filter(e=>!polyIsZero(e)).map(e=>(0,s.mvNormalize)(e));if(0===p.length)return[];const d=numVarsFromPolys(...p),g=p.slice(),h=g.map(e=>sugarDegree(e,o,d)),x=g.map(e=>{const t=ltOrNull(e,o,d);return t?t.exp:null}),E=new Set,pairKey=(e,t)=>e<t?`${e},${t}`:`${t},${e}`,lmExpCached=e=>{if(e<x.length)return x[e];const t=ltOrNull(g[e],o,d),n=t?t.exp:null;return x[e]=n,n},areCoprimeLM=(e,t)=>{for(let n=0;n<d;n++)if(e[n]>0&&t[n]>0)return!1;return!0},chainCriterionApplies=(e,t)=>{const n=lmExpCached(e),i=lmExpCached(t);if(!n||!i)return!1;const r=expLcmDense(n,i);for(let n=0;n<g.length;n++){if(n===e||n===t)continue;const i=lmExpCached(n);if(i&&(0,s.monoDividesDense)(i,r)&&E.has(pairKey(e,n))&&E.has(pairKey(n,t)))return!0}return!1};if("sugar"===c){const e=[],makePair=(e,t)=>{const n=lmExpCached(e),i=lmExpCached(t);if(!n||!i)return null;const r=expLcmDense(n,i);return{i:e,j:t,sugar:sPairSugar(h[e],h[t],n,i),lcmDeg:monomialTotalDegreeDense(r)}};for(let t=0;t<g.length;t++)for(let n=t+1;n<g.length;n++){const i=makePair(t,n);i&&insertPairSorted(e,i)}for(;e.length>0;){const{i:t,j:n,sugar:i}=e[0];if(e.shift(),m.pairsPopped++,void 0!==l&&m.pairsPopped>l)throw new GroebnerBudgetExceeded(`Groebner budget exceeded: pairsPopped > ${l}`,m);const s=lmExpCached(t),a=lmExpCached(n);if(s&&a&&areCoprimeLM(s,a)){m.pairsSkippedProduct++,E.add(pairKey(t,n));continue}if(chainCriterionApplies(t,n)){m.pairsSkippedChain++,E.add(pairKey(t,n));continue}const c=primitiveNormalizeOrder(normalFormFractionFreeAllTerms(normalFormFractionFree(sPolynomialFF(g[t],g[n],o,d),g,o,d),g,o,d),o,d);if(polyIsZero(c))m.pairsReducedToZero++,E.add(pairKey(t,n));else{if(c.isConstant()&&0n!==c.constantTerm())return[r.MultiPoly.constant(1n)];{const t=g.length;g.push(c);const n=ltOrNull(c,o,d);x.push(n?n.exp:null);const r=sugarDegree(c,o,d);if(h.push(Math.max(i,r)),m.basisAppends++,void 0!==u&&g.length>u)throw new GroebnerBudgetExceeded(`Groebner budget exceeded: basis size > ${u}`,m);for(let n=0;n<t;n++){const i=makePair(n,t);i&&insertPairSorted(e,i)}}}}}else{const e=[];for(let t=0;t<g.length;t++)for(let n=t+1;n<g.length;n++)e.push([t,n]);for(;e.length>0;){const[t,n]=e[0];if(e.shift(),m.pairsPopped++,void 0!==l&&m.pairsPopped>l)throw new GroebnerBudgetExceeded(`Groebner budget exceeded: pairsPopped > ${l}`,m);const i=lmExpCached(t),s=lmExpCached(n);if(i&&s&&areCoprimeLM(i,s)){m.pairsSkippedProduct++,E.add(pairKey(t,n));continue}if(chainCriterionApplies(t,n)){m.pairsSkippedChain++,E.add(pairKey(t,n));continue}const a=primitiveNormalizeOrder(normalFormFractionFreeAllTerms(normalFormFractionFree(sPolynomialFF(g[t],g[n],o,d),g,o,d),g,o,d),o,d);if(polyIsZero(a))m.pairsReducedToZero++,E.add(pairKey(t,n));else{if(a.isConstant()&&0n!==a.constantTerm())return[r.MultiPoly.constant(1n)];{const t=g.length;g.push(a);const n=ltOrNull(a,o,d);if(x.push(n?n.exp:null),m.basisAppends++,void 0!==u&&g.length>u)throw new GroebnerBudgetExceeded(`Groebner budget exceeded: basis size > ${u}`,m);for(let n=0;n<t;n++)e.push([n,t])}}}}return a?function canonicalizeBasis(e,t,n){const r=[],o=e.filter(e=>!polyIsZero(e)).map(e=>(0,s.mvNormalize)(e));for(const e of o){const i=primitiveNormalizeOrder(normalFormFractionFreeAllTerms(normalFormFractionFree(e,r,t,n),r,t,n),t,n);polyIsZero(i)||r.push(i)}const a=[];for(let e=0;e<r.length;e++){const i=r.filter((t,n)=>n!==e),s=primitiveNormalizeOrder(normalFormFractionFreeAllTerms(normalFormFractionFree(r[e],i,t,n),i,t,n),t,n);polyIsZero(s)||a.push(s)}const betterSameLM=(e,r)=>{const s=variablePresence(e,n),o=variablePresence(r,n);let a=0,l=0;for(let e=0;e<n;e++)s[e]&&a++,o[e]&&l++;if(a!==l)return a<l?e:r;if(e.terms.size!==r.terms.size)return e.terms.size<r.terms.size?e:r;const u=ltOrNull(e,t,n),c=ltOrNull(r,t,n);if(u&&c){const t=(0,i.abs)(u.coeff),n=(0,i.abs)(c.coeff);if(t!==n)return t<n?e:r}return e},l=new Map;for(const e of a){const t=polyKey(e),n=l.get(t);n?l.set(t,betterSameLM(n,e)):l.set(t,e)}const u=Array.from(l.values());return u.sort((e,i)=>{const r=variablePresence(e,n),s=variablePresence(i,n);for(let e=0;e<n;e++){const t=r[e]?1:0,n=s[e]?1:0;if(t!==n)return t-n}const o=ltOrNull(e,t,n),a=ltOrNull(i,t,n);if(o&&a){const e=compareMonomialDense(o.exp,a.exp,t);if(0!==e)return e}return e.terms.size-i.terms.size}),u}(g,o,d):g}function reduceByBasis(e,t,n="LEX"){if(polyIsZero(e)||0===t.length)return(0,s.mvNormalize)(e);const i=numVarsFromPolys(e,...t);return primitiveNormalizeOrder(normalFormFractionFreeAllTerms(normalFormFractionFree(e,t,n,i),t,n,i),n,i)}function scaleByDenomPow(e,t,n){const i=e.degree(t);if(i<=0||1n===n)return e;const s=new Array(i+1);s[0]=1n;for(let e=1;e<=i;e++)s[e]=s[e-1]*n;const o=new r.MultiPoly;for(const[n,a]of e.terms){const e=a*s[i-((0,r.keyToExp)(n).get(t)??0)];0n!==e&&o.terms.set(n,e)}return o.trim(),o}function rationalRootsUnivariate(e,t){const n=e.degree(t);if(n<=0)return[];const s=new Array(n+1).fill(0n);for(const[i,o]of e.terms){const e=(0,r.keyToExp)(i).get(t)??0;e<=n&&(s[e]+=o)}let o=n;for(;o>0&&0n===s[o];)o--;if(0===o)return[];const a=s[o],l=s[0];if(0n===l){const e=[{n:0n,d:1n}],n=new r.MultiPoly;for(let e=1;e<=o;e++)if(0n!==s[e]){const i=new Map;e>1&&i.set(t,e-1),n.terms.set((0,r.expToKey)(i),s[e])}const i=rationalRootsUnivariate(n,t);for(const t of i)0n!==t.n&&e.push(t);return e}const u=positiveDivisors((0,i.abs)(l)),c=positiveDivisors((0,i.abs)(a)),m=[],p=new Set;for(const e of u)for(const t of c)for(const n of[1n,-1n]){const r=n*e,a=(0,i.GCD)((0,i.abs)(r),t),l=r/a,u=t/a,c=`${l}/${u}`;p.has(c)||(p.add(c),evaluatesCoeffsToZero(s,o,l,u)&&m.push({n:l,d:u}))}return m}function evaluatesCoeffsToZero(e,t,n,i){let r=0n,s=1n,o=1n;for(let e=0;e<t;e++)o*=i;for(let a=0;a<=t;a++)r+=e[a]*s*o,s*=n,a<t&&0n!==i&&(o/=i);return 0n===r}function evaluatesToZero(e,t,n){if(e.degree(t)<=0)return polyIsZero(e)||0n===e.constantTerm();let i=e;1n!==n.d&&(i=scaleByDenomPow(i,t,n.d));const r=(0,s.substituteVarIndex)(i,t,n.n);return polyIsZero((0,s.mvNormalize)(r))}function positiveDivisors(e){if(0n===e)return[0n];e<0n&&(e=-e);const t=[];let n=1n;for(;n*n<=e;)e%n===0n&&(t.push(n),n!==e/n&&t.push(e/n)),n++;return t}function expLcmDense(e,t){const n=Math.max(e.length,t.length),i=new Array(n).fill(0);for(let r=0;r<n;r++)i[r]=Math.max(e[r]??0,t[r]??0);return i}function compareMonomialDense(e,t,n){const i=Math.max(e.length,t.length);if("LEX"===n){for(let n=0;n<i;n++){const i=e[n]??0,r=t[n]??0;if(i!==r)return i>r?1:-1}return 0}const r=monomialTotalDegreeDense(e),s=monomialTotalDegreeDense(t);if(r!==s)return r>s?1:-1;if("GRLEX"===n){for(let n=0;n<i;n++){const i=e[n]??0,r=t[n]??0;if(i!==r)return i>r?1:-1}return 0}for(let n=i-1;n>=0;n--){const i=e[n]??0,r=t[n]??0;if(i!==r)return i<r?1:-1}return 0}function monomialTotalDegreeDense(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n]??0;return t}t.GroebnerBudgetExceeded=GroebnerBudgetExceeded},6441(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ASSERTIVE_FUNCTIONS=t.operators=t.brackets=void 0,t.isNerdamerNativeType=function isNerdamerNativeType(e,t){let n=!1;return"object"==typeof e&&null!==e&&"dataType"in e&&(n=e.dataType===t),n},t.brackets={"(":{type:"parenthesis",id:1,isOpen:!0,isClose:!1,matches:")"},")":{type:"parenthesis",id:2,isOpen:!1,isClose:!0,matches:"("},"[":{type:"square",id:3,isOpen:!0,isClose:!1,matches:"]"},"]":{type:"square",id:4,isOpen:!1,isClose:!0,matches:"["},"{":{type:"curly",id:5,isOpen:!0,isClose:!1,matches:"}"},"}":{type:"curly",id:6,isOpen:!1,isClose:!0,matches:"{"},"|":{type:"pipe",id:7,isOpen:!0,isClose:!0,matches:"|"}},t.operators={".":{precedence:9,operator:".",action:"dot",isPrefix:!1,isPostfix:!1,leftAssoc:!1,iterates:!1},"!!":{precedence:7,operator:"!!",action:"doubleFactorial",isPrefix:!1,isPostfix:!0,leftAssoc:!1,iterates:!0},"!":{precedence:7,operator:"!",action:"factorial",isPrefix:!1,isPostfix:!0,leftAssoc:!1,iterates:!0},"^":{precedence:6,operator:"^",action:"pow",isPrefix:!1,isPostfix:!1,leftAssoc:!1,iterates:!0},"**":{precedence:6,operator:"**",action:"pow",isPrefix:!1,isPostfix:!1,leftAssoc:!1,iterates:!0},"%":{precedence:4,operator:"%",action:"mod",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!0,postfixVariant:{precedence:7,operator:"%",action:"percent",isPrefix:!1,isPostfix:!0,leftAssoc:!1,iterates:!0}},"*":{precedence:4,operator:"*",action:"times",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!0},"/":{precedence:4,operator:"/",action:"div",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!0},"+":{precedence:3,operator:"+",action:"plus",isPrefix:!0,isPostfix:!1,leftAssoc:!0,iterates:!0},"-":{precedence:3,operator:"-",action:"minus",isPrefix:!0,isPostfix:!1,leftAssoc:!0,iterates:!0},"=":{precedence:2,operator:"=",action:"setEqual",assertiveAction:"assertEQ",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},"==":{precedence:1,operator:"==",action:"eq",assertiveAction:"assertEQ",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},"<":{precedence:1,operator:"<",action:"lt",assertiveAction:"assertLT",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},"<=":{precedence:1,operator:"<=",action:"lte",assertiveAction:"assertLTE",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},">":{precedence:1,operator:">",action:"gt",assertiveAction:"assertGT",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},">=":{precedence:1,operator:">=",action:"gte",assertiveAction:"assertGTE",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},"=>":{precedence:0,operator:"=>",action:"mapTo",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},",":{precedence:0,operator:",",action:"comma",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},":":{precedence:0,operator:":",action:"assign",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1,deferLHSResolution:!0},":=":{precedence:0,operator:":=",action:"functionAssign",isPrefix:!1,isPostfix:!1,leftAssoc:!1,iterates:!1,deferLHSResolution:!0,deferRHSResolution:!0},in:{precedence:0,operator:"in",action:"in",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1}},t.ASSERTIVE_FUNCTIONS=["assume"]},6498(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.multiply=multiply,t.merge=merge,t.canonicalizeRadicals=function canonicalizeRadicals(e){let t;if(e.isEXP()&&e.isConstant()&&e.hasRadical())t=(0,c.rationalizeRadical)(e,!0);else if(e.isFunction()){const n=e.getArguments().map(e=>canonicalizeRadicals(e));let i=a.Expression.toFunction(e.name,n);i.multiplier=e.multiplier,i=a.Expression.setPower(i,e.getPower()),t=i}else if(e.isProduct()){let t=a.Expression.fromRational(e.getMultiplier());e.each(e=>{t=t.times(canonicalizeRadicals(e))})}else if(e.isSum()&&e.isLinear()){let t=(0,l.zero)();e.each(e=>{t=t.plus(canonicalizeRadicals(e))})}else if(e.isEXP()){const t=canonicalizeRadicals(e.getBase()),n=canonicalizeRadicals(e.getPower());t.pow(n).multiplier=e.multiplier}return t??e};const i=n(4703),r=n(4703),s=n(4600),o=n(5817),a=n(296),l=n(6099),u=n(8300),c=n(3957);function multiply(e,t){let n;if(o.Settings.DEFER_SIMPLIFICATION)n=merge(a.Expression.toFunction(u.WRAP,[e]),a.Expression.toFunction(u.WRAP,[t])),n.deferred=!0;else{if(e.isZero()){if(t.isInf())throw new i.UndefinedError(r.ErrorMessages[o.Settings.LANGUAGE].infinityTimesZero);n=a.Expression.Number("0")}else if(e.isNUM()&&t.isNUM())n=a.Expression.fromRational(e.getMultiplier().times(t.getMultiplier()));else if(e.isComplex()&&t.isComplex()&&e.isSum()&&t.isSum()){const i=e.realPart(),r=t.realPart(),s=e.imagPart(),o=t.imagPart();n=i.times(r).minus(s.times(o)).plus(i.times(o).plus(s.times(r)).times(a.Expression.Img()))}else if(e.isNUM()&&!t.isInf())n=t.copy(),n.multiplier=e.getMultiplier().times(t.getMultiplier());else if((e.isInf()||e.isNUM())&&t.isInf()){if(n=a.Expression.Inf(),e.getMultiplier().times(t.getMultiplier()).isNegative())n=n.neg();else if(e.isZero()||t.isZero())throw new i.UndefinedError("Infinity times zero is undefined!")}else if(e.value===t.value){n=e.copy(),n.multiplier=n.getMultiplier().times(t.getMultiplier());const i=e.getPower().plus(t.getPower());n=i.isZero()?a.Expression.fromRational(n.getMultiplier()):a.Expression.setPower(n,i);const r=n.getPower();n.isI()?n=(0,s.simplifyImaginary)(n):n.isFunction(u.ABS)&&r.isEven()&&(n=n.getArguments()[0].pow(r).times(n.getMultiplier()))}else u.RANK[e.type]>u.RANK[t.type]&&(n=multiply(t,e));n=n||merge(e,t),n.isEXP()&&n.isLinear()&&(n=n.getBase().times(n.getMultiplier())),o.Settings.EVALUATE&&(n=n.distributeMultiplier())}return n}function combine(e,t,n,i){const r=a.Expression.Number("1");return r.elements={},r.elements[n]=e.copy(),r.elements[i]=t.copy(),[r,[e,t]]}function canMerge(e){return e.isProduct()&&e.isLinear()}function merge(e,t){let n,i=[];const r=a.Expression.TYPES.PRD;let s=canMerge(e),o=canMerge(t),u=!0,m=e.multiplier||t.multiplier?e.getMultiplier().times(t.getMultiplier()):void 0;if(m&&(e=new a.Expression(e),t=new a.Expression(t),e.multiplier=void 0,t.multiplier=void 0),e.elements&&!t.elements&&([t,e]=[e,t],[o,s]=[s,o]),o)if(!s&&o){const r=e.keyValue();n=new a.Expression(t);const s=n.getElements();let o;if(r in s)o=multiply(e,s[r]);else{let t;for(const e in s)if(s[e].isProduct()){t=s[e],delete s[e];break}o=t?multiply(e,t):new a.Expression(e)}o.isNUM()?(o.isOne()||(m=m?.times(o.getMultiplier())),delete s[r]):s[r]=o,i=Object.values(s)}else{n=new a.Expression(e),n.multiplier=e.getMultiplier().times(t.getMultiplier());const s=n.getElements(),o=t.getElements();for(const e in o){const t=o[e];if(e in s){const n=multiply(t,s[e]);r===a.Expression.TYPES.PRD&&n.isOne()?delete s[e]:s[e]=n}else s[e]=new a.Expression(t)}i=Object.values(s)}else{const r=e.type===a.Expression.TYPES.GRP?e.value:e.keyValue(),s=t.type===a.Expression.TYPES.GRP?t.value:t.keyValue(),o=e.isProduct()&&e.isLinear();if(o&&t.isProduct()&&t.getPower().isMinusOne()){let r=e,s=(0,l.one)();const o=e.getElements(),a=t.getElements();for(const e in a){const t=a[e];e in o?r=multiply(r,(0,c.power)(t,(0,l.minusOne)())):s=multiply(s,t)}[n,i]=combine(r,multiply((0,c.power)(s,(0,l.minusOne)()),e.getMultiplier(!0)),e.keyValue(),t.keyValue())}else if(o&&e.getElements()[s])n=function transfer(e,t,n){let i=e.getMultiplier(!0);const r=e.getElements();for(const e in r)e!==n&&(i=multiply(i,r[e]));const s=multiply(r[n],t);return multiply(i,s)}(e,t,s),u=!1;else{const o=e.getPower(),l=t.getPower();-1===o.sign()&&-1===l.sign()?(n=multiply(e.invert(),t.invert()),n=n.invert(),i=Object.values(n.getElements())):[n,i]=combine(new a.Expression(e),new a.Expression(t),r,s)}}if(u&&(n.type=r,n.value=a.Expression.getValue(i,"text",r)),m&&!m.isOne()&&(n.multiplier=m),n.isProduct()&&1===Object.keys(n.getElements()).length){const e=Object.values(n.getElements())[0];e.multiplier=e.getMultiplier().times(n.getMultiplier()),n=e}return n}},6528(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Dictionary=void 0;const i=n(8505),r=n(6441),s=n(4703),o=n(8300);class Dictionary extends i.StructuredEntity{_entries=new Map;dataType=o.DICTIONARY;isEnumerable=!0;precision;constructor(e){super(),e&&(this._entries=e)}static isDictionary(e){return(0,r.isNerdamerNativeType)(e,o.DICTIONARY)}__get__(e){const t="string"==typeof e?e:String(e[0]),n=this._entries.get(t);if(void 0===n)throw new s.UnexpectedDataType(`Key "${t}" not found in Dictionary. Available keys: ${this.keys().join(", ")}`);return n}__set__(e,t){const n="string"==typeof e?e:String(e[0]);this._entries.set(n,t)}copy(){const e=new Map;for(const[t,n]of this._entries)e.set(t,n.copy());return new Dictionary(e)}count(){return this._entries.size}delete(e){return this._entries.delete(e)}dimensions(){return[this._entries.size]}each(e){for(const[t,n]of this._entries){const i=e(n,t);void 0!==i&&this._entries.set(t,i)}return this}get elements(){return[...this._entries.values()]}set elements(e){const t=[...this._entries.keys()];this._entries.clear();for(let n=0;n<t.length&&n<e.length;n++)this._entries.set(t[n],e[n])}entries(){return[...this._entries.entries()]}eq(e){if(!Dictionary.isDictionary(e))return!1;if(this._entries.size!==e._entries.size)return!1;for(const[t,n]of this._entries){const i=e._entries.get(t);if(!i||!n.eq(i))return!1}return!0}evaluate(){return this.copy().each(e=>e.evaluate())}expand(){const e=this.copy();return e.each(e=>e.expand()),e}forEach(e){for(const[t,n]of this._entries)e(n,t)}get(e){return this._entries.get(e)}gt(e){return!1}gte(e){return this.eq(e)}has(e){return this._entries.has(e)}keys(){return[...this._entries.keys()]}lt(e){return!1}lte(e){return this.eq(e)}merge(e){for(const[t,n]of e._entries)this._entries.set(t,n);return this}set(e,t){return this._entries.set(e,t),this}[Symbol.iterator](){return this._entries[Symbol.iterator]()}text(){const e=[];for(const[t,n]of this._entries)e.push(`${t} => ${n.text()}`);return`{${e.join(", ")}}`}values(){return[...this._entries.values()]}}t.Dictionary=Dictionary},6541(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tableOfLimits=void 0;const i=n(2178);t.tableOfLimits=new i.LookupTable,t.tableOfLimits.addEntries({})},6584(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.simplifyTrigSum=function simplifyTrigSum(e){if(!e.isSum())return e;let t=function simplifyPythagorean(e){if(!e.isSum())return e;const t=[],n=[];for(const i of e.elementsArray()){const e=extractTrigSquared(i);e?t.push(e):n.push(i)}const i=t.some(e=>e.trigFn===s.SIN),a=t.some(e=>e.trigFn===s.COS);if(!i||!a)return e;const l=new Map;for(const e of t){const t=e.arg.text();let n=l.get(t);n||(n={sins:[],coss:[]},l.set(t,n)),e.trigFn===s.SIN?n.sins.push(e):n.coss.push(e)}const u=[...n];for(const[,e]of l){const{sins:t,coss:n}=e,i=new Set,s=new Set;for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)i.has(e)||s.has(r)||t[e].coeff.eq(n[r].coeff)&&(u.push(t[e].coeff),i.add(e),s.add(r));for(let e=0;e<t.length;e++)if(!i.has(e))for(let a=0;a<n.length;a++)if(!s.has(a)&&t[e].arg.eq(n[a].arg)){const l=t[e].coeff,c=n[a].coeff;let m,p,d;1===l.minus(c).sign()?(m=c,p=l,d=(0,o.sin)(t[e].arg).pow((0,r.two)())):(m=l,p=c,d=(0,o.cos)(n[a].arg).pow((0,r.two)()));const g=m.getDenominator(),h=m.times(g),x=p.minus(m).times(g),E=h.plus(x.times(d));u.push((0,r.one)().div(g).times(E)),i.add(e),s.add(a)}for(let e=0;e<t.length;e++)i.has(e)||u.push(t[e].original);for(let e=0;e<n.length;e++)s.has(e)||u.push(n[e].original)}if(1===u.length)return u[0];let c=(0,r.zero)();for(const e of u)c=c.plus(e);return c}(e);return t.isSum()&&(t=function simplifyDerivedPythagorean(e){if(!e.isSum())return e;const t=[],n=[];for(const i of e.elementsArray()){const e=extractDerivedTrigSquared(i);e?t.push(e):n.push(i)}if(t.length<2)return e;const i=new Map;for(const e of t){const t=e.arg.text();let n=i.get(t);n||(n={secs:[],tans:[],cscs:[],cots:[]},i.set(t,n)),e.trigFn===s.SEC?n.secs.push(e):e.trigFn===s.TAN?n.tans.push(e):e.trigFn===s.CSC?n.cscs.push(e):e.trigFn===s.COT&&n.cots.push(e)}const o=[...n];for(const[,e]of i){const{secs:t,tans:n,cscs:i,cots:r}=e,s=new Set,a=new Set,l=new Set,u=new Set;for(let e=0;e<t.length;e++)for(let i=0;i<n.length;i++){if(s.has(e)||a.has(i))continue;const r=t[e].coeff,l=n[i].coeff;r.eq(l.neg())&&(o.push(r),s.add(e),a.add(i))}for(let e=0;e<i.length;e++)for(let t=0;t<r.length;t++){if(l.has(e)||u.has(t))continue;const n=i[e].coeff,s=r[t].coeff;n.eq(s.neg())&&(o.push(n),l.add(e),u.add(t))}for(let e=0;e<t.length;e++)s.has(e)||o.push(t[e].original);for(let e=0;e<n.length;e++)a.has(e)||o.push(n[e].original);for(let e=0;e<i.length;e++)l.has(e)||o.push(i[e].original);for(let e=0;e<r.length;e++)u.has(e)||o.push(r[e].original)}if(1===o.length)return o[0];let a=(0,r.zero)();for(const e of o)a=a.plus(e);return a}(t)),t};const i=n(296),r=n(6099),s=n(8300),o=n(1649);function extractTrigSquared(e){if((e.isFunction(s.SIN)||e.isFunction(s.COS))&&e.getPower().eq((0,r.two)()))return{coeff:i.Expression.fromRational(e.getMultiplier()),trigFn:e.isFunction(s.SIN)?s.SIN:s.COS,arg:e.getArguments()[0],trigPower:e.getPower(),original:e};if(e.isProduct()){let t=null,n=null,o=(0,r.one)();const a=[];for(const l of e.elementsArray())!t&&(l.isFunction(s.SIN)||l.isFunction(s.COS))&&l.getPower().eq((0,r.two)())?(t=l,n=l.isFunction(s.SIN)?s.SIN:s.COS,o=i.Expression.fromRational(l.getMultiplier())):a.push(l);if(t&&n){let r=i.Expression.fromRational(e.getMultiplier());for(const e of a)r=r.times(e);return r=r.times(o),{coeff:r,trigFn:n,arg:t.getArguments()[0],trigPower:t.getPower(),original:e}}}return null}function extractDerivedTrigSquared(e){const t=[s.TAN,s.SEC,s.CSC,s.COT];for(const n of t)if(e.isFunction(n)&&e.getPower().eq((0,r.two)()))return{coeff:i.Expression.fromRational(e.getMultiplier()),trigFn:n,arg:e.getArguments()[0],trigPower:e.getPower(),original:e};if(e.isProduct()){let n=null,s=null,o=(0,r.one)();const a=[];for(const l of e.elementsArray())if(n)a.push(l);else{for(const e of t)if(l.isFunction(e)&&l.getPower().eq((0,r.two)())){n=l,s=e,o=i.Expression.fromRational(l.getMultiplier());break}n||a.push(l)}if(n&&s){let t=i.Expression.fromRational(e.getMultiplier());for(const e of a)t=t.times(e);return t=t.times(o),{coeff:t,trigFn:s,arg:n.getArguments()[0],trigPower:n.getPower(),original:e}}}return null}},6698(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.laplace=function laplace(e,t,n){let c;if(e=i.Expression.create(e).expand(),n=(0,o.assertPlainVariableAndGetString)(i.Expression.create(n)),t=(0,o.assertPlainVariableAndGetString)(i.Expression.create(t)),e.isSum()&&e.isLinear()){const i=e.elementsArray();c=(0,s.zero)();for(const e of i){const i=laplace(e,t,n);if(i.isFunction(a.LAPLACE)){c=void 0;break}c=c.plus(i)}if(c)return c}if(e.isProduct()){const{constants:i,expression:s}=(0,r.constantsFreeProduct)(e,t);if(!i.isOne()){const e=laplace(s,t,n);if(!e.isFunction(a.LAPLACE))return i.times(e)}}const m=e.isProduct()?e.elementsArray():[e];for(let e=0;e<m.length;e++){const r=m[e];if(!r.isEXP())continue;const o=r.getBase(),l=r.getPower();if(o.hasVariable(t)||!l.isPolynomialLike())continue;const u=l.coeffs(t).toArray();if(2!==u.length||!u[0].isZero())continue;const c=u[1];if(-1!==c.sign())continue;let p=(0,s.one)();for(let t=0;t<m.length;t++)t!==e&&(p=p.times(m[t]));const d=laplace(p,t,n);if(!d.isFunction(a.LAPLACE)){const e=o.isE()?(0,s.one)():i.Expression.toFunction(a.LOG,[o]),t=i.Expression.Variable(n).minus(c.copy().times(e));return d.subst(n,t)}}return c=u.tableOfTransforms.lookup(new l.Pattern(e,[t]),0),c?("s"!==n&&(c=c.evaluate({s:n})),c):i.Expression.toFunction(a.LAPLACE,[e,t,n])};const i=n(296),r=n(542),s=n(6099),o=n(1897),a=n(8300),l=n(2292),u=n(7052)},6746(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MathematicalAggregate=void 0;const i=n(8505);class MathematicalAggregate extends i.StructuredEntity{__get__(e){const t=e[0];if(t<0||t>=this.elements.length)throw new RangeError(`Index ${t} out of bounds for ${this.dataType} of length ${this.elements.length}`);return this.elements[t]}__set__(e,t){const n=e[0];if(n<0||n>=this.elements.length)throw new RangeError(`Index ${n} out of bounds for ${this.dataType} of length ${this.elements.length}`);this.elements[n]=t}clear(){return this.elements.length=0,this}count(){return this.elements.length}dimensions(){return[this.elements.length]}each(e){for(let t=0;t<this.elements.length;t++){const n=e(this.elements[t],t);void 0!==n&&(this.elements[t]=n)}return this}eq(e){if(!this.dimensionsMatch(e))return!1;const t=e.elements;for(let e=0;e<this.elements.length;e++)if(!this.elements[e].eq(t[e]))return!1;return!0}forEach(e){const t=this.elements;for(let n=0;n<t.length;n++)e(t[n],n)}gt(e){if(!this.dimensionsMatch(e))return!1;const t=e.elements;for(let e=0;e<this.elements.length;e++)if(!this.elements[e].gt(t[e]))return!1;return!0}gte(e){return this.gt(e)||this.eq(e)}lt(e){if(!this.dimensionsMatch(e))return!1;const t=e.elements;for(let e=0;e<this.elements.length;e++)if(!this.elements[e].lt(t[e]))return!1;return!0}lte(e){return this.lt(e)||this.eq(e)}sort(e){return e?(this.elements.sort(e),this):(this.elements.sort((e,t)=>{const n=e&&"function"==typeof e.text?e.text():String(e),i=t&&"function"==typeof t.text?t.text():String(t);return n<i?-1:n>i?1:0}),this)}[Symbol.iterator](){return this.elements[Symbol.iterator]()}toArray(){return[...this.elements]}}t.MathematicalAggregate=MathematicalAggregate},6808(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.simplifyFactorials=function simplifyFactorials(e){if(!e.isProduct())return e;const{factorials:t,rest:n}=function extractFactorials(e){const t=[],n=[];if(!e.isProduct())return e.isFunction(s.FACTORIAL)?(t.push({arg:e.getArguments()[0],power:e.getPower(),multiplier:i.Expression.fromRational(e.getMultiplier()),index:0}),{factorials:t,rest:n}):{factorials:[],rest:[e]};let r=0;for(const o of e.elementsArray())o.isFunction(s.FACTORIAL)?t.push({arg:o.getArguments()[0],power:o.getPower(),multiplier:i.Expression.fromRational(o.getMultiplier()),index:r}):n.push(o),r++;return{factorials:t,rest:n}}(e);if(t.length<2)return e;const r=[],o=[];for(const e of t)if(1===e.power.sign()&&e.power.isOne())r.push(e);else if(-1===e.power.sign()){const t=e.power.getMultiplier();-1n!==t.numerator||1n!==t.denominator&&-1n!==t.denominator?n.push(e.multiplier.times(i.Expression.toFunction(s.FACTORIAL,[e.arg]).pow(e.power))):o.push(e)}else n.push(e.multiplier.times(i.Expression.toFunction(s.FACTORIAL,[e.arg]).pow(e.power)));const a=new Set,l=new Set,u=[];for(let e=0;e<r.length;e++)if(!a.has(e))for(let t=0;t<o.length;t++){if(l.has(t))continue;const n=r[e],i=o[t],s=diffFactorialArgs(n.arg,i.arg);if(null!==s&&0!==s){if(s<0){const e=consecutiveProduct(n.arg,-s);u.push(n.multiplier.times(i.multiplier).times(e.invert()))}else{const e=consecutiveProduct(i.arg,s);u.push(n.multiplier.times(i.multiplier).times(e))}a.add(e),l.add(t);break}if(0===s){u.push(n.multiplier.times(i.multiplier)),a.add(e),l.add(t);break}}let c=i.Expression.fromRational(e.getMultiplier());for(let e=0;e<r.length;e++)if(!a.has(e)){const t=r[e];c=c.times(t.multiplier.times(i.Expression.toFunction(s.FACTORIAL,[t.arg])))}for(let e=0;e<o.length;e++)if(!l.has(e)){const t=o[e];c=c.times(t.multiplier.times(i.Expression.toFunction(s.FACTORIAL,[t.arg]).invert()))}for(const e of u)c=c.times(e);for(const e of n)c=c.times(e);return c},t.simplifyLogs=function simplifyLogs(e){if(!e.isSum())return e;const t=i.Expression.fromRational(e.getMultiplier()),n=e.getPower(),s=[],a=[];for(const t of e.elementsArray()){const e=extractLogTerm(t);e?s.push(e):a.push(t)}const l=s.filter(e=>!e.arg.isComplex()&&e.arg.gt(0));if(0===l.length)return e;const u=s.filter(e=>!l.includes(e)).map(e=>e.original),c=[...a,...u],m=l.filter(e=>e.coeff.isNUM()),p=l.filter(e=>!e.coeff.isNUM());if(1===m.length&&0===p.length){const r=m[0];if(shouldLiftCoefficient(r.coeff,!1)){const e=liftCoefficientIntoPower(r.arg,r.coeff);let s=i.Expression.toFunction(o.LOG,[e]);for(const e of c)s=s.plus(e);return applyOuterMultiplierAndPower(s,t,n)}return e}if(m.length>=2){const s=function combineNumericLogTerms(e,t,n){const s=function findCommonCoeffFactor(e){if(e.length<2)return null;const t=e.map(e=>e.coeff.getMultiplier());let n=t[0].numerator<0n?-t[0].numerator:t[0].numerator,r=t[0].denominator<0n?-t[0].denominator:t[0].denominator;for(let e=1;e<t.length;e++){const i=t[e].numerator<0n?-t[e].numerator:t[e].numerator,s=t[e].denominator<0n?-t[e].denominator:t[e].denominator;n=bigintGCD(n,i),r=bigintLCM(r,s)}if(0n===n)return null;if(1n===n&&1n===r)return null;const s=`${n}/${r}`,o=i.Expression.create(s);let a=!1;for(const t of e)if(t.coeff.div(o).abs().isOne()){a=!0;break}return a||e.every(e=>{const t=e.coeff.div(o).getMultiplier();return 1n===t.denominator||-1n===t.denominator})?o:null}(e);if(s&&!s.isOne()){let n=(0,r.one)();for(const t of e){const e=t.coeff.div(s),i=e.sign(),r=e.abs();let o=t.arg;r.isOne()||(o=liftCoefficientIntoPower(t.arg,e)),n=i>=0?n.times(o):n.times(o.invert())}const a=i.Expression.toFunction(o.LOG,[n]),l=[...t,s.times(a)];if(1===l.length)return l[0];let u=(0,r.zero)();for(const e of l)u=u.plus(e);return u}let a=(0,r.one)();for(const t of e){const e=t.coeff.sign(),n=shouldLiftCoefficient(t.coeff,!0);let i=t.arg;n&&(i=liftCoefficientIntoPower(t.arg,t.coeff)),a=e>=0?a.times(i):a.times(i.invert())}const l=i.Expression.toFunction(o.LOG,[a]),u=[...t,l];if(1===u.length)return u[0];let c=(0,r.zero)();for(const e of u)c=c.plus(e);return c}(m,c);if(s!==e){let e=s;if(p.length>0)for(const t of p)e=e.plus(t.original);return applyOuterMultiplierAndPower(e,t,n)}}if(p.length>=2){const s=[...c];for(const e of m)if(shouldLiftCoefficient(e.coeff,!1)){const t=liftCoefficientIntoPower(e.arg,e.coeff);s.push(i.Expression.toFunction(o.LOG,[t]))}else s.push(e.original);const a=function combineSymbolicLogTerms(e,t,n){const s=new Map;for(const t of e){const e=t.coeff.abs().text(),n=s.get(e);n?n.push(t):s.set(e,[t])}const a=[...t];let l=!1;for(const[,e]of s){if(e.length<2){for(const t of e)a.push(t.original);continue}l=!0;const t=e.filter(e=>e.coeff.sign()>=0),n=e.filter(e=>e.coeff.sign()<0);let s=(0,r.one)();for(const e of t)s=s.times(e.arg);for(const e of n)s=s.times(e.arg.invert());const u=t.length>0?t[0].coeff:n[0].coeff.neg(),c=i.Expression.toFunction(o.LOG,[s]);a.push(u.times(c))}if(!l)return n;if(1===a.length)return a[0];let u=(0,r.zero)();for(const e of a)u=u.plus(e);return u}(p,s,e);if(a!==e)return applyOuterMultiplierAndPower(a,t,n)}return e};const i=n(296),r=n(6099),s=n(8300),o=n(8300);function diffFactorialArgs(e,t){const n=e.minus(t);if(!n.isNUM())return null;const i=n.getMultiplier();if(!i.isInteger())return null;const r=Number(i.numerator);return Math.abs(r)>100?null:r}function consecutiveProduct(e,t){if(0===t)return(0,r.one)();let n=(0,r.one)();if(t>0)for(let r=1;r<=t;r++)n=n.times(e.plus(i.Expression.Number(r)));else{const r=-t;for(let t=0;t<r;t++)n=n.times(e.minus(i.Expression.Number(t)))}return n}function extractLogTerm(e){if(e.isFunction(o.LOG)&&e.isLinear()){const t=e.getArguments();return 0===t.length?null:{coeff:i.Expression.fromRational(e.getMultiplier()),arg:t[0],original:e}}if(e.isProduct()){let t=null,n=(0,r.one)();const s=[];for(const r of e.elementsArray())!t&&r.isFunction(o.LOG)&&r.isLinear()?(t=r,n=i.Expression.fromRational(r.getMultiplier())):s.push(r);if(t){let r=i.Expression.fromRational(e.getMultiplier());for(const e of s)r=r.times(e);return r=r.times(n),{coeff:r,arg:t.getArguments()[0],original:e}}}return null}function shouldLiftCoefficient(e,t){if(!e.isNUM())return!1;const n=e.getMultiplier();return!n.abs().isOne()&&(!(1n!==n.denominator&&-1n!==n.denominator)||t)}function liftCoefficientIntoPower(e,t){const n=t.abs();return e.pow(n)}function applyOuterMultiplierAndPower(e,t,n){return n.isOne()||(e=e.pow(n)),t.isOne()||(e=e.times(t)),e}function bigintGCD(e,t){for(e=e<0n?-e:e,t=t<0n?-t:t;t>0n;)[e,t]=[t,e%t];return e}function bigintLCM(e,t){return t=t<0n?-t:t,0n===(e=e<0n?-e:e)||0n===t?0n:e/bigintGCD(e,t)*t}},6827(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.polynomialize=function polynomialize(e,t,n){t??={};let s=(0,r.simplify)(e);[s,t]=(0,i.uSubFN)(s,t),[s,t]=(0,i.uSubEXP)(s,t),[s,t]=(0,i.uSubConstants)(s,t);const o=s.getNumerator(),a=s.getDenominator();return{numerator:n?n(o,t):o,denominator:n?n(a,t):a,map:t}};const i=n(886),r=n(9684)},6910(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.subtract=function subtract(e,t){let n;if(i.Settings.DEFER_SIMPLIFICATION)n=(0,s.add)(e,t.neg()),n.deferred=!0;else if(n=e.isNUM()&&t.isNUM()?r.Expression.fromRational(e.getMultiplier().minus(t.getMultiplier())):!e.isInf()&&t.isInf()?r.Expression.Inf().neg():(0,s.add)(e,t.neg()),!n)throw new Error(`Subtraction not defined for ${e.type}-${t.type} | ${e}-${t}`);return n},t.subtractPrefix=function subtractPrefix(e){return e.neg()};const i=n(5817),r=n(296),s=n(6255)},6913(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deg=function deg(e,t){let n,r,a;void 0!==t&&(n=i.Expression.create(t),r=(0,s.assertPlainVariableAndGetString)(n));try{const t=l.Polynomial.isPolynomial(e)?e:new l.Polynomial(e);a=i.Expression.create(t.deg(r))}catch{}const u=l.Polynomial.isPolynomial(e)?e.getExpression():e,c=void 0===n?[u]:[u,n];return a??i.Expression.toFunction(o.DEG,c)},t.content=function content(e){let t;try{const n=l.Polynomial.isPolynomial(e)?e:new l.Polynomial(e);t=i.Expression.create(n.content())}catch{}return t??i.Expression.toFunction(o.CONTENT,[l.Polynomial.isPolynomial(e)?e.getExpression():e])},t.div=function div(e,t){const n=i.Expression.create(e),s=i.Expression.create(t);let o;if(n.isPolynomialLike()&&s.isPolynomialLike()){const[e,t]=(0,u.divide)(n,s);o=new a.Vector([e,t])}else o=new a.Vector([(0,r.zero)(),n]);return o},t.divide=function divide(e,t){const n=i.Expression.create(e),r=i.Expression.create(t);let s;if(n.isPolynomialLike()&&r.isPolynomialLike()){const[e,t]=(0,u.divide)(n,r);s=e.plus(t.div(r))}else s=n.div(r);return s};const i=n(296),r=n(6099),s=n(1897),o=n(8300),a=n(3982),l=n(2116),u=n(9565)},6925(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.trunc=function trunc(e){let t;if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())t=e.isNegInf()?i.Expression.NegInf():i.Expression.Inf();else if(e.isNUM()){const n=e.getMultiplier();t=i.Expression.Number(n.numerator/n.denominator)}else t=i.Expression.toFunction(r.TRUNC,[e]);return t};const i=n(296),r=n(8300)},6950(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.solveSystem=function solveSystem(e,t){const n=function normalizeEquations(e){if(h.Vector.isVector(e)){const t=[];for(let n=0;n<e.count();n++)t.push(toExpression(e.__get__([n])));return t}return e.map(e=>toExpression(e))}(e);if(0===n.length)return new h.Vector([new o.Dictionary]);const a=t??(0,u.collectVariablesSet)(n);if(0===a.length)return n.every(e=>e.isZero())?new h.Vector([new o.Dictionary]):new h.Vector([]);const c=[],p=[];let d=!1;for(const e of n){let t=e;if(!e.isPolynomialLike()){const n=(0,s.toCommonDenominator)(e),i=n.getNumerator().expand(),r=n.getDenominator().expand();!r.isOne()&&i.isPolynomialLike()&&r.isPolynomialLike()&&(t=i,p.push(r),d=!0)}c.push(t)}try{const e=(0,y.solveLinearSystem)(c,a);if("inconsistent"===e.type)return new h.Vector([]);if("infinite"!==e.type){const t=new o.Dictionary,i=new Map;for(const n of a)if(n in e.solutions){const r=e.solutions[n];t.set(n,r),i.set(n,r)}return!d||isSystemSolution(n,p,i)?new h.Vector([t]):new h.Vector([])}if(!d){const t=new o.Dictionary;for(const n of a)n in e.solutions&&t.set(n,e.solutions[n]);return new h.Vector([t])}}catch(e){if(!(e instanceof Error&&e.message.includes("Nonlinear term detected")))throw e}if(c.every(e=>e.isPolynomialLike()))try{const e=c.map(e=>{const t=(0,l.normalizeMultiplierDenominators)(e);return(0,i.polynomialToMultiPoly)(new g.Polynomial(t,a),a).poly}),t=(0,r.Groebner)(e,a,"LEX",!0);if(1===t.length&&t[0].isConstant()&&0n!==t[0].constantTerm())return new h.Vector([]);let s=function symbolicBackSubstitution(e,t){let n=[{assignment:new Map,basis:e}];for(let e=t.length-1;e>=0;e--){const i=t[e],r=new Set(t.slice(0,e)),s=[];for(const{assignment:e,basis:t}of n){const n=t.filter(e=>{if(e.isZero())return!1;const t=e.variables();if(!t.includes(i))return!1;for(const e of t)if(r.has(e))return!1;return!0});if(0===n.length){s.push({assignment:new Map(e),basis:t});continue}const o=(0,v.solve)(n[0],i).elements;for(const a of o){let o=!0;for(let e=1;e<n.length;e++){const t=n[e].subst(i,a);if(t.isConstant()&&!t.isNearlyZero()){o=!1;break}}if(!o)continue;const l=t.map(e=>{if(!e.hasVariable(i))return e;const t=e.variables();return t.some(e=>r.has(e))||1!==t.length||t[0]!==i?e.subst(i,a):(0,m.zero)()}),u=new Map(e);u.set(i,a),s.push({assignment:u,basis:l})}}n=s}return n.map(e=>e.assignment)}(t.map(e=>(0,i.multiPolyToExpression)(e,a)),a);if(d&&(s=s.filter(e=>isSystemSolution(n,p,e))),s.length>0)return new h.Vector(solutionsToDictionaries(s,a))}catch{}if(n.length<a.length)throw new x.UnsupportedOperationError((0,x.message)("solveSystemInfiniteSolutions"));const P=new E.MultivariateSolver(n,a).roots();return 0===P.length?new h.Vector([]):new h.Vector(solutionsToDictionaries(P,a))};const i=n(1339),r=n(6431),s=n(8989),o=n(6528),a=n(6184),l=n(6056),u=n(6338),c=n(296),m=n(6099),p=n(8300),d=n(238),g=n(2116),h=n(3982),x=n(4703),E=n(1683),y=n(1280),v=n(2295);function toExpression(e){if(a.Equation.isEquation(e))return e.toLHS().LHS;if(c.Expression.isExpression(e))return e;const t=d.Parser.parse(String(e));if(a.Equation.isEquation(t))return t.toLHS().LHS;if(c.Expression.isExpression(t))return t;throw new x.UnexpectedInputError((0,x.message)("expressionExpected",{type:p.dataTypes[t.dataType]}))}function solutionsToDictionaries(e,t){const n=[];for(const i of e){if(i.size!==t.length)throw new x.UnsupportedOperationError((0,x.message)("solveSystemInfiniteSolutions"));const e=new o.Dictionary;for(const n of t){const t=i.get(n);if(!t)throw new x.UnsupportedOperationError((0,x.message)("solveSystemInfiniteSolutions"));e.set(n,t)}n.push(e)}return n}function isSystemSolution(e,t,n){const i={};for(const[e,t]of n)i[e]=t;let r=!0;try{for(const e of t){const t=e.evaluate(i);if(!t.isConstant()||t.isZero()){r=!1;break}}if(r)for(const t of e){const e=t.evaluate(i);if(!e.isConstant()||!e.isNearlyZero()){r=!1;break}}}catch{r=!1}return r}},7052(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tableOfTransforms=void 0;const i=n(2178),r=n(2012),s={a1:(e,t)=>e.fromPattern("a1/s"),"a1*x1^n1":e=>{const{n1:t}=e.references;if(!t.isNegative()||!t.plus(1).isInteger())return e.fromPattern("a1*gamma(n1+1)/s^(n1+1)")},"a1*(a2)^(a3*x1^n1)":e=>{if(e.get("n1").isOne())return e.fromPattern("a1/(s-log(a2)*a3)")},"a1*sin(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*a2)/(s^2+a2^2)")},"a1*cos(a2*x1^n1)^n2":e=>{if(e.get("n1").isOne()&&e.get("n2").isOne())return e.fromPattern("(a1*s)/(s^2+a2^2)")},"a1*(a2)^(a3*x1^n1)*x1^n2":e=>{const{n1:t,n2:n}=e.references;if(t.isOne()&&(!n.isNegative()||!n.plus(1).isInteger()))return e.fromPattern("a1*gamma(n2+1)/(s-log(a2)*a3)^(n2+1)")},"a1*x1^n1*sin(a2*x1^n2)^n3":e=>{const{_a1:t,n1:n,n2:i,n3:s,_a2:o}=e.references;if(!i.isOne()||!s.isOne())return;if(!n.isInteger()||n.isNegative())return;const a=Number(n.getMultiplier().numerator);let l=e.fromPattern("(a1*a2)/(s^2+a2^2)");for(let e=0;e<a;e++)l=(0,r.diff)(l,"s").neg();return l},"a1*x1^n1*cos(a2*x1^n2)^n3":e=>{const{_a1:t,n1:n,n2:i,n3:s,_a2:o}=e.references;if(!i.isOne()||!s.isOne())return;if(!n.isInteger()||n.isNegative())return;const a=Number(n.getMultiplier().numerator);let l=e.fromPattern("(a1*s)/(s^2+a2^2)");for(let e=0;e<a;e++)l=(0,r.diff)(l,"s").neg();return l},"a1*(a2)^(a3*x1^n1)*sin(a4*x1^n2)^n3":e=>{const{n1:t,n2:n,n3:i}=e.references;if(t.isOne()&&n.isOne()&&i.isOne())return e.fromPattern("(a1*a4)/((s-log(a2)*a3)^2+a4^2)")},"a1*(a2)^(a3*x1^n1)*cos(a4*x1^n2)^n3":e=>{const{n1:t,n2:n,n3:i}=e.references;if(t.isOne()&&n.isOne()&&i.isOne())return e.fromPattern("a1*(s-log(a2)*a3)/((s-log(a2)*a3)^2+a4^2)")},"a1*cos(a2*x1^n1)^n2*sin(a3*x1^n3)^n4":e=>{const{_a1:t,a2:n,a3:i,n1:r,n2:s,n3:o,n4:a}=e.references;if(r.isOne()&&s.isOne()&&o.isOne()&&a.isOne()&&n.eq(i))return e.fromPattern("(a1*a2)/(s^2+4*a2^2)")},"a1*(a2)^(a3*x1^n1)*x1^n2*sin(a4*x1^n3)^n4":e=>{const{n1:t,n2:n,n3:i,n4:r}=e.references;if(t.isOne()&&n.isOne()&&i.isOne()&&r.isOne())return e.fromPattern("(2*a1*a4*(s-a3*log(a2)))/((a4^2+(s-a3*log(a2))^2)^2)")},"a1*(a2)^(a3*x1^n1)*x1^n2*cos(a4*x1^n3)^n4":e=>{const{n1:t,n2:n,n3:i,n4:r}=e.references;if(t.isOne()&&n.isOne()&&i.isOne()&&r.isOne())return e.fromPattern("(a1*((s-a3*log(a2))^2-a4^2))/((a4^2+(s-a3*log(a2))^2)^2)")},"a1*(a2)^(a3*x1^n1)*(a4*sin(a5*x1^n2)^n3-a6*x1^n4*cos(a7*x1^n5)^n6)^n7":e=>{const{n1:t,n2:n,n3:i,n4:r,n5:s,n6:o,n7:a,a5:l,a7:u}=e.references;if(t.isOne()&&n.isOne()&&i.isOne()&&r.isOne()&&s.isOne()&&o.isOne()&&a.isOne()&&l.eq(u))return e.fromPattern("(a1*(a4*a5^2-a6*((s-a3*log(a2))^2-a5^2)))/(((s-a3*log(a2))^2+a5^2)^2)")},"a1*(a2)^(a3*x1^n1)*(a4*sin(a5*x1^n2)^n3+a6*x1^n4*cos(a7*x1^n5)^n6)^n7":e=>{const{n1:t,n2:n,n3:i,n4:r,n5:s,n6:o,n7:a,a5:l,a7:u}=e.references;if(t.isOne()&&n.isOne()&&i.isOne()&&r.isOne()&&s.isOne()&&o.isOne()&&a.isOne()&&l.eq(u))return e.fromPattern("(a1*(a4*a5^2+a6*((s-a3*log(a2))^2-a5^2)))/(((s-a3*log(a2))^2+a5^2)^2)")},"a1*(a2)^(a3*x1^n1)*sinh(a4*x1^n2)^n3":e=>{const{n1:t,n2:n,n3:i}=e.references;if(t.isOne()&&n.isOne()&&i.isOne())return e.fromPattern("(a1*a4)/((s-a3*log(a2))^2-a4^2)")},"a1*(a2)^(a3*x1^n1)*cosh(a4*x1^n2)^n3":e=>{const{n1:t,n2:n,n3:i}=e.references;if(t.isOne()&&n.isOne()&&i.isOne())return e.fromPattern("(a1*(s-a3*log(a2)))/((s-a3*log(a2))^2-a4^2)")},"a1*(a2)^(a3*x1^n1)*x1^n2*sinh(a4*x1^n3)^n4":e=>{const{n1:t,n2:n,n3:i,n4:r}=e.references;if(t.isOne()&&n.isOne()&&i.isOne()&&r.isOne())return e.fromPattern("(2*a1*a4*(s-a3*log(a2)))/(((s-a3*log(a2))^2-a4^2)^2)")},"a1*(a2)^(a3*x1^n1)*x1^n2*cosh(a4*x1^n3)^n4":e=>{const{n1:t,n2:n,n3:i,n4:r}=e.references;if(t.isOne()&&n.isOne()&&i.isOne()&&r.isOne())return e.fromPattern("(a1*((s-a3*log(a2))^2+a4^2))/(((s-a3*log(a2))^2-a4^2)^2)")}};t.tableOfTransforms=new i.LookupTable,t.tableOfTransforms.addEntries(s)},7056(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.scopedBlock=void 0,t.evaluate=function evaluate(e,t){return s.Parser.evaluate(e,t)},t.inert=function inert(e){return(0,i.scopedBlock)("EVALUATE",!1,()=>(0,i.scopedBlock)("SUBSTITUTE",!1,()=>s.Parser.parse(e)))},t._=function _(e){return r.Expression.create(e)},t.isStructuredEntity=function isStructuredEntity(e){return void 0!==e&&e.isEnumerable};const i=n(5817);Object.defineProperty(t,"scopedBlock",{enumerable:!0,get:function(){return i.scopedBlock}});const r=n(296),s=n(238)},7103(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.scientificToDecimal=function scientificToDecimal(e){let t;[t,e]=function stripSign(e){const t="-"===e.charAt(0);return(t||"+"===e.charAt(0))&&(e=e.substring(1)),[t,e]}(e);const[n,i]=e.toLowerCase().split("e");let[r,s]=n.split(".");s=s||"";const o=r.length+(s?s.length:0),a=r+s,l=r.length+Number(i),u=l===o?"":".";let c;return c=l<=0?`0${u}${"0".repeat(Math.abs(l))}${a}`:l>o?`${a}${"0".repeat(Math.abs(l-o))}`:`${a.substring(0,l)}${u}${a.substring(l)}`,t?"-"+c:c},t.decimalSplit=function decimalSplit(e){const t=e.split(".");if(t.length>2)throw new SyntaxError(`Invalid decimal value: ${e}`);return 1===t.length&&t.push(""),t},t.format=function format(e,t){const replace=function(e,t,n){return e.replace(new RegExp(`{{${t}}}`,"g"),n)};if(Array.isArray(t))for(let n=0;n<t.length;n++)e=replace(e,String(n),t[n]);else for(const n in t)e=replace(e,n,t[n]);return e}},7130(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Converter=void 0;const i=n(6528),r=n(296),s=n(6099),o=n(4462),a=n(8300),l=n(238),u=n(12),c=n(5598),m=n(3982),p=n(2809),d=n(9426),g=n(5190),{TeX:h,TEXT:x}=g.BaseConverter.modes;class Converter extends g.BaseConverter{static TEX_FUNCTION_MAP={acos:"arccos",asin:"arcsin",atan:"arctan",asec:"operatorname{arcsec}",acsc:"operatorname{arccsc}",acot:"operatorname{arccot}",acosh:"operatorname{arcosh}",asinh:"operatorname{arsinh}",atanh:"operatorname{artanh}",asech:"operatorname{arsech}",acsch:"operatorname{arcsch}",acoth:"operatorname{arcoth}",sech:"operatorname{sech}",csch:"operatorname{csch}",coth:"operatorname{coth}",realpart:"Re",imagpart:"Im",sign:"operatorname{sgn}",sinc:"operatorname{sinc}",erf:"operatorname{erf}",erfc:"operatorname{erfc}",determinant:"det"};static TEX_REVERSE_MAP={arccos:"acos",arcsin:"asin",arctan:"atan",arcsec:"asec",arccsc:"acsc",arccot:"acot",arcosh:"acosh",arsinh:"asinh",artanh:"atanh",arsech:"asech",arcsch:"acsch",arcoth:"acoth",det:"determinant",deg:a.DEG,sgn:"sign",operatorname:"",Gamma:"gamma",delta:a.DIRAC,Re:"realpart",Im:"imagpart"};constructor(e){super(),e&&this.setMode(e)}static clearOnes(e,t){for(let n=0;n<2;n++)t[n]&&1===Number(e[n])&&(e[n]="");return[e,t]}static wrapRoot(e,t){return"2"===t?`\\sqrt{${e}}`:`\\sqrt[${t}]{${e}}`}finalizePowerAndInput(e,t,n){if(!n?.convertRoots)return[e,t];const i=e.getNumerator(),r=e.getDenominator();if(i.isOne()&&!e.isOne()){if(this.mode===g.BaseConverter.modes.TEXT&&r.eq((0,s.two)()))return[(0,s.one)(),g.BaseConverter.convertSQRT(t)];if(this.mode===g.BaseConverter.modes.TeX)return[(0,s.one)(),g.BaseConverter.convertNtRoot(t,r)]}return[e,t]}functionString(e,t){const n=this.getFunctionName(e.name||""),i=e.getArguments(),r=i.map(e=>this.convert(e,t));return this.mode===x?`${n}(${r.join(",")})`:this.formatTeXFunction(e.name||"",n,r,i)}value(e,t,n,i){const r=["",""],s=t?1:0;if(e.isNUM())return r;if(e.isEXP())r[s]=this.handleExp(e,i);else if(e.isInf())r[s]="text"===this.mode?a.INFINITY[0]:"\\infty";else if(e.elements||e.args){if(e.isFunction())r[s]=this.functionString(e,i);else if(e.isSum())r[s]=this.handleSum(e,n,i);else if(e.isProduct())return this.handleProduct(e,t,i)}else r[s]=this.formatVariable(e.value);return r}convertSourceRPN(e,t){const n=[];for(let i=0;i<e.length;i++){const s=e[i];if(p.Scope.isScope(s)){const e=this.convertSourceRPN(s,t),i=e.args?e.args.map(e=>e.text).join(","):e.text,r=e.args?e.args.map(e=>e.source).join(","):e.source;let o=i,a=r;switch(s.type){case"parenthesis":o=this.inBrackets(i),a=`(${r})`;break;case"square":o=this.inBrackets(i,"square"),a=`[${r}]`;break;case"curly":o=this.inBrackets(i,"brace"),a=`{${r}}`;break;case"pipe":o=this.inBrackets(i,"abs"),a=`|${r}|`}n.push({text:o,source:a})}else if(s.type===u.Token.FUNCTION){const o=e[++i];if(!p.Scope.isScope(o))throw new Error(`Missing argument scope for function ${s.value}`);let u=[];if(o.length>0){const e=d.mathFunctionRegistry[s.value]?.deferArguments?l.Parser.toRPN(o):o,n=this.convertSourceRPN(e,t);u=n.args??[n]}const c=u.map(e=>e.text),m=u.map((e,t)=>r.Expression.create(`zzsourcearg${t}`)),g=this.getFunctionName(s.value);let h;if(s.value===r.Expression.LOG&&2===u.length){const e=this.formatTeXFunction(r.Expression.LOG,g,[c[0]],[m[0]]),t=this.formatTeXFunction(r.Expression.LOG,g,[c[1]],[m[1]]);h=this.toFraction(e,t)}else h="sqrt"===s.value&&1===u.length?Converter.wrapRoot(c[0],"2"):1!==u.length||s.value!==a.FACTORIAL&&"factorial"!==s.value&&s.value!==a.DOUBLE_FACTORIAL?this.formatTeXFunction(s.value,g,c,m):this.formatTeXFunction(s.value,g,c,[r.Expression.create(u[0].source)]);n.push({text:h,source:`${s.value}(${u.map(e=>e.source).join(",")})`})}else if(s.type===u.Token.PREFIX){const e=n.pop();if(!e)throw new Error(`Missing operand for prefix operator ${s.value}`);n.push({text:s.value+e.text,source:s.value+e.source})}else if(s.type===u.Token.OPERATOR){const e=s.resolvedOperator??l.Parser.getOperator(s.value),i=n.pop();if(!e||!i)throw new Error(`Missing operand or metadata for operator ${s.value}`);if(e.isPostfix){const e="%"===s.value?"\\%":s.value;n.push({text:i.text+e,source:i.source+s.value});continue}const o=n.pop();if(!o)throw new Error(`Missing left operand for operator ${s.value}`);if("comma"===e.action){const e=[...o.args??[o],...i.args??[i]];n.push({text:e.map(e=>e.text).join(","),source:e.map(e=>e.source).join(","),args:e});continue}let a;if("times"===e.action)a=o.text+(-1===s.position?"":this.getMultiplicationSymbol())+i.text;else if("div"===e.action)a=this.toFraction(o.text,i.text);else if("pow"===e.action){const e=r.Expression.create(i.source);if(-1===e.sign()){const n=e.signFree(),i=n.isOne()?o.text:o.text+"^"+this.inBraces(super.convert(n,t));a=this.toFraction("1",i)}else a=o.text+"^"+this.inBraces(i.text)}else a="mod"===e.action?this.formatTeXFunction("mod",this.getFunctionName("mod"),[o.text,i.text],[r.Expression.create("zzsourcearg0"),r.Expression.create("zzsourcearg1")]):"mapTo"===e.action?`${o.text} \\mapsto ${i.text}`:o.text+s.value+i.text;n.push({text:a,source:`(${o.source})${s.value}(${i.source})`})}else{let e=s.value;s.type===u.Token.VARIABLE&&(e=a.INFINITY.includes(s.value)?"\\infty":this.formatVariable(s.value)),n.push({text:e,source:s.value})}}if(1!==n.length)throw new Error("Unable to convert source expression to TeX");return n[0]}formatFactorial(e,t,n){return e.isLinear()&&(e.isSum()||e.isProduct())&&(t=this.inBrackets(t)),t+n}formatSumOrProduct(e,t){const[n,i,r,s]=t;return`${e}_{${this.inBraces(i)}=${this.inBraces(r)}}^${this.inBraces(s)} ${this.inBraces(n)}`}formatTeXFunction(e,t,n,i){const std=()=>t+this.inBrackets(n[0]),generic=()=>"\\operatorname"+this.inBraces(e.replace(/_/g,"\\_"))+this.inBrackets(n.join(","),"parens"),s={sqrt:std,abs:()=>this.inBrackets(n[0],"abs"),cbrt:()=>`\\sqrt[3]${this.inBraces(n[0])}`,max:()=>`\\max${this.inBrackets(n.join(","),"parens")}`,min:()=>`\\min${this.inBrackets(n.join(","),"parens")}`,round:()=>1===n.length?`\\left\\lfloor ${n[0]} \\right\\rceil`:generic(),mod:()=>`${n[0]} \\bmod ${n[1]}`,[a.FACTORIAL]:()=>this.formatFactorial(i[0],n[0],"!"),factorial:()=>this.formatFactorial(i[0],n[0],"!"),[a.DOUBLE_FACTORIAL]:()=>this.formatFactorial(i[0],n[0],"!!"),parens:()=>this.inBrackets(n[0],"parens"),cos:std,sin:std,tan:std,sec:std,csc:std,cot:std,acos:std,asin:std,atan:std,asec:std,acsc:std,acot:std,atan2:()=>t+this.inBrackets(n.join(","),"parens"),sinh:std,cosh:std,tanh:std,sech:std,csch:std,coth:std,acosh:std,asinh:std,atanh:std,asech:std,acsch:std,acoth:std,floor:()=>`\\left\\lfloor ${n[0]} \\right\\rfloor`,ceil:()=>`\\left\\lceil ${n[0]} \\right\\rceil`,ceiling:()=>`\\left\\lceil ${n[0]} \\right\\rceil`,[r.Expression.LOG]:()=>{const e=n[1],t=void 0===e?"":`_${this.inBraces(e)}`;return`\\mathrm${this.inBraces(r.Expression.LOG)}${t}${this.inBrackets(n[0])}`},[r.Expression.LOG10]:()=>`\\mathrm${this.inBraces(r.Expression.LOG)}_${this.inBraces("10")}${this.inBrackets(n[0])}`,exp:std,gamma:()=>`\\Gamma${this.inBrackets(n[0])}`,erf:std,erfc:std,sinc:std,Si:()=>`\\operatorname{Si}${this.inBrackets(n[0])}`,Shi:()=>`\\operatorname{Shi}${this.inBrackets(n[0])}`,Ci:()=>`\\operatorname{Ci}${this.inBrackets(n[0])}`,Chi:()=>`\\operatorname{Chi}${this.inBrackets(n[0])}`,Ei:()=>`\\operatorname{Ei}${this.inBrackets(n[0])}`,[a.LI]:()=>`\\operatorname{Li}${this.inBrackets(n[0])}`,[a.HEAVISIDE]:()=>`H${this.inBrackets(n[0])}`,[a.DIRAC]:()=>`\\delta${this.inBrackets(n[0])}`,dirac:()=>`\\delta${this.inBrackets(n[0])}`,sign:std,realpart:()=>`\\Re${this.inBrackets(n[0])}`,imagpart:()=>`\\Im${this.inBrackets(n[0])}`,arg:std,[a.CONJUGATE]:()=>`\\overline${this.inBraces(n[0])}`,determinant:std,[a.DEG]:std,limit:()=>`\\lim_${this.inBraces(n[1]+" \\to "+n[2])} ${n[0]}`,integrate:()=>2===n.length?`\\int ${n[0]}\\, d${n[1]}`:generic(),defint:()=>`\\int_${this.inBraces(n[1])}^${this.inBraces(n[2])} ${n[0]}\\, d${n[3]}`,diff:()=>{let e;return e=1===n.length?generic():3===n.length?`\\frac${this.inBraces("d^"+n[2])}${this.inBraces("d"+n[1]+"^"+n[2])} ${n[0]}`:`\\frac${this.inBraces("d")}${this.inBraces("d"+n[1])} ${n[0]}`,e},laplace:()=>`\\mathcal{L}_${this.inBraces(n[1]+" \\to "+n[2])}\\left\\{${n[0]}\\right\\}`,ilaplace:()=>`\\mathcal{L}^{-1}_${this.inBraces(n[1]+" \\to "+n[2])}\\left\\{${n[0]}\\right\\}`,partfrac:()=>`\\operatorname{partfrac}${this.inBrackets(n.join(","),"parens")}`,sum:()=>this.formatSumOrProduct("\\sum",n),product:()=>this.formatSumOrProduct("\\prod",n),nthroot:()=>"2"===n[1]?`\\sqrt${this.inBraces(n[0])}`:`\\sqrt[${n[1]}]${this.inBraces(n[0])}`,gcd:()=>t+this.inBrackets(n.join(","),"parens"),lcm:()=>`\\operatorname{lcm}${this.inBrackets(n.join(","),"parens")}`,[a.WRAP]:()=>n[0]}[e];return s?s():generic()}formatVariable(e){return this.formatSubscripts(e).split("_").map((e,t)=>(this.mode===g.BaseConverter.modes.TeX&&this.greek.includes(e)&&(e=`\\${e}`),t>0?this.inBraces(e):e)).join("_")}getFunctionName(e){return this.mode!==h?e:`\\${Converter.TEX_FUNCTION_MAP[e]||e}`}handleExp(e,t){const n=e.getBase();let i=this.convert(n,t);return n.isInteger()||n.isVAR()||(i=this.inBrackets(i)),i}handleProduct(e,t,n){const i=this.getMultiplicationSymbol(),r=[],s=[];for(let i of e.elementsArray()){i.isFunction(a.WRAP)&&(i=i.getArguments()[0]);const e=-1===i.getPower().sign(),o=(t?!e:e)?s:r;e&&(i=i.invert());let l=this.convert(i,n);i.isSum()&&i.isLinear()&&(l=this.inBrackets(l)),o.push(l)}return[r.join(i),s.join(i)]}handleSum(e,t,n){const i=e.elementsArray().map(e=>this.convert(e,n)).join("+");return e.isLinear()&&e.getMultiplier().isOne()&&!t?i:this.inBrackets(i,"parens")}parseTeXMatrix(e){const t=e.match(/^\\begin\{([pbBvV]?matrix)\}\s*([\s\S]*?)\s*\\end\{\1\}$/);let n;if(t){const e=t[2].split(/\\\\/).map(e=>e.trim()).filter(e=>e.length>0).map(e=>e.split("&").map(e=>r.Expression.create(this.fromTeX(e.trim()))));n=new o.Matrix(...e)}return n}parseTeXSetOrDictionary(e){const t=this.splitTeXTopLevel(e,","),n=t.map(e=>this.splitTeXTopLevel(e,"\\mapsto"));if(n.some(e=>2===e.length)){const e=new Map;for(const t of n)if(2===t.length){const n=t[0].trim(),i=this.fromTeX(t[1].trim());e.set(n,i)}return new i.Dictionary(e)}const r=new c.ValuesSet;for(const e of t)e.trim()&&r.add(this.fromTeX(e.trim()));return r}parseTeXVector(e){const t=e.match(/^\\left\s*\[([\s\S]*)\\right\s*\]$/)||e.match(/^\[([\s\S]*)\]$/);let n;if(t){const e=this.splitTeXTopLevel(t[1],",").map(e=>e.trim()).filter(e=>e.length>0).map(e=>this.fromTeX(e));n=new m.Vector(e)}return n}preprocessTeXClean(e){let t=e;t=t.replace(/\\frac\s*\{([^{}]+)\}\s*([a-zA-Z0-9.])/g,"\\frac{$1}{$2}"),t=t.replace(/\\frac\s*([a-zA-Z0-9.])\s*\{([^{}]+)\}/g,"\\frac{$1}{$2}"),t=t.replace(/\\frac\s*([a-zA-Z0-9.])\s*([a-zA-Z0-9.])/g,"\\frac{$1}{$2}"),t=t.replace(/(\d+)\s*\\frac\s*\{(\d+)\}\s*\{(\d+)\}/g,"($1+\\frac{$2}{$3})"),t=t.replace(/\\mathcal\s*\{L\}\s*\^\s*\{-1\}\s*_\s*\{([^{}]+?)\s*\\to\s*([^{}]+?)\}\s*(?:\\left\s*)?\\{(.+?)\\}\s*(?:\\right\s*)?/g,(e,t,n,i)=>`ilaplace(${i},${String(t).trim()},${String(n).trim()})`),t=t.replace(/\\mathcal\s*\{L\}\s*_\s*\{([^{}]+?)\s*\\to\s*([^{}]+?)\}\s*(?:\\left\s*)?\\{(.+?)\\}\s*(?:\\right\s*)?/g,(e,t,n,i)=>`laplace(${i},${String(t).trim()},${String(n).trim()})`),t=t.replace(/\\mathcal\s*\{L\}\s*\^\s*\{-1\}\s*(?:\\left\s*)?\\{(.+?)\\}\s*(?:\\right\s*)?/g,"ilaplace($1)"),t=t.replace(/\\mathcal\s*\{L\}\s*(?:\\left\s*)?\\{(.+?)\\}\s*(?:\\right\s*)?/g,"laplace($1)"),t=t.replace(/\\frac\s*\{d\^(\w+)\}\s*\{d(\w+)\^\1\}\s*(.+)/g,(e,t,n,i)=>`diff(${i},${n},${t})`),t=t.replace(/\\frac\s*\{d\}\s*\{d(\w+)\}\s*(.+)/g,(e,t,n)=>`diff(${n},${t})`),t=t.replace(/\\int\s*_\s*\{([^}]+)\}\s*\^\s*\{([^}]+)\}\s*(.+?)\\?,?\s*d(\w+)/g,(e,t,n,i,r)=>`defint(${i},${t},${n},${r})`),t=t.replace(/\\int\s+(.+?)\\?,?\s*d(\w+)/g,(e,t,n)=>`integrate(${t},${n})`),t=t.replace(/\\lim\s*_\s*\{(\w+)\s*\\to\s*([^}]+)\}\s*(.+)/g,(e,t,n,i)=>`limit(${i},${t},${n})`),t=t.replace(/\\sum\s*_\s*\{(\w+)=([^}]+)\}\s*\^\s*\{([^}]+)\}\s*(.+)/g,(e,t,n,i,r)=>`sum(${r},${t},${n},${i})`),t=t.replace(/\\prod\s*_\s*\{(\w+)=([^}]+)\}\s*\^\s*\{([^}]+)\}\s*(.+)/g,(e,t,n,i,r)=>`product(${r},${t},${n},${i})`),t=t.replace(/(?:\\left\s*)?\\lfloor\s*(.+?)\s*(?:\\right\s*)?\\rceil/g,"round($1)"),t=t.replace(/(?:\\left\s*)?\\lfloor\s*/g,"floor("),t=t.replace(/\\rfloor\s*(?:\\right\s*)?/g,")"),t=t.replace(/(?:\\left\s*)?\\lceil\s*/g,"ceil("),t=t.replace(/\\rceil\s*(?:\\right\s*)?/g,")"),t=t.replace(/\\log\s*_\s*\{([^}]+)\}\s*\{([^}]+)\}/g,"log($2,$1)"),t=t.replace(/\\log\s*_\s*\{([^}]+)\}\s*([a-zA-Z0-9_.]+)/g,"log($2,$1)"),t=this.replaceBracedTeXCommand(t,"overline",a.CONJUGATE),t=t.replace(/\\Gamma\s*/g,"gamma"),t=t.replace(/\\delta\s*/g,a.DIRAC),t=t.replace(/(?<![a-zA-Z])H\s*(?=(?:\\left\s*)?\()/g,a.HEAVISIDE),t=t.replace(/\\Re\s*/g,"realpart"),t=t.replace(/\\Im\s*/g,"imagpart"),t=t.replace(/\\operatorname\s*\{([^}]+)\}/g,"$1");for(const[e,n]of Object.entries(Converter.TEX_REVERSE_MAP))"operatorname"!==e&&"Gamma"!==e&&"delta"!==e&&"Re"!==e&&"Im"!==e&&(t=t.replace(new RegExp(`\\\\${e}\\b`,"g"),n));return t=t.replace(/(.+?)\s*\\bmod\s*(.+)/g,"mod($1,$2)"),t=t.replace(/\\sqrt\s*\[([^\]]+)\]\s*\{([^}]+)\}/g,"nthroot($2,$1)"),t=t.replace(/\\sqrt\s*\{([^}]+)\}/g,"sqrt($1)"),t=t.replace(/\\,/g,""),t=t.replace(/\s*\\cdot\s*/g,"*"),t=t.replace(/\s*(?:\\left|\\right)\s*/g,""),t=t.replace(/\\infty/g,"Infinity"),t=t.replace(/\s*[{(]/g,"("),t=t.replace(/}/g,")"),t=t.replace(/\s+|\\/g," "),t}replaceBracedTeXCommand(e,t,n){const i=`\\${t}`;let r="",s=0;for(;s<e.length;){const o=e.indexOf(i,s);if(-1===o)r+=e.slice(s),s=e.length;else{r+=e.slice(s,o);let a=o+i.length;for(;a<e.length&&/\s/.test(e[a]);)a++;if("{"!==e[a])r+=i,s=o+i.length;else{let i=1,l=a+1;for(;l<e.length&&i>0;)"{"===e[l]?i++:"}"===e[l]&&i--,l++;if(0!==i)r+=e.slice(o),s=e.length;else{const i=e.slice(a+1,l-1);r+=`${n}(${this.replaceBracedTeXCommand(i,t,n)})`,s=l}}}}return r}splitTeXTopLevel(e,t){const n=[];let i=0,r="";for(let s=0;s<e.length;s++){const o=e[s];","!==t||"\\"!==o||","!==e[s+1]?("{"===o||"["===o||"("===o?i++:"}"!==o&&"]"!==o&&")"!==o||i--,0===i&&e.startsWith(t,s)?(n.push(r),r="",s+=t.length-1):r+=o):s++}return r.trim()&&n.push(r),n}convert(e,t){let n;if("string"==typeof e&&this.mode===h&&!0===t?.preserveSource&&!0!==t.decimal){const i=l.Parser.toRPN(l.Parser.tokenize(e)),r=this.convertSourceRPN(i,t);n=r.args?r.args.map(e=>e.text).join(","):r.text}else n=super.convert(e,t);return n}fromTeX(e){const t=e.trim(),n=this.parseTeXMatrix(t);if(n)return n;const i=this.parseTeXVector(t);if(i)return i;const r=t.match(/^\\left\s*\\{(.*)\\right\s*\\}$/)||t.match(/^\\{(.*)\\}$/);if(r)return this.parseTeXSetOrDictionary(r[1]);const s=this.preprocessTeXClean(e),o=l.Parser.tokenize(s,{pure:!0});return l.Parser.parse(l.Parser.parseTeXRPN(o))}}t.Converter=Converter},7176(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionSolver=void 0;const r=i(n(3110)),s=n(296),o=n(4703),a="Brent",l=a;t.FunctionSolver=class FunctionSolver{derivativeStep;func;lowerBound;maxIters;maxRoots;method;stepSize;tolerance;upperBound;variable;verbose;constructor(e,t,n={}){this.func="string"==typeof e?s.Expression.create(e):e,this.lowerBound=new r.default(n.lowerBound??-100),this.upperBound=new r.default(n.upperBound??100),this.derivativeStep=new r.default(n.derivativeStep??1e-15),this.maxIters=n.maxIterations??200,this.variable=t??this.getVariable(),this.stepSize=n.stepSize??.1,this.tolerance=new r.default(n.tolerance??1e-14),this.maxRoots=n.maxRoots??20,this.verbose=n.verbose??!1,this.method=n.method??l}calculateIntervals(){const e=this.lowerBound,t=this.upperBound,n=new r.default(this.stepSize),i=t.minus(e),s=e.plus(i.dividedBy(2).floor());let o=s,a=s;const l=[],u=s.minus(e),c=t.minus(s),m=u.greaterThan(c)?u:c;for(let i=new r.default(0);i.lessThan(m);i=i.plus(n)){const i=o.minus(n),r=a.plus(n);i.greaterThanOrEqualTo(e)&&l.push([o,i]),r.lessThanOrEqualTo(t)&&l.push([a,r]),o=i,a=r}return l}getVariable(){const e=this.func.variables();if(e.length>1)throw new o.UnsupportedOperationError((0,o.message)("univariateInputOnly"));return e[0]}Brent(e,t){let n=new r.default(e),i=new r.default(t);const s=this.tolerance;let a=this.evaluate(n),l=this.evaluate(i);const u=new r.default(1/0);if(a.abs().lessThan(s))return{root:n,iterations:0,converged:!1,error:u,errorMsg:(0,o.message)("endPointIsRoot")};if(l.abs().lessThan(s))return{root:i,iterations:0,converged:!0,error:u,errorMsg:(0,o.message)("endPointIsRoot")};const c=a.times(l);if(c.greaterThan(0))return{root:c,iterations:0,converged:!0,error:u,errorMsg:(0,o.message)("differentSignsAtEndPointsRequired")};a.abs().lessThan(l.abs())&&([n,i]=[i,n],[a,l]=[l,a]);let m=n,p=a,d=!0,g=new r.default(0);for(let e=0;e<this.maxIters;e++){let t;t=a.equals(p)||l.equals(p)?i.minus(l.times(i.minus(n)).dividedBy(l.minus(a))):n.times(l).times(p).dividedBy(a.minus(l).times(a.minus(p))).plus(i.times(a).times(p).dividedBy(l.minus(a).times(l.minus(p)))).plus(m.times(a).times(l).dividedBy(p.minus(a).times(p.minus(l))));const o=t.lessThan(new r.default(3).times(n).plus(i).dividedBy(4))||t.greaterThan(i),u=d&&t.minus(i).abs().greaterThanOrEqualTo(i.minus(m).abs().dividedBy(2)),c=!d&&t.minus(i).abs().greaterThanOrEqualTo(m.minus(g).abs().dividedBy(2)),h=d&&i.minus(m).abs().lessThan(s),x=!d&&m.minus(g).abs().lessThan(s);o||u||c||h||x?(t=n.plus(i).dividedBy(2),d=!0):d=!1;const E=this.evaluate(t);g=m,m=i,p=l,a.times(E).lessThan(0)?(i=t,l=E):(n=t,a=E),a.abs().lessThan(l.abs())&&([n,i]=[i,n],[a,l]=[l,a]);const y=l.abs().lessThan(s),v=i.minus(n).abs().lessThan(s);if(y||v)return{root:i,iterations:e,converged:!0,error:y?l.abs().minus(s):i.minus(n).abs()}}return{root:c,iterations:this.maxIters,converged:!1,error:u,errorMsg:(0,o.message)("convergenceFailed",{iter:String(this.maxIters)})}}df(e,t){const n=e.plus(t),i=e.minus(t),r=this.evaluate(n),s=this.evaluate(i);return r.minus(s).dividedBy(t.times(2))}evaluate(e){const t=this.func.evaluate({[this.variable]:e});if(!s.Expression.isExpression(t))throw new o.UnexpectedInputError((0,o.message)("unsupportedType"));if(!t.isNUM())throw new o.UnexpectedInputError((0,o.message)("wrongInput",{expected:"a real numeric value",received:t.text()}));return t.getMultiplier().toDecimal()}NewtonRaphson(e){const t=this.tolerance,n=new r.default(this.derivativeStep);let i=new r.default(e),s=0,a=new r.default(1/0);for(let e=0;e<this.maxIters;e++){const r=this.evaluate(i),l=this.df(i,n);if(l.isZero())return{root:i,iterations:e,converged:!1,error:r.abs(),errorMsg:(0,o.message)("zeroDerivative",{x:i.toString()})};const u=i.minus(r.dividedBy(l));if(a=u.minus(i).abs(),s=e+1,a.lessThanOrEqualTo(t))return{root:u,iterations:s,converged:!0,error:a};i=u}return{root:i,iterations:s,converged:!1,error:a}}roots(){const e=this.upperBound,t=this.tolerance,n=[];let i=!1;const o=new Map,evaluatePoint=e=>{const t=e.toString();let n=o.get(t);return void 0===n&&(n=this.evaluate(e),o.set(t,n)),n},addRoot=e=>{this.evaluate(e).abs().lessThan(t)&&n.push(e),n.length>=this.maxRoots&&(i=!0)},a=this.calculateIntervals();for(const e of a){if(i)return n.sort((e,t)=>e.comparedTo(t)).map(e=>s.Expression.create(e));try{const i=new r.default(e[0]),s=new r.default(e[1]),o=evaluatePoint(i),a=evaluatePoint(s);if(o.abs().lessThan(t)&&(0===n.length||i.minus(n[n.length-1]).abs().greaterThan(t.times(10)))&&addRoot(i),o.times(a).lessThan(0))try{let e;switch(this.method){case"NewtonRaphson":{const t=s.minus(i).div(2).plus(i);e=this.NewtonRaphson(t);break}default:e=this.Brent(i,s)}if(e.converged){const i=e.root;let r=!1;for(const e of n)if(i.minus(e).abs().lessThan(t.times(10))){r=!0;break}r||addRoot(i)}}catch{}}catch{}}try{const i=e;evaluatePoint(i).abs().lessThan(t)&&(0===n.length||i.minus(n[n.length-1]).abs().greaterThan(t.times(10)))&&addRoot(i)}catch{}return n.sort((e,t)=>e.comparedTo(t)).map(e=>s.Expression.create(e))}}},7410(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.S=function S(e){return fresnel(e,r.FRESNEL_S)},t.C=function C(e){return fresnel(e,r.FRESNEL_C)};const i=n(296),r=n(8300),s=n(2348);function fresnel(e,t){const n=i.Expression.create(e),o=n.isNUM()?n:n.evaluate();let a;if(o.isNUM()){const e=Number(o.getMultiplier().toDecimal());a=i.Expression.create(t===r.FRESNEL_S?(0,s.fresnelS)(e):(0,s.fresnelC)(e))}else a=i.Expression.toFunction(t,[n]);return a}},7449(e,t){"use strict";function simpson(e,t,n,i,r){return(t-e)/6*(n+4*i+r)}function withFiniteBounds(e,t,n,i,r,s,o,a){let l=t,u=n;if(l===u)return 0;let c=1;if(u<l){c=-1;const e=l;l=u,u=e}let m=0;const evalF=t=>{if(++m>o)throw new Error(`defint: maxEvals exceeded (${o}).`);const n=e(t);if("strict"===a&&!isFinite(n))throw new Error(`defint: non-finite f(x) at x=${t}`);return n},p=(l+u)/2,d=evalF(l),g=evalF(p),h=evalF(u);if("ignore"===a&&(isNaN(d)||isNaN(g)||isNaN(h)))return NaN;if(!("auto"!==a||isFinite(d)&&isFinite(g)&&isFinite(h))){const t=!isFinite(d)&&isFinite(g)&&isFinite(h),n=isFinite(d)&&isFinite(g)&&!isFinite(h);if(t||n){const n=u-l,m=Math.sqrt(Number.EPSILON),p=t;return c*withFiniteBounds(t=>{const i=Math.max(t,m),r=p?l+n*i*i:u-n*i*i,s=2*e(r)*n*i;if(!isFinite(s))throw new Error(`defint: endpoint singularity could not be regularized near x=${r}`);return s},0,1,i,r,s,o,a)}return c*function autoSplitFinite(e,t,n,i,r,s,o,a){const l=(t+n)/2,u=(t+l)/2,c=(l+n)/2,m=i/4;return withFiniteBounds(e,t,u,m,r,s,o,a)+withFiniteBounds(e,u,l,m,r,s,o,a)+withFiniteBounds(e,l,c,m,r,s,o,a)+withFiniteBounds(e,c,n,m,r,s,o,a)}(e,l,u,i,r,s,o,a)}const x=simpson(l,u,d,g,h),E=[{a:l,b:u,m:p,fa:d,fm:g,fb:h,S:x,depth:0,tolAbs:i,tolRel:r,singularTries:0}];let y=0;for(;E.length>0;){const e=E[E.length-1];E.pop();const{a:t,b:n,m:i}=e,r=e.tolRel,o=(t+i)/2,l=(i+n)/2,u=evalF(o),c=evalF(l);if("ignore"===a&&(isNaN(u)||isNaN(c)))return NaN;if(!("auto"!==a||isFinite(u)&&isFinite(c)&&isFinite(e.fa)&&isFinite(e.fm)&&isFinite(e.fb))){if(e.depth>=s||e.singularTries>=8)throw new Error(`defint: singular/non-finite encountered near [${t}, ${n}]`);const a=e.depth+1,m=e.tolAbs/2;E.push({a:i,b:n,m:l,fa:e.fm,fm:c,fb:e.fb,S:simpson(i,n,e.fm,c,e.fb),depth:a,tolAbs:m,tolRel:r,singularTries:e.singularTries+1}),E.push({a:t,b:i,m:o,fa:e.fa,fm:u,fb:e.fm,S:simpson(t,i,e.fa,u,e.fm),depth:a,tolAbs:m,tolRel:r,singularTries:e.singularTries+1});continue}const m=simpson(t,i,e.fa,u,e.fm),p=simpson(i,n,e.fm,c,e.fb),d=m+p;if(Math.abs(d-e.S)/15<=e.tolAbs+e.tolRel*Math.abs(d)||e.depth>=s){y+=d+(d-e.S)/15;continue}const g=e.depth+1,h=e.tolAbs/2;E.push({a:i,b:n,m:l,fa:e.fm,fm:c,fb:e.fb,S:p,depth:g,tolAbs:h,tolRel:r,singularTries:e.singularTries}),E.push({a:t,b:i,m:o,fa:e.fa,fm:u,fb:e.fm,S:m,depth:g,tolAbs:h,tolRel:r,singularTries:e.singularTries})}return y*c}Object.defineProperty(t,"__esModule",{value:!0}),t.definiteIntegrateNative=function definiteIntegrateNative(e,t,n,i={}){if(t===n)return 0;const r=i.tolAbs??1e-12,s=i.tolRel??1e-12,o=i.maxDepth??50,a=i.maxEvals??1e5,l=i.singular??"auto",u=i.allowInfinite??!1,c=!isFinite(t)&&!isNaN(t),m=!isFinite(n)&&!isNaN(n);if((c||m)&&!u)throw new Error("defint: infinite bounds require allowInfinite: true");if(u&&(c||m)){const i=1e-15;if(!c&&m&&n>0){const n=t;return withFiniteBounds(t=>{const i=1-t;return e(n+t/i)/(i*i)},0,1-i,r,s,o,a,l)}if(c&&t<0&&!m){const t=n;return withFiniteBounds(n=>{const i=1-n;return e(t-n/i)/(i*i)},0,1-i,r,s,o,a,l)}if(c&&t<0&&m&&n>0)return withFiniteBounds(t=>{const n=Math.PI*(t-.5),i=Math.cos(n);return e(Math.tan(n))*Math.PI/(i*i)},i,1-i,r,s,o,a,l);throw new Error("defint: unsupported infinite bound configuration")}const p=Math.min(t,n),d=Math.max(t,n),g=(i.breakpoints??[]).filter(e=>e>p&&e<d).sort((e,t)=>e-t);if(0===g.length)return withFiniteBounds(e,t,n,r,s,o,a,l);const h=g.length+1,x=r/h,E=t<=n?[t,...g,n]:[t,...g.reverse(),n];let y=0;for(let t=0;t<E.length-1;t++)y+=withFiniteBounds(e,E[t],E[t+1],x,s,o,a,l);return y}},7571(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ilaplace=function ilaplace(e,t,n){let p;if(e=s.Expression.create(e),t=(0,l.assertPlainVariableAndGetString)(s.Expression.create(t)),n=(0,l.assertPlainVariableAndGetString)(s.Expression.create(n)),e.isSum()&&e.isLinear()){const i=e.elementsArray();p=(0,a.zero)();for(const e of i){const i=ilaplace(e,t,n);if(i.isFunction(u.ILAPLACE)){p=void 0;break}p=p.plus(i)}if(p)return p}const d=s.Expression.fromRational(e.getMultiplier());if(!d.isOne()){const i=ilaplace(e.toUnitMultiplier(),t,n);if(!i.isFunction(u.ILAPLACE))return d.times(i)}if(e.isProduct()){const{constants:i,expression:r}=(0,o.constantsFreeProduct)(e,t);if(!i.isOne()){const e=ilaplace(r,t,n);if(!e.isFunction(u.ILAPLACE))return i.times(e)}}if(p=m.tableOfInverseTransforms.lookup(new c.Pattern(e,[t]),0),p)return"t"!==n&&(p=p.evaluate({t:n})),p;{const i=e.getNumerator(),o=e.getDenominator();if(o.isPolynomialLike()&&i.isPolynomialLike()){const e=o.coeffs(t),l=i.coeffs(t);if(2===e.max()&&l.max()<=1){const{h:e,expression:i}=(0,r.sqcomp)(o,t),c=o.isSum()&&o.elementsArray().some(e=>e.getPower().eq(2)&&e.getBase().isSum());if(!e.isZero()&&!c){const r=l.hasPower(0)?l.getPower(0):(0,a.zero)(),o=l.hasPower(1)?l.getPower(1):(0,a.zero)(),c=s.Expression.create(t).plus(e),m=r.minus(o.times(e)),p=o.isZero()?(0,a.zero)():ilaplace(c.div(i),t,n),d=m.isZero()?(0,a.zero)():ilaplace(i.invert(),t,n);if(!p.isFunction(u.ILAPLACE)&&!d.isFunction(u.ILAPLACE))return o.times(p).plus(m.times(d))}}}}{const i=e.getNumerator(),r=function extractExpShift(e,t){const n=e.isProduct()?e.elementsArray():[e];for(const i of n){if(!i.isEXP())continue;const n=i.getPower();if(!n.hasVariable(t))continue;const{constants:r,expression:s}=(0,o.constantsFreeProduct)(n,t);if(s.eq(t)&&!(r.sign()<=0))return{coefficient:r,remainder:e.div(i)}}}(e.getDenominator(),t);if(r){const e=i.div(r.remainder),o=ilaplace(e,t,n);if(!o.isFunction(u.ILAPLACE)){const e=r.coefficient,t=s.Expression.create(n).minus(e),i=o.subst(n,t);return s.Expression.toFunction(u.HEAVISIDE,[t]).times(i)}}}const g=e.getNumerator(),h=e.getDenominator();if(g.isPolynomialLike()&&h.isPolynomialLike()){const r=(0,i.partfrac)(e,t);if(r!==e){const e=ilaplace(r,t,n);if(!e.isFunction(u.ILAPLACE))return e}}return s.Expression.toFunction(u.ILAPLACE,[e,t,n])};const i=n(2766),r=n(2634),s=n(296),o=n(542),a=n(6099),l=n(1897),u=n(8300),c=n(2292),m=n(1997)},7741(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.powerExpandToArray=powerExpandToArray,t.expandArrayToExpression=expandArrayToExpression,t.isExpandable=isExpandable,t.powerExpand=powerExpand,t.sumExpandMultiply=sumExpandMultiply,t.expand=expand;const i=n(296),r=n(6099),s=n(8300);function powerExpandToArray(e,t){let n=function constructRow(){return e.map((t,n)=>{const i=new Array(e.length).fill(0);return i.push(1),i[n]=1,i})}();for(let i=0;i<t-1;i++){const t=[];for(let i=0;i<n.length;i++)for(let r=0;r<e.length;r++){const e=[...n[i]];e[r]++,t.push(e)}const i=new Map;for(const e of t){const t=e.slice(0,-1).join(","),n=i.get(t);n?n[n.length-1]+=e[e.length-1]:i.set(t,[...e])}n=Array.from(i.values())}return n}function expandArrayToExpression(e,t,n){const i=[],r=n?`${n}*`:"";for(let n=0;n<e.length;n++){const s=e[n],o=[];for(let e=0;e<s.length-1;e++){const n=t[e],i=s[e];1===i?o.push(`(${n})`):0!==i&&o.push(`(${n})^${i}`)}let a=o.join("*");const l=s[s.length-1];1!==l&&(a=`(${l})*${a}`),i.push(r+a)}return i.join("+")}function isExpandable(e){return e.isComplex()||!e.getMultiplier().isOne()||e.value.includes("(")||!e.isLinear()}function powerExpand(e){let t=e;if(e.isSum()&&e.getPower().isInteger()){const n=e.getPower().sign(),r=e.getPower().abs(),s=e.elementsArray().map(e=>e.text()),o=e.getMultiplier().isOne()?void 0:(n<0?e.getMultiplier().invert():e.getMultiplier()).text(),a=expandArrayToExpression(powerExpandToArray(s,Number(r)),s,o);t=i.Expression.create(a),-1===n&&(t=t.invert())}return t}function sumExpandMultiply(e,t){let n;return t.isSum()&&!e.isSum()?n=sumExpandMultiply(t,e):e.isSum()?(e.isLinear()||(e=powerExpand(e)),e.isLinear()?(n=(0,r.zero)(),e.each(e=>{if(isExpandable(e)&&(e=expand(e)),t.isSum()||e.isSum())n=n.plus(sumExpandMultiply(t,e));else{const i=t.times(e);n=n.plus(i)}})):n=t.isSum()&&t.isLinear()?sumExpandMultiply(t,e):e.times(t)):n=expand(e).times(expand(t)),n}function unwrap(e){return e.isFunction(s.WRAP)?e.getArguments()[0].pow(e.getPower()).times(e.getMultiplier()):e}function expand(e){let t;if(isExpandable(e=unwrap(e)))if(e.isNUM()||e.isVAR())t=new i.Expression(e);else{if(t=e.distributeMultiplier(),t.isSum()&&(t=powerExpand(t),t.isSum()&&(t=function expandTerms(e){if(!e.isLinear())return e;let t=(0,r.zero)();return e.each(e=>{t=t.plus(expand(e))}),t}(t))),t.isProduct()&&(t=function productExpand(e){let t;t=i.Expression.fromRational(e.getMultiplier());const n=e.getPower(),r=n.isOne();return e.each(e=>{r||(e=e.pow(n));const i=(e=expand(e=unwrap(e))).getPower();e.isProduct()&&i.isInteger()&&!i.isOne()?e.each(e=>{t=t.times(e.pow(i))}):t=t.isSum()||e.isSum()?sumExpandMultiply(t,e):t.times(e)}),t}(t)),t.isFunction()){const e=t.getArguments().map(e=>expand(e));if(t.name===s.FACTORIAL)t=function factorialExpand(e){const t=e.getArguments();let n=e;const r=t[0].elementsArray().sort((e,t)=>e.isNUM()?1:-1);if(2===r.length){const o=r[0],a=r[1];if(o.isVAR()&&o.isLinear()&&a.isInteger()){const t=e.getPower(),r=Number(a.getMultiplier().numerator);n=i.Expression.toFunction(s.FACTORIAL,[o]);for(let e=1;e<=r;e++){const t=o.plus(e);n=n.times(t)}n=n.pow(t)}else{let e=i.Expression.toFunction(n.name,t);e.multiplier=n.multiplier,e=i.Expression.setPower(e,n.getPower()),n=e}}else{let e=i.Expression.toFunction(n.name,t);e.multiplier=n.multiplier,e=i.Expression.setPower(e,n.getPower()),n=e}return n}(t);else{let n=i.Expression.toFunction(t.name,e);n.multiplier=t.multiplier,n=i.Expression.setPower(n,t.getPower()),t=n}}if(t.isEXP()){const e=expand(t.getPower()),n=expand(t.getBase()).pow(e);n.multiplier=n.getMultiplier().times(t.getMultiplier()),t=n}}else t=new i.Expression(e);return t}},7867(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hypot=function hypot(e,t){const n=[s.SIN,s.COS];let l;if(e.isFunction(n)&&t.isFunction(n)&&e.name!==t.name&&e.isLinear()&&t.isLinear()&&e.getMultiplier().eq(t.getMultiplier()))l=i.Expression.fromRational(e.getMultiplier());else{const n=(0,a.power)(e,(0,r.two)()),i=(0,a.power)(t,(0,r.two)());l=(0,a.power)((0,o.add)(n,i),(0,r.half)())}return l};const i=n(296),r=n(6099),s=n(8300),o=n(6255),a=n(3957)},8015(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.anyObject=function anyObject(e){for(const t in e)return e[t]},t.arrayToObject=function arrayToObject(e,t){const n={};for(let i=0;i<e.length;i++){const r=e[i];n[t(r,i)]=r}return n},t.randomEvalObj=function randomEvalObj(e,t=2,n){const r={};n??=2*(e.length+2);const s=[];for(const o of e){let e=(0,i.getRandomInt)(t,n);for(;s.includes(e);)e=(0,i.getRandomInt)(t,n);s.push(e),r[o]=e}return r};const i=n(3703)},8054(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IndexedReference=void 0;const i=n(6441),r=n(8300);t.IndexedReference=class IndexedReference{target;indices;targetName;_resolved=null;dataType=r.INDEXED_REFERENCE;isEnumerable=!1;constructor(e,t,n){this.target=e,this.indices=t,this.targetName=n}static isIndexedReference(e){return(0,i.isNerdamerNativeType)(e,r.INDEXED_REFERENCE)}copy(){return this.resolve().copy()}eq(e){return this.resolve().eq(e)}evaluate(){return this.resolve().evaluate()}expand(){return this.resolve().expand()}gt(e){return this.resolve().gt(e)}gte(e){return this.resolve().gte(e)}lt(e){return this.resolve().lt(e)}lte(e){return this.resolve().lte(e)}resolve(){return null===this._resolved&&(this.indices,this._resolved=this.target.__get__(this.indices)),this._resolved}text(){return this.resolve().text()}}},8125(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasDerivedTrig=hasDerivedTrig,t.rewrite=rewrite,t.tryRewriteTrig=function tryRewriteTrig(e){if(!hasDerivedTrig(e))return e;const t=rewrite(e);return complexity(t)<=complexity(e)?t:e};const i=n(296),r=n(6099),s=n(8300),o=n(1649);function hasDerivedTrig(e){let t=!1;return e.forEveryElement(e=>((e.isFunction(s.TAN)||e.isFunction(s.SEC)||e.isFunction(s.CSC)||e.isFunction(s.COT))&&(t=!0),e)),t}function rewrite(e){if(e.isFunction(s.TAN)||e.isFunction(s.COT)||e.isFunction(s.SEC)||e.isFunction(s.CSC))return function rewriteTrigElement(e){const t=e.getMultiplier(),n=e.getPower(),r=e.getArguments();if(e.isFunction(s.TAN)&&r.length>0){const e=r[0];return i.Expression.fromRational(t).times((0,o.sin)(e).pow(n)).times((0,o.cos)(e).pow(n.neg()))}if(e.isFunction(s.COT)&&r.length>0){const e=r[0];return i.Expression.fromRational(t).times((0,o.cos)(e).pow(n)).times((0,o.sin)(e).pow(n.neg()))}if(e.isFunction(s.SEC)&&r.length>0){const e=r[0];return i.Expression.fromRational(t).times((0,o.cos)(e).pow(n.neg()))}if(e.isFunction(s.CSC)&&r.length>0){const e=r[0];return i.Expression.fromRational(t).times((0,o.sin)(e).pow(n.neg()))}return e}(e);if(e.isSum()){const t=e.getMultiplier(),n=e.getPower();let s=(0,r.zero)();for(const t of e.elementsArray())s=s.plus(rewrite(t));return n.isOne()||(s=s.pow(n)),t.isOne()||(s=s.times(i.Expression.fromRational(t))),s}if(e.isProduct()){const t=e.getMultiplier(),n=e.getPower();let s=(0,r.one)();for(const t of e.elementsArray())s=s.times(rewrite(t));return n.isOne()||(s=s.pow(n)),t.isOne()||(s=s.times(i.Expression.fromRational(t))),s}return e.isFunction(),e}function complexity(e){let t=e.text().length;const n=new Set;return e.forEveryElement(e=>(e.isFunction(s.SIN)&&n.add(s.SIN),e.isFunction(s.COS)&&n.add(s.COS),e.isFunction(s.TAN)&&n.add(s.TAN),e.isFunction(s.SEC)&&n.add(s.SEC),e.isFunction(s.CSC)&&n.add(s.CSC),e.isFunction(s.COT)&&n.add(s.COT),e)),t+=10*n.size,t}},8137(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatMultiplierString=formatMultiplierString,t.formatPowerString=formatPowerString,t.toText=function toText(e,t,n,i,s){t={precision:e.precision,...t};let g="";if(e.type===o)g=e.getMultiplier().text(t);else{const o=n&&!e.elements?"":formatMultiplierString(e,t),h=formatPowerString(e,t,i);let x;switch(e.type){case l:case u:g=t?.wrapPow&&h?`${o}(${e.value})`:`${o}${e.value}`;break;case a:if(e.name===r.SYMBOLIC_ACCESSOR){const n=e.getArguments();if(t?.internalAccessor)g=`${o}${r.SYMBOLIC_ACCESSOR}(${n.map(e=>e.text(t)).join(", ")})`;else{const e=n[0],i=n.slice(1);g=`${o}${e.text(t)}[${i.map(e=>e.text(t)).join(", ")}]`}}else g=`${o}${e.name||""}(${e.getArguments().map(e=>e.text(t)).join(", ")})`;break;case c:case d:x=formatExpressionString(e,t,s),x=o||h?`(${x})`:x,g=`${o}${x}`;break;case p:x=formatExpressionString(e,t,s),x=h?`(${x})`:x,g=`${o}${x}`;break;case m:{const n=e.getBase(),r=n.getPower();x=toText(n,t,void 0,i,s),(t?.wrapPow||n.elements||x.startsWith("-")||x.includes("/")||!r.isOne()&&!r.isZero())&&(x=`(${x})`),g=`${o}${x}`;break}}g+=h}return g.replace(/\+-/g,"-")},t.formatExpressionString=formatExpressionString,t.convertToTitle=function convertToTitle(e){let t="";for(;e>0;)e--,t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26);return t};const i=n(5817),r=n(8300),s=n(8300),{NUM:o,FUN:a,VAR:l,INF:u,GRP:c,EXP:m,PRD:p,SUM:d}=s.EXPRESSION_TYPES;function formatMultiplierString(e,t){let n="";const i=e.getMultiplier(),r=i.text(t);return"1"!==r&&"1.0"!==r&&(n=r,i.isInteger()||i.asDecimal||t?.decimal||(n=`(${n})`),"-1"!==n||t?.wrapPow?n+="*":n="-"),n}function formatPowerString(e,t,n){let i="";const s=e.getPower(),o=s.text(t);if("1"!==o&&"1.0"!==o){if(i=o,s.dataType!==r.RATIONAL||s.isInteger()){const t=e.getPower();let n=!1;t.type===d||t.type===p?n=!0:e.type===m&&(t.isNUM()&&!t.isInteger()?n=!0:t.isNUM()||t.getMultiplier().isOne()||(n=!0)),(n||i.includes("/"))&&(i=`(${i})`)}else i=`(${i})`;t?.wrapPow&&!i.startsWith("(")&&(i=`(${i})`),i=`${n}${i}`}return i}function formatExpressionString(e,t,n){const r=e.type===p?"*":"+",s=Object.values(e.getElements());return(i.Settings.SORT_TERMS||t?.sort)&&s.sort(n),s.map(n=>{let i=n.text(t);return e.type===p&&n.isSum()&&(i=`(${i})`),i}).join(r).replace("+-","-")}},8215(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.factorPoly=void 0;var i=n(1508);Object.defineProperty(t,"factorPoly",{enumerable:!0,get:function(){return i.factorPoly}})},8300(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FIB=t.DOUBLE_FACTORIAL=t.FACTORIAL=t.SYMBOLIC_ACCESSOR=t.PARSER_CONSTANTS=t.INFINITY=t.PI=t.ALIASES=t.ALL_SYMBOL=t.INDEX_VARIABLE=t.DEFAULT_IMAGINARY=t.PI_SYMBOL=t.PI_NAME=t.E=t.RANK=t.EXPRESSION_TYPES=t.dataTypes=t.ASSUMPTION=t.DICTIONARY=t.SOLUTIONS_SET=t.SET=t.GFPOLY=t.TERM=t.POLYNOMIAL=t.EQUATION=t.MATRIX=t.VECTOR=t.COLLECTION=t.EXPRESSION=t.SCOPE=t.RATIONAL=t.KEY_VALUE_PAIR=t.INDEXED_REFERENCE=t.TOKEN=t.WRAP=t.CLOSE_PAREN=t.OPEN_PAREN=t.RETURN=t.LINEFEED=t.TAB=t.NEWLINE=t.BLANK=t.SPACE=t.ASSIGN=t.COMMA=t.DOT=t.DIVIDE=t.MULTIPLY=t.PLUS=t.MINUS=void 0,t.SUM_FUNCTION=t.SINC=t.SI=t.SHI=t.TRUNC=t.SIZE=t.ROUND=t.REALPART=t.PRODUCT_FUNCTION=t.NTHROOT=t.MIN=t.MAX=t.LN=t.LIMIT=t.LI=t.LAPLACE=t.ISPRIME=t.INTEGRATE=t.IMATRIX=t.IMAGPART=t.ILAPLACE=t.GCD=t.FRESNEL_S=t.FRESNEL_C=t.FLOOR=t.FACTOR=t.ERF=t.EI=t.DOT_PRODUCT=t.DIFF=t.DEG=t.DEFINT=t.CROSS=t.COUNT=t.CONTENT=t.CONTAINS=t.CONJUGATE=t.CI=t.CHI=t.CEIL=t.CBRT=t.CSGN=t.SGN=t.LOG=t.HEAVISIDE=t.DIRAC=t.GAMMA=t.MOD=t.ABS=t.SQRT=void 0,t.INVERSE_HYPERBOLIC_TRIG=t.HYPERBOLIC_TRIG=t.INVERSE_TRIG=t.TRIG=t.ACOTH=t.ACSCH=t.ASECH=t.ATANH=t.ASINH=t.ACOSH=t.COTH=t.CSCH=t.SECH=t.TANH=t.COSH=t.SINH=t.ATAN2=t.ACOT=t.ACSC=t.ASEC=t.ATAN=t.COT=t.CSC=t.SEC=t.ACOS=t.ASIN=t.TAN=t.SIN=t.COS=t.TRIG_FUNCTION_NAMES=void 0;const r=i(n(3110));t.MINUS="-",t.PLUS="+",t.MULTIPLY="*",t.DIVIDE="/",t.DOT=".",t.COMMA=",",t.ASSIGN=":",t.SPACE=" ",t.BLANK="",t.NEWLINE="\n",t.TAB="\t",t.LINEFEED="\f",t.RETURN="\r",t.OPEN_PAREN="(",t.CLOSE_PAREN=")",t.WRAP="",t.TOKEN="Token",t.INDEXED_REFERENCE="INDEXED_REF",t.KEY_VALUE_PAIR="KEY_VALUE_PAIR",t.RATIONAL="RAT",t.SCOPE="SCP",t.EXPRESSION="EXP",t.COLLECTION="COL",t.VECTOR="VEC",t.MATRIX="MAT",t.EQUATION="EQN",t.POLYNOMIAL="POL",t.TERM="TRM",t.GFPOLY="GFP",t.SET="SET",t.SOLUTIONS_SET="SOL",t.DICTIONARY="DIC",t.ASSUMPTION="ASSUMPTION",t.dataTypes={[t.TOKEN]:"Token",[t.INDEXED_REFERENCE]:"IndexedReference",[t.KEY_VALUE_PAIR]:"KeyValuePair",[t.RATIONAL]:"Rational",[t.SCOPE]:"Scope",[t.EXPRESSION]:"Expression",[t.COLLECTION]:"Collection",[t.VECTOR]:"Vector",[t.MATRIX]:"Matrix",[t.EQUATION]:"Equation",[t.POLYNOMIAL]:"Polynomial",[t.TERM]:"Term",[t.GFPOLY]:"GFPolynomial",[t.SET]:"ValuesSet",[t.SOLUTIONS_SET]:"SolutionSet",[t.DICTIONARY]:"Dictionary",[t.ASSUMPTION]:"Assumption"},t.EXPRESSION_TYPES={NUM:6,VAR:2,EXP:1,FUN:3,GRP:4,PRD:7,SUM:5,INF:8,VEC:9,MAT:10},t.RANK={[t.EXPRESSION_TYPES.NUM]:1,[t.EXPRESSION_TYPES.VAR]:2,[t.EXPRESSION_TYPES.EXP]:3,[t.EXPRESSION_TYPES.FUN]:4,[t.EXPRESSION_TYPES.GRP]:5,[t.EXPRESSION_TYPES.PRD]:6,[t.EXPRESSION_TYPES.SUM]:7,[t.EXPRESSION_TYPES.INF]:8},t.E="e",t.PI_NAME="pi",t.PI_SYMBOL="π",t.DEFAULT_IMAGINARY="i",t.INDEX_VARIABLE="_n",t.ALL_SYMBOL="all",t.ALIASES={[t.PI_SYMBOL]:t.PI_NAME,"∞":"Inf"},t.PI=[t.PI_NAME,t.PI_SYMBOL],t.INFINITY=["Inf","Infinity","∞"],t.PARSER_CONSTANTS={[t.PI_NAME]:()=>r.default.acos(-1).toString(),[t.PI_SYMBOL]:()=>r.default.acos(-1).toString(),[t.E]:()=>r.default.exp(1).toString()},t.SYMBOLIC_ACCESSOR="__accessor__",t.FACTORIAL="fact",t.DOUBLE_FACTORIAL="dfact",t.FIB="fib",t.SQRT="sqrt",t.ABS="abs",t.MOD="mod",t.GAMMA="gamma",t.DIRAC="delta",t.HEAVISIDE="heaviside",t.LOG="log",t.SGN="sign",t.CSGN="csgn",t.CBRT="cbrt",t.CEIL="ceil",t.CHI="Chi",t.CI="Ci",t.CONJUGATE="conjugate",t.CONTAINS="contains",t.CONTENT="content",t.COUNT="count",t.CROSS="cross",t.DEFINT="defint",t.DEG="deg",t.DIFF="diff",t.DOT_PRODUCT="dot",t.EI="Ei",t.ERF="erf",t.FACTOR="factor",t.FLOOR="floor",t.FRESNEL_C="C",t.FRESNEL_S="S",t.GCD="gcd",t.ILAPLACE="ilaplace",t.IMAGPART="imagpart",t.IMATRIX="imatrix",t.INTEGRATE="integrate",t.ISPRIME="isprime",t.LAPLACE="laplace",t.LI="Li",t.LIMIT="limit",t.LN="ln",t.MAX="max",t.MIN="min",t.NTHROOT="nthroot",t.PRODUCT_FUNCTION="product",t.REALPART="realpart",t.ROUND="round",t.SIZE="size",t.TRUNC="trunc",t.SHI="Shi",t.SI="Si",t.SINC="sinc",t.SUM_FUNCTION="sum",t.TRIG_FUNCTION_NAMES={COS:"cos",SIN:"sin",TAN:"tan",SEC:"sec",CSC:"csc",COT:"cot",ACOS:"acos",ASIN:"asin",ATAN:"atan",ASEC:"asec",ACSC:"acsc",ACOT:"acot",ATAN2:"atan2",SINH:"sinh",COSH:"cosh",TANH:"tanh",SECH:"sech",CSCH:"csch",COTH:"coth",ACOSH:"acosh",ASINH:"asinh",ATANH:"atanh",ASECH:"asech",ACSCH:"acsch",ACOTH:"acoth"},t.COS=t.TRIG_FUNCTION_NAMES.COS,t.SIN=t.TRIG_FUNCTION_NAMES.SIN,t.TAN=t.TRIG_FUNCTION_NAMES.TAN,t.ASIN=t.TRIG_FUNCTION_NAMES.ASIN,t.ACOS=t.TRIG_FUNCTION_NAMES.ACOS,t.SEC=t.TRIG_FUNCTION_NAMES.SEC,t.CSC=t.TRIG_FUNCTION_NAMES.CSC,t.COT=t.TRIG_FUNCTION_NAMES.COT,t.ATAN=t.TRIG_FUNCTION_NAMES.ATAN,t.ASEC=t.TRIG_FUNCTION_NAMES.ASEC,t.ACSC=t.TRIG_FUNCTION_NAMES.ACSC,t.ACOT=t.TRIG_FUNCTION_NAMES.ACOT,t.ATAN2=t.TRIG_FUNCTION_NAMES.ATAN2,t.SINH=t.TRIG_FUNCTION_NAMES.SINH,t.COSH=t.TRIG_FUNCTION_NAMES.COSH,t.TANH=t.TRIG_FUNCTION_NAMES.TANH,t.SECH=t.TRIG_FUNCTION_NAMES.SECH,t.CSCH=t.TRIG_FUNCTION_NAMES.CSCH,t.COTH=t.TRIG_FUNCTION_NAMES.COTH,t.ACOSH=t.TRIG_FUNCTION_NAMES.ACOSH,t.ASINH=t.TRIG_FUNCTION_NAMES.ASINH,t.ATANH=t.TRIG_FUNCTION_NAMES.ATANH,t.ASECH=t.TRIG_FUNCTION_NAMES.ASECH,t.ACSCH=t.TRIG_FUNCTION_NAMES.ACSCH,t.ACOTH=t.TRIG_FUNCTION_NAMES.ACOTH,t.TRIG=[t.COS,t.SIN,t.TAN,t.SEC,t.CSC,t.COT],t.INVERSE_TRIG=[t.ACOS,t.ASIN,t.ATAN,t.ASEC,t.ACSC,t.ACOT],t.HYPERBOLIC_TRIG=[t.COSH,t.SINH,t.TANH,t.SECH,t.CSCH,t.COTH],t.INVERSE_HYPERBOLIC_TRIG=[t.ACOSH,t.ASINH,t.ATANH,t.ASECH,t.ACSCH,t.ACOTH]},8330(e){"use strict";e.exports=JSON.parse('{"name":"nerdamer","version":"2.0.0-rc.1","publishConfig":{"tag":"next"},"description":"A symbolic math library and computer algebra system for JavaScript and TypeScript.","directory":{"lib":"./src"},"main":"dist/bundle.js","types":"index.d.ts","files":["dist","output","docs-data","index.d.ts","README.md"],"scripts":{"dev":"nodemon ./tools/dev.ts","lint":"eslint ./src/**/*.ts","lint:fix":"eslint ./src/**/*.ts --fix","typecheck":"tsc -p tsconfig.json --noEmit","test":"jest","test:coverage":"jest --coverage --runInBand","test:dump":"npm test -- --json --outputFile=test-results.json --testFailureExitCode=1 --testNamePattern=\\"^(?!.*\\\\[slow\\\\])\\"","test:all":"npm test -- --json --outputFile=test-results.json --testFailureExitCode=1","build:types":"tsc -p tsconfig.build.json","build:modules":"npm run build:types","build:bundle":"webpack --mode=production --node-env=production --env target=full","build:parser":"webpack --mode=production --node-env=production --env target=parser && node tools/smoke-build.cjs parser","build:full":"npm run build:modules && npm run build:bundle && node tools/smoke-build.cjs full","build":"npm run build:full","build:dev":"webpack --mode=development","build:prod":"npm run build","watch":"webpack --watch","serve":"webpack serve","docs:parser":"ts-node tools/generate-parser-docs.ts","docs":"npm run docs:parser && typedoc --options typedoc.json --out docs/api","docs:check":"typedoc --options typedoc.json --emit none","docs:api":"typedoc --options typedoc.json --json generated/typedoc/typedoc.json","docs:all":"npm run docs:parser && typedoc --options typedoc.json --json generated/typedoc/typedoc.json --plugin typedoc-material-theme --themeColor \'#e63420\' --out docs/html","docs:html":"typedoc --options typedoc.json --plugin typedoc-material-theme --themeColor \'#e63420\' --out docs/html","validate:package":"ts-node tools/validate-package.ts","prepublishOnly":"npm run test && npm run build && npm run build:parser && npm run docs:parser && npm run validate:package"},"repository":{"type":"git","url":"git+https://github.com/jiggzson/nerdamer.git"},"keywords":["math","mathematics","algebra","calculus","symbolic","symbolic math","symbolic computation","computer algebra","computer algebra system","cas","parser","expression parser","equation solver","solve","simplify","factorization","polynomials","derivative","differentiation","integral","integration","limits","laplace transform","linear algebra","matrix","vectors","complex numbers","numeric","javascript","typescript"],"author":"Martin Donk","license":"Apache-2.0","bugs":{"url":"https://github.com/jiggzson/nerdamer/issues"},"homepage":"https://nerdamer.com","engines":{"node":">=18"},"dependencies":{"decimal.js":"^10.4.3"},"devDependencies":{"@eslint/js":"^9.8.0","@types/eslint__js":"^8.42.3","@types/jest":"^30.0.0","@types/node":"^25.0.10","@webpack-cli/generators":"^2.5.0","css-loader":"^7.1.2","eslint":"^9.39.3","eslint-plugin-import":"^2.32.0","eslint-plugin-perfectionist":"^5.6.0","html-webpack-plugin":"^5.6.3","jasmine":"^5.1.0","jest":"^30.2.0","mini-css-extract-plugin":"^2.9.2","nodemon":"^3.1.4","prettier":"^3.8.1","sass":"^1.86.0","sass-loader":"^16.0.5","style-loader":"^4.0.0","terser-webpack-plugin":"^5.3.14","ts-jest":"^29.4.6","ts-loader":"^9.5.2","ts-node":"^10.9.2","typedoc":"^0.28.17","typedoc-material-theme":"^1.4.1","typescript":"^5.9.3","typescript-eslint":"^8.0.0","webpack":"^5.98.0","webpack-cli":"^5.1.4","webpack-dev-server":"^5.2.0","workbox-webpack-plugin":"^7.3.0"},"exports":{".":{"types":"./index.d.ts","require":"./dist/bundle.js","default":"./dist/bundle.js"},"./core":{"types":"./output/api/core.d.ts","require":"./output/api/core.js","default":"./output/api/core.js"},"./algebra":{"types":"./output/api/algebra.d.ts","require":"./output/api/algebra.js","default":"./output/api/algebra.js"},"./calculus":{"types":"./output/api/calculus.d.ts","require":"./output/api/calculus.js","default":"./output/api/calculus.js"},"./solve":{"types":"./output/api/solve.d.ts","require":"./output/api/solve.js","default":"./output/api/solve.js"},"./structures":{"types":"./output/api/structures.d.ts","require":"./output/api/structures.js","default":"./output/api/structures.js"},"./assumptions":{"types":"./output/api/assumptions.d.ts","require":"./output/api/assumptions.js","default":"./output/api/assumptions.js"},"./parser":{"types":"./output/api/parser.d.ts","require":"./output/api/parser.js","default":"./output/api/parser.js"},"./advanced":{"types":"./output/api/advanced.d.ts","require":"./output/api/advanced.js","default":"./output/api/advanced.js"},"./debug":{"types":"./output/api/debug.d.ts","require":"./output/api/debug.js","default":"./output/api/debug.js"},"./docs-data/parser-functions.json":"./docs-data/parser-functions.json","./dist/bundle.js":"./dist/bundle.js","./dist/parser.js":"./dist/parser.js","./package.json":"./package.json"},"typesVersions":{"*":{"core":["output/api/core.d.ts"],"algebra":["output/api/algebra.d.ts"],"calculus":["output/api/calculus.d.ts"],"solve":["output/api/solve.d.ts"],"structures":["output/api/structures.d.ts"],"assumptions":["output/api/assumptions.d.ts"],"parser":["output/api/parser.d.ts"],"advanced":["output/api/advanced.d.ts"],"debug":["output/api/debug.d.ts"]}}}')},8505(e,t){"use strict";function isEnumerableLike(e){if("object"!=typeof e||null===e)return!1;const t=e;return!0===t.isEnumerable&&"string"==typeof t.dataType&&Array.isArray(t.elements)}Object.defineProperty(t,"__esModule",{value:!0}),t.StructuredEntity=void 0,t.StructuredEntity=class StructuredEntity{symbolicAccessor;symbolicTarget;copySymbolicAccessTo(e){return this.symbolicTarget&&(e.symbolicTarget=this.symbolicTarget.copy()),this.symbolicAccessor&&(e.symbolicAccessor=this.symbolicAccessor.map(e=>e.copy())),e}formatSymbolicAccess(e){let t=e;return this.symbolicAccessor&&this.symbolicAccessor.length>0&&(t=`${this.symbolicTarget?this.symbolicTarget.text():e}[${this.symbolicAccessor.map(e=>e.text()).join(", ")}]`),t}binaryOp(e,t){const n=isEnumerableLike(t)&&t.dataType===this.dataType?t:void 0;return this.copy().each((i,r,s)=>{const o=n?function getAggregateElement(e,t,n){if(void 0===t)return;const i="number"==typeof t?t:Number(t);if(!Number.isFinite(i))return;const r=e.elements[i];if(void 0!==r){if(Array.isArray(r)){if(void 0===n)return;const e="number"==typeof n?n:Number(n);if(!Number.isFinite(e))return;return r[e]}return r}}(n,r,s)??t:t;return function applyBinaryOp(e,t,n){switch(e){case"plus":return t.plus(n);case"minus":return t.minus(n);case"times":return t.times(n);case"div":return t.div(n);case"pow":return t.pow(n)}}(e,i,o)})}abs(){return this.copy().each(e=>e.abs())}dimensionsMatch(e){return!(!isEnumerableLike(e)||this.dataType!==e.dataType)&&e.elements.length===this.elements.length}div(e){return this.binaryOp("div",e)}minus(e){return this.binaryOp("minus",e)}plus(e){return this.binaryOp("plus",e)}pow(e){return this.binaryOp("pow",e)}times(e){return this.binaryOp("times",e)}toString(){return this.text()}withSymbolicAccessor(e,t){const n=this.copy();return n.symbolicTarget||(n.symbolicTarget=e.copy()),n.symbolicAccessor=[...n.symbolicAccessor??[],...t.map(e=>e.copy())],n}}},8520(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SymbolicSolver=void 0;const i=n(296),r=n(6099),s=n(8300),o=n(2116),a=n(4703),l=n(8533),u=n(1649),c=n(706),m=n(2295);class SymbolicSolver{static MAX_FN_SOLVE_STEPS=64;input;x;constructor(e,t){if(t=i.Expression.create(t),this.x=t.value,!t.isPlainVariable())throw new a.UnexpectedInputError((0,a.message)("plainVariableExpected",{input:t.text()}));"string"==typeof e?this.input=i.Expression.create(e):o.Polynomial.isPolynomial(e)?this.input=e.getExpression():this.input=e}static cubic(e){const t=e[0],n=e[1],i=e[2],s=e[3],o=i.div(s),a=n.div(s),u=t.div(s),c=a.minus(o.pow((0,r.two)()).div((0,r.three)())),m=u.minus(o.times(a).div((0,r.three)())).plus((0,r.two)().times(o.pow((0,r.three)())).div((0,r.twentySeven)())),p=m.pow((0,r.two)()).div((0,r.four)()).plus(c.pow((0,r.three)()).div((0,r.twentySeven)())),d=(0,r.zero)().minus(o).div((0,r.three)()),g=(0,l.sqrt)(p),h=(0,r.zero)().minus(m).div((0,r.two)()),x=(0,l.cbrt)(h.plus(g)),E=(0,l.cbrt)(h.minus(g)),y=x.plus(E),v=(0,l.sqrt)((0,r.three)()),P=(0,r.zero)().minus((0,r.half)()),w=(0,l.sqrt)((0,r.zero)().minus((0,r.one)())),b=x.plus(E),M=x.minus(E),A=P.times(b).plus(v.div((0,r.two)()).times(M).times(w)),T=P.times(b).minus(v.div((0,r.two)()).times(M).times(w));return[y.plus(d),A.plus(d),T.plus(d)]}static quadratic(e){const t=e[0],n=e[1],i=e[2],s=n.pow((0,r.two)()).minus((0,r.four)().times(i).times(t)),o=(0,l.sqrt)(s),a=(0,r.two)().times(i),u=(0,r.zero)().minus(n);return[u.plus(o).div(a),u.minus(o).div(a)]}static quartic(e){const t=e[0],n=e[1],s=e[2],o=e[3],a=e[4],u=o.div(a),c=s.div(a),m=n.div(a),p=t.div(a),d=c.minus((0,r.three)().times(u.pow((0,r.two)())).div((0,r.eight)())),g=m.minus(u.times(c).div((0,r.two)())).plus(u.pow((0,r.three)()).div((0,r.eight)())),h=p.minus(u.times(m).div((0,r.four)())).plus(u.pow((0,r.two)()).times(c).div((0,r.sixteen)())).minus((0,r.three)().times(u.pow((0,r.four)())).div((0,r.twoHundredFiftySix)())),x=(0,r.zero)().minus(u).div((0,r.four)());if(g.isZero()){const e=SymbolicSolver.quadratic([h,d,(0,r.one)()]),t=i.Expression.Img(),n=(0,l.sqrt)((0,r.two)()),sqrtSpecial=e=>{if(e.value!==i.Expression.imaginary)return;const s=e.getMultiplier();return s.isOne()?(0,r.one)().plus(t).div(n):s.isMinusOne()?(0,r.one)().minus(t).div(n):s.eq("4")?n.times((0,r.one)().plus(t)):s.eq("-4")?n.times((0,r.one)().minus(t)):void 0},s=sqrtSpecial(e[0])??(0,l.sqrt)(e[0]),o=sqrtSpecial(e[1])??(0,l.sqrt)(e[1]);return[s.plus(x),(0,r.zero)().minus(s).plus(x),o.plus(x),(0,r.zero)().minus(o).plus(x)]}const E=[(0,r.zero)().minus(g.pow((0,r.two)())),d.pow((0,r.two)()).minus((0,r.four)().times(h)),(0,r.two)().times(d),(0,r.one)()],y=SymbolicSolver.cubic(E);let v;for(const e of y)if(!e.isZero()){v=e;break}v=v??y[0];let P=(0,l.sqrt)(v);if(P.isZero())for(const e of y)if(!e.isZero()){const t=(0,l.sqrt)(e);if(!t.isZero()){v=e,P=t;break}}const w=d.plus(v),b=w.div((0,r.two)()).minus(g.div((0,r.two)().times(P))),M=w.div((0,r.two)()).plus(g.div((0,r.two)().times(P))),A=SymbolicSolver.quadratic([b,P,(0,r.one)()]),T=SymbolicSolver.quadratic([M,(0,r.zero)().minus(P),(0,r.one)()]);return[A[0].plus(x),A[1].plus(x),T[0].plus(x),T[1].plus(x)]}fnSolve(){const e=this.input,t=this.x,solveForX=(e,n)=>{const i=e.variables();if(1===i.length&&i[0]===t&&e.text()===t&&!n.hasVariable(t))return[n];const r=e.minus(n),s=new SymbolicSolver(r,t).solve();return s.unsolved?(0,m.solve)(r,t).elements:s.solutions},n=i.Expression.N(),o=i.Expression.Pi(),a=n.times(o),p=(0,r.two)().times(n).plus((0,r.one)()).times(o).div((0,r.two)());if(e.isSum()){const n=e.elementsArray(),o=n.filter(e=>e.isFunction(s.LOG)&&e.isLinear()&&e.getMultiplier().isInteger()&&e.getArguments().length>0);if(o.length===n.length&&o.some(e=>e.hasVariable(t))){let e=(0,r.one)();for(const t of o){const n=i.Expression.fromRational(t.getMultiplier());e=e.times(t.getArguments()[0].pow(n))}return(0,m.solve)(e.minus((0,r.one)()),t).elements}const a=n.filter(e=>e.hasVariable(t)&&e.getPower().eq((0,r.half)()));if(1===a.length){const e=a[0];let i=(0,r.zero)();for(const t of n)t!==e&&(i=i.plus(t));const s=(0,c.stripPower)(e.toUnitMultiplier()),o=i.neg().div(e.getMultiplier());return(0,m.solve)(s.minus(o.sq()),t).elements}const p=(0,r.half)().neg(),d=[];for(const e of n)if(e.hasVariable(t)){const n=(e.isProduct()?e.elementsArray():[e]).filter(e=>e.hasVariable(t));1===n.length&&n[0].getPower().eq(p)&&d.push({term:e,factor:n[0]})}if(1===d.length){const{term:e,factor:i}=d[0];let s=(0,r.zero)();for(const t of n)t!==e&&(s=s.plus(t));const o=i.toUnitMultiplier(),a=e.div(o);if(!a.hasVariable(t)&&!s.hasVariable(t))return solveForX(i.getBase(),s.neg().div(a).pow((0,r.two)().neg()))}if(2===n.length){let e,i,r,s,o=!0;for(const a of n){const n=(a.isProduct()?a.elementsArray():[a]).filter(e=>(e.isFunction(u.SIN)||e.isFunction(u.COS))&&e.getPower().isOne());if(1!==n.length){o=!1;break}const l=n[0].toUnitMultiplier(),c=a.div(l);if(c.hasVariable(t)){o=!1;break}n[0].isFunction(u.SIN)?(e=l.getArguments()[0],i=c):(r=l.getArguments()[0],s=c)}if(o&&e&&i&&r&&s&&e.eq(r)&&!i.isZero())return solveForX(e,(0,u.atan)(s.neg().div(i)))}const g=n.filter(e=>e.isFunction()&&e.hasVariable(t));if(1===g.length){const e=g[0];let i=(0,r.zero)();for(const t of n)t!==e&&(i=i.plus(t));if(!i.hasVariable(t)||e.name===s.ABS){const t=e.name,n=e.getArguments()[0],r=e.getMultiplier(),s=e.getPower();let o=i.neg().div(r);s.isOne()||(o=o.pow(s.invert()));const a=this.invertFunction(t,o);if(void 0!==a){const e=[];for(const t of a)e.push(...solveForX(n,t));return e.length>0?e:void 0}}}if(2===n.length){const e=n.findIndex(e=>{let n=!1;if(e.isEXP()){const i=e.getBase();n=e.hasVariable(t)&&!i.hasVariable(t)&&(!i.isNUM()||i.gt((0,r.zero)())&&!i.isOne())}return n});if(-1!==e){const i=n[e],r=n[1-e];if(!r.hasVariable(t)){const e=i.getBase(),t=i.getPower(),n=i.getMultiplier(),s=r.neg().div(n);return solveForX(t,(0,l.log)(s).div((0,l.log)(e)))}}}}return e.isFunction(u.SIN)?solveForX(e.getArguments()[0],a):e.isFunction(u.COS)?solveForX(e.getArguments()[0],p):e.isFunction(u.TAN)?solveForX(e.getArguments()[0],a):e.isFunction(u.COT)?solveForX(e.getArguments()[0],p):e.isFunction(s.LOG)?solveForX(e.getArguments()[0],(0,r.one)()):e.isFunction(u.SINH)||e.isFunction(u.TANH)||e.isFunction(u.ASIN)?solveForX(e.getArguments()[0],(0,r.zero)()):e.isFunction(u.ACOS)?solveForX(e.getArguments()[0],(0,r.one)()):e.isFunction(u.ATAN)?solveForX(e.getArguments()[0],(0,r.zero)()):e.isFunction(u.ASEC)?solveForX(e.getArguments()[0],(0,r.one)()):e.isFunction(u.ASINH)?solveForX(e.getArguments()[0],(0,r.zero)()):e.isFunction(u.ACOSH)?solveForX(e.getArguments()[0],(0,r.one)()):e.isFunction(u.ATANH)||e.isFunction(s.ABS)?solveForX(e.getArguments()[0],(0,r.zero)()):void 0}invertFunction(e,t){switch(e){case u.SIN:return[(0,u.asin)(t)];case u.COS:return[(0,u.acos)(t)];case u.TAN:return[(0,u.atan)(t)];case u.COT:return[(0,u.atan)((0,r.one)().div(t))];case s.LOG:return[(0,l.exp)(t)];case u.SINH:return[(0,u.asinh)(t)];case u.COSH:return[(0,u.acosh)(t)];case u.TANH:return[(0,u.atanh)(t)];case u.ASIN:return[(0,u.sin)(t)];case u.ACOS:return[(0,u.cos)(t)];case u.ATAN:return[(0,u.tan)(t)];case u.ASEC:return[(0,r.one)().div((0,u.cos)(t))];case u.ASINH:return[(0,u.sinh)(t)];case u.ACOSH:return[(0,u.cosh)(t)];case u.ATANH:return[(0,u.tanh)(t)];case s.ABS:return[t,(0,r.zero)().minus(t)];default:return}}inputContainsFunction(){let e=!1;return this.input.forEveryElement(t=>(t.isFunction()&&(e=!0),t)),e}solve(){let e,t;if(this.input.hasVariable(this.x)){let n;const i=(0,r.half)().neg();if(!this.input.isSum()||!this.input.elementsArray().some(e=>{let t=e.hasVariable(this.x)&&e.getPower().eq((0,r.half)());if(!t&&e.isProduct()&&e.hasVariable(this.x)){const n=e.elementsArray().filter(e=>e.hasVariable(this.x));t=1===n.length&&n[0].getPower().eq(i)}return t}))try{n=this.input.coeffs(this.x).toArray()}catch{}if(n){const t=n.length-1;let i=!0;for(const e of n)if(e.hasVariable(this.x)){i=!1;break}if(i&&t>=1&&t<=4)switch(t){case 1:e=[n[0].neg().div(n[1])];break;case 2:e=SymbolicSolver.quadratic(n);break;case 3:e=SymbolicSolver.cubic(n);break;case 4:e=SymbolicSolver.quartic(n)}}e||(e=this.fnSolve()),e||(t=this.input)}else t=this.input;return e??=[],{solutions:e,unsolved:t}}}t.SymbolicSolver=SymbolicSolver},8533(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.sqrt=sqrt,t.nthroot=function nthroot(e,t){return(0,d.power)(o.Expression.create(e),(0,a.one)().div(o.Expression.create(t)))},t.cbrt=function cbrt(e){if((e=o.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?o.Expression.NegInf():o.Expression.Inf();if(e.isOne())return(0,a.one)();if(e.isZero())return(0,a.zero)();if(b.Settings.EVALUATE&&e.isConstant()){const t=e.isNUM()||e.isComplex()?e:e.evaluate();if(t.isNUM()){const e=t.getMultiplier().toDecimal(),n=new r.default(1).div(3),i=e.isNeg()?e.abs().pow(n).neg():e.pow(n);return new o.Expression(i)}if(t.isComplex()){const e=t.realPart(),n=t.imagPart(),i=Number(e.getMultiplier().toDecimal()),r=Number(n.getMultiplier().toDecimal()),s=Math.hypot(i,r),a=Math.atan2(r,i),l=Math.cbrt(s),u=a/3,c=l*Math.cos(u),m=l*Math.sin(u);return o.Expression.create(c).plus(o.Expression.create(m).times(o.Expression.Img()))}}return e.isFunction(c.CBRT)?(0,p.multiply)(cbrt(o.Expression.fromRational(e.getMultiplier())),(0,d.power)(e.toUnitMultiplier(),(0,a.third)())):o.Expression.toFunction(c.CBRT,[e])},t.parens=function parens(e){return o.Expression.toFunction(c.WRAP,[e])},t.fibonacci=function fibonacci(e){let t;return t=(e=o.Expression.create(e)).isNUM()&&e.isInteger()?o.Expression.Number((0,y.fibonacci)(e.getMultiplier().numerator)):o.Expression.toFunction(m.FIB,[new o.Expression(e)]),t},t.factorial=factorial,t.doubleFactorial=function doubleFactorial(e){let t;if(e.isPosInf()||e.isNegInf()){if(e.isNegInf())throw new E.UndefinedError((0,E.message)("undefinedValue"));return o.Expression.Inf()}if(b.Settings.EVALUATE)if(e.isInteger()){const n=e.isEven(),i=Number(e.getMultiplier().toDecimal()),r=n?i/2:(i+1)/2;let s=(0,a.one)();for(let e=1;e<=r;e++){let t=(0,a.two)().times(e);n||(t=t.minus(1)),s=s.times(t)}t=s}else{const n=o.Expression.Pi(!0),i=(0,a.two)().pow(e.times((0,a.two)()).plus((0,a.one)()).minus((0,T.cos)(n.times(e))).div((0,a.four)())),r=n.pow((0,T.cos)(n.times(e)).minus((0,a.one)()).div((0,a.four)())),s=gamma(e.div((0,a.two)()).plus(1));t=i.times(r).times(s)}else t=o.Expression.toFunction(c.DOUBLE_FACTORIAL,[new o.Expression(e)]);return t},t.heaviside=function heaviside(e){let t;const n=!e.isConstant()&&!e.isComplex()&&(0,s.hasAssumptions)();if(e.isPosInf()||e.isNegInf())t=e.isNegInf()?(0,a.zero)():(0,a.one)();else if(e.isNUM()){const n=e.sign();t=1===n?(0,a.one)():-1===n?(0,a.zero)():(0,a.half)()}else t=n&&e.gt(0)?(0,a.one)():n&&e.lt(0)?(0,a.zero)():n&&e.gte(0)&&e.lte(0)?(0,a.half)():o.Expression.toFunction(c.HEAVISIDE,[new o.Expression(e)]);return t},t.dirac=function dirac(e){let t;const n=!e.isConstant()&&!e.isComplex()&&(0,s.hasAssumptions)();return t=e.isPosInf()||e.isNegInf()?(0,a.zero)():e.isNUM()?e.isZero()?o.Expression.toFunction(c.DIRAC,[new o.Expression(e)]):(0,a.zero)():n&&(e.gt(0)||e.lt(0))?(0,a.zero)():o.Expression.toFunction(c.DIRAC,[new o.Expression(e)]),t},t.numeric=function numeric(e,t){return e=o.Expression.create(e),(0,b.scopedBlock)("DEFER_SIMPLIFICATION",!1,()=>{let n=x.Rational.getPrecision();if(void 0!==t){const e=o.Expression.create(t).evaluate();if(!e.isNUM()||!e.isInteger())throw new E.UnexpectedInputError((0,E.message)("wrongInput",{expected:O,received:e.text()}));const i=e.getMultiplier();if(i.numerator<=0n||i.numerator>BigInt(Number.MAX_SAFE_INTEGER))throw new E.UnexpectedInputError((0,E.message)("wrongInput",{expected:O,received:e.text()}));n=Number(i.numerator)}const i=x.Rational.getPrecision();let s;try{n!==i&&x.Rational.set({precision:n});const t=e.isNUM()?e:e.evaluate();if(t.variables().length>0)s=t;else if(t.isNUM()){const e=t.getMultiplier(),i=new r.default(e.numerator.toString()).div(e.denominator.toString()).toSignificantDigits(n);s=o.Expression.Number(i),s.getMultiplier().asDecimal=!0,s.precision=n}else if(t.isComplex()){const e=numeric(t.realPart(),n),i=numeric(t.imagPart(),n);s=e.plus(i.times(o.Expression.Img())),s.precision=n}else s=t}finally{n!==i&&x.Rational.set({precision:i})}return s})},t.round=function round(e,t){if((e=o.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?o.Expression.NegInf():o.Expression.Inf();let n;if(t=t?o.Expression.create(t):(0,a.zero)(),e.isNUM()&&t.isInteger()){const i=e.getMultiplier().toDecimal(),s=t.getMultiplier().toDecimal(),a=new r.default(10).pow(s);n=new o.Expression(r.default.round(i.times(a)).div(a))}else n=o.Expression.toFunction(c.ROUND,[e,t]);return n},t.sign=function sign(e){let t;return t=(e=o.Expression.create(e)).isComplex()?(0,P.csgn)(e):e.isPosInf()||e.isNegInf()?o.Expression.create(e.isNegInf()?-1:1):e.isConstant()?o.Expression.create((e.isNUM()?e:e.evaluate()).getMultiplier().sign()):(0,s.hasAssumptions)()?e.gt(0)?(0,a.one)():e.lt(0)?(0,a.one)().neg():e.eq(0)?(0,a.zero)():o.Expression.toFunction(c.SGN,[e]):o.Expression.toFunction(c.SGN,[e]),t},t.floor=floor,t.ceiling=function ceiling(e){let t;if((e=o.Expression.create(e)).isPosInf()||e.isNegInf())t=e.isNegInf()?o.Expression.NegInf():o.Expression.Inf();else if(e.isNUM()){const n=e.getMultiplier().toDecimal();t=new o.Expression(n.ceil())}else t=o.Expression.toFunction(c.CEIL,[e]);return t},t.abs=function abs(e){if((e=o.Expression.create(e)).isPosInf()||e.isNegInf())return o.Expression.Inf();let t=e,n=!0;const i=!e.isConstant()&&(0,s.hasAssumptions)();if(!e.isConstant()&&e.getPower().isEven())t=e,-1===t.sign()&&(t=t.neg()),n=!1;else if(e.isComplex())t=(0,A.hypot)(e.realPart(),e.imagPart());else if(i&&e.gte(0))t=e,n=!1;else if(i&&e.lte(0))t=e.neg(),n=!1;else if(e.isSum()){const i=[],r=[],s=e.elementsArray();let o=!0,a=1;for(let l=0;l<s.length;l++){const u=s[l];u.isConstant()?i.push(u):r.push(u),-1!==u.sign()&&(o=!1),(o||1===r.length&&-1===r[0].sign())&&(t=e.neg().expand(),a=-1);const c=s[l+1],m=c&&1===r.length&&c.value===r[0].value;if(1===r.length&&r[0].getPower().isEven()&&!m){n=!1;for(let e=0;e<i.length;e++)if(i[e].sign()*a===-1){n=!0;break}}}}else-1===e.sign()&&(t=e.neg());return t||(t=e),!t.isConstant()&&n&&(t=o.Expression.toFunction(c.ABS,[t])),t},t.modInv=function modInv(e,t){let n=(0,a.zero)(),i=(0,a.one)(),r=t,s=mod(e,t);for(;!s.isZero();){const e=floor(r.div(s));[n,i]=[i,n.minus(e.times(i))],[r,s]=[s,r.minus(e.times(s))]}if(r.gt(1))throw new E.MathError((0,E.message)("noInverse"));return mod(n,t)},t.mod=mod,t.gamma=gamma,t.erfc=function erfc(e){return(0,g.subtract)((0,a.one)(),erf(e))},t.erf=erf,t.sinc=function sinc(e){let t;return t=e.isPosInf()||e.isNegInf()?(0,a.zero)():e.isZero()?(0,a.one)():(0,T.sin)(e).isZero()?(0,a.zero)():-1===e.sign()?sinc(e.neg()):e.isNUM()&&b.Settings.EVALUATE?o.Expression.Number((0,w.sinc)(e.getMultiplier().toDecimal())):b.Settings.EVALUATE?(0,T.sin)(e).div(e):o.Expression.toFunction(c.SINC,[new o.Expression(e)]),t},t.Si=function Si(e){let t;return e.isPosInf()||e.isNegInf()?(t=o.Expression.Pi().div((0,a.two)()),e.isNegInf()&&(t=t.neg())):t=e.isZero()?(0,a.zero)():-1===e.sign()?Si(e.neg()).neg():e.isNUM()&&b.Settings.EVALUATE?o.Expression.Number((0,w.Si)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.SI,[new o.Expression(e)]),t},t.Shi=function Shi(e){let t;return t=e.isPosInf()||e.isNegInf()?e.isNegInf()?o.Expression.NegInf():o.Expression.Inf():e.isZero()?(0,a.zero)():-1===e.sign()?Shi(e.neg()).neg():e.isNUM()&&b.Settings.EVALUATE?o.Expression.Number((0,w.Shi)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.SHI,[new o.Expression(e)]),t},t.Ci=function Ci(e){let t;return t=e.isPosInf()||e.isNegInf()?(0,a.zero)():e.isZero()?o.Expression.NegInf():-1===e.sign()?Ci(e.neg()):e.isNUM()&&b.Settings.EVALUATE?o.Expression.Number((0,w.Ci)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.CI,[new o.Expression(e)]),t},t.Chi=function Chi(e){let t;return t=e.isPosInf()||e.isNegInf()?o.Expression.Inf():e.isZero()?o.Expression.NegInf():-1===e.sign()?Chi(e.neg()):e.isNUM()&&b.Settings.EVALUATE?o.Expression.Number((0,w.Chi)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.CHI,[new o.Expression(e)]),t},t.Ei=function Ei(e){let t;return t=e.isPosInf()||e.isNegInf()?e.isNegInf()?(0,a.zero)():o.Expression.Inf():e.isZero()?o.Expression.NegInf():e.isNUM()&&b.Settings.EVALUATE?o.Expression.Number((0,w.Ei)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.EI,[new o.Expression(e)]),t},t.Li=function Li(e){let t;if(e.isPosInf())t=o.Expression.Inf();else if(e.isOne())t=o.Expression.NegInf();else if(e.isNUM()&&b.Settings.EVALUATE){const n=e.getMultiplier();t=n.isNegative()?o.Expression.toFunction(c.LI,[new o.Expression(e)]):o.Expression.Number((0,w.Li)(n.toDecimal()))}else t=o.Expression.toFunction(c.LI,[new o.Expression(e)]);return t},t.log=function log(e,t,n=!1){e=o.Expression.create(e);const i=void 0===t?void 0:o.Expression.create(t);let r,s;if(i&&e.isInteger()&&i.isInteger()&&e.gt(0)&&i.gt(1)){const t=e.getMultiplier().numerator,n=i.getMultiplier().numerator;let s=1n,a=0n;for(;s<t;)s*=n,a++;s===t&&(r=o.Expression.Number(a))}if(e.isPosInf()||e.isNegInf()){if(e.isNegInf())throw new E.UndefinedError((0,E.message)("undefinedValue"));s=o.Expression.Inf()}else if(e.isOne())s=(0,a.zero)();else if(r)s=r;else if(e.isE()&&e.getMultiplier().isOne()){const t=e.getPower();s=t.isComplex()?o.Expression.toFunction(o.Expression.LOG,[new o.Expression(e)]):(0,a.one)().times(t)}else if(!e.isComplex()&&e.lt(0))s=o.Expression.Pi().times(o.Expression.Img()).plus(log(e.abs()));else if(e.isComplex()){const t=e.realPart(),n=e.imagPart(),i=sqrt(t.sq().plus(n.sq()));s=log(i).plus((0,T.atan2)(n,t).i())}else if(b.Settings.EVALUATE){if(e.isNUM())if(i&&i.isNUM()){const t=e.getMultiplier().toDecimal().ln(),n=i.getMultiplier().toDecimal().ln();s=o.Expression.Number(t.div(n))}else s=o.Expression.Number(e.getMultiplier().toDecimal().ln())}else if(e.isNUM()){const t=e.getMultiplier(),i=t.numerator<0n?-t.numerator:t.numerator,r=t.denominator<0n?-t.denominator:t.denominator;if(1n!==r)s=log(o.Expression.Number(i)).minus(log(o.Expression.Number(r)));else if(n){const e=(0,v.primeFactorCounts)(i),t=Object.keys(e);if(t.length>0&&(t.length>1||e[t[0]]>1n)){s=(0,a.zero)();for(const t in e){const n=e[t],i=o.Expression.toFunction(o.Expression.LOG,[o.Expression.Number(t)]);s=s.plus(i.times(o.Expression.Number(n)))}}}}else{const t=e.getMultiplier(),n=e.toUnitMultiplier();let i,r=!1;if(n.isProduct()&&n.isLinear()){const e=n.elementsArray();let t=!0;for(const n of e){let e=!1;if(n.isNUM())e=n.gt(0);else{const t=n.getPower(),i=n.isEXP()?n.getBase():(0,N.stripPower)(n);e=!t.isComplex()&&!i.isComplex()&&i.gt(0)}if(!e){t=!1;break}}if(t){let t=(0,a.zero)();for(const n of e)t=t.plus(log(n));i=t,r=!0}}else{const e=n.getPower(),t=n.isEXP()?n.getBase():(0,N.stripPower)(n);e.isOne()?(i=o.Expression.toFunction(o.Expression.LOG,[n]),r=!n.isComplex()&&n.gt(0)):e.isComplex()||t.isComplex()||!t.gt(0)||(i=log(t).times(e),r=!0)}void 0===i||t.isOne()?s=i:t.sign()>0&&r&&(s=i.plus(log(o.Expression.fromRational(t))))}return s=s||o.Expression.toFunction(o.Expression.LOG,[new o.Expression(e)]),i&&s&&!r&&(s=s.div(log(i))),s},t.max=function max(...e){return aggregator(e,(e,t)=>e.gt(t),(e,t)=>e.gte(t))??o.Expression.toFunction(c.MAX,e)},t.min=function min(...e){return aggregator(e,(e,t)=>e.lt(t),(e,t)=>e.lte(t))??o.Expression.toFunction(c.MIN,e)},t.exp=function exp(e){let t,n,i,r,s,l,u;return(e=o.Expression.create(e)).isPosInf()||e.isNegInf()?e.isNegInf()?(0,a.zero)():o.Expression.Inf():(e.isZero()?t=(0,a.one)():b.Settings.EVALUATE&&(e.isComplex()?(n=e.evaluate(),i=n.realPart(),r=n.imagPart(),i.isNUM()&&r.isNUM()&&(u=o.Expression.Number(i.getMultiplier().toDecimal().exp()),s=(0,T.cos)(r),l=(0,T.sin)(r),t=u.times(s.plus(l.i())))):e.isNUM()&&(t=o.Expression.Number(e.getMultiplier().toDecimal().exp()))),t??o.Expression.create(`e^(${e})`))},t.matrix=function matrix(...e){return new u.Matrix(...e)},t.sum=function sum(e,t,n,i){if(!t.isPlainVariable())return o.Expression.toFunction(c.SUM_FUNCTION,[e,t,n,i]);e=o.Expression.create(e),t=o.Expression.create(t),n=o.Expression.create(n),i=o.Expression.create(i);const r=t.text(),s=toIntegerBigint(n),l=toIntegerBigint(i);if(null===s||null===l)return o.Expression.toFunction(c.SUM_FUNCTION,[e,t,n,i]);if(s>l)return(0,a.zero)();const u=l-s+1n;if(u>b.Settings.MAX_PRODUCT_AND_SUMMATION_ITERATION)return o.Expression.toFunction(c.SUM_FUNCTION,[e,t,n,i]);if(!e.hasVariable(r)){const t=o.Expression.create(u);return e.times(t)}let m=(0,a.zero)(),p=s;for(;p<=l;){const t={};t[r]=p;const n=e.evaluate(t);m=m.plus(n),p+=1n}return m},t.product=function product(e,t,n,i){if(!t.isPlainVariable())return o.Expression.toFunction(c.PRODUCT_FUNCTION,[e,t,n,i]);e=o.Expression.create(e),t=o.Expression.create(t),n=o.Expression.create(n),i=o.Expression.create(i);const r=t.text(),s=toIntegerBigint(n),l=toIntegerBigint(i);if(null===s||null===l)return o.Expression.toFunction(c.PRODUCT_FUNCTION,[e,t,n,i]);if(s>l)return(0,a.one)();const u=l-s+1n;if(u>b.Settings.MAX_PRODUCT_AND_SUMMATION_ITERATION)return o.Expression.toFunction(c.PRODUCT_FUNCTION,[e,t,n,i]);if(!e.hasVariable(r)){const t=o.Expression.create(u);return(0,d.power)(e,t)}let m=(0,a.one)(),p=s;for(;p<=l;){const t={};t[r]=p;const n=e.evaluate(t);m=m.times(n),p+=1n}return m},t.defint=function defint(e,t,n,i){let r;e=o.Expression.create(e),t=o.Expression.create(t),n=o.Expression.create(n),i=o.Expression.create(i);const s=e.variables(),a=(0,l.assertPlainVariableAndGetString)(t);if(s.includes(a)){let l=n,u=i;if(!l.isNUM()&&l.isConstant()&&(l=l.evaluate()),!u.isNUM()&&u.isConstant()&&(u=u.evaluate()),1===s.length&&s[0]===a&&l.isNUM()&&u.isNUM()){const t=Number(l.getMultiplier().toDecimal()),n=Number(u.getMultiplier().toDecimal());r=o.Expression.create((0,M.definiteIntegrateNative)(e.buildFunction(),t,n)),r.precision=17}else r=o.Expression.toFunction(c.DEFINT,[e,t,n,i])}else r=e.times(i.minus(n));return r},t.contains=function contains(e,t){let n;return t=o.Expression.create(t),n=e.dataType===c.VECTOR?o.Expression.create(Number(-1!==e.indexOf(t))):e.dataType===c.SET||e.dataType===c.SOLUTIONS_SET?o.Expression.create(Number(e.has(t))):e.dataType===c.DICTIONARY?o.Expression.create(Number(e.has(t.text()))):o.Expression.toFunction(c.CONTAINS,[e,t]),n};const r=i(n(3110)),s=n(6351),o=n(296),a=n(6099),l=n(1897),u=n(4462),c=n(8300),m=n(8300),p=n(6498),d=n(3957),g=n(6910),h=n(9565),x=n(5584),E=n(4703),y=n(551),v=n(982),P=n(4600),w=n(9571),b=n(5817),M=n(7449),A=n(7867),T=n(1649),N=n(706),O="a positive integer precision";function sqrt(e){let t;if((e=o.Expression.create(e)).isPosInf()||e.isNegInf()){if(e.isNegInf())throw new E.UndefinedError((0,E.message)("undefinedValue"));t=o.Expression.Inf()}else t=e.isOne()?(0,a.one)():e.isZero()?(0,a.zero)():e.isFunction(c.SQRT)?(0,p.multiply)(sqrt(o.Expression.fromRational(e.getMultiplier())),(0,d.power)((0,d.sqrtToPow)(e.toUnitMultiplier()),(0,a.half)())):(0,d.power)(e,(0,a.half)());return t}function factorial(e){let t;if(e.isPosInf()||e.isNegInf()){if(e.isNegInf())throw new E.UndefinedError((0,E.message)("undefinedValue"));return o.Expression.Inf()}if(e.isInteger())t=o.Expression.Number((0,y.factorial)(e.getMultiplier().numerator));else if(b.Settings.EVALUATE)t=gamma(e.plus((0,a.one)()));else{let n=e.getMultiplier();if(e.isNUM()&&2n===n.denominator){const e=n.sign();n=n.abs();const i=new o.Expression(n.numerator-1n).div((0,a.two)()),r=sqrt(o.Expression.Pi());t=-1===e?(0,a.four)().neg().pow(i).times(factorial(i)).div(factorial(i.times((0,a.two)()))).times(r):factorial(i.times((0,a.two)()).plus((0,a.one)())).div((0,a.four)().pow(i).times(factorial(i)).times((0,a.two)())).times(r)}else t=o.Expression.toFunction(m.FACTORIAL,[new o.Expression(e)])}return t}function floor(e){let t;if((e=o.Expression.create(e)).isPosInf()||e.isNegInf())t=e.isNegInf()?o.Expression.NegInf():o.Expression.Inf();else if(e.isNUM()){const n=e.getMultiplier().toDecimal();t=new o.Expression(n.floor())}else t=o.Expression.toFunction(c.FLOOR,[e]);return t}function mod(e,t){let n;if(e.isPosInf()||e.isNegInf()||t.isPosInf()||t.isNegInf())throw new E.UndefinedError((0,E.message)("undefinedValue"));return n=e.isNUM()&&t.isNUM()?o.Expression.create(e.getMultiplier().mod(t.getMultiplier())):e.isPolynomialLike()&&t.isPolynomialLike()&&(0,h.maxCommonVariableOccurrence)(e,t)?(0,h.polyMod)(e,t).getExpression():o.Expression.toFunction(c.MOD,[new o.Expression(e),new o.Expression(t)]),n}function gamma(e){let t;if(e.isPosInf()||e.isNegInf()){if(e.isNegInf())throw new E.UndefinedError((0,E.message)("undefinedValue"));return o.Expression.Inf()}if(e.isNUM()){const n=e.getMultiplier();if(e.isInteger()&&!e.isNegative())t=e.isZero()?o.Expression.toFunction(c.GAMMA,[e]):factorial(e.minus((0,a.one)()));else if(2n===n.denominator){const i=sqrt(o.Expression.Pi()),r=n.numerator;if(r<=0n&&r%2n==0n)t=o.Expression.toFunction(c.GAMMA,[e]);else if(1n===r)t=i;else if(r>1n){let n=(0,a.half)(),r=i;for(;!n.eq(e);)r=n.times(r),n=n.plus((0,a.one)());t=r}else{let n=(0,a.half)(),r=i;for(;!n.eq(e);)n=n.minus((0,a.one)()),r=r.div(n);t=r}}else t=o.Expression.Number((0,w.gamma)(n.toDecimal()))}else t=o.Expression.toFunction(c.GAMMA,[e]);return t}function erf(e){let t;if(e.isPosInf()||e.isNegInf())t=e.isNegInf()?(0,a.one)().neg():(0,a.one)();else if(e.isNUM()){const n=e.getMultiplier();t=n.gt("6.5")?(0,a.one)():o.Expression.Number((0,w.erf)(n.toDecimal()))}else t=o.Expression.toFunction(c.ERF,[new o.Expression(e)]);return t}function aggregator(e,t,n){let i;const r=e.map(e=>o.Expression.create(e));let a=!0;const u=r.map(e=>{const t=(0,l.getNumericOrAssumedValue)(e);return void 0===t&&(a=!1),t});if(!0===a&&u.length>0&&u.every(e=>void 0!==e)){let e=u[0];for(let n=1;n<u.length;n++){const i=u[n];t(i,e)&&(e=i)}i=e}else{if((0,s.hasAssumptions)()&&r.every(e=>!e.isComplex())&&r.some(e=>e.variables().some(e=>void 0!==(0,s.getAssumptionFor)(e))))for(const e of r)if(r.every(t=>n(e,t))){i=e;break}void 0===i&&r.length>0&&r.every(e=>e.eq(r[0]))&&(i=r[0])}return i}function toIntegerBigint(e){if(!e.isInteger())return null;const t=e.getMultiplier();return 1n!==t.denominator?null:t.numerator}},8584(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KeyValuePair=void 0;const i=n(6441),r=n(8300);class KeyValuePair{key;value;dataType=r.KEY_VALUE_PAIR;isEnumerable=!1;constructor(e,t){this.key=e,this.value=t}static isKeyValuePair(e){return(0,i.isNerdamerNativeType)(e,r.KEY_VALUE_PAIR)}copy(){return new KeyValuePair(this.key,this.value.copy())}eq(){return!1}evaluate(){return this.value.evaluate()}expand(){return this.value.expand()}gt(){return!1}gte(){return!1}lt(){return!1}lte(){return!1}text(){return`${this.key} => ${this.value.text()}`}}t.KeyValuePair=KeyValuePair},8801(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t._=void 0,t.callFunction=callFunction,t.distribute=distribute,t.setEqual=setEqual,t.functionAssign=functionAssign,t.route=function route(e,t,n){let i;if("assign"===n)i=(0,v.assign)(e,t);else if("comma"===n)i=(0,w.comma)(e,t);else if("in"===n)i=callFunction("contains",[t,e]);else if(function isRoutedOperation(e){return"pow"===e||"times"===e||"div"===e||"minus"===e||"plus"===e||"eq"===e||"lt"===e||"lte"===e||"gt"===e||"gte"===e}(n))if(m.Equation.isEquation(e)||m.Equation.isEquation(t))if(m.Equation.isEquation(e)&&m.Equation.isEquation(t)){if(!["eq","lt","lte","gt","gte"].includes(n))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));i=dispatchDynamicOperation(e,t,n)}else if(m.Equation.isEquation(e)){if(!["plus","minus","times","div"].includes(n))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));i=dispatchDynamicOperation(e,t,n)}else{if("plus"!==n&&"times"!==n)throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));i=dispatchDynamicOperation(e,t,n)}else if((0,r.isEnumerable)(e))i=routeOperation(e,t,n);else if(!h.Vector.isVector(t)&&!g.Matrix.isMatrix(t)||"minus"!==n&&"div"!==n&&"pow"!==n)i=(0,r.isEnumerable)(t)?routeOperation(t,e,n):dispatchDynamicOperation(e,t,n);else{if(!p.Expression.isExpression(e))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));if(g.Matrix.isMatrix(t)&&"pow"===n)throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));i=distribute(t=>{let i;if(p.Expression.isExpression(t))i="minus"===n?(0,T.subtract)(e,t):"div"===n?(0,b.divide)(e,t):(0,A.power)(e,t);else{const r=route(e,t,n);if(Array.isArray(r))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));i=r}return i},t)}else i=dispatchDynamicOperation(e,t,n);return i};const i=n(8533),r=n(4861),s=n(9426),o=n(4703),a=n(3148),l=n(5817),u=n(2332),c=n(6284),m=n(6184),p=n(296),d=n(1897),g=n(4462),h=n(3982),x=n(8300),E=n(294),y=n(266),v=n(2707),P=n(6255),w=n(4091),b=n(3171),M=n(6498),A=n(3957),T=n(6910);function invokeMathFunction(e,t){return e(...t)}function callFunction(e,t){1===t.length&&void 0===t[0]&&(t=[]);const n=s.mathFunctionRegistry[e];if(void 0===n)throw new o.ParserError(`Unsupported function ${e}`);const{fn:i,minArgs:r,maxArgs:a,maxPrecision:u,equationArgs:c,distElWise:d,deferArguments:x,returnBoundary:y}=n;if(r>-1&&t.length<r)throw new o.ParserError(`${e} requires a minimum of ${r} arguments but ${t.length} provided!`);if(a>-1&&t.length>a)throw new o.ParserError(`${e} allows a maximum of ${a} arguments but ${t.length} provided!`);let v;if(x){const invoke=()=>invokeMathFunction(i,t);v=y?(0,E.parserReturnBoundary)(invoke):invoke()}else{const r=[];for(const e of t){if("function"==typeof e)throw new o.ParserError((0,o.message)("malformedExpression"));r.push(e)}const s=r.map(e=>p.Expression.fromSymbolicAccess(e)??e);if("system"===n.level)for(let e=0;e<s.length;e++)if(m.Equation.isEquation(s[e])&&!c?.includes(e))throw new o.UnexpectedDataType((0,o.message)("expressionExpected",{type:"Equation"}));const a=d?s.filter(e=>h.Vector.isVector(e)||g.Matrix.isMatrix(e)):[];if(a.length>0){const t=a[0];for(const n of a){let i;if(i=h.Vector.isVector(t)?h.Vector.isVector(n)&&t.count()===n.count():g.Matrix.isMatrix(n)&&t.dimensionsMatch(n),!i)throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:e}))}v=distribute((t,n,i)=>{const r=s.map(e=>{let t=e;return h.Vector.isVector(e)?t=e.__get__([n]):g.Matrix.isMatrix(e)&&(t=e.get(n,i)),t});return callFunction(e,r)},t)}else v=!i||l.Settings.DEFER_SIMPLIFICATION?p.Expression.toFunction(e,s):invokeMathFunction(i,s);v||(v=p.Expression.toFunction(e,s))}return u&&(v.precision=u),v}function distribute(e,t){let n;return n=h.Vector.isVector(t)?t.copy().each((t,n)=>e(t,n)):t.copy().each((t,n,i)=>{const r=e(t,Number(n),Number(i));if(!p.Expression.isExpression(r))throw new o.UnexpectedDataType((0,o.message)("expressionExpected",{type:x.dataTypes[r.dataType]}));return r}),n}function setEqual(e,t){if(!p.Expression.isExpression(e)&&!p.Expression.isExpression(t))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));return new m.Equation(e,t)}function functionAssign(e,t){if(!c.Collection.isCollection(e))throw new o.UnexpectedInputError(`Invalid function declaration ${e.text()}.`);const n=[...e.getElements()],i=n.pop();if(!p.Expression.isExpression(i))throw new o.UnexpectedInputError(`Invalid function declaration ${e.text()}.`);const r=(0,d.assertPlainVariableAndGetString)(i),s=n.map(e=>{if(!p.Expression.isExpression(e))throw new o.UnexpectedInputError((0,o.message)("plainVariableExpected",{input:e.text()}));return(0,d.assertPlainVariableAndGetString)(e)});return(0,a.setFunction)({type:"symbolic",name:r,minArgs:s.length,maxArgs:s.length,fn:(0,y.wrappedFunction)(t,s)}),p.Expression.toFunction(r,s.map(e=>p.Expression.Variable(e)))}function routeOperation(e,t,n){const i=e[n](t);return"boolean"==typeof i?p.Expression.create(Number(i)):i}function dispatchDynamicOperation(e,t,n){const i=e.isEnumerable||m.Equation.isEquation(e),r=i?e:t,s=i?t:e,a=r[n];if(!a)throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));const l=a.call(r,s);return"boolean"==typeof l?p.Expression.create(Number(l)):l}t._={plus:P.add,minus:T.subtract,times:M.multiply,div:b.divide,pow:A.power,mod:function modulo(e,t){if(!p.Expression.isExpression(e)||!p.Expression.isExpression(t))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));return e.mod(t)},percent:function percentage(e){if(!p.Expression.isExpression(e))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));return e.div(100)},assertEQ:u.assertEQ,assertGT:u.assertGT,assertGTE:u.assertGTE,assertLT:u.assertLT,assertLTE:u.assertLTE,comma:w.comma,assign:v.assign,functionAssign,setEqual,lt:function lt(e,t){return p.Expression.create(Number(e.lt(t)))},lte:function lte(e,t){return p.Expression.create(Number(e.lte(t)))},eq:function eq(e,t){return p.Expression.create(Number(e.eq(t)))},gt:function gt(e,t){return p.Expression.create(Number(e.gt(t)))},gte:function gte(e,t){return p.Expression.create(Number(e.gte(t)))},minusPrefix:T.subtractPrefix,plusPrefix:P.addPrefix,factorial:i.factorial,doubleFactorial:i.doubleFactorial}},8891(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.remove=function remove(e,t){const n=e.indexOf(t);return n>-1&&e.splice(n,1),e},t.isEqualArray=function isEqualArray(e,t){if(e.length!==t.length)return!1;for(const n of e)if(!t.includes(n))return!1;return!0},t.combinedArray=function combinedArray(e,t){return[...new Set(e.concat(t))].sort()},t.intersection=function intersection(e,t){if(e.length>t.length)return intersection(t,e);const n=[];for(const i of e)t.includes(i)&&n.push(i);return n},t.syncSort=function syncSort(e,t,n){const i=e.map((e,t)=>t);i.sort((t,i)=>n(e[t],e[i]));const r=i.map(t=>e[t]),s=i.map(e=>t[e]);return[r,s]},t.allEqual=function allEqual(e){if(0===e.length)return!0;const t=e[0];return e.every(e=>e===t)}},8989(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toCommonDenominator=void 0,t.rationalize=rationalize,t.simplifyRadicals=function simplifyRadicals(e){if(!e.isProduct())return e;const t=e.getMultiplier(),n=e.getPower();let s=(0,r.one)();const o=e.toLinearAndUnitMultiplier(),a=o.getMultiplier(),l=o.elementsArray().map(e=>e.hasRadical()?rationalize(e):e),u=[];for(let e=0;e<l.length;e++){if(u.includes(e))continue;let t=l[e];const n=t.getPower();for(let r=e+1;r<l.length;r++){const e=l[r];if(n.eq(e.getPower())){const s=t.toLinearAndUnitMultiplier(),o=e.toLinearAndUnitMultiplier();if(!s.isComplex()&&!o.isComplex()&&s.gte(0)&&o.gte(0)){const a=t.getMultiplier().times(e.getMultiplier());t=s.isNUM()&&o.isNUM()?s.times(o).pow(n).times(a):i.Expression.setPower(s.times(o),n).times(a),u.push(r)}}}s=s.times(t)}return s.pow(n).times(t).times(a)},t.cancelCommonFactors=function cancelCommonFactors(e){if(!e.isProduct()||!e.isLinear())return e;let t=e;const[n,i]=(0,l.subRadicals)(e),[r,a]=(0,l.uSubConstants)(n,i);let c=r.getNumerator(),m=r.getDenominator();function reduce(e,t){const n=new s.Polynomial(e);for(const i of(0,u.polyFactorExpressions)(t)){if(i.isNUM())continue;const r=new s.Polynomial(i),[a,l]=(0,o.divide)(n,r);if(l.isZero()){e=a;const[n,i]=(0,o.divide)(t,r);t=n}}return[e,t]}return c.isPolynomialLike()&&m.isPolynomialLike()&&([c,m]=reduce(c,m),[m,c]=reduce(m,c),t=c.div(m)),(0,l.uUnSub)(t,a)};const i=n(296),r=n(6099),s=n(2116),o=n(9565),a=n(5523);Object.defineProperty(t,"toCommonDenominator",{enumerable:!0,get:function(){return a.toCommonDenominator}});const l=n(886),u=n(2724);function rationalize(e){const t=e.getNumerator(),n=e.getDenominator();if(n.isOne()||!n.isProduct()&&n.isLinear())return e;const i=n.getPower(),s=n.toLinearAndUnitMultiplier();return t.div(s.times(n.getMultiplier())).times(s.pow((0,r.one)().minus(i)))}},9009(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DecimalMatrix=void 0;const r=i(n(3110));t.DecimalMatrix=class DecimalMatrix{cols;data;rows;constructor(e){this.rows=e.length,this.cols=e.length>0?e[0].length:0,this.data=e.map(e=>e.map(e=>new r.default(e)))}static solve(e,t){const n=e.rows;if(n!==e.cols||n!==t.length)return null;const i=[];for(let s=0;s<n;s++){const o=[];for(let t=0;t<n;t++)o.push(new r.default(e.get(s,t)));o.push(new r.default(t[s])),i.push(o)}for(let e=0;e<n;e++){let t=i[e][e].abs(),s=e;for(let r=e+1;r<n;r++){const n=i[r][e].abs();n.greaterThan(t)&&(t=n,s=r)}if(t.lessThan(new r.default("1e-30")))return null;s!==e&&([i[e],i[s]]=[i[s],i[e]]);const o=i[e][e];for(let t=e+1;t<n;t++){const r=i[t][e].div(o);for(let s=e;s<=n;s++)i[t][s]=i[t][s].minus(r.times(i[e][s]))}}const s=new Array(n);for(let e=n-1;e>=0;e--){let t=i[e][n];for(let r=e+1;r<n;r++)t=t.minus(i[e][r].times(s[r]));if(i[e][e].abs().lessThan(new r.default("1e-30")))return null;s[e]=t.div(i[e][e])}return s}get(e,t){return this.data[e][t]}}},9350(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.zTrim=zTrim,t.zIsZero=zIsZero,t.zLC=zLC,t.zSub=function zSub(e,t){const n=Math.max(e.length,t.length),i=new Array(n).fill(0n);for(let r=0;r<n;r++)i[r]=(e[r]??0n)-(t[r]??0n);return zTrimInPlace(i)},t.zTryDivExact=zTryDivExact,t.zDivExact=zDivExact,t.zScale=function zScale(e,t){return 0n===t?[0n]:1n===t?zTrim(e):zTrimInPlace(e.map(e=>(e??0n)*t))},t.zNormalizePrimitiveSign=zNormalizePrimitiveSign,t.zNormalizeSign=zNormalizeSign,t.zPrimitivePart=zPrimitivePart,t.zPseudoRemainder=zPseudoRemainder,t.zGcdPrimitivePRS=zGcdPrimitivePRS,t.zGcdFull=function zGcdFull(e,t){if(zIsZero(e))return zNormalizeSign(t);if(zIsZero(t))return zNormalizeSign(e);const n=zNormalizePrimitiveSign(e).content,r=zNormalizePrimitiveSign(t).content,s=(0,i.gcd)(n,r),o=0n===n||1n===n?zTrim(e.slice()):zDivExact(e,[n]),a=0n===r||1n===r?zTrim(t.slice()):zDivExact(t,[r]),l=zGcdPrimitivePRS(o,a);return zNormalizeSign(0n===s||1n===s?l:l.map(e=>e*s))},t.zDerivative=function zDerivative(e){const t=zTrimInPlace(e.slice());if(t.length<=1)return[0n];const n=new Array(t.length-1).fill(0n);for(let e=1;e<t.length;e++)n[e-1]=(t[e]??0n)*BigInt(e);return zTrimInPlace(n)},t.zShift=function zShift(e,t){if(t<=0)return zTrim(e);const n=zTrimInPlace(e.slice());if(1===n.length&&0n===n[0])return[0n];const i=new Array(n.length+t).fill(0n);for(let e=0;e<n.length;e++)i[e+t]=n[e]??0n;return i},t.fpAdd=function fpAdd(e,t){if(e.p!==t.p)throw new Error("fpAdd: modulus mismatch");const n=e.p,r=Math.max(e.coeffs.length,t.coeffs.length),s=new Array(r).fill(0n);for(let o=0;o<r;o++)s[o]=(0,i.modNorm)((e.coeffs[o]??0n)+(t.coeffs[o]??0n),n);return{p:n,coeffs:zTrimInPlace(s)}},t.fpSub=function fpSub(e,t){if(e.p!==t.p)throw new Error("fpSub: modulus mismatch");const n=e.p,r=Math.max(e.coeffs.length,t.coeffs.length),s=new Array(r).fill(0n);for(let o=0;o<r;o++)s[o]=(0,i.modNorm)((e.coeffs[o]??0n)-(t.coeffs[o]??0n),n);return{p:n,coeffs:zTrimInPlace(s)}},t.fpScale=fpScale,t.fpMul=function fpMul(e,t){if(e.p!==t.p)throw new Error("fpMul: modulus mismatch");const n=e.p,r=fpTrim(e).coeffs,s=fpTrim(t).coeffs;if(1===r.length&&0n===r[0])return{p:n,coeffs:[0n]};if(1===s.length&&0n===s[0])return{p:n,coeffs:[0n]};const o=new Array(r.length+s.length-1).fill(0n);for(let e=0;e<r.length;e++){const t=r[e]??0n;if(0n!==t)for(let r=0;r<s.length;r++){const a=s[r]??0n;0n!==a&&(o[e+r]=(0,i.modNorm)((o[e+r]??0n)+t*a,n))}}return{p:n,coeffs:zTrimInPlace(o)}},t.fpDivRem=fpDivRem,t.fpGCD=function fpGCD(e,t){if(e.p!==t.p)throw new Error("fpGCD: modulus mismatch");let n=fpTrim(e),r=fpTrim(t);for(;!fpIsZero(r);){const{r:e}=fpDivRem(n,r);n=r,r=fpTrim(e)}return function fpMonic(e){const t=fpTrim(e);if(fpIsZero(t))return t;const n=function fpLC(e){const t=fpTrim(e).coeffs;return t[t.length-1]??0n}(t),r=(0,i.modInv)(n,t.p);return fpScale(t,r)}(n)},t.zTrimMod=zTrimMod,t.zToSymmetricMod=function zToSymmetricMod(e,t){return e.map(e=>(0,i.modSymmetric)(e,t))},t.zAddMod=function zAddMod(e,t,n){const r=Math.max(e.length,t.length),s=new Array(r).fill(0n);for(let o=0;o<r;o++)s[o]=(0,i.modNorm)((e[o]??0n)+(t[o]??0n),n);return zTrimInPlace(s)},t.zSubMod=function zSubMod(e,t,n){const r=Math.max(e.length,t.length),s=new Array(r).fill(0n);for(let o=0;o<r;o++)s[o]=(0,i.modNorm)((e[o]??0n)-(t[o]??0n),n);return zTrimInPlace(s)},t.zScaleMod=function zScaleMod(e,t,n){const r=(0,i.modNorm)(t,n);return 0n===r?[0n]:zTrimInPlace(e.map(e=>(0,i.modNorm)((e??0n)*r,n)))},t.zMulMod=function zMulMod(e,t,n){if(e=zTrimMod(e,n),t=zTrimMod(t,n),zIsZero(e)||zIsZero(t))return[0n];const r=new Array(e.length+t.length-1).fill(0n);for(let s=0;s<e.length;s++){const o=(0,i.modNorm)(e[s]??0n,n);if(0n!==o)for(let e=0;e<t.length;e++){const a=(0,i.modNorm)(t[e]??0n,n);0n!==a&&(r[s+e]=(0,i.modNorm)((r[s+e]??0n)+o*a,n))}}return zTrimInPlace(r)},t.zDivRemMod=function zDivRemMod(e,t,n){const r=zTrimMod(e,n).slice(),s=zTrimMod(t,n).slice();if(zIsZero(s))throw new Error("zDivRemMod: division by zero polynomial");const o=zDeg(r),a=zDeg(s);if(o<a)return{q:[0n],r};const l=(0,i.modInv)(zLC(s),n),u=new Array(o-a+1).fill(0n),c=r;for(;zDeg(c)>=a&&!zIsZero(c);){const e=zDeg(c),t=e-a,r=(0,i.modNorm)((c[e]??0n)*l,n);u[t]=(0,i.modNorm)((u[t]??0n)+r,n);for(let e=0;e<=a;e++)c[e+t]=(0,i.modNorm)((c[e+t]??0n)-r*(s[e]??0n),n);zTrimInPlace(c)}return{q:zTrimInPlace(u),r:zTrimInPlace(c)}},t.isOnePoly=function isOnePoly(e){return e.isConstant()&&1n===e.constantTerm()},t.mvNormalize=function mvNormalize(e){const t=e.clone();return t.trim(),t},t.mvDivideByCoeffContent=mvDivideByCoeffContent,t.mvNormalizePrimitiveSignLex=mvNormalizePrimitiveSignLex,t.mvNormalizeSignUnivariateInVar=function mvNormalizeSignUnivariateInVar(e,t){if(0===e.terms.size)return r.MultiPoly.zero();let n=e;const i=function mvDegree(e,t){if(0===e.terms.size)return-1;let n=0;for(const i of e.terms.keys()){const e=(0,r.keyToExp)(i).get(t)??0;e>n&&(n=e)}return n}(n,t);if(i<=0)return n;let s=0n;for(const[e,o]of n.terms){const n=(0,r.keyToExp)(e);if((n.get(t)??0)!==i)continue;let a=!0;for(const[e,i]of n.entries())if(e!==t&&0!==i){a=!1;break}if(a){s=o;break}}return s<0n&&(n=scalePoly(n,-1n)),n},t.denseToKey=function denseToKey(e){return(0,r.expToKey)(function denseToExponents(e){const t=new Map;for(let n=0;n<e.length;n++){const i=e[n]??0;0!==i&&t.set(n,i)}return t}(e))},t.mvVariablesSorted=function mvVariablesSorted(e){return Array.from(e.variables()).sort((e,t)=>e-t)},t.mapCombineInPlace=mapCombineInPlace,t.addPoly=addPoly,t.subPoly=subPoly,t.negPoly=function negPoly(e){const t=new r.MultiPoly;for(const[n,i]of e.terms)0n!==i&&t.terms.set(n,-i);return t.trim(),t},t.scalePoly=scalePoly,t.mulPoly=mulPoly,t.equalPoly=function equalPoly(e,t){if(e===t)return!0;if(e.terms.size!==t.terms.size)return!1;for(const[n,i]of e.terms)if((t.terms.get(n)??0n)!==i)return!1;return!0},t.leadTermLex=leadTermLex,t.mvNumVars=mvNumVars,t.mvExactDiv=mvExactDiv,t.mvExactDivByMonomial=function mvExactDivByMonomial(e,t){return 1!==t.terms.size?null:mvExactDiv(e,t)},t.monoDividesDense=monoDividesDense,t.monoSubDense=monoSubDense,t.substituteVarIndex=function substituteVarIndex(e,t,n){if(0===e.terms.size)return r.MultiPoly.zero();const i=new r.MultiPoly;for(const[s,o]of e.terms.entries()){const e=(0,r.keyToExp)(s),a=e.get(t)??0;let l=o;if(0!==a){let i=n,r=1n,s=BigInt(a);for(;s>0n;)1n&s&&(r*=i),i*=i,s>>=1n;l*=r,e.delete(t)}const u=(0,r.expToKey)(e),c=(i.terms.get(u)??0n)+l;0n===c?i.terms.delete(u):i.terms.set(u,c)}return i.trim(),i},t.removeVarIndex=function removeVarIndex(e,t){if(0===e.terms.size)return r.MultiPoly.zero();const n=new r.MultiPoly;for(const[i,s]of e.terms.entries()){const e=(0,r.keyToExp)(i),o=new Map;for(const[n,i]of e.entries())n!==t&&o.set(n>t?n-1:n,i);const a=(0,r.expToKey)(o);n.terms.set(a,(n.terms.get(a)??0n)+s),0n===n.terms.get(a)&&n.terms.delete(a)}return n.trim(),n},t.addVarIndex=function addVarIndex(e,t){if(0===e.terms.size)return r.MultiPoly.zero();const n=new r.MultiPoly;for(const[i,s]of e.terms.entries()){const e=(0,r.keyToExp)(i),o=new Map;for(const[n,i]of e.entries())o.set(n>=t?n+1:n,i);const a=(0,r.expToKey)(o);n.terms.set(a,(n.terms.get(a)??0n)+s),0n===n.terms.get(a)&&n.terms.delete(a)}return n.trim(),n},t.fromUnivariate=function fromUnivariate(e,t=0){const n=new r.MultiPoly;for(let i=0;i<e.length;i++){const s=e[i];if(0===s)continue;const o=new Map;i>0&&o.set(t,i),n.terms.set((0,r.expToKey)(o),BigInt(s))}return n},t.toUnivariate=function toUnivariate(e,t=0){for(const n of e.terms.keys()){const e=(0,r.keyToExp)(n);for(const n of e.keys())if(n!==t)return null}const n=e.degree(t);if(n<0)return[0];const i=new Array(n+1).fill(0);for(const[n,s]of e.terms)i[(0,r.keyToExp)(n).get(t)??0]=bigintToSafeNumber(s,"toUnivariate");return function trimTrailingZeros(e){let t=e.length-1;for(;t>0&&0===e[t];)t--;return e.slice(0,t+1)}(i)},t.viewAsUnivariate=viewAsUnivariate,t.fromUnivariateView=fromUnivariateView,t.pseudoDivide=pseudoDivide,t.multiPolyGCD=multiPolyGCD,t.mvContentInVar=mvContentInVar,t.primitivePart=function primitivePart(e,t){const n=mvContentInVar(e,t);if(n.isConstant()&&1n===n.constantTerm())return e;const i=viewAsUnivariate(e,t),s=[];for(const[e,t]of i){const i=n.variables();if(0===i.size){const i=n.constantTerm(),o=new r.MultiPoly;for(const[t,n]of e.terms)o.terms.set(t,n/i);s.push([o,t])}else{const r=Math.min(...i),[o]=pseudoDivide(e,n,r);s.push([mvPrimitiveNormalized(o),t])}}return fromUnivariateView(s,t)},t.quadraticCoeffsInVar=function quadraticCoeffsInVar(e,t){const n=new r.MultiPoly,i=new r.MultiPoly,s=new r.MultiPoly;for(const[o,a]of e.terms){const e=(0,r.keyToExp)(o),l=e.get(t)??0;e.delete(t);const u=(0,r.expToKey)(e);2===l?n.terms.set(u,(n.terms.get(u)??0n)+a):1===l?i.terms.set(u,(i.terms.get(u)??0n)+a):0===l&&s.terms.set(u,(s.terms.get(u)??0n)+a)}return n.trim(),i.trim(),s.trim(),{A:n,B:i,C:s}};const i=n(4988),r=n(4737);function zTrim(e){let t=e.length;for(;t>1&&0n===e[t-1];)t--;return t===e.length?e:e.slice(0,t)}function zTrimInPlace(e){for(;e.length>1&&0n===e[e.length-1];)e.pop();return e}function zIsZero(e){for(let t=e.length-1;t>=0;t--)if(0n!==(e[t]??0n))return!1;return!0}function zDeg(e){for(let t=e.length-1;t>=0;t--)if(0n!==(e[t]??0n))return t;return 0}function zLC(e){for(let t=e.length-1;t>=0;t--){const n=e[t]??0n;if(0n!==n)return n}return 0n}function zTryDivExact(e,t){const{q:n,r:i}=function zDivRem(e,t){if(e=zTrim(e.slice()),zIsZero(t=zTrim(t.slice())))throw new Error("zDivRem: division by zero polynomial");const n=zDeg(e),i=zDeg(t);if(n<i)return{q:[0n],r:e};const r=zLC(t),s=new Array(n-i+1).fill(0n),o=e.slice();for(let e=n;e>=i;e--){const n=e-i,a=o[e]??0n;if(0n===a)continue;if(a%r!==0n)continue;const l=a/r;s[n]+=l;for(let e=0;e<=i;e++)o[n+e]=(o[n+e]??0n)-l*(t[e]??0n)}return{q:zTrimInPlace(s),r:zTrimInPlace(o)}}(e,t);return zIsZero(i)?n:null}function zDivExact(e,t){const n=zTryDivExact(e,t);if(null===n)throw new Error("zDivExact: non-exact division");return n}function zNormalizePrimitiveSign(e){const t=zTrimInPlace(e.slice());if(1===t.length&&0n===t[0])return{content:0n,primitive:[0n]};let n=(0,i.contentBigint)(t);0n===n&&(n=1n);const r=t.map(e=>(e??0n)/n);if((r[r.length-1]??0n)<0n)for(let e=0;e<r.length;e++)r[e]=-r[e];return{content:n,primitive:zTrimInPlace(r)}}function zNormalizeSign(e){let t=zTrim(e.slice());return 0===t.length?[0n]:1===t.length?0n===t[0]?[0n]:[t[0]<0n?-t[0]:t[0]]:((t[t.length-1]??0n)<0n&&(t=t.map(e=>-e)),t)}function zPrimitivePart(e){return zNormalizePrimitiveSign(e).primitive}function zPseudoRemainder(e,t){const n=zTrim(e.slice()),r=zTrim(t.slice());if(zIsZero(r))throw new Error("zPseudoRemainder: divide by zero");const s=r.length-1,o=r[s];let a=n;for(;!zIsZero(a)&&a.length-1>=s;){const e=a.length-1,t=e-s,n=a[e],l=a.map(e=>e*o);for(let e=0;e<=s;e++)l[e+t]-=n*(r[e]??0n);a=zTrimInPlace(l);const u=(0,i.contentBigint)(a);if(u>1n){for(let e=0;e<a.length;e++)a[e]/=u;zTrimInPlace(a)}}return a}function zGcdPrimitivePRS(e,t){let n=zPrimitivePart(e),i=zPrimitivePart(t);if(zIsZero(n)&&zIsZero(i))return[0n];if(zIsZero(n))return zPrimitivePart(i);if(zIsZero(i))return zPrimitivePart(n);for(;!zIsZero(i);){const e=zPseudoRemainder(n,i);n=i,i=zPrimitivePart(e)}return zPrimitivePart(n)}function fpTrim(e){const t=e.coeffs.slice(),n=e.p;for(let e=0;e<t.length;e++)t[e]=(0,i.modNorm)(t[e]??0n,n);return zTrimInPlace(t),{p:n,coeffs:t}}function fpIsZero(e){const t=fpTrim(e);return 1===t.coeffs.length&&0n===t.coeffs[0]}function fpScale(e,t){const n=e.p,r=(0,i.modNorm)(t,n);if(0n===r)return{p:n,coeffs:[0n]};if(1n===r)return fpTrim(e);const s=e.coeffs.map(e=>(0,i.modNorm)((e??0n)*r,n));return{p:n,coeffs:zTrimInPlace(s)}}function fpDivRem(e,t){if(e.p!==t.p)throw new Error("fpDivRem: modulus mismatch");const n=e.p,r=fpTrim(e).coeffs.slice(),s=fpTrim(t).coeffs.slice();if(zTrimInPlace(r),zTrimInPlace(s),1===s.length&&0n===s[0])throw new Error("fpDivRem: division by zero polynomial");if(1===r.length&&0n===r[0])return{q:{p:n,coeffs:[0n]},r:{p:n,coeffs:[0n]}};const o=r.length-1,a=s.length-1;if(o<a)return{q:{p:n,coeffs:[0n]},r:{p:n,coeffs:r}};const l=new Array(o-a+1).fill(0n),u=(0,i.modInv)(s[a]??0n,n);for(let e=o-a;e>=0;e--){const t=(0,i.modNorm)((r[a+e]??0n)*u,n);if(l[e]=t,0n!==t)for(let o=0;o<=a;o++)r[o+e]=(0,i.modNorm)((r[o+e]??0n)-t*(s[o]??0n),n)}const c=r.slice(0,a);return zTrimInPlace(l),zTrimInPlace(c),{q:{p:n,coeffs:l},r:{p:n,coeffs:c.length?c:[0n]}}}function zTrimMod(e,t){return zTrimInPlace(e.map(e=>(0,i.modNorm)(e??0n,t)))}function compareDenseLex(e,t){const n=Math.max(e.length,t.length);for(let i=0;i<n;i++){const n=e[i]??0,r=t[i]??0;if(n!==r)return n>r?1:-1}return 0}function mvDivideByCoeffContent(e){const t=(0,i.contentBigint)(e.terms.values());if(0n===t)return{content:0n,primitive:r.MultiPoly.zero()};if(1n===t)return{content:1n,primitive:e.clone()};const n=new r.MultiPoly;for(const[i,r]of e.terms){if(r%t!==0n)throw new Error("mvDivideByCoeffContent: non-exact division");const e=r/t;0n!==e&&n.terms.set(i,e)}return n.trim(),{content:t,primitive:n}}function mvNormalizePrimitiveSignLex(e){if(0===e.terms.size)return{content:0n,primitive:r.MultiPoly.zero()};const{content:t,primitive:n}=mvDivideByCoeffContent(e);if(0===n.terms.size)return{content:t,primitive:n};const i=leadTermLex(n,mvNumVars(n));return i&&i.coeff<0n?{content:-t,primitive:scalePoly(n,-1n)}:{content:t,primitive:n}}function mapCombineInPlace(e,t,n,i,r){for(const[s,o]of t){const t=n(e.get(s)??r(),o);i(t)?e.delete(s):e.set(s,t)}}function addPoly(e,t){const n=new r.MultiPoly(e.terms);return mapCombineInPlace(n.terms,t.terms,(e,t)=>e+t,e=>0n===e,()=>0n),n.trim(),n}function subPoly(e,t){const n=new r.MultiPoly(e.terms);return mapCombineInPlace(n.terms,t.terms,(e,t)=>e-t,e=>0n===e,()=>0n),n.trim(),n}function scalePoly(e,t){if(0n===t)return r.MultiPoly.zero();if(1n===t)return e.clone();const n=new r.MultiPoly;for(const[i,r]of e.terms){const e=r*t;0n!==e&&n.terms.set(i,e)}return n.trim(),n}function mulPoly(e,t){if(0===e.terms.size||0===t.terms.size)return r.MultiPoly.zero();const n=new r.MultiPoly;for(const[i,s]of e.terms){const e=(0,r.keyToExp)(i);for(const[i,o]of t.terms){const t=(0,r.keyToExp)(i),a=new Map(e);for(const[e,n]of t)a.set(e,(a.get(e)??0)+n);const l=(0,r.expToKey)(a),u=(n.terms.get(l)??0n)+s*o;0n===u?n.terms.delete(l):n.terms.set(l,u)}}return n.trim(),n}function leadTermLex(e,t){let n=null,i=0n;for(const[s,o]of e.terms.entries()){if(0n===o)continue;const e=(0,r.keyToExp)(s),a=new Array(t).fill(0);for(const[n,i]of e.entries())n>=0&&n<t&&(a[n]=i);(!n||compareDenseLex(a,n)>0)&&(n=a,i=o)}return n?{exp:n,coeff:i}:null}function mvNumVars(...e){let t=-1;for(const n of e)for(const e of n.terms.keys()){const n=(0,r.keyToExp)(e);for(const e of n.keys())e>t&&(t=e)}return t+1}function mvExactDiv(e,t){return function exactDivLex(e,t,n){const i=leadTermLex(t,n);if(!i)return null;let s=e.clone();s.trim();const o=r.MultiPoly.zero();for(;!s.isZero();){const e=leadTermLex(s,n);if(!e)break;if(!monoDividesDense(i.exp,e.exp))return null;const a=monoSubDense(e.exp,i.exp);if(0n===i.coeff)return null;if(e.coeff%i.coeff!==0n)return null;const l=e.coeff/i.coeff,u=r.MultiPoly.monomial(l,a),c=addPoly(o,u);o.terms=c.terms,s=subPoly(s,mulPoly(u,t))}return o.trim(),o}(e,t,mvNumVars(e,t))}function monoDividesDense(e,t){const n=Math.max(e.length,t.length);for(let i=0;i<n;i++)if((e[i]??0)>(t[i]??0))return!1;return!0}function monoSubDense(e,t){const n=Math.max(t.length,e.length),i=new Array(n).fill(0);for(let r=0;r<n;r++)i[r]=(e[r]??0)-(t[r]??0);return i}const s=BigInt(Number.MAX_SAFE_INTEGER);function bigintToSafeNumber(e,t){if(e>s||e<-s)throw new Error(`${t}: coefficient ${e.toString()} exceeds Number.MAX_SAFE_INTEGER`);return Number(e)}function viewAsUnivariate(e,t){const n=new Map;for(const[i,s]of e.terms){const e=(0,r.keyToExp)(i),o=e.get(t)??0,a=new Map(e);a.delete(t);const l=(0,r.expToKey)(a);let u=n.get(o);void 0===u&&(u=r.MultiPoly.zero(),n.set(o,u));const c=(u.terms.get(l)??0n)+s;0n===c?u.terms.delete(l):u.terms.set(l,c)}const i=[];for(const[e,t]of n)t.isZero()||i.push([t,e]);return i.sort((e,t)=>e[1]-t[1]),i}function fromUnivariateView(e,t){const n=r.MultiPoly.zero();for(const[i,s]of e)for(const[e,o]of i.terms){const i=(0,r.keyToExp)(e);s>0&&i.set(t,(i.get(t)??0)+s);const a=(0,r.expToKey)(i),l=n.terms.get(a)??0n;n.terms.set(a,l+o)}return n.trim(),n}function mvPrimitiveNormalized(e){return e.isZero()?r.MultiPoly.zero():mvNormalizePrimitiveSignLex(e).primitive}function pseudoDivide(e,t,n){if(t.isZero())throw new Error("Division by zero");const i=t.degree(n),s=e.degree(n);if(s<i)return[r.MultiPoly.zero(),e.clone()];const o=t.leadingCoeff(n);let a=r.MultiPoly.zero(),l=e.clone(),u=s-i+1;for(;!l.isZero()&&l.degree(n)>=i;){const e=l.degree(n),s=l.leadingCoeff(n),c=e-i,m=new r.MultiPoly;for(const[e,t]of s.terms){const i=(0,r.keyToExp)(e);c>0&&i.set(n,(i.get(n)??0)+c),m.terms.set((0,r.expToKey)(i),t)}a=addPoly(mulPoly(a,o),m),l=subPoly(mulPoly(l,o),mulPoly(m,t)),u--}let c=r.MultiPoly.constant(1n);for(let e=0;e<u;e++)c=mulPoly(c,o);return a=mulPoly(a,c),l=mulPoly(l,c),[a,l]}function multiPolyGCD(e,t,n){if(e.isZero())return t.isZero()?r.MultiPoly.constant(1n):mvPrimitiveNormalized(t);if(t.isZero())return mvPrimitiveNormalized(e);let i=mvPrimitiveNormalized(e),s=mvPrimitiveNormalized(t);for(i.degree(n)<s.degree(n)&&([i,s]=[s,i]);!s.isZero();){const[,e]=pseudoDivide(i,s,n);if(e.isZero())break;i=s,s=mvPrimitiveNormalized(e)}return mvPrimitiveNormalized(s)}function mvContentInVar(e,t){const n=viewAsUnivariate(e,t);if(0===n.length)return r.MultiPoly.constant(1n);if(1===n.length)return mvPrimitiveNormalized(n[0][0]);let s=n[0][0];for(let e=1;e<n.length;e++){const t=new Set([...s.variables(),...n[e][0].variables()]);if(0===t.size)s=r.MultiPoly.constant((0,i.gcd)(s.constantTerm(),n[e][0].constantTerm()));else{const i=Math.min(...t);s=multiPolyGCD(s,n[e][0],i)}if(s.isConstant()&&1n===s.constantTerm())return r.MultiPoly.constant(1n)}return mvPrimitiveNormalized(s)}},9426(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mathFunctionRegistry=void 0;const i=n(2724),r=n(4692),s=n(3725),o=n(2766),a=n(9684),l=n(2634),u=n(2012),c=n(7410),m=n(5530),p=n(7571),d=n(6698),g=n(6082),h=n(7867),x=n(8533),E=n(1649),y=n(6925),v=n(706),P=n(2295),w=n(6950),b=n(6351),M=n(6284),A=n(6528),T=n(6184),N=n(6099),O=n(1897),R=n(6430),F=n(4462),D=n(430),k=n(8300),z=n(294),L=n(1668),V=n(2707),U=n(6913),q=n(5598),B=n(3552),$=n(3982),Z=n(4703),j=n(4600),G=n(7741),H=n(886);function entry(e){return{fn:e.fn,minArgs:e.minArgs,maxArgs:e.maxArgs,maxPrecision:e.maxPrecision,equationArgs:e.equationArgs,distElWise:e.distElWise,deferArguments:e.deferArguments,normalizeDeferredArguments:e.normalizeDeferredArguments,bracketlessStatement:e.bracketlessStatement,returnBoundary:e.returnBoundary,usage:e.usage??"notation",level:"system"}}t.mathFunctionRegistry={cos:entry({fn:E.cos,minArgs:1,maxArgs:1,distElWise:!0}),sin:entry({fn:E.sin,minArgs:1,maxArgs:1,distElWise:!0}),tan:entry({fn:E.tan,minArgs:1,maxArgs:1,distElWise:!0}),sec:entry({fn:E.sec,minArgs:1,maxArgs:1,distElWise:!0}),csc:entry({fn:E.csc,minArgs:1,maxArgs:1,distElWise:!0}),cot:entry({fn:E.cot,minArgs:1,maxArgs:1,distElWise:!0}),acos:entry({fn:E.acos,minArgs:1,maxArgs:1,distElWise:!0}),asin:entry({fn:E.asin,minArgs:1,maxArgs:1,distElWise:!0}),atan:entry({fn:E.atan,minArgs:1,maxArgs:1,distElWise:!0}),asec:entry({fn:E.asec,minArgs:1,maxArgs:1,distElWise:!0}),acsc:entry({fn:E.acsc,minArgs:1,maxArgs:1,distElWise:!0}),acot:entry({fn:E.acot,minArgs:1,maxArgs:1,distElWise:!0}),atan2:entry({fn:E.atan2,minArgs:2,maxArgs:2,distElWise:!0}),cosh:entry({fn:E.cosh,minArgs:1,maxArgs:1,distElWise:!0}),sinh:entry({fn:E.sinh,minArgs:1,maxArgs:1,distElWise:!0}),tanh:entry({fn:E.tanh,minArgs:1,maxArgs:1,distElWise:!0}),sech:entry({fn:E.sech,minArgs:1,maxArgs:1,distElWise:!0}),csch:entry({fn:E.csch,minArgs:1,maxArgs:1,distElWise:!0}),coth:entry({fn:E.coth,minArgs:1,maxArgs:1,distElWise:!0}),acosh:entry({fn:E.acosh,minArgs:1,maxArgs:1,distElWise:!0}),asinh:entry({fn:E.asinh,minArgs:1,maxArgs:1,distElWise:!0}),atanh:entry({fn:E.atanh,minArgs:1,maxArgs:1,distElWise:!0}),asech:entry({fn:E.asech,minArgs:1,maxArgs:1,distElWise:!0}),acsch:entry({fn:E.acsch,minArgs:1,maxArgs:1,distElWise:!0}),acoth:entry({fn:E.acoth,minArgs:1,maxArgs:1,distElWise:!0}),abs:entry({fn:x.abs,minArgs:1,maxArgs:1,distElWise:!0}),sqrt:entry({fn:x.sqrt,minArgs:1,maxArgs:1,distElWise:!0}),nthroot:entry({fn:x.nthroot,minArgs:2,maxArgs:2,distElWise:!0}),cbrt:entry({fn:x.cbrt,minArgs:1,maxArgs:1,distElWise:!0}),subst:entry({fn:H.subst,minArgs:3,maxArgs:3,distElWise:!0}),log:entry({fn:x.log,minArgs:1,maxArgs:2,distElWise:!0}),exp:entry({fn:x.exp,minArgs:1,maxArgs:1,distElWise:!0}),erf:entry({fn:x.erf,minArgs:1,maxArgs:1,distElWise:!0}),erfc:entry({fn:x.erfc,minArgs:1,maxArgs:1,distElWise:!0}),gamma:entry({fn:x.gamma,minArgs:1,maxArgs:1,distElWise:!0}),[k.DIRAC]:entry({fn:x.dirac,minArgs:1,maxArgs:1,distElWise:!0}),[k.HEAVISIDE]:entry({fn:x.heaviside,minArgs:1,maxArgs:1,distElWise:!0}),hypot:entry({fn:h.hypot,minArgs:2,maxArgs:2,distElWise:!0}),[k.FACTORIAL]:entry({fn:x.factorial,minArgs:1,maxArgs:1,distElWise:!0}),factorial:entry({fn:x.factorial,minArgs:1,maxArgs:1,distElWise:!0}),[k.DOUBLE_FACTORIAL]:entry({fn:x.doubleFactorial,minArgs:1,maxArgs:1,distElWise:!0}),expand:entry({fn:G.expand,minArgs:1,maxArgs:1,distElWise:!0}),numeric:entry({fn:L.numeric,minArgs:1,maxArgs:2,equationArgs:[0],distElWise:!1,deferArguments:!0}),round:entry({fn:x.round,minArgs:1,maxArgs:2,distElWise:!0}),sign:entry({fn:x.sign,minArgs:1,maxArgs:1,distElWise:!0}),floor:entry({fn:x.floor,minArgs:1,maxArgs:1,distElWise:!0}),ceil:entry({fn:x.ceiling,minArgs:1,maxArgs:1,distElWise:!0}),ceiling:entry({fn:x.ceiling,minArgs:1,maxArgs:1,distElWise:!0}),trunc:entry({fn:y.trunc,minArgs:1,maxArgs:1,distElWise:!0}),mod:entry({fn:x.mod,minArgs:2,maxArgs:2,distElWise:!0}),modinv:entry({fn:x.modInv,minArgs:2,maxArgs:2,distElWise:!0}),parens:entry({fn:x.parens,minArgs:1,maxArgs:1,distElWise:!0}),count:entry({fn:v.count,minArgs:1,maxArgs:1,distElWise:!1}),size:entry({fn:v.size,minArgs:1,maxArgs:1,distElWise:!1}),contains:entry({fn:x.contains,minArgs:2,maxArgs:2,distElWise:!1}),max:entry({fn:x.max,minArgs:2,maxArgs:-1,distElWise:!0}),min:entry({fn:x.min,minArgs:2,maxArgs:-1,distElWise:!0}),imagpart:entry({fn:j.imagPart,minArgs:1,maxArgs:1,distElWise:!0}),realpart:entry({fn:j.realPart,minArgs:1,maxArgs:1,distElWise:!0}),polarform:entry({fn:j.polarForm,minArgs:1,maxArgs:1,distElWise:!0}),rectform:entry({fn:j.rectForm,minArgs:1,maxArgs:1,distElWise:!0}),arg:entry({fn:j.arg,minArgs:1,maxArgs:1,distElWise:!0}),csgn:entry({fn:j.csgn,minArgs:1,maxArgs:1,distElWise:!0}),conjugate:entry({fn:j.conjugate,minArgs:1,maxArgs:1,distElWise:!0}),matrix:entry({fn:x.matrix,minArgs:1,maxArgs:-1,distElWise:!1}),imatrix:entry({fn:D.imatrix,minArgs:1,maxArgs:1,distElWise:!1}),determinant:entry({fn:R.determinant,minArgs:1,maxArgs:1,distElWise:!1}),transpose:entry({fn:e=>e.transpose(),minArgs:1,maxArgs:1,distElWise:!1}),augment:entry({fn:(e,t)=>e.augment(t),minArgs:2,maxArgs:2,distElWise:!1}),rref:entry({fn:(e,t)=>e.rref(t),minArgs:1,maxArgs:2,distElWise:!1}),nullspace:entry({fn:R.nullspace,minArgs:1,maxArgs:2,distElWise:!1}),dot:entry({fn:B.dot,minArgs:2,maxArgs:2,distElWise:!1}),cross:entry({fn:B.cross,minArgs:2,maxArgs:2,distElWise:!1}),deg:entry({fn:U.deg,minArgs:1,maxArgs:2,distElWise:!0}),content:entry({fn:U.content,minArgs:1,maxArgs:1,distElWise:!0}),div:entry({fn:U.div,minArgs:2,maxArgs:2,distElWise:!1}),divide:entry({fn:U.divide,minArgs:2,maxArgs:2,distElWise:!1}),diff:entry({fn:function parserDiff(e,t,n){let i;return i=T.Equation.isEquation(e)?e.each(e=>parserDiff(e,t,n)):(0,u.diff)(e,t,n),i},minArgs:1,maxArgs:3,equationArgs:[0],distElWise:!0}),integrate:entry({fn:function parserIntegrate(e,t){let n;return n=T.Equation.isEquation(e)?e.each(e=>parserIntegrate(e,t)):(0,m.integrate)(e,t),n},minArgs:1,maxArgs:2,equationArgs:[0],distElWise:!0}),limit:entry({fn:function parserLimit(e,t,n,i){let r="both";return i&&(r=(0,O.assertPlainVariableAndGetString)(i)),(0,g.limit)(e,t,n,r)},minArgs:3,maxArgs:4,distElWise:!0}),laplace:entry({fn:d.laplace,minArgs:3,maxArgs:3,distElWise:!0}),ilaplace:entry({fn:p.ilaplace,minArgs:3,maxArgs:3,distElWise:!0}),sum:entry({fn:x.sum,minArgs:4,maxArgs:4,distElWise:!0}),product:entry({fn:x.product,minArgs:4,maxArgs:4,distElWise:!0}),defint:entry({fn:x.defint,minArgs:4,maxArgs:4,distElWise:!0}),[k.FRESNEL_S]:entry({fn:c.S,minArgs:1,maxArgs:1,distElWise:!0}),[k.FRESNEL_C]:entry({fn:c.C,minArgs:1,maxArgs:1,distElWise:!0}),polyfactors:entry({fn:i.polyFactors,minArgs:1,maxArgs:1,distElWise:!1}),factor:entry({fn:i.factor,minArgs:1,maxArgs:1,distElWise:!0}),simplify:entry({fn:a.simplify,minArgs:1,maxArgs:1,distElWise:!0}),partfrac:entry({fn:o.partfrac,minArgs:1,maxArgs:2,distElWise:!0}),gcd:entry({fn:r.gcd,minArgs:2,maxArgs:2,distElWise:!0}),lcm:entry({fn:r.lcm,minArgs:2,maxArgs:2,distElWise:!0}),groebner:entry({fn:s.groebner,minArgs:1,maxArgs:2,distElWise:!1}),sqcomp:entry({fn:function parserSqcomp(e,t){const n=void 0===t?void 0:(0,O.assertPlainVariableAndGetString)(t);return(0,l.sqcomp)(e,n).expression},minArgs:1,maxArgs:2,distElWise:!0}),solve:entry({fn:P.solve,minArgs:2,maxArgs:2,equationArgs:[0],distElWise:!1}),solveeqs:entry({fn:w.solveSystem,minArgs:1,maxArgs:1,distElWise:!1}),assume:entry({fn:b.assuming,minArgs:1,maxArgs:1,distElWise:!1}),forget:entry({fn:b.forget,minArgs:1,maxArgs:1,distElWise:!1}),unassign:entry({fn:V.unassign,minArgs:1,maxArgs:1,distElWise:!1,deferArguments:!0}),evaluate:entry({fn:L.evaluate,minArgs:1,maxArgs:3,equationArgs:[0],distElWise:!1,deferArguments:!0,usage:"scripting"}),return:entry({fn:z.RETURN,minArgs:1,maxArgs:1,equationArgs:[0],distElWise:!1,bracketlessStatement:!0,usage:"scripting"}),break:entry({fn:z.BREAK,minArgs:0,maxArgs:0,distElWise:!1,usage:"scripting"}),continue:entry({fn:z.CONTINUE,minArgs:0,maxArgs:0,distElWise:!1,usage:"scripting"}),and:entry({fn:z.AND,minArgs:2,maxArgs:-1,distElWise:!1,deferArguments:!0,usage:"scripting"}),or:entry({fn:z.OR,minArgs:2,maxArgs:-1,distElWise:!1,deferArguments:!0,usage:"scripting"}),not:entry({fn:z.NOT,minArgs:1,maxArgs:1,distElWise:!1,usage:"scripting"}),xor:entry({fn:z.XOR,minArgs:2,maxArgs:-1,distElWise:!1,usage:"scripting"}),iferror:entry({fn:z.IFERROR,minArgs:2,maxArgs:2,distElWise:!1,deferArguments:!0,usage:"scripting"}),iserror:entry({fn:z.ISERROR,minArgs:1,maxArgs:1,distElWise:!1,deferArguments:!0,usage:"scripting"}),if:entry({fn:z.IF,minArgs:2,maxArgs:3,distElWise:!1,deferArguments:!0,usage:"scripting"}),while:entry({fn:z.WHILE,minArgs:2,maxArgs:2,distElWise:!1,deferArguments:!0,usage:"scripting"}),for:entry({fn:z.FOR,minArgs:4,maxArgs:4,distElWise:!1,deferArguments:!0,usage:"scripting"}),each:entry({fn:function parserEach(e,t,n){const i=e(),r=[];if($.Vector.isVector(i)||M.Collection.isCollection(i)||q.ValuesSet.isValuesSet(i))i.forEach(e=>r.push(e.copy()));else if(F.Matrix.isMatrix(i))i.forEach(e=>r.push(e.copy()));else{if(!A.Dictionary.isDictionary(i))throw new Z.UnexpectedDataType((0,Z.message)("unsupportedType",{type:k.dataTypes[i.dataType]}));i.forEach(e=>r.push(e.copy()))}let s=0;return(0,z.FOR)(()=>(0,N.zero)(),()=>s<r.length?(0,N.one)():(0,N.zero)(),()=>(s++,(0,N.zero)()),()=>(0,V.LET)(t,()=>r[s],n))},minArgs:3,maxArgs:3,distElWise:!1,deferArguments:!0,usage:"scripting"}),let:entry({fn:V.LET,minArgs:3,maxArgs:-1,distElWise:!1,deferArguments:!0,normalizeDeferredArguments:V.normalizeLetArguments,returnBoundary:!0,usage:"scripting"}),block:entry({fn:z.BLOCK,minArgs:-1,maxArgs:-1,distElWise:!1,deferArguments:!0,returnBoundary:!0,usage:"scripting"}),isprime:entry({fn:v.isprime,minArgs:1,maxArgs:1,distElWise:!0}),fib:entry({fn:x.fibonacci,minArgs:1,maxArgs:1,distElWise:!0}),sinc:entry({fn:x.sinc,minArgs:1,maxArgs:1,distElWise:!0}),Shi:entry({fn:x.Shi,minArgs:1,maxArgs:1,distElWise:!0}),Si:entry({fn:x.Si,minArgs:1,maxArgs:1,distElWise:!0}),Chi:entry({fn:x.Chi,minArgs:1,maxArgs:1,distElWise:!0}),Ci:entry({fn:x.Ci,minArgs:1,maxArgs:1,distElWise:!0}),Ei:entry({fn:x.Ei,minArgs:1,maxArgs:1,distElWise:!0}),[k.LI]:entry({fn:x.Li,minArgs:1,maxArgs:1,distElWise:!0})}},9565(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.polyDiv=polyDiv,t.divide=divide,t.S=function S(e,t,n,i){const{polynomials:[r,s]}=normalizePolynomialInputs([e,t],n,i),o=r.LT(),a=s.LT(),l=o.LCM(a);return r.times(l.div(o)).minus(s.times(l.div(a)))},t.combinePolynomialVariables=combinePolynomialVariables,t.polyMod=function polyMod(e,t,n,i){const{variables:r}=normalizePolynomialInputs([e,t],n,i),[,o]=divide(e,t,n,r);return s.Polynomial.toPolynomial(o,n,r).order(n)},t.maxCommonVariableOccurrence=function maxCommonVariableOccurrence(e,t){const n=s.Polynomial.toPolynomial(e).maxVariableFrequency(),i=s.Polynomial.toPolynomial(t).maxVariableFrequency();for(const e in n)if(e in i)return e},t.polynomialFromNumber=function polynomialFromNumber(e,t,n=10,i,r){const remainder=function(e,t){return 0===e?0:Math.abs(e)<Math.abs(t)?-t%e:e%t},s=[];for(let r=t;r>=0;r--){const o=n**r,a=remainder(e,o),l=e-a,u=l/o;if(r===t&&(u<1||void 0!==i)){const t=i||1;s.push(t),e-=t*o;continue}Math.abs(l)<Math.abs(o)?s.push(0):(s.push(u),e=a)}if(void 0!==r){const e=s.length-1,t=s[e]-r;t%n===0&&(s[e]=r,s[e-1]+=t/n)}return s.reverse()};const i=n(5869),r=n(6099),s=n(2116);function normalizePolynomialInputs(e,t,n){const i=e.map(e=>s.Polynomial.toPolynomial(e,t,n));if(void 0!==n)return{polynomials:i,variables:n};const r=combinePolynomialVariables(i);return 0===r.length?{polynomials:i,variables:void 0}:{polynomials:e.map(e=>s.Polynomial.toPolynomial(e,t,r)),variables:r}}function polyDiv(e,t,n,i){const{polynomials:s}=normalizePolynomialInputs([...e,t],n,i),o=s.slice(0,e.length);let a=s[e.length].order(n);const l=e.map(()=>(0,r.zero)());let u=(0,r.zero)(),c=0;const m=1e3*e.length;for(;!a.isZero();){if(c++>m)throw new Error("Maximum iterations reached");let e=!1;const t=o.length;let i=0;for(;i<t&&!e;){const t=o[i],r=t.LT(),s=a.LT();if(r.divides(s)){const o=s.div(r);l[i]=l[i].plus(o.getExpression()),a=a.minus(t.times(o)).order(n),e=!0}else i++}const r=a.LT();e||(u=u.plus(r.getExpression()),a=a.minus(r).order(n))}return[l,u]}function divide(e,t,n,i){const[r,s]=polyDiv([t],e,n,i);return[r[0],s]}function combinePolynomialVariables(e){let t=[];return e.forEach(e=>{t=(0,i.arrayAddUnique)(t,e.variables)}),t.sort(),t}},9571(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.EULER_GAMMA=void 0,t.erf=function erf(e){e=new r.default(e);const t=r.default.acos(-1),n=new r.default(2).div(t.sqrt()),i=getSeriesError(),o=r.default.sign(e);if((e=e.abs()).isZero())return new r.default(0);if(e.lt(2)){let t=new r.default(0),a=0,l=e;const u=Math.max(1e3,8*r.default.precision);for(;l.gte(i);){const n=new r.default(-1).pow(a).times(e.pow(2*a+1)),i=new r.default(2*a+1).times(String((0,s.factorial)(a))),o=t.plus(n.div(i));if(l=o.minus(t).abs(),t=o,a++,a>u)throw new Error("erf not converging. Exiting!")}let c=r.default.min(n.times(t),1);return-1===o&&(c=c.neg()),c}const a=e.mul(e).mul(2);let l=new r.default(1),u=l,c=l.abs();const m=Math.max(1e3,8*r.default.precision);for(let e=1;e<m;e++){l=l.mul(-(2*e-1)).div(a);const t=l.abs();if(t.gt(c))break;if(c=t,u=u.plus(l),t.lt(i))break}const p=e.neg().mul(e).exp().div(t.sqrt().mul(e)).times(u);let d=new r.default(1).minus(p);return-1===o&&(d=d.neg()),d},t.gamma=function gamma(e){if((e=new r.default(e)).isInteger())return e.lte(0)?new r.default(1/0):new r.default(String((0,s.factorial)(Number(e.minus(1)))));if(e.lt(0)){const t=r.default.acos(-1);return t.div(t.times(e).sin().times(gammaSpouge(new r.default(1).minus(e))))}return gammaSpouge(e)},t.sinc=function sinc(e){const t=new r.default(e);if(t.isZero())return new r.default(1);if(t.abs().lt("1e-8")){const e=t.mul(t);return new r.default(1).minus(e.div(6)).plus(e.mul(e).div(120)).minus(e.mul(e).mul(e).div(5040))}return t.sin().div(t)},t.Si=function Si(e){let t=new r.default(e);if(t.isZero())return new r.default(0);let n=new r.default(1);function polevl(e,t){let n=t[0];for(let i=1;i<t.length;i++)n=n.mul(e).plus(t[i]);return n}function p1evl(e,t){let n=e.plus(t[0]);for(let i=1;i<t.length;i++)n=n.mul(e).plus(t[i]);return n}if(t.isNeg()&&(n=new r.default(-1),t=t.neg()),t.gt(o)){const e=r.default.acos(-1).div(2);return n.mul(e.minus(t.cos().div(t)))}if(t.lte(4)){const e=[new r.default("-8.39167827910303881427e-11"),new r.default("4.62591714427012837309e-8"),new r.default("-9.75759303843632795789e-6"),new r.default("9.76945438170435310816e-4"),new r.default("-4.13470316229406538752e-2"),new r.default("1.00000000000000000302")],i=[new r.default("2.03269266195951942049e-12"),new r.default("1.27997891179943299903e-9"),new r.default("4.41827842801218905784e-7"),new r.default("9.96412122043875552487e-5"),new r.default("1.42085239326149893930e-2"),new r.default("9.99999999999999996984e-1")],s=t.mul(t),o=t.mul(polevl(s,e)).div(polevl(s,i));return n.mul(o)}const i=t.sin(),s=t.cos(),a=new r.default(1).div(t.mul(t));let l,u;if(t.lt(8)){const e=[new r.default("4.23612862892216586994"),new r.default("5.45937717161812843388"),new r.default("1.62083287701538329132"),new r.default("1.67006611831323023771e-1"),new r.default("6.81020132472518137426e-3"),new r.default("1.08936580650328664411e-4"),new r.default("5.48900223421373614008e-7")],n=[new r.default("8.16496634205391016773"),new r.default("7.30828822505564552187"),new r.default("1.86792257950184183883"),new r.default("1.78792052963149907262e-1"),new r.default("7.01710668322789753610e-3"),new r.default("1.10034357153915731354e-4"),new r.default("5.48900252756255700982e-7")],i=[new r.default("8.71001698973114191777e-2"),new r.default("6.11379109952219284151e-1"),new r.default("3.97180296392337498885e-1"),new r.default("7.48527737628469092119e-2"),new r.default("5.38868681462177273157e-3"),new r.default("1.61999794598934024525e-4"),new r.default("1.97963874140963632189e-6"),new r.default("7.82579040744090311069e-9")],s=[new r.default("1.64402202413355338886"),new r.default("6.66296701268987968381e-1"),new r.default("9.88771761277688796203e-2"),new r.default("6.22396345441768420760e-3"),new r.default("1.73221081474177119497e-4"),new r.default("2.02659182086343991969e-6"),new r.default("7.82579218933534490868e-9")];l=polevl(a,e).div(t.mul(p1evl(a,n))),u=a.mul(polevl(a,i)).div(p1evl(a,s))}else{const e=[new r.default("4.55880873470465315206e-1"),new r.default("7.13715274100146711374e-1"),new r.default("1.60300158222319456320e-1"),new r.default("1.16064229408124407915e-2"),new r.default("3.49556442447859055605e-4"),new r.default("4.86215430826454749482e-6"),new r.default("3.20092790091004902806e-8"),new r.default("9.41779576128512936592e-11"),new r.default("9.70507110881952024631e-14")],n=[new r.default("9.17463611873684053703e-1"),new r.default("1.78685545332074536321e-1"),new r.default("1.22253594771971293032e-2"),new r.default("3.58696481881851580297e-4"),new r.default("4.92435064317881464393e-6"),new r.default("3.21956939101046018377e-8"),new r.default("9.43720590350276732376e-11"),new r.default("9.70507110881952025725e-14")],i=[new r.default("6.97359953443276214934e-1"),new r.default("3.30410979305632063225e-1"),new r.default("3.84878767649974295920e-2"),new r.default("1.71718239052347903558e-3"),new r.default("3.48941165502279436777e-5"),new r.default("3.47131167084116673800e-7"),new r.default("1.70404452782044526189e-9"),new r.default("3.85945925430276600453e-12"),new r.default("3.14040098946363334640e-15")],s=[new r.default("1.68548898811011640017"),new r.default("4.87852258695304967486e-1"),new r.default("4.67913194259625806320e-2"),new r.default("1.90284426674399523638e-3"),new r.default("3.68475504442561108162e-5"),new r.default("3.57043223443740838771e-7"),new r.default("1.72693748966316146736e-9"),new r.default("3.87830166023954706752e-12"),new r.default("3.14040098946363335242e-15")];l=polevl(a,e).div(t.mul(p1evl(a,n))),u=a.mul(polevl(a,i)).div(p1evl(a,s))}const c=r.default.acos(-1).div(2);return n.mul(c.minus(l.mul(s)).minus(u.mul(i)))},t.Shi=function Shi(e){const n=new r.default(e);if(n.isZero())return new r.default(0);const i=n.isNeg()?new r.default(-1):new r.default(1),s=n.abs();if(s.lt(8)){let e=s,t=e,n=0;for(let i=0;i<200;i++){const i=2*n+1;if(e=e.mul(s).mul(s).mul(i).div(new r.default(i+2).mul(i+2).mul(i+1)),t=t.plus(e),n++,e.abs().lt(getSeriesError()))break}return i.mul(t)}function EiLocal(e){if(e.isZero())return new r.default(-1/0);if(e.gt(a)||e.lt(-40)){let t=new r.default(1),n=new r.default(1),i=t.abs();for(let r=1;r<l;r++){t=t.mul(r).div(e);const s=t.abs();if(s.gt(i))break;if(i=s,n=n.plus(t),s.lt(getSeriesError()))break}return e.exp().mul(n).div(e)}let n=e,i=n;for(let t=1;t<u&&(n=n.mul(e).mul(t).div(new r.default(t+1).mul(t+1)),i=i.plus(n),!n.abs().lt(getSeriesError()));t++);return t.EULER_GAMMA.plus(e.abs().ln()).plus(i)}return EiLocal(n).minus(EiLocal(n.neg())).div(2)},t.Ci=function Ci(e){let n=new r.default(e);if(n.isZero())return new r.default(-1/0);function polevl(e,t){let n=t[0];for(let i=1;i<t.length;i++)n=n.mul(e).plus(t[i]);return n}function p1evl(e,t){let n=e.plus(t[0]);for(let i=1;i<t.length;i++)n=n.mul(e).plus(t[i]);return n}if(n.isNeg()&&(n=n.neg()),n.gt(o))return n.sin().div(n);if(n.lte(4)){const e=[new r.default("2.02524002389102268789e-11"),new r.default("-1.35249504915790756375e-8"),new r.default("3.59325051419993077021e-6"),new r.default("-4.74007206873407909465e-4"),new r.default("2.89159652607555242092e-2"),new r.default("-1.00000000000000000080")],i=[new r.default("4.07746040061880559506e-12"),new r.default("3.06780997581887812692e-9"),new r.default("1.23210355685883423679e-6"),new r.default("3.17442024775032769882e-4"),new r.default("5.10028056236446052392e-2"),new r.default("4.00000000000000000080")],s=n.mul(n),o=s.mul(polevl(s,e)).div(polevl(s,i));return t.EULER_GAMMA.plus(n.ln()).plus(o)}const i=n.sin(),s=n.cos(),a=new r.default(1).div(n.mul(n));let l,u;if(n.lt(8)){const e=[new r.default("4.23612862892216586994"),new r.default("5.45937717161812843388"),new r.default("1.62083287701538329132"),new r.default("1.67006611831323023771e-1"),new r.default("6.81020132472518137426e-3"),new r.default("1.08936580650328664411e-4"),new r.default("5.48900223421373614008e-7")],t=[new r.default("8.16496634205391016773"),new r.default("7.30828822505564552187"),new r.default("1.86792257950184183883"),new r.default("1.78792052963149907262e-1"),new r.default("7.01710668322789753610e-3"),new r.default("1.10034357153915731354e-4"),new r.default("5.48900252756255700982e-7")],i=[new r.default("8.71001698973114191777e-2"),new r.default("6.11379109952219284151e-1"),new r.default("3.97180296392337498885e-1"),new r.default("7.48527737628469092119e-2"),new r.default("5.38868681462177273157e-3"),new r.default("1.61999794598934024525e-4"),new r.default("1.97963874140963632189e-6"),new r.default("7.82579040744090311069e-9")],s=[new r.default("1.64402202413355338886"),new r.default("6.66296701268987968381e-1"),new r.default("9.88771761277688796203e-2"),new r.default("6.22396345441768420760e-3"),new r.default("1.73221081474177119497e-4"),new r.default("2.02659182086343991969e-6"),new r.default("7.82579218933534490868e-9")];l=polevl(a,e).div(n.mul(p1evl(a,t))),u=a.mul(polevl(a,i)).div(p1evl(a,s))}else{const e=[new r.default("4.55880873470465315206e-1"),new r.default("7.13715274100146711374e-1"),new r.default("1.60300158222319456320e-1"),new r.default("1.16064229408124407915e-2"),new r.default("3.49556442447859055605e-4"),new r.default("4.86215430826454749482e-6"),new r.default("3.20092790091004902806e-8"),new r.default("9.41779576128512936592e-11"),new r.default("9.70507110881952024631e-14")],t=[new r.default("9.17463611873684053703e-1"),new r.default("1.78685545332074536321e-1"),new r.default("1.22253594771971293032e-2"),new r.default("3.58696481881851580297e-4"),new r.default("4.92435064317881464393e-6"),new r.default("3.21956939101046018377e-8"),new r.default("9.43720590350276732376e-11"),new r.default("9.70507110881952025725e-14")],i=[new r.default("6.97359953443276214934e-1"),new r.default("3.30410979305632063225e-1"),new r.default("3.84878767649974295920e-2"),new r.default("1.71718239052347903558e-3"),new r.default("3.48941165502279436777e-5"),new r.default("3.47131167084116673800e-7"),new r.default("1.70404452782044526189e-9"),new r.default("3.85945925430276600453e-12"),new r.default("3.14040098946363334640e-15")],s=[new r.default("1.68548898811011640017"),new r.default("4.87852258695304967486e-1"),new r.default("4.67913194259625806320e-2"),new r.default("1.90284426674399523638e-3"),new r.default("3.68475504442561108162e-5"),new r.default("3.57043223443740838771e-7"),new r.default("1.72693748966316146736e-9"),new r.default("3.87830166023954706752e-12"),new r.default("3.14040098946363335242e-15")];l=polevl(a,e).div(n.mul(p1evl(a,t))),u=a.mul(polevl(a,i)).div(p1evl(a,s))}return l.mul(i).minus(u.mul(s))},t.Chi=function Chi(e){const n=new r.default(e),i=n.abs();if(i.isZero())return new r.default(-1/0);if(i.lt(8)){let e=1,n=i.mul(i).div(4),s=n;for(let t=0;t<200&&(n=n.mul(i).mul(i).mul(e).div(new r.default(e+1).mul(2*e+1).mul(2*e+2)),s=s.plus(n),e++,!n.abs().lt(getSeriesError()));t++);return t.EULER_GAMMA.plus(i.ln()).plus(s)}function EiLocal(e){if(e.isZero())return new r.default(-1/0);if(e.gt(a)||e.lt(-40)){let t=new r.default(1),n=new r.default(1),i=t.abs();for(let r=1;r<l;r++){t=t.mul(r).div(e);const s=t.abs();if(s.gt(i))break;if(i=s,n=n.plus(t),s.lt(getSeriesError()))break}return e.exp().mul(n).div(e)}let n=e,i=n;for(let t=1;t<u&&(n=n.mul(e).mul(t).div(new r.default(t+1).mul(t+1)),i=i.plus(n),!n.abs().lt(getSeriesError()));t++);return t.EULER_GAMMA.plus(e.abs().ln()).plus(i)}return EiLocal(n).plus(EiLocal(n.neg())).div(2)},t.Ei=function Ei(e){const n=new r.default(e);if(n.isZero())return new r.default(-1/0);if(n.gt(a)||n.lt(-40)){let e=new r.default(1),t=new r.default(1),i=e.abs();for(let r=1;r<l;r++){e=e.mul(r).div(n);const s=e.abs();if(s.gt(i))break;if(i=s,t=t.plus(e),s.lt(getSeriesError()))break}return n.exp().mul(t).div(n)}let i=n,s=i;for(let e=1;e<u&&(i=i.mul(n).mul(e).div(new r.default(e+1).mul(e+1)),s=s.plus(i),!i.abs().lt(getSeriesError()));e++);return t.EULER_GAMMA.plus(n.abs().ln()).plus(s)},t.Li=function Li(e){const n=new r.default(e);if(n.lte(0))return new r.default(NaN);if(n.eq(1))return new r.default(-1/0);const i=n.ln();if(i.isZero())return new r.default(-1/0);if(i.gt(a)||i.lt(-40)){let e=new r.default(1),t=new r.default(1),n=e.abs();for(let r=1;r<l;r++){e=e.mul(r).div(i);const s=e.abs();if(s.gt(n))break;if(n=s,t=t.plus(e),s.lt(getSeriesError()))break}return i.exp().mul(t).div(i)}let s=i,o=s;for(let e=1;e<u&&(s=s.mul(i).mul(e).div(new r.default(e+1).mul(e+1)),o=o.plus(s),!s.abs().lt(getSeriesError()));e++);return t.EULER_GAMMA.plus(i.abs().ln()).plus(o)};const r=i(n(3110)),s=n(551);t.EULER_GAMMA=new r.default("0.5772156649015328606065120900824024310421593359399235988057672348848677267776646709369470632917467495");const o=1e9,a=40,l=100,u=500;function getSeriesError(e=8){return new r.default(10).pow(-(r.default.precision+e))}function gammaSpouge(e){const t=r.default.precision;r.default.set({precision:Math.floor(1.45*t)});try{const n=t,i=function calcCoeffs(e){const t=[];let n=new r.default(1);const i=r.default.acos(-1);t[0]=i.times(2).sqrt();for(let i=1;i<e;i++)t[i]=r.default.exp(e-i).times(r.default.pow(e-i,i-.5)).div(n),n=n.times(-i);return t}(n);let s=i[0];for(let t=1;t<n;t++)s=s.plus(i[t].div(e.plus(t)));return s=s.times(r.default.exp(e.plus(n).neg())).times(r.default.pow(e.plus(n),e.plus(.5))),s.div(e)}finally{r.default.set({precision:t})}}},9684(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.simplify=simplify;const i=n(296),r=n(6099),s=n(706),o=n(2724),a=n(2826),l=n(6117),u=n(6808),c=n(1024),m=n(8989),p=n(8125),d=n(6584),g=n(4166);function simplify(e,t={}){"string"==typeof e&&(e=i.Expression.create(e));const n=e.hasDecimal();(0,c.hasDerivedInverseTrig)(e)&&(e=(0,c.rewriteInverseTrig)(e));let r=e=(e=(0,m.toCommonDenominator)(e)).getNumerator().expand().div(e.getDenominator().expand());return t.image===e.text()||(r=simplifyArguments(r),r.isProduct()&&(0,g.hasFactorialRatio)(r)&&(r=(0,u.simplifyFactorials)(r)),!(0,g.hasFactorialRatio)(r)&&e.isProduct()&&(0,g.hasFactorialRatio)(e)||(e.isComplex()?r=(0,a.complexSimplify)(r):(0,g.hasIrrationalDenominator)(r)?r=(0,m.rationalize)(r):r.isSum()?(r=(0,p.tryRewriteTrig)(r),r=(0,d.simplifyTrigSum)(r),r=(0,l.factorCommonPower)(r),r=(0,u.simplifyLogs)(r)):r.isProduct()&&r.isLinear()&&(r=(0,u.simplifyFactorials)(r),r=(0,m.simplifyRadicals)(r),r=function cancelNestedFactors(e){if(!e.isProduct())return e;const t=[],n=[],r=[];let s=0;for(const i of e.elementsArray()){const e=i.getPower();if(-1===e.sign()&&e.isMinusOne?.()){const e=i.invert();e.isProduct()?n.push({base:e,index:s}):r.push(i)}else 1===e.sign()?t.push(i):r.push(i);s++}if(0===n.length||0===t.length)return e;let o=!1;const a=new Set;for(const e of n){const n=e.base.elementsArray(),s=e.base.getMultiplier(),l=[];let u=!1;for(const e of n){let n=!1;for(let r=0;r<t.length;r++){if(a.has(r))continue;const s=t[r].toUnitMultiplier(),l=e.toUnitMultiplier();if(s.eq(l)){const s=t[r].getMultiplier().div(e.getMultiplier());s.isOne()?a.add(r):t[r]=i.Expression.fromRational(s),n=!0,u=!0,o=!0;break}}n||l.push(e)}if(u)if(0===l.length)r.push(i.Expression.fromRational(s).invert());else{let e=i.Expression.fromRational(s);for(const t of l)e=e.times(t);r.push(e.invert())}else r.push(e.base.invert())}if(!o)return e;let l=i.Expression.fromRational(e.getMultiplier());for(let e=0;e<t.length;e++)a.has(e)||(l=l.times(t[e]));for(const e of r)l=l.times(e);return l}(r),r=(0,m.cancelCommonFactors)(r),r=(0,p.tryRewriteTrig)(r)))),r=function factorResult(e){if(e.isNUM())return e;const t=(0,s.product)(...(0,o.polyFactorExpressions)(e.getNumerator())),n=(0,s.product)(...(0,o.polyFactorExpressions)(e.getDenominator()));return t.div(n)}(r),n&&(r.getMultiplier().asDecimal=!0),r}function simplifyArguments(e){let t;const n=e.getMultiplier(),s=e.getPower();if(e.isFunction())t=i.Expression.toFunction(e.name,e.getArguments().map(e=>simplify(e)));else if(e.isProduct()){t=(0,r.one)();for(const n of e.elementsArray()){const e=simplifyArguments(n);t=t.times(e)}}else if(e.isSum()){t=(0,r.zero)();for(const n of e.elementsArray())t=t.plus(simplifyArguments(n))}return t=t?t.pow(s).times(n):e,t}},9725(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getOperatorSymbolArray=function getOperatorSymbolArray(){const e=new Set(Object.keys(i.operators).join("").split(""));return[...e].filter(e=>!/[a-z]/i.test(e))},t.getOperators=function getOperators(){return i.operators};const i=n(6441)}},t={},function __webpack_require__(n){var i=t[n];if(void 0!==i)return i.exports;var r=t[n]={exports:{}};return e[n].call(r.exports,r,r.exports,__webpack_require__),r.exports}(1440).default;var e,t});