nerdamer 1.1.13 → 2.0.0-rc.2
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.
- package/BREAKING_CHANGES.md +244 -5
- package/LICENSE.md +184 -0
- package/README.md +232 -318
- package/dist/bundle.js +2 -0
- package/dist/bundle.js.LICENSE.txt +7 -0
- package/dist/parser.js +2 -0
- package/dist/parser.js.LICENSE.txt +7 -0
- package/docs-data/parser-functions.json +2248 -0
- package/index.d.ts +10 -426
- package/output/algebra/adapters.d.ts +3 -0
- package/output/algebra/adapters.js +11 -0
- package/output/algebra/algorithms/arith.d.ts +84 -0
- package/output/algebra/algorithms/arith.js +324 -0
- package/output/algebra/algorithms/groebnerBase.d.ts +161 -0
- package/output/algebra/algorithms/groebnerBase.js +929 -0
- package/output/algebra/dispatch.d.ts +1 -0
- package/output/algebra/dispatch.js +25 -0
- package/output/algebra/factor/factor.d.ts +77 -0
- package/output/algebra/factor/factor.js +245 -0
- package/output/algebra/gcd/gcd.d.ts +30 -0
- package/output/algebra/gcd/gcd.js +95 -0
- package/output/algebra/groebner.d.ts +21 -0
- package/output/algebra/groebner.js +36 -0
- package/output/algebra/partfrac.d.ts +19 -0
- package/output/algebra/partfrac.js +365 -0
- package/output/algebra/polynomial/ModularSparsePolynomial.d.ts +131 -0
- package/output/algebra/polynomial/ModularSparsePolynomial.js +378 -0
- package/output/algebra/polynomial/ModularSparsePolynomialFactor.d.ts +40 -0
- package/output/algebra/polynomial/ModularSparsePolynomialFactor.js +661 -0
- package/output/algebra/polynomial/SparsePolynomialFactor.d.ts +64 -0
- package/output/algebra/polynomial/SparsePolynomialFactor.js +492 -0
- package/output/algebra/polynomial/SparsePolynomialGcd.d.ts +29 -0
- package/output/algebra/polynomial/SparsePolynomialGcd.js +259 -0
- package/output/algebra/polynomial/SparsePolynomialMultivariateFactor.d.ts +82 -0
- package/output/algebra/polynomial/SparsePolynomialMultivariateFactor.js +604 -0
- package/output/algebra/polynomial/modularGcd.d.ts +40 -0
- package/output/algebra/polynomial/modularGcd.js +365 -0
- package/output/algebra/polynomialize.d.ts +20 -0
- package/output/algebra/polynomialize.js +26 -0
- package/output/algebra/simplify/complexsimp.d.ts +7 -0
- package/output/algebra/simplify/complexsimp.js +24 -0
- package/output/algebra/simplify/factorCommon.d.ts +13 -0
- package/output/algebra/simplify/factorCommon.js +136 -0
- package/output/algebra/simplify/funcsimp.d.ts +26 -0
- package/output/algebra/simplify/funcsimp.js +633 -0
- package/output/algebra/simplify/invtrigrewrite.d.ts +10 -0
- package/output/algebra/simplify/invtrigrewrite.js +96 -0
- package/output/algebra/simplify/ratsimp.d.ts +21 -0
- package/output/algebra/simplify/ratsimp.js +140 -0
- package/output/algebra/simplify/simplify.d.ts +25 -0
- package/output/algebra/simplify/simplify.js +237 -0
- package/output/algebra/simplify/trigreduce.d.ts +38 -0
- package/output/algebra/simplify/trigreduce.js +424 -0
- package/output/algebra/simplify/trigrewrite.d.ts +17 -0
- package/output/algebra/simplify/trigrewrite.js +156 -0
- package/output/algebra/simplify/trigsimp.d.ts +11 -0
- package/output/algebra/simplify/trigsimp.js +369 -0
- package/output/algebra/simplify/utils.d.ts +32 -0
- package/output/algebra/simplify/utils.js +56 -0
- package/output/algebra/utils.d.ts +32 -0
- package/output/algebra/utils.js +48 -0
- package/output/api/advanced.d.ts +8 -0
- package/output/api/advanced.js +18 -0
- package/output/api/algebra.d.ts +17 -0
- package/output/api/algebra.js +35 -0
- package/output/api/assumptions.d.ts +4 -0
- package/output/api/assumptions.js +11 -0
- package/output/api/calculus.d.ts +10 -0
- package/output/api/calculus.js +22 -0
- package/output/api/core.d.ts +17 -0
- package/output/api/core.js +41 -0
- package/output/api/debug.d.ts +16 -0
- package/output/api/debug.js +23 -0
- package/output/api/languages/deu.d.ts +3 -0
- package/output/api/languages/deu.js +266 -0
- package/output/api/languages/fra.d.ts +3 -0
- package/output/api/languages/fra.js +266 -0
- package/output/api/languages/ita.d.ts +3 -0
- package/output/api/languages/ita.js +266 -0
- package/output/api/languages/nld.d.ts +3 -0
- package/output/api/languages/nld.js +266 -0
- package/output/api/languages/por.d.ts +3 -0
- package/output/api/languages/por.js +266 -0
- package/output/api/languages/spa.d.ts +3 -0
- package/output/api/languages/spa.js +266 -0
- package/output/api/parser.d.ts +93 -0
- package/output/api/parser.js +18 -0
- package/output/api/solve.d.ts +10 -0
- package/output/api/solve.js +17 -0
- package/output/api/structures.d.ts +10 -0
- package/output/api/structures.js +23 -0
- package/output/calculus/adapters.d.ts +8 -0
- package/output/calculus/adapters.js +41 -0
- package/output/calculus/derivative/diff.d.ts +30 -0
- package/output/calculus/derivative/diff.js +241 -0
- package/output/calculus/dispatch.d.ts +1 -0
- package/output/calculus/dispatch.js +25 -0
- package/output/calculus/fresnel.d.ts +16 -0
- package/output/calculus/fresnel.js +39 -0
- package/output/calculus/integrate/byParts.d.ts +18 -0
- package/output/calculus/integrate/byParts.js +339 -0
- package/output/calculus/integrate/bySubstitution.d.ts +135 -0
- package/output/calculus/integrate/bySubstitution.js +411 -0
- package/output/calculus/integrate/integrate.d.ts +38 -0
- package/output/calculus/integrate/integrate.js +652 -0
- package/output/calculus/integrate/integrationTable.d.ts +2 -0
- package/output/calculus/integrate/integrationTable.js +914 -0
- package/output/calculus/integrate/utils.d.ts +28 -0
- package/output/calculus/integrate/utils.js +96 -0
- package/output/calculus/laplace/ilaplace.d.ts +31 -0
- package/output/calculus/laplace/ilaplace.js +192 -0
- package/output/calculus/laplace/ilaplaceTable.d.ts +2 -0
- package/output/calculus/laplace/ilaplaceTable.js +200 -0
- package/output/calculus/laplace/laplace.d.ts +22 -0
- package/output/calculus/laplace/laplace.js +109 -0
- package/output/calculus/laplace/laplaceTable.d.ts +2 -0
- package/output/calculus/laplace/laplaceTable.js +187 -0
- package/output/calculus/limit/limit.d.ts +35 -0
- package/output/calculus/limit/limit.js +1183 -0
- package/output/calculus/limit/limitsTable.d.ts +2 -0
- package/output/calculus/limit/limitsTable.js +7 -0
- package/output/core/Settings.d.ts +32 -0
- package/output/core/Settings.js +68 -0
- package/output/core/classes/assumption/Assumption.d.ts +218 -0
- package/output/core/classes/assumption/Assumption.js +609 -0
- package/output/core/classes/assumption/assertiveFunctions.d.ts +6 -0
- package/output/core/classes/assumption/assertiveFunctions.js +64 -0
- package/output/core/classes/assumption/assume.d.ts +90 -0
- package/output/core/classes/assumption/assume.js +145 -0
- package/output/core/classes/assumption/dispatch.d.ts +1 -0
- package/output/core/classes/assumption/dispatch.js +11 -0
- package/output/core/classes/collection/Collection.d.ts +107 -0
- package/output/core/classes/collection/Collection.js +240 -0
- package/output/core/classes/complex/Complex.d.ts +109 -0
- package/output/core/classes/complex/Complex.js +153 -0
- package/output/core/classes/decimalSet/DecimalSet.d.ts +226 -0
- package/output/core/classes/decimalSet/DecimalSet.js +454 -0
- package/output/core/classes/dictionary/Dictionary.d.ts +102 -0
- package/output/core/classes/dictionary/Dictionary.js +216 -0
- package/output/core/classes/equation/Equation.d.ts +256 -0
- package/output/core/classes/equation/Equation.js +350 -0
- package/output/core/classes/expression/CoeffObject.d.ts +100 -0
- package/output/core/classes/expression/CoeffObject.js +197 -0
- package/output/core/classes/expression/Expression.d.ts +1691 -0
- package/output/core/classes/expression/Expression.js +2381 -0
- package/output/core/classes/expression/analysis.d.ts +25 -0
- package/output/core/classes/expression/analysis.js +218 -0
- package/output/core/classes/expression/collect.d.ts +9 -0
- package/output/core/classes/expression/collect.js +49 -0
- package/output/core/classes/expression/format.d.ts +54 -0
- package/output/core/classes/expression/format.js +340 -0
- package/output/core/classes/expression/products.d.ts +23 -0
- package/output/core/classes/expression/products.js +115 -0
- package/output/core/classes/expression/shortcuts.d.ts +35 -0
- package/output/core/classes/expression/shortcuts.js +129 -0
- package/output/core/classes/expression/traversal.d.ts +31 -0
- package/output/core/classes/expression/traversal.js +216 -0
- package/output/core/classes/expression/trig.d.ts +25 -0
- package/output/core/classes/expression/trig.js +40 -0
- package/output/core/classes/expression/utils.d.ts +61 -0
- package/output/core/classes/expression/utils.js +235 -0
- package/output/core/classes/lookupTable/LookupTable.d.ts +12 -0
- package/output/core/classes/lookupTable/LookupTable.js +55 -0
- package/output/core/classes/matrix/Matrix.d.ts +227 -0
- package/output/core/classes/matrix/Matrix.js +901 -0
- package/output/core/classes/matrix/Sylvester.d.ts +11 -0
- package/output/core/classes/matrix/Sylvester.js +54 -0
- package/output/core/classes/matrix/dispatch.d.ts +1 -0
- package/output/core/classes/matrix/dispatch.js +19 -0
- package/output/core/classes/matrix/functions.d.ts +28 -0
- package/output/core/classes/matrix/functions.js +57 -0
- package/output/core/classes/matrix/utils.d.ts +9 -0
- package/output/core/classes/matrix/utils.js +22 -0
- package/output/core/classes/parser/Parser.d.ts +493 -0
- package/output/core/classes/parser/Parser.js +1863 -0
- package/output/core/classes/parser/Token.d.ts +58 -0
- package/output/core/classes/parser/Token.js +137 -0
- package/output/core/classes/parser/constants.d.ts +162 -0
- package/output/core/classes/parser/constants.js +229 -0
- package/output/core/classes/parser/controlFlowSignals.d.ts +38 -0
- package/output/core/classes/parser/controlFlowSignals.js +60 -0
- package/output/core/classes/parser/helpers.d.ts +21 -0
- package/output/core/classes/parser/helpers.js +42 -0
- package/output/core/classes/parser/operations/add.d.ts +15 -0
- package/output/core/classes/parser/operations/add.js +236 -0
- package/output/core/classes/parser/operations/comma.d.ts +7 -0
- package/output/core/classes/parser/operations/comma.js +11 -0
- package/output/core/classes/parser/operations/compare.d.ts +21 -0
- package/output/core/classes/parser/operations/compare.js +474 -0
- package/output/core/classes/parser/operations/divide.d.ts +2 -0
- package/output/core/classes/parser/operations/divide.js +72 -0
- package/output/core/classes/parser/operations/functions.d.ts +46 -0
- package/output/core/classes/parser/operations/functions.js +438 -0
- package/output/core/classes/parser/operations/multiply.d.ts +11 -0
- package/output/core/classes/parser/operations/multiply.js +328 -0
- package/output/core/classes/parser/operations/power.d.ts +48 -0
- package/output/core/classes/parser/operations/power.js +673 -0
- package/output/core/classes/parser/operations/subtract.d.ts +3 -0
- package/output/core/classes/parser/operations/subtract.js +36 -0
- package/output/core/classes/parser/preprocess.d.ts +7 -0
- package/output/core/classes/parser/preprocess.js +246 -0
- package/output/core/classes/parser/scripting/controlFlow.d.ts +23 -0
- package/output/core/classes/parser/scripting/controlFlow.js +279 -0
- package/output/core/classes/parser/scripting/deferred.d.ts +4 -0
- package/output/core/classes/parser/scripting/deferred.js +65 -0
- package/output/core/classes/parser/scripting/dispatch.d.ts +1 -0
- package/output/core/classes/parser/scripting/dispatch.js +62 -0
- package/output/core/classes/parser/scripting/evaluate.d.ts +23 -0
- package/output/core/classes/parser/scripting/evaluate.js +128 -0
- package/output/core/classes/parser/scripting/functions.d.ts +14 -0
- package/output/core/classes/parser/scripting/functions.js +59 -0
- package/output/core/classes/parser/scripting/scope.d.ts +8 -0
- package/output/core/classes/parser/scripting/scope.js +132 -0
- package/output/core/classes/parser/types.d.ts +130 -0
- package/output/core/classes/parser/types.js +2 -0
- package/output/core/classes/parser/wrappers/IndexedReference.d.ts +31 -0
- package/output/core/classes/parser/wrappers/IndexedReference.js +68 -0
- package/output/core/classes/parser/wrappers/KeyValuePair.d.ts +24 -0
- package/output/core/classes/parser/wrappers/KeyValuePair.js +51 -0
- package/output/core/classes/polynomial/Polynomial.d.ts +504 -0
- package/output/core/classes/polynomial/Polynomial.js +1195 -0
- package/output/core/classes/polynomial/SparsePolynomial.d.ts +221 -0
- package/output/core/classes/polynomial/SparsePolynomial.js +824 -0
- package/output/core/classes/polynomial/SparsePolynomialAdapter.d.ts +56 -0
- package/output/core/classes/polynomial/SparsePolynomialAdapter.js +241 -0
- package/output/core/classes/polynomial/Term.d.ts +222 -0
- package/output/core/classes/polynomial/Term.js +430 -0
- package/output/core/classes/polynomial/adapters.d.ts +18 -0
- package/output/core/classes/polynomial/adapters.js +33 -0
- package/output/core/classes/polynomial/dispatch.d.ts +1 -0
- package/output/core/classes/polynomial/dispatch.js +14 -0
- package/output/core/classes/polynomial/functions.d.ts +77 -0
- package/output/core/classes/polynomial/functions.js +189 -0
- package/output/core/classes/polynomial/utils.d.ts +62 -0
- package/output/core/classes/polynomial/utils.js +207 -0
- package/output/core/classes/rational/Rational.d.ts +501 -0
- package/output/core/classes/rational/Rational.js +829 -0
- package/output/core/classes/seq/SEQ.d.ts +13 -0
- package/output/core/classes/seq/SEQ.js +137 -0
- package/output/core/classes/valuesSet/ValuesSet.d.ts +187 -0
- package/output/core/classes/valuesSet/ValuesSet.js +399 -0
- package/output/core/classes/vector/Vector.d.ts +222 -0
- package/output/core/classes/vector/Vector.js +501 -0
- package/output/core/classes/vector/dispatch.d.ts +1 -0
- package/output/core/classes/vector/dispatch.js +11 -0
- package/output/core/classes/vector/functions.d.ts +28 -0
- package/output/core/classes/vector/functions.js +47 -0
- package/output/core/common/classes/MathematicalAggregate.d.ts +53 -0
- package/output/core/common/classes/MathematicalAggregate.js +149 -0
- package/output/core/common/classes/Scope.d.ts +62 -0
- package/output/core/common/classes/Scope.js +122 -0
- package/output/core/common/classes/StructuredEntity.d.ts +55 -0
- package/output/core/common/classes/StructuredEntity.js +151 -0
- package/output/core/common/common.d.ts +62 -0
- package/output/core/common/common.js +74 -0
- package/output/core/common/functions/functions.d.ts +14 -0
- package/output/core/common/functions/functions.js +33 -0
- package/output/core/common/functions/structuredEntityUtils.d.ts +27 -0
- package/output/core/common/functions/structuredEntityUtils.js +40 -0
- package/output/core/converters/BaseConverter.d.ts +97 -0
- package/output/core/converters/BaseConverter.js +405 -0
- package/output/core/converters/Converter.d.ts +111 -0
- package/output/core/converters/Converter.js +806 -0
- package/output/core/converters/Pattern.d.ts +71 -0
- package/output/core/converters/Pattern.js +302 -0
- package/output/core/dispatch.d.ts +52 -0
- package/output/core/dispatch.js +26 -0
- package/output/core/errors.d.ts +316 -0
- package/output/core/errors.js +349 -0
- package/output/core/fullFunctions.d.ts +7 -0
- package/output/core/fullFunctions.js +31 -0
- package/output/core/functions/bigint/bigint.d.ts +133 -0
- package/output/core/functions/bigint/bigint.js +444 -0
- package/output/core/functions/bigint/primeFactor.d.ts +51 -0
- package/output/core/functions/bigint/primeFactor.js +267 -0
- package/output/core/functions/bigint/primes.d.ts +1 -0
- package/output/core/functions/bigint/primes.js +11 -0
- package/output/core/functions/build/definitions.d.ts +12 -0
- package/output/core/functions/build/definitions.js +139 -0
- package/output/core/functions/build/index.d.ts +32 -0
- package/output/core/functions/build/index.js +136 -0
- package/output/core/functions/complex.d.ts +90 -0
- package/output/core/functions/complex.dispatch.d.ts +1 -0
- package/output/core/functions/complex.dispatch.js +16 -0
- package/output/core/functions/complex.js +482 -0
- package/output/core/functions/decimal.d.ts +24 -0
- package/output/core/functions/decimal.js +665 -0
- package/output/core/functions/expand/expand.d.ts +42 -0
- package/output/core/functions/expand/expand.js +376 -0
- package/output/core/functions/fresnelNumeric.d.ts +12 -0
- package/output/core/functions/fresnelNumeric.js +123 -0
- package/output/core/functions/numeric.d.ts +140 -0
- package/output/core/functions/numeric.js +790 -0
- package/output/core/functions/rationalNormalization.d.ts +11 -0
- package/output/core/functions/rationalNormalization.js +117 -0
- package/output/core/functions/setFunction.d.ts +19 -0
- package/output/core/functions/setFunction.js +75 -0
- package/output/core/functions/string.d.ts +26 -0
- package/output/core/functions/string.js +102 -0
- package/output/core/functions/subst.d.ts +90 -0
- package/output/core/functions/subst.js +506 -0
- package/output/core/functions/utils.d.ts +24 -0
- package/output/core/functions/utils.js +51 -0
- package/output/core/parserFunctions.d.ts +7 -0
- package/output/core/parserFunctions.js +25 -0
- package/output/core/types.d.ts +48 -0
- package/output/core/types.js +2 -0
- package/output/index.d.ts +359 -0
- package/output/index.js +739 -0
- package/output/math/defint/defint.d.ts +18 -0
- package/output/math/defint/defint.js +60 -0
- package/output/math/defint/defintDecimal.d.ts +37 -0
- package/output/math/defint/defintDecimal.js +321 -0
- package/output/math/defint/defintNative.d.ts +57 -0
- package/output/math/defint/defintNative.js +281 -0
- package/output/math/dispatch.d.ts +1 -0
- package/output/math/dispatch.js +101 -0
- package/output/math/geometry.d.ts +12 -0
- package/output/math/geometry.js +55 -0
- package/output/math/math.d.ts +695 -0
- package/output/math/math.js +1955 -0
- package/output/math/trig.d.ts +518 -0
- package/output/math/trig.js +1444 -0
- package/output/math/trunc.d.ts +19 -0
- package/output/math/trunc.js +36 -0
- package/output/math/utils.d.ts +66 -0
- package/output/math/utils.js +219 -0
- package/output/solve/classes/DecimalMatrix.d.ts +17 -0
- package/output/solve/classes/DecimalMatrix.js +86 -0
- package/output/solve/classes/FunctionSolver.d.ts +135 -0
- package/output/solve/classes/FunctionSolver.js +433 -0
- package/output/solve/classes/MultivariateSolver.d.ts +84 -0
- package/output/solve/classes/MultivariateSolver.js +240 -0
- package/output/solve/classes/PolynomialSolver.d.ts +104 -0
- package/output/solve/classes/PolynomialSolver.js +492 -0
- package/output/solve/classes/SolutionSet.d.ts +172 -0
- package/output/solve/classes/SolutionSet.js +434 -0
- package/output/solve/classes/Solver.d.ts +17 -0
- package/output/solve/classes/Solver.js +132 -0
- package/output/solve/classes/SymbolicSolver.d.ts +74 -0
- package/output/solve/classes/SymbolicSolver.js +601 -0
- package/output/solve/dispatch.d.ts +1 -0
- package/output/solve/dispatch.js +13 -0
- package/output/solve/linsolve.d.ts +53 -0
- package/output/solve/linsolve.js +233 -0
- package/output/solve/solve.d.ts +44 -0
- package/output/solve/solve.js +368 -0
- package/output/solve/solveSystem.d.ts +31 -0
- package/output/solve/solveSystem.js +266 -0
- package/output/solve/utils.d.ts +10 -0
- package/output/solve/utils.js +58 -0
- package/output/utils/array.d.ts +42 -0
- package/output/utils/array.js +98 -0
- package/output/utils/debug.d.ts +131 -0
- package/output/utils/debug.js +296 -0
- package/output/utils/decimal.d.ts +3 -0
- package/output/utils/decimal.js +16 -0
- package/output/utils/numeric.d.ts +14 -0
- package/output/utils/numeric.js +51 -0
- package/output/utils/object.d.ts +26 -0
- package/output/utils/object.js +56 -0
- package/package.json +178 -57
- package/.travis.yml +0 -3
- package/Algebra.js +0 -4568
- package/CODE_OF_CONDUCT.md +0 -46
- package/CONTRIBUTING.md +0 -14
- package/Calculus.js +0 -2675
- package/Extra.js +0 -622
- package/Solve.js +0 -1783
- package/all.js +0 -16
- package/all.min.js +0 -1
- package/gulpfile.js +0 -16
- package/index.html +0 -158
- package/license.txt +0 -19
- package/nerdamer.core.js +0 -12510
- package/spec/LaTeX.spec.js +0 -302
- package/spec/TeXConvert.spec.js +0 -8
- package/spec/algebra.spec.js +0 -287
- package/spec/basic_parser.spec.js +0 -134
- package/spec/build.spec.js +0 -131
- package/spec/calculus.spec.js +0 -183
- package/spec/core.spec.js +0 -2970
- package/spec/extra.spec.js +0 -54
- package/spec/solve.spec.js +0 -126
- package/spec/support/jasmine.json +0 -11
- package/spec/support/utils.js +0 -42
- 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,()=>(()=>{var e={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},g=!0,d="[DecimalError] ",h=d+"Invalid argument: ",x=d+"Precision limit exceeded",E=d+"crypto unavailable",y="[object Decimal]",v=Math.floor,w=Math.pow,b=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,P=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,A=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,N=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,M=1e7,T=c.length-1,I=m.length-1,O={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=w(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)==w(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)==w(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()}O.absoluteValue=O.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),finalise(e)},O.ceil=function(){return finalise(new this.constructor(this),this.e+1,2)},O.clampedTo=O.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)},O.comparedTo=O.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},O.cosine=O.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,i<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)},O.cubeRoot=O.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(g=!1,(s=c.s*w(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=w(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=R(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 g=!0,finalise(i,e,m.rounding,t)},O.decimalPlaces=O.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},O.dividedBy=O.div=function(e){return R(this,new this.constructor(e))},O.dividedToIntegerBy=O.divToInt=function(e){var t=this.constructor;return finalise(R(this,new t(e),0,1,1),t.precision,t.rounding)},O.equals=O.eq=function(e){return 0===this.cmp(e)},O.floor=function(){return finalise(new this.constructor(this),this.e+1,3)},O.greaterThan=O.gt=function(e){return this.cmp(e)>0},O.greaterThanOrEqualTo=O.gte=function(e){var t=this.cmp(e);return 1==t||0===t},O.hyperbolicCosine=O.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)},O.hyperbolicSine=O.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)},O.hyperbolicTangent=O.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,R(n.sinh(),n.cosh(),i.precision=e,i.rounding=t)):new i(n.s)},O.inverseCosine=O.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))},O.inverseHyperbolicCosine=O.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,g=!1,n=n.times(n).minus(1).sqrt().plus(n),g=!0,i.precision=e,i.rounding=t,n.ln()):new i(n)},O.inverseHyperbolicSine=O.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,g=!1,n=n.times(n).plus(1).sqrt().plus(n),g=!0,i.precision=e,i.rounding=t,n.ln())},O.inverseHyperbolicTangent=O.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=R(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)},O.inverseSine=O.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)))},O.inverseTangent=O.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<=I)return(o=getPi(c,m+4,p).times(.25)).s=u.s,o}else{if(!u.s)return new c(NaN);if(m+4<=I)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(g=!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)),g=!0,finalise(o,c.precision=m,c.rounding=p,!0)},O.isFinite=function(){return!!this.d},O.isInteger=O.isInt=function(){return!!this.d&&v(this.e/7)>this.d.length-2},O.isNaN=function(){return!this.s},O.isNegative=O.isNeg=function(){return this.s<0},O.isPositive=O.isPos=function(){return this.s>0},O.isZero=function(){return!!this.d&&0===this.d[0]},O.lessThan=O.lt=function(e){return this.cmp(e)<0},O.lessThanOrEqualTo=O.lte=function(e){return this.cmp(e)<1},O.logarithm=O.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(g=!1,o=naturalLogarithm(u,a=m+5),i=t?getLn10(c,a+10):naturalLogarithm(e,a),checkRoundingDigits((l=R(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=R(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 g=!0,finalise(l,m,p)},O.minus=O.sub=function(e){var t,n,i,r,s,o,a,l,u,c,m,p,d=this,h=d.constructor;if(e=new h(e),!d.d||!e.d)return d.s&&e.s?d.d?e.s=-e.s:e=new h(e.d||d.s!==e.s?d:NaN):e=new h(NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(u=d.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(d)}return g?finalise(e,a,l):e}if(n=v(e.e/7),c=v(d.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]=M-1;--u[r],u[i]+=M}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),g?finalise(e,a,l):e):new h(3===l?-0:0)},O.modulo=O.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):(g=!1,9==i.modulo?(t=R(n,e.abs(),0,3,1)).s*=e.s:t=R(n,e,0,i.modulo,1),t=t.times(e),g=!0,n.minus(t))},O.naturalExponential=O.exp=function(){return naturalExponential(this)},O.naturalLogarithm=O.ln=function(){return naturalLogarithm(this)},O.negated=O.neg=function(){var e=new this.constructor(this);return e.s=-e.s,finalise(e)},O.plus=O.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)),g?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)/M|0,u[r]%=M;for(t&&(u.unshift(t),++i),o=u.length;0==u[--o];)u.pop();return e.d=u,e.e=getBase10Exponent(u,i),g?finalise(e,a,l):e},O.precision=O.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},O.round=function(){var e=this,t=e.constructor;return finalise(new t(e),e.e+1,t.rounding)},O.sine=O.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)},O.squareRoot=O.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(g=!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(R(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 g=!0,finalise(i,l,c.rounding,e)},O.tangent=O.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=R(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)},O.times=O.mul=function(e){var t,n,i,r,s,o,a,l,u,c=this,m=c.constructor,p=c.d,d=(e=new m(e)).d;if(e.s*=c.s,!(p&&p[0]&&d&&d[0]))return new m(!e.s||p&&!p[0]&&!d||d&&!d[0]&&!p?NaN:p&&d?0*e.s:e.s/0);for(n=v(c.e/7)+v(e.e/7),(l=p.length)<(u=d.length)&&(s=p,p=d,d=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]+d[i]*p[r-i-1]+t,s[r--]=a%M|0,t=a/M|0;s[r]=(s[r]+t)%M|0}for(;!s[--o];)s.pop();return t?++n:s.shift(),e.d=s,e.e=getBase10Exponent(s,n),g?finalise(e,m.precision,m.rounding):e},O.toBinary=function(e,t){return toStringBinary(this,2,e,t)},O.toDecimalPlaces=O.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))},O.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},O.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},O.toFraction=function(e){var t,n,i,r,s,o,a,l,u,c,m,p,d=this,x=d.d,E=d.constructor;if(!x)return new E(d);if(u=n=new E(1),i=l=new E(0),o=(s=(t=new E(i)).e=getPrecision(x)-d.e-1)%7,t.d[0]=w(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(g=!1,a=new E(digitsToString(x)),c=E.precision,E.precision=s=7*x.length*2;m=R(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=R(e.minus(n),i,0,1,1),l=l.plus(r.times(u)),n=n.plus(r.times(i)),l.s=u.s=d.s,p=R(u,i,s,1).minus(d).abs().cmp(R(l,n,s,1).minus(d).abs())<1?[u,i]:[l,n],E.precision=c,g=!0,p},O.toHexadecimal=O.toHex=function(e,t){return toStringBinary(this,16,e,t)},O.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]?(g=!1,n=R(n,e,0,t,1).times(e),g=!0,finalise(n)):(e.s=n.s,n=e),n},O.toNumber=function(){return+this},O.toOctal=function(e,t){return toStringBinary(this,8,e,t)},O.toPower=O.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(w(+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=w(+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):(g=!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,g=!0,l.rounding=s,finalise(r,i,s))},O.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},O.toSignificantDigits=O.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)},O.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},O.truncated=O.trunc=function(){return finalise(new this.constructor(this),this.e+1,1)},O.valueOf=O.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 R=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,g,d,h,x,E,y,w,b,P,A,N,T,I,O,R=e.constructor,F=e.s==t.s?1:-1,q=e.d,L=t.d;if(!(q&&q[0]&&L&&L[0]))return new R(e.s&&t.s&&(q?!L||q[0]!=L[0]:L)?q&&0==q[0]||!L?0*F:F/0:NaN);for(o?(m=1,l=e.e-t.e):(o=M,m=7,l=v(e.e/m)-v(t.e/m)),I=L.length,N=q.length,x=(h=new R(F)).d=[],u=0;L[u]==(q[u]||0);u++);if(L[u]>(q[u]||0)&&l--,null==n?(b=n=R.precision,i=R.rounding):b=r?n+(e.e-t.e)+1:n,b<0)x.push(1),p=!0;else{if(b=b/m+2|0,u=0,1==I){for(c=0,L=L[0],b++;(u<N||c)&&b--;u++)P=c*o+(q[u]||0),x[u]=P/L|0,c=P%L|0;p=c||u<N}else{for((c=o/(L[0]+1)|0)>1&&(L=multiplyInteger(L,c,o),q=multiplyInteger(q,c,o),I=L.length,N=q.length),A=I,y=(E=q.slice(0,I)).length;y<I;)E[y++]=0;(O=L.slice()).unshift(0),T=L[0],L[1]>=o/2&&++T;do{c=0,(a=compare(L,E,I,y))<0?(w=E[0],I!=y&&(w=w*o+(E[1]||0)),(c=w/T|0)>1?(c>=o&&(c=o-1),1==(a=compare(g=multiplyInteger(L,c,o),E,d=g.length,y=E.length))&&(c--,subtract(g,I<d?O:L,d,o))):(0==c&&(a=c=1),g=L.slice()),(d=g.length)<y&&g.unshift(0),subtract(E,g,y,o),-1==a&&(a=compare(L,E,I,y=E.length))<1&&(c++,subtract(E,I<y?O:L,y,o)),y=E.length):0===a&&(c++,E=[0]),x[u++]=c,a&&E[0]?E[y++]=q[A]||0:(E=[q[A]],y=1)}while((A++<N||void 0!==E[0])&&b--);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,d=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])/w(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/w(10,r-o-1)%10|0}if(i=i||t<0||void 0!==m[p+1]||(o<0?c:c%w(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/w(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]=w(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=w(10,7-s),m[p]=o>0?(c/w(10,r-o)%w(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]==M&&(m[0]=1));break}if(m[p]+=a,m[p]!=M)break;m[p--]=0,a=1}for(s=m.length;0===m[--s];)m.pop()}return g&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e<d.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>T)throw g=!0,n&&(e.precision=n),Error(x);return finalise(new e(c),t,1,!0)}function getPi(e,t,n){if(t>I)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(g=!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 g=!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,d=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?(g=!1,l=h):l=t,a=new p(.03125);e.e>-2;)e=e.times(a),m+=5;for(l+=i=Math.log(w(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(R(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,d,u)))return finalise(o,p.precision=h,d,g=!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,d=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?(g=!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,g=!0):h;for(;i<7&&1!=i||1==i&&n.charAt(1)>3;)i=(n=digitsToString((h=h.times(e)).d)).charAt(0),d++;for(s=h.e,i>1?(h=new E("0."+n),s++):h=new E(i+"."+n.slice(1)),m=h,l=o=h=R(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(R(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=R(l,new E(d),c,1),null!=t)return E.precision=v,l;if(!checkRoundingDigits(l.d,c-10,y,a))return finalise(l,E.precision=v,y,g=!0);E.precision=c+=10,u=o=h=R(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),g&&(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"),N.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(P.test(t))n=16,t=t.toLowerCase();else if(b.test(t))n=2;else{if(!A.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,M)).length-1;0===c[o];--o)c.pop();return o<0?new i(0*e.s):(e.e=getBase10Exponent(c,m),e.d=c,g=!1,a&&(e=R(e,s,4*l)),u&&(e=e.times(Math.abs(u)<54?w(2,u):r.pow(2,u))),g=!0,e)}function taylorSeries(e,t,n,i,r){var s,o,a,l,u=e.precision,c=Math.ceil(u/7);for(g=!1,l=n.times(n),a=new e(i);;){if(o=R(a.times(l),new e(t++*t++),u,1),a=r?i.plus(o):i.minus(o),i=R(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 g=!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,g,d,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=(g=finiteToString(e)).indexOf("."))>=0&&(g=g.replace(".",""),(h=new x(1)).e=g.length-a,h.d=convertBase(finiteToString(h),10,r),h.e=h.d.length),o=m=(d=convertBase(g,10,r)).length;0==d[--m];)d.pop();if(d[0]){if(a<0?o--:((e=new x(e)).d=d,e.e=o,d=(e=R(e,h,n,i,0,r)).d,o=e.e,p=s),a=d[n],c=r/2,p=p||void 0!==d[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&d[n-1]||i===(e.s<0?8:7)),d.length=n,p)for(;++d[--n]>r-1;)d[n]=0,n||(++o,d.unshift(1));for(m=d.length;!d[m-1];--m);for(a=0,g="";a<m;a++)g+=u.charAt(d[a]);if(E){if(m>1)if(16==t||8==t){for(a=16==t?4:3,--m;m%a;m++)g+="0";for(m=(d=convertBase(g,r,t)).length;!d[m-1];--m);for(a=1,g="1.";a<m;a++)g+=u.charAt(d[a])}else g=g.charAt(0)+"."+g.slice(1);g=g+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)g="0"+g;g="0."+g}else if(++o>m)for(o-=m;o--;)g+="0";else o<m&&(g=g.slice(0,o)+"."+g.slice(o))}else g=E?"0p+0":"0";g=(16==t?"0x":2==t?"0b":8==t?"0o":"")+g}else g=nonFiniteToString(e);return e.s<0?"-"+g:g}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(R(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(R(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(d+"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(g=!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 g=!0,new this(1/0);n=t}return g=!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=w(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(g=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return g=!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(g?!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(g?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),N.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=O,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)}()},1339(e,t,n){"use strict";t.completeSquare=function completeSquare(e,t){const n=void 0===t?void 0:(0,i.assertPlainVariableAndGetString)(t);return(0,r.sqcomp)(e,n).expression};const i=n(1897),r=n(2634)},6431(e,t,n){"use strict";t.Groebner=function Groebner(e,t="LEX",n=!0){if(0===e.length)return[];const r=groebnerBasisSparse(e,{order:t,reduced:n}),s=r[0]?.variableCount??e[0].variableCount,o=new Map,getInfo=e=>{let n=o.get(e);return n||(n={pv:variablePresence(e),lt:ltOrNull(e,t)},o.set(e,n)),n};return[...r].sort((e,n)=>{const r=getInfo(e),o=getInfo(n);for(let e=0;e<s;e++){const t=r.pv[e]?1:0,n=o.pv[e]?1:0;if(t!==n)return t>n?-1:1}if(r.lt&&o.lt){const e=i.SparsePolynomial.compareMonomials(r.lt.exp,o.lt.exp,sparseOrder(t));if(0!==e)return e}return e.termCount-n.termCount})};const i=n(7248),r=n(4703),s=n(551);class GroebnerBudgetExceeded extends Error{stats;constructor(e,t){super(e),this.name="GroebnerBudgetExceeded",this.stats=t}}function sparseOrder(e){return"LEX"===e?"lex":"GRLEX"===e?"grlex":"grevlex"}function ltOrNull(e,t){const n=e.leadingTerm(sparseOrder(t));return null===n?null:{exp:n.exponents,coeff:n.coefficient}}function polyKey(e){const t=e.terms().map(e=>`${e.exponents.join(",")}:${e.coefficient.toString()}`);return t.sort(),t.join("|")}function primitiveNormalizeOrder(e,t){if(e.isZero())return i.SparsePolynomial.zero(e.variableCount);let n=e.primitivePart().normalizeLeadingSign(sparseOrder(t));const r=ltOrNull(n,t);if(r&&0n!==r.coeff&&1n!==r.coeff){let e=!0;for(const t of n.terms())if(t.coefficient%r.coeff!==0n){e=!1;break}e&&(n=n.divideByScalarExact(r.coeff))}return n}function expLcmDense(e,t){if(e.length!==t.length)throw new RangeError((0,r.message)("multidegreeMismatch"));const n=new Array(e.length);for(let i=0;i<e.length;i++)n[i]=e[i]>t[i]?e[i]:t[i];return n}function monoDividesDense(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]>t[n])return!1;return!0}function monoSubDense(e,t){if(t.length!==e.length)throw new RangeError((0,r.message)("multidegreeMismatch"));const n=new Array(t.length);for(let i=0;i<t.length;i++)n[i]=e[i]-t[i];return n}function monomialTotalDegreeDense(e){let t=0n;for(const n of e)t+=n;return t}function reducerViews(e,t,n){const i=[];for(const r of e){const e=n?primitiveNormalizeOrder(r,t):r;if(e.isZero())continue;const s=ltOrNull(e,t);null!==s&&i.push({poly:e,lt:s})}return i}function normalFormFractionFree(e,t,n,i=reducerViews(t,n,!1),r){let s=e;if(s.isZero())return s;for(;;){const e=ltOrNull(s,n);if(!e)break;let t=!1;for(let n=0;n<i.length;n++){const{poly:o,lt:a}=i[n];if(!monoDividesDense(a.exp,e.exp))continue;const l=monoSubDense(e.exp,a.exp);if(r){const e=r.reducerSugars[n]+monomialTotalDegreeDense(l);e>r.value&&(r.value=e)}s=s.scaleSubtractMonomial(a.coeff,o,e.coeff,l),t=!0;break}if(!t)break}return s}function normalFormFractionFreeAllTerms(e,t,n,r=reducerViews(t,n,!0),s){let o=primitiveNormalizeOrder(e,n);if(o.isZero()||0===r.length)return o;const a=sparseOrder(n);for(;;){let e=null,t=null,l=-1;for(const n of o.terms()){let s=null,o=-1;for(let e=0;e<r.length;e++){const t=r[e];if(monoDividesDense(t.lt.exp,n.exponents)){s=t,o=e;break}}null!==s&&(null===e||i.SparsePolynomial.compareMonomials(n.exponents,e.exponents,a)>0)&&(e=n,t=s,l=o)}if(null===e||null===t)break;const u=monoSubDense(e.exponents,t.lt.exp);if(s){const e=s.reducerSugars[l]+monomialTotalDegreeDense(u);e>s.value&&(s.value=e)}o=primitiveNormalizeOrder(o.scaleSubtractMonomial(t.lt.coeff,t.poly,e.coefficient,u),n)}return o}function variablePresence(e){const t=new Array(e.variableCount).fill(!1);for(const n of e.variables())t[n]=!0;return t}function sPairSugar(e,t,n,i,r){const s=e+r-n,o=t+r-i;return s>o?s: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 groebnerBasisSparse(e,t="LEX"){const n="string"==typeof t?{order:t}:t??{},s=n.order??"LEX",o=n.reduced??!0,a=n.maxPairsPopped,l=n.maxBasisSize,u=n.strategy??"sugar",c={pairsPopped:0,pairsSkippedProduct:0,pairsSkippedChain:0,pairsReducedToZero:0,basisAppends:0},m=e.filter(e=>!e.isZero());if(0===m.length)return[];const p=m[0].variableCount;for(const e of m)if(e.variableCount!==p)throw new RangeError((0,r.message)("multidegreeMismatch"));const g=m.slice(),d=reducerViews(g,s,!1),h=reducerViews(g,s,!0),x=d.map(e=>monomialTotalDegreeDense(e.lt.exp)),E=g.map(e=>e.totalDegree()??0n),y=g.map(()=>new Set),markZeroPair=(e,t)=>{y[e].add(t),y[t].add(e)},areCoprimeLM=(e,t)=>{for(let n=0;n<p;n++)if(e[n]>0n&&t[n]>0n)return!1;return!0},chainCriterionApplies=(e,t)=>{const n=expLcmDense(d[e].lt.exp,d[t].lt.exp),i=y[e],r=y[t],s=i.size<=r.size?i:r,o=s===i?r:i;for(const i of s)if(i!==e&&i!==t&&o.has(i)&&monoDividesDense(d[i].lt.exp,n))return!0;return!1},appendBasis=e=>{const t=g.length;g.push(e);const n=reducerViews([e],s,!1)[0],i=reducerViews([e],s,!0)[0];if(d.push(n),h.push(i),x.push(monomialTotalDegreeDense(n.lt.exp)),y.push(new Set),c.basisAppends++,void 0!==l&&g.length>l)throw new GroebnerBudgetExceeded((0,r.message)("groebnerBasisSizeBudgetExceeded",{max:String(l)}),c);return t},reducePair=(e,t,n)=>{const i=function sPolynomialFF(e,t,n,i){const r=expLcmDense(n.exp,i.exp),s=monoSubDense(r,n.exp),o=monoSubDense(r,i.exp);return e.monomialScaleSubtract(i.coeff,s,t,n.coeff,o)}(g[e],g[t],d[e].lt,d[t].lt),r=void 0===n?void 0:{value:n,reducerSugars:E};return{polynomial:normalFormFractionFreeAllTerms(normalFormFractionFree(i,g,s,d,r),g,s,h,r),sugar:r?.value}};if("sugar"===u){const e=[],makePair=(e,t)=>{const n=monomialTotalDegreeDense(expLcmDense(d[e].lt.exp,d[t].lt.exp));return{i:e,j:t,sugar:sPairSugar(E[e],E[t],x[e],x[t],n),lcmDeg:n}};for(let t=0;t<g.length;t++)for(let n=t+1;n<g.length;n++)insertPairSorted(e,makePair(t,n));for(;e.length>0;){const{i:t,j:n,sugar:s}=e.pop();if(c.pairsPopped++,void 0!==a&&c.pairsPopped>a)throw new GroebnerBudgetExceeded((0,r.message)("groebnerPairsBudgetExceeded",{max:String(a)}),c);if(areCoprimeLM(d[t].lt.exp,d[n].lt.exp)){c.pairsSkippedProduct++,markZeroPair(t,n);continue}if(chainCriterionApplies(t,n)){c.pairsSkippedChain++,markZeroPair(t,n);continue}const o=reducePair(t,n,s),l=o.polynomial;if(l.isZero()){c.pairsReducedToZero++,markZeroPair(t,n);continue}if(l.isConstant()&&0n!==l.constantTerm())return[i.SparsePolynomial.constant(p,1n)];const u=appendBasis(l),m=l.totalDegree()??0n,g=o.sugar??s;E.push(g>m?g:m);for(let t=0;t<u;t++)insertPairSorted(e,makePair(t,u))}}else{const e=[];for(let t=0;t<g.length;t++)for(let n=t+1;n<g.length;n++)e.push([t,n]);let t=0;for(;t<e.length;){const[n,s]=e[t++];if(c.pairsPopped++,void 0!==a&&c.pairsPopped>a)throw new GroebnerBudgetExceeded((0,r.message)("groebnerPairsBudgetExceeded",{max:String(a)}),c);if(areCoprimeLM(d[n].lt.exp,d[s].lt.exp)){c.pairsSkippedProduct++,markZeroPair(n,s);continue}if(chainCriterionApplies(n,s)){c.pairsSkippedChain++,markZeroPair(n,s);continue}const o=reducePair(n,s).polynomial;if(o.isZero()){c.pairsReducedToZero++,markZeroPair(n,s);continue}if(o.isConstant()&&0n!==o.constantTerm())return[i.SparsePolynomial.constant(p,1n)];const l=appendBasis(o);for(let t=0;t<l;t++)e.push([t,l])}}return o?function canonicalizeBasis(e,t){const n=[],r=[],s=[],o=e.filter(e=>!e.isZero());for(const e of o){const i=normalFormFractionFreeAllTerms(normalFormFractionFree(e,n,t,r),n,t,s);i.isZero()||(n.push(i),r.push(reducerViews([i],t,!1)[0]),s.push(reducerViews([i],t,!0)[0]))}const a=[];for(let e=0;e<n.length;e++){const i=n.filter((t,n)=>n!==e),o=r.filter((t,n)=>n!==e),l=s.filter((t,n)=>n!==e),u=normalFormFractionFreeAllTerms(normalFormFractionFree(n[e],i,t,o),i,t,l);u.isZero()||a.push(u)}const l=new Map;for(const e of a)l.set(polyKey(e),e);const u=Array.from(l.values()),c=sparseOrder(t),m=new Map;for(const e of u)m.set(e,{presence:variablePresence(e),lt:ltOrNull(e,t)});return u.sort((e,t)=>{const n=m.get(e),r=m.get(t);for(let t=0;t<e.variableCount;t++){const e=n.presence[t]?1:0,i=r.presence[t]?1:0;if(e!==i)return e-i}if(n.lt&&r.lt){const e=i.SparsePolynomial.compareMonomials(n.lt.exp,r.lt.exp,c);if(0!==e)return e}return e.termCount-t.termCount}),u}(g,s):g}function reduceSparseByBasis(e,t,n){if(e.isZero()||0===t.length)return e;const i=reducerViews(t,n,!1),r=reducerViews(t,n,!0);return normalFormFractionFreeAllTerms(normalFormFractionFree(e,t,n,i),t,n,r)}function scaleByDenomPow(e,t,n){const r=e.degree(t);return null===r||0n===r||1n===n?e:new i.SparsePolynomial(e.variableCount,e.terms().map(e=>({coefficient:e.coefficient*n**(r-e.exponents[t]),exponents:e.exponents})))}function rationalRootsUnivariate(e,t){const n=e.degree(t);if(null===n||0n===n)return[];const r=e.coefficientIn(t,n).constantTerm(),o=e.constantTerm();if(0n===o){const r=[{n:0n,d:1n}];let s=n;for(const n of e.terms())n.exponents[t]<s&&n.exponents[t];const o=new i.SparsePolynomial(e.variableCount,e.terms().map(e=>{const n=[...e.exponents];return n[t]-=s,{coefficient:e.coefficient,exponents:n}}));for(const e of rationalRootsUnivariate(o,t))0n!==e.n&&r.push(e);return r}const a=positiveDivisors((0,s.abs)(o)),l=positiveDivisors((0,s.abs)(r)),u=[],c=new Set;for(const i of a)for(const r of l)for(const o of[1n,-1n]){const a=o*i,l=(0,s.GCD)((0,s.abs)(a),r),m=a/l,p=r/l,g=`${m}/${p}`;c.has(g)||(c.add(g),evaluatesAtRationalToZero(e,t,n,m,p)&&u.push({n:m,d:p}))}return u}function evaluatesAtRationalToZero(e,t,n,i,r){let s=0n;for(const s of e.terms()){const e=s.exponents[t];s.coefficient*i**e*r**(n-e)}return 0n===s}function evaluatesToZero(e,t,n){const i=e.degree(t);return null===i||(0n===i?0n===e.constantTerm():evaluatesAtRationalToZero(e,t,i,n.n,n.d))}function positiveDivisors(e){if(0n===e)return[0n];e<0n&&-e;const t=[];let n=1n;for(;n*n<=e;)e%n===0n&&(t.push(n),n!==e/n&&t.push(e/n));return t}},193(e,t,n){"use strict";t.loadAlgebraFunctions=function loadAlgebraFunctions(){Object.assign(i.mathFunctionRegistry,{polyfactors:(0,i.systemFunction)({fn:o.polyFactors,minArgs:1,maxArgs:1,distElWise:!1}),factor:(0,i.systemFunction)({fn:o.factor,minArgs:1,maxArgs:1,distElWise:!0}),[r.PFACTOR]:(0,i.systemFunction)({fn:o.pfactor,minArgs:1,maxArgs:1,distElWise:!1}),[r.PFACTORD]:(0,i.systemFunction)({fn:o.pfactord,minArgs:1,maxArgs:1,distElWise:!1}),simplify:(0,i.systemFunction)({fn:c.simplify,minArgs:1,maxArgs:1,distElWise:!0}),partfrac:(0,i.systemFunction)({fn:u.partfrac,minArgs:1,maxArgs:2,distElWise:!0}),gcd:(0,i.systemFunction)({fn:a.gcd,minArgs:2,maxArgs:2,distElWise:!0}),lcm:(0,i.systemFunction)({fn:a.lcm,minArgs:2,maxArgs:2,distElWise:!0}),groebner:(0,i.systemFunction)({fn:l.groebner,minArgs:1,maxArgs:2,distElWise:!1}),sqcomp:(0,i.systemFunction)({fn:s.completeSquare,minArgs:1,maxArgs:2,distElWise:!0})})};const i=n(9426),r=n(8300),s=n(1339),o=n(2724),a=n(4692),l=n(3725),u=n(2766),c=n(9684)},2724(e,t,n){"use strict";t.factor=function factor(e){let t;try{if((e=s.Expression.create(e)).isZero())t=e;else if(e.isNUM()&&e.isInteger()){let n;const i=(0,p.primeFactorCounts)(e.getMultiplier().numerator);for(const e in i){const t=s.Expression.toEXP(e,i[e]);n=n?(0,l.merge)(n,t):t}t=n??s.Expression.Number("1"),-1===e.sign()&&(t=t.neg())}else if(e.isVAR())t=e;else if(e.isFunction()){const n=e.getMultiplier(),i=e.getPower();t=s.Expression.toFunction(e.name,e.getArguments().map(e=>factor(e))),t=t.pow(i).times(n)}else if(e.isPolynomialLike())t=polyFactors(e).prod();else{const n=factors(e);t=n.numerator.prod().div(n.denominator.prod())}}catch{t=s.Expression.toFunction(a.FACTOR,[e])}return t},t.pfactor=function pfactor(e){const t=s.Expression.create(e);if(!t.isNUM()||!t.isInteger()||t.lte((0,o.zero)()))throw new m.UnexpectedInputError((0,m.message)("wrongInput",{expected:"a positive integer",received:t.text()}));const n=t.getMultiplier().numerator;if(1n===n)return new c.Vector;const i=(0,p.primeFactorsBig)(n).factors.map(e=>s.Expression.Number(e));return new c.Vector(i)},t.pfactord=function pfactord(e){const t=s.Expression.create(e);if(!t.isNUM()||!t.isInteger()||t.lte((0,o.zero)()))throw new m.UnexpectedInputError((0,m.message)("wrongInput",{expected:"a positive integer",received:t.text()}));const n=t.getMultiplier().numerator;if(1n===n)return new i.Dictionary;const r=(0,p.primeFactorCounts)(n),a=new i.Dictionary;for(const e of Object.keys(r).sort((e,t)=>{const n=BigInt(e),i=BigInt(t);return n<i?-1:n>i?1:0}))a.set(e,s.Expression.Number(r[e]));return a},t.polyFactorExpressions=polyFactorExpressions,t.polyFactors=polyFactors,t.factorExpressionParts=factorExpressionParts;const i=n(6528),r=n(6056),s=n(296),o=n(6099),a=n(8300),l=n(6498),u=n(6105),c=n(3982),m=n(4703),p=n(982),g=n(886),d=n(133),h=n(4262),x=n(6827);function polyFactorExpressions(e){let t;try{const n=(0,r.normalizeMultiplierDenominators)(s.Expression.create(e)),i=n.getNumerator(),o=n.getDenominator(),[a,l]=(0,g.uSubConstants)(i),c=(0,u.expressionToSparsePolynomial)(a),p=c.variables,x=c.polynomial;if(0===p.length)t=[s.Expression.Number(x.constantTerm())];else{const e=p.map((e,t)=>t),n=1===p.length?(0,d.factorUnivariateInteger)(x,0):(0,h.factorMultivariateInteger)(x,e);t=[],1n!==n.content&&t.push(s.Expression.Number(n.content));for(const e of n.factors){let n=(0,u.sparsePolynomialToExpression)(e.factor,p);e.multiplicity>1n&&(n=n.pow(s.Expression.Number(e.multiplicity))),t.push(n)}if(0===t.length)throw new Error((0,m.message)("factorizationNoFactors"))}t=t.map(e=>(0,g.uUnSub)(e,l)),o.isOne()||(t[0]=t[0].div(o))}catch{t=[s.Expression.create(e)]}return t}function polyFactors(e){return new c.Vector(polyFactorExpressions(e))}function factorExpressionParts(e){const{numerator:t,denominator:n,map:i}=(0,x.polynomialize)(s.Expression.create(e));return{numerator:polyFactorExpressions(t).map(e=>(0,g.uUnSub)(e,i)),denominator:polyFactorExpressions(n).map(e=>(0,g.uUnSub)(e,i))}}function factors(e){const{numerator:t,denominator:n}=factorExpressionParts(e);return{numerator:new c.Vector(t),denominator:new c.Vector(n)}}},4692(e,t,n){"use strict";t.gcd=gcd,t.lcm=function lcm(e,t){const n=r.Expression.create(e),i=r.Expression.create(t);let o;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));return o};const i=n(6338),r=n(296),s=n(6099),o=n(8300),a=n(6105),l=n(551),u=n(886),c=n(6698),m=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,m.polynomialize)(e),{numerator:l,denominator:c,map:p}=(0,m.polynomialize)(t,a),g=(0,i.collectVariablesSet)([s,o,l,c]),d=expressionGCD(s,l,g),h=expressionGCD(o,c,g),x=(0,u.uUnSub)(d.div(h),p);return x.getMultiplier().asDecimal=n,x}catch{}return r.Expression.toFunction(o.GCD,[e,t])}function expressionGCD(e,t,n){if(e.isNUM()&&t.isNUM())return r.Expression.create(e.getMultiplier().GCD(t.getMultiplier()));if(e.isZero()&&t.isZero())return(0,s.zero)();if(e.isZero())return r.Expression.create(t);if(t.isZero())return r.Expression.create(e);n??=(0,i.collectVariablesSet)([e,t]);const o=(0,a.expressionToIntegerSparsePolynomial)(e,n),u=(0,a.expressionToIntegerSparsePolynomial)(t,n),m=n.map((e,t)=>t),p=(0,c.sparsePolynomialGcd)(o.polynomial,u.polynomial,m),g=(0,l.GCD)(o.denominator,u.denominator),d=(0,a.sparsePolynomialToExpression)(p,n);return 1n===g?d:d.div(r.Expression.Number(g))}},3725(e,t,n){"use strict";t.groebner=function groebner(e,t){const n=(o.Vector.isVector(e)?e.elements:e).map(e=>r.Expression.create(e));t??=(0,i.collectVariablesSet)(n);const l=n.map(e=>(0,s.expressionToIntegerSparsePolynomial)(e,t).polynomial);return new o.Vector((0,a.Groebner)(l).map(e=>(0,s.sparsePolynomialToExpression)(e,t)))};const i=n(6338),r=n(296),s=n(6105),o=n(3982),a=n(6431)},2766(e,t,n){"use strict";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}}if(-1===e.getPower().sign())return{num:i.Expression.fromRational(e.getMultiplier()),den:e.invert()};return{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(),g=c.deg();let d=(0,r.zero)(),h=e;if(p>=g){const[n,i]=(0,a.divide)(e,t);d=n,h=i}if(i.Expression.create(h).isZero())u=d;else if(g<=1)d.isZero()||(u=d.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;for(const e of n)for(let t=1;t<=e.power;t++)l.push({factor:e.expr,power:t,unknownIndex:u,numUnknowns:e.degree}),u+=e.degree;const c=[];for(const e of n)if(1===e.degree){const t=findLinearRoot(e.expr,o);void 0!==t&&c.push(t)}let m=0;for(;c.length<u;){const e=i.Expression.Number(m);if(!evaluateAt(t,o,e).isZero()){c.some(t=>t.eq(e))||c.push(e)}m=m<=0?1-m:-m}const p=[],g=[],d=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=c[t],s=evaluateAt(e,o,n);g.push(s);const a=[];for(let e=0;e<l.length;e++){const t=l[e],s=evaluateAt(d[e],o,n);for(let e=t.numUnknowns-1;e>=0;e--){const t=0===e?(0,r.one)():n.pow(i.Expression.Number(e));a.push(t.times(s))}}p.push(a)}const h=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)return;for(let e=0;e<n;e++)if(!u[e])return;return u}(p,g);if(void 0===h)return;let x=(0,r.zero)();const E=i.Expression.create(o);for(const e of l){const t=1===e.power?e.factor:e.factor.pow(i.Expression.Number(e.power));let n=(0,r.zero)();for(let t=0;t<e.numUnknowns;t++){const s=h[e.unknownIndex+t],o=e.numUnknowns-1-t,a=0===o?(0,r.one)():E.pow(i.Expression.Number(o));n=n.plus(s.times(a))}n.isZero()||(x=x.plus(n.div(t)))}return x}(h,t,e,m);void 0!==n&&(u=d.isZero()?n:d.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)}},7134(e,t,n){"use strict";t.ModularSparsePolynomial=void 0;const i=n(7248),r=n(4703),s=n(551);class ModularSparsePolynomial{polynomial;modulus;variableCount;constructor(e,t,n=[]){if(t<=1n)throw new RangeError((0,r.message)("polyModulusGreaterThanOne"));let o;if(n instanceof i.SparsePolynomial){if(n.variableCount!==e)throw new RangeError((0,r.message)("polyVariableCountMatch"));o=n}else o=new i.SparsePolynomial(e,n);this.modulus=t,this.polynomial=o.mapCoefficients(e=>(0,s.mod)(e,t)),this.variableCount=this.polynomial.variableCount}static constant(e,t,n){return new ModularSparsePolynomial(e,t,[{coefficient:n,exponents:new Array(e).fill(0n)}])}static interpolateVariable(e,t){if(0===t.length)throw new RangeError((0,r.message)("polyRequires",{operation:"ModularSparsePolynomial interpolation",requirement:(0,r.message)("polyReqAtLeastOneSample")}));const n=t[0].polynomial;n.degree(e);const i=ModularSparsePolynomial.variable(n.variableCount,n.modulus,e);let o=ModularSparsePolynomial.zero(n.variableCount,n.modulus);for(let a=0;a<t.length;a++){const l=t[a];n.assertCompatible(l.polynomial);const u=l.polynomial.degree(e);if(null!==u&&0n!==u)throw new RangeError((0,r.message)("polyInterpolationCannotDepend"));const c=(0,s.mod)(l.value,n.modulus);let m=1n,p=ModularSparsePolynomial.constant(n.variableCount,n.modulus,1n);for(let e=0;e<t.length;e++){if(a===e)continue;const r=(0,s.mod)(t[e].value,n.modulus);p=p.multiply(i.subtract(ModularSparsePolynomial.constant(n.variableCount,n.modulus,r))),m=(0,s.mod)(m*(0,s.mod)(c-r,n.modulus),n.modulus)}const g=(0,s.invMod)(m,n.modulus);if(g<0n)throw new RangeError((0,r.message)("polyInterpolationInvertibleDifferences"));o=o.add(l.polynomial.multiply(p.scale(g)))}return o}static monomial(e,t,n,i){return new ModularSparsePolynomial(e,t,[{coefficient:n,exponents:i}])}static variable(e,t,n){const r=i.SparsePolynomial.variable(e,n);return new ModularSparsePolynomial(e,t,r)}static zero(e,t){return new ModularSparsePolynomial(e,t)}assertCompatible(e){if(this.variableCount!==e.variableCount||this.modulus!==e.modulus)throw new RangeError((0,r.message)("polyRequires",{operation:"ModularSparsePolynomial operations",requirement:(0,r.message)("polyReqSamePolynomialRing")}))}add(e){this.assertCompatible(e);const t=this.polynomial.add(e.polynomial);return new ModularSparsePolynomial(this.variableCount,this.modulus,t)}coefficient(e){return this.polynomial.coefficient(e)}coefficientIn(e,t){if(this.polynomial.degree(e),t<0n)throw new RangeError((0,r.message)("polyCoefficientExponentNonnegative"));const n=[];for(const i of this.polynomial.terms())if(i.exponents[e]===t){const t=[...i.exponents];t[e]=0n,n.push({coefficient:i.coefficient,exponents:t})}return new ModularSparsePolynomial(this.variableCount,this.modulus,n)}constantTerm(){return this.polynomial.constantTerm()}degree(e){return this.polynomial.degree(e)}derivative(e){this.polynomial.degree(e);const t=[];for(const n of this.polynomial.terms()){const i=n.exponents[e];if(0n===i)continue;const r=[...n.exponents];r[e]=i-1n,t.push({coefficient:(0,s.mod)(n.coefficient*i,this.modulus),exponents:r})}return new ModularSparsePolynomial(this.variableCount,this.modulus,t)}divideExact(e,t="lex"){const n=this.divideWithRemainder(e,t);return n.remainder.isZero()?n.quotient:null}divideWithRemainder(e,t="lex"){this.assertCompatible(e);const n=e.leadingTerm(t);if(null===n)throw new RangeError((0,r.message)("polyCannotDivideZero"));const i=(0,s.invMod)(n.coefficient,this.modulus);if(i<0n)throw new RangeError((0,r.message)("polyDivisorLeadingCoefficientInvertible"));let o=ModularSparsePolynomial.zero(this.variableCount,this.modulus),a=ModularSparsePolynomial.zero(this.variableCount,this.modulus),l=new ModularSparsePolynomial(this.variableCount,this.modulus,this.polynomial);for(;!l.isZero();){const r=l.leadingTerm(t);if(null===r)break;let u=!0;const c=new Array(this.variableCount);for(let e=0;e<this.variableCount;e++){if(r.exponents[e]<n.exponents[e]){u=!1;break}c[e]=r.exponents[e]-n.exponents[e]}if(u){const t=(0,s.mod)(r.coefficient*i,this.modulus),n=ModularSparsePolynomial.monomial(this.variableCount,this.modulus,t,c);o=o.add(n),l=l.subtract(e.multiply(n))}else{const e=ModularSparsePolynomial.monomial(this.variableCount,this.modulus,r.coefficient,r.exponents);a=a.add(e),l=l.subtract(e)}}return{quotient:o,remainder:a}}equals(e){return this.modulus===e.modulus&&this.polynomial.equals(e.polynomial)}evaluateVariable(e,t){this.polynomial.degree(e);const n=(0,s.mod)(t,this.modulus),i=[];for(const t of this.polynomial.terms()){const r=t.exponents[e],o=[...t.exponents];o[e]=0n,i.push({coefficient:(0,s.mod)(t.coefficient*(0,s.powMod)(n,r,this.modulus),this.modulus),exponents:o})}return new ModularSparsePolynomial(this.variableCount,this.modulus,i)}isConstant(){return this.polynomial.isConstant()}isZero(){return this.polynomial.isZero()}leadingCoefficientIn(e){const t=this.degree(e);return null===t?null:this.coefficientIn(e,t)}leadingTerm(e="lex"){return this.polynomial.leadingTerm(e)}monic(e="lex"){const t=this.leadingTerm(e);if(null===t||1n===t.coefficient)return this;const n=(0,s.invMod)(t.coefficient,this.modulus);if(n<0n)throw new RangeError((0,r.message)("polyLeadingCoefficientInvertible"));return this.scale(n)}multiply(e){this.assertCompatible(e);const t=this.polynomial.multiply(e.polynomial);return new ModularSparsePolynomial(this.variableCount,this.modulus,t)}negate(){const e=this.polynomial.negate();return new ModularSparsePolynomial(this.variableCount,this.modulus,e)}pow(e){if(e<0n)throw new RangeError((0,r.message)("polyExponentNonnegative"));let t=ModularSparsePolynomial.constant(this.variableCount,this.modulus,1n),n=e;if(0n===n)return t;if(1n==(1n&n)&&(t=t.multiply(this)),n>>=1n,0n===n)return t;let i=this.multiply(this);for(;n>0n;)1n==(1n&n)&&(t=t.multiply(i)),n>>=1n,n>0n&&(i=i.multiply(i));return t}scale(e){const t=this.polynomial.scale((0,s.mod)(e,this.modulus));return new ModularSparsePolynomial(this.variableCount,this.modulus,t)}subtract(e){this.assertCompatible(e);const t=this.polynomial.subtract(e.polynomial);return new ModularSparsePolynomial(this.variableCount,this.modulus,t)}get termCount(){return this.polynomial.termCount}terms(){return this.polynomial.terms()}toSymmetricIntegerPolynomial(){const e=this.modulus/2n;return new i.SparsePolynomial(this.variableCount,this.terms().map(t=>({coefficient:t.coefficient>e?t.coefficient-this.modulus:t.coefficient,exponents:t.exponents})))}totalDegree(){return this.polynomial.totalDegree()}variables(){return this.polynomial.variables()}}t.ModularSparsePolynomial=ModularSparsePolynomial},7609(e,t,n){"use strict";t.henselLiftMultivariateFactors=function henselLiftMultivariateFactors(e,t,n,o,l,u){if(o.length<2)throw new RangeError((0,i.message)("polyRequires",{operation:"Multivariate Hensel lifting",requirement:(0,i.message)("polyReqAtLeastTwoSelectedVariables")}));if(l.length!==o.length-1)throw new RangeError((0,i.message)("polyRequires",{operation:"Multivariate Hensel lifting",requirement:(0,i.message)("polyReqOneEvaluationPerTailVariable")}));if(0===t.length||t.length!==n.length)throw new RangeError((0,i.message)("polyRequires",{operation:"Multivariate Hensel lifting",requirement:(0,i.message)("polyReqMatchingFactorLeadingLists")}));if(!(0,s.isPrimeBig)(u))throw new RangeError((0,i.message)("polyRequires",{operation:"Multivariate Hensel lifting",requirement:(0,i.message)("polyReqPrimeModulus")}));const c=o[0];let m=0n;for(const t of o.slice(1)){const n=e.degree(t)??0n;n>m&&(m=n)}if(u<=m)throw new RangeError((0,i.message)("polyHenselPrimeExceedsTailDegree"));for(const r of[...t,...n])if(r.variableCount!==e.variableCount)throw new RangeError((0,i.message)("polyRequires",{operation:"Multivariate Hensel lifting inputs",requirement:(0,i.message)("polyReqSamePolynomialRing")}));const p=new a.ModularSparsePolynomial(e.variableCount,u,e.terms());let g=t.map(e=>new a.ModularSparsePolynomial(e.variableCount,u,e.terms())),d=p;for(let e=0;e<l.length;e++)d=d.evaluateVariable(o[e+1],l[e]);if(!productModularFactors(g,p.variableCount,u).equals(d))return null;for(let e=0;e<g.length;e++)for(let t=e+1;t<g.length;t++){if(!modularExtendedGcdUnivariate(g[e],g[t],c).gcd.isConstant())return null}for(let e=0;e<o.length-1;e++){const t=o[e+1];let i=p;for(let t=e+1;t<l.length;t++)i=i.evaluateVariable(o[t+1],l[t]);const s=i.evaluateVariable(t,l[e]);if(!productModularFactors(g,p.variableCount,u).equals(s))return null;const d=buildMultivariateHenselSeeds(n,l,g,o,e,u);if(null===d)return null;g=[...d];const h=a.ModularSparsePolynomial.variable(p.variableCount,u,t).subtract(a.ModularSparsePolynomial.constant(p.variableCount,u,l[e])),x=i.degree(t)??0n,E=g.map(n=>n.evaluateVariable(t,l[e]));for(let n=1n;n<=x;n++){const s=i.subtract(productModularFactors(g,p.variableCount,u));if(s.isZero())break;const a=modularDerivativeOrder(s,t,n).evaluateVariable(t,l[e]),d=(0,r.invMod)(factorialModulo(n,u),u);if(d<0n)return null;const x=a.scale(d);if(x.isZero())continue;const y=solveMultivariateDiophantine(E,x,c,o.slice(1,e+1),l.slice(0,e),m);if(null===y)return null;const v=h.pow(n);g=g.map((e,t)=>e.add(y[t].multiply(v)))}if(!productModularFactors(g,p.variableCount,u).equals(i))return null}if(!productModularFactors(g,p.variableCount,u).equals(p))return null;return g.map(e=>e.toSymmetricIntegerPolynomial().primitivePart().normalizeLeadingSign("lex"))},t.henselLiftUnivariateFactors=function henselLiftUnivariateFactors(e,t,n,o,a){if(!(0,s.isPrimeBig)(t))throw new RangeError((0,i.message)("polyRequires",{operation:"Hensel lifting",requirement:(0,i.message)("polyReqPrimeBaseModulus")}));if(0===n.length)throw new RangeError((0,i.message)("polyRequires",{operation:"Hensel lifting",requirement:(0,i.message)("polyReqAtLeastOneModularFactor")}));if(a<t)throw new RangeError((0,i.message)("polyHenselTargetNotSmaller"));e.degree(o);for(const t of e.variables())if(t!==o)throw new RangeError((0,i.message)("polyRequires",{operation:"Hensel lifting",requirement:(0,i.message)("polyReqUnivariateIntegerPolynomial")}));for(const r of n){if(r.variableCount!==e.variableCount||r.modulus!==t)throw new RangeError((0,i.message)("polyRequires",{operation:"Hensel lifting",requirement:(0,i.message)("polyReqFactorsSameRingAndPrime")}));for(const e of r.variables())if(e!==o)throw new RangeError((0,i.message)("polyRequires",{operation:"Hensel lifting",requirement:(0,i.message)("polyReqUnivariateFactors")}));if(!r.equals(r.monic()))throw new RangeError((0,i.message)("polyRequires",{operation:"Hensel lifting",requirement:(0,i.message)("polyReqMonicModularFactors")}))}let l=t;for(;l<a;)l*=l;if(l!==a)throw new RangeError((0,i.message)("polyHenselTargetRepeatedSquaring"));const u=integerPolynomialModulo(e,t),c=u.leadingTerm();if(null===c)throw new RangeError((0,i.message)("polyCannotFactorZeroPolynomial",{operation:"Hensel lifting"}));if((0,r.invMod)(c.coefficient,t)<0n)throw new RangeError((0,i.message)("polyRequires",{operation:"Hensel lifting",requirement:(0,i.message)("polyReqIntegerLeadingCoefficientInvertible")}));if(!productModularFactors(n,e.variableCount,t).scale(c.coefficient).equals(u))throw new RangeError((0,i.message)("polyHenselFactorsReconstructModuloBase"));const m=integerPolynomialModulo(e,a),p=liftFactorGroup(m,t,n,o,a),g=m.leadingTerm();if(null===g)throw new Error((0,i.message)("polyHenselLeadingLost"));if(!productModularFactors(p,e.variableCount,a).scale(g.coefficient).equals(m))throw new Error((0,i.message)("polyHenselReconstructionFailed"));return p},t.factorSquareFreeUnivariateFiniteField=function factorSquareFreeUnivariateFiniteField(e,t){const n=function assertSquareFreeUnivariate(e,t){if(!(0,s.isPrimeBig)(e.modulus))throw new RangeError((0,i.message)("polyRequires",{operation:"Modular factorization",requirement:(0,i.message)("polyReqPrimeModulus")}));const n=e.degree(t);for(const n of e.variables())if(n!==t)throw new RangeError((0,i.message)("polyRequires",{operation:"Modular factorization",requirement:(0,i.message)("polyReqUnivariatePolynomial")}));if(null===n||0n===n)return 0;if(n>BigInt(Number.MAX_SAFE_INTEGER))throw new RangeError((0,i.message)("polyDegreeMatrixLimit"));const l=[];for(const n of e.terms()){const i=n.exponents[t];if(0n===i)continue;const s=[...n.exponents];s[t]=i-1n,l.push({coefficient:(0,r.mod)(n.coefficient*i,e.modulus),exponents:s})}const u=new a.ModularSparsePolynomial(e.variableCount,e.modulus,l),c=(0,o.modularGcdUnivariate)(e,u,t);if(!c.isConstant())throw new RangeError((0,i.message)("polyRequires",{operation:"Berlekamp factorization",requirement:(0,i.message)("polyReqSquareFreeInput")}));return Number(n)}(e,t);if(0===n)return[];const l=e.monic();if(1===n)return[l];const u=function polynomialPowMod(e,t,n){let i=a.ModularSparsePolynomial.constant(e.variableCount,e.modulus,1n),r=polynomialRemainder(e,n),s=t;for(;s>0n;)1n==(1n&s)&&(i=polynomialRemainder(i.multiply(r),n)),s>>=1n,s>0n&&(r=polynomialRemainder(r.multiply(r),n));return i}(a.ModularSparsePolynomial.variable(l.variableCount,l.modulus,t),l.modulus,l),c=Array.from({length:n},()=>new Array(n).fill(0n));let m=a.ModularSparsePolynomial.constant(l.variableCount,l.modulus,1n);for(let e=0;e<n;e++){for(let i=0;i<n;i++){const n=new Array(l.variableCount).fill(0n);n[t]=BigInt(i),c[i][e]=m.coefficient(n)}c[e][e]=(0,r.mod)(c[e][e]-1n,l.modulus),m=polynomialRemainder(m.multiply(u),l)}const p=function nullspaceModulo(e,t){const n=e.length,s=0===n?0:e[0].length,o=e.map(e=>e.map(e=>(0,r.mod)(e,t))),a=[];let l=0;for(let e=0;e<s&&l<n;e++){let u=l;for(;u<n&&0n===o[u][e];)u++;if(u===n)continue;if(u!==l){const e=o[l];o[l]=o[u],o[u]=e}const c=(0,r.invMod)(o[l][e],t);if(c<0n)throw new RangeError((0,i.message)("polyBerlekampNoninvertiblePivot"));for(let n=e;n<s;n++)o[l][n]=(0,r.mod)(o[l][n]*c,t);for(let i=0;i<n;i++){if(i===l||0n===o[i][e])continue;const n=o[i][e];for(let a=e;a<s;a++)o[i][a]=(0,r.mod)(o[i][a]-n*o[l][a],t)}a.push(e),l++}const u=new Set(a),c=[];for(let e=0;e<s;e++){if(u.has(e))continue;const n=new Array(s).fill(0n);n[e]=1n;for(let i=0;i<a.length;i++){n[a[i]]=(0,r.mod)(-o[i][e],t)}c.push(n)}return c}(c,l.modulus);if(p.length<=1)return[l];let g=[l];for(const e of p){if(g.length>=p.length)break;const n=vectorPolynomial(e,l.variableCount,l.modulus,t);if(n.isConstant())continue;let r=0n;for(;r<l.modulus&&g.length<p.length;){const e=n.subtract(a.ModularSparsePolynomial.constant(l.variableCount,l.modulus,r)),s=[];for(const n of g){const r=n.degree(t);if(null===r||r<=1n){s.push(n);continue}const a=(0,o.modularGcdUnivariate)(n,e,t);if(a.isConstant()||a.equals(n)){s.push(n);continue}const l=n.divideExact(a);if(null===l)throw new Error((0,i.message)("polyBerlekampNonExactSplit"));s.push(a.monic(),l.monic())}g=s,r++}}if(g.length!==p.length)throw new Error((0,i.message)("polyBerlekampIncompleteSplit"));let d=a.ModularSparsePolynomial.constant(l.variableCount,l.modulus,1n);for(const e of g)d=d.multiply(e);if(!d.equals(l))throw new Error((0,i.message)("polyBerlekampReconstructionFailed"));return g.sort((e,n)=>{const i=e.degree(t)??0n,r=n.degree(t)??0n;if(i!==r)return i<r?-1:1;const s=e.terms(),o=n.terms(),a=Math.min(s.length,o.length);for(let e=0;e<a;e++){const n=s[e].exponents[t],i=o[e].exponents[t];if(n!==i)return n<i?-1:1;if(s[e].coefficient!==o[e].coefficient)return s[e].coefficient<o[e].coefficient?-1:1}return s.length-o.length})};const i=n(4703),r=n(551),s=n(982),o=n(7404),a=n(7134);function polynomialRemainder(e,t){return e.divideWithRemainder(t).remainder}function vectorPolynomial(e,t,n,i){const r=[];for(let n=0;n<e.length;n++){const s=e[n];if(0n===s)continue;const o=new Array(t).fill(0n);o[i]=BigInt(n),r.push({coefficient:s,exponents:o})}return new a.ModularSparsePolynomial(t,n,r)}function changeModulus(e,t){return new a.ModularSparsePolynomial(e.variableCount,t,e.terms())}function integerPolynomialModulo(e,t){return new a.ModularSparsePolynomial(e.variableCount,t,e.terms())}function modularExtendedGcdUnivariate(e,t,n){if(e.variableCount!==t.variableCount||e.modulus!==t.modulus)throw new RangeError((0,i.message)("polyRequires",{operation:"Modular extended GCD",requirement:(0,i.message)("polyReqSamePolynomialRing")}));e.degree(n),t.degree(n);let s=e,o=t,l=a.ModularSparsePolynomial.constant(e.variableCount,e.modulus,1n),u=a.ModularSparsePolynomial.zero(e.variableCount,e.modulus),c=a.ModularSparsePolynomial.zero(e.variableCount,e.modulus),m=a.ModularSparsePolynomial.constant(e.variableCount,e.modulus,1n);for(;!o.isZero();){const e=s.divideWithRemainder(o),t=e.remainder,n=l.subtract(e.quotient.multiply(u)),i=c.subtract(e.quotient.multiply(m));s=o,o=t,l=u,u=n,c=m,m=i}const p=s.leadingTerm();if(null===p)throw new RangeError((0,i.message)("polyExtendedGcdTwoZeroUndefined"));const g=(0,r.invMod)(p.coefficient,e.modulus);if(g<0n)throw new RangeError((0,i.message)("polyRequires",{operation:"Modular extended GCD",requirement:(0,i.message)("polyReqInvertibleLeadingCoefficient")}));return{gcd:s.scale(g),leftCoefficient:l.scale(g),rightCoefficient:c.scale(g)}}function henselPairStep(e,t){const n=t.g.modulus,i=n*n,r=changeModulus(e,i),s=changeModulus(t.g,i),o=changeModulus(t.h,i),l=changeModulus(t.s,i),u=changeModulus(t.t,i),c=r.subtract(s.multiply(o)),m=l.multiply(c).divideWithRemainder(o),p=u.multiply(c).add(m.quotient.multiply(s)),g=s.add(p),d=o.add(m.remainder),h=l.multiply(g).add(u.multiply(d)).subtract(a.ModularSparsePolynomial.constant(r.variableCount,i,1n)),x=l.multiply(h).divideWithRemainder(d),E=u.multiply(h).add(x.quotient.multiply(g));return{g,h:d,s:l.subtract(x.remainder),t:u.subtract(E)}}function productModularFactors(e,t,n){let i=a.ModularSparsePolynomial.constant(t,n,1n);for(const t of e)i=i.multiply(changeModulus(t,n));return i}function modularDerivativeOrder(e,t,n){let i=e,r=n;for(;r>0n;)i=i.derivative(t),r--;return i}function factorialModulo(e,t){let n=1n,i=2n;for(;i<=e;)n=(0,r.mod)(n*i,t),i++;return n}function buildMultivariateHenselSeeds(e,t,n,i,r,s){const o=i[0],l=i[r+1],u=[];for(let c=0;c<n.length;c++){const m=n[c],p=m.degree(o);if(null===p)return null;const g=m.terms().filter(e=>e.exponents[o]!==p),d=new a.ModularSparsePolynomial(m.variableCount,s,g);let h=e[c];for(let e=r+1;e<t.length;e++)h=h.evaluateVariable(i[e+1],t[e]);const x=new a.ModularSparsePolynomial(h.variableCount,s,h.terms()),E=new Array(m.variableCount).fill(0n);E[o]=p;const y=a.ModularSparsePolynomial.monomial(m.variableCount,s,1n,E),v=x.multiply(y).add(d);if(!v.evaluateVariable(l,t[r]).equals(m))return null;u.push(v)}return u}function solveMultivariateDiophantine(e,t,n,s,o,l){if(s.length!==o.length)throw new RangeError((0,i.message)("polyRequires",{operation:"Multivariate Diophantine solving",requirement:(0,i.message)("polyReqOneEvaluationPerTailVariable")}));if(0===s.length)return function solveUnivariateDiophantine(e,t,n){const i=[];for(let r=0;r<e.length;r++){const s=modularExtendedGcdUnivariate(productModularFactors(e.filter((e,t)=>t!==r),e[r].variableCount,e[r].modulus),e[r],n);if(!s.gcd.isConstant())return null;const o=t.multiply(s.leftCoefficient).divideWithRemainder(e[r]).remainder;i.push(o)}let r=a.ModularSparsePolynomial.zero(t.variableCount,t.modulus);for(let n=0;n<e.length;n++){const s=productModularFactors(e.filter((e,t)=>t!==n),t.variableCount,t.modulus);r=r.add(i[n].multiply(s))}return r.equals(t)?i:null}(e,t,n);const u=s[s.length-1],c=o[o.length-1],m=s.slice(0,-1),p=o.slice(0,-1),g=e.map(e=>e.evaluateVariable(u,c)),d=solveMultivariateDiophantine(g,t.evaluateVariable(u,c),n,m,p,l);if(null===d)return null;const h=e.map((n,i)=>productModularFactors(e.filter((e,t)=>t!==i),t.variableCount,t.modulus));let x=[...d];const E=a.ModularSparsePolynomial.variable(t.variableCount,t.modulus,u).subtract(a.ModularSparsePolynomial.constant(t.variableCount,t.modulus,c));function residualFor(e){let n=t;for(let t=0;t<e.length;t++)n=n.subtract(e[t].multiply(h[t]));return n}let y=residualFor(x);for(let e=1n;e<=l&&!y.isZero();e++){const i=modularDerivativeOrder(y,u,e).evaluateVariable(u,c),s=(0,r.invMod)(factorialModulo(e,t.modulus),t.modulus);if(s<0n)return null;const o=i.scale(s);if(o.isZero())continue;const a=solveMultivariateDiophantine(g,o,n,m,p,l);if(null===a)return null;const d=E.pow(e);x=x.map((e,t)=>e.add(a[t].multiply(d))),y=residualFor(x)}return y.isZero()?x:null}function liftFactorGroup(e,t,n,s,o){if(1===n.length){const t=changeModulus(e,o),n=t.leadingTerm();if(null===n)throw new RangeError((0,i.message)("polyHenselZeroFactorGroup"));const s=(0,r.invMod)(n.coefficient,o);if(s<0n)throw new RangeError((0,i.message)("polyRequires",{operation:"Hensel lifting",requirement:(0,i.message)("polyReqInvertibleLeadingCoefficient")}));return[t.scale(s)]}const a=Math.floor(n.length/2),l=n.slice(0,a),u=n.slice(a),c=changeModulus(e,t).leadingTerm();if(null===c)throw new RangeError((0,i.message)("polyHenselCannotLiftZero"));const m=productModularFactors(l,e.variableCount,t).scale(c.coefficient),p=productModularFactors(u,e.variableCount,t),g=modularExtendedGcdUnivariate(m,p,s);if(!g.gcd.isConstant())throw new RangeError((0,i.message)("polyRequires",{operation:"Hensel lifting",requirement:(0,i.message)("polyReqPairwiseCoprimeModularFactors")}));let d={g:m,h:p,s:g.leftCoefficient,t:g.rightCoefficient};for(;d.g.modulus<o;)d=henselPairStep(e,d);if(d.g.modulus!==o)throw new Error((0,i.message)("polyHenselModulusExceeded"));return[...liftFactorGroup(d.g,t,l,s,o),...liftFactorGroup(d.h,t,u,s,o)]}},133(e,t,n){"use strict";t.contentInVariable=contentInVariable,t.factorSquareFreeUnivariateInteger=factorSquareFreeUnivariateInteger,t.squareFreeFactorizationMultivariate=function squareFreeFactorizationMultivariate(e,t){if(function assertFactorVariables(e,t){if(0===t.length)throw new RangeError((0,r.message)("polyRequires",{operation:"Sparse polynomial factorization",requirement:(0,r.message)("polyReqAtLeastOneVariable")}));const n=new Set;let i=-1;for(const s of t){if(e.degree(s),n.has(s))throw new RangeError((0,r.message)("polyVariablesUnique",{operation:"Sparse polynomial factorization"}));if(s<=i)throw new RangeError((0,r.message)("polyVariablesRingOrder",{operation:"Sparse polynomial factorization"}));n.add(s),i=s}for(const t of e.variables())if(!n.has(t))throw new RangeError((0,r.message)("polyVariablesIncludeActive",{operation:"Sparse polynomial factorization"}))}(e,t),e.isZero())return{content:0n,factors:[]};return squareFreeFactorizationRecursive(e,t)},t.factorUnivariateInteger=function factorUnivariateInteger(e,t){const n=squareFreeFactorizationUnivariate(e,t);if(0n===n.content||0===n.factors.length)return n;const i=[];for(const e of n.factors){const n=factorSquareFreeUnivariateInteger(e.factor,t);for(const t of n)i.push({factor:t,multiplicity:e.multiplicity})}return{content:n.content,factors:i}};const i=n(7248),r=n(4703),s=n(551),o=n(982),a=n(7404),l=n(7134),u=n(7609),c=n(6698);function assertUnivariate(e,t){e.degree(t);for(const n of e.terms())for(let i=0;i<e.variableCount;i++)if(i!==t&&0n!==n.exponents[i])throw new RangeError((0,r.message)("polyRequires",{operation:"Square-free univariate factorization",requirement:(0,r.message)("polyReqAllOtherVariablesDormant")}))}function contentInVariable(e,t,n){const r=new Map;for(const n of e.terms()){const e=n.exponents[t],i=[...n.exponents];i[t]=0n;const s=r.get(e)??[];s.push({coefficient:n.coefficient,exponents:i}),r.set(e,s)}let s=null;for(const t of r.values()){const r=new i.SparsePolynomial(e.variableCount,t).primitivePart().normalizeLeadingSign("lex");if(null===s)s=r;else{if(null!==r.divideExact(s))continue;s=null!==s.divideExact(r)?r:(0,c.sparsePolynomialGcd)(s,r,n)}if(s.isConstant())return i.SparsePolynomial.constant(e.variableCount,1n)}return s??i.SparsePolynomial.zero(e.variableCount)}function mergeSquareFreeFactor(e,t,n){if(t.isConstant())return;const i=t.primitivePart().normalizeLeadingSign("lex"),r=e.get(n);e.set(n,void 0===r?i:r.multiply(i))}function squareFreeFactorizationRecursive(e,t){if(1===t.length)return squareFreeFactorizationUnivariate(e,t[0]);let n=e.content(),i=e.primitivePart();const r=i.leadingTerm("lex");if(null!==r&&r.coefficient<0n&&(i=i.negate(),n=-n),i.isConstant())return{content:n,factors:[]};const s=t[0],o=t.slice(1),a=contentInVariable(i,s,o),l=divideExactOrThrow(i,a),u=new Map,m=l.degree(s);if(null!==m&&m>0n){const e=l.derivative(s);let n=(0,c.sparsePolynomialGcd)(l,e,t),i=divideExactOrThrow(l,n),r=divideExactOrThrow(e,n),o=1n;for(;;){const e=r.subtract(i.derivative(s));if(e.isZero()){mergeSquareFreeFactor(u,i,o);break}n=(0,c.sparsePolynomialGcd)(i,e,t),i=divideExactOrThrow(i,n),r=divideExactOrThrow(e,n),mergeSquareFreeFactor(u,n,o),o++}}const p=squareFreeFactorizationRecursive(a,o);n*=p.content;for(const e of p.factors)mergeSquareFreeFactor(u,e.factor,e.multiplicity);return{content:n,factors:[...u.entries()].sort(([e],[t])=>e<t?-1:e>t?1:0).map(([e,t])=>({factor:t,multiplicity:e}))}}function divideExactOrThrow(e,t){const n=e.divideExact(t);if(null===n)throw new Error((0,r.message)("polySquareFreeNonExactDivision"));return n}function zassenhausCoefficientBound(e,t){const n=e.degree(t);if(null===n||0n===n)return e.maxAbsoluteCoefficient();const i=e.leadingTerm("lex");if(null===i)return 0n;const r=i.coefficient<0n?-i.coefficient:i.coefficient,o=e.maxAbsoluteCoefficient();return(0,s.ceilIntegerSquareRoot)(n+1n)*(1n<<n)*o*r}function modularProduct(e,t,n,i){let r=l.ModularSparsePolynomial.constant(n,i,1n);for(const n of t)r=r.multiply(e[n]);return r}function combinations(e,t){const n=[],i=[];return function choose(r){if(i.length===t)return void n.push([...i]);const s=t-i.length;for(let t=r;t<=e.length-s;t++)i.push(e[t]),choose(t+1),i.pop()}(0),n}function recombineLiftedUnivariateFactors(e,t,n){if(assertUnivariate(e,n),e.isZero())throw new RangeError((0,r.message)("polyCannotFactorZeroPolynomial",{operation:"Zassenhaus recombination"}));if(1n!==e.content())throw new RangeError((0,r.message)("polyRequires",{operation:"Zassenhaus recombination",requirement:(0,r.message)("polyReqPrimitiveIntegerPolynomial")}));const s=e.leadingTerm("lex");if(null===s||s.coefficient<=0n)throw new RangeError((0,r.message)("polyRequires",{operation:"Zassenhaus recombination",requirement:(0,r.message)("polyReqPositiveLeadingCoefficient")}));if(0===t.length)throw new RangeError((0,r.message)("polyRequires",{operation:"Zassenhaus recombination",requirement:(0,r.message)("polyReqLiftedModularFactors")}));const o=t[0].modulus;for(const i of t){if(i.variableCount!==e.variableCount||i.modulus!==o)throw new RangeError((0,r.message)("polyRequires",{operation:"Zassenhaus recombination",requirement:(0,r.message)("polyReqLiftedFactorsSameRing")}));for(const e of i.variables())if(e!==n)throw new RangeError((0,r.message)("polyRequires",{operation:"Zassenhaus recombination",requirement:(0,r.message)("polyReqUnivariateLiftedFactors")}));if(!i.equals(i.monic()))throw new RangeError((0,r.message)("polyRequires",{operation:"Zassenhaus recombination",requirement:(0,r.message)("polyReqMonicLiftedFactors")}))}if(o<=2n*zassenhausCoefficientBound(e,n))throw new RangeError((0,r.message)("polyRequires",{operation:"Zassenhaus recombination",requirement:(0,r.message)("polyReqLargerHenselModulus")}));const a=new l.ModularSparsePolynomial(e.variableCount,o,e.terms()),u=t.map((e,t)=>t);if(!modularProduct(t,u,e.variableCount,o).scale(s.coefficient).equals(a))throw new RangeError((0,r.message)("polyZassenhausFactorsReconstructModuloLift"));const c=[];let m=e,p=[...u],g=1;for(;2*g<=p.length;){let n=!1;for(const i of combinations(p,g)){const s=m.leadingTerm("lex");if(null===s)throw new Error((0,r.message)("polyZassenhausLostRemaining"));let a=modularProduct(t,i,e.variableCount,o).scale(s.coefficient).toSymmetricIntegerPolynomial().primitivePart();if(a=a.normalizeLeadingSign("lex"),a.isConstant())continue;const l=m.divideExact(a);if(null===l)continue;c.push(a),m=l.primitivePart().normalizeLeadingSign("lex");const u=new Set(i);p=p.filter(e=>!u.has(e)),g=1,n=!0;break}n||g++}m.isConstant()||c.push(m);let d=i.SparsePolynomial.constant(e.variableCount,1n);for(const e of c)d=d.multiply(e);if(!d.equals(e))throw new Error((0,r.message)("polyZassenhausReconstructionFailed"));return c}function factorSquareFreeUnivariateInteger(e,t){if(assertUnivariate(e,t),e.isZero())throw new RangeError((0,r.message)("polyCannotFactorZeroPolynomial",{operation:"Integer factorization"}));if(1n!==e.content())throw new RangeError((0,r.message)("polyRequires",{operation:"Integer square-free factorization",requirement:(0,r.message)("polyReqPrimitivePolynomial")}));const n=e.leadingTerm("lex");if(null===n)throw new Error((0,r.message)("polyIntegerFactorLostLeading"));const i=n.coefficient<0n?e.negate():e;if(i.isConstant())return[];if(1n===i.degree(t))return[i];const s=function findGoodFactorPrime(e,t){const n=e.leadingTerm("lex");if(null===n)throw new RangeError((0,r.message)("polyIntegerFactorPrimeZero"));const i=e.derivative(t);let s,c=(0,o.nextPrimeBig)(3n),m=0;for(;;){if(n.coefficient%c!==0n){const n=new l.ModularSparsePolynomial(e.variableCount,c,e.terms()),r=new l.ModularSparsePolynomial(e.variableCount,c,i.terms());if((0,a.modularGcdUnivariate)(n,r,t).isConstant()){const e=(0,u.factorSquareFreeUnivariateFiniteField)(n,t),i={prime:c,modularPolynomial:n,modularFactors:e};if(m++,1===e.length)return i;if((void 0===s||e.length<s.modularFactors.length)&&(s=i),m>=4)return s}}c=(0,o.nextPrimeBig)(c+1n)}}(i,t);if(1===s.modularFactors.length)return[i];const c=zassenhausCoefficientBound(i,t);let m=s.prime;for(;m<=2n*c;)m*=m;return recombineLiftedUnivariateFactors(i,(0,u.henselLiftUnivariateFactors)(i,s.prime,s.modularFactors,t,m),t)}function squareFreeFactorizationUnivariate(e,t){if(assertUnivariate(e,t),e.isZero())return{content:0n,factors:[]};let n=e.content(),r=e.primitivePart();const s=r.leadingTerm("lex");if(null!==s&&s.coefficient<0n&&(r=r.negate(),n=-n),r.isConstant())return{content:n,factors:[]};const o=[];let a=null;for(const e of r.terms()){const n=e.exponents[t];(null===a||n<a)&&(a=n)}if(null!==a&&a>0n){const e=new Array(r.variableCount).fill(0n);e[t]=a;r=divideExactOrThrow(r,i.SparsePolynomial.monomial(r.variableCount,1n,e)),o.push({factor:i.SparsePolynomial.variable(r.variableCount,t),multiplicity:a})}if(r.isConstant())return{content:n,factors:o};const l=r.derivative(t),u=[t];let m=(0,c.sparsePolynomialGcd)(r,l,u),p=divideExactOrThrow(r,m),g=divideExactOrThrow(l,m),d=1n;for(;;){const e=g.subtract(p.derivative(t));if(e.isZero()){p.isConstant()||o.push({factor:p.normalizeLeadingSign("lex"),multiplicity:d});break}m=(0,c.sparsePolynomialGcd)(p,e,u),p=divideExactOrThrow(p,m),g=divideExactOrThrow(e,m),m.isConstant()||o.push({factor:m.normalizeLeadingSign("lex"),multiplicity:d}),d++}return o.sort((e,t)=>e.multiplicity<t.multiplicity?-1:e.multiplicity>t.multiplicity?1:0),{content:n,factors:o}}},6698(e,t,n){"use strict";t.sparsePolynomialGcd=function sparsePolynomialGcd(e,t,n){if(e.variableCount!==t.variableCount)throw new RangeError((0,r.message)("polyRequires",{operation:"Sparse polynomial GCD",requirement:(0,r.message)("polyReqSamePolynomialRing")}));if(0===n.length)throw new RangeError((0,r.message)("polyRequires",{operation:"Sparse polynomial GCD",requirement:(0,r.message)("polyReqAtLeastOneVariable")}));const l=new Set;let u=-1;for(const i of n){if(e.degree(i),t.degree(i),l.has(i))throw new RangeError((0,r.message)("polyVariablesUnique",{operation:"Sparse polynomial GCD"}));if(i<=u)throw new RangeError((0,r.message)("polyVariablesRingOrder",{operation:"Sparse polynomial GCD"}));l.add(i),u=i}for(const n of[...e.variables(),...t.variables()])if(!l.has(n))throw new RangeError((0,r.message)("polyInputsSelectedOnly",{operation:"Sparse polynomial GCD"}));if(e.isZero())return t.isZero()?t:t.normalizeLeadingSign("lex");if(t.isZero())return e.normalizeLeadingSign("lex");const c=e.content(),m=t.content(),p=(0,s.GCD)(c,m),g=e.primitivePart().normalizeLeadingSign("lex"),d=t.primitivePart().normalizeLeadingSign("lex"),h=g.leadingTerm("lex"),x=d.leadingTerm("lex");if(null===h||null===x)return i.SparsePolynomial.zero(e.variableCount);if(g.isConstant()||d.isConstant())return i.SparsePolynomial.constant(e.variableCount,p);if(g.equals(d))return g.scale(p);if(null!==g.divideExact(d))return d.scale(p);if(null!==d.divideExact(g))return g.scale(p);const E=(0,s.GCD)(h.coefficient,x.coefficient),y=n.map(e=>(0,s.GCD)(leadingCoefficientForVariable(g,e),leadingCoefficientForVariable(d,e)));let v=(0,o.nextPrimeBig)(1000000007n),w=null,b=1n,P=null;for(;;){for(;y.some(e=>e%v===0n);)v=(0,o.nextPrimeBig)(v+1n);const r=reduceModulo(g,v),s=reduceModulo(d,v),l=(0,a.modularGcdFiniteField)(r,s,n);if(null===l){v=(0,o.nextPrimeBig)(v+1n);continue}if(l.isConstant()&&!l.isZero())return i.SparsePolynomial.constant(e.variableCount,p);const u=degreeVector(l,n);if(null!==P){let e=0;for(let t=0;t<u.length;t++){if(u[t]<P[t]){e=-1;break}if(u[t]>P[t]){e=1;break}}if(e>0){v=(0,o.nextPrimeBig)(v+1n);continue}e<0&&(P=u,w=null,b=1n)}else P=u;const c=l.scale(E).toSymmetricIntegerPolynomial();let m,h;if(null===w)m=c,h=v;else{const e=combinePolynomialCongruences(w,b,c,v);m=e.polynomial,h=e.modulus}const x=null!==w&&m.equals(w);if(w=m,b=h,x){const n=m.primitivePart().normalizeLeadingSign("lex").scale(p);if(null!==e.divideExact(n)&&null!==t.divideExact(n))return n}v=(0,o.nextPrimeBig)(v+1n)}};const i=n(7248),r=n(4703),s=n(551),o=n(982),a=n(7404),l=n(7134);function symmetricResidue(e,t){const n=(0,s.mod)(e,t);return 2n*n>t?n-t:n}function termMap(e){const t=new Map;for(const n of e.terms())t.set(n.exponents.join(","),n);return t}function combinePolynomialCongruences(e,t,n,o){if(e.variableCount!==n.variableCount)throw new RangeError((0,r.message)("polyRequires",{operation:"Polynomial CRT",requirement:(0,r.message)("polyReqSamePolynomialRing")}));if(t<=0n||o<=0n)throw new RangeError((0,r.message)("polyRequires",{operation:"Polynomial CRT",requirement:(0,r.message)("polyReqPositiveModuli")}));if(1n!==(0,s.GCD)(t,o))throw new RangeError((0,r.message)("polyRequires",{operation:"Polynomial CRT",requirement:(0,r.message)("polyReqCoprimeModuli")}));const a=(0,s.invMod)(t,o);if(a<0n)throw new RangeError((0,r.message)("polyCrtModuliInvertible"));const l=termMap(e),u=termMap(n),c=new Set([...l.keys(),...u.keys()]),m=t*o,p=[];for(const e of c){const n=l.get(e),i=u.get(e),r=n?.coefficient??0n,c=i?.coefficient??0n,g=symmetricResidue(r+t*(0,s.mod)((c-r)*a,o),m);0n!==g&&p.push({coefficient:g,exponents:n?.exponents??i?.exponents??[]})}return{polynomial:new i.SparsePolynomial(e.variableCount,p),modulus:m}}function leadingCoefficientForVariable(e,t){e.degree(t);const n=e.terms();if(0===n.length)return 0n;let i=n[0];for(let r=1;r<n.length;r++){const s=n[r];if(s.exponents[t]===i.exponents[t]){for(let n=0;n<e.variableCount;n++)if(n!==t&&s.exponents[n]!==i.exponents[n]){s.exponents[n]>i.exponents[n]&&(i=s);break}}else s.exponents[t]>i.exponents[t]&&(i=s)}return i.coefficient}function reduceModulo(e,t){return new l.ModularSparsePolynomial(e.variableCount,t,e.terms())}function degreeVector(e,t){return t.map(t=>e.degree(t)??0n)}},4262(e,t,n){"use strict";t.factorMultivariateInteger=factorMultivariateInteger;const i=n(7248),r=n(4703),s=n(551),o=n(982),a=n(7609),l=n(133),u=n(6698),c=1000003n;function assertWangVariables(e,t){if(t.length<2)throw new RangeError((0,r.message)("polyRequires",{operation:"Wang evaluation",requirement:(0,r.message)("polyReqAtLeastTwoSelectedVariables")}));const n=new Set;let i=-1;for(const s of t){if(e.degree(s),n.has(s))throw new RangeError((0,r.message)("polyVariablesUnique",{operation:"Wang evaluation"}));if(s<=i)throw new RangeError((0,r.message)("polyVariablesRingOrder",{operation:"Wang evaluation"}));n.add(s),i=s}for(const t of e.variables())if(!n.has(t))throw new RangeError((0,r.message)("polyVariablesIncludeActive",{operation:"Wang evaluation"}))}function evaluateTail(e,t,n){return e.evaluateVariables(t.slice(1),n)}function evaluateTailInteger(e,t,n){const i=evaluateTail(e,t,n);if(!i.isConstant())throw new Error((0,r.message)("polyWangLeadingEvaluationInteger"));return i.constantTerm()}function productPolynomials(e,t){let n=i.SparsePolynomial.constant(t,1n);for(const t of e)n=n.multiply(t);return n}function multivariateMignotteBound(e,t){let n=0n;for(const i of t)n+=e.degree(i)??0n;const i=e.leadingTerm("lex");if(null===i)return 0n;const r=i.coefficient<0n?-i.coefficient:i.coefficient;return(0,s.ceilIntegerSquareRoot)(n+1n)*(1n<<n)*e.maxAbsoluteCoefficient()*r}function testWangSpecializationPrepared(e,t,n,i,r){const s=evaluateTail(e,t,n);if(s.degree(i)!==r)return null;const o=function normalizeSpecialization(e){let t=e.content(),n=e.primitivePart();const i=n.leadingTerm("lex");return null!==i&&i.coefficient<0n&&(t=-t,n=n.negate()),{content:t,primitive:n}}(s);if(o.primitive.isConstant())return null;const a=o.primitive.derivative(i);return(0,u.sparsePolynomialGcd)(o.primitive,a,[i]).isConstant()?{values:[...n],content:o.content,polynomial:o.primitive}:null}function factorWangSpecialization(e,t){return{...e,factors:(0,l.factorSquareFreeUnivariateInteger)(e.polynomial,t)}}function visitEvaluationShell(e,t,n){const i=new Array(e).fill(0n);return function visit(r,s){if(r===e)return s&&n(i);for(let e=-t;e<=t;e++)if(i[r]=e,visit(r+1,s||e===-t||e===t))return!0;return!1}(0,0n===t)}function factorWangLeadingCoefficient(e,t){const n=t[0],i=t.slice(1),r=e.leadingCoefficientIn(n);if(null===r)return null;const s=i.filter(e=>(r.degree(e)??0n)>0n);return s.length<=1?(0,l.factorUnivariateInteger)(r,s[0]??i[0]):factorMultivariateInteger(r,s)}function testWangConfigurationWithLeadingFactorization(e,t,n,o,a,l){const u=testWangSpecializationPrepared(e,t,n,a,l);if(null===u)return null;const c=o.factors.map(e=>evaluateTailInteger(e.factor,t,n));if(!function wangNonDivisors(e,t,n){const i=[t*n];for(const t of e){let e=t<0n?-t:t;for(let t=i.length-1;t>=0;t--){let n=i[t];for(n<0n&&(n=-n);1n!==n;)n=(0,s.GCD)(n,e),e/=n}if(1n===e)return!1;i.push(t<0n?-t:t)}return!0}(c,u.content,o.content))return null;const m=factorWangSpecialization(u,a),p=[],g=new Array(o.factors.length).fill(!1);let d=m.content;const h=m.factors.map(e=>e);for(const t of h){const n=t.leadingCoefficientIn(a);if(null===n||!n.isConstant())throw new Error((0,r.message)("polyWangSpecializedLeadingInteger"));let s=n.constantTerm()*d,l=i.SparsePolynomial.constant(e.variableCount,1n);for(let e=o.factors.length-1;e>=0;e--){const t=c[e];if(0n===t)return null;let n=0n;for(;s%t===0n;)s/=t,n++;n>0n&&(l=l.multiply(o.factors[e].factor.pow(n)),g[e]=!0)}p.push(l)}if(g.some(e=>!e))return null;const x=[],E=[];for(let e=0;e<p.length;e++){let i=p[e],r=h[e];const o=evaluateTailInteger(i,t,n),l=r.leadingCoefficientIn(a)?.constantTerm();if(void 0===l||0n===o)return null;if(1n===d){if(l%o!==0n)return null;i=i.scale(l/o)}else{const e=(0,s.GCD)(l,o),t=o/e,n=l/e;if(0n===t||d%t!==0n)return null;r=r.scale(t),d/=t,i=i.scale(n)}x.push(r),E.push(i)}let y=e;1n!==d&&(x.forEach((e,t)=>{x[t]=e.scale(d),E[t]=E[t].scale(d)}),y=y.scale(d**BigInt(x.length-1)));const v=y.leadingCoefficientIn(a);if(null===v||!productPolynomials(E,e.variableCount).equals(v))return null;const w=evaluateTail(y,t,n);if(!productPolynomials(x,e.variableCount).equals(w))return null;for(let e=0;e<x.length;e++){const i=x[e].leadingCoefficientIn(a);if(null===i||!evaluateTail(E[e],t,n).equals(i))return null}return{evaluation:m,polynomial:y,factors:x,leadingCoefficients:E}}function testWangConfiguration(e,t,n){if(assertWangVariables(e,t),n.length!==t.length-1)throw new RangeError((0,r.message)("polyRequires",{operation:"Wang leading-coefficient reconstruction",requirement:(0,r.message)("polyReqOneValuePerTailVariable")}));if(1n!==e.content())throw new RangeError((0,r.message)("polyRequires",{operation:"Wang leading-coefficient reconstruction",requirement:(0,r.message)("polyReqPrimitivePolynomial")}));const i=e.leadingTerm("lex");if(null===i||i.coefficient<0n)throw new RangeError((0,r.message)("polyRequires",{operation:"Wang leading-coefficient reconstruction",requirement:(0,r.message)("polyReqPositiveLexLeadingSign")}));const s=t[0],o=e.degree(s);if(null===o||0n===o)return null;const a=factorWangLeadingCoefficient(e,t);return null===a?null:testWangConfigurationWithLeadingFactorization(e,t,n,a,s,o)}function liftWangConfiguration(e,t,n){if(t.length<2)throw new RangeError((0,r.message)("polyRequires",{operation:"Wang lifting",requirement:(0,r.message)("polyReqAtLeastTwoSelectedVariables")}));return(0,a.henselLiftMultivariateFactors)(e.polynomial,e.factors,e.leadingCoefficients,t,e.evaluation.values,n)}function factorSquareFreeMultivariateInteger(e,t){if(assertWangVariables(e,t),e.isZero())throw new RangeError((0,r.message)("polyCannotFactorZero",{operation:"Wang factorization"}));if(1n!==e.content())throw new RangeError((0,r.message)("polyRequires",{operation:"Wang factorization",requirement:(0,r.message)("polyReqPrimitivePolynomial")}));const n=e.leadingTerm("lex");if(null===n||n.coefficient<0n)throw new RangeError((0,r.message)("polyRequires",{operation:"Wang factorization",requirement:(0,r.message)("polyReqPositiveLexLeadingSign")}));const i=t[0],s=e.derivative(i);if(!(0,u.sparsePolynomialGcd)(e,s,t).isConstant())throw new RangeError((0,r.message)("polyRequires",{operation:"Wang factorization",requirement:(0,r.message)("polyReqSquareFreeMainVariable")}));const{originalDegree:a,leadingFactorization:l}=prepareWangConfigurationSearch(e,t);let m=0n,p=null,g=[];for(;;){let n=!1;if(visitEvaluationShell(t.length-1,m,r=>{const s=testWangConfigurationWithLeadingFactorization(e,t,r,l,i,a);if(null===s)return!1;if(1===s.factors.length)return n=!0,!0;if((null===p||s.factors.length<p)&&(p=s.factors.length,g=[]),s.factors.length!==p)return!1;let u=0n;for(const e of t.slice(1)){const t=s.polynomial.degree(e)??0n;t>u&&(u=t)}let m=2n*multivariateMignotteBound(s.polynomial,t)+1n;return m<c&&(m=c),m<=u&&(m=u+1n),g.push({configuration:s,prime:(0,o.nextPrimeBig)(m)}),!1}),n)return[e];const r=[];for(const n of g){const i=liftWangConfiguration(n.configuration,t,n.prime);if(null===i){r.push({configuration:n.configuration,prime:(0,o.nextPrimeBig)(n.prime+1n)});continue}if(productPolynomials(i,e.variableCount).equals(e))return i}g=r,m++}}function factorMultivariateInteger(e,t){assertWangVariables(e,t);const n=(0,l.squareFreeFactorizationMultivariate)(e,t);if(0n===n.content||0===n.factors.length)return n;const s=t[0],o=t.slice(1),a=[];for(const e of n.factors){const n=(0,l.contentInVariable)(e.factor,s,o),i=e.factor.divideExact(n);if(null===i)throw new Error((0,r.message)("polyMultivariateContentDivisionFailed"));if(!n.isConstant()){const t=o.filter(e=>(n.degree(e)??0n)>0n);let i;if(1===t.length)i=(0,l.factorUnivariateInteger)(n,t[0]);else{if(!(t.length>1))throw new Error((0,r.message)("polyMultivariateContentVariableMissing"));i=factorMultivariateInteger(n,t)}for(const t of i.factors)a.push({factor:t.factor,multiplicity:e.multiplicity*t.multiplicity})}if(!i.isConstant())for(const n of factorSquareFreeMultivariateInteger(i,t))a.push({factor:n,multiplicity:e.multiplicity})}let u=i.SparsePolynomial.constant(e.variableCount,n.content);for(const e of a)u=u.multiply(e.factor.pow(e.multiplicity));if(!u.equals(e))throw new Error((0,r.message)("polyMultivariateReconstructionFailed"));return{content:n.content,factors:a}}function prepareWangConfigurationSearch(e,t){if(assertWangVariables(e,t),1n!==e.content())throw new RangeError((0,r.message)("polyRequires",{operation:"Wang leading-coefficient reconstruction",requirement:(0,r.message)("polyReqPrimitivePolynomial")}));const n=e.leadingTerm("lex");if(null===n||n.coefficient<0n)throw new RangeError((0,r.message)("polyRequires",{operation:"Wang leading-coefficient reconstruction",requirement:(0,r.message)("polyReqPositiveLexLeadingSign")}));const i=t[0],s=e.degree(i);if(null===s||0n===s)throw new RangeError((0,r.message)("polyRequires",{operation:"Wang configuration search",requirement:(0,r.message)("polyReqPositiveDegreeMainVariable")}));const o=factorWangLeadingCoefficient(e,t);if(null===o)throw new RangeError((0,r.message)("polyRequires",{operation:"Wang configuration search",requirement:(0,r.message)("polyReqPositiveDegreeMainVariable")}));return{mainVariable:i,originalDegree:s,leadingFactorization:o}}function findWangConfiguration(e,t){const{mainVariable:n,originalDegree:i,leadingFactorization:r}=prepareWangConfigurationSearch(e,t);let s=0n;for(;;){let o=null;if(visitEvaluationShell(t.length-1,s,s=>{const o=testWangConfigurationWithLeadingFactorization(e,t,s,r,n,i);return null!==o&&!0}),null!==o)return o;0}}},7404(e,t,n){"use strict";t.modularGcdUnivariate=modularGcdUnivariate,t.modularGcdFiniteField=modularGcdFiniteField;const i=n(4703),r=n(982),s=n(7134);function modularPrimitivePartInVariable(e,t){if(e.isZero())return{content:s.ModularSparsePolynomial.zero(e.variableCount,e.modulus),primitive:e};const n=function modularContentInVariable(e,t){if(e.degree(t),e.isZero())return s.ModularSparsePolynomial.zero(e.variableCount,e.modulus);const n=new Map;for(const i of e.terms()){const r=[...i.exponents];r[t]=0n;const s=r.join(","),o=new Array(e.variableCount).fill(0n);o[t]=i.exponents[t];const a=n.get(s)??[];a.push({coefficient:i.coefficient,exponents:o}),n.set(s,a)}let i=s.ModularSparsePolynomial.zero(e.variableCount,e.modulus);for(const r of n.values()){const n=new s.ModularSparsePolynomial(e.variableCount,e.modulus,r);if(i=i.isZero()?n.monic("lex"):modularGcdUnivariate(i,n,t),i.isConstant())return s.ModularSparsePolynomial.constant(e.variableCount,e.modulus,1n)}return i.monic("lex")}(e,t),r=e.divideExact(n);if(null===r)throw new RangeError((0,i.message)("polyModularContentExactDivision"));return{content:n,primitive:r}}function modularLeadingCoefficientInVariables(e,t,n){e.degree(n);for(const n of t)e.degree(n);const i=e.terms();if(0===i.length)return null;let r=i[0];for(let e=1;e<i.length;e++){const n=i[e];for(const e of t)if(n.exponents[e]!==r.exponents[e]){n.exponents[e]>r.exponents[e]&&(r=n);break}}const o=[];for(const s of i){let i=!0;for(const e of t)if(s.exponents[e]!==r.exponents[e]){i=!1;break}if(!i)continue;const a=new Array(e.variableCount).fill(0n);a[n]=s.exponents[n],o.push({coefficient:s.coefficient,exponents:a})}return new s.ModularSparsePolynomial(e.variableCount,e.modulus,o)}function monomialSupport(e,t){const n=new Set;for(const i of e.terms())n.add(t.map(e=>i.exponents[e]).join(","));return n}function modularGcdUnivariate(e,t,n){if(e.variableCount!==t.variableCount||e.modulus!==t.modulus)throw new RangeError((0,i.message)("polyRequires",{operation:"Modular polynomial GCD",requirement:(0,i.message)("polyReqSamePolynomialRing")}));e.degree(n),t.degree(n);for(const t of e.variables())if(t!==n)throw new RangeError((0,i.message)("polyRequires",{operation:"Modular polynomial GCD inputs",requirement:(0,i.message)("polyReqUnivariatePolynomial")}));for(const e of t.variables())if(e!==n)throw new RangeError((0,i.message)("polyRequires",{operation:"Modular polynomial GCD inputs",requirement:(0,i.message)("polyReqUnivariatePolynomial")}));let r=new s.ModularSparsePolynomial(e.variableCount,e.modulus,e.terms()),o=new s.ModularSparsePolynomial(t.variableCount,t.modulus,t.terms());for(;!o.isZero();){const e=r.divideWithRemainder(o,"lex");r=o,o=e.remainder}return r.isZero()?r:r.monic("lex")}function modularGcdRecursive(e,t,n){if(1===n.length)return modularGcdUnivariate(e,t,n[0]);if(e.isZero())return t.isZero()?t:t.monic("lex");if(t.isZero())return e.monic("lex");const i=n[n.length-1],r=n.slice(0,-1),o=modularPrimitivePartInVariable(e,i),a=modularPrimitivePartInVariable(t,i),l=modularGcdUnivariate(o.content,a.content,i),u=modularLeadingCoefficientInVariables(o.primitive,r,i),c=modularLeadingCoefficientInVariables(a.primitive,r,i);if(null===u||null===c)return null;const m=modularGcdUnivariate(u,c,i),p=o.primitive.degree(i)??0n,g=a.primitive.degree(i)??0n,d=(p<g?p:g)+2n,h=(u.degree(i)??0n)+(c.degree(i)??0n)+(m.degree(i)??0n),x=e.modulus-1n,E=3n*d+h,y=x<E?x:E;let v=null,w=null,b=0n,P=0n,A=[];for(let n=1n;n<=y;n++){const p=u.evaluateVariable(i,n),g=c.evaluateVariable(i,n),h=m.evaluateVariable(i,n).constantTerm();if(0n===p.constantTerm()||0n===g.constantTerm()||0n===h)continue;const x=o.primitive.evaluateVariable(i,n),E=a.primitive.evaluateVariable(i,n);if(x.isZero()||E.isZero())continue;const y=modularGcdRecursive(x,E,r);if(null===y)continue;if(y.isConstant()&&!y.isZero())return l;const N=r.map(e=>y.degree(e)??0n);if(null===v)v=N;else{let e=0;for(let t=0;t<N.length;t++){if(N[t]<v[t]){e=-1;break}if(N[t]>v[t]){e=1;break}}if(e<0)v=N,w=null,A=[],b=0n,P=0n;else if(e>0)continue}const M=monomialSupport(y,r);if(null===w)w=M;else{const e=[...w].every(e=>M.has(e)),t=w,n=[...M].every(e=>t.has(e));if(e&&!n)w=M,A=[],b=0n,P=0n;else if(!e)continue}if(A.push({value:n,polynomial:y.scale(h)}),b++,b<d)continue;const T=modularPrimitivePartInVariable(s.ModularSparsePolynomial.interpolateVariable(i,A),i).primitive.multiply(l).monic("lex");if(null!==e.divideExact(T)&&null!==t.divideExact(T))return T;if(P++,P>=3n)return null;A=[],b=0n}return null}function modularGcdFiniteField(e,t,n){if(e.variableCount!==t.variableCount||e.modulus!==t.modulus)throw new RangeError((0,i.message)("polyRequires",{operation:"Modular polynomial GCD",requirement:(0,i.message)("polyReqSamePolynomialRing")}));if(0===n.length)throw new RangeError((0,i.message)("polyRequires",{operation:"Modular polynomial GCD",requirement:(0,i.message)("polyReqAtLeastOneVariable")}));if(!(0,r.isPrimeBig)(e.modulus))throw new RangeError((0,i.message)("polyRequires",{operation:"Multivariate modular GCD",requirement:(0,i.message)("polyReqPrimeModulus")}));const s=new Set;let o=-1;for(const r of n){if(e.degree(r),t.degree(r),s.has(r))throw new RangeError((0,i.message)("polyVariablesUnique",{operation:"Modular polynomial GCD"}));if(r<=o)throw new RangeError((0,i.message)("polyVariablesRingOrder",{operation:"Modular polynomial GCD"}));s.add(r),o=r}for(const n of[...e.variables(),...t.variables()])if(!s.has(n))throw new RangeError((0,i.message)("polyInputsSelectedOnly",{operation:"Modular polynomial GCD"}));return modularGcdRecursive(e,t,n)}},6827(e,t,n){"use strict";t.polynomialize=function polynomialize(e,t,n){t??={};let s=e.isPolynomialLike()?e:(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)},2826(e,t,n){"use strict";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)},6117(e,t,n){"use strict";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);n.isOne()||(p=p.pow(n));t.isOne()||(p=p.times(t));return 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}},6808(e,t,n){"use strict";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}}if(!a){if(!e.every(e=>{const t=e.coeff.div(o).getMultiplier();return 1n===t.denominator||-1n===t.denominator}))return null}return o}(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();if(n.abs().isOne())return!1;return!(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}},1024(e,t,n){"use strict";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)},8989(e,t,n){"use strict";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]}c.isPolynomialLike()&&m.isPolynomialLike()&&([c,m]=reduce(c,m),[m,c]=reduce(m,c),t=c.div(m));return(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)))}},9684(e,t,n){"use strict";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),g=n(6584),d=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,d.hasFactorialRatio)(r)&&(r=(0,u.simplifyFactorials)(r)),!(0,d.hasFactorialRatio)(r)&&e.isProduct()&&(0,d.hasFactorialRatio)(e)||(e.isComplex()?r=(0,a.complexSimplify)(r):(0,d.hasIrrationalDenominator)(r)?r=(0,m.rationalize)(r):r.isSum()?(r=(0,p.tryRewriteTrig)(r),r=(0,g.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;function rebuildFactorResult(e,t){let n=(0,s.product)(...t);return e.hasDecimal()&&1===t.length&&t[0].eq(e)&&(n=e),n}const t=e.getNumerator(),n=e.getDenominator(),i=rebuildFactorResult(t,(0,o.polyFactorExpressions)(t)),r=rebuildFactorResult(n,(0,o.polyFactorExpressions)(n));return i.div(r)}(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}},8125(e,t,n){"use strict";t.hasDerivedTrig=hasDerivedTrig,t.rewrite=rewrite,t.tryRewriteTrig=function tryRewriteTrig(e){if(!hasDerivedTrig(e))return e;const t=rewrite(e);if(complexity(t)<=complexity(e))return t;return 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}},6584(e,t,n){"use strict";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,g;1===l.minus(c).sign()?(m=c,p=l,g=(0,o.sin)(t[e].arg).pow((0,r.two)())):(m=l,p=c,g=(0,o.cos)(n[a].arg).pow((0,r.two)()));const d=m.getDenominator(),h=m.times(d),x=p.minus(m).times(d),E=h.plus(x.times(g));u.push((0,r.one)().div(d).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);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));return 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}},4166(e,t,n){"use strict";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)},2634(e,t,n){"use strict";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),g=a.times(p.plus(c).pow(2)).plus(m);return{a,h:c,k:m,variable:t,expression:g}};const i=n(296),r=n(6099),s=n(4703)},8793(e,t,n){"use strict";t.differentiate=function differentiate(e,t,n){let r;r=i.Equation.isEquation(e)?e.each(e=>differentiate(e,t,n)):(0,s.diff)(e,t,n);return r},t.integrateEquation=function integrateEquation(e,t){let n;n=i.Equation.isEquation(e)?e.each(e=>integrateEquation(e,t)):(0,o.integrate)(e,t);return n},t.directionalLimit=function directionalLimit(e,t,n,i){let s="both";i&&(s=(0,r.assertPlainVariableAndGetString)(i));return(0,a.limit)(e,t,n,s)};const i=n(6184),r=n(1897),s=n(2012),o=n(5530),a=n(6082)},2012(e,t,n){"use strict";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(e.hasFunction(s.SYMBOLIC_ACCESSOR,!0))m=i.Expression.toFunction(s.DIFF,[e,t,c]);else 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=l.isZero()?a: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])}},1039(e,t,n){"use strict";t.loadCalculusFunctions=function loadCalculusFunctions(){Object.assign(i.mathFunctionRegistry,{diff:(0,i.systemFunction)({fn:o.differentiate,minArgs:1,maxArgs:3,equationArgs:[0],distElWise:!0}),integrate:(0,i.systemFunction)({fn:o.integrateEquation,minArgs:1,maxArgs:2,equationArgs:[0],distElWise:!0}),limit:(0,i.systemFunction)({fn:o.directionalLimit,minArgs:3,maxArgs:4,distElWise:!0}),laplace:(0,i.systemFunction)({fn:u.laplace,minArgs:3,maxArgs:3,distElWise:!0}),ilaplace:(0,i.systemFunction)({fn:l.ilaplace,minArgs:3,maxArgs:3,distElWise:!0}),sum:(0,i.systemFunction)({fn:r.sum,minArgs:4,maxArgs:4,distElWise:!0}),product:(0,i.systemFunction)({fn:r.product,minArgs:4,maxArgs:4,distElWise:!0}),defint:(0,i.systemFunction)({fn:s.defint,minArgs:4,maxArgs:4,distElWise:!0}),[c.FRESNEL_S]:(0,i.systemFunction)({fn:a.S,minArgs:1,maxArgs:1,distElWise:!0}),[c.FRESNEL_C]:(0,i.systemFunction)({fn:a.C,minArgs:1,maxArgs:1,distElWise:!0})})};const i=n(9426),r=n(8533),s=n(3394),o=n(8793),a=n(7410),l=n(7571),u=n(4317),c=n(8300)},7410(e,t,n){"use strict";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}},2212(e,t,n){"use strict";t.tryIntegrationByParts=function tryIntegrationByParts(e,t,n,s=0,a=0){if(!e.isProduct())return;if(a>=4)return;const d=e.elementsArray(),h=[];let x=e.getMultiplier(!0);for(let e of d)if(e.hasVariable(t)){const t=e.getMultiplier(!0);t.isOne()||(x=x.times(t),e=e.div(t)),h.push(e)}else x=x.times(e);if(h.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)continue;if(!s.div(o).hasVariable(t))return[r,e[n]]}}return}(h,t);e&&(h.length=0,h.push(...e))}if(2!==h.length)return;const E=liatePriority(h[0]),y=liatePriority(h[1]);if(E<0||y<0)return;let v,w;E>=y?(v=h[0],w=h[1]):(v=h[1],w=h[0]);const b=E>=y?E:y;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}(E,y,v,w))return;const P=(0,l.diff)(v,i.Expression.create(t));if(P.isFunction(o.DIFF))return;const A=n(w,t,s);if(A.isFunction(o.INTEGRATE))return;const N=x.times(v).times(A),M=x.times(A).times(P);if(!function isProgress(e,t,n,i){if(n===m){const n=maxAlgebraicDegree(e,i);return maxAlgebraicDegree(t,i)<n}if(n===g||n===p)return functionCount(t)<functionCount(e);return functionCount(t)<functionCount(e)}(e,M,b,t))return;const T=n(M,t,s);let I;if(T.isFunction(o.INTEGRATE)){const e=tryIntegrationByParts(M,t,n,s+1,a+1);void 0!==e&&(I=N.plus(e.times((0,r.minusOne)())))}else I=N.plus(T.times((0,r.minusOne)()));return I};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,g=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 g;if((0,s.isInverseTrig)(e))return p;if((0,s.isTrig)(e))return c;if((0,s.isHyperbolicTrig)(e))return c}return-1}},1097(e,t,n){"use strict";t.tryIntegrateBySubstitution=function tryIntegrateBySubstitution(e,t){e.isProduct()||(e=(0,i.factor)(e));if(!e.isProduct())return;const n=e.elementsArray();if(n.length<2)return;return 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 g=(0,r.simplify)(t.div(p));if(g.hasVariable(n))continue;const d=s.Expression.create((0,u.getU)(e)),h=(0,r.simplify)((0,u.subst)(o,i,d));if(h.hasVariable(n)||!h.hasVariable(d.text()))continue;const x=m.tableOfIntegrals.lookup(new l.Pattern(h,[d.text()]),0);if(x&&!x.hasFunction(a.INTEGRATE))return(0,r.simplify)((0,u.subst)(x,d,i).times(g))}}return},t.tryIntegrateByLogSubstitution=function tryIntegrateByLogSubstitution(e,t){const n=(0,r.simplify)(e.getNumerator()),i=(0,r.simplify)(e.getDenominator());if(i.isOne())return;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};return}(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}}return};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}},5530(e,t,n){"use strict";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),g=n(2292),d=n(886),h=n(8533),x=n(1649),E=n(2212),y=n(1097),v=n(959),w=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 b;if(n++>10)b=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))}),b=i}else b=v.tableOfIntegrals.lookup(new g.Pattern(e,[t]),n);else b=e.times(t);if(b||(b=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 g=r[0].div(a).times(e);return g.minus(i.times(p))}(e,t,n)),b||(b=function tryIntegrateByRadicalSubstitutionFastPath(e,t,n){const i=(0,d.getU)(e),s=(0,w.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);if(!l||l.isFunction(c.INTEGRATE))return;return(0,r.simplify)((0,d.subst)(l,o.Expression.create(s.newVariable),s.backSub))}(e,t,n)),b||(b=function tryIntegrateSqrtQuadratic(e,t){const n=e.getPower();if(!n.eq((0,l.half)()))return;const i=e.getBase();if((0,w.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 g=o.Expression.create(t),d=g.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(d).times(E);if(x.isZero())return;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(d).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(d).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(d).div(t);return y.plus(x.div((0,l.two)().times(e)).times(o.Expression.toFunction(c.ASIN,[n])))}return}(e,t)),!b&&e.isProduct()){const n=(0,y.tryIntegrateByWrappedFactorSubstitution)(e,e.elementsArray(),t);n&&(b=n)}if(!b&&e.isProduct()){let i=!1;for(const n of e.elementsArray())if(n.isSum()&&(0,w.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&&(b=e)}}}if(!b){const i=(0,E.tryIntegrationByParts)(e,t,integrate,n);i&&(b=i)}if(!b){const n=(0,y.tryIntegrateByLogSubstitution)(e,t);n&&(b=(0,h.log)(n.fx).times(n.constant))}if(!b){const n=(0,y.tryIntegrateBySubstitution)(e,t);if(n){const e=n.power.plus((0,l.one)());b=n.fx.pow(e).div(e).times(n.constant)}}b||(b=function tryIntegratePolynomial(e,t){if(!e.isPolynomialLike()||(0,w.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)),b||(b=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,w.hasTranscendental)(r,t)||(0,w.hasTranscendental)(a,t))return;let g,d,h;try{g=new m.Polynomial(r,[t]),new m.Polynomial(a,[t])}catch{return}if(g.deg()<1)return;try{[d,h]=(0,p.divide)(r,a,void 0,[t])}catch{return}if(o.Expression.create(d).isZero())return;const x=o.Expression.create(d).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),b=integrate(x,t,n);if(b.isFunction(c.INTEGRATE))return;let P=b;if(!E.isZero()){const e=integrate(v,t,n);if(e.isFunction(c.INTEGRATE))return;P=P.plus(e)}return P}(e,t,n)),b||(b=tryIntegrateRational(e,t,n)),b||(b=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;return}(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,d.getU)(e),g=o.Expression.create(p),h=g.pow((0,l.two)()),E=(0,l.one)().plus(h),y=(0,l.two)().times(g).div(E),v=(0,l.one)().minus(h).div(E);let w=(0,d.subst)(i,(0,x.sin)(a),y);w=(0,d.subst)(w,(0,x.cos)(a),v);const b=(0,l.two)().div(u.times(E));if(w=w.times(b),w=(0,r.simplify)(w),w.hasVariable(t))return;if(!isRationalFunctionInVariable(w,p))return;const P=integrate(w,p,n);if(P.isFunction(c.INTEGRATE))return;const A=(0,x.tan)(a.div((0,l.two)()));return(0,r.simplify)((0,d.subst)(P,g,A))}(e,t,n)),b&&(b=b.times(i))}return b??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,w.hasTranscendental)(r,t)||(0,w.hasTranscendental)(s,t))return;let a,u;try{a=new m.Polynomial(r,[t]),u=new m.Polynomial(s,[t])}catch{return}const g=a.deg(),d=u.deg();if(d<2)return;let x=(0,l.zero)(),E=r;if(g>=d){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(g>=d){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,w.hasTranscendental)(n,t)||(0,w.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)(),g=r[0]??(0,l.zero)();if(a.isZero())return;const d=o.Expression.create(t),x=p.div((0,l.two)().times(a)),E=g.minus(x.times(u));let y=(0,l.zero)();x.isZero()||(y=y.plus(x.times((0,h.log)(i))));if(E.isZero())return y;const v=(0,l.two)().times(a).times(d).plus(u),b=(0,l.four)().times(a).times(m).minus(u.pow("2"));let P;if(b.isZero())P=(0,l.two)().times("-1").div(v);else if(b.gt((0,l.zero)())){const e=b.pow((0,l.half)()),t=v.div(e);P=(0,l.two)().div(e).times(o.Expression.toFunction(c.ATAN,[t]))}else{if(!b.lt((0,l.zero)()))return;{const e=b.times("-1").pow((0,l.half)()),t=v.minus(e).div(v.plus(e));P=(0,h.log)(t).div(e)}}return y.plus(E.times(P))}(y,t);if(v)return x.plus(v);let b;try{b=(0,i.partfrac)(y,t)}catch{return}if(b.text()===y.text())return;const P=integrate(b,t,n);return P.isFunction(c.INTEGRATE)?void 0:x.plus(P)}},959(e,t,n){"use strict";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)},388(e,t,n){"use strict";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)),g=m.times(p),d=i.Expression.create(t).pow(i.Expression.create(`1/${u}`));return{integrand:g,newVariable:n,originalVariable:t,n:u,backSub:d}},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;(e.isProduct()||e.isSum())&&e.each(e=>{hasTranscendental(e,t)&&(n=!0)});return n};const i=n(296),r=n(551),s=n(886)},7571(e,t,n){"use strict";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 g=s.Expression.fromRational(e.getMultiplier());if(!g.isOne()){const i=ilaplace(e.toUnitMultiplier(),t,n);if(!i.isFunction(u.ILAPLACE))return g.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),g=m.isZero()?(0,a.zero)():ilaplace(i.invert(),t,n);if(!p.isFunction(u.ILAPLACE)&&!g.isFunction(u.ILAPLACE))return o.times(p).plus(m.times(g))}}}}{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))continue;if(r.sign()<=0)continue;return{coefficient:r,remainder:e.div(i)}}return}(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 d=e.getNumerator(),h=e.getDenominator();if(d.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)},1997(e,t,n){"use strict";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:g,a8:d,_a9:h}=e.references;if(!(n.isOne()&&i.eq(2)&&s.isOne()&&o.isOne()&&a.eq(2)&&l.eq(2)))return;if(!c.eq(g)||!m.eq(d))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),w=t.tableOfInverseTransforms.lookup(new r.Pattern(y,[x]),0);return v&&w?e.fromPattern("(a1*a2)/a6").times(v).plus(e.fromPattern("a1*(a5-(a2*a9)/a6)").times(w)):void 0}};t.tableOfInverseTransforms=new i.LookupTable,t.tableOfInverseTransforms.addEntries(s)},4317(e,t,n){"use strict";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 g=laplace(p,t,n);if(!g.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 g.subst(n,t)}}if(c=u.tableOfTransforms.lookup(new l.Pattern(e,[t]),0),c)return"s"!==n&&(c=c.evaluate({s:n})),c;return 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)},7052(e,t,n){"use strict";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)},6082(e,t,n){"use strict";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(),g=(0,i.simplify)(u.times(p).plus(m.times(c))),d=(0,i.simplify)(c.times(p)),h=g.div(d);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 g=p[0];if(g.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(g.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 g=m.isPosInf()||m.isNegInf()?"inf":m.isZero()?"zero":m.eq((0,s.one)())?"one":"finite",d=p.isPosInf()||p.isNegInf()?"inf":p.isZero()?"zero":"finite";if("one"===g&&"inf"===d)return;if("zero"===g&&"zero"===d)return;if("inf"===g&&"zero"===d)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"===g&&"zero"===d)return(0,s.one)();if(!("finite"!==g&&"one"!==g||"finite"!==d&&"zero"!==d))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,g=!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())&&(g=!0),m.push(i)}if(p&&g){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(!g)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&&!g)return(0,s.zero)();if(g&&!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",g=0){let d;e=r.Expression.create(e),t=r.Expression.create(t),n=r.Expression.create(n);const h=e.hasDecimal();if(g>=12)return r.Expression.toFunction(o.LIMIT,[e,t,n,p]);if(n.isPosInf()||n.isNegInf()){e.isSum()&&(d=tryComposition(e,t,n,p,g));const o=d?void 0:getDominantAtInfinity(e.getNumerator(),t),l=d?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)d=(0,s.zero)();else if(0===u)d=(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?d=r.Expression.Inf():i<0&&(d=r.Expression.NegInf())}}if(!d&&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)d=(0,s.zero)();else if(e>0){let t=o.sign()*l.sign();n.isNegInf()&&e%2!=0&&(t*=-1),t>0?d=r.Expression.Inf():t<0&&(d=r.Expression.NegInf())}}}if(!d&&o&&l&&(d=function tryNonPolynomialInfinityLimit(e,t,n,o,a,l){const c=getInfinityGrowthClassification(e,n),m=getInfinityGrowthClassification(t,n),p=growthTier(c),g=growthTier(m);if(!(p<0||g<0))if(p>g){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<g){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),g=t.getMultiplier(!0),d=(0,i.simplify)(p.div(g));return limit((0,i.simplify)(d.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,g)),!d&&o&&l){const i=o.div(l);i.eq(e)||(d=limit(i,t,n,p,g))}if(!d){const i=tryRewriteIndeterminate(e,t,n,p,g);i&&(d=i)}d||(d=tryComposition(e,t,n,p,g))}else{if(e.isFunction(o.SGN)||e.isFunction(o.ABS)){const i=tryComposition(e,t,n,p,g);void 0!==i&&(d=i)}if(!d){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&&(d=r.Expression.create(e.evaluate({[t.text()]:n}))),d||"nonzero_over_zero"!==s||(d=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 g=l*o;return g===l*p?g>0?r.Expression.Inf():r.Expression.NegInf():void 0}}(e,t,n,p)),!d&&"zero_over_zero"===s){const r=(0,i.simplify)(e);r.eq(e)||(d=limit(r,t,n,p,g))}if(!d){const i=tryRewriteIndeterminate(e,t,n,p,g);i&&(d=i)}if(!d){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 g=m.isZero()&&p.isZero(),d=(m.isPosInf()||m.isNegInf())&&(p.isPosInf()||p.isNegInf());if(!g&&!d)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,g);s&&(d=s)}d||(d=tryComposition(e,t,n,p,g))}}return d||(d=m.tableOfLimits.lookup(new l.Pattern(e,[t.text()]),0)),d??=r.Expression.toFunction(o.LIMIT,[e,t,n,p]),h&&(d.getMultiplier().asDecimal=!0),d}},6541(e,t,n){"use strict";t.tableOfLimits=void 0;const i=n(2178);t.tableOfLimits=new i.LookupTable,t.tableOfLimits.addEntries({})},5817(e,t,n){"use strict";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],i.E,i.PI_NAME},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(4703),a=n(296),l=n(8300),u=n(5584);function isIdentChar(e){return/[A-Za-z0-9_]/.test(e)}function normalizeAssumptionValue(e){let t,n;return u.Rational.isRational(e)?(n=e.copy(),t=n.toDecimal()):(t="number"==typeof e||"string"==typeof e?new r.default(e):e,t.isFinite()&&(n=u.Rational.create(t.toString()))),{value:t,exact:n}}function compareBoundValues(e,t,n,i){let r;if(e.isFinite()&&n.isFinite()){const s=t??u.Rational.create(e.toString()),o=i??u.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??u.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=l.ASSUMPTION;end;isSingleton;start;constructor(e,t,n=!0,i=!0){const r=normalizeAssumptionValue(e),s=normalizeAssumptionValue(t),a=r.value,l=s.value,u=a.isFinite()&&!!n,c=l.isFinite()&&!!i,m=a.isNaN()||l.isNaN()?void 0:compareBoundValues(a,r.exact,l,s.exact);if(void 0===m||m>0||0===m&&(!u||!c))throw new Error((0,o.message)("invalidInterval",{start:a.toString(),end:l.toString()}));this.start=Object.freeze({value:a,inclusive:u}),this.end=Object.freeze({value:l,inclusive:c}),this.startExact=r.exact,this.endExact=s.exact,this.isSingleton=0===m&&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,l.ASSUMPTION)}static parse(e){if("string"!=typeof e)throw new Error((0,o.message)("invalidAssumption",{input:String(e)}));const t=e.replace(/\s+/g,"");if(!t)throw new Error((0,o.message)("invalidAssumption",{input:e}));if(t.length<3)throw new Error((0,o.message)("invalidAssumption",{input:e}));let n=0;if(!function isIdentStart(e){return/[A-Za-z_]/.test(e)}(t[n]))throw new Error((0,o.message)("assumptionIdentifierExpected"));let i=n+1;for(;i<t.length&&isIdentChar(t[i]);)i++;const s=t.slice(n,i);n=i;let a="";for(;n<t.length;){const e=t[n];if("<"!==e&&">"!==e&&"="!==e)break;a+=e,n++}if(!a)throw new Error((0,o.message)("assumptionOperatorMissing"));const l=t.slice(n);if(!l)throw new Error((0,o.message)("assumptionValueMissing"));const u=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((0,o.message)("invalidDecimal",{value:String(e)}));return n}(l);let c;switch(a){case">":c={symbol:s,assumption:Assumption.atLeast(u,!1)};break;case">=":c={symbol:s,assumption:Assumption.atLeast(u,!0)};break;case"<":c={symbol:s,assumption:Assumption.atMost(u,!1)};break;case"<=":c={symbol:s,assumption:Assumption.atMost(u,!0)};break;case"=":case"==":c={symbol:s,assumption:Assumption.exactly(u)};break;default:throw new Error((0,o.message)("assumptionOperatorUnsupported",{operator:a}))}return c}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(a.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=a.Expression.fromRational(this.startExact)),e}gt(e){let t;if(a.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(a.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(a.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(a.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},2332(e,t,n){"use strict";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}},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;s.Expression.isExpression(e)&&e.isPlainVariable()?t=e.value:"string"==typeof e&&(t=e);return void 0===t?void 0:l.get(t)},t.assuming=function assuming(e){return e},t.forget=function forget(e){e.eq(o.ALL_SYMBOL)?clearAssumptions():forgetAssumptionFor(e);return 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)}},3263(e,t,n){"use strict";t.loadAssumptionFunctions=function loadAssumptionFunctions(){Object.assign(i.mathFunctionRegistry,{assume:(0,i.systemFunction)({fn:r.assuming,minArgs:1,maxArgs:1,distElWise:!1}),forget:(0,i.systemFunction)({fn:r.forget,minArgs:1,maxArgs:1,distElWise:!1})})};const i=n(9426),r=n(6351)},6284(e,t,n){"use strict";t.Collection=void 0;const i=n(8505),r=n(6441),s=n(4703),o=n(8300);class Collection extends i.StructuredEntity{dataType=o.COLLECTION;elements=[];isEnumerable=!0;precision;constructor(e){super(),this.elements=e||[]}static isCollection(e){return(0,r.isNerdamerNativeType)(e,o.COLLECTION)}__get__(e){const t=e[0];if(t<0||t>=this.elements.length)throw new RangeError((0,s.message)("indexOutOfBounds",{index:String(t),type:"Collection",length:String(this.elements.length)}));return this.elements[t]}__set__(e,t){const n=e[0];if(n<0||n>=this.elements.length)throw new RangeError((0,s.message)("indexOutOfBounds",{index:String(n),type:"Collection",length:String(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},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.absSquared().sqrt()}absSquared(){return this.re.mul(this.re).plus(this.im.mul(this.im))}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())}reciprocal(){const e=this.re.mul(this.re).plus(this.im.mul(this.im));if(e.isZero())throw new s.DivisionByZeroError((0,s.message)("divisionByZero"));return new Complex(this.re.div(e),this.im.neg().div(e))}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},6528(e,t,n){"use strict";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((0,s.message)("dictionaryKeyNotFound",{key:t,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},6184(e,t,n){"use strict";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},5894(e,t,n){"use strict";t.CoeffObject=void 0;const i=n(4703),r=n(2116),s=n(5640),o=n(3982),a=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(this.coeffs[t].copy(),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,a.zero)()),n[i]=e?Number(t):t}return n}toExpression(){let e=(0,a.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,a.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())}}},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),g=n(8300),d=n(6255),h=n(619),x=n(3171),E=n(6498),y=n(3957),v=n(3957),w=n(6910),b=n(238),P=n(5584),A=n(6056),N=n(6056),M=n(6056),T=n(8137),I=n(6099),O=n(5118),R=n(5118),F=n(5118),q=n(1897),{NUM:L,VAR:V,EXP:U,FUN:D,GRP:k,PRD:B,SUM:z,INF:$}=g.EXPRESSION_TYPES;class Expression{static DISTRIBUTE_MULTIPLIER=!0;static imaginary=g.DEFAULT_IMAGINARY;static LOG=g.LOG;static LOG10="log_10";static numberHash="#";static POW_OPR="^";static RESERVED=[g.E].concat(g.PI).concat(g.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=g.EXPRESSION_TYPES;args;base;dataType=g.EXPRESSION;deferred=!1;elements=void 0;_keyValueCache;isEnumerable=!1;multiplier;name;power;precision;scientific;type;value;constructor(e,t){return e=Expression.hook(e),t&&"string"==typeof e?(this.value=e,this):Expression.isExpression(e)?void(0,q.copyOver)(e,this):Expression.create(e)}static create(e,t,n){if(Expression.isExpression(e)&&!t)return n?e.copy():e;if(P.Rational.isRational(e))return Expression.fromRational(e);if((0,o.isNerdamerNativeType)(e,g.EQUATION))return e.toLHS().LHS;const i=b.Parser.parse(String(e),t);if(!Expression.isExpression(i))throw new a.UnexpectedDataType((0,a.message)("expressionExpected",{type:g.dataTypes[i.dataType]}));return i}static E(e){return p.Settings.EVALUATE||e?Expression.fromRational(P.Rational.E):Expression.Variable(g.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,D);return t.name=e,t}static getValue(e,t,n){return e.map(e=>{let i=e[t]();return e.type!==z&&e.type!==k||n!==B||(i=`(${i})`),i}).sort().join(n===z||n===k?"+":"*").replace("+-","-")}static hook(e){return e}static Img(){return Expression.Variable(Expression.imaginary)}static Inf(){return Expression.Type(g.INFINITY[0],$)}static isExpression(e){return(0,o.isNerdamerNativeType)(e,g.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(g.INDEX_VARIABLE)}static NegInf(){return Expression.Inf().neg()}static Number(e){return Expression.Type(String(e),L)}static Pi(e){return p.Settings.EVALUATE||e?Expression.fromRational(P.Rational.PI):Expression.Variable(g.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(g.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=U),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,V)}abs(){return(0,s.abs)(this)}add(e){return this.plus(e)}buildFunction(e){return(0,l.build)(this,e)}coeffs(...e){return(0,A.coeffs)(this,e)}copy(){return(0,q.cloneExpressionTree)(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())}e.updateValue()}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){let t;if(void 0!==this.scientific){const e=this.copy();delete e.scientific,t=e.hasFunction(g.SYMBOLIC_ACCESSOR,!0)?(0,T.toText)(e,{internalAccessor:!0},void 0,Expression.POW_OPR,Expression.sortFunction):e.text()}else t=this.hasFunction(g.SYMBOLIC_ACCESSOR,!0)?(0,T.toText)(this,{internalAccessor:!0},void 0,Expression.POW_OPR,Expression.sortFunction):this.text();const n=b.Parser.evaluate(t,e),i=Expression.fromSymbolicAccess(n)??Expression.create(n);return void 0!==this.scientific&&(i.scientific=this.scientific),i}expand(){return(0,c.expand)(this)}forEveryElement(e){return(0,F.forEveryElement)(this,e)}functions(e,t){return(0,R.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,M.getDenominator)(this)}getElements(){return this.elements?this.elements:{}}getMultiplier(e){if(void 0===this.multiplier){const e=this.type===L?this.value:"1";this.multiplier=P.Rational.create(e)}return e?Expression.create(this.multiplier):this.multiplier}getNumerator(){return(0,M.getNumerator)(this)}getPower(){return this.power||(this.isNUM()?this.power=Expression.Number("0"):this.power=Expression.Number("1")),this.power}getVariable(e){return(0,N.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,O.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,O.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,I.one)().div(this):(e=this.copy(),e.power=e.getPower().neg(),e.multiplier=e.getMultiplier().invert()),e.hasRadical()?(0,v.rationalizeRadical)(e):e}isComplex(){let e=!1;if(this.isFunction(g.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([g.REALPART,g.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 g.PARSER_CONSTANTS&&this.isVAR()||this.isEXP()&&this.getBase().isConstant()&&this.getPower().isConstant()}isE(){return this.value===g.E}isEven(){return this.isNUM()&&this.getMultiplier().isEven()}isEXP(){return this.type===U}isFunction(e){let t;return t=void 0===e?this.type===D:"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===$}isInteger(){return!!this.isOne()||this.type===L&&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,I.zero)())}isNegInf(){return this.isInf()&&this.getMultiplier().lt("0")}isNUM(){return this.type===L}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 g.PI.includes(this.value)}isPlainVariable(){return this.isVAR()&&this.getMultiplier().isOne()&&this.getPower().isOne()}isPolynomialLike(){return(0,N.isPolynomialLike)(this)}isPosInf(){return this.isInf()&&this.getMultiplier().gt((0,I.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===z||this.type===k}isVAR(){return this.type===V}isZero(){return this.getMultiplier().isZero()}keyValue(e=!1,t=!1){const n=!(e||t||this.type!==z&&this.type!==B);if(n&&void 0!==this._keyValueCache)return this._keyValueCache;let i="";if(t)i=this.getPower().text();else switch(this.type){case L:i=e?this.value:Expression.numberHash;break;case V:case D:case U:case $:i=e?this.idString():this.value;break;case k:i=e?this.text():Object.values(this.getElements())[0].keyValue();break;case z:case B:i=Expression.getValue(Object.values(this.getElements()),"text",this.type)}if(!i)throw new Error((0,a.message)("expressionKeyValueUnsupported",{type:String(this.type)}));return n&&(this._keyValueCache=i),i}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,w.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,d.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===U?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,T.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 void 0===e&&void 0===t&&void 0===this.precision&&void 0===this.scientific?(0,T.toDefaultText)(this,Expression.POW_OPR,Expression.sortFunction):(0,T.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,I.one)():(e=this.copy(),delete e.multiplier),e}updateValue(e){if(this._keyValueCache=void 0,this.isFunction())this.value=`${this.name}(${this.getArguments().map(e=>e.text()).join(", ")})`;else if(this.isProduct()||this.isSum()){const t=e??this.elementsArray();this.value=Expression.getValue(t,"text",this.type),!e||this.type!==z&&this.type!==B||(this._keyValueCache=this.value)}return this}valueOf(){let e;return e=this.isNUM()?this.getMultiplier().valueOf():this.text({decimal:!0}),e}variables(e){return(0,R.variables)(this,e,Expression.RESERVED)}}t.Expression=Expression},6056(e,t,n){"use strict";t.coeffs=function coeffs(e,t,n,r=!0){const u=n||new o.CoeffObject(t);if(e.isComplex()&&!t.includes(a.Expression.imaginary)){const n=coeffs(e.realPart(),t,void 0,r),i=coeffs(e.imagPart(),t,void 0,r);return n.each((e,t)=>u.add(t,e)),i.each((e,t)=>u.add(t,e.times(a.Expression.Img()))),u}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,void 0,r).each((e,t)=>{u.add(t,n.times(e))}),u}e=s}const c=r?(0,s.expand)(e):e;if(c.isSum())c.each(e=>{coeffs(e,t,u,!1)});else{const[n,i]=separateVar(e,t),r=t.map(e=>i.getVariable(e).getPower().text());u.add(r.join(","),n)}return u},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}},6338(e,t){"use strict";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()}},8137(e,t,n){"use strict";t.toDefaultText=toDefaultText,t.toText=function toText(e,t,n,i,s){t={precision:e.precision,scientific:e.scientific,...t};let d="";if(e.type===o)d=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:d=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)d=`${o}${r.SYMBOLIC_ACCESSOR}(${n.map(e=>e.text(t)).join(", ")})`;else{const e=n[0],i=n.slice(1);d=`${o}${e.text(t)}[${i.map(e=>e.text(t)).join(", ")}]`}}else d=`${o}${e.name||""}(${e.getArguments().map(e=>e.text(t)).join(", ")})`;break;case c:case g:x=formatExpressionString(e,t,s),x=o||h?`(${x})`:x,d=`${o}${x}`;break;case p:x=formatExpressionString(e,t,s),x=h?`(${x})`:x,d=`${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})`),d=`${o}${x}`;break}}d+=h}return d.replace(/\+-/g,"-")};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:g}=s.EXPRESSION_TYPES;function formatMultiplierString(e,t){let n="";const i=e.getMultiplier(),r=i.text(t),s=void 0!==t?.scientific;if(!(s?i.isOne():"1"===r||"1.0"===r)){n=r,i.isInteger()||i.asDecimal||t?.decimal||t?.scientific||(n=`(${n})`);(s?i.isMinusOne():"-1"===r||"-1.0"===r)&&!t?.wrapPow?n="-":n+="*"}return n}function formatPowerString(e,t,n){let i="";const s=e.getPower(),o={...t,exactScientific:!0},a=s.text(o);if("1"!==a&&"1.0"!==a){if(i=a,s.dataType!==r.RATIONAL||s.isInteger()){const t=e.getPower();let n=!1;t.type===g||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 formatDefaultExpressionString(e,t,n){const r=e.type===p?"*":"+",s=Object.values(e.getElements());return i.Settings.SORT_TERMS&&s.sort(n),s.map(i=>{let r=toDefaultText(i,t,n);return e.type===p&&i.isSum()&&(r=`(${r})`),r}).join(r).replace("+-","-")}function toDefaultText(e,t,n){let i="";if(e.type===o)i=e.getMultiplier().text();else{const s=formatMultiplierString(e),o=function formatDefaultPowerString(e,t,n){let i="";const s=e.getPower(),o=toDefaultText(s,t,n);if("1"!==o&&"1.0"!==o){if(i=o,s.dataType!==r.RATIONAL||s.isInteger()){let t=!1;s.type===g||s.type===p?t=!0:e.type===m&&(s.isNUM()&&!s.isInteger()?t=!0:s.isNUM()||s.getMultiplier().isOne()||(t=!0)),(t||i.includes("/"))&&(i=`(${i})`)}else i=`(${i})`;i=`${t}${i}`}return i}(e,t,n);let d;switch(e.type){case l:case u:i=`${s}${e.value}`;break;case a:if(e.name===r.SYMBOLIC_ACCESSOR){const r=e.getArguments(),o=r[0],a=r.slice(1);i=`${s}${toDefaultText(o,t,n)}[${a.map(e=>toDefaultText(e,t,n)).join(", ")}]`}else i=`${s}${e.name||""}(${e.getArguments().map(e=>toDefaultText(e,t,n)).join(", ")})`;break;case c:case g:d=formatDefaultExpressionString(e,t,n),d=s||o?`(${d})`:d,i=`${s}${d}`;break;case p:d=formatDefaultExpressionString(e,t,n),d=o?`(${d})`:d,i=`${s}${d}`;break;case m:{const r=e.getBase(),o=r.getPower();d=toDefaultText(r,t,n),(r.elements||d.startsWith("-")||d.includes("/")||!o.isOne()&&!o.isZero())&&(d=`(${d})`),i=`${s}${d}`;break}}i+=o}return i.replace(/\+-/g,"-")}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("+-","-")}},542(e,t,n){"use strict";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}};const i=n(6099)},6099(e,t,n){"use strict";t.zero=function zero(){return getFromCacheOrCreate("0")},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.four=function four(){return getFromCacheOrCreate("4")},t.five=function five(){return getFromCacheOrCreate("5")},t.six=function six(){return getFromCacheOrCreate("6")},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.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]}},5118(e,t,n){"use strict";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}},652(e,t,n){"use strict";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)};const i=n(8300)},1897(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.product=function product(...e){let t=(0,o.one)();for(const n of e)t=t.times(n);return t},t.sum=function sum(...e){let t=(0,o.zero)();for(const n of e)t=t.plus(n);return t},t.stripPower=stripPower,t.cloneExpressionTree=cloneExpressionTree,t.copyOver=function copyOver(e,t,n){n={omitMultiplier:!1,omitPower:!1,...n},e.multiplier&&!n.omitMultiplier&&(t.multiplier=e.multiplier.copy());void 0!==e.name&&(t.name=e.name);e.power&&!n.omitPower&&(t.power=cloneExpressionTree(e.power));if(e.args){t.args=[];for(const n of e.args)t.args.push(cloneExpressionTree(n))}e.base&&(t.base=cloneExpressionTree(e.base));if(e.elements){t.elements={};for(const n in e.elements)t.elements[n]=cloneExpressionTree(e.elements[n])}return t.type=e.type,t.value=e.value,t.precision=e.precision,t.scientific=e.scientific,t.deferred=e.deferred,t},t.toArrays=function toArrays(e,t){const n=t||{num:[],den:[]};function addMultiplier(e){n.num.push(s.Expression.Number(e.numerator)),1n!==e.denominator&&n.den.push(s.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(296),o=n(6099);function stripPower(e){const t=e.copy();return delete t.power,t}function cloneExpressionTree(e){const t=s.Expression.hook(e);if(!s.Expression.isExpression(t))return s.Expression.create(t);const n=t,i=Object.create(s.Expression.prototype);if(i.dataType=n.dataType,i.deferred=n.deferred,i.isEnumerable=n.isEnumerable,i.type=n.type,i.value=n.value,i.precision=n.precision,i.scientific=n.scientific,n.multiplier&&(i.multiplier=n.multiplier.copy()),void 0!==n.name&&(i.name=n.name),n.power&&(i.power=cloneExpressionTree(n.power)),n.args&&(i.args=n.args.map(cloneExpressionTree)),n.base&&(i.base=cloneExpressionTree(n.base)),n.elements){i.elements={};for(const e in n.elements)i.elements[e]=cloneExpressionTree(n.elements[e])}return i}},2178(e,t){"use strict";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)}}},4462(e,t,n){"use strict";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((0,a.message)("matrixRowIndexOutOfBounds",{index:String(t),length:String(this.elements.length)}));if(e.length>1){const n=e[1];if(n<0||n>=this.elements[t].length)throw new a.MathError((0,a.message)("matrixColumnIndexOutOfBounds",{index:String(n),length:String(this.elements[t].length)}));return this.elements[t][n]}return new m.Vector(this.elements[t])}__set__(e,t){if("string"==typeof e)throw new a.MathError((0,a.message)("matrixStringKeyUnsupported"));const n=e[0],i=e.length>1?e[1]:void 0;if(n<0||n>=this.elements.length)throw new a.MathError((0,a.message)("matrixRowIndexOutOfBounds",{index:String(n),length:String(this.elements.length)}));if(void 0!==i){if(i<0||i>=this.elements[n].length)throw new a.MathError((0,a.message)("matrixColumnIndexOutOfBounds",{index:String(i),length:String(this.elements[n].length)}));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,g;for(;o--;){for(p=[],m=n[o],l=a;l--;){for(g=(0,u.zero)(),c=r;c--;){const t=m[c],n=e.elements[c][l];g=g.plus(t.times(n))}p[l]=g}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((0,a.message)("matrixTraceUnavailable"));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((0,a.message)("matrixTraceUnavailable"));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},981(e,t,n){"use strict";t.loadMatrixFunctions=function loadMatrixFunctions(){Object.assign(i.mathFunctionRegistry,{matrix:(0,i.systemFunction)({fn:o.matrix,minArgs:1,maxArgs:-1,distElWise:!1}),imatrix:(0,i.systemFunction)({fn:s.imatrix,minArgs:1,maxArgs:1,distElWise:!1}),determinant:(0,i.systemFunction)({fn:r.determinant,minArgs:1,maxArgs:1,distElWise:!1}),invert:(0,i.systemFunction)({fn:r.invert,minArgs:1,maxArgs:1,distElWise:!1}),transpose:(0,i.systemFunction)({fn:e=>e.transpose(),minArgs:1,maxArgs:1,distElWise:!1}),augment:(0,i.systemFunction)({fn:(e,t)=>e.augment(t),minArgs:2,maxArgs:2,distElWise:!1}),rref:(0,i.systemFunction)({fn:(e,t)=>e.rref(t),minArgs:1,maxArgs:2,distElWise:!1}),nullspace:(0,i.systemFunction)({fn:r.nullspace,minArgs:1,maxArgs:2,distElWise:!1})})};const i=n(9426),r=n(6430),s=n(430),o=n(8533)},6430(e,t,n){"use strict";t.determinant=function determinant(e){return e.copy().determinant()},t.invert=function invert(e){return e.inverse()},t.nullspace=function nullspace(e,t){return new o.Vector(e.nullspace(t).map(e=>new o.Vector(e)))};const i=n(4703),r=n(296),s=n(2116),o=n(3982),a=n(4462)},430(e,t,n){"use strict";t.imatrix=function imatrix(e){let t;t=e.isInteger()?s.Matrix.identity(Number(e)):i.Expression.toFunction(r.IMATRIX,[e]);return t};const i=n(296),r=n(8300),s=n(4462)},238(e,t,n){"use strict";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),g=n(6528),d=n(6184),h=n(296),x=n(4462),E=n(5584),y=n(5598),v=n(3982),w=n(8300),b=n(8801),P=n(5823),A=n(12),N=n(567),M=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=w.PARSER_CONSTANTS;MAX_COMPOUND_OPERATOR_LENGTH=2;operators=(0,o.getOperators)();VALUE_SETS=[w.VECTOR,w.MATRIX];WHITE_SPACE=[w.NEWLINE,w.TAB,w.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!==A.Token.OPERATOR){if(n.type!==A.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!==A.Token.OPERATOR&&t.push(i.value)}return t}aliasOperator(e,t){const n=this.operators[e];if(!n)throw new u.ParserError((0,u.message)("unknownOperator",{operator:e}));return this.operators[t]={...n,operator:t,postfixVariant:n.postfixVariant?{...n.postfixVariant,operator:t}:void 0},(0,A.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()}isReserved(e){return m.RESTRICTED.includes(e)}parse(e,t){if(t){const e={};for(const n in t){const i=t[n];e[n]=h.Expression.isExpression(i)||d.Equation.isEquation(i)||(0,a.isEnumerable)(i)?i:h.Expression.create(i)}t=e}const n=(0,P.preprocess)(String(e),l.mathFunctionRegistry),i=this.toRPN(this.tokenize(n));let r;try{r=this.parseRPN(i,t)}catch(e){if(N.NullSignal.isNullSignal(e))throw new u.NullError((0,u.message)("nullValue"));throw e}return r}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(M.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)||M.IndexedReference.isIndexedReference(r)){const s=M.IndexedReference.isIndexedReference(r)?r.resolve():r,o=e[c-1];let a,l;if(!A.Token.isToken(o)||o.type!==A.Token.VARIABLE||t&&o.value in t||!(o.value in this.KNOWN_VALUES)||(a=o.value),g.Dictionary.isDictionary(s)){l=this.extractStringKeys(E)[0]}else l=this.extractIndices(E,t,n);if(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:A.Token.isToken(o)&&o.type===A.Token.VARIABLE&&(t=h.Expression.Variable(o.value)),!t||!v.Vector.isVector(s)&&!x.Matrix.isMatrix(s))throw new u.ParserError((0,u.message)("symbolicAccessNamedTargetRequired"));if(v.Vector.isVector(s)&&1!==e.length)throw new u.ParserError((0,u.message)("symbolicVectorIndexCount"));if(x.Matrix.isMatrix(s)&&2!==e.length){if(1===e.length)throw new u.ParserError((0,u.message)("symbolicMatrixRowNonScalar"));throw new u.ParserError((0,u.message)("symbolicMatrixCellIndexCount"))}addToOutput(s.withSymbolicAccessor(t,e))}else addToOutput(new M.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((0,u.message)("symbolicAccessMaxIndices"));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,b._.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,b._.multiply)(resolveStackValue(i.pop()),e))}else{addToOutput(this.parseRPN(E,t,n))}else{addToOutput(this.parseRPN(E,t,n))}}else if(E.type===A.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,b._[t.action])(e,o)}else if(t.isPostfix){o=resolveStackValue(o),o=h.Expression.fromSymbolicAccess(o)??o;s=(0,b._[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)&&A.Token.isToken(m)&&m.type===A.Token.VARIABLE&&h.Expression.isExpression(a)&&a.isPlainVariable())throw new u.ParserError((0,u.message)("unsupportedFunction",{function:m.value}));if("assign"===t.action&&M.IndexedReference.isIndexedReference(a)){let e=!0;try{o="function"==typeof o?o():resolveStackValue(o)}catch(t){if(!N.NullSignal.isNullSignal(t))throw t;e=!1}e&&(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,b._[t.action])(a,o)}else if(t.deferLHSResolution){a=resolveStackValue(a),o=resolveStackValue(o);s=(0,b._[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=b._[e];s=a.isEnumerable||o.isEnumerable||d.Equation.isEquation(a)||d.Equation.isEquation(o)?(0,b.route)(a,o,t.action):i(a,o)}}Array.isArray(s)?(addToOutput(s[0]),addToOutput(s[1])):addToOutput(s)}else if(E.type===A.Token.FUNCTION){const i=e[++c];if(E.value===w.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((0,u.message)("parserMalformedSymbolicAccessor"));const a=r[0],l=o[0],c=[],g=[];let d,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((0,u.message)("parserMalformedSymbolicAccessorIndex"));if(!h.Expression.isExpression(n))throw new u.ParserError((0,u.message)("symbolicAccessIndexScalar"));c.push(n);const i=Number(n.text());Number.isFinite(i)?g.push(i-m.Settings.INDEX_BASE):E=!1}if(c.length>2)throw new u.ParserError((0,u.message)("symbolicAccessMaxIndices"));if(v.Vector.isVector(l)&&1!==c.length)throw new u.ParserError((0,u.message)("symbolicVectorIndexCount"));if(x.Matrix.isMatrix(l)&&2!==c.length){if(1===c.length)throw new u.ParserError((0,u.message)("symbolicMatrixRowNonScalar"));throw new u.ParserError((0,u.message)("symbolicMatrixCellIndexCount"))}if((v.Vector.isVector(l)||x.Matrix.isMatrix(l))&&E)d=l.__get__(g);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((0,u.message)("symbolicAccessTargetType"));e=2===c.length?new x.Matrix([]):new v.Vector}d=e.withSymbolicAccessor(a,c)}addToOutput(d)}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)A.Token.isToken(n)&&n.type===A.Token.OPERATOR&&n.value===w.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,b.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,b.callFunction)(E.value,n))}}else if(E.type===A.Token.PREFIX){const e=resolveStackValue(i.pop()),t=h.Expression.fromSymbolicAccess(e)??e,n=`${o[E.value].action}Prefix`;addToOutput((0,b._[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(A.Token.NUMBER)){const n=t[E.value];e=h.Expression.isExpression(n)||d.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 A.Token.FUNCTION:e=h.Expression.Function(E.value);break;case A.Token.VARIABLE:e=w.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 g.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}=A.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=A.Token.V(t.pop().text().substring(1));return t.at(-1)?.text()===w.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(w.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)b._[s.action]=t;else if(!b._[s.action])throw new u.ParserError((0,u.message)("unknownOperatorAction",{action:s.action}));return this.operators[s.operator]=s,(0,A.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 g=p;const d={tokenType:A.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=A.Token.getCharType(e,a,d);if(r===A.Token.CHARACTER&&"\0"!==e)throw new u.UnexpectedTokenError((0,u.message)("unsupportedCharacter",{character:e,position:String(a)}));if(d.is(A.Token.BRACKET)){const e=d.last();if(void 0===e)throw new u.ParserError((0,u.message)("parserBracketTokenMissingCharacter"));const i=s.brackets[e];if(i.isOpen){const e=g[g.length-1];e&&e.type===A.Token.VARIABLE&&(e.value in l.mathFunctionRegistry||e.value===w.SYMBOLIC_ACCESSOR)&&(e.type=A.Token.FUNCTION);let n=!1;if(e&&e.type!==A.Token.FUNCTION&&e.type!==A.Token.OPERATOR)if("square"===i.type)n=!0;else{if(!m.Settings.ALLOW_IMPLICIT_MULTIPLICATION)throw new u.UnexpectedTokenError((0,u.message)("expectedOperatorOrFunction",{value:e.value}));"parenthesis"===i.type&&e.type===A.Token.VARIABLE&&(n=!0),t.pure||g.push(new A.Token("*",A.Token.OPERATOR,-1))}g=g.addScope(i.type,a),n&&(g.implicitMultiply=!0)}else{const e=g.type===i.type;if(e&&"parenthesis"===i.type&&g.parent){const e=n.slice(a).trimStart();if(o.find(t=>e.startsWith(t))){const e=g.parent;let t=e.length-2,n=e[t];A.Token.isToken(n)&&n.type===A.Token.OPERATOR&&"*"===n.value&&-1===n.position&&(e.splice(t,1),n=e[--t]),!A.Token.isToken(n)||n.type!==A.Token.VARIABLE&&n.type!==A.Token.FUNCTION||(n.type=A.Token.FUNCTION,g.deferLHSResolution=!0)}}if(g=g.upperScope(),void 0===g||!e)throw new u.UnexpectedTokenError((0,u.message)("missingOpeningBracket",{bracket:String(d.last()),position:String(a)}))}d.chars.pop()}if(d.tokenType!==A.Token.UNDEFINED&&d.tokenType!==r){let n=d.chars.join(w.BLANK);const r=w.ALIASES[n];r&&(n=r);const s=a-d.chars.length;if(i.includes(n)&&d.tokenType!==A.Token.PREFIX)d.tokenType=A.Token.OPERATOR;else if(d.is(A.Token.OPERATOR)&&d.chars.length>1){let e=d.chars[0];for(let t=1;t<d.chars.length+1;t++){const i=e+d.chars[t];i in this.operators?e=i:(g.push(new A.Token(e,A.Token.OPERATOR,s+t-e.length)),e=d.chars[t],n=w.BLANK)}d.chars=[],d.scientificNumber=!1}const o=n===w.SPACE;if(o&&t.keepWhiteSpace)g.push(new A.Token(n,A.Token.SPACE,s));else if(n!==w.BLANK&&!o){d.scientificNumber&&(n=(0,c.scientificToDecimal)(n),d.scientificNumber=!1);const e=g[g.length-1],i=A.Token.isToken(e)&&e.type===A.Token.OPERATOR?this.operators[e.value]:void 0;if(e&&(d.is(A.Token.VARIABLE)&&e.type!==A.Token.OPERATOR&&e.type!==A.Token.PREFIX||(d.is(A.Token.VARIABLE)||d.is(A.Token.NUMBER))&&i?.isPostfix)){if(!m.Settings.ALLOW_IMPLICIT_MULTIPLICATION)throw new u.UnexpectedTokenError((0,u.message)("expectedOperatorOrFunction",{value:e.value}));t.pure||g.push(new A.Token("*",A.Token.OPERATOR,-1))}m.Settings.USE_SINGLE_LETTER_VARIABLES&&!(n in l.mathFunctionRegistry)?g.push(...n.split("").map(e=>new A.Token(e,d.tokenType,-1)).flatMap(e=>[new A.Token("*",A.Token.OPERATOR,-1),e]).slice(1)):g.push(new A.Token(n,d.tokenType,s))}d.chars=[e]}else d.chars.push(e);d.tokenType=r}const h=p[p.length-1];if(r.Scope.isScope(h)&&h.isOpen)throw new u.UnexpectedTokenError((0,u.message)("missingClosingBracket",{bracket:n.charAt(h.column-1),position:String(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(A.Token.isToken(e)&&e.type===A.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===A.Token.VARIABLE&&A.Token.isToken(a)&&a.type===A.Token.OPERATOR&&"*"===a.value&&-1===a.position&&r.Scope.isScope(c)&&"parenthesis"===c.type&&c.implicitMultiply&&o.value in l.mathFunctionRegistry&&(o=new A.Token(o.value,A.Token.FUNCTION,o.position),i++),o.type){case A.Token.OPERATOR:{let s=o.resolvedOperator??this.operators[o.value];if(s.postfixVariant){let t=i+1,n=e[t];for(;A.Token.isToken(n)&&(n.type===A.Token.SPACE||n.type===A.Token.UNDEFINED);)n=e[++t];(void 0===n||A.Token.isToken(n)&&(n.type===A.Token.OPERATOR||n.type===A.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!==A.Token.OPERATOR||s.isPostfix)break;if(!this.operators[n.value].isPrefix)throw new u.ParserError((0,u.message)("prefixOperatorExpected",{operator:n.value}));n.type=A.Token.PREFIX}const l=t[t.length-1];if(s.isPrefix&&(0===t.length||t.length>0&&l&&l.type===A.Token.PREFIX)){o.type=A.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===A.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(A.Token.isToken(e)&&e.type===A.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(A.Token.isToken(t)&&t.type===A.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 A.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===A.Token.BRACKET&&s.brackets[o.value].matches===e.value)break}}break;case A.Token.PREFIX:n.push(o);break;case A.Token.UNDEFINED:case A.Token.SPACE:break;default:t.push(o)}}}for(;n.length;){const e=n.pop();t.push(e)}return t}}t.Parser=new ExpressionParser},12(e,t,n){"use strict";t.Token=t.rx=t.dO=t.SY=t._Z=t.q4=t.Gp=t.Oy=void 0,t.refreshOperatorSymbols=function refreshOperatorSymbols(){t.Gp.splice(0,t.Gp.length,...(0,r.getOperatorSymbolArray)()),t.q4=new RegExp(`[${t.Gp.join("")}]`)};const i=n(6441),r=n(9725),s=n(8300);t.Oy=[],t.Gp=(0,r.getOperatorSymbolArray)(),t.q4=new RegExp(`[${t.Gp.join("")}]`),t._Z=new RegExp(`[${Object.keys(i.brackets).join("\\")}]`),t.SY=/[a-z_αAβBγΓδΔϵEζZηHθΘιIκKλΛμMνNξΞoOπΠρPσΣτTυϒϕΦχXψΨωΩ∞]/i,t.dO=/\d/,t.rx=/\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.dO.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.SY.test(e)||t.Oy.includes(e))return Token.VARIABLE;if(t._Z.test(e))return Token.BRACKET;if(t.q4.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.rx.test(e)&&t.dO.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},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.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.PFACTORD=t.PFACTOR=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=t.SUM_FUNCTION=t.SINC=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.PFACTOR="pfactor",t.PFACTORD="pfactord",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]},567(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NullSignal=t.ContinueSignal=t.BreakSignal=t.ReturnSignal=t.ControlFlowSignal=t.NULL_SIGNAL=t.CONTINUE_SIGNAL=t.BREAK_SIGNAL=t.RETURN_SIGNAL=void 0;const i=n(6441);t.RETURN_SIGNAL="RETURN_SIGNAL",t.BREAK_SIGNAL="BREAK_SIGNAL",t.CONTINUE_SIGNAL="CONTINUE_SIGNAL",t.NULL_SIGNAL="NULL_SIGNAL";class ControlFlowSignal extends Error{constructor(){super(),this.name=new.target.name}}t.ControlFlowSignal=ControlFlowSignal;t.ReturnSignal=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.BreakSignal=class BreakSignal extends ControlFlowSignal{dataType=t.BREAK_SIGNAL;static isBreakSignal(e){return(0,i.isNerdamerNativeType)(e,t.BREAK_SIGNAL)}};t.ContinueSignal=class ContinueSignal extends ControlFlowSignal{dataType=t.CONTINUE_SIGNAL;static isContinueSignal(e){return(0,i.isNerdamerNativeType)(e,t.CONTINUE_SIGNAL)}};t.NullSignal=class NullSignal extends ControlFlowSignal{dataType=t.NULL_SIGNAL;static isNullSignal(e){return(0,i.isNerdamerNativeType)(e,t.NULL_SIGNAL)}}},7056(e,t,n){"use strict";t._=function _(e){return r.Expression.create(e)};const i=n(5817);const r=n(296),s=n(238)},6255(e,t,n){"use strict";t.add=add,t.addPrefix=function addPrefix(e){return e};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:g,INF:d}=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.isSum()&&!e.getMultiplier().isOne()&&e.isLinear()&&(e=e.distributeMultiplier()),t.isSum()&&!t.getMultiplier().isOne()&&t.isLinear()&&(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=t.copy();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{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=e.copy(),n.multiplier=i)}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===g||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:g;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.updateValue(r));return i}},4091(e,t){"use strict";t.comma=function comma(e,t){return[e,t]}},619(e,t,n){"use strict";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(e.isComplex()&&t.isComplex()){const n=e.realPart(),i=e.imagPart(),r=t.realPart(),s=t.imagPart();if(n.isNUM()&&i.isNUM()&&r.isNUM()&&s.isNUM())return n.getMultiplier().eq(r.getMultiplier())&&i.getMultiplier().eq(s.getMultiplier())}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}},3171(e,t,n){"use strict";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)}},8801(e,t,n){"use strict";t._=void 0,t.callFunction=callFunction,t.route=function route(e,t,n){let i;if("assign"===n)i=(0,v.assign)(e,t);else if("comma"===n)i=(0,b.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)&&!d.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(d.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,M.subtract)(e,t):"div"===n?(0,P.divide)(e,t):(0,N.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),g=n(1897),d=n(4462),h=n(3982),x=n(8300),E=n(294),y=n(266),v=n(2707),w=n(6255),b=n(4091),P=n(3171),A=n(6498),N=n(3957),M=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((0,o.message)("unsupportedFunction",{function:e}));const{fn:i,minArgs:r,maxArgs:a,maxPrecision:u,equationArgs:c,distElWise:g,deferArguments:x,returnBoundary:y}=n;if(r>-1&&t.length<r)throw new o.ParserError((0,o.message)("functionMinArgs",{function:e,min:String(r),actual:String(t.length)}));if(a>-1&&t.length>a)throw new o.ParserError((0,o.message)("functionMaxArgs",{function:e,max:String(a),actual:String(t.length)}));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=g?s.filter(e=>h.Vector.isVector(e)||d.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():d.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]):d.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((0,o.message)("invalidFunctionDeclaration",{declaration:e.text()}));const n=[...e.getElements()],i=n.pop();if(!p.Expression.isExpression(i))throw new o.UnexpectedInputError((0,o.message)("invalidFunctionDeclaration",{declaration:e.text()}));const r=(0,g.assertPlainVariableAndGetString)(i),s=n.map(e=>{if(!p.Expression.isExpression(e))throw new o.UnexpectedInputError((0,o.message)("plainVariableExpected",{input:e.text()}));return(0,g.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:w.add,minus:M.subtract,times:A.multiply,div:P.divide,pow:N.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:b.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:M.subtractPrefix,plusPrefix:w.addPrefix,factorial:i.factorial,doubleFactorial:i.doubleFactorial}},6498(e,t,n){"use strict";t.multiply=multiply,t.merge=merge,t.canonicalizeRadicals=function canonicalizeRadicals(e){let t;if(e.isEXP()&&e.isConstant()&&e.hasRadical())t=(0,u.rationalizeRadical)(e,!0);else if(e.isFunction()){const n=e.getArguments().map(e=>canonicalizeRadicals(e));let i=o.Expression.toFunction(e.name,n);i.multiplier=e.multiplier,i=o.Expression.setPower(i,e.getPower()),t=i}else if(e.isProduct()){let t=o.Expression.fromRational(e.getMultiplier());e.each(e=>{t=t.times(canonicalizeRadicals(e))})}else if(e.isSum()&&e.isLinear()){let t=(0,a.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(4600),s=n(5817),o=n(296),a=n(6099),l=n(8300),u=n(3957);function multiply(e,t){let n;if(s.Settings.DEFER_SIMPLIFICATION)n=merge(o.Expression.toFunction(l.WRAP,[e]),o.Expression.toFunction(l.WRAP,[t])),n.deferred=!0;else{if(e.isZero()){if(t.isInf())throw new i.UndefinedError((0,i.message)("infinityTimesZero"));n=o.Expression.Number("0")}else if(e.isNUM()&&t.isNUM())n=o.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(),a=t.imagPart();n=i.times(r).minus(s.times(a)).plus(i.times(a).plus(s.times(r)).times(o.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=o.Expression.Inf(),e.getMultiplier().times(t.getMultiplier()).isNegative())n=n.neg();else if(e.isZero()||t.isZero())throw new i.UndefinedError((0,i.message)("infinityTimesZero"))}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()?o.Expression.fromRational(n.getMultiplier()):o.Expression.setPower(n,i);const s=n.getPower();n.isI()?n=(0,r.simplifyImaginary)(n):n.isFunction(l.ABS)&&s.isEven()&&(n=n.getArguments()[0].pow(s).times(n.getMultiplier()))}else l.RANK[e.type]>l.RANK[t.type]&&(n=multiply(t,e));n=n||merge(e,t),n.isEXP()&&n.isLinear()&&(n=n.getBase().times(n.getMultiplier())),s.Settings.EVALUATE&&(n=n.distributeMultiplier())}return n}function combine(e,t,n,i){const r=o.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=o.Expression.TYPES.PRD;let s=canMerge(e),l=canMerge(t),c=!0;const m=void 0!==e.multiplier,p=void 0!==t.multiplier;let g=m||p?e.getMultiplier().times(t.getMultiplier()):void 0;if(g&&(m&&((e=e.copy()).multiplier=void 0),p&&((t=t.copy()).multiplier=void 0)),e.elements&&!t.elements&&([t,e]=[e,t],[l,s]=[s,l]),l)if(!s&&l){const r=e.keyValue();n=t.copy();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):e.copy()}o.isNUM()?(o.isOne()||(g=g?.times(o.getMultiplier())),delete s[r]):s[r]=o,i=Object.values(s)}else{n=e.copy(),n.multiplier=e.getMultiplier().times(t.getMultiplier());const s=n.getElements(),a=t.getElements();for(const e in a){const t=a[e];if(e in s){const n=multiply(t,s[e]);r===o.Expression.TYPES.PRD&&n.isOne()?delete s[e]:s[e]=n}else s[e]=t.copy()}i=Object.values(s)}else{const r=e.type===o.Expression.TYPES.GRP?e.value:e.keyValue(),s=t.type===o.Expression.TYPES.GRP?t.value:t.keyValue(),l=e.isProduct()&&e.isLinear();if(l&&t.isProduct()&&t.getPower().isMinusOne()){let r=e,s=(0,a.one)();const o=e.getElements(),l=t.getElements();for(const e in l){const t=l[e];e in o?r=multiply(r,(0,u.power)(t,(0,a.minusOne)())):s=multiply(s,t)}[n,i]=combine(r,multiply((0,u.power)(s,(0,a.minusOne)()),e.getMultiplier(!0)),e.keyValue(),t.keyValue())}else if(l&&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),c=!1;else{const o=e.getPower(),a=t.getPower();if(-1===o.sign()&&-1===a.sign()){n=multiply(e.invert(),t.invert()),n=n.invert(),i=Object.values(n.getElements())}else[n,i]=combine(e,t,r,s)}}if(c&&(n.type=r,n.updateValue(i)),g&&!g.isOne()&&(n.multiplier=g),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}},3957(e,t,n){"use strict";t.power=power,t.sqrtToPow=function sqrtToPow(e){let t;if(e.isFunction(h.SQRT)){t=e.getArguments()[0].copy();t=setPower(t,e.getPower().div((0,g.two)())),t.multiplier=e.getMultiplier().copy()}else t=e.copy();return t},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),g=n(6099),d=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=e.copy(),n=p.Expression.toEXP(n,t.copy()),n.deferred=!0;else{if(e.isI()&&t.isInteger())n=(0,u.simplifyImaginary)(setPower(e,t));else if(e.isE()&&t.isComplex()){const i=t.copy(),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,g.one)();else if(!e.isZero()||r||t.isZero())if(!t.isZero()||e.isInf()||e.isNUM())if(t.isOne())n=e.copy();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,g.one)(),r=(0,g.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,g.one)().neg();else if(t.isZero())n=(0,g.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=e.copy(),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(e.copy(),t),n=n.times(x),n=rationalizeRadical(n);else if(1n!==a&&2n!==a&&e.isNUM()&&-1===e.sign())n=p.Expression.toEXP((0,g.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,g.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,d.stripPower)(n).isComplex()?(n=(0,i.abs)((0,d.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,d.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,g.one)();else n=p.Expression.Number("0")}if(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,g.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,g.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,g.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())}},6910(e,t,n){"use strict";t.subtract=function subtract(e,t){let n;if(r.Settings.DEFER_SIMPLIFICATION)n=(0,o.add)(e,t.neg()),n.deferred=!0;else if(n=e.isNUM()&&t.isNUM()?s.Expression.fromRational(e.getMultiplier().minus(t.getMultiplier())):!e.isInf()&&t.isInf()?s.Expression.Inf().neg():(0,o.add)(e,t.neg()),!n)throw new Error((0,i.message)("subtractionNotDefined",{leftType:String(e.type),rightType:String(t.type),left:String(e),right:String(t)}));return n},t.subtractPrefix=function subtractPrefix(e){return e.neg()};const i=n(4703),r=n(5817),s=n(296),o=n(6255)},5823(e,t,n){"use strict";t.preprocess=function preprocess(e,t){let n=function normalizeComments(e){let t="",n=0;for(;n<e.length;){const r=e.indexOf("#",n);if(-1===r){t+=e.slice(n);break}t+=e.slice(n,r);const s=e.startsWith("##",r)?"##":"#",o=e.indexOf(s,r+s.length);if(-1===o)throw new i.ParserError((0,i.message)("missingCommentDelimiter",{delimiter:s}));t+=" ",n=o+s.length}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?"]":"}";n+=o,t.push({argumentStart:n.length,closingBracket:i,functionName:"("===o?getPreviousIdentifier(e,s):void 0});continue}if(")"===o||"]"===o||"}"===o){const e=t[t.length-1];e?.closingBracket===o&&(e.statementBlockOpened&&(n+=")"),t.pop()),n+=o;continue}if(","===o){n+=o;const e=t[t.length-1];e&&!e.statementBlockOpened&&(e.argumentStart=n.length);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;l?.functionName===r?n+=",":"let"===l?.functionName?(l.statementBlockOpened||(n=n.slice(0,l.argumentStart)+`${r}(`+n.slice(l.argumentStart),l.statementBlockOpened=!0),n+=","):n+=o}continue}n+=o}i&&(n=`${r}(${n})`);return n}(n);let s=findBracketlessFunction(n,t);for(;s;){const e=findArgumentEnd(n,s.argumentStart,s.maxArgs,s.consumeStatement),i=n.slice(s.nameStart,s.nameEnd),r=n.slice(s.argumentStart,e);n=n.slice(0,s.nameStart)+`${i}(${r})`+n.slice(e),s=findBracketlessFunction(n,t)}return n};const i=n(4703),r="block";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}},294(e,t,n){"use strict";t.ReturnSignal=void 0,t.isInsideSymbolicFunction=function isInsideSymbolicFunction(){return h>0},t.shouldConsumeLocalReturn=function shouldConsumeLocalReturn(){return 0===h&&0===d},t.withReturnPropagation=function withReturnPropagation(e){d++;try{return e()}finally{d--}},t.functionBoundary=function functionBoundary(e){let t;h++;try{t=e()}catch(e){if(!l.ReturnSignal.isReturnSignal(e))throw l.BreakSignal.isBreakSignal(e)?new i.ParserError((0,i.message)("breakOutsideLoop")):l.ContinueSignal.isContinueSignal(e)?new i.ParserError((0,i.message)("continueOutsideLoop")):e;t=e.value}finally{h--}return t},t.RETURN=function RETURN(e){throw new l.ReturnSignal(e)},t.BREAK=function BREAK(){if(0===p)throw new i.ParserError((0,i.message)("breakOutsideLoop"));throw c},t.CONTINUE=function CONTINUE(){if(0===p)throw new i.ParserError((0,i.message)("continueOutsideLoop"));throw m},t.AND=function AND(...e){let t=(0,o.one)();for(const n of e)if(!isTruthy(n())){t=(0,o.zero)();break}return t},t.OR=function OR(...e){let t=(0,o.zero)();for(const n of e)if(isTruthy(n())){t=(0,o.one)();break}return t},t.NOT=function NOT(e){return isTruthy(e)?(0,o.zero)():(0,o.one)()},t.XOR=function XOR(...e){let t=!1;for(const n of e)isTruthy(n)&&(t=!t);return t?(0,o.one)():(0,o.zero)()},t.IFERROR=function IFERROR(e,t){let n;try{n=e()}catch(e){if(e instanceof l.ControlFlowSignal)throw e;n=t()}return n},t.ISERROR=function ISERROR(e){let t=(0,o.zero)();try{e()}catch(e){if(e instanceof l.ControlFlowSignal)throw e;t=(0,o.one)()}return t},t.IF=function IF(e,t,n){return controlFlowReturnBoundary(()=>{let i;if(isTruthy(e()))i=t();else{if(!n)return throwNullSignal();i=n()}return i})},t.WHILE=WHILE,t.FOR=function FOR(e,t,n,i){return controlFlowReturnBoundary(()=>(e(),WHILE(t,()=>{let e;try{e=i()}catch(e){throw(l.ContinueSignal.isContinueSignal(e)||l.NullSignal.isNullSignal(e))&&n(),e}return n(),e})))},t.BLOCK=BLOCK,t.parserReturnBoundary=parserReturnBoundary;const i=n(4703),r=n(5817),s=n(296),o=n(6099),a=n(8300),l=n(567);var u=n(567);Object.defineProperty(t,"ReturnSignal",{enumerable:!0,get:function(){return u.ReturnSignal}});const c=new l.BreakSignal,m=new l.ContinueSignal;let p=0,g=0,d=0,h=0;function throwNullSignal(){throw new l.NullSignal}function isTruthy(e){if(!s.Expression.isExpression(e))throw new i.UnexpectedDataType((0,i.message)("expressionExpected",{type:a.dataTypes[e.dataType]}));return!e.isZero()}function controlFlowReturnBoundary(e){let t;try{t=e()}catch(e){if(!(g>0&&0===h&&l.ReturnSignal.isReturnSignal(e)))throw e;t=e.value}return t}function WHILE(e,t){return controlFlowReturnBoundary(()=>{let n,s=!0,o=0;for(;s;){if(isTruthy(e())){if(o>=r.Settings.MAX_LOOP_ITERATIONS)throw new i.ParserError((0,i.message)("loopIterationLimitExceeded",{max:String(r.Settings.MAX_LOOP_ITERATIONS)}));p++;try{n=t()}catch(e){if(l.NullSignal.isNullSignal(e));else if(l.BreakSignal.isBreakSignal(e))s=!1;else if(!l.ContinueSignal.isContinueSignal(e))throw e}finally{p--}o++}else s=!1}return void 0===n?throwNullSignal():n})}function BLOCK(...e){if(0===e.length)return throwNullSignal();let t;for(const n of e)try{t=n()}catch(e){if(!l.NullSignal.isNullSignal(e))throw e}return void 0===t?throwNullSignal():t}function parserReturnBoundary(e){const t=0===h&&0===g;let n;g++;try{n=e()}catch(e){if(!t||!l.ReturnSignal.isReturnSignal(e))throw e;n=e.value}finally{g--}return n}},3812(e,t,n){"use strict";t.each=function each(e,t,n,d){const h=e(),x=[],E=[];if(d){if(!r.Dictionary.isDictionary(h))throw new c.UnexpectedDataType((0,c.message)("unsupportedType",{type:m.dataTypes[h.dataType]}));for(const[e,t]of h.entries())E.push(s.Expression.create(e)),x.push(t.copy())}else if(u.Vector.isVector(h)||i.Collection.isCollection(h)||l.ValuesSet.isValuesSet(h))h.forEach(e=>x.push(e.copy()));else if(a.Matrix.isMatrix(h))h.forEach(e=>x.push(e.copy()));else{if(!r.Dictionary.isDictionary(h))throw new c.UnexpectedDataType((0,c.message)("unsupportedType",{type:m.dataTypes[h.dataType]}));h.forEach(e=>x.push(e.copy()))}let y,v=0;try{y=(0,p.withReturnPropagation)(()=>(0,p.FOR)(()=>(0,o.zero)(),()=>v<x.length?(0,o.one)():(0,o.zero)(),()=>(v++,(0,o.zero)()),()=>d?(0,g.LET)(t,()=>E[v],()=>(0,g.LET)(n,()=>x[v],d)):(0,g.LET)(t,()=>x[v],n)))}catch(e){if((0,p.isInsideSymbolicFunction)()||!p.ReturnSignal.isReturnSignal(e))throw e;y=e.value}return y};const i=n(6284),r=n(6528),s=n(296),o=n(6099),a=n(4462),l=n(5598),u=n(3982),c=n(4703),m=n(8300),p=n(294),g=n(2707)},1929(e,t,n){"use strict";t.loadScriptingFunctions=function loadScriptingFunctions(){Object.assign(i.mathFunctionRegistry,{unassign:(0,i.systemFunction)({fn:a.unassign,minArgs:1,maxArgs:1,distElWise:!1,deferArguments:!0}),evaluate:(0,i.systemFunction)({fn:o.evaluate,minArgs:1,maxArgs:3,equationArgs:[0],distElWise:!1,deferArguments:!0,usage:"scripting"}),return:(0,i.systemFunction)({fn:r.RETURN,minArgs:1,maxArgs:1,equationArgs:[0],distElWise:!1,bracketlessStatement:!0,usage:"scripting"}),break:(0,i.systemFunction)({fn:r.BREAK,minArgs:0,maxArgs:0,distElWise:!1,usage:"scripting"}),continue:(0,i.systemFunction)({fn:r.CONTINUE,minArgs:0,maxArgs:0,distElWise:!1,usage:"scripting"}),and:(0,i.systemFunction)({fn:r.AND,minArgs:2,maxArgs:-1,distElWise:!1,deferArguments:!0,usage:"scripting"}),or:(0,i.systemFunction)({fn:r.OR,minArgs:2,maxArgs:-1,distElWise:!1,deferArguments:!0,usage:"scripting"}),not:(0,i.systemFunction)({fn:r.NOT,minArgs:1,maxArgs:1,distElWise:!1,usage:"scripting"}),xor:(0,i.systemFunction)({fn:r.XOR,minArgs:2,maxArgs:-1,distElWise:!1,usage:"scripting"}),iferror:(0,i.systemFunction)({fn:r.IFERROR,minArgs:2,maxArgs:2,distElWise:!1,deferArguments:!0,usage:"scripting"}),iserror:(0,i.systemFunction)({fn:r.ISERROR,minArgs:1,maxArgs:1,distElWise:!1,deferArguments:!0,usage:"scripting"}),if:(0,i.systemFunction)({fn:r.IF,minArgs:2,maxArgs:3,distElWise:!1,deferArguments:!0,returnBoundary:!0,usage:"scripting"}),while:(0,i.systemFunction)({fn:r.WHILE,minArgs:2,maxArgs:2,distElWise:!1,deferArguments:!0,returnBoundary:!0,usage:"scripting"}),for:(0,i.systemFunction)({fn:r.FOR,minArgs:4,maxArgs:4,distElWise:!1,deferArguments:!0,returnBoundary:!0,usage:"scripting"}),each:(0,i.systemFunction)({fn:s.each,minArgs:3,maxArgs:4,distElWise:!1,deferArguments:!0,usage:"scripting"}),let:(0,i.systemFunction)({fn:a.LET,minArgs:3,maxArgs:-1,distElWise:!1,deferArguments:!0,normalizeDeferredArguments:a.normalizeLetArguments,returnBoundary:!0,usage:"scripting"}),block:(0,i.systemFunction)({fn:r.BLOCK,minArgs:-1,maxArgs:-1,distElWise:!1,deferArguments:!0,returnBoundary:!0,usage:"scripting"})})};const i=n(9426),r=n(294),s=n(3812),o=n(1668),a=n(2707)},1668(e,t,n){"use strict";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:g.dataTypes[e.dataType]}));if(!p.Vector.isVector(t))throw new r.UnexpectedDataType((0,r.message)("vectorExpected",{type:g.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:g.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:g.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)||m.ValuesSet.isValuesSet(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:g.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),g=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}},266(e,t,n){"use strict";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)},2707(e,t,n){"use strict";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(m.Token.isToken(t)&&t.type===m.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 u=(0,a.assertPlainVariableAndGetString)(l),m=e[s+1]({excludeValues:i});t.has(u)||n.has(u)||(Object.prototype.hasOwnProperty.call(c.Parser.KNOWN_VALUES,u)?t.set(u,c.Parser.KNOWN_VALUES[u]):n.add(u)),assign(l,m),i.includes(u)||i.push(u)}try{s=e[e.length-1]({excludeValues:i})}catch(e){if(!(0,p.shouldConsumeLocalReturn)()||!p.ReturnSignal.isReturnSignal(e))throw e;s=e.value}}finally{for(const[e,n]of t)c.Parser.KNOWN_VALUES[e]=n;for(const e of n)delete c.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;n=o.Expression.isExpression(t)?(0,a.assertPlainVariableAndGetString)(t):t;return delete c.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(567),c=n(238),m=n(12),p=n(294);function assign(e,t){if(e=o.Expression.create(e),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}));let n;try{n="function"==typeof t?t():"string"==typeof t?c.Parser.parse(t):t}catch(t){if(u.NullSignal.isNullSignal(t))return c.Parser.KNOWN_VALUES[e.value]?.copy()??e;throw t}return c.Parser.KNOWN_VALUES[e.value]=n,n}},8054(e,t,n){"use strict";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()}}},8584(e,t,n){"use strict";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},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),g=n(6099),d=n(8300),h=n(5584),x=n(6105),E=n(5640),y=n(9565);class Polynomial{static defaultOrdering="lex";dataType=d.POLYNOMIAL;expression;isMultivariate;ordering="none";terms;variables;constructor(e,t,n){if(Polynomial.isPolynomial(e))this.expression=e.expression.copy(),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=p.Expression.create(e);if(!p.Expression.isExpression(i))throw new l.UnsupportedOperationError((0,l.message)("unsupportedType",{type:typeof i}));if(!i.isPolynomialLike())throw new l.PolynomialError((0,l.message)("notAPolynomial"));let r,s=!1;(i.value.includes("(")||i.isSum()&&i.getPower().gt("1"))&&(i=(0,u.expand)(i),s=!0),this.expression=i,t?r=t:(r=i.variables(),(0,c.isSorted)(r)||r.sort()),this.variables=r,this.isMultivariate=this.variables.length>1,this.terms=[],(0,m.coeffs)(i,this.variables,void 0,!s).each((e,t)=>{this.terms.push(new E.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,g.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 E.Term(r.copy(),n,t))}}i.order(),i.updateExpression()}return i}static fromArrayCanonicalized(e,t){let n=(0,g.one)();for(const e of t)n=n.times(p.Expression.Variable(e));let i=(0,g.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,d.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 E.Term("1",r,t)}updateExpression(){let e=(0,g.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,g.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,y.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,g.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,g.zero)(),t,this.ordering),r.terms=[];for(const e of i.values())e.coefficient.isZero()||r.terms.push(new E.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 E.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){const t=p.Expression.create(e),n=this.getExpression();let i;if(t.isNUM()&&t.isInteger()&&t.sign()>=0&&!n.hasDecimal())try{const e=t.getMultiplier().numerator,r=[...this.variables],s=(0,x.expressionToIntegerSparsePolynomial)(n,r),o=s.denominator**e;let a=(0,x.sparsePolynomialToExpression)(s.polynomial.pow(e),r);1n!==o&&(a=a.div(p.Expression.Number(o))),i=new Polynomial(a,void 0,this.ordering)}catch{}return i??new Polynomial(n.pow(t),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(E.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{const n=this.getExpression(),i=e.getExpression();let r;if(!n.hasDecimal()&&!i.hasDecimal())try{const t=[...new Set([...this.variables,...e.variables])].sort(),s=(0,x.expressionToIntegerSparsePolynomial)(n,t),o=(0,x.expressionToIntegerSparsePolynomial)(i,t),a=s.denominator*o.denominator;let l=(0,x.sparsePolynomialToExpression)(s.polynomial.multiply(o.polynomial),t);1n!==a&&(l=l.div(p.Expression.Number(a))),r=new Polynomial(l,void 0,this.ordering)}catch{}t=r??new Polynomial(n.times(i),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,g.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},7248(e,t,n){"use strict";t.SparsePolynomial=void 0;const i=n(4703),r=n(551);class SparsePolynomial{termsByKey;variableCount;constructor(e,t=[]){if(!Number.isSafeInteger(e)||e<0)throw new RangeError((0,i.message)("sparseVariableCountInvalid"));this.variableCount=e,this.termsByKey=new Map;for(const n of t){SparsePolynomial.assertExponents(e,n.exponents);const t=n.exponents.map(e=>e),i=Object.freeze(t),r=SparsePolynomial.keyOf(i),s=(this.termsByKey.get(r)?.coefficient??0n)+n.coefficient;0n===s?this.termsByKey.delete(r):this.termsByKey.set(r,Object.freeze({coefficient:s,exponents:i}))}}static assertExponents(e,t){if(t.length!==e)throw new RangeError((0,i.message)("sparseExponentVectorLengthMismatch"));for(const e of t)if("bigint"!=typeof e||e<0n)throw new RangeError((0,i.message)("sparseExponentsNonNegativeBigInt"))}static compareMonomials(e,t,n){if("lex"===n){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]>t[n]?1:-1;return 0}let i=0n,r=0n;for(let n=0;n<e.length;n++)i+=e[n],r+=t[n];if(i!==r)return i>r?1:-1;if("grlex"===n){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]>t[n]?1:-1;return 0}for(let n=e.length-1;n>=0;n--)if(e[n]!==t[n])return e[n]<t[n]?1:-1;return 0}static constant(e,t){return new SparsePolynomial(e,[{coefficient:t,exponents:new Array(e).fill(0n)}])}static keyOf(e){return e.join(",")}static monomial(e,t,n){return new SparsePolynomial(e,[{coefficient:t,exponents:n}])}static variable(e,t){if(!Number.isSafeInteger(t)||t<0||t>=e)throw new RangeError((0,i.message)("sparseVariableIndexOutOfRing"));const n=new Array(e).fill(0n);return n[t]=1n,new SparsePolynomial(e,[{coefficient:1n,exponents:n}])}static zero(e){return new SparsePolynomial(e)}add(e){if(this.variableCount!==e.variableCount)throw new RangeError((0,i.message)("sparseAdditionRingMismatch"));const t=SparsePolynomial.zero(this.variableCount);for(const[e,n]of this.termsByKey)t.termsByKey.set(e,n);for(const[n,i]of e.termsByKey){const e=t.termsByKey.get(n),r=(e?.coefficient??0n)+i.coefficient;0n===r?t.termsByKey.delete(n):void 0!==e&&r===e.coefficient||t.termsByKey.set(n,Object.freeze({coefficient:r,exponents:e?.exponents??i.exponents}))}return t}coefficient(e){return SparsePolynomial.assertExponents(this.variableCount,e),this.termsByKey.get(SparsePolynomial.keyOf(e))?.coefficient??0n}coefficientIn(e,t){if(this.degree(e),t<0n)throw new RangeError((0,i.message)("sparseCoefficientExponentNonNegative"));const n=[];for(const i of this.termsByKey.values()){if(i.exponents[e]!==t)continue;const r=[...i.exponents];r[e]=0n,n.push({coefficient:i.coefficient,exponents:r})}return new SparsePolynomial(this.variableCount,n)}constantTerm(){const e=new Array(this.variableCount).fill(0n);return this.termsByKey.get(SparsePolynomial.keyOf(e))?.coefficient??0n}content(){let e=0n;for(const t of this.termsByKey.values())if(e=(0,r.GCD)(e,t.coefficient),1n===e)break;return e}degree(e){if(!Number.isSafeInteger(e)||e<0||e>=this.variableCount)throw new RangeError((0,i.message)("sparseVariableIndexOutOfRing"));if(this.isZero())return null;let t=0n;for(const n of this.termsByKey.values())n.exponents[e]>t&&(t=n.exponents[e]);return t}derivative(e){this.degree(e);const t=[];for(const n of this.termsByKey.values()){const i=n.exponents[e];if(0n===i)continue;const r=n.exponents.map(e=>e);r[e]=i-1n,t.push({coefficient:n.coefficient*i,exponents:r})}return new SparsePolynomial(this.variableCount,t)}divideByMonomial(e){if(0n===e.coefficient)throw new RangeError((0,i.message)("sparseZeroMonomialDivision"));SparsePolynomial.assertExponents(this.variableCount,e.exponents);const t=[];for(const n of this.termsByKey.values()){if(n.coefficient%e.coefficient!==0n)return null;const i=new Array(this.variableCount);for(let t=0;t<this.variableCount;t++){if(n.exponents[t]<e.exponents[t])return null;i[t]=n.exponents[t]-e.exponents[t]}t.push({coefficient:n.coefficient/e.coefficient,exponents:i})}return new SparsePolynomial(this.variableCount,t)}divideByScalarExact(e){if(0n===e)throw new RangeError((0,i.message)("sparseZeroScalarDivision"));const t=SparsePolynomial.zero(this.variableCount);for(const[n,r]of this.termsByKey){if(r.coefficient%e!==0n)throw new RangeError((0,i.message)("sparseScalarDivisionExact"));t.termsByKey.set(n,Object.freeze({coefficient:r.coefficient/e,exponents:r.exponents}))}return t}divideExact(e,t="lex"){if(this.variableCount!==e.variableCount)throw new RangeError((0,i.message)("sparseDivisionRingMismatch"));const n=e.leadingTerm(t);if(null===n)throw new RangeError((0,i.message)("sparseZeroPolynomialDivision"));let r=SparsePolynomial.zero(this.variableCount),s=new SparsePolynomial(this.variableCount,this.termsByKey.values());for(;!s.isZero();){const i=s.leadingTerm(t);if(null===i)break;const o=SparsePolynomial.monomial(this.variableCount,i.coefficient,i.exponents).divideByMonomial(n);if(null===o)return null;r=r.add(o),s=s.subtract(e.multiply(o))}return r}equals(e){if(this.variableCount!==e.variableCount||this.termCount!==e.termCount)return!1;for(const[t,n]of this.termsByKey)if(e.termsByKey.get(t)?.coefficient!==n.coefficient)return!1;return!0}evaluateVariable(e,t){this.degree(e);const n=SparsePolynomial.zero(this.variableCount);for(const[i,r]of this.termsByKey){const s=r.exponents[e];let o=0;for(let t=0;t<e;t++)o=i.indexOf(",",o)+1;const a=i.indexOf(",",o),l=-1===a?i.length:a,u=i.slice(0,o)+"0"+i.slice(l),c=n.termsByKey.get(u),m=r.coefficient*t**s,p=(c?.coefficient??0n)+m;if(0n===p)n.termsByKey.delete(u);else if(void 0!==c)p!==c.coefficient&&n.termsByKey.set(u,Object.freeze({coefficient:p,exponents:c.exponents}));else if(0n!==m)if(0n===s)n.termsByKey.set(u,r);else{const t=[...r.exponents];t[e]=0n,n.termsByKey.set(u,Object.freeze({coefficient:p,exponents:Object.freeze(t)}))}}return n}evaluateVariables(e,t){if(e.length!==t.length)throw new RangeError((0,i.message)("wrongInput",{expected:`${e.length} evaluation values`,received:`${t.length}`}));if(0===e.length)return this;const n=new Set;for(const t of e){if(this.degree(t),n.has(t))throw new RangeError((0,i.message)("wrongInput",{expected:"unique evaluation variables",received:"duplicate variable index"}));n.add(t)}const r=SparsePolynomial.zero(this.variableCount);for(const[n,i]of this.termsByKey){let s=i.coefficient,o=!1;for(let n=0;n<e.length;n++){const r=e[n],a=i.exponents[r];if(0n===a)continue;o=!0;const l=t[n];if(0n===l){s=0n;break}1n!==l&&(-1n!==l?s*=l**a:1n==(1n&a)&&(s=-s))}if(0n===s)continue;let a=n,l=i.exponents;if(o){const t=[...i.exponents];for(const n of e)t[n]=0n;l=Object.freeze(t),a=SparsePolynomial.keyOf(l)}const u=r.termsByKey.get(a),c=(u?.coefficient??0n)+s;0n===c?r.termsByKey.delete(a):void 0===u?r.termsByKey.set(a,o||s!==i.coefficient?Object.freeze({coefficient:s,exponents:l}):i):c!==u.coefficient&&r.termsByKey.set(a,Object.freeze({coefficient:c,exponents:u.exponents}))}return r}isConstant(){if(this.isZero())return!0;if(1!==this.termsByKey.size)return!1;const e=this.termsByKey.values().next().value;return void 0!==e&&e.exponents.every(e=>0n===e)}isZero(){return 0===this.termsByKey.size}leadingCoefficientIn(e){const t=this.degree(e);return null===t?null:this.coefficientIn(e,t)}leadingTerm(e="lex"){if("lex"!==e&&"grlex"!==e&&"grevlex"!==e)throw new RangeError((0,i.message)("sparseMonomialOrderUnsupported"));let t=null;for(const n of this.termsByKey.values())(null===t||SparsePolynomial.compareMonomials(n.exponents,t.exponents,e)>0)&&(t=n);return t}mapCoefficients(e){const t=SparsePolynomial.zero(this.variableCount);for(const[n,i]of this.termsByKey){const r=e(i.coefficient);0n!==r&&t.termsByKey.set(n,r===i.coefficient?i:Object.freeze({coefficient:r,exponents:i.exponents}))}return t}maxAbsoluteCoefficient(){let e=0n;for(const t of this.termsByKey.values()){const n=t.coefficient<0n?-t.coefficient:t.coefficient;n>e&&(e=n)}return e}multiply(e){if(this.variableCount!==e.variableCount)throw new RangeError((0,i.message)("sparseMultiplicationRingMismatch"));if(this.isZero()||e.isZero())return SparsePolynomial.zero(this.variableCount);const t=[];for(const n of this.termsByKey.values())for(const i of e.termsByKey.values()){const e=new Array(this.variableCount);for(let t=0;t<this.variableCount;t++)e[t]=n.exponents[t]+i.exponents[t];t.push({coefficient:n.coefficient*i.coefficient,exponents:e})}return new SparsePolynomial(this.variableCount,t)}monomialScaleSubtract(e,t,n,r,s){if(this.variableCount!==n.variableCount)throw new RangeError((0,i.message)("sparseSubtractionRingMismatch"));SparsePolynomial.assertExponents(this.variableCount,t),SparsePolynomial.assertExponents(this.variableCount,s);const o=SparsePolynomial.zero(this.variableCount),accumulate=(e,t,n)=>{if(0n!==t)for(const i of e.termsByKey.values()){const e=new Array(this.variableCount);for(let t=0;t<this.variableCount;t++)e[t]=i.exponents[t]+n[t];const r=Object.freeze(e),s=SparsePolynomial.keyOf(r),a=o.termsByKey.get(s),l=(a?.coefficient??0n)+i.coefficient*t;0n===l?o.termsByKey.delete(s):o.termsByKey.set(s,Object.freeze({coefficient:l,exponents:a?.exponents??r}))}};return accumulate(this,e,t),accumulate(n,-r,s),o}scaleSubtractMonomial(e,t,n,r){if(this.variableCount!==t.variableCount)throw new RangeError((0,i.message)("sparseSubtractionRingMismatch"));SparsePolynomial.assertExponents(this.variableCount,r);const s=SparsePolynomial.zero(this.variableCount);if(0n!==e)for(const[t,n]of this.termsByKey){const i=n.coefficient*e;0n!==i&&s.termsByKey.set(t,Object.freeze({coefficient:i,exponents:n.exponents}))}if(0n===n)return s;for(const e of t.termsByKey.values()){const t=new Array(this.variableCount);for(let n=0;n<this.variableCount;n++)t[n]=e.exponents[n]+r[n];const i=Object.freeze(t),o=SparsePolynomial.keyOf(i),a=s.termsByKey.get(o),l=(a?.coefficient??0n)-e.coefficient*n;0n===l?s.termsByKey.delete(o):s.termsByKey.set(o,Object.freeze({coefficient:l,exponents:a?.exponents??i}))}return s}negate(){return this.scale(-1n)}normalizeLeadingSign(e="lex"){const t=this.leadingTerm(e);return null!==t&&t.coefficient<0n?this.negate():this}pow(e){if(e<0n)throw new RangeError((0,i.message)("sparseExponentNonNegative"));let t=SparsePolynomial.constant(this.variableCount,1n),n=e;if(0n===n)return t;if(1n==(1n&n)&&(t=t.multiply(this)),n>>=1n,0n===n)return t;let r=this.multiply(this);for(;n>0n;)1n==(1n&n)&&(t=t.multiply(r)),n>>=1n,n>0n&&(r=r.multiply(r));return t}primitivePart(){const e=this.content();return 0n===e||1n===e?this:this.divideByScalarExact(e)}scale(e){if(0n===e||this.isZero())return SparsePolynomial.zero(this.variableCount);const t=SparsePolynomial.zero(this.variableCount);for(const[n,i]of this.termsByKey)t.termsByKey.set(n,Object.freeze({coefficient:i.coefficient*e,exponents:i.exponents}));return t}subtract(e){if(this.variableCount!==e.variableCount)throw new RangeError((0,i.message)("sparseSubtractionRingMismatch"));const t=SparsePolynomial.zero(this.variableCount);for(const[e,n]of this.termsByKey)t.termsByKey.set(e,n);for(const[n,i]of e.termsByKey){const e=t.termsByKey.get(n),r=(e?.coefficient??0n)-i.coefficient;0n===r?t.termsByKey.delete(n):void 0!==e&&r===e.coefficient||t.termsByKey.set(n,Object.freeze({coefficient:r,exponents:e?.exponents??i.exponents}))}return t}get termCount(){return this.termsByKey.size}terms(){return Array.from(this.termsByKey.values())}totalDegree(){if(this.isZero())return null;let e=0n;for(const t of this.termsByKey.values()){let n=0n;for(const e of t.exponents)n+=e;n>e&&(e=n)}return e}variables(){const e=new Set;for(const t of this.termsByKey.values())for(let n=0;n<this.variableCount;n++)0n!==t.exponents[n]&&e.add(n);return Array.from(e).sort((e,t)=>e-t)}}t.SparsePolynomial=SparsePolynomial},6105(e,t,n){"use strict";t.expressionToSparsePolynomial=function expressionToSparsePolynomial(e){const t=e.variables().sort(),n=new Map(t.map((e,t)=>[e,t]));function powerOf(e){const t=e.getPower();if(!t.isInteger()||t.sign()<0)throw new i.PolynomialError((0,i.message)("notAPolynomial"));return t.getMultiplier().numerator}function integerMultiplier(e){const t=e.getMultiplier();if(1n!==t.denominator)throw new Error((0,i.message)("integerRequired"));return t.numerator}const r=function convert(e){const r=t.length;if(e.isNUM())return a.SparsePolynomial.constant(r,integerMultiplier(e));if(e.isVAR()){const t=n.get(e.value);if(void 0===t)throw new i.PolynomialError((0,i.message)("notAPolynomial"));const s=new Array(r).fill(0n);return s[t]=powerOf(e),a.SparsePolynomial.monomial(r,integerMultiplier(e),s)}if(e.isSum()){let t=a.SparsePolynomial.zero(r);for(const n of e.elementsArray())t=t.add(convert(n));return t.pow(powerOf(e)).scale(integerMultiplier(e))}if(e.isProduct()){let t=a.SparsePolynomial.constant(r,1n);for(const n of e.elementsArray())t=t.multiply(convert(n));return t.pow(powerOf(e)).scale(integerMultiplier(e))}throw new i.PolynomialError((0,i.message)("notAPolynomial"))}(e),s=t.map((e,t)=>({variable:e,index:t,degree:r.degree(t)??0n})).sort((e,t)=>e.degree<t.degree?-1:e.degree>t.degree?1:e.variable.localeCompare(t.variable)),o=s.map(e=>e.variable);if(s.every((e,t)=>e.index===t))return{polynomial:r,variables:o};const l=r.terms().map(e=>({coefficient:e.coefficient,exponents:s.map(t=>e.exponents[t.index])}));return{polynomial:new a.SparsePolynomial(r.variableCount,l),variables:o}},t.expressionToIntegerSparsePolynomial=expressionToIntegerSparsePolynomial,t.sparsePolynomialToExpression=function sparsePolynomialToExpression(e,t){if(t.length!==e.variableCount)throw new RangeError((0,i.message)("sparseExpressionConversionNameCount"));let n=(0,o.zero)();for(const i of e.terms()){let e=s.Expression.Number(i.coefficient);for(let n=0;n<t.length;n++){const r=i.exponents[n];if(0n===r)continue;const o=s.Expression.Variable(t[n]);e=e.times(1n===r?o:o.pow(s.Expression.Number(r)))}n=n.plus(e)}return n};const i=n(4703),r=n(551),s=n(296),o=n(6099),a=n(7248);function expressionToIntegerSparsePolynomial(e,t){const n=new Set;for(const e of t){if(n.has(e))throw new RangeError((0,i.message)("sparseAdapterVariablesUnique"));n.add(e)}for(const t of e.variables())if(!n.has(t))throw new RangeError((0,i.message)("sparseAdapterVariablesIncludeEvery"));const s=t.length,o=new Map(t.map((e,t)=>[e,t]));function powerOf(e){const t=e.getPower();if(!t.isInteger()||t.sign()<0)throw new i.PolynomialError((0,i.message)("notAPolynomial"));return t.getMultiplier().numerator}function normalize(e,t){if(e.isZero())return{polynomial:e,denominator:1n};const n=(0,r.GCD)(e.content(),t);return 1n===n?{polynomial:e,denominator:t}:{polynomial:e.divideByScalarExact(n),denominator:t/n}}function applyPowerAndMultiplier(e,t,n){const i=powerOf(e),r=e.getMultiplier();return normalize(t.pow(i).scale(r.numerator),n**i*r.denominator)}const l=function convert(e){const t=e.getMultiplier();if(e.isNUM())return normalize(a.SparsePolynomial.constant(s,t.numerator),t.denominator);if(e.isVAR()){const n=o.get(e.value);if(void 0===n)throw new i.PolynomialError((0,i.message)("notAPolynomial"));const r=new Array(s).fill(0n);return r[n]=powerOf(e),normalize(a.SparsePolynomial.monomial(s,t.numerator,r),t.denominator)}if(e.isSum()){let t=a.SparsePolynomial.zero(s),n=1n;for(const i of e.elementsArray()){const e=convert(i),s=(0,r.LCM)(n,e.denominator);t=t.scale(s/n).add(e.polynomial.scale(s/e.denominator)),n=s}return applyPowerAndMultiplier(e,t,n)}if(e.isProduct()){let t=a.SparsePolynomial.constant(s,1n),n=1n;for(const i of e.elementsArray()){const e=convert(i);t=t.multiply(e.polynomial),n*=e.denominator}return applyPowerAndMultiplier(e,t,n)}throw new i.PolynomialError((0,i.message)("notAPolynomial"))}(e),u=[...l.polynomial.terms()].sort((e,t)=>-a.SparsePolynomial.compareMonomials(e.exponents,t.exponents,"lex"));return{polynomial:new a.SparsePolynomial(s,u),denominator:l.denominator}}function polynomialToIntegerSparsePolynomial(e,t){return expressionToIntegerSparsePolynomial(e.getExpression(),t)}},5640(e,t,n){"use strict";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(this.coeff.copy(),{...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=this.coeff.copy();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},1808(e,t,n){"use strict";t.loadPolynomialFunctions=function loadPolynomialFunctions(){Object.assign(i.mathFunctionRegistry,{deg:(0,i.systemFunction)({fn:r.deg,minArgs:1,maxArgs:2,distElWise:!0}),content:(0,i.systemFunction)({fn:r.content,minArgs:1,maxArgs:1,distElWise:!0}),coeffs:(0,i.systemFunction)({fn:r.coeffs,minArgs:1,maxArgs:2,distElWise:!1}),div:(0,i.systemFunction)({fn:r.div,minArgs:2,maxArgs:2,distElWise:!1}),divide:(0,i.systemFunction)({fn:r.divide,minArgs:2,maxArgs:2,distElWise:!1})})};const i=n(9426),r=n(6913)},6913(e,t,n){"use strict";t.deg=function deg(e,t){let n,r;void 0!==t&&(n=i.Expression.create(t),r=(0,s.assertPlainVariableAndGetString)(n));let a;if(l.Polynomial.isPolynomial(e))a=i.Expression.create(e.deg(r));else{const t=i.Expression.create(e);try{const e=t.variables().sort(),n=(0,u.expressionToIntegerSparsePolynomial)(t,e);let s;if(void 0===r)s=n.polynomial.totalDegree()??0n;else{const t=e.indexOf(r);s=-1===t?0n:n.polynomial.degree(t)??0n}a=i.Expression.Number(s)}catch{try{a=i.Expression.create(new l.Polynomial(t).deg(r))}catch{}}}const c=l.Polynomial.isPolynomial(e)?e.getExpression():e,m=void 0===n?[c]:[c,n];return a??i.Expression.toFunction(o.DEG,m)},t.content=function content(e){let t;if(l.Polynomial.isPolynomial(e))t=i.Expression.create(e.content());else{const n=i.Expression.create(e);try{if(n.isZero())t=i.Expression.create(new l.Polynomial(n).content());else{const e=n.variables().sort(),r=(0,u.expressionToIntegerSparsePolynomial)(n,e);t=i.Expression.Number(r.polynomial.content()).div(i.Expression.Number(r.denominator)),t.getMultiplier().asDecimal=n.hasDecimal()}}catch{try{t=i.Expression.create(new l.Polynomial(n).content())}catch{}}}return t??i.Expression.toFunction(o.CONTENT,[l.Polynomial.isPolynomial(e)?e.getExpression():e])},t.coeffs=function coeffs(e,t){const n=i.Expression.create(e);let r;r=void 0!==t?(0,s.assertPlainVariableAndGetString)(i.Expression.create(t)):n.variables()[0];return void 0===r?new a.Vector([n.copy()]):n.coeffs(r).toVector()},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,c.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,c.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(6105),c=n(9565)},9565(e,t,n){"use strict";t.divide=divide,t.polyMod=function polyMod(e,t,n,i){const{variables:r}=normalizePolynomialInputs([e,t],n,i),[,s]=divide(e,t,n,r);return o.Polynomial.toPolynomial(s,n,r).order(n)},t.maxCommonVariableOccurrence=function maxCommonVariableOccurrence(e,t){const n=o.Polynomial.toPolynomial(e).maxVariableFrequency(),i=o.Polynomial.toPolynomial(t).maxVariableFrequency();for(const e in n)if(e in i)return e};const i=n(4703),r=n(5869),s=n(6099),o=n(2116);function normalizePolynomialInputs(e,t,n){const i=e.map(e=>o.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=>o.Polynomial.toPolynomial(e,t,r)),variables:r}}function polyDiv(e,t,n,r){const{polynomials:o}=normalizePolynomialInputs([...e,t],n,r),a=o.slice(0,e.length);let l=o[e.length].order(n);const u=e.map(()=>(0,s.zero)());let c=(0,s.zero)(),m=0;const p=1e3*e.length;for(;!l.isZero();){if(m++>p)throw new Error((0,i.message)("polynomialMaximumIterations"));let e=!1;const t=a.length;let r=0;for(;r<t&&!e;){const t=a[r],i=t.LT(),s=l.LT();if(i.divides(s)){const o=s.div(i);u[r]=u[r].plus(o.getExpression()),l=l.minus(t.times(o)).order(n),e=!0}else r++}const s=l.LT();e||(c=c.plus(s.getExpression()),l=l.minus(s).order(n))}return[u,c]}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,r.arrayAddUnique)(t,e.variables)}),t.sort(),t}},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=t.MAX_SCIENTIFIC_SIGNIFICANT_DIGITS=void 0,t.validateScientificSignificantDigits=validateScientificSignificantDigits;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);function validateScientificSignificantDigits(e,n=String(e)){if("number"!=typeof e||!Number.isInteger(e)||e<1||e>t.MAX_SCIENTIFIC_SIGNIFICANT_DIGITS)throw new o.UnexpectedInputError((0,o.message)("wrongInput",{expected:`an integer from 1 to ${t.MAX_SCIENTIFIC_SIGNIFICANT_DIGITS}`,received:n}));return e}t.MAX_SCIENTIFIC_SIGNIFICANT_DIGITS=1e9;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 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?e.copy():e}abs(){const e=this.copy();return e.numerator=(0,a.abs)(e.numerator),e.updateValue(),e}copy(){const e=new Rational(this.numerator,this.denominator);return e.value=this.value,e.asDecimal=this.asDecimal,e}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,n;const i=this.isInteger(),s=i?(this.numerator<0n?-this.numerator:this.numerator).toString().length:0,o=!0===e?.exactScientific,a=e&&"scientific"in e&&void 0!==e.scientific?validateScientificSignificantDigits(e.scientific):void 0;if(void 0!==a)if(this.isZero())n="0";else{const e=r.default.precision,t=Math.max(e,a);try{t!==e&&r.default.set({precision:t});const l=this.toDecimal().toExponential(a-1),[u,c]=l.split("e"),m=BigInt(c),p=0n===m?u:`${u}e${m}`;(!o||i&&s>a&&0n!==m&&Rational.create(p).eq(this))&&(n=p)}finally{r.default.precision!==e&&r.default.set({precision:e})}}if(void 0!==n)t=n;else if(this.asDecimal||e?.decimal)if(i)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=i?`${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";t.ValuesSet=void 0;const i=n(6746),r=n(6441),s=n(4703),o=n(296),a=n(8300);class ValuesSet extends i.MathematicalAggregate{_elements=[];dataType=a.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,a.SET)||(0,r.isNerdamerNativeType)(e,a.SOLUTIONS_SET)}addKnownUnique(e){this._elements.push(e.copy())}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((0,s.message)("indexOutOfBounds",{index:String(t),type:String(this.dataType),length:String(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((0,s.message)("indexOutOfBounds",{index:String(n),type:String(this.dataType),length:String(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(e){return this.copy().each(t=>o.Expression.isExpression(t)?t.evaluate(e):t.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},3982(e,t,n){"use strict";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((0,o.message)("indexOutOfBounds",{index:String(t),type:"Vector",length:String(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},1027(e,t,n){"use strict";t.loadVectorFunctions=function loadVectorFunctions(){Object.assign(i.mathFunctionRegistry,{dot:(0,i.systemFunction)({fn:r.dot,minArgs:2,maxArgs:2,distElWise:!1}),cross:(0,i.systemFunction)({fn:r.cross,minArgs:2,maxArgs:2,distElWise:!1})})};const i=n(9426),r=n(3552)},3552(e,t,n){"use strict";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)},6746(e,t,n){"use strict";t.MathematicalAggregate=void 0;const i=n(4703),r=n(8505);class MathematicalAggregate extends r.StructuredEntity{__get__(e){const t=e[0];if(t<0||t>=this.elements.length)throw new RangeError((0,i.message)("indexOutOfBounds",{index:String(t),type:String(this.dataType),length:String(this.elements.length)}));return this.elements[t]}__set__(e,t){const n=e[0];if(n<0||n>=this.elements.length)throw new RangeError((0,i.message)("indexOutOfBounds",{index:String(n),type:String(this.dataType),length:String(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},2809(e,t,n){"use strict";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},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)}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;if(this.symbolicAccessor&&this.symbolicAccessor.length>0){t=`${this.symbolicTarget?this.symbolicTarget.text():e}[${this.symbolicAccessor.map(e=>e.text()).join(", ")}]`}return 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}}},6441(e,t){"use strict";t.ASSERTIVE_FUNCTIONS=t.operators=t.brackets=void 0,t.isNerdamerNativeType=function isNerdamerNativeType(e,t){let n=!1;"object"==typeof e&&null!==e&&"dataType"in e&&(n=e.dataType===t);return 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,deferRHSResolution:!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"]},9725(e,t,n){"use strict";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)},4861(e,t,n){"use strict";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};const i=n(296);function isEnumerable(e){return void 0!==e&&!!e.isEnumerable}},5190(e,t,n){"use strict";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=e.copy();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,g=BaseConverter.join(a,u,p||!this.isBracketed(u)||m?r:"");let d=BaseConverter.join(l,c,p||!this.isBracketed(c)||m?r:"");if(l&&c&&this.mode===BaseConverter.modes.TEXT&&(d=this.inBrackets(d)),g&&d){let e=this.toFraction(g,d);return s&&o&&(e=this.inBrackets(e)+o),e}return g}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),g=["",""];g[s?1:0]=p;const d=(o?"-":"")+this.set(l,m,g,c);return this.cleanup(),d.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},7130(e,t,n){"use strict";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),g=n(9426),d=n(4703),h=n(5190),{TeX:x,TEXT:E}=h.BaseConverter.modes;class Converter extends h.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===h.BaseConverter.modes.TEXT&&r.eq((0,s.two)()))return[(0,s.one)(),h.BaseConverter.convertSQRT(t)];if(this.mode===h.BaseConverter.modes.TeX)return[(0,s.one)(),h.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===E?`${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((0,d.message)("converterMissingArgumentScope",{function:s.value}));let u=[];if(o.length>0){const e=g.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}`)),h=this.getFunctionName(s.value);let x;if(s.value===r.Expression.LOG&&2===u.length){const e=this.formatTeXFunction(r.Expression.LOG,h,[c[0]],[m[0]]),t=this.formatTeXFunction(r.Expression.LOG,h,[c[1]],[m[1]]);x=this.toFraction(e,t)}else x="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,h,c,m):this.formatTeXFunction(s.value,h,c,[r.Expression.create(u[0].source)]);n.push({text:x,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((0,d.message)("converterMissingPrefixOperand",{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((0,d.message)("converterMissingOperandMetadata",{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((0,d.message)("converterMissingLeftOperand",{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((0,d.message)("converterTexConversionFailed"));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])}`,log10:()=>`\\mathrm${this.inBraces(r.Expression.LOG)}_${this.inBraces("10")}${this.inBrackets(n[0])}`,exp:std,gamma:()=>`\\Gamma${this.inBrackets(n[0])}`,gamma_incomplete:()=>`\\Gamma${this.inBrackets(n.join(","),"parens")}`,gamma_incomplete_lower:()=>`\\gamma${this.inBrackets(n.join(","),"parens")}`,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===h.BaseConverter.modes.TeX&&this.greek.includes(e)&&(e=`\\${e}`),t>0?this.inBraces(e):e)).join("_")}getFunctionName(e){if(this.mode!==x)return e;return`\\${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?this.inBrackets(i,"parens"):i}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===x&&!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},2292(e,t,n){"use strict";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(r.Expression.create(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},9426(e,t){"use strict";t.mathFunctionRegistry=void 0,t.systemFunction=function systemFunction(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={}},4703(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ErrorMessages=t.EnglishErrorMessages=t.AssignmentError=t.ZeroToZeroPowerError=t.MissingReferenceError=t.NotImplementedError=t.DimensionError=t.NaNError=t.MathError=t.ParserSyntaxError=t.UnsupportedOperationError=t.PolynomialError=t.UndefinedError=t.NullError=t.ParserError=t.OperatorError=t.DivisionByZeroError=t.UnexpectedInputError=t.UnexpectedDataType=t.UnexpectedTokenError=void 0,t.registerLanguage=function registerLanguage(e,n){t.ErrorMessages[e]=n},t.message=function message(e,n){const s=t.ErrorMessages[r.Settings.LANGUAGE]??t.ErrorMessages.eng;return(0,i.format)(s[e],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 NullError extends Error{}t.NullError=NullError;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.EnglishErrorMessages={notImplemented:"This method has not yet been implemented.",noInverse:"Unable to calculate inverse!",undefinedValue:"The requested value is undefined!",nullValue:"Value expected but received null.",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}}.",unsupportedFunction:"Unsupported function {{function}}",functionMinArgs:"{{function}} requires a minimum of {{min}} arguments but {{actual}} provided!",functionMaxArgs:"{{function}} allows a maximum of {{max}} arguments but {{actual}} provided!",invalidFunctionDeclaration:"Invalid function declaration {{declaration}}.",indexOutOfBounds:"Index {{index}} out of bounds for {{type}} of length {{length}}",matrixRowIndexOutOfBounds:"Row index {{index}} out of bounds for Matrix with {{length}} rows",matrixColumnIndexOutOfBounds:"Column index {{index}} out of bounds for Matrix with {{length}} columns",dictionaryKeyNotFound:'Key "{{key}}" not found in Dictionary. Available keys: {{keys}}',rangeValuesFinite:"Range values must be finite.",rangeStepNonzero:"Step cannot be zero",rangeStepNoAdvance:"Step does not advance range at current precision",sparseVariableCountInvalid:"SparsePolynomial variableCount must be a non-negative safe integer.",sparseExponentVectorLengthMismatch:"SparsePolynomial exponent vector length must equal variableCount.",sparseExponentsNonNegativeBigInt:"SparsePolynomial exponents must be non-negative bigints.",sparseVariableIndexOutOfRing:"SparsePolynomial variable index is outside the polynomial ring.",sparseAdditionRingMismatch:"SparsePolynomial addition requires the same polynomial ring.",sparseCoefficientExponentNonNegative:"SparsePolynomial coefficient exponent must be non-negative.",sparseZeroMonomialDivision:"SparsePolynomial cannot divide by a zero monomial.",sparseZeroScalarDivision:"SparsePolynomial cannot divide by zero.",sparseScalarDivisionExact:"SparsePolynomial scalar division must be exact for every coefficient.",sparseDivisionRingMismatch:"SparsePolynomial division requires the same polynomial ring.",sparseZeroPolynomialDivision:"SparsePolynomial cannot divide by the zero polynomial.",sparseMonomialOrderUnsupported:"SparsePolynomial monomial order is not supported.",sparseMultiplicationRingMismatch:"SparsePolynomial multiplication requires the same polynomial ring.",sparseExponentNonNegative:"SparsePolynomial exponent must be non-negative.",sparseSubtractionRingMismatch:"SparsePolynomial subtraction requires the same polynomial ring.",invalidDecimal:'Invalid Decimal: "{{value}}"',invalidInterval:"Invalid interval: ({{start}}, {{end}})",invalidAssumption:'Invalid assumption: "{{input}}"',assumptionIdentifierExpected:"Expected identifier",assumptionOperatorMissing:"Missing operator",assumptionValueMissing:"Missing value",assumptionOperatorUnsupported:'Unsupported operator "{{operator}}"',matrixStringKeyUnsupported:"Matrix does not support string key access",matrixTraceUnavailable:"Unable to calculate trace for the matrix",defintMaxEvals:"defint: maxEvals exceeded ({{max}}).",defintNonFiniteValue:"defint: non-finite f(x) at x={{x}}",defintEndpointSingularity:"defint: endpoint singularity could not be regularized near x={{x}}",defintSingularity:"defint: singular/non-finite encountered near [{{a}}, {{b}}]",defintInfiniteBounds:"defint: infinite bounds require allowInfinite: true",defintUnsupportedInfiniteBounds:"defint: unsupported infinite bound configuration",symbolicAccessNamedTargetRequired:"Symbolic indexed access requires a named Vector or Matrix target.",symbolicVectorIndexCount:"Symbolic Vector access requires exactly one index.",symbolicMatrixRowNonScalar:"Symbolic Matrix row access is not scalar and cannot be deferred as an Expression.",symbolicMatrixCellIndexCount:"Symbolic Matrix cell access requires exactly two indices.",symbolicAccessMaxIndices:"Symbolic indexed access supports at most two unresolved indices.",symbolicAccessIndexScalar:"Symbolic accessor indices must evaluate to scalar expressions.",symbolicAccessTargetType:"Symbolic indexed access target must resolve to a Vector or Matrix.",expectedOperatorOrFunction:'Expected operator or function name but "{{value}}" found!',missingOpeningBracket:'Missing opening bracket for "{{bracket}}":{{position}}',missingClosingBracket:'Missing closing bracket for "{{bracket}}":{{position}}',prefixOperatorExpected:"Prefix operator expected but {{operator}} encountered.",groebnerBasisSizeBudgetExceeded:"Groebner budget exceeded: basis size > {{max}}",groebnerPairsBudgetExceeded:"Groebner budget exceeded: pairsPopped > {{max}}",unsupportedParserEntity:"Unsupported parser entity",factorialNegativeUndefined:"Factorial is undefined for negative integers.",erfConvergenceFailed:"erf not converging. Exiting!",defintInfiniteBoundsDecimal:"defint: infinite bounds require allowInfinite:true",seqStartsAtInteger:"startsAt must be an integer",seqPolynomialOrMaxPower:"Sequence is not a polynomial or exceeds maxPower",seqInsufficientData:"Insufficient data points for detected degree",arithPowNegativeExponent:"pow: negative exponent",arithPowNNonnegativeInteger:"powN: exponent must be a nonnegative integer",arithBigIntSqrtNegative:"bigIntSqrt: negative input",arithNthRootPositiveInteger:"intNthRootExact: n must be a positive integer",arithDivisorsPositive:"getDivisors: n must be positive",arithModNormNonzeroModulus:"modNorm: modulus must be nonzero",arithModSymmetricNonzeroModulus:"modSymmetric: modulus must be nonzero",arithModInvZeroNoninvertible:"modInv: non-invertible (0)",arithModInvNoninvertible:"modInv: non-invertible",integerSqrtNonnegative:"Integer square root requires a non-negative value.",modularExponentiationPositiveModulus:"Modular exponentiation requires a positive modulus.",modularExponentiationNonnegativeExponent:"Modular exponentiation requires a non-negative exponent.",maxBigIntRequiresArgument:"maxBigInt() requires at least one argument",minBigIntEmpty:"Min of empty list is not defined for BigInt.",binomBigIntNonnegativeN:"binomBigInt: n must be non-negative",invalidDecimalValue:"Invalid decimal value: {{value}}",subtractionNotDefined:"Subtraction not defined for {{leftType}}-{{rightType}} | {{left}}-{{right}}",sparseAdapterVariablesUnique:"Sparse polynomial adapter variables must be unique.",sparseAdapterVariablesIncludeEvery:"Sparse polynomial adapter variables must include every polynomial variable.",sparseExpressionConversionNameCount:"Sparse polynomial expression conversion requires one name per ring variable.",converterMissingArgumentScope:"Missing argument scope for function {{function}}",converterMissingPrefixOperand:"Missing operand for prefix operator {{operator}}",converterMissingOperandMetadata:"Missing operand or metadata for operator {{operator}}",converterMissingLeftOperand:"Missing left operand for operator {{operator}}",converterTexConversionFailed:"Unable to convert source expression to TeX",unknownOperator:"Unknown operator {{operator}}",polynomialMaximumIterations:"Maximum iterations reached",polyRequires:"{{operation}} requires {{requirement}}.",polyVariablesUnique:"{{operation}} variables must be unique.",polyVariablesRingOrder:"{{operation}} variables must follow polynomial-ring order.",polyVariablesIncludeActive:"{{operation}} variables must include every active variable.",polyInputsSelectedOnly:"{{operation}} inputs may use only the selected variables.",polyCannotFactorZeroPolynomial:"{{operation}} cannot factor the zero polynomial.",polyCannotFactorZero:"{{operation}} cannot factor zero.",polyModulusGreaterThanOne:"ModularSparsePolynomial modulus must be greater than one.",polyVariableCountMatch:"ModularSparsePolynomial variableCount must match the supplied sparse polynomial.",polyInterpolationCannotDepend:"ModularSparsePolynomial interpolation samples cannot depend on the interpolated variable.",polyInterpolationInvertibleDifferences:"ModularSparsePolynomial interpolation points must have invertible pairwise differences.",polyCoefficientExponentNonnegative:"ModularSparsePolynomial coefficient exponent must be non-negative.",polyCannotDivideZero:"ModularSparsePolynomial cannot divide by the zero polynomial.",polyDivisorLeadingCoefficientInvertible:"ModularSparsePolynomial divisor leading coefficient is not invertible.",polyLeadingCoefficientInvertible:"ModularSparsePolynomial leading coefficient is not invertible.",polyExponentNonnegative:"ModularSparsePolynomial exponent must be non-negative.",polyDegreeMatrixLimit:"Modular factorization degree exceeds the supported matrix dimension.",polyExtendedGcdTwoZeroUndefined:"Modular extended GCD is undefined for two zero polynomials.",polyHenselPrimeExceedsTailDegree:"Multivariate Hensel lifting prime must exceed every tail-variable degree.",polyHenselTargetNotSmaller:"Hensel lifting target modulus cannot be smaller than the base prime.",polyHenselTargetRepeatedSquaring:"Hensel lifting target modulus must be obtained by repeated squaring of the base prime.",polyHenselFactorsReconstructModuloBase:"Hensel lifting factors do not reconstruct the integer polynomial modulo the base prime.",polyZassenhausFactorsReconstructModuloLift:"Zassenhaus recombination factors do not reconstruct the input modulo the lift modulus.",polyWangCannotSpecializeZero:"Wang evaluation search cannot specialize zero.",polyModularContentExactDivision:"Modular polynomial content must divide the polynomial exactly.",factorizationNoFactors:"Nonconstant factorization returned no factors.",polyCrtModuliInvertible:"Polynomial CRT moduli must be invertible.",polyIntegerFactorPrimeZero:"Integer factorization cannot choose a prime for zero.",polySquareFreeNonExactDivision:"Square-free factorization encountered a non-exact polynomial division.",polyZassenhausLostRemaining:"Zassenhaus recombination lost the remaining polynomial.",polyZassenhausReconstructionFailed:"Zassenhaus recombination factors do not reconstruct the integer polynomial.",polyIntegerFactorLostLeading:"Integer factorization lost the leading term.",parserMalformedSymbolicAccessor:"Malformed internal symbolic accessor.",parserMalformedSymbolicAccessorIndex:"Malformed internal symbolic accessor index.",unknownOperatorAction:"Unknown operator action {{action}}",parserBracketTokenMissingCharacter:"Bracket token is missing its character.",polyWangLeadingEvaluationInteger:"Wang leading-coefficient evaluation did not produce an integer.",polyWangSpecializedLeadingInteger:"Wang specialized factor did not have an integer leading coefficient.",polyMultivariateContentDivisionFailed:"Multivariate factorization could not divide a square-free block by its main-variable content.",polyMultivariateContentVariableMissing:"Multivariate main-variable content did not retain an active coefficient variable.",polyMultivariateReconstructionFailed:"Complete multivariate factorization does not reconstruct the input polynomial.",polyBerlekampNoninvertiblePivot:"Berlekamp elimination encountered a noninvertible pivot.",polyHenselZeroFactorGroup:"Hensel lifting cannot lift a zero factor group.",polyHenselCannotLiftZero:"Hensel lifting cannot lift the zero polynomial.",polyHenselModulusExceeded:"Hensel lifting exceeded the requested prime-power modulus.",polyHenselLeadingLost:"Hensel lifting lost the target leading coefficient.",polyHenselReconstructionFailed:"Hensel-lifted factors do not reconstruct the target polynomial.",polyBerlekampNonExactSplit:"Berlekamp splitting produced a non-exact factor division.",polyBerlekampIncompleteSplit:"Berlekamp factorization did not fully split the polynomial.",polyBerlekampReconstructionFailed:"Berlekamp factors do not reconstruct the input polynomial.",expressionKeyValueUnsupported:"The function 'keyValue' is not implemented for type {{type}}.",solveLinearNonlinearDegree:"Nonlinear term detected in equation {{equation}}: degree {{degree}} term found. solveLinearSystem only handles linear systems.",solveLinearNonPolynomialVariable:'Nonlinear term detected in equation {{equation}}: variable "{{variable}}" appears in a non-polynomial position. solveLinearSystem only handles linear systems.',polyReqPrimeModulus:"a prime modulus",polyReqUnivariatePolynomial:"a univariate polynomial",polyReqSquareFreeInput:"square-free input",polyReqSamePolynomialRing:"the same polynomial ring",polyReqAtLeastOneVariable:"at least one variable",polyReqAtLeastTwoSelectedVariables:"at least two selected variables",polyReqOneEvaluationPerTailVariable:"one evaluation value per tail variable",polyReqMatchingFactorLeadingLists:"matching factor and leading-coefficient lists",polyReqPairwiseCoprimeModularFactors:"pairwise coprime modular factors",polyReqPrimeBaseModulus:"a prime base modulus",polyReqAtLeastOneModularFactor:"at least one modular factor",polyReqUnivariateIntegerPolynomial:"a univariate integer polynomial",polyReqFactorsSameRingAndPrime:"factors from the same integer polynomial ring and base prime",polyReqUnivariateFactors:"univariate factors",polyReqMonicModularFactors:"monic modular factors",polyReqPrimitiveIntegerPolynomial:"a primitive integer polynomial",polyReqPositiveLeadingCoefficient:"a positive leading coefficient",polyReqLiftedModularFactors:"lifted modular factors",polyReqLiftedFactorsSameRing:"lifted factors from one polynomial ring",polyReqUnivariateLiftedFactors:"univariate lifted factors",polyReqMonicLiftedFactors:"monic lifted factors",polyReqLargerHenselModulus:"a larger Hensel lifting modulus",polyReqPrimitivePolynomial:"a primitive polynomial",polyReqPositiveLexLeadingSign:"positive lexicographic leading sign",polyReqSquareFreeMainVariable:"square-free input in the main variable",polyReqExactlyTwoSelectedVariables:"exactly two selected variables",polyReqExactlyTwoVariables:"exactly two variables",polyReqOneValuePerNonMainVariable:"one value for every non-main selected variable",polyReqOneValuePerTailVariable:"one value for every tail variable",polyReqPositiveDegreeMainVariable:"positive degree in the main variable",polyReqAllOtherVariablesDormant:"all other variables to be dormant",polyReqPositiveModuli:"positive moduli",polyReqCoprimeModuli:"coprime moduli",polyReqAtLeastOneSample:"at least one sample",polyReqInvertibleLeadingCoefficient:"an invertible leading coefficient",polyReqIntegerLeadingCoefficientInvertible:"the integer leading coefficient to be invertible modulo the base prime",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!",unsupportedCharacter:'Unsupported character "{{character}}" at position {{position}}.',missingCommentDelimiter:'Missing closing comment delimiter "{{delimiter}}".',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!"},t.ErrorMessages={eng:t.EnglishErrorMessages}},492(e,t,n){"use strict";t.registerNerdamerFunctions=function registerNerdamerFunctions(){(0,l.loadScriptingFunctions)(),(0,s.loadAssumptionFunctions)(),(0,o.loadMatrixFunctions)(),(0,u.loadVectorFunctions)(),(0,c.loadComplexFunctions)(),(0,a.loadPolynomialFunctions)(),(0,m.loadMathFunctions)(),(0,i.loadAlgebraFunctions)(),(0,r.loadCalculusFunctions)(),(0,p.loadSolveFunctions)()};const i=n(193),r=n(1039),s=n(3263),o=n(981),a=n(1808),l=n(1929),u=n(1027),c=n(8522),m=n(6953),p=n(7328)},551(e,t,n){"use strict";t.factorial=void 0,t.abs=abs,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,r.decimalSplit)(e),i=10n**BigInt(n.length);return simplifyRatio(BigInt(t+n),i)},t.sign=sign,t.isEven=isEven,t.ceilIntegerSquareRoot=function ceilIntegerSquareRoot(e){const t=integerSquareRoot(e);return t*t===e?t:t+1n},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;t&&isEven(n)&&(s=-s);return s},t.mod=mod,t.powMod=function powMod(e,t,n){if(n<=0n)throw new RangeError((0,i.message)("modularExponentiationPositiveModulus"));if(t<0n)throw new RangeError((0,i.message)("modularExponentiationNonnegativeExponent"));let r=1n%n,s=mod(e,n),o=t;for(;o>0n;)o%2n==1n&&(r=r*s%n),s=s*s%n,o/=2n;return r},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.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(4703),r=n(7103),s=n(5869);function abs(e){return e<0n?-e:e}function uniqueSortedArray(e){return(0,s.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 integerSquareRoot(e){if(e<0n)throw new RangeError((0,i.message)("integerSqrtNonnegative"));if(e<2n)return e;let t=1n<<(BigInt(e.toString(2).length)+1n>>1n);for(;;){const n=t+e/t>>1n;if(n>=t)return t;t=n}}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((0,i.message)("factorialNegativeUndefined"));if(void 0!==e[n])return e[n];let r=e[t-1];for(;t<=n;t++)e[t]=r*=BigInt(t);return r}return bigFactorial(100),bigFactorial}()},982(e,t,n){"use strict";t.isPrimeBig=isPrimeBig,t.nextPrimeBig=function nextPrimeBig(e){let t=e<=2n?2n:e;t>2n&&t%2n==0n&&t++;for(;!isPrimeBig(t);)t+=2n===t?1n:2n;return t},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};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 r=e<18446744073709551616n?[2n,325n,9375n,28178n,450775n,9780504n,1795265022n]:[2n,3n,5n,7n,11n,13n,17n,19n,23n,29n,31n,37n];for(const s of r){const r=s%e;if(r<2n)continue;let o=(0,i.powMod)(r,n,e);if(1n===o||o===e-1n)continue;let a=!1;for(let n=0n;n<t-1n;n++)if(o=o*o%e,o===e-1n){a=!0;break}if(!a)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}}},417(e,t,n){"use strict";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],step:[e=>Number.isNaN(e)?NaN:e<0?0:1],rect:[e=>{const t=Math.abs(e);return t<.5?1:.5===t?.5:0}],tri:[e=>Math.max(1-Math.abs(e),0)],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"]]}},4895(e,t,n){"use strict";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`)}[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);return 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}},8522(e,t,n){"use strict";t.loadComplexFunctions=function loadComplexFunctions(){Object.assign(i.mathFunctionRegistry,{imagpart:(0,i.systemFunction)({fn:r.imagPart,minArgs:1,maxArgs:1,distElWise:!0}),realpart:(0,i.systemFunction)({fn:r.realPart,minArgs:1,maxArgs:1,distElWise:!0}),polarform:(0,i.systemFunction)({fn:r.polarForm,minArgs:1,maxArgs:1,distElWise:!0}),rectform:(0,i.systemFunction)({fn:r.rectForm,minArgs:1,maxArgs:1,distElWise:!0}),arg:(0,i.systemFunction)({fn:r.arg,minArgs:1,maxArgs:1,distElWise:!0}),csgn:(0,i.systemFunction)({fn:r.csgn,minArgs:1,maxArgs:1,distElWise:!0}),conjugate:(0,i.systemFunction)({fn:r.conjugate,minArgs:1,maxArgs:1,distElWise:!0})})};const i=n(9426),r=n(4600)},4600(e,t,n){"use strict";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=e.copy();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;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)());return 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=n.copy();else if(n.isFunction())t=n.isComplex()?s.Expression.toFunction(a.REALPART,[n]):n.copy();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=e.copy();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=e.copy();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]}},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(),a=r.default.sign(e);if((e=e.abs()).isZero())return new r.default(0);if(e.lt(2)){let t=new r.default(0),l=0,u=e;const c=Math.max(1e3,8*r.default.precision);for(;u.gte(i);){const n=new r.default(-1).pow(l).times(e.pow(2*l+1)),i=new r.default(2*l+1).times(String((0,o.factorial)(l))),a=t.plus(n.div(i));if(u=a.minus(t).abs(),t=a,l++,l>c)throw new Error((0,s.message)("erfConvergenceFailed"))}let m=r.default.min(n.times(t),1);return-1===a&&(m=m.neg()),m}const l=e.mul(e).mul(2);let u=new r.default(1),c=u,m=u.abs();const p=Math.max(1e3,8*r.default.precision);for(let e=1;e<p;e++){u=u.mul(-(2*e-1)).div(l);const t=u.abs();if(t.gt(m))break;if(m=t,c=c.plus(u),t.lt(i))break}const g=e.neg().mul(e).exp().div(t.sqrt().mul(e)).times(c);let d=new r.default(1).minus(g);-1===a&&(d=d.neg());return 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,o.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);t.isNeg()&&(n=new r.default(-1),t=t.neg());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.gt(a)){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(),o=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(o,e).div(t.mul(p1evl(o,n))),u=o.mul(polevl(o,i)).div(p1evl(o,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(o,e).div(t.mul(p1evl(o,n))),u=o.mul(polevl(o,i)).div(p1evl(o,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(l)||e.lt(-40)){let t=new r.default(1),n=new r.default(1),i=t.abs();for(let r=1;r<u;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<c&&(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);n.isNeg()&&(n=n.neg());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.gt(a))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(),o=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(o,e).div(n.mul(p1evl(o,t))),u=o.mul(polevl(o,i)).div(p1evl(o,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(o,e).div(n.mul(p1evl(o,t))),u=o.mul(polevl(o,i)).div(p1evl(o,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(l)||e.lt(-40)){let t=new r.default(1),n=new r.default(1),i=t.abs();for(let r=1;r<u;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<c&&(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(l)||n.lt(-40)){let e=new r.default(1),t=new r.default(1),i=e.abs();for(let r=1;r<u;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<c&&(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(l)||i.lt(-40)){let e=new r.default(1),t=new r.default(1),n=e.abs();for(let r=1;r<u;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<c&&(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(4703),o=n(551);t.EULER_GAMMA=new r.default("0.5772156649015328606065120900824024310421593359399235988057672348848677267776646709369470632917467495");const a=1e9,l=40,u=100,c=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})}}},7741(e,t,n){"use strict";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){if(e.isFunction(s.WRAP)){return e.getArguments()[0].pow(e.getPower()).times(e.getMultiplier())}return e}function expand(e){let t;if(isExpandable(e=unwrap(e)))if(e.isNUM()||e.isVAR())t=e.copy();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=e.copy();return t}},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,[g,d,h,x]=i,E=(u+c*t+m*t**2+p*t**3)/(Math.PI*e),y=(g+d*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,g=(s+o)*r,d=(g+o)*r,h=t((s+g)*r),x=t(d),E=(g-s)/6*(a+4*h+l),y=(o-g)/6*(l+4*x+u),v=E+y;m>=20||Math.abs(v-c)<=15e-13/n?i+=v+(v-c)/15:(p.push([g,o,l,x,u,y,m+1]),p.push([s,g,a,h,l,E,m+1]))}a=o}s=o*i}}else s=Math.sign(e)*r;return s}t.fresnelIntegral=fresnelIntegral,t.fresnelS=function fresnelS(e){return fresnelIntegral(e,1)},t.fresnelC=function fresnelC(e){return fresnelIntegral(e,0)}},3703(e,t){"use strict";t.EULER_GAMMA=void 0,t.factorial=factorial,t.gammaLN=gammaLN,t.gamma=gamma,t.erfc=erfc,t.erf=function erf(e){if(0===e)return 0;return 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.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.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;e<0&&(t=-1,e=-e);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>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;e<0&&(e=-e);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>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;t.EULER_GAMMA=n;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}},5523(e,t,n){"use strict";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)},3148(e,t,n){"use strict";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"}}},7103(e,t,n){"use strict";t.scientificToDecimal=function scientificToDecimal(e){let t;[t,e]=function stripSign(e){const t="-"===e.charAt(0);(t||"+"===e.charAt(0))&&(e=e.substring(1));return[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;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)}`;return t?"-"+c:c},t.decimalSplit=function decimalSplit(e){const t=e.split(".");if(t.length>2)throw new SyntaxError((0,i.message)("invalidDecimalValue",{value:e}));1===t.length&&t.push("");return 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};const i=n(4703)},886(e,t,n){"use strict";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;!function collectConstants(e){if(e.isVAR()&&(e.isConstant()||e.isI())&&n.add(e.value),e.args)for(const t of e.args)collectConstants(t);if(e.elements)for(const t of Object.values(e.elements))collectConstants(t);e.isEXP()&&(collectConstants(e.getBase()),collectConstants(e.getPower()))}(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,i){let r;if(e.isProduct())if(t.isProduct()){const o=e.getMultiplier().div(t.getMultiplier());if(o.isInteger()||a.Settings.ALLOW_RAT_SUBS){let a,l=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 r of l)if(r.value===e.value){const t=r.getPower().div(e.getPower());if(void 0===a&&(a=t),!(t.isInteger()&&t.eq(a)||r.isEXP()))break;c=!0,p--}else m.push(subst(r,t,n,i));if(!c)break;l=m}0!==p||void 0===a?r=(0,s.product)(...e.elementsArray(!0).map(e=>subst(e,t,n,i))).pow(e.getPower()):(m.push(n.pow(a)),r=(0,s.product)(...m),r.multiplier=r.getMultiplier().times(o)),r=r.pow(subst(e.getPower(),t,n,i))}else r=e.copy()}else r=(0,s.product)(...e.elementsArray(!0).map(e=>subst(e,t,n,i))).pow(e.getPower());return r||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 g=c.div(r);if(p){if(!g.eq(p)){return(0,s.sum)(...e.elementsArray().map(e=>subst(e,t,n,i))).pow(a).times(l)}}else p=g}const g=n.times(p||(0,r.one)()),d=u.map(e=>subst(e,t,n,i));d.push(g),o=(0,s.sum)(...d).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=n.copy():(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}},5869(e,t){"use strict";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.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}},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),g=n(9684),d=n(2634),h=n(2012),x=n(7410),E=n(5530),y=n(7571),v=n(4317),w=n(6082),b=n(6351),P=n(2446),A=n(6284),N=n(6528),M=n(6184),T=n(296),I=n(6099),O=n(6430),R=n(4462),F=n(430),q=n(8300),L=n(238),V=n(2707),U=n(6913),D=n(2116),k=n(5584),B=n(5598),z=n(3552),$=n(3982),Z=n(7130),G=n(9426),H=n(492),W=o(n(4703)),j=n(4895),X=n(4600),K=n(7741),Y=n(3148),Q=n(886),J=n(3394),ee=n(7867),te=n(8533),ne=n(1649),ie=n(6925),re=n(706),se=n(1526),oe=n(2295),ae=n(6950);(0,H.registerNerdamerFunctions)();const le=new Z.Converter,ue=new Z.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 L.Parser.parse(e,t)}T.Expression.prototype.solveFor=function(e){return(0,oe.solve)(this,e)},M.Equation.prototype.solveFor=function(e){return(0,oe.solve)(this,e)},T.Expression.prototype.toTeX=function(e){return le.convert(this,normalizeTeXOptions(e))},T.Expression.prototype.toText=function(){return ue.convert(this)},T.Expression.prototype.latex=function(e){return le.convert(this,normalizeTeXOptions(e))},T.Expression.prototype.isInfinity=function(){return this.isInf()},T.Expression.prototype.isFraction=function(){return!this.getMultiplier().isInteger()},T.Expression.prototype.hasIntegral=function(){return this.hasFunction("integrate",!0)},T.Expression.prototype.equals=function(e){return new M.Equation(this,T.Expression.create(e))},nerdamer.pretty=function(e,t="TeX"){return("TeX"===t?le:ue).convert(e)},nerdamer.convertFromLaTeX=function(e){return le.fromTeX(e)},nerdamer.convertToTeX=function(e,t){let n=normalizeTeXOptions(t);return"string"!=typeof e||n?.decimal||(n={...n??{},preserveSource:!0}),le.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=k.Rational.create(String(t));n=1n===e.denominator?String(e.numerator):`${e.numerator}/${e.denominator}`}return L.Parser.setConstants({[e]:n}),nerdamer},nerdamer.getConstant=function(e){const t=q.PARSER_CONSTANTS[e];return String("function"==typeof t?t():t)},nerdamer.set=function(e,t){if("PRECISION"===e)L.Parser.setPrecision(Number(t));else if("object"==typeof e&&"PRECISION"in e){const{PRECISION:t,...n}=e;L.Parser.set(n),L.Parser.setPrecision(Number(t))}else L.Parser.set(e,t);return nerdamer},nerdamer.get=function(e){let t;return t="PRECISION"===e?L.Parser.getPrecision():L.Parser.get(e),t},nerdamer.getOperator=function(e){return L.Parser.getOperator(e)},nerdamer.isReserved=function(e){return L.Parser.isReserved(e)},nerdamer.setOperator=function(e,t){return L.Parser.setOperator(e,t),nerdamer},nerdamer.aliasOperator=function(e,t){return L.Parser.aliasOperator(e,t),nerdamer},nerdamer.setVar=function(e,t){"delete"===t?(0,V.unassign)(e):(0,V.assign)(e,String(t))},nerdamer.clearVars=function(){for(const e of Object.keys(L.Parser.KNOWN_VALUES))(0,V.unassign)(e);return nerdamer},nerdamer.getVars=function(e="text"){const t="LaTeX"===e?le:ue,n={};for(const e of Object.keys(L.Parser.KNOWN_VALUES))n[e]=t.convert(L.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=I.symbols,nerdamer.version=function(){return l.default.version},nerdamer.errors=W,nerdamer.buildFunction=j.build,nerdamer.classes={Expression:T.Expression,Rational:k.Rational,Polynomial:D.Polynomial,Matrix:R.Matrix,Vector:$.Vector,Collection:A.Collection,Converter:Z.Converter,Dictionary:N.Dictionary,ValuesSet:B.ValuesSet,SolutionSet:se.SolutionSet,Assumption:P.Assumption,Equation:M.Equation,instance:{Parser:L.Parser}},nerdamer.cos=ne.cos,nerdamer.sin=ne.sin,nerdamer.tan=ne.tan,nerdamer.acos=ne.acos,nerdamer.asin=ne.asin,nerdamer.atan=ne.atan,nerdamer.arccos=ne.acos,nerdamer.arcsin=ne.asin,nerdamer.arctan=ne.atan,nerdamer.atan2=ne.atan2,nerdamer.sec=ne.sec,nerdamer.csc=ne.csc,nerdamer.cot=ne.cot,nerdamer.asec=ne.asec,nerdamer.acsc=ne.acsc,nerdamer.acot=ne.acot,nerdamer.cosh=ne.cosh,nerdamer.sinh=ne.sinh,nerdamer.tanh=ne.tanh,nerdamer.acosh=ne.acosh,nerdamer.asinh=ne.asinh,nerdamer.atanh=ne.atanh,nerdamer.sech=ne.sech,nerdamer.csch=ne.csch,nerdamer.coth=ne.coth,nerdamer.asech=ne.asech,nerdamer.acsch=ne.acsch,nerdamer.acoth=ne.acoth,nerdamer.log=te.log,nerdamer.log10=te.log10,nerdamer.radians=te.radians,nerdamer.degrees=te.degrees,nerdamer.exp=te.exp,nerdamer.sqrt=te.sqrt,nerdamer.cbrt=te.cbrt,nerdamer.nthroot=te.nthroot,nerdamer.numeric=te.numeric,nerdamer.abs=te.abs,nerdamer.sign=te.sign,nerdamer.min=te.min,nerdamer.max=te.max,nerdamer.round=te.round,nerdamer.floor=te.floor,nerdamer.ceil=te.ceiling,nerdamer.trunc=ie.trunc,nerdamer.hypot=ee.hypot,nerdamer.fact=te.factorial,nerdamer.factorial=te.factorial,nerdamer.dfact=te.doubleFactorial,nerdamer.dfactorial=te.doubleFactorial,nerdamer.fib=te.fibonacci,nerdamer.mod=te.mod,nerdamer.modInv=te.modInv,nerdamer.isPrime=re.isprime,nerdamer.imagpart=X.imagPart,nerdamer.realpart=X.realPart,nerdamer.polarform=X.polarForm,nerdamer.rectform=X.rectForm,nerdamer.arg=X.arg,nerdamer.conjugate=X.conjugate,nerdamer.csgn=X.csgn,nerdamer.gamma=te.gamma,nerdamer.gamma_incomplete=te.gammaIncomplete,nerdamer.gamma_incomplete_lower=te.gammaIncompleteLower,nerdamer.erf=te.erf,nerdamer.erfc=te.erfc,nerdamer.heaviside=te.heaviside,nerdamer.step=te.step,nerdamer.rect=te.rect,nerdamer.tri=te.tri,nerdamer.delta=te.dirac,nerdamer.Ci=te.Ci,nerdamer.Chi=te.Chi,nerdamer.Si=te.Si,nerdamer.Shi=te.Shi,nerdamer.Li=te.Li,nerdamer.Ei=te.Ei,nerdamer.sinc=te.sinc,nerdamer.parens=te.parens,nerdamer.continued_fraction=re.continuedFraction,nerdamer.scientific=te.scientific,nerdamer.contains=te.contains,nerdamer.subst=Q.subst,nerdamer.uSub=Q.uSub,nerdamer.uUnSub=Q.uUnSub,nerdamer.expand=K.expand,nerdamer.factor=u.factor,nerdamer.pfactor=u.pfactor,nerdamer.pfactord=u.pfactord,nerdamer.polyFactors=u.polyFactors,nerdamer.completeSquare=d.sqcomp,nerdamer.gcd=c.gcd,nerdamer.lcm=c.lcm,nerdamer.partfrac=p.partfrac,nerdamer.div=U.div,nerdamer.divide=U.divide,nerdamer.simplify=g.simplify,nerdamer.groebner=m.groebner,nerdamer.solve=oe.solve,nerdamer.roots=oe.roots,nerdamer.solveSystem=ae.solveSystem,nerdamer.solveeqs=ae.solveSystem,nerdamer.diff=h.diff,nerdamer.integrate=E.integrate,nerdamer.laplace=v.laplace,nerdamer.ilaplace=y.ilaplace,nerdamer.ilt=y.ilaplace,nerdamer.sum=te.sum,nerdamer.product=te.product,nerdamer.limit=w.limit,nerdamer.defint=J.defint,nerdamer.S=x.S,nerdamer.C=x.C,nerdamer.matrix=te.matrix,nerdamer.imatrix=F.imatrix,nerdamer.determinant=O.determinant,nerdamer.invert=O.invert,nerdamer.nullspace=O.nullspace,nerdamer.dot=z.dot,nerdamer.cross=z.cross,nerdamer.line=ee.line,nerdamer.deg=U.deg,nerdamer.content=U.content,nerdamer.coeffs=U.coeffs,nerdamer.assume=b.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=M.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(!T.Expression.isExpression(this))throw new W.UnexpectedDataType(W.message("expressionExpected",{type:q.dataTypes[this.dataType]??this.dataType}));return i(this,...e)}})}}}([T.Expression,R.Matrix,$.Vector,A.Collection,N.Dictionary,B.ValuesSet,M.Equation],e,t),nerdamer},nerdamer.updateAPI(),t.default=nerdamer},3394(e,t,n){"use strict";t.defint=function defint(e,t,n,a){let l;e=i.Expression.create(e),t=i.Expression.create(t),n=i.Expression.create(n),a=i.Expression.create(a);const u=e.variables(),c=(0,r.assertPlainVariableAndGetString)(t);if(u.includes(c)){let r=n,m=a;if(!r.isNUM()&&r.isConstant()&&(r=r.evaluate()),!m.isNUM()&&m.isConstant()&&(m=m.evaluate()),1===u.length&&u[0]===c&&r.isNUM()&&m.isNUM()){const t=Number(r.getMultiplier().toDecimal()),n=Number(m.getMultiplier().toDecimal());l=i.Expression.create((0,o.definiteIntegrateNative)(e.buildFunction(),t,n)),l.precision=17}else l=i.Expression.toFunction(s.DEFINT,[e,t,n,a])}else l=e.times(a.minus(n));return l};const i=n(296),r=n(1897),s=n(8300),o=n(7449)},7449(e,t,n){"use strict";t.definiteIntegrateNative=function definiteIntegrateNative(e,t,n,r={}){if(t===n)return 0;const s=r.tolAbs??1e-12,o=r.tolRel??1e-12,a=r.maxDepth??50,l=r.maxEvals??1e5,u=r.singular??"auto",c=r.allowInfinite??!1,m=!isFinite(t)&&!isNaN(t),p=!isFinite(n)&&!isNaN(n);if((m||p)&&!c)throw new Error((0,i.message)("defintInfiniteBounds"));if(c&&(m||p)){const r=1e-15;if(!m&&p&&n>0){const n=t;return withFiniteBounds(t=>{const i=1-t;return e(n+t/i)/(i*i)},0,1-r,s,o,a,l,u)}if(m&&t<0&&!p){const t=n;return withFiniteBounds(n=>{const i=1-n;return e(t-n/i)/(i*i)},0,1-r,s,o,a,l,u)}if(m&&t<0&&p&&n>0){return withFiniteBounds(t=>{const n=Math.PI*(t-.5),i=Math.cos(n);return e(Math.tan(n))*Math.PI/(i*i)},r,1-r,s,o,a,l,u)}throw new Error((0,i.message)("defintUnsupportedInfiniteBounds"))}const g=Math.min(t,n),d=Math.max(t,n),h=(r.breakpoints??[]).filter(e=>e>g&&e<d).sort((e,t)=>e-t);if(0===h.length)return withFiniteBounds(e,t,n,s,o,a,l,u);const x=h.length+1,E=s/x,y=t<=n?[t,...h,n]:[t,...h.reverse(),n];let v=0;for(let t=0;t<y.length-1;t++)v+=withFiniteBounds(e,y[t],y[t+1],E,o,a,l,u);return v};const i=n(4703);function simpson(e,t,n,i,r){return(t-e)/6*(n+4*i+r)}function withFiniteBounds(e,t,n,r,s,o,a,l){let u=t,c=n;if(u===c)return 0;let m=1;if(c<u){m=-1;const e=u;u=c,c=e}let p=0;const evalF=t=>{if(++p>a)throw new Error((0,i.message)("defintMaxEvals",{max:String(a)}));const n=e(t);if("strict"===l&&!isFinite(n))throw new Error((0,i.message)("defintNonFiniteValue",{x:String(t)}));return n},g=(u+c)/2,d=evalF(u),h=evalF(g),x=evalF(c);if("ignore"===l&&(isNaN(d)||isNaN(h)||isNaN(x)))return NaN;if(!("auto"!==l||isFinite(d)&&isFinite(h)&&isFinite(x))){const t=!isFinite(d)&&isFinite(h)&&isFinite(x),n=isFinite(d)&&isFinite(h)&&!isFinite(x);if(t||n){const n=c-u,p=Math.sqrt(Number.EPSILON),g=t;return m*withFiniteBounds(t=>{const r=Math.max(t,p),s=g?u+n*r*r:c-n*r*r,o=2*e(s)*n*r;if(!isFinite(o))throw new Error((0,i.message)("defintEndpointSingularity",{x:String(s)}));return o},0,1,r,s,o,a,l)}return m*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,u,c,r,s,o,a,l)}const E=simpson(u,c,d,h,x),y=[{a:u,b:c,m:g,fa:d,fm:h,fb:x,S:E,depth:0,tolAbs:r,tolRel:s,singularTries:0}];let v=0;for(;y.length>0;){const e=y[y.length-1];y.pop();const{a:t,b:n,m:r}=e,s=e.tolRel,a=(t+r)/2,u=(r+n)/2,c=evalF(a),m=evalF(u);if("ignore"===l&&(isNaN(c)||isNaN(m)))return NaN;if(!("auto"!==l||isFinite(c)&&isFinite(m)&&isFinite(e.fa)&&isFinite(e.fm)&&isFinite(e.fb))){if(e.depth>=o||e.singularTries>=8)throw new Error((0,i.message)("defintSingularity",{a:String(t),b:String(n)}));const l=e.depth+1,p=e.tolAbs/2;y.push({a:r,b:n,m:u,fa:e.fm,fm:m,fb:e.fb,S:simpson(r,n,e.fm,m,e.fb),depth:l,tolAbs:p,tolRel:s,singularTries:e.singularTries+1}),y.push({a:t,b:r,m:a,fa:e.fa,fm:c,fb:e.fm,S:simpson(t,r,e.fa,c,e.fm),depth:l,tolAbs:p,tolRel:s,singularTries:e.singularTries+1});continue}const p=simpson(t,r,e.fa,c,e.fm),g=simpson(r,n,e.fm,m,e.fb),d=p+g;if(Math.abs(d-e.S)/15<=e.tolAbs+e.tolRel*Math.abs(d)||e.depth>=o){v+=d+(d-e.S)/15;continue}const h=e.depth+1,x=e.tolAbs/2;y.push({a:r,b:n,m:u,fa:e.fm,fm:m,fb:e.fb,S:g,depth:h,tolAbs:x,tolRel:s,singularTries:e.singularTries}),y.push({a:t,b:r,m:a,fa:e.fa,fm:c,fb:e.fm,S:p,depth:h,tolAbs:x,tolRel:s,singularTries:e.singularTries})}return v*m}},6953(e,t,n){"use strict";t.loadMathFunctions=function loadMathFunctions(){Object.assign(i.mathFunctionRegistry,{cos:(0,i.systemFunction)({fn:c.cos,minArgs:1,maxArgs:1,distElWise:!0}),sin:(0,i.systemFunction)({fn:c.sin,minArgs:1,maxArgs:1,distElWise:!0}),tan:(0,i.systemFunction)({fn:c.tan,minArgs:1,maxArgs:1,distElWise:!0}),sec:(0,i.systemFunction)({fn:c.sec,minArgs:1,maxArgs:1,distElWise:!0}),csc:(0,i.systemFunction)({fn:c.csc,minArgs:1,maxArgs:1,distElWise:!0}),cot:(0,i.systemFunction)({fn:c.cot,minArgs:1,maxArgs:1,distElWise:!0}),acos:(0,i.systemFunction)({fn:c.acos,minArgs:1,maxArgs:1,distElWise:!0}),asin:(0,i.systemFunction)({fn:c.asin,minArgs:1,maxArgs:1,distElWise:!0}),atan:(0,i.systemFunction)({fn:c.atan,minArgs:1,maxArgs:1,distElWise:!0}),asec:(0,i.systemFunction)({fn:c.asec,minArgs:1,maxArgs:1,distElWise:!0}),acsc:(0,i.systemFunction)({fn:c.acsc,minArgs:1,maxArgs:1,distElWise:!0}),acot:(0,i.systemFunction)({fn:c.acot,minArgs:1,maxArgs:1,distElWise:!0}),atan2:(0,i.systemFunction)({fn:c.atan2,minArgs:2,maxArgs:2,distElWise:!0}),cosh:(0,i.systemFunction)({fn:c.cosh,minArgs:1,maxArgs:1,distElWise:!0}),sinh:(0,i.systemFunction)({fn:c.sinh,minArgs:1,maxArgs:1,distElWise:!0}),tanh:(0,i.systemFunction)({fn:c.tanh,minArgs:1,maxArgs:1,distElWise:!0}),sech:(0,i.systemFunction)({fn:c.sech,minArgs:1,maxArgs:1,distElWise:!0}),csch:(0,i.systemFunction)({fn:c.csch,minArgs:1,maxArgs:1,distElWise:!0}),coth:(0,i.systemFunction)({fn:c.coth,minArgs:1,maxArgs:1,distElWise:!0}),acosh:(0,i.systemFunction)({fn:c.acosh,minArgs:1,maxArgs:1,distElWise:!0}),asinh:(0,i.systemFunction)({fn:c.asinh,minArgs:1,maxArgs:1,distElWise:!0}),atanh:(0,i.systemFunction)({fn:c.atanh,minArgs:1,maxArgs:1,distElWise:!0}),asech:(0,i.systemFunction)({fn:c.asech,minArgs:1,maxArgs:1,distElWise:!0}),acsch:(0,i.systemFunction)({fn:c.acsch,minArgs:1,maxArgs:1,distElWise:!0}),acoth:(0,i.systemFunction)({fn:c.acoth,minArgs:1,maxArgs:1,distElWise:!0}),line:(0,i.systemFunction)({fn:l.line,minArgs:2,maxArgs:3,distElWise:!1}),abs:(0,i.systemFunction)({fn:u.abs,minArgs:1,maxArgs:1,distElWise:!0}),sqrt:(0,i.systemFunction)({fn:u.sqrt,minArgs:1,maxArgs:1,distElWise:!0}),nthroot:(0,i.systemFunction)({fn:u.nthroot,minArgs:2,maxArgs:2,distElWise:!0}),cbrt:(0,i.systemFunction)({fn:u.cbrt,minArgs:1,maxArgs:1,distElWise:!0}),subst:(0,i.systemFunction)({fn:a.subst,minArgs:3,maxArgs:3,distElWise:!0}),log:(0,i.systemFunction)({fn:u.log,minArgs:1,maxArgs:2,distElWise:!0}),log10:(0,i.systemFunction)({fn:u.log10,minArgs:1,maxArgs:1,distElWise:!0}),radians:(0,i.systemFunction)({fn:u.radians,minArgs:1,maxArgs:1,distElWise:!0}),degrees:(0,i.systemFunction)({fn:u.degrees,minArgs:1,maxArgs:1,distElWise:!0}),exp:(0,i.systemFunction)({fn:u.exp,minArgs:1,maxArgs:1,distElWise:!0}),erf:(0,i.systemFunction)({fn:u.erf,minArgs:1,maxArgs:1,distElWise:!0}),erfc:(0,i.systemFunction)({fn:u.erfc,minArgs:1,maxArgs:1,distElWise:!0}),gamma:(0,i.systemFunction)({fn:u.gamma,minArgs:1,maxArgs:1,distElWise:!0}),gamma_incomplete:(0,i.systemFunction)({fn:u.gammaIncomplete,minArgs:2,maxArgs:2,distElWise:!0}),gamma_incomplete_lower:(0,i.systemFunction)({fn:u.gammaIncompleteLower,minArgs:2,maxArgs:2,distElWise:!0}),[r.DIRAC]:(0,i.systemFunction)({fn:u.dirac,minArgs:1,maxArgs:1,distElWise:!0}),[r.HEAVISIDE]:(0,i.systemFunction)({fn:u.heaviside,minArgs:1,maxArgs:1,distElWise:!0}),step:(0,i.systemFunction)({fn:u.step,minArgs:1,maxArgs:1,distElWise:!0}),rect:(0,i.systemFunction)({fn:u.rect,minArgs:1,maxArgs:1,distElWise:!0}),tri:(0,i.systemFunction)({fn:u.tri,minArgs:1,maxArgs:1,distElWise:!0}),continued_fraction:(0,i.systemFunction)({fn:p.continuedFraction,minArgs:1,maxArgs:2,distElWise:!1}),scientific:(0,i.systemFunction)({fn:u.scientific,minArgs:1,maxArgs:2,distElWise:!0}),hypot:(0,i.systemFunction)({fn:l.hypot,minArgs:2,maxArgs:2,distElWise:!0}),[r.FACTORIAL]:(0,i.systemFunction)({fn:u.factorial,minArgs:1,maxArgs:1,distElWise:!0}),factorial:(0,i.systemFunction)({fn:u.factorial,minArgs:1,maxArgs:1,distElWise:!0}),[r.DOUBLE_FACTORIAL]:(0,i.systemFunction)({fn:u.doubleFactorial,minArgs:1,maxArgs:1,distElWise:!0}),expand:(0,i.systemFunction)({fn:o.expand,minArgs:1,maxArgs:1,distElWise:!0}),numeric:(0,i.systemFunction)({fn:s.numeric,minArgs:1,maxArgs:2,equationArgs:[0],distElWise:!1,deferArguments:!0}),round:(0,i.systemFunction)({fn:u.round,minArgs:1,maxArgs:2,distElWise:!0}),sign:(0,i.systemFunction)({fn:u.sign,minArgs:1,maxArgs:1,distElWise:!0}),floor:(0,i.systemFunction)({fn:u.floor,minArgs:1,maxArgs:1,distElWise:!0}),ceil:(0,i.systemFunction)({fn:u.ceiling,minArgs:1,maxArgs:1,distElWise:!0}),ceiling:(0,i.systemFunction)({fn:u.ceiling,minArgs:1,maxArgs:1,distElWise:!0}),trunc:(0,i.systemFunction)({fn:m.trunc,minArgs:1,maxArgs:1,distElWise:!0}),mod:(0,i.systemFunction)({fn:u.mod,minArgs:2,maxArgs:2,distElWise:!0}),modinv:(0,i.systemFunction)({fn:u.modInv,minArgs:2,maxArgs:2,distElWise:!0}),parens:(0,i.systemFunction)({fn:u.parens,minArgs:1,maxArgs:1,distElWise:!0}),count:(0,i.systemFunction)({fn:p.count,minArgs:1,maxArgs:1,distElWise:!1}),size:(0,i.systemFunction)({fn:p.size,minArgs:1,maxArgs:1,distElWise:!1}),contains:(0,i.systemFunction)({fn:u.contains,minArgs:2,maxArgs:2,distElWise:!1}),max:(0,i.systemFunction)({fn:u.max,minArgs:2,maxArgs:-1,distElWise:!0}),min:(0,i.systemFunction)({fn:u.min,minArgs:2,maxArgs:-1,distElWise:!0}),isprime:(0,i.systemFunction)({fn:p.isprime,minArgs:1,maxArgs:1,distElWise:!0}),fib:(0,i.systemFunction)({fn:u.fibonacci,minArgs:1,maxArgs:1,distElWise:!0}),sinc:(0,i.systemFunction)({fn:u.sinc,minArgs:1,maxArgs:1,distElWise:!0}),Shi:(0,i.systemFunction)({fn:u.Shi,minArgs:1,maxArgs:1,distElWise:!0}),Si:(0,i.systemFunction)({fn:u.Si,minArgs:1,maxArgs:1,distElWise:!0}),Chi:(0,i.systemFunction)({fn:u.Chi,minArgs:1,maxArgs:1,distElWise:!0}),Ci:(0,i.systemFunction)({fn:u.Ci,minArgs:1,maxArgs:1,distElWise:!0}),Ei:(0,i.systemFunction)({fn:u.Ei,minArgs:1,maxArgs:1,distElWise:!0}),[r.LI]:(0,i.systemFunction)({fn:u.Li,minArgs:1,maxArgs:1,distElWise:!0})})};const i=n(9426),r=n(8300),s=n(1668),o=n(7741),a=n(886),l=n(7867),u=n(8533),c=n(1649),m=n(6925),p=n(706)},7867(e,t,n){"use strict";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},t.line=function line(e,t,n="x"){if(!e||!t||e.dataType!==s.VECTOR||t.dataType!==s.VECTOR||2!==e.count()||2!==t.count())throw new l.DimensionError((0,l.message)("mismatchedDimensions",{function:"line"}));const r=e.elements[0],o=e.elements[1],a=t.elements[0],u=t.elements[1];if(!(i.Expression.isExpression(r)&&i.Expression.isExpression(o)&&i.Expression.isExpression(a)&&i.Expression.isExpression(u)))throw new l.UnexpectedInputError((0,l.message)("wrongInput",{expected:"two-dimensional vectors of scalar expressions",received:`${e.text()}, ${t.text()}`}));const c=i.Expression.create(n);return o.plus(u.minus(o).div(a.minus(r)).times(c.minus(r)))};const i=n(296),r=n(6099),s=n(8300),o=n(6255),a=n(3957),l=n(4703)},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.scientific=function scientific(e,t=10){const n=o.Expression.create(t),i=n.isNUM()&&n.isInteger()?Number(n.getMultiplier().numerator):Number.NaN,r=(0,x.validateScientificSignificantDigits)(i,n.text()),s=o.Expression.create(e,void 0,!0);return s.scientific=r,s},t.nthroot=function nthroot(e,t){return(0,g.power)(o.Expression.create(e),(0,a.one)().div(o.Expression.create(t)))},t.radians=function radians(e){return o.Expression.create(e).times(o.Expression.Pi()).div(180)},t.degrees=function degrees(e){return o.Expression.create(e).times(180).div(o.Expression.Pi())},t.log10=function log10(e){return log(e,10)},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(P.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 o.Expression.create(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()))}}if(e.isFunction(c.CBRT))return(0,p.multiply)(cbrt(o.Expression.fromRational(e.getMultiplier())),(0,g.power)(e.toUnitMultiplier(),(0,a.third)()));return o.Expression.toFunction(c.CBRT,[e])},t.parens=function parens(e){return o.Expression.toFunction(c.WRAP,[o.Expression.create(e)])},t.fibonacci=function fibonacci(e){let t;t=(e=o.Expression.create(e)).isNUM()&&e.isInteger()?o.Expression.Number((0,y.fibonacci)(e.getMultiplier().numerator)):o.Expression.toFunction(m.FIB,[o.Expression.create(e)]);return 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(P.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,N.cos)(n.times(e))).div((0,a.four)())),r=n.pow((0,N.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,[o.Expression.create(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,[o.Expression.create(e)]);return t},t.step=function step(e){const t=!(e=o.Expression.create(e)).isConstant()&&!e.isComplex()&&(0,s.hasAssumptions)();if(e.isPosInf()||e.isNegInf())return e.isNegInf()?(0,a.zero)():(0,a.one)();if(e.isNUM())return e.sign()<0?(0,a.zero)():(0,a.one)();if(t&&e.lt((0,a.zero)()))return(0,a.zero)();if(t&&e.gte((0,a.zero)()))return(0,a.one)();return o.Expression.toFunction("step",[e])},t.rect=function rect(e){const t=o.Expression.create(e),n=abs(t);if(n.lt((0,a.half)()))return(0,a.one)();if(n.eq((0,a.half)()))return(0,a.half)();if(n.gt((0,a.half)()))return(0,a.zero)();return o.Expression.toFunction("rect",[t])},t.tri=function tri(e){const t=o.Expression.create(e),n=abs(t);if(n.lt((0,a.one)()))return(0,a.one)().minus(n);if(n.gte((0,a.one)()))return(0,a.zero)();return o.Expression.toFunction("tri",[t])},t.dirac=function dirac(e){let t;const n=!e.isConstant()&&!e.isComplex()&&(0,s.hasAssumptions)();t=e.isPosInf()||e.isNegInf()?(0,a.zero)():e.isNUM()?e.isZero()?o.Expression.toFunction(c.DIRAC,[o.Expression.create(e)]):(0,a.zero)():n&&(e.gt(0)||e.lt(0))?(0,a.zero)():o.Expression.toFunction(c.DIRAC,[o.Expression.create(e)]);return t},t.numeric=function numeric(e,t){return e=o.Expression.create(e),(0,P.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:T,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:T,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=o.Expression.create(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;t=(e=o.Expression.create(e)).isComplex()?(0,w.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]);return 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=o.Expression.create(n.ceil())}else t=o.Expression.toFunction(c.CEIL,[e]);return t},t.abs=abs,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.gammaIncomplete=gammaIncomplete,t.gammaIncompleteLower=function gammaIncompleteLower(e,t){const n=o.Expression.create(e),i=o.Expression.create(t);if(!n.isNUM()||!n.isInteger()||n.lte((0,a.zero)()))return o.Expression.toFunction("gamma_incomplete_lower",[n,i]);if(n.getMultiplier().numerator>BigInt(P.Settings.MAX_PRODUCT_AND_SUMMATION_ITERATION))return o.Expression.toFunction("gamma_incomplete_lower",[n,i]);return gamma(n).minus(gammaIncomplete(n,i))},t.gamma=gamma,t.erfc=function erfc(e){return(0,d.subtract)((0,a.one)(),erf(e))},t.erf=erf,t.sinc=function sinc(e){let t;t=e.isPosInf()||e.isNegInf()?(0,a.zero)():e.isZero()?(0,a.one)():(0,N.sin)(e).isZero()?(0,a.zero)():-1===e.sign()?sinc(e.neg()):e.isNUM()&&P.Settings.EVALUATE?o.Expression.Number((0,b.sinc)(e.getMultiplier().toDecimal())):P.Settings.EVALUATE?(0,N.sin)(e).div(e):o.Expression.toFunction(c.SINC,[o.Expression.create(e)]);return t},t.Si=function Si(e){let t;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()&&P.Settings.EVALUATE?o.Expression.Number((0,b.Si)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.SI,[o.Expression.create(e)]);return t},t.Shi=function Shi(e){let t;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()&&P.Settings.EVALUATE?o.Expression.Number((0,b.Shi)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.SHI,[o.Expression.create(e)]);return t},t.Ci=function Ci(e){let t;t=e.isPosInf()||e.isNegInf()?(0,a.zero)():e.isZero()?o.Expression.NegInf():-1===e.sign()?Ci(e.neg()):e.isNUM()&&P.Settings.EVALUATE?o.Expression.Number((0,b.Ci)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.CI,[o.Expression.create(e)]);return t},t.Chi=function Chi(e){let t;t=e.isPosInf()||e.isNegInf()?o.Expression.Inf():e.isZero()?o.Expression.NegInf():-1===e.sign()?Chi(e.neg()):e.isNUM()&&P.Settings.EVALUATE?o.Expression.Number((0,b.Chi)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.CHI,[o.Expression.create(e)]);return t},t.Ei=function Ei(e){let t;t=e.isPosInf()||e.isNegInf()?e.isNegInf()?(0,a.zero)():o.Expression.Inf():e.isZero()?o.Expression.NegInf():e.isNUM()&&P.Settings.EVALUATE?o.Expression.Number((0,b.Ei)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.EI,[o.Expression.create(e)]);return 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()&&P.Settings.EVALUATE){const n=e.getMultiplier();t=n.isNegative()?o.Expression.toFunction(c.LI,[o.Expression.create(e)]):o.Expression.Number((0,b.Li)(n.toDecimal()))}else t=o.Expression.toFunction(c.LI,[o.Expression.create(e)]);return t},t.log=log,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=exp,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>P.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>P.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,g.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.contains=function contains(e,t){let n;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]);return 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),g=n(3957),d=n(6910),h=n(9565),x=n(5584),E=n(4703),y=n(551),v=n(982),w=n(4600),b=n(9571),P=n(5817),A=n(7867),N=n(1649),M=n(706),T="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,g.power)((0,g.sqrtToPow)(e.toUnitMultiplier()),(0,a.half)())):(0,g.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(P.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=o.Expression.create(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,[o.Expression.create(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=o.Expression.create(n.floor())}else t=o.Expression.toFunction(c.FLOOR,[e]);return t}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}function roundRatioToNearestEven(e,t){const n=e/t,i=e%t,r=2n*(0,y.abs)(i),s=BigInt((0,y.sign)(e));return r<t?n:r>t?n+s:(0,y.isEven)(n)?n:n+s}function mod(e,t){let n;if(e.isPosInf()||e.isNegInf()||t.isPosInf()||t.isNegInf())throw new E.UndefinedError((0,E.message)("undefinedValue"));if(e.isNUM()&&t.isNUM())n=o.Expression.create(e.getMultiplier().mod(t.getMultiplier()));else if(e.isComplex()||t.isComplex()){const i=e.realPart(),r=e.imagPart(),s=t.realPart(),a=t.imagPart();if(i.isNUM()&&i.isInteger()&&r.isNUM()&&r.isInteger()&&s.isNUM()&&s.isInteger()&&a.isNUM()&&a.isInteger()){const l=i.getMultiplier().numerator,u=r.getMultiplier().numerator,m=s.getMultiplier().numerator,p=a.getMultiplier().numerator,g=m*m+p*p;if(0n===g)n=o.Expression.toFunction(c.MOD,[o.Expression.create(e),o.Expression.create(t)]);else{const e=roundRatioToNearestEven(l*m+u*p,g),t=roundRatioToNearestEven(u*m-l*p,g),i=l-m*e+p*t,r=u-m*t-p*e;n=o.Expression.Number(i).plus(o.Expression.Number(r).i())}}else n=o.Expression.toFunction(c.MOD,[o.Expression.create(e),o.Expression.create(t)])}else n=e.isPolynomialLike()&&t.isPolynomialLike()&&(0,h.maxCommonVariableOccurrence)(e,t)?(0,h.polyMod)(e,t).getExpression():o.Expression.toFunction(c.MOD,[o.Expression.create(e),o.Expression.create(t)]);return n}function gammaIncomplete(e,t){const n=o.Expression.create(e),i=o.Expression.create(t);if(!n.isNUM()||!n.isInteger()||n.lte((0,a.zero)()))return o.Expression.toFunction("gamma_incomplete",[n,i]);const r=n.getMultiplier().numerator;if(r>BigInt(P.Settings.MAX_PRODUCT_AND_SUMMATION_ITERATION))return o.Expression.toFunction("gamma_incomplete",[n,i]);let s=(0,a.one)(),l=(0,a.one)(),u=1n;for(;u<r;)s=s.times(i).div(o.Expression.Number(u)),l=l.plus(s),u++;return factorial(o.Expression.Number(r-1n)).times(exp(i.neg())).times(l)}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,b.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,b.erf)(n.toDecimal()))}else t=o.Expression.toFunction(c.ERF,[o.Expression.create(e)]);return t}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,[o.Expression.create(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();s=log(sqrt(t.sq().plus(n.sq()))).plus((0,N.atan2)(n,t).i())}else if(P.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,M.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,M.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,[o.Expression.create(e)]),i&&s&&!r&&(s=s.div(log(i))),s}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 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)():P.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,N.cos)(r),l=(0,N.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})`))}function toIntegerBigint(e){if(!e.isInteger())return null;const t=e.getMultiplier();if(1n!==t.denominator)return null;return t.numerator}},1649(e,t,n){"use strict";t.ATANH=t.ASINH=t.ACOSH=t.TANH=t.COSH=t.SINH=t.ASEC=t.ATAN=t.COT=t.ACOS=t.ASIN=t.TAN=t.SIN=t.COS=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());if(t.isFunction(s.ACOS)&&t.getArguments()[0].eq(e.invert()))return i.Expression.toFunction(s.ASEC,[e]);return t},t.acsc=function acsc(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return(0,r.zero)();const t=asin(e.invert());if(t.isFunction(s.ASIN)&&t.getArguments()[0].eq(e.invert()))return i.Expression.toFunction(s.ACSC,[e]);return t},t.acot=function acot(e){let t;(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)));return 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));t.hasFunction(s.COSH)&&(t=i.Expression.toFunction(s.SECH,[e]));return 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));t.hasFunction(s.SINH)&&(t=i.Expression.toFunction(s.CSCH,[e]));return 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));t.hasFunction(s.TANH)&&(t=i.Expression.toFunction(s.COTH,[e]));return 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))}t||(t=i.Expression.toFunction(s.ASECH,[e]));return 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))}t||(t=i.Expression.toFunction(s.ACSCH,[e]));return t},t.acoth=function acoth(e){if((e=i.Expression.create(e)).isPosInf()||e.isNegInf())return(0,r.zero)();let t;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]));return 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 g=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(),g=p.div(o.Rational.PI);if(g.isInteger())t=i.Expression.Number((0,l.isEven)(g.numerator)?"1":"-1");else{switch(g.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!==g.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,"COS",{enumerable:!0,get:function(){return g.COS}}),Object.defineProperty(t,"SIN",{enumerable:!0,get:function(){return g.SIN}}),Object.defineProperty(t,"TAN",{enumerable:!0,get:function(){return g.TAN}}),Object.defineProperty(t,"ASIN",{enumerable:!0,get:function(){return g.ASIN}}),Object.defineProperty(t,"ACOS",{enumerable:!0,get:function(){return g.ACOS}}),Object.defineProperty(t,"COT",{enumerable:!0,get:function(){return g.COT}}),Object.defineProperty(t,"ATAN",{enumerable:!0,get:function(){return g.ATAN}}),Object.defineProperty(t,"ASEC",{enumerable:!0,get:function(){return g.ASEC}}),Object.defineProperty(t,"SINH",{enumerable:!0,get:function(){return g.SINH}}),Object.defineProperty(t,"COSH",{enumerable:!0,get:function(){return g.COSH}}),Object.defineProperty(t,"TANH",{enumerable:!0,get:function(){return g.TANH}}),Object.defineProperty(t,"ACOSH",{enumerable:!0,get:function(){return g.ACOSH}}),Object.defineProperty(t,"ASINH",{enumerable:!0,get:function(){return g.ASINH}}),Object.defineProperty(t,"ATANH",{enumerable:!0,get:function(){return g.ATANH}})},6925(e,t,n){"use strict";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)},706(e,t,n){"use strict";t.stripPower=t.product=void 0,t.continuedFraction=function continuedFraction(e,t=10){const n=s.Expression.create(e),r=s.Expression.create(t);if(!r.isNUM()||!r.isInteger()||r.lt((0,o.zero)())||r.getMultiplier().numerator>BigInt(Number.MAX_SAFE_INTEGER))throw new p.UnexpectedInputError((0,p.message)("wrongInput",{expected:"a non-negative integer",received:r.text()}));const a=Number(r.getMultiplier().numerator),l=n.isConstant()?n.evaluate():n;if(!l.isNUM())return new i.Collection([(0,o.one)(),n,new m.Vector]);const u=l.getMultiplier(),c=s.Expression.Number(u.sign()),g=u.numerator<0n?-u.numerator:u.numerator;let d=u.denominator;const h=g/d;let x=g%d;const E=[];for(let e=0;e<a&&0n!==x;e++){const e=d/x;E.push(s.Expression.Number(e));const t=d%x;d=x,x=t}return new i.Collection([c,s.Expression.Number(h),new m.Vector(E)])},t.count=function count(e){if(m.Vector.isVector(e)||c.ValuesSet.isValuesSet(e)||r.Dictionary.isDictionary(e))return s.Expression.Number(e.count());return s.Expression.toFunction(u.COUNT,[e])},t.size=function size(e){if(m.Vector.isVector(e)||l.Matrix.isMatrix(e)||i.Collection.isCollection(e)||c.ValuesSet.isValuesSet(e)||r.Dictionary.isDictionary(e))return m.Vector.create(e.dimensions());return s.Expression.toFunction(u.SIZE,[e])},t.isprime=function isprime(e){const t=s.Expression.create(e);let n;n=t.isInteger()?s.Expression.Number(Number((0,g.isPrimeBig)(t.getMultiplier().numerator))):s.Expression.toFunction(u.ISPRIME,[t]);return 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}});const l=n(4462),u=n(8300),c=n(5598),m=n(3982),p=n(4703),g=n(982)},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]}}},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,g=!0,d=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=g&&t.minus(i).abs().greaterThanOrEqualTo(i.minus(m).abs().dividedBy(2)),c=!g&&t.minus(i).abs().greaterThanOrEqualTo(m.minus(d).abs().dividedBy(2)),h=g&&i.minus(m).abs().lessThan(s),x=!g&&m.minus(d).abs().lessThan(s);o||u||c||h||x?(t=n.plus(i).dividedBy(2),g=!0):g=!1;const E=this.evaluate(t);d=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))}}},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})}}},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=n(551);t.PolynomialSolver=class PolynomialSolver{degree;eps;p;precision;constructor(e,t,n=50,i){let c;if(Array.isArray(e))c=e.map(e=>new s.Complex(e,0));else{const n=a.Polynomial.isPolynomial(e),i=n?e.getExpression():"string"==typeof e?o.Expression.create(e):e,m=n?e.variables:i.variables();if(!i.isPolynomialLike())throw new l.PolynomialError((0,l.message)("notAPolynomial"));if(m.length>1||1===m.length&&t&&m[0]!==t)throw new l.UnexpectedInputError((0,l.message)("tooManyUnknowns"));const p=t??m[0],g=(void 0===p?[i]:i.coeffs(p).toArray()).map(e=>{const t=e.realPart(),n=e.imagPart();if(!t.isNUM()||!n.isNUM())throw new l.UnexpectedInputError((0,l.message)("wrongInput",{expected:"numeric polynomial coefficients",received:e.text()}));return{real:t.getMultiplier(),imaginary:n.getMultiplier()}});if(g.every(e=>!e.real.asDecimal&&!e.imaginary.asDecimal)){const e=(0,u.LCM)(...g.flatMap(e=>[e.real.denominator,e.imaginary.denominator]));c=g.map(t=>{const n=t.real.numerator*(e/t.real.denominator),i=t.imaginary.numerator*(e/t.imaginary.denominator);return new s.Complex(new r.default(String(n)),new r.default(String(i)))})}else c=g.map(e=>new s.Complex(e.real.toDecimal(),e.imaginary.toDecimal()))}this.p=c.slice().reverse(),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.rootMagnitudeBound(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))))}const o=this.eps.mul(this.eps),a=this.eps.mul(.01),l=a.mul(a);for(let i=0;i<100;i++){let i=new r.default(0);const a=[];for(let r=0;r<t;r++){const l=n[r],[u,c]=this.evaluateWithDerivative(e,l);if(c.absSquared().lessThan(o)){a.push(l);continue}const m=u.div(c);let p=new s.Complex(0,0);for(let e=0;e<t;e++)if(r!==e){const t=l.sub(n[e]);t.absSquared().greaterThan(o)&&(p=p.add(t.reciprocal()))}const g=new s.Complex(1,0).sub(m.mul(p)),d=g.absSquared().lessThan(o)?m:m.div(g),h=l.sub(d);a.push(h);const x=d.absSquared();x.greaterThan(i)&&(i=x)}for(let e=0;e<t;e++)n[e]=a[e];if(i.lessThan(l))break}for(let i=0;i<t;i++)n[i]=this.newtonRefine(e,n[i]);return n}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)}}evaluateWithDerivative(e,t){const n=e.length-1;let i=e[0],r=e[0];for(let s=1;s<n;s++)i=i.mul(t).add(e[s]),r=r.mul(t).add(i);return i=i.mul(t).add(e[n]),[i,r]}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}isNumericalRoot(e){let t=this.p[0],n=this.p[0].abs();const i=e.abs();for(let r=1;r<this.p.length;r++)t=t.mul(e).add(this.p[r]),n=n.mul(i).plus(this.p[r].abs());const r=this.eps.mul(n.plus(1));return t.absSquared().lte(r.mul(r))}nativeAberthSeeds(e){const t=e.length-1,n=[];for(const t of e){const e=t.re.toNumber(),i=t.im.toNumber();if(!Number.isFinite(e)||!Number.isFinite(i))return null;n.push({re:e,im:i})}const i=Math.hypot(n[0].re,n[0].im);if(!Number.isFinite(i)||0===i)return null;const o=this.rootMagnitudeBound(e).toNumber();if(!Number.isFinite(o))return null;const a=[];for(let e=0;e<t;e++){const n=2*Math.PI*e/t+.4,i=.9*o*(1+.01*e/t);a.push({re:i*Math.cos(n),im:i*Math.sin(n)})}const l=Math.max(this.eps.toNumber(),16*Number.EPSILON),u=l*l;for(let e=0;e<100;e++){let e=0;const i=[];for(let r=0;r<t;r++){const s=a[r];let o=n[0].re,l=n[0].im,c=n[0].re,m=n[0].im;for(let e=1;e<t;e++){const t=o*s.re-l*s.im+n[e].re,i=o*s.im+l*s.re+n[e].im,r=c*s.re-m*s.im+t,a=c*s.im+m*s.re+i;o=t,l=i,c=r,m=a}const p=o*s.re-l*s.im+n[t].re,g=o*s.im+l*s.re+n[t].im,d=c*c+m*m;if(!Number.isFinite(p)||!Number.isFinite(g)||!Number.isFinite(d))return null;if(d<u){i.push(s);continue}const h=(p*c+g*m)/d,x=(g*c-p*m)/d;let E=0,y=0;for(let e=0;e<t;e++){if(r===e)continue;const t=s.re-a[e].re,n=s.im-a[e].im,i=t*t+n*n;i>u&&(E+=t/i,y-=n/i)}const v=1-(h*E-x*y),w=-(h*y+x*E),b=v*v+w*w;let P=h,A=x;b>=u&&(P=(h*v+x*w)/b,A=(x*v-h*w)/b);const N={re:s.re-P,im:s.im-A},M=P*P+A*A;if(!Number.isFinite(N.re)||!Number.isFinite(N.im)||!Number.isFinite(M))return null;i.push(N),e=Math.max(e,M)}for(let e=0;e<t;e++)a[e]=i[e];if(e<u)break}return a.map(e=>new s.Complex(new r.default(e.re),new r.default(e.im)))}newtonRefine(e,t){const n=this.eps.mul(this.eps),i=this.eps.mul(1e-6),r=i.mul(i);for(let s=0;s<20;s++){const[s,o]=this.evaluateWithDerivative(e,t);if(s.absSquared().lessThan(r))break;if(o.absSquared().lessThan(n))break;const a=s.div(o),l=t.sub(a);if(a.abs().lessThan(i.mul(l.abs().plus(1)))){t=l;break}t=l}return t}rootMagnitudeBound(e){let t=new r.default(0);const n=e[0].abs();for(let i=1;i<e.length;i++){const s=e[i].abs().div(n);if(!s.isZero()){const e=s.pow(new r.default(1).div(i));e.greaterThan(t)&&(t=e)}}return t.mul(2)}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)]}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.nativeAberthSeeds(n);if(o){const r=o.map(e=>this.newtonRefine(n,e));if(r.length===i&&r.every(e=>this.isNumericalRoot(e)))return this.finalize(r,e,t)}const a=this.aberthMethod(n);return this.finalize(a,e,t)}validatedRoots(e=!0){const t=r.default.precision;r.default.set({precision:this.precision});const n=this.roots(!1).filter(e=>this.isNumericalRoot(e));return this.finalize(n,e,t)}}},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;if(s&&r.isNearlyZero()||!s){const t=this.excluded.has(e);this.add(e),i=!t}}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((0,u.message)("indexOutOfBounds",{index:String(t),type:String(this.dataType),length:String(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}addValidatedNumericalSolutions(e){const t=[...e],n=this.elements,i=new Set;for(const e of t){if(!s.Expression.isExpression(e)){const t=e;throw new u.UnexpectedDataType((0,u.message)("expressionExpected",{type:t.dataType}))}const t=e.isComplex()?e.realPart():e,r=e.isComplex()?e.imagPart():s.Expression.Number(0);if(!t.isNUM()||!r.isNUM())throw new u.UnexpectedDataType((0,u.message)("expressionExpected",{type:e.dataType}));const o=t.getMultiplier(),a=r.getMultiplier(),l=`${o.numerator}/${o.denominator}|${a.numerator}/${a.denominator}`;if(i.has(l)||this.excluded.has(e))continue;let c=!1;for(const t of n)if(t.eq(e)&&e.eq(t)){c=!0;break}c||(this.addKnownUnique(e),i.add(l))}return this}append(e){const t=0===this.count()&&0===this.excluded.count();if(this.exclude(e.getExcluded()),t)for(const t of e.elements)this.addKnownUnique(t);else 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}appendValidatedNumerical(e){this.exclude(e.getExcluded()),this.addValidatedNumericalSolutions(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(e){return this.copy().each(t=>t.evaluate(e))}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},8520(e,t,n){"use strict";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)())),g=(0,r.zero)().minus(o).div((0,r.three)()),d=(0,l.sqrt)(p),h=(0,r.zero)().minus(m).div((0,r.two)()),x=(0,l.cbrt)(h.plus(d)),E=(0,l.cbrt)(h.minus(d)),y=x.plus(E),v=(0,l.sqrt)((0,r.three)()),w=(0,r.zero)().minus((0,r.half)()),b=(0,l.sqrt)((0,r.zero)().minus((0,r.one)())),P=x.plus(E),A=x.minus(E),N=w.times(P).plus(v.div((0,r.two)()).times(A).times(b)),M=w.times(P).minus(v.div((0,r.two)()).times(A).times(b));return[y.plus(g),N.plus(g),M.plus(g)]}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),g=c.minus((0,r.three)().times(u.pow((0,r.two)())).div((0,r.eight)())),d=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(d.isZero()){const e=SymbolicSolver.quadratic([h,g,(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(d.pow((0,r.two)())),g.pow((0,r.two)()).minus((0,r.four)().times(h)),(0,r.two)().times(g),(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 w=(0,l.sqrt)(v);if(w.isZero())for(const e of y)if(!e.isZero()){const t=(0,l.sqrt)(e);if(!t.isZero()){v=e,w=t;break}}const b=g.plus(v),P=b.div((0,r.two)()).minus(d.div((0,r.two)().times(w))),A=b.div((0,r.two)()).plus(d.div((0,r.two)().times(w))),N=SymbolicSolver.quadratic([P,w,(0,r.one)()]),M=SymbolicSolver.quadratic([A,(0,r.zero)().minus(w),(0,r.one)()]);return[N[0].plus(x),N[1].plus(x),M[0].plus(x),M[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(),g=[];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)&&g.push({term:e,factor:n[0]})}if(1===g.length){const{term:e,factor:i}=g[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 d=n.filter(e=>e.isFunction()&&e.hasVariable(t));if(1===d.length){const e=d[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)))}}}}if(e.isFunction(u.SIN)){return solveForX(e.getArguments()[0],a)}if(e.isFunction(u.COS)){return solveForX(e.getArguments()[0],p)}if(e.isFunction(u.TAN)){return solveForX(e.getArguments()[0],a)}if(e.isFunction(u.COT)){return solveForX(e.getArguments()[0],p)}if(e.isFunction(s.LOG)){return solveForX(e.getArguments()[0],(0,r.one)())}if(e.isFunction(u.SINH)){return solveForX(e.getArguments()[0],(0,r.zero)())}if(e.isFunction(u.TANH)){return solveForX(e.getArguments()[0],(0,r.zero)())}if(e.isFunction(u.ASIN)){return solveForX(e.getArguments()[0],(0,r.zero)())}if(e.isFunction(u.ACOS)){return solveForX(e.getArguments()[0],(0,r.one)())}if(e.isFunction(u.ATAN)){return solveForX(e.getArguments()[0],(0,r.zero)())}if(e.isFunction(u.ASEC)){return solveForX(e.getArguments()[0],(0,r.one)())}if(e.isFunction(u.ASINH)){return solveForX(e.getArguments()[0],(0,r.zero)())}if(e.isFunction(u.ACOSH)){return solveForX(e.getArguments()[0],(0,r.one)())}if(e.isFunction(u.ATANH)){return solveForX(e.getArguments()[0],(0,r.zero)())}if(e.isFunction(s.ABS)){return solveForX(e.getArguments()[0],(0,r.zero)())}}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},7328(e,t,n){"use strict";t.loadSolveFunctions=function loadSolveFunctions(){Object.assign(i.mathFunctionRegistry,{solve:(0,i.systemFunction)({fn:r.solve,minArgs:2,maxArgs:2,equationArgs:[0],distElWise:!1}),roots:(0,i.systemFunction)({fn:r.roots,minArgs:1,maxArgs:2,distElWise:!1}),solveeqs:(0,i.systemFunction)({fn:s.solveSystem,minArgs:1,maxArgs:1,distElWise:!1})})};const i=n(9426),r=n(2295),s=n(6950)},1280(e,t,n){"use strict";t.NonlinearSystemError=void 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 u=t??(0,i.collectVariablesSet)(n);if(0===u.length){for(const e of n)if(!e.eq((0,s.zero)()))return{type:"inconsistent"};return{type:"unique",solutions:{}}}const{coeffMatrix:c,constants:m}=function extractCoefficients(e,t){const n=t.length,i=[],r=[];for(let o=0;o<e.length;o++){const a=e[o].coeffs(...t),u=new Array(n).fill(null).map(()=>(0,s.zero)());let c=(0,s.zero)();a.each((e,t)=>{const n=t.split(",").map(Number),i=n.reduce((e,t)=>e+t,0);if(0===i)c=e;else{if(1!==i)throw new NonlinearSystemError((0,l.message)("solveLinearNonlinearDegree",{equation:String(o+1),degree:String(i)}));{const t=n.findIndex(e=>1===e);-1!==t&&(u[t]=e)}}});const m=[...u,c];for(const e of m)for(const n of t)if(e.hasVariable(n))throw new NonlinearSystemError((0,l.message)("solveLinearNonPolynomialVariable",{equation:String(o+1),variable:n}));i.push(u),r.push(c)}return{coeffMatrix:i,constants:r}}(n,u),p=n.length,g=u.length,d=[];for(let e=0;e<p;e++){const t=[];for(let n=0;n<g;n++)t.push(c[e][n]);t.push((0,s.zero)().minus(m[e])),d.push(t)}const h=new o.Matrix(...d).rref(),x=h.rows(),E=(0,s.zero)(),y=[];for(let e=0;e<x;e++){let t=-1;for(let n=0;n<g;n++)if(!h.get(e,n).eq(E)){t=n;break}if(-1===t){if(!h.get(e,g).eq(E))return{type:"inconsistent"};y.push(-1)}else y.push(t)}const v=new Set;for(const e of y)-1!==e&&v.add(e);const w=[];for(let e=0;e<g;e++)v.has(e)||w.push(e);if(0===w.length){const e={};for(let t=0;t<x;t++){const n=y[t];-1!==n&&(e[u[n]]=h.get(t,g))}return{type:"unique",solutions:e}}const b=w.map(e=>u[e]),P={};for(const e of b)P[e]=r.Expression.create(e);for(let e=0;e<x;e++){const t=y[e];if(-1===t)continue;let n=h.get(e,g);for(const t of w){const i=h.get(e,t);i.eq(E)||(n=n.minus(i.times(r.Expression.create(u[t]))))}P[u[t]]=n}return{type:"infinite",solutions:P,freeVariables:b}};const i=n(6338),r=n(296),s=n(6099),o=n(4462),a=n(3982),l=n(4703);class NonlinearSystemError extends Error{}t.NonlinearSystemError=NonlinearSystemError},2295(e,t,n){"use strict";t.roots=function roots(e,t){const n=o.Expression.create(e),i=n.variables();if(0===i.length&&n.isConstant()){const e=n.evaluate();if(e.isNUM()){const t=e.abs().pow((0,a.half)()),n=e.sign()<0?t.times(o.Expression.Img()):t;return new c.Vector([n,n.neg()])}}const r=void 0===t?i[0]:(0,l.assertPlainVariableAndGetString)(o.Expression.create(t));if(void 0===r)return new c.Vector([n]);return new c.Vector(new g.PolynomialSolver(n,r).validatedRoots())},t.solve=function solve(e,t,n){const l=new d.SolutionSet;let c=!1;try{const{expression:n,x:p}=(0,x.prepareSolverInputs)(e,t);c=n.hasDecimal();const g=n.variables();if(n.isZero())l.addSolution((0,a.all)(),n,p),l.solutionsType="symbolic";else if(n.isVAR()||!g.includes(p)&&!n.isNUM())l.addSolution((0,a.zero)(),n,p),l.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,c=void 0!==t&&1===g.length&&g[0]===p&&t.every(e=>e.isNUM());let x;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),l=(0,a.two)().times(o.Expression.Variable(u.PI_NAME));x=[];for(let t=0;t<e;t++){let e=(0,a.one)();if(t>0){const i=l.copy().times(o.Expression.create(t)).div(n);e=(0,m.cos)(i).plus((0,m.sin)(i).times(o.Expression.Img()))}x.push(s.copy().times(e))}}}const E=3===t?.length&&t[0].isZero()?(0,r.factorCommonPower)(n):void 0,y=E?.isProduct()?E.elementsArray():void 0,v=e?new h.SymbolicSolver(n,p).solve():void 0;let w,b;if(!n.isPolynomialLike())try{const e=(0,s.toCommonDenominator)(n),t=e.getNumerator().expand(),i=e.getDenominator().expand();!i.isOne()&&t.isPolynomialLike()&&i.isPolynomialLike()&&(w=t,b=i)}catch{}if(x){const e=new d.SolutionSet(x);e.solutionsType="symbolic",l.addSolutions(e,n,p)}else if(y){l.addSolution((0,a.zero)(),n,p),l.solutionsType="symbolic";const e=calculateSolutions(y,p);c&&"numeric"===e.solutionsType?l.appendValidatedNumerical(e):c?l.append(e):l.addSolutions(e,n,p)}else if(v&&!v.unsolved){const e=new d.SolutionSet(v.solutions);e.solutionsType="symbolic",l.addSolutions(e,n,p)}else if(w&&b){const e=calculateSolutions([b],p);l.exclude(e),l.addSolutions(calculateSolutions([w],p),n,p)}else{const e=(0,i.factorExpressionParts)(n),t=c,r=calculateSolutions(e.denominator,p,t);l.exclude(r);const s=calculateSolutions(e.numerator,p,t);c&&"numeric"===s.solutionsType?l.appendValidatedNumerical(s):c?l.append(s):l.addSolutions(s,n,p)}}}catch(e){}c&&l.each(e=>(e.getMultiplier().asDecimal=!0,e));return l};const i=n(2724),r=n(6117),s=n(8989),o=n(296),a=n(6099),l=n(1897),u=n(8300),c=n(3982),m=n(1649),p=n(7176),g=n(2646),d=n(1526),h=n(8520),x=n(205);class FactorRootAccumulator extends d.SolutionSet{appendFactorSolutions(e){for(const t of e.elements)this.addKnownUnique(t);void 0===this.solutionsType?this.solutionsType=e.solutionsType:void 0!==e.solutionsType&&this.solutionsType!==e.solutionsType&&(this.solutionsType="mixed")}}function calculateSolutions(e,t,n=!1){const i=n?new FactorRootAccumulator:new d.SolutionSet,r=e.map(e=>{let r=e;if(e.isEXP()&&e.getBase().isE())r=(0,a.zero)();else if(e.hasVariable(t)){let s=new h.SymbolicSolver(e,t).solve();if(s.unsolved&&e.isPolynomialLike()&&e.getPower().gt(4)){const n=e.toLinearAndUnitMultiplier();s=new h.SymbolicSolver(n,t).solve()}if(!s.unsolved){if(n){const n=new d.SolutionSet;n.addSolutions(s.solutions,e,t),n.count()>0&&(n.solutionsType="symbolic",i.appendFactorSolutions(n))}else{const n=new d.SolutionSet(s.solutions);n.solutionsType="symbolic",i.addSolutions(n,e,t)}r=(0,a.zero)()}}return r}).filter(e=>!e.eq((0,a.zero)())).map(e=>{let r=e;const s=e.variables();if(1===s.length&&s[0]===t&&e.isPolynomialLike()){const s=new g.PolynomialSolver(e,t).validatedRoots();if(s.length>0)if(n){const e=new d.SolutionSet;e.addValidatedNumericalSolutions(s),e.solutionsType="numeric",i.appendFactorSolutions(e)}else i.addValidatedNumericalSolutions(s),i.solutionsType=void 0===i.solutionsType||"numeric"===i.solutionsType?"numeric":"mixed";r=(0,a.zero)()}return r}).filter(e=>!e.eq((0,a.zero)()));for(const e of r){const n=e.variables(),r={method:"Brent"};if(1===n.length&&n[0]===t){const n=new p.FunctionSolver(e,t,r).roots();if(n.length>0){for(const e of n)i.add(e);i.solutionsType=void 0===i.solutionsType||"numeric"===i.solutionsType?"numeric":"mixed"}}}return i}},6950(e,t,n){"use strict";t.solveSystem=function solveSystem(e,t){const n=function normalizeEquations(e){if(u.Vector.isVector(e)){const t=[];for(let n=0;n<e.count();n++)t.push((0,d.normalizeSolverExpression)(e.__get__([n])));return t}return e.map(e=>(0,d.normalizeSolverExpression)(e))}(e);if(0===n.length)return new u.Vector([new s.Dictionary]);const h=t??(0,o.collectVariablesSet)(n);if(0===h.length)return n.every(e=>e.isZero())?new u.Vector([new s.Dictionary]):new u.Vector([]);const x=[],E=[];let y=!1;for(const e of n){let t=e;if(!e.isPolynomialLike()){const n=(0,r.toCommonDenominator)(e),i=n.getNumerator().expand(),s=n.getDenominator().expand();!s.isOne()&&i.isPolynomialLike()&&s.isPolynomialLike()&&(t=i,E.push(s),y=!0)}x.push(t)}try{const e=(0,p.solveLinearSystem)(x,h);if("inconsistent"===e.type)return new u.Vector([]);if("infinite"!==e.type){const t=new s.Dictionary,i=new Map;for(const n of h)if(n in e.solutions){const r=e.solutions[n];t.set(n,r),i.set(n,r)}return!y||isSystemSolution(n,E,i)?new u.Vector([t]):new u.Vector([])}if(!y){const t=new s.Dictionary;for(const n of h)n in e.solutions&&t.set(n,e.solutions[n]);return new u.Vector([t])}}catch(e){if(!(e instanceof p.NonlinearSystemError))throw e}if(x.every(e=>e.isPolynomialLike()))try{const e=x.map(e=>(0,l.expressionToIntegerSparsePolynomial)(e,h).polynomial),t=(0,i.Groebner)(e,"LEX",!0);if(1===t.length&&t[0].isConstant()&&0n!==t[0].constantTerm())return new u.Vector([]);let r=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,g.solve)(n[0],i).elements;for(const l of o){let o=!0;for(let e=1;e<n.length;e++){const t=n[e].subst(i,l);if(t.isConstant()&&!t.isNearlyZero()){o=!1;break}}if(!o)continue;const u=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,l):(0,a.zero)()}),c=new Map(e);c.set(i,l),s.push({assignment:c,basis:u})}}n=s}return n.map(e=>e.assignment)}(t.map(e=>(0,l.sparsePolynomialToExpression)(e,h)),h);if(y&&(r=r.filter(e=>isSystemSolution(n,E,e))),r.length>0)return new u.Vector(solutionsToDictionaries(r,h))}catch{}if(n.length<h.length)throw new c.UnsupportedOperationError((0,c.message)("solveSystemInfiniteSolutions"));const v=new m.MultivariateSolver(n,h).roots();if(0===v.length)return new u.Vector([]);return new u.Vector(solutionsToDictionaries(v,h))};const i=n(6431),r=n(8989),s=n(6528),o=n(6338),a=n(6099),l=n(6105),u=n(3982),c=n(4703),m=n(1683),p=n(1280),g=n(2295),d=n(205);function solutionsToDictionaries(e,t){const n=[];for(const i of e){if(i.size!==t.length)throw new c.UnsupportedOperationError((0,c.message)("solveSystemInfiniteSolutions"));const e=new s.Dictionary;for(const n of t){const t=i.get(n);if(!t)throw new c.UnsupportedOperationError((0,c.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}},205(e,t,n){"use strict";t.normalizeSolverExpression=normalizeSolverExpression,t.prepareSolverInputs=function prepareSolverInputs(e,t){const n=normalizeSolverExpression(e),i=n.variables();let r;if(t){if(r=extractVariable(t),r&&i[0]&&!i.includes(r))throw new a.UnexpectedInputError((0,a.message)("tooManyUnknowns"))}else{if(1!==i.length)throw new a.UnexpectedInputError((0,a.message)("tooManyUnknowns"));r=i[0]}return{expression:n,x:r}};const i=n(6184),r=n(296),s=n(8300),o=n(238),a=n(4703);function normalizeSolverExpression(e){if(i.Equation.isEquation(e))return e.toLHS().LHS;if(r.Expression.isExpression(e))return e;const t=o.Parser.parse(String(e));if(i.Equation.isEquation(t))return t.toLHS().LHS;if(r.Expression.isExpression(t))return t;throw new a.UnexpectedInputError((0,a.message)("expressionExpected",{type:s.dataTypes[t.dataType]}))}function extractVariable(e){if(!(e=r.Expression.create(e)).isPlainVariable())throw new a.UnexpectedInputError((0,a.message)("plainVariableExpected",{input:e.text()}));return e.value}},8891(e,t){"use strict";t.remove=function remove(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1);return e},t.allEqual=function allEqual(e){if(0===e.length)return!0;const t=e[0];return e.every(e=>e===t)}},8015(e,t,n){"use strict";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};const i=n(3703)},8330(e){"use strict";e.exports=JSON.parse('{"name":"nerdamer","version":"2.0.0-rc.2","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","BREAKING_CHANGES.md","docs/MIGRATING_FROM_1X.md","docs/RELEASE_NOTES_2.md"],"scripts":{"lint":"eslint ./src/**/*.ts","lint:fix":"eslint ./src/**/*.ts --fix","typecheck":"tsc -p tsconfig.json --noEmit","test":"jest","test:coverage":"jest --coverage --runInBand","build:types":"npm run clean:modules && tsc -p tsconfig.build.json","build:modules":"npm run build:types","build:bundle":"npm run clean:dist && webpack --mode=production --env target=full","build:parser":"webpack --mode=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","docs:parser":"ts-node tools/generate-parser-docs.ts","docs:check":"typedoc --options typedoc.json --emit none","validate:package":"ts-node tools/validate-package.ts","prepublishOnly":"npm run typecheck && npm run test && npm run test:coverage && npm run build && npm run build:parser && npm run docs:parser && npm run docs:check && npm run validate:package","clean:modules":"node -e \\"require(\'node:fs\').rmSync(\'output\', { recursive: true, force: true })\\"","clean:dist":"node -e \\"require(\'node:fs\').rmSync(\'dist\', { recursive: true, force: true })\\""},"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.39.3","@types/eslint__js":"^8.42.3","@types/jest":"^30.0.0","@types/node":"^25.0.10","eslint":"^9.39.3","eslint-plugin-import":"^2.32.0","eslint-plugin-perfectionist":"^5.6.0","html-webpack-plugin":"^5.6.4","jest":"^30.2.0","prettier":"^3.8.1","terser-webpack-plugin":"^5.3.14","ts-jest":"^29.4.6","ts-loader":"^9.5.4","ts-node":"^10.9.2","typedoc":"^0.28.17","typescript":"^5.9.3","typescript-eslint":"^8.70.1","webpack":"^5.111.1","webpack-cli":"^7.2.3"},"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"]}}}')}};const t={};let n=function __webpack_require__(n){const i=t[n];if(void 0!==i)return i.exports;const r=t[n]={exports:{}};return e[n].call(r.exports,r,r.exports,__webpack_require__),r.exports}(1440);return n=n.default,n})());
|