@cortex-js/compute-engine 0.69.0 → 0.69.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{chunk-T44CNE4L.js → chunk-QIFCLIET.js} +1 -1
- package/dist/chunks/{chunk-ZQVRT3JA.js → chunk-TWCY5EYT.js} +1 -1
- package/dist/compile.esm.js +2 -2
- package/dist/compile.min.esm.js +2 -2
- package/dist/compile.min.umd.cjs +2 -2
- package/dist/compile.umd.cjs +2 -2
- package/dist/compute-engine.esm.js +4 -4
- package/dist/compute-engine.min.esm.js +3 -3
- package/dist/compute-engine.min.umd.cjs +2 -2
- package/dist/compute-engine.umd.cjs +3 -3
- package/dist/core.esm.js +2 -2
- package/dist/core.min.esm.js +2 -2
- package/dist/core.min.umd.cjs +2 -2
- package/dist/core.umd.cjs +2 -2
- package/dist/identities.esm.js +2 -2
- package/dist/identities.min.esm.js +2 -2
- package/dist/identities.min.umd.cjs +2 -2
- package/dist/identities.umd.cjs +2 -2
- package/dist/integration-rules.esm.js +3 -3
- package/dist/integration-rules.min.esm.js +3 -3
- package/dist/integration-rules.min.umd.cjs +2 -2
- package/dist/integration-rules.umd.cjs +2 -2
- package/dist/interval.esm.js +2 -2
- package/dist/interval.min.esm.js +2 -2
- package/dist/interval.min.umd.cjs +2 -2
- package/dist/interval.umd.cjs +2 -2
- package/dist/latex-syntax.esm.js +2 -2
- package/dist/latex-syntax.min.esm.js +2 -2
- package/dist/latex-syntax.min.umd.cjs +2 -2
- package/dist/latex-syntax.umd.cjs +2 -2
- package/dist/math-json.esm.js +2 -2
- package/dist/math-json.min.esm.js +2 -2
- package/dist/math-json.min.umd.cjs +2 -2
- package/dist/math-json.umd.cjs +2 -2
- package/dist/numerics.esm.js +2 -2
- package/dist/numerics.min.esm.js +2 -2
- package/dist/numerics.min.umd.cjs +2 -2
- package/dist/numerics.umd.cjs +2 -2
- package/dist/types/big-decimal/big-decimal.d.ts +2 -2
- package/dist/types/big-decimal/index.d.ts +2 -2
- package/dist/types/big-decimal/transcendentals.d.ts +2 -2
- package/dist/types/big-decimal/utils.d.ts +1 -1
- package/dist/types/common/ansi-codes.d.ts +1 -1
- package/dist/types/common/configuration-change.d.ts +1 -1
- package/dist/types/common/fuzzy-string-match.d.ts +1 -1
- package/dist/types/common/grapheme-splitter.d.ts +1 -1
- package/dist/types/common/interruptible.d.ts +1 -1
- package/dist/types/common/one-of.d.ts +1 -1
- package/dist/types/common/signals.d.ts +1 -1
- package/dist/types/common/type/ast-nodes.d.ts +1 -1
- package/dist/types/common/type/boxed-type.d.ts +1 -1
- package/dist/types/common/type/lexer.d.ts +1 -1
- package/dist/types/common/type/parse.d.ts +1 -1
- package/dist/types/common/type/parser.d.ts +3 -3
- package/dist/types/common/type/primitive.d.ts +1 -1
- package/dist/types/common/type/reduce.d.ts +1 -1
- package/dist/types/common/type/serialize.d.ts +1 -1
- package/dist/types/common/type/subtype.d.ts +1 -1
- package/dist/types/common/type/type-builder.d.ts +2 -2
- package/dist/types/common/type/types.d.ts +1 -1
- package/dist/types/common/type/utils.d.ts +3 -3
- package/dist/types/common/utils.d.ts +1 -1
- package/dist/types/compile.d.ts +11 -11
- package/dist/types/compute-engine/assume.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +8 -8
- package/dist/types/compute-engine/boxed-expression/apply.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/box.d.ts +4 -4
- package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +4 -4
- package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +6 -6
- package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +8 -8
- package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +8 -8
- package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +5 -5
- package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +4 -4
- package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/constants.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/constraint-subject.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/diophantine.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/exp-to-trig.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/explain-labels.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/explain.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/multivariate-gcd.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/multivariate-poly.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/numerics.d.ts +4 -4
- package/dist/types/compute-engine/boxed-expression/order.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/rule-index.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +4 -4
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve-domain.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/stochastic-equal.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +2 -2
- package/dist/types/compute-engine/boxed-expression/utils.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/validate.d.ts +2 -2
- package/dist/types/compute-engine/collection-utils.d.ts +1 -1
- package/dist/types/compute-engine/compilation/base-compiler.d.ts +2 -2
- package/dist/types/compute-engine/compilation/compile-expression.d.ts +3 -3
- package/dist/types/compute-engine/compilation/constant-folding.d.ts +2 -2
- package/dist/types/compute-engine/compilation/glsl-target.d.ts +3 -3
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +2 -2
- package/dist/types/compute-engine/compilation/interval-glsl-target.d.ts +3 -3
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +98 -98
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +6 -6
- package/dist/types/compute-engine/compilation/python-target.d.ts +2 -2
- package/dist/types/compute-engine/compilation/types.d.ts +1 -1
- package/dist/types/compute-engine/compilation/wgsl-target.d.ts +3 -3
- package/dist/types/compute-engine/cost-function.d.ts +1 -1
- package/dist/types/compute-engine/differential-equation-utils.d.ts +1 -1
- package/dist/types/compute-engine/engine-assumptions.d.ts +2 -2
- package/dist/types/compute-engine/engine-cache.d.ts +1 -1
- package/dist/types/compute-engine/engine-common-symbols.d.ts +1 -1
- package/dist/types/compute-engine/engine-compilation-targets.d.ts +2 -2
- package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +1 -1
- package/dist/types/compute-engine/engine-declarations.d.ts +4 -4
- package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +7 -7
- package/dist/types/compute-engine/engine-extension-contracts.d.ts +2 -2
- package/dist/types/compute-engine/engine-library-bootstrap.d.ts +1 -1
- package/dist/types/compute-engine/engine-numeric-configuration.d.ts +2 -2
- package/dist/types/compute-engine/engine-runtime-state.d.ts +1 -1
- package/dist/types/compute-engine/engine-scope.d.ts +1 -1
- package/dist/types/compute-engine/engine-sequences.d.ts +1 -1
- package/dist/types/compute-engine/engine-simplification-rules.d.ts +1 -1
- package/dist/types/compute-engine/engine-startup-coordinator.d.ts +2 -2
- package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
- package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +3 -3
- package/dist/types/compute-engine/free-functions.d.ts +4 -4
- package/dist/types/compute-engine/function-properties/index.d.ts +2 -2
- package/dist/types/compute-engine/function-utils.d.ts +2 -2
- package/dist/types/compute-engine/fungrim/loader.d.ts +2 -2
- package/dist/types/compute-engine/fungrim/types.d.ts +2 -2
- package/dist/types/compute-engine/global-types.d.ts +5 -5
- package/dist/types/compute-engine/index.d.ts +30 -30
- package/dist/types/compute-engine/interval/arithmetic.d.ts +2 -2
- package/dist/types/compute-engine/interval/comparison.d.ts +2 -2
- package/dist/types/compute-engine/interval/elementary.d.ts +2 -2
- package/dist/types/compute-engine/interval/index.d.ts +12 -12
- package/dist/types/compute-engine/interval/trigonometric.d.ts +2 -2
- package/dist/types/compute-engine/interval/types.d.ts +1 -1
- package/dist/types/compute-engine/interval/util.d.ts +2 -2
- package/dist/types/compute-engine/latex-syntax/dictionary/default-dictionary.d.ts +17 -17
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-colors.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +2 -2
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +2 -2
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +4 -4
- package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +2 -2
- package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +3 -3
- package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +3 -3
- package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +2 -2
- package/dist/types/compute-engine/latex-syntax/parse.d.ts +5 -5
- package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +2 -2
- package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +2 -2
- package/dist/types/compute-engine/latex-syntax/serializer.d.ts +3 -3
- package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/types.d.ts +5 -5
- package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
- package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/calculus.d.ts +2 -2
- package/dist/types/compute-engine/library/collections.d.ts +1 -1
- package/dist/types/compute-engine/library/colors.d.ts +1 -1
- package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
- package/dist/types/compute-engine/library/complex.d.ts +2 -2
- package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
- package/dist/types/compute-engine/library/core.d.ts +1 -1
- package/dist/types/compute-engine/library/distributions.d.ts +1 -1
- package/dist/types/compute-engine/library/fractals.d.ts +1 -1
- package/dist/types/compute-engine/library/library.d.ts +2 -2
- package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
- package/dist/types/compute-engine/library/logic.d.ts +1 -1
- package/dist/types/compute-engine/library/measurement-arithmetic.d.ts +2 -2
- package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
- package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +2 -2
- package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
- package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
- package/dist/types/compute-engine/library/sets.d.ts +2 -2
- package/dist/types/compute-engine/library/special-functions.d.ts +1 -1
- package/dist/types/compute-engine/library/statistics.d.ts +1 -1
- package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/library/type-handlers.d.ts +3 -3
- package/dist/types/compute-engine/library/unit-data.d.ts +2 -2
- package/dist/types/compute-engine/library/units.d.ts +2 -2
- package/dist/types/compute-engine/library/utils.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +6 -6
- package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +5 -5
- package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +5 -5
- package/dist/types/compute-engine/numeric-value/types.d.ts +4 -4
- package/dist/types/compute-engine/numerics/bernoulli.d.ts +1 -1
- package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/complex-esm-augment.d.ts +1 -1
- package/dist/types/compute-engine/numerics/differential-equations.d.ts +1 -1
- package/dist/types/compute-engine/numerics/diophantine.d.ts +1 -1
- package/dist/types/compute-engine/numerics/distributions.d.ts +1 -1
- package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
- package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
- package/dist/types/compute-engine/numerics/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-complex.d.ts +2 -2
- package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
- package/dist/types/compute-engine/numerics/oscillatory-quadrature.d.ts +1 -1
- package/dist/types/compute-engine/numerics/polynomial-roots.d.ts +1 -1
- package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
- package/dist/types/compute-engine/numerics/random.d.ts +1 -1
- package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
- package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
- package/dist/types/compute-engine/numerics/special-functions.d.ts +2 -2
- package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
- package/dist/types/compute-engine/numerics/strings.d.ts +2 -2
- package/dist/types/compute-engine/numerics/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/oeis.d.ts +2 -2
- package/dist/types/compute-engine/rubi/compile.d.ts +3 -3
- package/dist/types/compute-engine/rubi/driver.d.ts +3 -3
- package/dist/types/compute-engine/rubi/loader.d.ts +1 -1
- package/dist/types/compute-engine/rubi/match.d.ts +1 -1
- package/dist/types/compute-engine/rubi/normal-form.d.ts +2 -2
- package/dist/types/compute-engine/rubi/rubi-utils.d.ts +3 -3
- package/dist/types/compute-engine/rubi/types.d.ts +1 -1
- package/dist/types/compute-engine/sequence.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/differential-equations.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/explain-derivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu-cost.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +2 -2
- package/dist/types/compute-engine/symbolic/fu.d.ts +6 -6
- package/dist/types/compute-engine/symbolic/limit.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/residue.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/series.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/trig-rewrite.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensor-fields.d.ts +3 -3
- package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
- package/dist/types/compute-engine/types-definitions.d.ts +6 -6
- package/dist/types/compute-engine/types-engine.d.ts +19 -19
- package/dist/types/compute-engine/types-evaluation.d.ts +5 -5
- package/dist/types/compute-engine/types-expression.d.ts +9 -9
- package/dist/types/compute-engine/types-kernel-evaluation.d.ts +5 -5
- package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types-serialization.d.ts +2 -2
- package/dist/types/compute-engine/types.d.ts +8 -8
- package/dist/types/compute-engine.d.ts +27 -27
- package/dist/types/core.d.ts +12 -12
- package/dist/types/identities.d.ts +3 -3
- package/dist/types/integration-rules.d.ts +3 -3
- package/dist/types/interval.d.ts +8 -8
- package/dist/types/latex-syntax.d.ts +7 -7
- package/dist/types/math-json/symbols.d.ts +1 -1
- package/dist/types/math-json/types.d.ts +1 -1
- package/dist/types/math-json/utils.d.ts +1 -1
- package/dist/types/math-json.d.ts +3 -3
- package/dist/types/numerics.d.ts +23 -23
- package/package.json +2 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** Compute Engine 0.69.
|
|
2
|
-
import{$ as ls,$a as gh,$b as Ve,$c as Rr,A as Nt,Aa as Xu,Ab as FN,Ac as q,B as wt,Ba as be,Bb as qN,Bc as Rc,C as Jn,Ca as Ku,Cb as BN,Cc as Rh,D as fn,Da as rh,Db as VN,Dc as Pc,E as gc,Ea as wr,Eb as zN,Ec as X,F as Ui,Fa as ea,Fb as Ir,Fc as oe,G as ss,Ga as fs,Gb as ua,Gc as Ze,H as cn,Ha as ih,Hb as wc,Hc as on,I as Ct,Ia as oh,Ib as Qi,Ic as Mr,J as bc,Ja as sh,Jb as Wt,Jc as ds,K as Wn,Ka as uh,Kb as hn,Kc as Ar,L as Gi,La as ah,Lb as yn,Lc as Ph,M as us,Ma as na,Mb as Cc,Mc as Th,N as pi,Na as bi,Nb as Xt,Nc as kh,O as as,Oa as lh,Ob as jN,Oc as Oh,P as Hb,Pa as Yi,Pb as UN,Pc as ma,Q as mi,Qa as fh,Qb as GN,Qc as Lh,R as hc,Ra as Ec,Rb as Ic,Rc as Dh,S as Zb,Sa as Cr,Sb as Bn,Sc as $h,T as Yb,Ta as ta,Tb as Mt,Tc as da,U as Qb,Ua as cs,Ub as aa,Uc as Fh,V as yc,Va as ra,Vb as Kt,Vc as er,W as C,Wa as ch,Wb as Ji,Wc as qh,X as w,Xa as _c,Xb as Wi,Xc as j,Y as d,Ya as ph,Yb as Mc,Yc as Bh,Z as B,Za as mh,Zb as la,Zc as Vh,_ as IN,_a as dh,_b as wh,_c as ga,a as L,aa as MN,ab as bh,ac as At,ad as zh,b as S,ba as AN,bb as ia,bc as Xi,bd as vi,c as qb,ca as _e,cb as oa,cc as ps,cd as Ki,d as Bb,da as N,db as Sc,dc as fa,dd as bt,e as Vb,ea as mt,eb as hh,ec as ms,ed as te,f as Hu,fa as Qu,fb as RN,fc as ca,fd as jh,g as re,ga as Jb,gb as sa,gc as pa,gd as gs,h as dc,ha as di,hb as yh,hc as Q,hd as me,i as zb,ia as vc,ib as vh,ic as ae,id as nr,j as pe,ja as Wb,jb as xh,jc as et,jd as Uh,k as os,ka as gi,kb as Eh,kc as de,l as We,la as dt,lb as _h,lc as Ch,m as Xe,ma as xc,mb as Se,mc as Te,n as Zu,na as Ju,nb as Sh,nc as en,o as pt,oa as Xn,ob as PN,oc as gt,p as Be,pa as Xb,pb as Nh,pc as Ih,q as jb,qa as Kb,qb as hi,qc as Y,r as Ub,ra as eh,rb as Kn,rc as Mh,s as Z,sa as nh,sb as yi,sc as mn,t as Oe,ta as pn,tb as Nc,tc as Ah,u as $,ua as Wu,ub as TN,uc as Ge,v as Yu,va as It,vb as kN,vc as He,w as Gb,wa as th,wb as ON,wc as wn,x as Nr,xa as Ke,xb as LN,xc as Ac,y as Qn,ya as Hi,yb as DN,yc as z,z as ji,za as Zi,zb as $N,zc as W}from"./chunks/chunk-
|
|
1
|
+
/** Compute Engine 0.69.1 */
|
|
2
|
+
import{$ as ls,$a as gh,$b as Ve,$c as Rr,A as Nt,Aa as Xu,Ab as FN,Ac as q,B as wt,Ba as be,Bb as qN,Bc as Rc,C as Jn,Ca as Ku,Cb as BN,Cc as Rh,D as fn,Da as rh,Db as VN,Dc as Pc,E as gc,Ea as wr,Eb as zN,Ec as X,F as Ui,Fa as ea,Fb as Ir,Fc as oe,G as ss,Ga as fs,Gb as ua,Gc as Ze,H as cn,Ha as ih,Hb as wc,Hc as on,I as Ct,Ia as oh,Ib as Qi,Ic as Mr,J as bc,Ja as sh,Jb as Wt,Jc as ds,K as Wn,Ka as uh,Kb as hn,Kc as Ar,L as Gi,La as ah,Lb as yn,Lc as Ph,M as us,Ma as na,Mb as Cc,Mc as Th,N as pi,Na as bi,Nb as Xt,Nc as kh,O as as,Oa as lh,Ob as jN,Oc as Oh,P as Hb,Pa as Yi,Pb as UN,Pc as ma,Q as mi,Qa as fh,Qb as GN,Qc as Lh,R as hc,Ra as Ec,Rb as Ic,Rc as Dh,S as Zb,Sa as Cr,Sb as Bn,Sc as $h,T as Yb,Ta as ta,Tb as Mt,Tc as da,U as Qb,Ua as cs,Ub as aa,Uc as Fh,V as yc,Va as ra,Vb as Kt,Vc as er,W as C,Wa as ch,Wb as Ji,Wc as qh,X as w,Xa as _c,Xb as Wi,Xc as j,Y as d,Ya as ph,Yb as Mc,Yc as Bh,Z as B,Za as mh,Zb as la,Zc as Vh,_ as IN,_a as dh,_b as wh,_c as ga,a as L,aa as MN,ab as bh,ac as At,ad as zh,b as S,ba as AN,bb as ia,bc as Xi,bd as vi,c as qb,ca as _e,cb as oa,cc as ps,cd as Ki,d as Bb,da as N,db as Sc,dc as fa,dd as bt,e as Vb,ea as mt,eb as hh,ec as ms,ed as te,f as Hu,fa as Qu,fb as RN,fc as ca,fd as jh,g as re,ga as Jb,gb as sa,gc as pa,gd as gs,h as dc,ha as di,hb as yh,hc as Q,hd as me,i as zb,ia as vc,ib as vh,ic as ae,id as nr,j as pe,ja as Wb,jb as xh,jc as et,jd as Uh,k as os,ka as gi,kb as Eh,kc as de,l as We,la as dt,lb as _h,lc as Ch,m as Xe,ma as xc,mb as Se,mc as Te,n as Zu,na as Ju,nb as Sh,nc as en,o as pt,oa as Xn,ob as PN,oc as gt,p as Be,pa as Xb,pb as Nh,pc as Ih,q as jb,qa as Kb,qb as hi,qc as Y,r as Ub,ra as eh,rb as Kn,rc as Mh,s as Z,sa as nh,sb as yi,sc as mn,t as Oe,ta as pn,tb as Nc,tc as Ah,u as $,ua as Wu,ub as TN,uc as Ge,v as Yu,va as It,vb as kN,vc as He,w as Gb,wa as th,wb as ON,wc as wn,x as Nr,xa as Ke,xb as LN,xc as Ac,y as Qn,ya as Hi,yb as DN,yc as z,z as ji,za as Zi,zb as $N,zc as W}from"./chunks/chunk-QIFCLIET.js";function Gh(e,n){if(e.length>6)return`${e.length}${Hh(e.length)}`,[];let t=[],r=(i,o=[])=>{if(i.length===0)(!n||n(o))&&t.push([...o]);else for(let s=0;s<i.length;s++){let u=i.slice(),a=u.splice(s,1);r(u.slice(),o.concat(a))}};return r(e),t}function Hh(e){return e<=1?1:e*Hh(e-1)}function Zh(e){for(let n in e)n.startsWith("_")&&e.hasOwnProperty(n)&&Object.defineProperty(e,n,{enumerable:!1,configurable:!0,writable:!0,value:e[n]})}function HN(e,n){if(e===n)return 0;if(e.length===0)return n.length;if(n.length===0)return e.length;let t=Array.from({length:e.length+1},(i,o)=>o),r=new Array(e.length+1);for(let i=1;i<=n.length;i++){r[0]=i;for(let o=1;o<=e.length;o++){let s=e[o-1]===n[i-1]?0:1;r[o]=Math.min(t[o]+1,r[o-1]+1,t[o-1]+s)}[t,r]=[r,t]}return t[e.length]}function Tc(e,n){let r=null,i=1/0,o=e.length;for(let s of n){if(Math.abs(o-s.length)>7)continue;let u=HN(e,s);if(u===0)return s;u<=7&&u<i&&(i=u,r=s)}return r}function xi(e){return typeof e=="string"?e==="collection"||e==="indexed_collection"||e==="list"||e==="set"||e==="tuple"||e==="any":e.kind==="list"||e.kind==="set"||e.kind==="tuple"?!0:e.kind==="union"?e.types.some(n=>xi(n)):!1}function Yh(e){return typeof e=="string"?e==="list"||e==="set"||e==="collection"||e==="indexed_collection":e.kind==="list"||e.kind==="set"?!0:e.kind==="union"?e.types.some(n=>Yh(n)):!1}function Qh(e){let n=t=>t==="any"||t==="unknown"||pe(t,"number")||pe("number",t);return typeof e=="string"?e==="tuple":e.kind==="tuple"?e.elements.every(t=>n(t.type)):e.kind==="union"?e.types.some(t=>Qh(t)):!1}function Cn(e,n,t){if(n=de(n),!e.strict){if(n.length>=t)return n;let o=[...n];for(;o.length<t;)o.push(e.error("missing"));return o}if(n.length===t)return n;let r=[...n.slice(0,t)],i=Math.min(t,n.length);for(;i<t;)r.push(e.error("missing")),i+=1;for(;i<n.length;)r.push(e.error("unexpected-argument",n[i].toString())),i+=1;return r}function vn(e,n,t){let r=typeof t=="number"?t:t?.count,i=typeof t=="number"?void 0:t?.flatten;if(n=de(n,i),!e.strict){let u=n;if(r!==void 0&&n.length<r){let l=[...n];for(;l.length<r;)l.push(e.error("missing"));u=l}let a="real";for(let l of u)if(pe("complex",l.type.type)){a="number";break}for(let l of u)be(l)||l.infer(a);return u}let o=!0;r??=n.length;let s=[];for(let u=0;u<=Math.max(r-1,n.length-1);u++){let a=n[u];if(u>r-1)o=!1,s.push(e.error("unexpected-argument",a.toString()));else if(a===void 0)o=!1,s.push(e.error("missing"));else if(!a.isValid)o=!1,s.push(a);else if(a.isNumber)s.push(a);else if(a.operator==="Quantity")s.push(a);else if(w(a)&&!e.lookupDefinition(a.symbol))s.push(a);else if(a.type.isUnknown||a.type.type==="any")s.push(a);else if(Yh(a.type.type))s.push(a);else if(Qh(a.type.type))s.push(a);else if(Y(a))s.push(a);else if(be(a)){for(let l of a.each())if(!l.isNumber){o=!1;break}o?s.push(a):s.push(e.typeError("number",a.type,a))}else a.valueDefinition?.inferredType&&pe("number",a.type.type)||a.operatorDefinition?.inferredSignature&&pe("number",a.type.type)||a.operator==="Hold"||a.valueDefinition?.value?.operator==="Hold"?s.push(a):(o=!1,s.push(e.typeError("number",a.type,a)))}if(o){let u="real";for(let a of s)if(pe("complex",a.type.type)){u="number";break}for(let a of s)if(be(a))for(let l of a.each())l.infer(u);else a.infer(u)}return s}function sn(e,n,t){return n==null?e.error("missing"):t===void 0?e.error("unexpected-argument",n.toString()):(n=n.canonical,!n.isValid||n.type.matches(t)?n:e.typeError(t,n.type,n))}function bs(e,n,t){if(n.length===t.length&&n.every((i,o)=>i.type.matches(t[o])))return n;let r=[];for(let i=0;i<=t.length-1;i++)r.push(sn(e,n[i],t[i]));for(let i=t.length;i<=n.length-1;i++)r.push(e.error("unexpected-argument",n[i].toString()));return r}function tr(e,n,t,r,i){if(!e.strict){if(typeof t!="string"&&t.kind==="signature"){let p=t.args?.length??0;if(n.length<p){let m=[...n];for(;m.length<p;)m.push(e.error("missing"));return m}}return null}if(typeof t=="string"||t.kind!=="signature")return null;let o=[],s=!0,u=t.args?.map(p=>p.type)??[],a=t.optArgs?.map(p=>p.type)??[],l=t.variadicArg?.type,f=t.variadicMin??0,c=0;for(let p of u){let m=n[c++];if(!m){o.push(e.error("missing")),s=!1;continue}if(r){o.push(m);continue}if(!m.isValid){o.push(m),s=!1;continue}if(m.type.isUnknown||m.type.type==="any"){o.push(m);continue}if(i&&(be(m)||xi(m.type.type))){o.push(m);continue}if(m.valueDefinition?.inferredType&&m.type.matches(p)){o.push(m);continue}if(m.valueDefinition?.inferredType&&pe(p,m.type.type)){m.infer(p,"narrow"),o.push(m);continue}if(m.operatorDefinition?.inferredSignature&&m.type.matches(p)){o.push(m);continue}if(!m.type.matches(p)){o.push(e.typeError(p,m.type,m)),s=!1;continue}o.push(m)}for(let p of a){let m=n[c];if(!m)break;if(r){o.push(m),c+=1;continue}if(!m.isValid){o.push(m),s=!1,c+=1;continue}if(m.type.isUnknown||m.type.type==="any"){o.push(m),c+=1;continue}if(i&&(be(m)||xi(m.type.type))){o.push(m),c+=1;continue}if(m.valueDefinition?.inferredType&&m.type.matches(p)){o.push(m),c+=1;continue}if(m.valueDefinition?.inferredType&&pe(p,m.type.type)){m.infer(p,"narrow"),o.push(m),c+=1;continue}if(!m.type.matches(p)){o.push(e.typeError(p,m.type,m)),s=!1,c+=1;continue}o.push(m),c+=1}if(l){let p=0;for(let m of n.slice(c)){if(c+=1,p+=1,r){o.push(m);continue}if(!m.isValid){o.push(m),s=!1;continue}if(m.type.isUnknown||m.type.type==="any"){o.push(m);continue}if(i&&(be(m)||xi(m.type.type))){o.push(m);continue}if(m.valueDefinition?.inferredType&&m.type.matches(l)){o.push(m);continue}if(m.valueDefinition?.inferredType&&pe(l,m.type.type)){m.infer(l,"narrow"),o.push(m);continue}if(!m.type.matches(l)){o.push(e.typeError(l,m.type,m)),s=!1;continue}o.push(m)}p<f&&(o.push(e.error("missing")),s=!1)}if(c<n.length)for(let p of n.slice(c))o.push(e.error("unexpected-argument",p.toString())),s=!1;if(!s)return o;c=0;for(let p of u)r||(!i||!be(n[c])&&!xi(n[c].type.type))&&n[c].infer(p),c+=1;for(let p of a){if(!n[c])break;(!i||!be(n[c])&&!xi(n[c].type.type))&&n[c]?.infer(p),c+=1}if(l)for(let p of n.slice(c))r||(!i||!be(p)&&!xi(p.type.type))&&p.infer(l),c+=1;return null}function Jh(e){let n={},t=YN(e.engine),r=ZN(e.engine);if(w(e)&&!n[e.symbol]&&!e.symbol.startsWith("_")){if(!t.includes(e.symbol)){let i=Tc(e.symbol,t);i&&(n[e.symbol]=i)}}else if(d(e)&&!n[e.operator]&&!e.operator.startsWith("_")){let i=e.operator;if(!r.includes(i)){let o=Tc(i,r);o&&(n[i]=o)}for(let o of e.ops)n={...n,...Jh(o)}}return n}function ZN(e){let n=[],t=e.context.lexicalScope;for(;t;){for(let r of t.bindings.keys()){let i=t.bindings.get(r);ae(i)&&n.push(r)}t=t.parent}return n}function YN(e){let n=[],t=e.context.lexicalScope;for(;t;){for(let r of t.bindings.keys()){let i=t.bindings.get(r);Q(i)&&n.push(r)}t=t.parent}return n}function nt(e){let n=Jh(e);if(Object.keys(n).length===0)return"";if(Object.keys(n).length===1){let[r,i]=Object.entries(n)[0];return`Unknown symbol "${r}". Did you mean "${i}"?`}let t=[];for(let[r,i]of Object.entries(n))t.push(`- "${r}" -> "${i}"?`);return`Unknown symbols found:
|
|
3
3
|
${t.join(`
|
|
4
4
|
`)}`}var Me=class e{vars;terms;constructor(n,t){this.vars=n,this.terms=t??new Map}static zero(n){return new e(n)}static constant(n,t){let r=new e(n);return t!==0n&&r.terms.set(e.key(n.map(()=>0)),t),r}static key(n){return n.join(",")}static exp(n){return n===""?[]:n.split(",").map(Number)}clone(){return new e(this.vars,new Map(this.terms))}isZero(){return this.terms.size===0}get nbTerms(){return this.terms.size}asConstant(){if(this.terms.size===0)return 0n;if(this.terms.size===1){let n=[...this.terms.keys()][0];if(e.exp(n).every(t=>t===0))return this.terms.get(n)}}accumulate(n,t){if(t===0n)return;let r=e.key(n),i=(this.terms.get(r)??0n)+t;i===0n?this.terms.delete(r):this.terms.set(r,i)}add(n){let t=this.clone();for(let[r,i]of n.terms)t.accumulate(e.exp(r),i);return t}sub(n){let t=this.clone();for(let[r,i]of n.terms)t.accumulate(e.exp(r),-i);return t}neg(){let n=new e(this.vars);for(let[t,r]of this.terms)n.terms.set(t,-r);return n}mul(n){let t=new e(this.vars);for(let[r,i]of this.terms){let o=e.exp(r);for(let[s,u]of n.terms){let a=e.exp(s);t.accumulate(o.map((l,f)=>l+a[f]),i*u)}}return t}scaleInt(n){if(n===0n)return e.zero(this.vars);let t=new e(this.vars);for(let[r,i]of this.terms)t.terms.set(r,i*n);return t}equals(n){if(this.terms.size!==n.terms.size)return!1;for(let[t,r]of this.terms)if(n.terms.get(t)!==r)return!1;return!0}maxNorm(){let n=0n;for(let t of this.terms.values()){let r=t<0n?-t:t;r>n&&(n=r)}return n}contentInteger(){let n=0n;for(let t of this.terms.values())n=hs(n,t);return n===0n?1n:n}divExactInteger(n){let t=new e(this.vars);for(let[r,i]of this.terms){if(i%n!==0n)throw new Error("MPoly.divExactInteger: not divisible");t.terms.set(r,i/n)}return t}primitivePartInteger(){if(this.isZero())return this;let n=this.contentInteger(),t=this.leadingLex();return t&&t.c<0n&&(n=-n),n===1n?this:this.divExactInteger(n)}degreeIn(n){let t=0;for(let r of this.terms.keys())t=Math.max(t,e.exp(r)[n]??0);return t}totalDegree(){let n=0;for(let t of this.terms.keys())n=Math.max(n,e.exp(t).reduce((r,i)=>r+i,0));return n}leadingLex(){let n,t="";for(let r of this.terms.keys()){let i=e.exp(r);(!n||QN(i,n))&&(n=i,t=r)}return n?{exp:n,c:this.terms.get(t)}:void 0}static tryDivide(n,t){if(t.isZero())return null;let r=t.leadingLex(),i=n.clone(),o=new e(n.vars),s=0;for(;!i.isZero();){if(++s>5e5)return null;let u=i.leadingLex();if(!u.exp.every((c,p)=>c>=r.exp[p])||u.c%r.c!==0n)return null;let a=u.exp.map((c,p)=>c-r.exp[p]),l=u.c/r.c;o.accumulate(a,l);let f=new e(n.vars);f.terms.set(e.key(a),l),i=i.sub(t.mul(f))}return o}evalVar(n,t){let r=this.vars.filter((o,s)=>s!==n),i=new e(r);for(let[o,s]of this.terms){let u=e.exp(o);i.accumulate(u.filter((a,l)=>l!==n),s*t**BigInt(u[n]))}return i}coeffsInVar(n){let t=this.degreeIn(n),r=this.vars.filter((o,s)=>s!==n),i=Array.from({length:t+1},()=>new e(r));for(let[o,s]of this.terms){let u=e.exp(o);i[u[n]].accumulate(u.filter((a,l)=>l!==n),s)}return i}static fromVarCoeffs(n,t,r){let i=new e(r);for(let o=0;o<n.length;o++)for(let[s,u]of n[o].terms){let a=e.exp(s),l=[],f=0;for(let c=0;c<r.length;c++)l.push(c===t?o:a[f++]);i.accumulate(l,u)}return i}modP(n){let t=new e(this.vars),r=n/2n;for(let[i,o]of this.terms){let s=(o%n+n)%n;s>r&&(s-=n),s!==0n&&t.terms.set(i,s)}return t}};function hs(e,n){for(e=e<0n?-e:e,n=n<0n?-n:n;n;)[e,n]=[n,e%n];return e}function QN(e,n){for(let t=0;t<e.length;t++)if(e[t]!==n[t])return e[t]>n[t];return!1}function kc(e,n,t){let r=e.expr(["Expand",n]).evaluate(),i=new Map(t.map((l,f)=>[l,f])),o=[],s=d(r,"Add")?r.ops:[r];for(let l of s){let f=t.map(()=>0),c=1n,p=1n,m=[l];for(;m.length;){let g=m.pop();if(d(g,"Negate")){c=-c,m.push(g.ops[0]);continue}if(d(g,"Multiply")){for(let h of g.ops)m.push(h);continue}if(w(g)&&i.has(g.symbol)){f[i.get(g.symbol)]+=1;continue}if(d(g,"Power")){let h=g.ops[0],y=g.ops[1];if(w(h)&&i.has(h.symbol)&&y.isInteger){let x=ba(y);if(x===null||x<0n)return null;f[i.get(h.symbol)]+=Number(x);continue}return null}let b=JN(g);if(b===null)return null;c*=b.num,p*=b.den}o.push({exp:f,num:c,den:p})}let u=1n;for(let l of o)u=u/hs(u,l.den)*l.den;let a=new Me(t);for(let l of o){let f=l.num*(u/l.den);if(f!==0n){let c=Me.key(l.exp),p=(a.terms.get(c)??0n)+f;p===0n?a.terms.delete(c):a.terms.set(c,p)}}return a}function Oc(e,n){if(n.isZero())return e.expr(0);let t=[];for(let[r,i]of n.terms){let o=Me.exp(r),s=[];o.forEach((a,l)=>{a===1?s.push(e.symbol(n.vars[l])):a>1&&s.push(e.expr(["Power",e.symbol(n.vars[l]),a]))});let u=e.number(i);s.length===0?t.push(u):t.push(e.function("Multiply",[u,...s]))}return t.length===1?t[0]:e.function("Add",t)}function ba(e){if(!e.isInteger)return null;try{return BigInt(e.toString())}catch{return null}}function JN(e){if(!C(e))return null;if(e.isInteger){let r=ba(e);return r===null?null:{num:r,den:1n}}let n=e.numerator,t=e.denominator;if(n&&t){let r=ba(n),i=ba(t);if(r!==null&&i!==null&&i!==0n)return{num:r,den:i}}return null}function n0(e,n,t,r){let i=kc(e,n,r),o=kc(e,t,r);if(!i||!o||i.isZero()||o.isZero())return null;Dc=t0;let s=i.contentInteger(),u=o.contentInteger(),a=hs(s,u),l=i.divExactInteger(s),f=o.divExactInteger(u),c=hs(Wh(l).contentInteger(),Wh(f).contentInteger());for(let p of WN){if(l.maxNorm()%p===0n||f.maxNorm()%p===0n)continue;let m;try{m=ha(l.modP(p),f.modP(p),r,p,c)}catch{m=null}if(!m||m.isZero())continue;let g=m.primitivePartInteger();if(Me.tryDivide(l,g)===null||Me.tryDivide(f,g)===null)continue;let b=g.scaleInt(a).primitivePartInteger(),h=a===1n?g:b;return Me.tryDivide(i,h)&&Me.tryDivide(o,h)?Oc(e,h):Oc(e,g)}return null}var WN=[1000000007n,1000000009n,998244353n,2147483647n,2305843009213693951n],t0=4e6,Dc=t0;function Fc(e){if(Dc-=e,Dc<0)throw new Error("multivariateGCD: budget exceeded")}function tt(e,n){let t=e%n;return t<0n?t+n:t}function ys(e,n){let[t,r]=[tt(e,n),n],[i,o]=[1n,0n];for(;r!==0n;){let s=t/r;[t,r]=[r,t-s*r],[i,o]=[o,i-s*o]}if(t!==1n)throw new Error("modInverse: not invertible");return tt(i,n)}function Wh(e){return e.coeffsInVar(0).at(-1)??Me.zero(e.vars.slice(1))}function ha(e,n,t,r,i=1n){if(Fc(e.nbTerms+n.nbTerms+1),t.length===0)return Me.constant([],1n);if(t.length===1)return i0(e,n,r);let o=t.slice(1),s=e.coeffsInVar(0),u=n.coeffsInVar(0),a=Xh(s,o,r),l=Xh(u,o,r);if(!a||!l)return null;let f=ha(a,l,o,r);if(!f)return null;let c=e0(e,a,r),p=e0(n,l,r);if(!c||!p)return null;let m=XN(c,p,t,r,i);return m?s0($c(f,0,t),m,r).modP(r):null}function XN(e,n,t,r,i){let o=t.slice(1),s=e.coeffsInVar(0).at(-1),u=n.coeffsInVar(0).at(-1),a=ha(s,u,o,r);if(!a)return null;let l=i===1n?a:ya(a,i,r);return r0(e,n,t,r,l)}function r0(e,n,t,r,i){if(t.length===1){let p=i0(e,n,r);if(!p)return null;let m=i.asConstant();return m===void 0?null:ya(p,tt(m,r),r).modP(r)}let o=t.length-1,s=o-1,u=t.filter((p,m)=>m!==o),a=Math.min(e.degreeIn(o),n.degreeIn(o)),l=-1,f=[],c=[];for(let p=0n;p<r&&f.length<=a;p++){let m=Lc(i,s,p,r);if(m.isZero())continue;let g=Lc(e,o,p,r),b=Lc(n,o,p,r);if(g.degreeIn(0)<e.degreeIn(0)||b.degreeIn(0)<n.degreeIn(0))continue;let h=r0(g,b,u,r,m);if(!h)return null;let y=h.degreeIn(0);if(l<0||y<l)l=y,f.length=0,c.length=0;else if(y>l)continue;f.push(p),c.push(h)}return f.length<a+1&&f.length===0?null:tw(f,c,o,t,r)}function Xh(e,n,t){let r=e.filter(o=>!o.isZero());if(r.length===0)return Me.zero(n);let i=r[0];for(let o=1;o<r.length;o++){let s=ha(i,r[o],n,t);if(!s)return null;if(i=s,i.asConstant()!==void 0)break}return i}function i0(e,n,t){let r=e.vars,i=Kh(e,t),o=Kh(n,t);for(;o.length>0;){let s=nw(i,o,t);i=o,o=s}return i=ew(i,t),KN(i,r,t)}function Kh(e,n){let t=e.degreeIn(0),r=new Array(t+1).fill(0n);for(let[i,o]of e.terms)r[Me.exp(i)[0]]=tt(o,n);return o0(r)}function KN(e,n,t){let r=new Me(n);for(let i=0;i<e.length;i++){let o=tt(e[i],t);if(o!==0n){let s=o;s>t/2n&&(s-=t),r.terms.set(String(i),s)}}return r}function o0(e){let n=e.length;for(;n>0&&e[n-1]===0n;)n--;return e.slice(0,n)}function ew(e,n){if(e.length===0)return e;let t=ys(e[e.length-1],n);return e.map(r=>tt(r*t,n))}function nw(e,n,t){let r=e.slice(),i=n.length-1,o=ys(n[i],t);for(let s=r.length-1;s>=i;s--){if(r[s]===0n)continue;let u=tt(r[s]*o,t);for(let a=0;a<=i;a++)r[s-i+a]=tt(r[s-i+a]-u*n[a],t)}return o0(r)}function tw(e,n,t,r,i){let o=e.length,s=n.map(a=>a.modP(i));for(let a=1;a<o;a++)for(let l=o-1;l>=a;l--){let f=ys(tt(e[l]-e[l-a],i),i);s[l]=ya(s[l].sub(s[l-1]),f,i).modP(i)}let u=$c(s[o-1],t,r);for(let a=o-2;a>=0;a--){let l=rw(t,e[a],r,i);u=s0(u,l,i).add($c(s[a],t,r)).modP(i)}return u.modP(i)}function rw(e,n,t,r){let i=new Me(t),o=t.map((u,a)=>a===e?1:0);i.terms.set(Me.key(o),1n);let s=tt(-n,r);return s!==0n&&i.terms.set(Me.key(t.map(()=>0)),s>r/2n?s-r:s),i}function s0(e,n,t){return Fc(e.nbTerms*n.nbTerms+1),e.mul(n).modP(t)}function Lc(e,n,t,r){return e.evalVar(n,t).modP(r)}function ya(e,n,t){return e.scaleInt(tt(n,t)).modP(t)}function $c(e,n,t){return Me.fromVarCoeffs([e],n,t)}function e0(e,n,t){let r=e.coeffsInVar(0),i=n.asConstant(),o=[];for(let s of r){if(s.isZero()){o.push(s);continue}if(i!==void 0)o.push(ya(s,ys(i,t),t));else{let u=iw(s,n,t);if(!u)return null;o.push(u)}}return Me.fromVarCoeffs(o,0,e.vars)}function iw(e,n,t){if(n.isZero())return null;let r=n.leadingLex(),i=ys(r.c,t),o=e.modP(t),s=new Me(e.vars),u=0;for(;!o.isZero();){if(++u>2e5)return null;Fc(n.nbTerms+1);let a=o.leadingLex();if(!a.exp.every((p,m)=>p>=r.exp[m]))return null;let l=a.exp.map((p,m)=>p-r.exp[m]),f=tt(a.c*i,t),c=new Me(e.vars);c.terms.set(Me.key(l),f),s.terms.set(Me.key(l),f>t/2n?f-t:f),o=o.sub(n.mul(c)).modP(t)}return s}function U(e,n){if(C(e))return 0;if(w(e))return e.symbol===n?1:0;if(!d(e))return e.has(n)?-1:0;let t=e.operator;if(t==="Negate")return U(e.op1,n);if(t==="Add"||t==="Subtract"){let r=0;for(let i of e.ops){let o=U(i,n);if(o<0)return-1;r=Math.max(r,o)}return r}if(t==="Multiply"){let r=0;for(let i of e.ops){let o=U(i,n);if(o<0)return-1;r+=o}return r}if(t==="Power"){let r=U(e.op1,n);if(r<0)return-1;if(r===0)return e.op2.has(n)?-1:0;let i=z(e.op2);return i===null||i<0?-1:r*i}return e.has(n)?-1:0}function K(e,n){let t=e.engine,r=U(e,n);if(r<0)return null;let i=new Array(r+1).fill(t.Zero),o=me(e),s=(a,l)=>l>r?!1:(i[l]=t.function("Add",[i[l],a]),!0),u=a=>{let l=U(a,n);if(l<0)return!1;if(l===0)return s(a,0);if(w(a,n))return s(t.One,1);if(d(a,"Negate")){if(U(a.op1,n)===0)return s(a,0);let c=K(a.op1,n);if(!c)return!1;for(let p=0;p<c.length;p++)c[p].isSame(0)||s(c[p].neg(),p);return!0}if(d(a,"Power")){if(w(a.op1,n)){let f=z(a.op2);if(f!==null&&f>=0)return s(t.One,f)}return a.op1.has(n)?!1:s(a,0)}if(d(a,"Multiply")){let f=a.ops,c=t.One,p=0;for(let m of f)if(!m.has(n))c=t.function("Multiply",[c,m]);else if(w(m,n))p+=1;else if(d(m,"Power")&&w(m.op1,n)){let g=z(m.op2);if(g!==null&&g>=0)p+=g;else return!1}else return!1;return s(c,p)}return!1};if(d(o,"Add")){for(let a of o.ops)if(!u(a))return null}else if(!u(o))return null;return i}function Rt(e,n){if(e.length===0)return e[0]?.engine.Zero??null;let t=e[0].engine,r=t.symbol(n),i=[];for(let o=0;o<e.length;o++){let s=e[o];if(!s.isSame(0))if(o===0)i.push(s);else if(o===1)s.isSame(1)?i.push(r):s.isSame(-1)?i.push(r.neg()):i.push(s.mul(r));else{let u=t.expr(["Power",n,o]);s.isSame(1)?i.push(u):s.isSame(-1)?i.push(u.neg()):i.push(s.mul(u))}}return i.length===0?t.Zero:i.length===1?i[0]:j(...i)}function xn(e,n,t){$(e.engine._deadline);let r=e.engine,i=K(e,t),o=K(n,t);if(!i||!o||o.every(g=>g.isSame(0)))return null;let s=g=>{for(let b=g.length-1;b>=0;b--)if(!g[b].isSame(0))return b;return-1},u=s(i),a=s(o);if(a<0)return null;if(u<0)return[r.Zero,r.Zero];if(u<a)return[r.Zero,e];let l=i.map(g=>g),f=new Array(u-a+1).fill(r.Zero),c=o[a];for(let g=u;g>=a;g--){if(l[g].isSame(0))continue;let b=l[g].div(c);f[g-a]=b;for(let h=0;h<=a;h++){let y=b.mul(o[h]);l[g-a+h]=l[g-a+h].sub(y)}}let p=Rt(f,t),m=Rt(l,t);return[p,m]}function vs(e,n,t){let r=e.engine,i=U(e,t),o=U(n,t);if(i<0||o<0)return r.One;let s=K(e,t),u=K(n,t);if(!s||s.every(f=>f.isSame(0)))return Bc(n,t);if(!u||u.every(f=>f.isSame(0)))return Bc(e,t);let a=e,l=n;for(;;){let f=K(l,t);if(!f)return r.One;if(f.every(m=>m.isSame(0)))break;let c=xn(a,l,t);if(!c)return r.One;let[,p]=c;a=l,l=p}return Bc(a,t)}function qc(e){for(let n=e.length-1;n>=0;n--)if(!e[n].isSame(0))return n;return-1}function a0(e,n,t){return Vc(e,n,t)??void 0}function Vc(e,n,t){let r=e.engine;$(r._deadline);let i=K(e,t),o=K(n,t);if(!i||!o)return null;let s=qc(i),u=qc(o);if(s<0||u<0)return r.Zero;if(s===0&&u===0)return r.One;if(u===0)return o[0].pow(s);if(s===0)return i[0].pow(u);if(s<u){let g=Vc(n,e,t);return g===null?null:s*u%2===0?g:g.neg()}let a=xn(e,n,t);if(!a)return null;let l=a[1],f=K(l,t);if(!f)return null;let c=qc(f);if(c<0)return r.Zero;let p=Vc(n,l,t);if(p===null)return null;let m=o[u].pow(s-c).mul(p);return s*u%2!==0&&(m=m.neg()),m}function l0(e){if(e.length<2)return;let n=new Set;for(let t of e)for(let r of t.unknowns)n.add(r);if(n.size===1){let t=[...n][0];for(let i of e)if(U(i,t)<0)return;let r=vs(e[0],e[1],t);for(let i=2;i<e.length;i++)r=vs(r,e[i],t);return U(r,t)<1?void 0:r}if(n.size>=2){let t=u0(e[0],e[1]);for(let r=2;r<e.length&&t!==void 0;r++)t=u0(t,e[r]);return t}}function u0(e,n){let t=e.engine,r=t.expr(["Expand",e]).evaluate(),i=t.expr(["Expand",n]).evaluate(),o=a=>d(a,"Add")?a.ops.length:1;if(o(r)>80||o(i)>80)return;let s=[...new Set([...r.unknowns,...i.unknowns])];if(s.length<2)return;let u=n0(t,r,i,s);if(u!==null&&u.unknowns.length!==0)return u}function Bc(e,n){let t=K(e,n);if(!t)return e;let r=null;for(let o=t.length-1;o>=0;o--)if(!t[o].isSame(0)){r=t[o];break}if(!r||r.isSame(1))return e;let i=t.map(o=>o.div(r));return Rt(i,n)}function eo(e,n){if(!d(e,"Divide"))return e;let t=e.op1,r=e.op2,i=U(t,n),o=U(r,n);if(i<0||o<0)return e;let s=vs(t,r,n);if(U(s,n)<=0)return e;let a=xn(t,s,n),l=xn(r,s,n);if(!a||!l)return e;let[f,c]=a,[p,m]=l;if(!c.isSame(0)||!m.isSame(0))return e;let g=K(p,n);return g&&g.length===1&&g[0].isSame(1)?f:f.div(p)}function ow(e,n){for(e<0n&&(e=-e),n<0n&&(n=-n);n!==0n;)[e,n]=[n,e%n];return e}function zc(e,n){n<0n&&(e=-e,n=-n);let t=ow(e,n);return t===0n?[0n,1n]:[e/t,n/t]}function sw(e){let n=1n;for(let t=2;t<=e;t++)n*=BigInt(t);return n}var xs=[[1n,1n],[-1n,2n]];function va(e){if(!Number.isInteger(e)||e<0)throw new RangeError(`bernoulliRational: invalid index ${e}`);for(let n=xs.length;n<=e;n++){if(n%2===1){xs.push([0n,1n]);continue}let t=BigInt(n+1),r=0n,i=1n,o=1n;for(let s=0;s<n;s++){s>0&&(o=o*(t-BigInt(s)+1n)/BigInt(s));let[u,a]=xs[s];u!==0n&&(r=r*a+o*u*i,i=i*a)}xs.push(zc(-r,t*i))}return xs[e]}function f0(e){if(!Number.isInteger(e)||e<1)throw new RangeError(`zetaEvenCoefficient: invalid index ${e}`);let[n,t]=va(2*e),r=n<0n?-n:n;return zc(r*2n**BigInt(2*e-1),t*sw(2*e))}function c0(e){if(!Number.isInteger(e)||e<1)throw new RangeError(`zetaNegativeInteger: invalid index ${e}`);let[n,t]=va(e+1);return zc(-n,t*BigInt(e+1))}var xa=7,Ea=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23],uw=Math.sqrt(2*Math.PI),aw=.5*Math.log(2*Math.PI);function ir(e){if(e.re<.5){let i=e.mul(Math.PI).sin();return new L(Math.PI,0).div(i.mul(ir(new L(1,0).sub(e))))}let n=e.sub(1),t=new L(Ea[0],0);for(let i=1;i<xa+2;i++)t=t.add(new L(Ea[i],0).div(n.add(i)));let r=n.add(xa+.5);return new L(uw,0).mul(r.pow(n.add(.5))).mul(r.neg().exp()).mul(t)}function Uc(e){if(e.re<.5){let i=e.mul(Math.PI).sin();return new L(Math.PI,0).div(i).log().sub(Uc(new L(1,0).sub(e)))}let n=e.sub(1),t=new L(Ea[0],0);for(let i=1;i<xa+2;i++)t=t.add(new L(Ea[i],0).div(n.add(i)));let r=n.add(xa+.5);return new L(aw,0).add(n.add(.5).mul(r.log())).sub(r).add(t.log())}var se=new L(NaN,NaN),J=new L(1,0),no=new L(0,0),lw=.5772156649015329;function fw(e){if(e.abs()<20||e.re<=0){let s=no,u=J;for(let a=1;a<500;a++){u=u.mul(e.neg()).div(a);let l=u.div(-a);if(s=s.add(l),l.abs()<1e-18*(1+s.abs()))break}return new L(-lw,0).sub(e.log()).add(s)}let n=new L(1e-300,0),t=e.add(1),r=J.div(n),i=J.div(t),o=i;for(let s=1;s<500;s++){let u=-s*s;t=t.add(2),i=i.mul(u).add(t),i.abs()<1e-300&&(i=n),r=t.add(r.inverse().mul(u)),r.abs()<1e-300&&(r=n),i=i.inverse();let a=i.mul(r);if(o=o.mul(a),a.sub(J).abs()<1e-16)break}return o.mul(e.neg().exp())}function cw(e,n){let t=J.div(e),r=t;for(let i=1;i<2e3&&(t=t.mul(n).div(e.add(i)),r=r.add(t),!(t.abs()<1e-17*r.abs()));i++);return n.pow(e).mul(n.neg().exp()).mul(r)}function pw(e,n){let t=J,r=J;for(let i=1;i<1e3;i++){let o=t.mul(e.sub(i)).div(n);if(o.abs()>t.abs()||(t=o,r=r.add(t),t.abs()<1e-17*r.abs()))break}return n.pow(e.sub(1)).mul(n.neg().exp()).mul(r)}function mw(e,n){let t=new L(1e-300,0),r=n.add(1).sub(e),i=J.div(t),o=J.div(r),s=o;for(let u=1;u<2e3;u++){let a=e.sub(u).mul(u);r=r.add(2),o=a.mul(o).add(r),o.abs()<1e-300&&(o=t),i=r.add(a.div(i)),i.abs()<1e-300&&(i=t),o=o.inverse();let l=o.mul(i);if(s=s.mul(l),l.sub(J).abs()<1e-16)break}return n.pow(e).mul(n.neg().exp()).mul(s)}function dw(e,n){let t=fw(n),r=n.neg().exp();for(let i=0;i>e;i--)t=t.sub(n.pow(i-1).mul(r)).div(i-1);return t}function g0(e,n){if(e.isNaN()||n.isNaN())return se;if(n.isZero())return ir(e);let t=n.abs(),r=e.abs();return t>r+14&&t>12?pw(e,n):e.im===0&&Number.isInteger(e.re)&&e.re<=0?dw(e.re,n):n.re>0&&t>=r+1?mw(e,n):ir(e).sub(cw(e,n))}function Gc(e,n){if(e.isNaN()||n.isNaN())return se;if(e.isZero()||n.isZero())return new L(0,0);for(let t=0;t<100;t++){let r=e.add(n).mul(.5),i=e.mul(n).sqrt();if(r.sub(i).abs()>r.add(i).abs()&&(i=i.neg()),e=r,n=i,e.sub(n).abs()<=1e-17*e.abs())break}return e.add(n).mul(.5)}function Hc(e){return e.isNaN()?se:e.equals(J)?new L(1/0,0):new L(Math.PI/2,0).div(Gc(J,J.sub(e).sqrt()))}function Zc(e){if(e.isNaN())return se;if(e.equals(J))return J;let n=J,t=J.sub(e).sqrt(),r=e.mul(.5),i=.5;for(let s=0;s<100;s++){let u=n.sub(t).mul(.5),a=n.add(t).mul(.5),l=n.mul(t).sqrt();if(a.sub(l).abs()>a.add(l).abs()&&(l=l.neg()),n=a,t=l,i*=2,r=r.add(u.mul(u).mul(i)),n.sub(t).abs()<=1e-17*n.abs())break}return new L(Math.PI/2,0).div(n).mul(J.sub(r))}var b0=1e-24;function Es(e,n){if(e.isNaN()||n.isNaN())return se;if(n.isZero())return new L(1/0,0);if(e.isZero())return new L(Math.PI/2,0).div(n.sqrt());if(n.im===0&&n.re<0)return e.div(e.sub(n)).sqrt().mul(Es(e.sub(n),n.neg()));if(e.equals(n))return e.sqrt().inverse();let t=n.sub(e).div(e);if(t.abs()<.01){let o=no,s=J;for(let u=0;u<10;u++)o=o.add(s.div(2*u+1)),s=s.mul(t).neg();return o.div(e.sqrt())}let r=e.sqrt(),i=n.sqrt();return r.div(i).acos().div(J.sub(e.div(n)).sqrt().mul(i))}function Sa(e,n,t){if(e.isNaN()||n.isNaN()||t.isNaN())return se;if(n.equals(t))return Es(e,n);if(e.equals(t))return Es(n,e);if(e.equals(n))return Es(t,e);if((e.isZero()?1:0)+(n.isZero()?1:0)+(t.isZero()?1:0)>1)return new L(1/0,0);let r=e.add(n).add(t).div(3),i=Math.pow(3*b0,-1/6)*Math.max(r.sub(e).abs(),r.sub(n).abs(),r.sub(t).abs()),o=e,s=n,u=t,a=r,l=1;for(let y=0;y<64&&l*i>=a.abs();y++){let x=o.sqrt(),v=s.sqrt(),E=u.sqrt(),_=x.mul(v).add(x.mul(E)).add(v.mul(E));a=a.add(_).div(4),o=o.add(_).div(4),s=s.add(_).div(4),u=u.add(_).div(4),l/=4}let f=a.inverse().mul(l),c=r.sub(e).mul(f),p=r.sub(n).mul(f),m=c.add(p).neg(),g=c.mul(p).sub(m.mul(m)),b=c.mul(p).mul(m);return new L(9240,0).sub(g.mul(924)).add(g.mul(g).mul(385)).add(b.mul(660)).sub(g.mul(b).mul(630)).div(9240).div(a.sqrt())}function Yc(e,n,t,r){if(e.isNaN()||n.isNaN()||t.isNaN()||r.isNaN())return se;if(r.isZero())return new L(1/0,0);if((e.isZero()?1:0)+(n.isZero()?1:0)+(t.isZero()?1:0)>1)return new L(1/0,0);let i=e.re>=0&&n.re>=0&&t.re>=0&&r.re>0;if(!i&&(e.equals(r)||n.equals(r)||t.equals(r))&&(i=!0),!i&&(r.im!==0||r.re>=0)){let R=(T,D)=>T.re===D.re&&T.im===-D.im;(e.im===0&&e.re>=0&&R(n,t)||n.im===0&&n.re>=0&&R(e,t)||t.im===0&&t.re>=0&&R(e,n))&&(i=!0)}if(!i)return se;let o=e.add(n).add(t).add(r.mul(2)).div(5),s=r.sub(e).mul(r.sub(n)).mul(r.sub(t)),u=Math.pow(.25*b0,-1/6)*Math.max(o.sub(e).abs(),o.sub(n).abs(),o.sub(t).abs(),o.sub(r).abs()),a=e,l=n,f=t,c=r,p=o,m=1,g=no;for(let R=0;R<64;R++){let T=a.sqrt(),D=l.sqrt(),k=f.sqrt(),G=c.sqrt(),V=T.mul(D).add(T.mul(k)).add(D.mul(k)),ne=p.add(V).div(4);a=a.add(V).div(4),l=l.add(V).div(4),f=f.add(V).div(4),c=c.add(V).div(4);let ie=G.add(T).mul(G.add(D)).mul(G.add(k)),Ie=s.mul(m*m*m).div(ie.mul(ie));if(m*u<p.abs())break;g=g.add(Es(J,J.add(Ie)).mul(m).div(ie)),m/=4,p=ne}let b=p.inverse().mul(m),h=o.sub(e).mul(b),y=o.sub(n).mul(b),x=o.sub(t).mul(b),v=h.add(y).add(x).div(-2),E=h.mul(y).add(h.mul(x)).add(y.mul(x)).sub(v.mul(v).mul(3)),_=h.mul(y).mul(x).add(E.mul(v).mul(2)).add(v.mul(v).mul(v).mul(4)),M=h.mul(y).mul(x).mul(2).add(E.mul(v)).add(v.mul(v).mul(v).mul(3)).mul(v),I=h.mul(y).mul(x).mul(v).mul(v);return new L(24024,0).sub(E.mul(5148)).add(E.mul(E).mul(2457)).add(_.mul(4004)).sub(E.mul(_).mul(4158)).sub(M.mul(3276)).add(I.mul(2772)).div(24024).mul(m).div(p.pow(1.5)).add(g.mul(6))}function gw(e,n,t){return Yc(e,n,t,t)}function Qc(e,n){if(e.isNaN()||n.isNaN())return se;if(Math.abs(e.re)>Math.PI/2){let o=Math.round(e.re/Math.PI),s=Hc(n);return s.isNaN()||!Number.isFinite(s.re)?se:s.mul(2*o).add(Qc(e.sub(o*Math.PI),n))}let t=e.sin(),r=e.cos(),i=J.sub(n.mul(t).mul(t));return t.mul(Sa(r.mul(r),i,J))}function Jc(e,n){if(e.isNaN()||n.isNaN())return se;if(Math.abs(e.re)>Math.PI/2){let s=Math.round(e.re/Math.PI),u=Zc(n);return u.isNaN()||!Number.isFinite(u.re)?se:u.mul(2*s).add(Jc(e.sub(s*Math.PI),n))}let t=e.sin(),r=e.cos(),i=r.mul(r),o=J.sub(n.mul(t).mul(t));return t.mul(Sa(i,o,J)).sub(n.div(3).mul(t.pow(3)).mul(gw(i,o,J)))}function Wc(e,n){return e.isNaN()||n.isNaN()?se:e.equals(J)||n.equals(J)?new L(1/0,0):Sa(no,J.sub(n),J).add(e.div(3).mul(Yc(no,J.sub(n),J,J.sub(e))))}function Xc(e,n,t){if(e.isNaN()||n.isNaN()||t.isNaN())return se;if(Math.abs(n.re)>Math.PI/2){let l=Math.round(n.re/Math.PI),f=Wc(e,t);return f.isNaN()||!Number.isFinite(f.re)?se:f.mul(2*l).add(Xc(e,n.sub(l*Math.PI),t))}let r=n.sin(),i=n.cos(),o=i.mul(i),s=r.mul(r),u=J.sub(t.mul(s)),a=J.sub(e.mul(s));return a.isZero()?new L(1/0,0):r.mul(Sa(o,u,J)).add(e.div(3).mul(r.pow(3)).mul(Yc(o,u,J,a)))}function Pt(e){return e.im===0&&Number.isInteger(e.re)&&e.re<=0}function ht(e,n,t,r,i=1e4){let o=J,s=J;for(let u=0;u<i;u++)if(o=o.mul(e.add(u)).mul(n.add(u)).mul(r).div(t.add(u).mul(u+1)),o.isZero()||(s=s.add(o),u>2&&o.abs()<=Number.EPSILON*s.abs()))return s;return s}function p0(e){return Number.isNaN(e.re)||Number.isNaN(e.im)?NaN:Math.hypot(e.re-Math.round(e.re),e.im)}function rr(e,n){let t=e.some(Pt);if(n.some(Pt))return t?se:new L(0,0);if(t)return se;let r=J;for(let i of e)r=r.mul(ir(i));for(let i of n)r=r.div(ir(i));return r}var m0=1e-7,bw=.92,hw=.99;function _a(e,n,t,r,i=0){if(e.isNaN()||n.isNaN()||t.isNaN()||r.isNaN())return se;let o=Pt(e)?-e.re:1/0,s=Pt(n)?-n.re:1/0,u=Math.min(o,s);if(Pt(t)&&(u===1/0||u>-t.re))return se;if(u!==1/0)return ht(e,n,t,r,u+1);if(r.isZero())return J;let a=J,l=t.sub(e).sub(n),f=n.sub(e);if(r.equals(a))return l.re<=0?se:rr([t,l],[t.sub(e),t.sub(n)]);r.im===0&&(r=new L(r.re,-0));let c=p0(l)<=m0,p=p0(f)<=m0,m=[{kind:"direct",w:r,degenerate:!1},{kind:"pfaff",w:r.div(r.sub(1)),degenerate:!1},{kind:"one-minus-z",w:a.sub(r),degenerate:c},{kind:"inv-z",w:a.div(r),degenerate:p},{kind:"inv-one-minus-z",w:a.div(a.sub(r)),degenerate:p},{kind:"one-minus-inv-z",w:a.sub(a.div(r)),degenerate:c}];m.sort((b,h)=>b.w.abs()-h.w.abs());let g=!1;for(let b of m){let{kind:h,w:y}=b;if(y.abs()>hw)break;if(b.degenerate){g=!0;continue}let x=y.abs()<=bw?1e4:25e4;switch(h){case"direct":return ht(e,n,t,r,x);case"pfaff":return a.sub(r).pow(e.neg()).mul(ht(e,t.sub(n),t,y,x));case"one-minus-z":{let v=rr([t,l],[t.sub(e),t.sub(n)]).mul(ht(e,n,a.sub(l),y,x)),E=rr([t,l.neg()],[e,n]).mul(y.pow(l)).mul(ht(t.sub(e),t.sub(n),a.add(l),y,x));return v.add(E)}case"inv-z":{let v=rr([t,f],[n,t.sub(e)]).mul(r.neg().pow(e.neg())).mul(ht(e,a.sub(t).add(e),a.sub(n).add(e),y,x)),E=rr([t,f.neg()],[e,t.sub(n)]).mul(r.neg().pow(n.neg())).mul(ht(n,a.sub(t).add(n),a.sub(e).add(n),y,x));return v.add(E)}case"inv-one-minus-z":{let v=a.sub(r),E=rr([t,f],[n,t.sub(e)]).mul(v.pow(e.neg())).mul(ht(e,t.sub(n),e.sub(n).add(1),y,x)),_=rr([t,f.neg()],[e,t.sub(n)]).mul(v.pow(n.neg())).mul(ht(n,t.sub(e),n.sub(e).add(1),y,x));return E.add(_)}case"one-minus-inv-z":{let v=rr([t,l],[t.sub(e),t.sub(n)]).mul(r.pow(e.neg())).mul(ht(e,e.sub(t).add(1),e.add(n).sub(t).add(1),y,x)),E=rr([t,l.neg()],[e,n]).mul(a.sub(r).pow(l)).mul(r.pow(e.sub(t))).mul(ht(t.sub(e),a.sub(e),l.add(1),y,x));return v.add(E)}}}if(i===0&&g){let h=_a(e.add(1e-6),n,t.add(1e-6*Math.SQRT2),r,1),y=_a(e.sub(1e-6),n,t.sub(1e-6*Math.SQRT2),r,1);return h.add(y).mul(.5)}return se}function d0(e,n,t,r=2e4){let i=J,o=J;for(let s=0;s<r;s++)if(i=i.mul(e.add(s)).mul(t).div(n.add(s).mul(s+1)),i.isZero()||(o=o.add(i),s>2&&i.abs()<=Number.EPSILON*o.abs()))return o;return o}function Kc(e,n,t){if(e.isNaN()||n.isNaN()||t.isNaN())return se;let r=Pt(e)?-e.re:1/0;return Pt(n)&&(r===1/0||r>-n.re)?se:r!==1/0?d0(e,n,t,r+1):t.re<0?t.exp().mul(Kc(n.sub(e),n,t.neg())):d0(e,n,t)}function h0(e,n,t,r,i,o){if([e,n,t,r,i,o].some(m=>m.isNaN())||Pt(r))return se;let s=i.abs()<1||Pt(n),u=o.abs()<1||Pt(t);if(!s||!u)return se;let a=1e4,l=1e4,f=new L(0,0),c=J,p=0;for(let m=0;m<a;m++){let g=c,b=g;for(let h=0;h<l&&(g=g.mul(e.add(m+h)).mul(t.add(h)).mul(o).div(r.add(m+h).mul(h+1)),!(g.isZero()||(b=b.add(g),g.abs()<=Number.EPSILON*(1+b.abs()))));h++);if(f=f.add(b),b.abs()<=Number.EPSILON*(1+f.abs())){if(++p>=3)return f}else p=0;if(c=c.mul(e.add(m)).mul(n.add(m)).mul(i).div(r.add(m).mul(m+1)),c.isZero())return f}return f}function jc(e,n){return e.mul(new L(0,Math.PI*n)).exp()}function ep(e,n,t){if(n.isNaN()||t.isNaN()||t.im<=0)return se;let r=4e3,i=new L(0,0),o=t.im,s=Math.abs(n.im);if(e===1||e===2){for(let u=0;u<r;u++){let a=jc(t,(u+.5)*(u+.5)),l=n.mul((2*u+1)*Math.PI),f=a.mul(e===1?l.sin():l.cos());e===1&&u%2===1&&(f=f.neg()),i=i.add(f);let c=Math.exp(-Math.PI*o*(u+.5)*(u+.5)+(2*u+1)*Math.PI*s);if(u>1&&c<=1e-18*(1+i.abs()))break;if(u===r-1)return se}return i.mul(2)}for(let u=1;u<r;u++){let l=jc(t,u*u).mul(n.mul(2*u*Math.PI).cos());e===4&&u%2===1&&(l=l.neg()),i=i.add(l);let f=Math.exp(-Math.PI*o*u*u+2*u*Math.PI*s);if(u>1&&f<=1e-18*(1+i.abs()))break;if(u===r-1)return se}return J.add(i.mul(2))}function np(e){if(e.isNaN()||e.im<=0)return se;let n=e.mul(new L(0,2*Math.PI)).exp(),t=n.abs();if(t>=1)return se;let r=Math.min(1e5,Math.ceil(-40/Math.log10(t))+1);if(r>=1e5)return se;let i=J,o=n;for(let s=1;s<=r&&(i=i.mul(J.sub(o)),o=o.mul(n),!(o.abs()<1e-18));s++);return jc(e,1/12).mul(i)}function tp(e,n){if(n.isNaN()||!Number.isInteger(e)||e<2||e%2!==0||n.im<=0)return se;let t=n.mul(new L(0,2*Math.PI)).exp(),r=t.abs();if(r>=1)return se;let[i,o]=va(e);if(i===0n)return se;let s=2*e*Number(o)/Number(i);if(!Number.isFinite(s))return se;let u=Math.min(1e5,Math.ceil(-40/Math.log10(r))+1);if(u>=1e5)return se;let a=no,l=t;for(let f=1;f<=u;f++){let c=l.div(J.sub(l)).mul(new L(Math.pow(f,e-1),0));if(a=a.add(c),c.abs()*Math.abs(s)<1e-18&&f>e)break;l=l.mul(t)}return J.sub(a.mul(new L(s,0)))}var Ca=7,Ia=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23];function Ae(e){if(e<0)return NaN;if(e===1||e===2)return 0;let n=e-1,t=Ia[0];for(let i=1;i<Ca+2;i++)t+=Ia[i]/(n+i);let r=n+Ca+.5;return .5*Math.log(2*Math.PI)+(n+.5)*Math.log(r)-r+Math.log(t)}function ue(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*ue(1-e));if(e>100)return Math.exp(Ae(e));e-=1;let n=Ia[0];for(let r=1;r<Ca+2;r++)n+=Ia[r]/(e+r);let t=e+Ca+.5;return Math.sqrt(2*Math.PI)*Math.pow(t,e+.5)*Math.exp(-t)*n}function yw(e){if(e<=0)return NaN;if(e<1.5){let s=0,u=1;for(let a=1;a<200;a++){u*=-e/a;let l=-u/a;if(s+=l,Math.abs(l)<1e-18)break}return-Fa-Math.log(e)+s}let n=1e-300,t=e+1,r=1/n,i=1/t,o=i;for(let s=1;s<200;s++){let u=-s*s;t+=2,i=u*i+t,Math.abs(i)<n&&(i=n),r=t+u/r,Math.abs(r)<n&&(r=n),i=1/i;let a=i*r;if(o*=a,Math.abs(a-1)<1e-16)break}return o*Math.exp(-e)}function vw(e,n){let t=1/e,r=t;for(let i=1;i<1e3&&(t*=n/(e+i),r+=t,!(Math.abs(t)<Math.abs(r)*1e-17));i++);return Math.exp(e*Math.log(n)-n)*r}function xw(e,n){let r=n+1-e,i=1/1e-300,o=1/r,s=o;for(let u=1;u<1e3;u++){let a=-u*(u-e);r+=2,o=a*o+r,Math.abs(o)<1e-300&&(o=1e-300),i=r+a/i,Math.abs(i)<1e-300&&(i=1e-300),o=1/o;let l=o*i;if(s*=l,Math.abs(l-1)<1e-16)break}return Math.exp(e*Math.log(n)-n)*s}function Ew(e,n){let t=yw(n),r=Math.exp(-n);for(let i=0;i>e;i--)t=(t-Math.pow(n,i-1)*r)/(i-1);return t}function I0(e,n){return Number.isNaN(e)||Number.isNaN(n)?NaN:n<0?NaN:n===0?ue(e):Number.isInteger(e)&&e<=0?Ew(e,n):n<e+1?ue(e)-vw(e,n):xw(e,n)}var In=1e-300;function _w(e,n){if(n===0)return 0;let t=e,r=1/e,i=r;for(let o=0;o<1e3&&(t+=1,r*=n/t,i+=r,!(Math.abs(r)<Math.abs(i)*1e-16));o++);return i*Math.exp(e*Math.log(n)-n-Ae(e))}function Sw(e,n){let t=n+1-e,r=1/In,i=1/t,o=i;for(let s=1;s<1e3;s++){let u=-s*(s-e);t+=2,i=u*i+t,Math.abs(i)<In&&(i=In),r=t+u/r,Math.abs(r)<In&&(r=In),i=1/i;let a=i*r;if(o*=a,Math.abs(a-1)<1e-16)break}return Math.exp(e*Math.log(n)-n-Ae(e))*o}function uo(e,n){return Number.isNaN(e)||Number.isNaN(n)?NaN:e<=0||n<0?NaN:n===0?1:n<e+1?1-_w(e,n):Sw(e,n)}function y0(e,n,t){let r=e+n,i=e+1,o=e-1,s=1,u=1-r*t/i;Math.abs(u)<In&&(u=In),u=1/u;let a=u;for(let l=1;l<1e3;l++){let f=2*l,c=l*(n-l)*t/((o+f)*(e+f));u=1+c*u,Math.abs(u)<In&&(u=In),s=1+c/s,Math.abs(s)<In&&(s=In),u=1/u,a*=u*s,c=-(e+l)*(r+l)*t/((e+f)*(i+f)),u=1+c*u,Math.abs(u)<In&&(u=In),s=1+c/s,Math.abs(s)<In&&(s=In),u=1/u;let p=u*s;if(a*=p,Math.abs(p-1)<1e-16)break}return a}function ao(e,n,t){if(Number.isNaN(e)||Number.isNaN(n)||Number.isNaN(t))return NaN;if(n<=0||t<=0||e<0||e>1)return NaN;if(e===0)return 0;if(e===1)return 1;let r=Math.exp(Ae(n+t)-Ae(n)-Ae(t)+n*Math.log(e)+t*Math.log(1-e));return e<(n+1)/(n+t+2)?r*y0(n,t,e)/n:1-r*y0(t,n,1-e)/t}function M0(e){let t=Math.log(1-e*e),r=2/(Math.PI*.147)+t/2;return Math.sign(e)*Math.sqrt(Math.sqrt(r*r-t/.147)-r)}function lo(e){if(Number.isNaN(e)||e<-1||e>1)return NaN;if(e===0)return 0;if(e===1)return 1/0;if(e===-1)return-1/0;let n=e<0?-1:1,t=Math.abs(e),r=M0(t),i=Math.sqrt(Math.PI)/2,o=1-t,s=t>.9;for(let u=0;u<5;u++){let a=s?o-sr(r):ur(r)-t;r-=a*i*Math.exp(r*r)}return n*r}function sr(e){if(Number.isNaN(e))return NaN;if(!Number.isFinite(e))return e>0?0:2;if(e<0)return 2-sr(-e);if(e<2)return 1-ur(e);let n=1e-300,t=e===0?n:e,r=t,i=0;for(let o=1;o<=500;o++){let s=o/2;i=e+s*i,i===0&&(i=n),i=1/i,r=e+s/r,r===0&&(r=n);let u=r*i;if(t*=u,Math.abs(u-1)<1e-17)break}return Math.exp(-e*e)/(Math.sqrt(Math.PI)*t)}function ur(e){if(Number.isNaN(e))return NaN;if(e===0)return 0;if(!Number.isFinite(e))return e>0?1:-1;let n=e<0?-1:1,t=Math.abs(e);if(t>=6)return n;let r=t*t,i=t,o=t;for(let s=1;s<200&&(i*=2*r/(2*s+1),o+=i,!(i<o*1e-18));s++);return n*(2/Math.sqrt(Math.PI))*Math.exp(-r)*o}function ar(e,n){let t=S.precision;S.precision=t+e;try{return n().toPrecision(t)}finally{S.precision=t}}var lr=24,rp=2e4,Nw=500;function A0(e,n){return n.isFinite()?ar(lr,()=>Pr(e,n)):S.NAN}function Pr(e,n){if(!n.isFinite())return S.NAN;if(n.lt(S.HALF)){let v=S.PI,E=v.mul(n).sin().abs();return E.isZero()?S.NAN:v.ln().sub(E.ln()).sub(Pr(e,S.ONE.sub(n)))}if(n.isInteger()&&n.isPositive()){let v=n.toNumber();if(v<=1)return S.ZERO;if(v<=rp){let E=1n,_=0;for(let M=2;M<v;M++)(++_&4095)===0&&$(e._deadline),E*=BigInt(M);return new S(E.toString()).ln()}}let t=n.sub(S.HALF);if(t.isInteger()&&!t.isNegative()){let v=t.toNumber();if(v===0)return S.PI.ln().div(S.TWO);if(v<=rp){let E=0,_=1n;for(let A=2;A<=2*v;A++)(++E&4095)===0&&$(e._deadline),_*=BigInt(A);let M=1n;for(let A=2;A<=v;A++)(++E&4095)===0&&$(e._deadline),M*=BigInt(A);let I=4n**BigInt(v);return new S(_.toString()).ln().add(S.PI.ln().div(S.TWO)).sub(new S(I.toString()).ln()).sub(new S(M.toString()).ln())}}let r=S.precision,i=10,o=Math.ceil(r),s=n.toNumber(),u=Math.max(0,Math.ceil(o-s)),a=S.ONE,l=n;for(let v=0;v<u;v++)a=a.mulToPrecision(l,r),l=l.add(S.ONE);let f=u>0?a.ln():S.ZERO,c=Math.max(20,Math.ceil(.6*r)+20),p=ws(e,c),m=l.sub(S.HALF).mul(l.ln()).sub(l).add(S.PI.mul(S.TWO).ln().div(S.TWO)),g=S.ONE.div(l),b=g.mulToPrecision(g,r),h=g,y=new S(10).pow(-(r+i)),x=Math.min(c,p.length);for(let v=0;v<x;v++){let E=2*(v+1),[_,M]=p[v],I=BigInt(E)*BigInt(E-1),R=new S(_.toString()).div(new S((M*I).toString())).mulToPrecision(h,r);if(v>0&&R.abs().lt(y))break;m=m.add(R),h=h.mulToPrecision(b,r)}return m.sub(f)}function un(e,n){if(n.isInteger()&&n.isPositive()){let t=n.toNumber();if(t<=rp){let r=1n,i=0;for(let o=2;o<t;o++)(++i&4095)===0&&$(e._deadline),r*=BigInt(o);return new S(r.toString())}}return ar(lr,()=>to(e,n))}function to(e,n){if(n.lt(S.HALF)){let t=S.PI,r=t.mul(n).sin();return r.isZero()?S.NAN:t.div(r.mul(to(e,S.ONE.sub(n))))}return Pr(e,n).exp()}function v0(e,n){for(;n!==0n;){let t=n;n=e%n,e=t}return e}function wa(e){return e<0n?-e:e}function ww(e,n){let t=[[1n,1n],[-1n,2n]];for(let i=2;i<=2*e;i++){if((i&255)===0&&$(n),i%2===1){t.push([0n,1n]);continue}let o=BigInt(i+1),s=0n,u=1n,a=1n;for(let p=0;p<i;p++){p>0&&(a=a*(o-BigInt(p)+1n)/BigInt(p));let[m,g]=t[p];if(m!==0n&&(s=s*g+a*m*u,u=u*g,p%8===7)){let b=v0(wa(s),u);s/=b,u/=b}}let l=-s,f=o*u,c=v0(wa(l),wa(f));l/=c,f/=c,f<0n&&(l=-l,f=-f),t.push([l,f])}let r=[];for(let i=1;i<=e;i++)r.push(t[2*i]);return r}var x0=new WeakMap;function ws(e,n){let t=x0.get(e);if(t&&t.length>=n)return t;let r=n+Math.min(64,Math.ceil(n/2)),i=ww(r,e._deadline);return x0.set(e,i),i}function up(e,n){return n.isFinite()?ar(lr,()=>R0(e,n)):S.NAN}function R0(e,n){if(n.isNegative()){if(n.isInteger())return S.NAN;let m=S.PI,g=m.mul(n),b=g.cos().div(g.sin());return R0(e,S.ONE.sub(n)).sub(m.mul(b))}if(n.isZero())return S.NAN;let t=S.precision,r=10,i=Math.max(7,Math.ceil(t)),o=new S(0),s=n;for(;s.lt(i);)o=o.sub(S.ONE.div(s)),s=s.add(S.ONE);let u=Math.max(20,Math.ceil(.6*t)+20),a=ws(e,u);o=o.add(s.ln()).sub(S.ONE.div(s.mul(2)));let l=s.mulToPrecision(s,t),f=l,c=new S(10).pow(-(t+r)),p=Math.min(u,a.length);for(let m=0;m<p;m++){let[g,b]=a[m],h=BigInt(2*(m+1)),y=new S(g.toString()).div(new S((b*h).toString()).mul(l));if(m>0&&y.abs().lt(c))break;o=o.sub(y),l=l.mulToPrecision(f,t)}return o}function ap(e,n){return n.isFinite()?ar(lr,()=>P0(e,n)):S.NAN}function P0(e,n){if(n.isNegative()){if(n.isInteger())return S.NAN;let m=S.PI,g=m.mul(n).sin();return m.mul(m).div(g.mul(g)).sub(P0(e,S.ONE.sub(n)))}if(n.isZero())return S.NAN;let t=S.precision,r=10,i=Math.max(7,Math.ceil(t)),o=new S(0),s=n;for(;s.lt(i);)o=o.add(S.ONE.div(s.mul(s))),s=s.add(S.ONE);let u=Math.max(20,Math.ceil(.6*t)+20),a=ws(e,u);o=o.add(S.ONE.div(s)),o=o.add(S.ONE.div(s.mul(s).mul(2)));let l=s.mul(s).mulToPrecision(s,t),f=s.mulToPrecision(s,t),c=new S(10).pow(-(t+r)),p=Math.min(u,a.length);for(let m=0;m<p;m++){let[g,b]=a[m],h=new S(g.toString()).div(new S(b.toString()).mul(l));if(m>0&&h.abs().lt(c))break;o=o.add(h),l=l.mulToPrecision(f,t)}return o}function T0(e,n,t){let r=n.toNumber();return!Number.isInteger(r)||r<0?S.NAN:r===0?up(e,t):r===1?ap(e,t):!t.isFinite()||t.isZero()?S.NAN:ar(lr,()=>Cw(e,r,t))}function Cw(e,n,t){let r=v=>{let E=S.ONE;for(let _=2;_<=v;_++)E=E.mul(_);return E},i=S.precision,o=10,s=Math.max(7,Math.ceil(i)),u=t,a=new S(0);if(u.isNegative()&&u.isInteger())return S.NAN;let l=n%2===0?-1:1,f=r(n);for(;u.lt(s);)a=a.add(new S(l).mul(f).div(u.pow(n+1))),u=u.add(S.ONE);let c=Math.max(20,Math.ceil(.6*i)+20),p=ws(e,c),m=n%2===0?-1:1;a=a.add(new S(m).mul(r(n-1)).div(u.pow(n))),a=a.add(new S(m).mul(f).div(u.pow(n+1).mul(2)));let g=1n;for(let v=2;v<=n-1;v++)g*=BigInt(v);let b=u.pow(n+2).toPrecision(i),h=u.mulToPrecision(u,i),y=new S(10).pow(-(i+o)),x=Math.min(c,p.length);for(let v=0;v<x;v++){let E=2*(v+1),[_,M]=p[v],I=g;for(let T=0;T<E;T++)I*=BigInt(n+T);let A=1n;for(let T=2;T<=E;T++)A*=BigInt(T);let R=new S((BigInt(m)*_*I).toString()).div(new S((M*A).toString()).mul(b));if(v>0&&R.abs().lt(y))break;a=a.add(R),b=b.mulToPrecision(h,i)}return a}function k0(e,n,t){return ar(lr,()=>to(e,n).mul(to(e,t)).div(to(e,n.add(t))))}function Iw(e,n,t){let r=S.precision,i=new S(10).pow(-r),o=n,s=S.ONE.div(n),u=s,a=2e3+20*Math.ceil(Math.abs(t.toNumber()))+20*r;for(let f=0;f<a&&((f&255)===0&&$(e._deadline),o=o.add(S.ONE),s=s.mul(t).div(o),u=u.add(s),!s.abs().lt(u.abs().mul(i)));f++);let l=n.mul(t.ln()).sub(t).sub(Pr(e,n)).exp();return u.mul(l)}function Mw(e,n,t){let r=S.precision,i=new S(10).pow(-r),o=new S(10).pow(-(2*r)),s=t.add(S.ONE).sub(n),u=S.ONE.div(o),a=S.ONE.div(s),l=a,f=2e3+20*r;for(let p=1;p<f;p++){(p&255)===0&&$(e._deadline);let m=new S(p).sub(n).mul(-p);s=s.add(S.TWO),a=m.mul(a).add(s),a.abs().lt(o)&&(a=o),u=s.add(m.div(u)),u.abs().lt(o)&&(u=o),a=S.ONE.div(a);let g=a.mul(u);if(l=l.mul(g),g.sub(S.ONE).abs().lt(i))break}return n.mul(t.ln()).sub(t).sub(Pr(e,n)).exp().mul(l)}function O0(e,n,t){return n.isNaN()||t.isNaN()?S.NAN:!n.isFinite()||!t.isFinite()?S.NAN:n.isPositive()?t.isNegative()?S.NAN:t.isZero()?S.ONE:ar(lr,()=>t.lt(n.mul(2).add(S.TWO))?S.ONE.sub(Iw(e,n,t)):Mw(e,n,t)):S.NAN}function E0(e,n,t,r){let i=S.precision,o=new S(10).pow(-i),s=new S(10).pow(-(2*i)),u=n.add(t),a=n.add(S.ONE),l=n.sub(S.ONE),f=S.ONE,c=S.ONE.sub(u.mul(r).div(a));c.abs().lt(s)&&(c=s),c=S.ONE.div(c);let p=c,m=1e3+10*i;for(let g=1;g<m;g++){(g&255)===0&&$(e._deadline);let b=2*g,h=t.sub(g).mul(g).mul(r).div(l.add(b).mul(n.add(b)));c=S.ONE.add(h.mul(c)),c.abs().lt(s)&&(c=s),f=S.ONE.add(h.div(f)),f.abs().lt(s)&&(f=s),c=S.ONE.div(c),p=p.mul(c).mul(f),h=n.add(g).mul(u.add(g)).mul(r).neg().div(n.add(b).mul(a.add(b))),c=S.ONE.add(h.mul(c)),c.abs().lt(s)&&(c=s),f=S.ONE.add(h.div(f)),f.abs().lt(s)&&(f=s),c=S.ONE.div(c);let y=c.mul(f);if(p=p.mul(y),y.sub(S.ONE).abs().lt(o))break}return p}function L0(e,n,t,r){return n.isNaN()||t.isNaN()||r.isNaN()?S.NAN:!n.isFinite()||!t.isFinite()||!r.isFinite()?S.NAN:!t.isPositive()||!r.isPositive()?S.NAN:n.isNegative()||n.gt(S.ONE)?S.NAN:n.isZero()?S.ZERO:n.eq(S.ONE)?S.ONE:ar(lr,()=>{let i=Pr(e,t.add(r)).sub(Pr(e,t)).sub(Pr(e,r)).add(t.mul(n.ln())).add(r.mul(S.ONE.sub(n).ln())).exp(),o=t.add(S.ONE).div(t.add(r).add(S.TWO));return n.lt(o)?i.mul(E0(e,t,r,n)).div(t):S.ONE.sub(i.mul(E0(e,r,t,S.ONE.sub(n))).div(r))})}function D0(e,n){return n.isFinite()?n.eq(1)?new S(1/0):ar(lr,()=>$0(e,n)):S.NAN}function $0(e,n){let t=S.PI;if(n.isZero())return S.HALF.neg();if(n.isInteger()&&n.isPositive()){let p=n.toNumber();if(p%2===0&&p>=2&&p<=Nw){let m=p/2,g=ws(e,m),[b,h]=g[m-1],y=new S(wa(b).toString()).div(new S(h.toString())),x=t.mul(2),v=S.ONE,E=0;for(let _=2;_<=p;_++)(++E&4095)===0&&$(e._deadline),v=v.mul(_);return y.mul(x.pow(p)).div(v.mul(2))}}if(n.isNegative()&&n.isInteger()&&n.mod(S.TWO).isZero())return S.ZERO;if(n.isNegative())return new S(2).pow(n).mul(t.pow(n.sub(1))).mul(t.mul(n).div(2).sin()).mul(to(e,S.ONE.sub(n))).mul($0(e,S.ONE.sub(n)));let r=S.precision;if(n.gt((r+10)*3.33))return S.ONE;let i=Math.max(22,Math.ceil(1.32*r)+3),s=new S(3).add(new S(8).sqrt()).pow(i),u=s.add(S.ONE.div(s)).div(2),a=S.NEGATIVE_ONE,l=u.neg(),f=S.ZERO;for(let p=0;p<i;p++)(p&255)===0&&$(e._deadline),l=a.sub(l),f=f.add(l.div(new S(p+1).pow(n))),a=a.mul(new S(p+i).mul(p-i)).div(new S(p).add(S.HALF).mul(p+1));return f.div(u).div(S.ONE.sub(new S(2).pow(S.ONE.sub(n))))}function F0(e,n){if(!n.isFinite())return n;if(n.isZero())return new S(0);let r=S.ONE.div(S.ONE.exp()).neg(),i=new S(10).pow(-S.precision),o=new S(10).pow(-15);if(n.sub(r).abs().lt(o))return S.NEGATIVE_ONE;if(n.lt(r))return S.NAN;let s,u=n.toNumber();if(u<0){let a=Math.sqrt(2*(Math.E*u+1));s=new S(-1+a-a*a/3+11/72*a*a*a)}else if(u<=1)s=new S(u*(1-u*(1-1.5*u)));else if(u<100){let a=Math.log(u);s=new S(a-Math.log(a))}else{let a=n.ln(),l=a.ln();s=a.sub(l).add(l.div(a))}for(let a=0;a<100;a++){let l=s.exp(),c=s.mul(l).sub(n),p=l.mul(s.add(1)),m=l.mul(s.add(2)),g=c.div(p.sub(c.mul(m).div(p.mul(2))));if(s=s.sub(g),g.abs().lt(i.mul(s.abs().add(1))))break}return s.toPrecision(S.precision)}var Ma=.5772156649015329,kr=[1/6,-1/30,1/42,-1/30,5/66,-691/2730,7/6,-3617/510,43867/798,-174611/330];function fo(e){if(!isFinite(e))return NaN;if(e<0)return Number.isInteger(e)?NaN:fo(1-e)-Math.PI/Math.tan(Math.PI*e);if(e===0)return NaN;let n=0,t=e;for(;t<7;)n-=1/t,t+=1;n+=Math.log(t)-1/(2*t);let r=t*t;for(let i=0;i<kr.length;i++)n-=kr[i]/(2*(i+1)*r),r*=t*t;return n}function co(e){if(!isFinite(e))return NaN;if(e<0){if(Number.isInteger(e))return NaN;let i=Math.sin(Math.PI*e);return Math.PI*Math.PI/(i*i)-co(1-e)}if(e===0)return NaN;let n=0,t=e;for(;t<7;)n+=1/(t*t),t+=1;n+=1/t+1/(2*t*t);let r=t*t*t;for(let i=0;i<kr.length;i++)n+=kr[i]/r,r*=t*t;return n}function Aa(e,n){if(!Number.isInteger(e)||e<0)return NaN;if(e===0)return fo(n);if(e===1)return co(n);if(!isFinite(n)||n===0)return NaN;if(n<0&&Number.isInteger(n))return NaN;let t=0,r=n,i=ip(e),o=e%2===0?-1:1,s=e+10;for(;r<s;)t+=o*i/Math.pow(r,e+1),r+=1;let u=e%2===0?-1:1;t+=u*ip(e-1)/Math.pow(r,e),t+=u*i/(2*Math.pow(r,e+1));let a=i*(e+1)/(2*Math.pow(r,e+2)),l=1/0;for(let f=1;f<=kr.length;f++){let c=kr[f-1]*a;if(Math.abs(c)>=l)break;t+=u*c,l=Math.abs(c);let p=2*f;a*=(p+e)*(p+e+1)/((p+1)*(p+2)*r*r)}return t}function ip(e){if(e<=1)return 1;let n=1;for(let t=2;t<=e;t++)n*=t;return n}function Ra(e,n){return e>100||n>100||e+n>100?Math.exp(Ae(e)+Ae(n)-Ae(e+n)):ue(e)*ue(n)/ue(e+n)}function Cs(e){if(!isFinite(e))return NaN;if(e===1)return 1/0;if(e===0)return-.5;if(e===2)return Math.PI*Math.PI/6;if(e===4)return Math.PI**4/90;if(e===6)return Math.PI**6/945;if(e===8)return Math.PI**8/9450;if(e<0&&Number.isInteger(e)){if(e%2===0)return 0;let o=1-e;if(o/2<=kr.length)return-kr[o/2-1]/o}if(e<0)return Math.pow(2,e)*Math.pow(Math.PI,e-1)*Math.sin(Math.PI*e/2)*ue(1-e)*Cs(1-e);if(e>=12){let o=1;for(let s=2;s<=128;s++){let u=Math.pow(s,-e);if(o+=u,u<o*1e-18)break}return o}let[n,t]=Aw(),r=0,i=0;for(let o=0;o<q0;o++){let u=(o%2===0?n[o]:-n[o])*Math.pow(o+1,-e)-i,a=r+u;i=a-r-u,r=a}return r/t/-Math.expm1((1-e)*Math.LN2)}var q0=28,Na=null;function Aw(){if(Na)return Na;let e=q0,n=1n<<64n,t=n,r=n,i=[r];for(let a=0;a<e;a++)t=t*BigInt(4*(e+a)*(e-a))/BigInt((2*a+1)*(2*a+2)),r+=t,i.push(r);let o=i[e],s=Math.pow(2,64),u=[];for(let a=0;a<e;a++)u.push(Number(o-i[a])/s);return Na=[u,Number(o)/s],Na}function Pa(e){if(!isFinite(e))return e;if(e===0)return 0;let n=1/Math.E;if(e<-n)return NaN;if(Math.abs(e+n)<1e-15)return-1;let t;if(e<0){let r=Math.sqrt(2*(Math.E*e+1));t=-1+r-r*r/3+11/72*r*r*r}else if(e<=1)t=e*(1-e*(1-1.5*e));else if(e<100){let r=Math.log(e);t=r-Math.log(r)}else{let r=Math.log(e),i=Math.log(r);t=r-i+i/r}for(let r=0;r<30;r++){let i=Math.exp(t),s=t*i-e,u=i*(t+1),a=i*(t+2),l=s/(u-s*a/(2*u));if(t-=l,Math.abs(l)<1e-15*(1+Math.abs(t)))break}return t}function Tt(e,n){return!isFinite(n)||!Number.isInteger(e)?NaN:n===0?e===0?1:0:e<0?(e=-e,e%2===0?Tt(e,n):-Tt(e,n)):n<0?e%2===0?Tt(e,-n):-Tt(e,-n):n>25+e*e/2?Pw(e,n):n<5+e?Rw(e,n):Tw(e,n)}function Rw(e,n){let t=n/2,r=-(n*n)/4,i=1;for(let s=1;s<=e;s++)i/=s;let o=i;for(let s=1;s<=60&&(i*=r/(s*(e+s)),o+=i,!(Math.abs(i)<Math.abs(o)*1e-16));s++);return o*Math.pow(t,e)}function B0(e,n){let t=4*e*e,r=1,i=0,o=1,s=8*n;for(let u=1;u<=20;u++){o*=t-(2*u-1)*(2*u-1);let a=ip(u)*Math.pow(s,u),l=o/a;if(u%2===1?i+=(u%4===1?1:-1)*l:r+=(u%4===2?-1:1)*l,Math.abs(l)<1e-15)break}return[r,i]}function Pw(e,n){let t=n-(e/2+.25)*Math.PI,[r,i]=B0(e,n);return Math.sqrt(2/(Math.PI*n))*(r*Math.cos(t)-i*Math.sin(t))}function Tw(e,n){let t=Math.max(e+20,Math.ceil(n)+30),r=0,i=1,o=new Array(t+1);o[t]=i;for(let a=t;a>=1;a--){let l=2*a/n*i-r;r=i,i=l,o[a-1]=i}let s=o[0];for(let a=2;a<=t;a+=2)s+=2*o[a];let u=1/s;return o[e]*u}function io(e,n){if(!isFinite(n)||!Number.isInteger(e))return NaN;if(n<=0)return NaN;if(e<0)return e=-e,e%2===0?io(e,n):-io(e,n);if(n>12+e*e/4)return Lw(e,n);let t=kw(n);if(e===0)return t;let r=Ow(n);if(e===1)return r;let i=t,o=r;for(let s=1;s<e;s++){let u=2*s/n*o-i;i=o,o=u}return o}function kw(e){let n=e/2,t=n*n,r=Tt(0,e),i=0,o=1,s=0;for(let u=1;u<=60&&(s+=1/u,o*=-t/(u*u),i-=o*s,!(Math.abs(o*s)<Math.abs(i)*1e-16));u++);return 2/Math.PI*(r*(Math.log(n)+Ma)+i)}function Ow(e){let n=e/2,t=n*n,r=Tt(1,e),i=0,o=1,s=1;for(let u=0;u<=60;u++){u>0&&(s*=u,o*=t);let a=s*(u+1),l=0;for(let b=1;b<=u;b++)l+=1/b;let f=l+1/(u+1),c=-Ma+l,p=-Ma+f,g=(u%2===0?1:-1)*(c+p)*o/(s*a);if(i+=g,u>3&&Math.abs(g)<1e-16*Math.abs(i))break}return-2/(Math.PI*e)+2/Math.PI*Math.log(n)*r-n/Math.PI*i}function Lw(e,n){let t=n-(e/2+.25)*Math.PI,[r,i]=B0(e,n);return Math.sqrt(2/(Math.PI*n))*(r*Math.sin(t)+i*Math.cos(t))}function or(e,n){return!isFinite(n)||!Number.isInteger(e)?NaN:n===0?e===0?1:0:(e<0&&(e=-e),n<0?e%2===0?or(e,-n):-or(e,-n):n>20&&n>=e*e?$w(e,n):Dw(e,n))}function Dw(e,n){let t=n/2,r=n*n/4,i=1;for(let u=1;u<=e;u++)i/=u;let o=i,s=0;for(let u=1;u<=500;u++){i*=r/(u*(e+u));let a=i-s,l=o+a;if(s=l-o-a,o=l,Math.abs(i)<Math.abs(o)*1e-17)break}return o*Math.pow(t,e)}function $w(e,n){let t=4*e*e,r=1,i=1,o=1/0;for(let s=1;s<=40;s++){let u=t-(2*s-1)*(2*s-1);if(r*=-u/(s*8*n),Math.abs(r)>=o||(i+=r,o=Math.abs(r),Math.abs(r)<1e-17*Math.abs(i)))break}return Math.exp(n)/Math.sqrt(2*Math.PI*n)*i}function Ta(e,n){if(!isFinite(n)||!Number.isInteger(e))return NaN;if(n<=0)return NaN;e<0&&(e=-e);let t,r;if(n>=20){if(t=_0(0,n),e===0)return t;r=_0(1,n)}else if(n>=1.5){if([t,r]=Fw(n),e===0)return t}else{if(t=V0(n),e===0)return t;r=qw(n)}if(e===1)return r;let i=t,o=r;for(let s=1;s<e;s++){let u=2*s/n*o+i;i=o,o=u}return o}function Fw(e){let t=2*(1+e),r=1/t,i=r,o=r,s=0,u=1,a=-.25,l=.25,f=.25,c=1+f*o,p=0,m=0;for(let h=2;h<=1e4;h++){a-=2*(h-1),l=-a*l/h;let y=(s-t*u)/a;s=u,u=y,f+=l*y,t+=2,r=1/(t+a*r),o=(t*r-1)*o;let x=o-m,v=i+x;m=v-i-x,i=v;let E=f*o;if(x=E-p,v=c+x,p=v-c-x,c=v,Math.abs(E)<1e-18*Math.abs(c))break}i=.25*i;let g=Math.sqrt(Math.PI/(2*e))*Math.exp(-e)/c,b=g*(e+.5-i)/e;return[g,b]}function V0(e){let n=e/2,t=n*n,r=or(0,e),i=0,o=1,s=0;for(let u=1;u<=60&&(s+=1/u,o*=t/(u*u),i+=o*s,!(Math.abs(o*s)<Math.abs(i)*1e-16&&u>3));u++);return-(Math.log(n)+Ma)*r+i}function qw(e){let n=or(0,e),t=or(1,e),r=V0(e);return(1/e-t*r)/n}function _0(e,n){let t=4*e*e,r=1,i=1,o=1/0;for(let s=1;s<=40;s++){let u=t-(2*s-1)*(2*s-1);if(r*=u/(s*8*n),Math.abs(r)>=o||(i+=r,o=Math.abs(r),Math.abs(r)<1e-17*Math.abs(i)))break}return Math.sqrt(Math.PI/(2*n))*Math.exp(-n)*i}var S0=134217729;function N0(e,n){let t=e+n,r=t-e;return[t,e-(t-r)+(n-r)]}function oo(e,n){let t=e+n;return[t,n-(t-e)]}function Is(e,n){let t=e*n,r=S0*e,i=r-(r-e),o=e-i,s=S0*n,u=s-(s-n),a=n-u;return[t,i*u-t+i*a+o*u+o*a]}function so(e,n){let[t,r]=N0(e[0],n[0]),[i,o]=N0(e[1],n[1]),[s,u]=oo(t,r+i);return oo(s,u+o)}function z0(e){return[-e[0],-e[1]]}function Ei(e,n){let[t,r]=Is(e[0],n[0]);return oo(t,r+e[0]*n[1]+e[1]*n[0])}function op(e,n){let[t,r]=Is(e[0],n);return oo(t,r+e[1]*n)}function sp(e,n){let t=e[0]/n,[r,i]=Is(t,n),o=so(e,[-r,-i]);return oo(t,(o[0]+o[1])/n)}function Bw(e){let n=Math.sqrt(e),[t,r]=Is(n,n);return oo(n,(e-t-r)/(2*n))}var j0=[.3550280538878172,205233632436212e-31],U0=[.2588194037928068,-2522243111610832e-32],Vw=[1.7320508075688772,10035084221806903e-32],zw=[.7853981633974483,3061616997868383e-32];function G0(e){let n=op(Is(e,e),e),t=[1,0],r=[e,0],i=[1,0],o=[e,0];for(let s=1;s<=200;s++){let u=3*s;if(i=sp(Ei(i,n),(u-1)*u),o=sp(Ei(o,n),u*(u+1)),t=so(t,i),r=so(r,o),Math.abs(i[0])+Math.abs(o[0])<1e-34*(Math.abs(t[0])+Math.abs(r[0])))break}return[t,r]}function lp(e){let n=op(Bw(e),e);return sp(op(n,2),3)}function fp(e){return(6*e-5)*(6*e-3)*(6*e-1)/(216*e*(2*e-1))}function H0(e){let n=lp(e),t=n[0],r=so(n,z0(zw)),i=Math.cos(r[0]),o=Math.sin(r[0]),s=i-o*r[1],u=o+i*r[1],a=1,l=0,f=1,c=1/0;for(let m=1;m<=60;m++){f*=fp(m)/t;let g=Math.abs(f);if(g>=c)break;c=g;let b=m%4===0||m%4===1?f:-f;if(m%2===0?a+=b:l+=b,g<1e-18)break}let p=1/(Math.sqrt(Math.PI)*Math.pow(e,.25));return[a,l,s,u,p]}function ka(e){if(!isFinite(e))return NaN;if(e>9){let r=lp(e),i=r[0];if(!Number.isFinite(i))return 0;let o=1,s=1,u=1/0;for(let l=1;l<=60&&(s*=fp(l)/i,!(s>=u||(o+=l%2===0?s:-s,u=s,s<1e-18*o)));l++);return Math.exp(-i)*(1-r[1])/(2*Math.sqrt(Math.PI)*Math.pow(e,.25))*o}if(e<-9){let[r,i,o,s,u]=H0(-e);return u*(o*r+s*i)}let[n,t]=G0(e);return so(Ei(j0,n),z0(Ei(U0,t)))[0]}function Oa(e){if(!isFinite(e))return NaN;if(e>9){let r=lp(e),i=r[0];if(!Number.isFinite(i))return 1/0;let o=1,s=1,u=1/0;for(let l=1;l<=60&&(s*=fp(l)/i,!(s>=u||(o+=s,u=s,s<1e-18*o)));l++);return Math.exp(i)*(1+r[1])/(Math.sqrt(Math.PI)*Math.pow(e,.25))*o}if(e<-9){let[r,i,o,s,u]=H0(-e);return u*(-s*r+o*i)}let[n,t]=G0(e);return Ei(Vw,so(Ei(j0,n),Ei(U0,t)))[0]}var jw=[-2991.8191940101983,708840.0452577386,-6297414862058625e-8,25489088057337637e-7,-4429795180596978e-5,3180162978765678e-4],Uw=[1,281.3762688899943,45584.78108065326,5173438887700964e-9,4193202458981112e-7,22441179564534092e-6,607366389490085e-3],Gw=[-49884311457357354e-24,9504280628298596e-21,-.0006451914356839651,.018884331939670384,-.20552590095501388,1],Hw=[399982968972496e-26,9154392157746574e-25,12500186247959882e-23,12226278902417902e-21,.0008680295429417843,.04121420907221998,1],Z0=[.4215435550436775,.1434079197807589,.011522095507358577,.000345017939782574,46361374928786735e-22,3055689837902576e-23,10230451416490724e-26,17201074326816183e-29,13428327623306275e-32,3763297112699879e-35],Y0=[1,.7515863983533789,.11688892585919138,.0064405152650885865,.00015593440916415301,18462756734893055e-22,11269922476399903e-24,36014002958937136e-27,5887545336215784e-29,45200143407412973e-33,12544323709001127e-36],Q0=[.5044420736433832,.1971028335255234,.018764858409257526,.0006840793809153931,11513882611188428e-21,9828524436884223e-23,44534441586175015e-26,10826804113902088e-28,1375554606332618e-30,8363544356306774e-34,18695871016278324e-38],J0=[1,1.4749575992512833,.33774898912002,.02536037414203388,.0008146791071843061,12754507566772912e-21,10431458965757199e-23,46068072851523205e-26,11027321506624028e-28,13879653125957886e-31,8391588162831187e-34,18695871016278324e-38];function rt(e,n){let t=n[0];for(let r=1;r<n.length;r++)t=t*e+n[r];return t}var W0=6e15;function X0(e){let t=134217729*e,r=t-(t-e),i=e-r,o=r*r%4+2*(r*i%2)+i*i%4;return o%=4,o<0&&(o+=4),Math.PI/2*o}function kt(e){if(!isFinite(e))return e!==e?NaN:e>0?.5:-.5;let n=e<0?-1:1;if(e=Math.abs(e),e<1.6){let t=e*e,r=t*t;return n*e*t*rt(r,jw)/rt(r,Uw)}if(e<W0){let t=e*e,r=Math.PI*t,i=1/(r*r),o=1-i*rt(i,Z0)/rt(i,Y0),s=1/r*rt(i,Q0)/rt(i,J0),u=X0(e),a=Math.cos(u),l=Math.sin(u);return n*(.5-(o*a+s*l)/(Math.PI*e))}return n*.5}function Ot(e){if(!isFinite(e))return e!==e?NaN:e>0?.5:-.5;let n=e<0?-1:1;if(e=Math.abs(e),e<1.6){let t=e*e,r=t*t;return n*e*rt(r,Gw)/rt(r,Hw)}if(e<W0){let t=e*e,r=Math.PI*t,i=1/(r*r),o=1-i*rt(i,Z0)/rt(i,Y0),s=1/r*rt(i,Q0)/rt(i,J0),u=X0(e),a=Math.cos(u),l=Math.sin(u);return n*(.5+(o*l-s*a)/(Math.PI*e))}return n*.5}function La(e){return e===0?1:Math.sin(e)/e}var cp=Math.LOG10E;function an(e,n){let t=S.precision;S.precision=t+Math.max(0,Math.ceil(e));try{return n()}finally{S.precision=t}}function K0(e,n){let t=e.mul(e),r=t.mul(2),i=e,o=e,s=new S(10).pow(-n),u=1e3+10*Math.ceil(t.toNumber())+10*n;for(let a=1;a<=u&&(i=i.mul(r).div(2*a+1),o=o.add(i),!i.lt(o.mul(s)));a++);return o.mul(2).mul(t.neg().exp()).div(S.PI.sqrt())}function Zw(e,n){let t=e.mul(e).mul(2),r=S.ONE,i=S.ONE,o=r.abs(),s=new S(10).pow(-n);for(let u=1;u<=1e5;u++){r=r.mul(2*u-1).div(t).neg();let a=r.abs();if(a.gt(o)||(o=a,i=i.add(r),a.lt(s)))break}return e.mul(e).neg().exp().div(e.mul(S.PI.sqrt())).mul(i)}function Da(e,n){if(n.isNaN())return S.NAN;if(!n.isFinite())return n.isNegative()?S.NEGATIVE_ONE:S.ONE;if(n.isZero())return S.ZERO;if(n.isNegative())return Da(e,n.neg()).neg();let t=S.precision,r=10,i=n.toNumber();return i*i*cp>=t+r?S.ONE:an(r,()=>K0(n,t+r)).toPrecision(t)}function $a(e){if(Number.isNaN(e))return NaN;if(e===0)return 0;if(!Number.isFinite(e))return e>0?1/0:-1/0;let n=e<0?-1:1,t=Math.abs(e),r=t*t,i=t,o=t;for(let s=1;s<1e3&&(i*=r*(2*s-1)/(s*(2*s+1)),o+=i,!(i<o*1e-18));s++);return n*(2/Math.sqrt(Math.PI))*o}function Yw(e,n){let t=e.mul(e),r=e,i=e,o=new S(10).pow(-n),s=1e3+10*Math.ceil(t.toNumber())+10*n;for(let u=1;u<=s&&(r=r.mul(t).mul(2*u-1).div(u*(2*u+1)),i=i.add(r),!r.lt(i.mul(o)));u++);return i.mul(2).div(S.PI.sqrt())}function pp(e,n){if(n.isNaN())return S.NAN;if(!n.isFinite())return n.isNegative()?S.NEGATIVE_INFINITY:S.POSITIVE_INFINITY;if(n.isZero())return S.ZERO;if(n.isNegative())return pp(e,n.neg()).neg();let t=S.precision,r=10;return an(r,()=>Yw(n,t+r)).toPrecision(t)}var Fa=.5772156649015329;function e1(e){let i=Math.abs(e);if(i===0)return{si:0,ci:-1/0};if(!Number.isFinite(i))return{si:e>0?Math.PI/2:-Math.PI/2,ci:0};let o,s;if(i>2){let u=1,a=i,l=1e30,f=0,c=u*u+a*a,p=u/c,m=-a/c,g=p,b=m;for(let E=1;E<100;E++){let _=-E*E;u+=2;let M=_*p+u,I=_*m+a;c=M*M+I*I,p=M/c,m=-I/c,c=l*l+f*f,l=u+_*l/c,f=a-_*f/c;let A=l*p-f*m,R=l*m+f*p;if(M=g*A-b*R,I=g*R+b*A,g=M,b=I,Math.abs(A-1)+Math.abs(R)<=1e-16)break}let h=Math.cos(i),y=Math.sin(i),x=h*g+y*b,v=h*b-y*g;s=-x,o=Math.PI/2+v}else{let u=0,a=0,l=0,f=1,c=1,p=!0;for(let m=1;m<=100;m++){c*=i/m;let g=c/m;u+=f*g;let b=g/Math.abs(u);if(p?(f=-f,a=u,u=l):(l=u,u=a),b<1e-16)break;p=!p}o=a,s=l+Math.log(i)+Fa}return e<0&&(o=-o),{si:o,ci:s}}function qa(e){return Number.isNaN(e)?NaN:e1(e).si}function Ba(e){return Number.isNaN(e)?NaN:e1(e).ci}function Qw(e){if(e<=0)return NaN;if(e<=1){let a=-Math.log(e)-Fa,l=1;for(let f=1;f<=200;f++){l*=-e/f;let c=-l/f;if(a+=c,Math.abs(c)<Math.abs(a)*1e-16)break}return a}let r=1e30,i=e+1,o=r,s=1/i,u=s;for(let a=1;a<=200;a++){let l=-a*a;i+=2,s=1/(l*s+i),o=i+l/o;let f=o*s;if(u*=f,Math.abs(f-1)<=1e-16)break}return u*Math.exp(-e)}function Ms(e){if(Number.isNaN(e))return NaN;if(e===0)return-1/0;if(!Number.isFinite(e))return e>0?1/0:0;if(e<0)return-Qw(-e);let n=1e-16,t=200,r=-Math.log(n);if(e<=r){let s=0,u=1;for(let a=1;a<=t;a++){u*=e/a;let l=u/a;if(s+=l,l<n*s)break}return s+Math.log(e)+Fa}let i=0,o=1;for(let s=1;s<=t;s++){let u=o;if(o*=s/e,o<n)break;if(o<u)i+=o;else{i-=u;break}}return Math.exp(e)*(1+i)/e}function Va(e){return Number.isNaN(e)?NaN:e===0?0:e===1?-1/0:e<0?NaN:Ms(Math.log(e))}function mp(e,n){if(n.isNaN())return S.NAN;if(!n.isFinite())return n.isNegative()?S.TWO:S.ZERO;if(n.isZero())return S.ONE;if(n.isNegative())return S.TWO.sub(mp(e,n.neg()));let t=S.precision,r=10,i=n.toNumber(),o=i*i*cp;return o<=t+r?an(o+r,()=>S.ONE.sub(K0(n,t+Math.ceil(o)+r))).toPrecision(t):an(r,()=>Zw(n,t+r)).toPrecision(t)}function dp(e,n){if(n.isNaN())return S.NAN;if(n.abs().gt(S.ONE))return S.NAN;if(n.isZero())return S.ZERO;if(n.eq(S.ONE))return new S(1/0);if(n.eq(S.NEGATIVE_ONE))return new S(-1/0);if(n.isNegative())return dp(e,n.neg()).neg();let t=S.precision;return an(15,()=>{let i,o=n.toNumber();1-o*o>0?i=new S(M0(o)):i=S.ONE.sub(n.mul(n)).ln().neg().sqrt();let s=S.PI.sqrt().div(2),u=new S(10).pow(-(t+5));for(let a=0;a<100;a++){let l=Da(e,i).sub(n).mul(s).mul(i.mul(i).exp());if(i=i.sub(l),l.abs().lt(i.abs().mul(u)))break}return i}).toPrecision(t)}function n1(e){return e.isNaN()?S.NAN:e.isFinite()?e.isZero()?S.ONE:e.sin().div(e):S.ZERO}function Jw(e,n,t){let r=S.PI.div(2),i=r.mul(r),o=e.mul(e).mul(e).mul(e),s=i.mul(o),u,a;n==="s"?(u=r.mul(e).mul(e).mul(e),a=u.div(3)):(u=e,a=e);let l=new S(10).pow(-t),f=Math.PI/2*e.toNumber()**2,c=100+2*Math.ceil(f)+2*t;for(let p=1;p<=c;p++){let m=n==="s"?2*p*(2*p+1):(2*p-1)*(2*p);u=u.mul(s).div(m).neg();let g=u.div(n==="s"?4*p+3:4*p+1);if(a=a.add(g),g.abs().lt(l))break}return a}function Ww(e,n,t){let r=S.PI,i=r.mul(e).mul(e).div(2),o=i.mul(i).mul(4),s=r.mul(e),u=S.ONE,a=S.HALF.div(i),l=u,f=a,c=u.abs(),p=new S(10).pow(-t);for(let y=1;y<=1e5;y++){u=u.mul((4*y-3)*(4*y-1)).div(o).neg(),a=a.mul((4*y-1)*(4*y+1)).div(o).neg();let x=u.abs();if(x.gt(c)||(c=x,l=l.add(u),f=f.add(a),x.lt(p)&&a.abs().lt(p)))break}let m=l.div(s),g=f.div(s),b=i.sin(),h=i.cos();return n==="s"?S.HALF.sub(m.mul(h)).sub(g.mul(b)):S.HALF.add(m.mul(b)).sub(g.mul(h))}function gp(e,n){if(e.isNaN())return S.NAN;if(!e.isFinite())return e.isNegative()?S.HALF.neg():S.HALF;if(e.isZero())return S.ZERO;if(e.isNegative())return gp(e.neg(),n).neg();let t=S.precision,r=10,i=e.toNumber(),o=Math.PI/2*i*i,s=o*cp;if(s<=t+2*r)return an(s+r,()=>Jw(e,n,t+r)).toPrecision(t);let u=r+Math.ceil(Math.max(0,Math.log10(o)));return an(u,()=>Ww(e,n,t+r)).toPrecision(t)}function t1(e){return gp(e,"s")}function r1(e){return gp(e,"c")}function As(e,n){if(Number.isNaN(e)||Number.isNaN(n))return NaN;if(e<0||n<0)return NaN;if(e===0||n===0)return 0;if(!isFinite(e)||!isFinite(n))return 1/0;for(let t=0;t<64&&Math.abs(e-n)>1e-17*Math.abs(e);t++){let r=.5*(e+n);n=Math.sqrt(e*n),e=r}return .5*(e+n)}function bp(e,n){if(e.isNaN()||n.isNaN()||e.isNegative()||n.isNegative())return S.NAN;if(e.isZero()||n.isZero())return S.ZERO;let t=new S(10).pow(-(S.precision-2));for(let r=0;r<200&&e.sub(n).abs().gt(t.mul(e.abs()));r++){let i=e.add(n).div(S.TWO);n=e.mul(n).sqrt(),e=i}return e.add(n).div(S.TWO)}function Rs(e){return Number.isNaN(e)?NaN:e===1?1/0:e>1?NaN:Math.PI/(2*As(1,Math.sqrt(1-e)))}function Ps(e){if(Number.isNaN(e))return NaN;if(e===1)return 1;if(e>1)return NaN;let n=1,t=Math.sqrt(1-e),r=.5*e,i=.5;for(let s=0;s<64&&Math.abs(n-t)>1e-17*n;s++){let u=.5*(n-t),a=.5*(n+t);t=Math.sqrt(n*t),n=a,i*=2,r+=i*u*u}return Math.PI/(2*n)*(1-r)}function i1(e,n){if(n.isNaN()||n.gte(S.ONE))return S.NAN;let t=S.precision;return an(10,()=>S.PI.div(S.TWO.mul(bp(S.ONE,S.ONE.sub(n).sqrt())))).toPrecision(t)}function o1(e,n){if(n.isNaN()||n.gt(S.ONE))return S.NAN;if(n.eq(S.ONE))return S.ONE;let t=S.precision;return an(10,()=>{let i=new S(10).pow(-(S.precision-2)),o=S.ONE,s=S.ONE.sub(n).sqrt(),u=n.div(S.TWO),a=S.HALF;for(let f=0;f<200&&o.sub(s).abs().gt(i.mul(o));f++){let c=o.sub(s).div(S.TWO),p=o.add(s).div(S.TWO);s=o.mul(s).sqrt(),o=p,a=a.mul(S.TWO),u=u.add(a.mul(c).mul(c))}return S.PI.div(S.TWO.mul(o)).mul(S.ONE.sub(u))}).toPrecision(t)}var s1=1e-24;function ro(e,n){if(Number.isNaN(e)||Number.isNaN(n)||e<0)return NaN;if(n===0)return 1/0;if(e===0)return Math.PI/(2*Math.sqrt(n));if(n<0)return Math.sqrt(e/(e-n))*ro(e-n,-n);if(e===n)return 1/Math.sqrt(e);let t=(n-e)/e;if(Math.abs(t)<.01){let i=0,o=1;for(let s=0;s<10;s++)i+=o/(2*s+1),o*=-t;return i/Math.sqrt(e)}let r=Math.sqrt(e/n);return e<n?Math.acos(r)/Math.sqrt(n-e):Math.acosh(r)/Math.sqrt(e-n)}function Ts(e,n,t){if(Number.isNaN(e)||Number.isNaN(n)||Number.isNaN(t))return NaN;if(e<0||n<0||t<0)return NaN;if((e===0?1:0)+(n===0?1:0)+(t===0?1:0)>1)return 1/0;if(n===t)return ro(e,n);if(e===t)return ro(n,e);if(e===n)return ro(t,e);let r=(e+n+t)/3,i=Math.pow(3*s1,-1/6)*Math.max(Math.abs(r-e),Math.abs(r-n),Math.abs(r-t)),[o,s,u]=[e,n,t],a=r,l=1;for(let h=0;h<64&&l*i>=Math.abs(a);h++){let y=Math.sqrt(o),x=Math.sqrt(s),v=Math.sqrt(u),E=y*x+y*v+x*v;a=(a+E)/4,o=(o+E)/4,s=(s+E)/4,u=(u+E)/4,l/=4}let f=l/a,c=(r-e)*f,p=(r-n)*f,m=-c-p,g=c*p-m*m,b=c*p*m;return Math.pow(a,-.5)*(9240-924*g+385*g*g+660*b-630*g*b)/9240}function za(e,n,t,r){if(Number.isNaN(e)||Number.isNaN(n)||Number.isNaN(t)||Number.isNaN(r))return NaN;if(e<0||n<0||t<0)return NaN;if(r===0||(e===0?1:0)+(n===0?1:0)+(t===0?1:0)>1)return 1/0;if(r<0){let[A,R,T]=[e,n,t].sort((V,ne)=>V-ne),D=-r,k=(T*(A+R+D)-A*R)/(T+D),G=(k-T)*za(A,R,T,k);return G-=3*Ts(A,R,T),G+=3*Math.sqrt(A*R*T/(A*R+k*D))*ro(A*R+k*D,k*D),G/(T+D)}let i=(e+n+t+2*r)/5,o=(r-e)*(r-n)*(r-t),s=Math.pow(.25*s1,-1/6)*Math.max(Math.abs(i-e),Math.abs(i-n),Math.abs(i-t),Math.abs(i-r)),[u,a,l,f]=[e,n,t,r],c=i,p=1,m=0;for(let A=0;A<64;A++){let R=Math.sqrt(u),T=Math.sqrt(a),D=Math.sqrt(l),k=Math.sqrt(f),G=R*T+R*D+T*D,V=(c+G)/4;u=(u+G)/4,a=(a+G)/4,l=(l+G)/4,f=(f+G)/4;let ne=(k+R)*(k+T)*(k+D),ie=o*p*p*p/(ne*ne);if(p*s<Math.abs(c))break;m+=ro(1,1+ie)*p/ne,p/=4,c=V}let g=p/c,b=(i-e)*g,h=(i-n)*g,y=(i-t)*g,x=(-b-h-y)/2,v=b*h+b*y+h*y-3*x*x,E=b*h*y+2*v*x+4*x*x*x,_=(2*b*h*y+v*x+3*x*x*x)*x,M=b*h*y*x*x,I=(24024-5148*v+2457*v*v+4004*E-4158*v*E-3276*_+2772*M)/24024;return p*Math.pow(c,-1.5)*I+6*m}function Xw(e,n,t){return za(e,n,t,t)}function ks(e,n){if(Number.isNaN(e)||Number.isNaN(n))return NaN;if(Math.abs(e)>Math.PI/2){let o=Math.round(e/Math.PI),s=Rs(n);return Number.isFinite(s)?2*o*s+ks(e-o*Math.PI,n):NaN}let t=Math.sin(e),r=1-n*t*t;if(r<0)return NaN;let i=Math.cos(e);return t*Ts(i*i,r,1)}function Os(e,n){if(Number.isNaN(e)||Number.isNaN(n))return NaN;if(Math.abs(e)>Math.PI/2){let s=Math.round(e/Math.PI),u=Ps(n);return Number.isFinite(u)?2*s*u+Os(e-s*Math.PI,n):NaN}let t=Math.sin(e),r=1-n*t*t;if(r<0)return NaN;let i=Math.cos(e),o=t*t*t;return t*Ts(i*i,r,1)-n/3*o*Xw(i*i,r,1)}function Ls(e,n){return Number.isNaN(e)||Number.isNaN(n)?NaN:e===1||n===1?1/0:n>1?NaN:Ts(0,1-n,1)+e/3*za(0,1-n,1,1-e)}function Ds(e,n,t){if(Number.isNaN(e)||Number.isNaN(n)||Number.isNaN(t))return NaN;if(Math.abs(n)>Math.PI/2){let a=Math.round(n/Math.PI),l=Ls(e,t);return Number.isFinite(l)?2*a*l+Ds(e,n-a*Math.PI,t):NaN}let r=Math.sin(n),i=1-t*r*r;if(i<0)return NaN;let o=Math.cos(n),s=r*r*r,u=1-e*r*r;return u===0?1/0:r*Ts(o*o,i,1)+e/3*s*za(o*o,i,1,u)}function Tr(e){return Number.isInteger(e)&&e<=0}function _s(e,n,t,r,i=1e4){let o=1,s=1;for(let u=0;u<i;u++)if(o*=(e+u)*(n+u)*r/((t+u)*(u+1)),o===0||(s+=o,u>2&&Math.abs(o)<=Number.EPSILON*Math.abs(s)))return s;return s}function $s(e,n,t,r){if([e,n,t,r].some(Number.isNaN))return NaN;let i=Tr(e)?-e:1/0,o=Tr(n)?-n:1/0,s=Math.min(i,o);if(Tr(t)&&(s===1/0||s>-t))return NaN;if(s!==1/0)return _s(e,n,t,r,s+1);if(r===0)return 1;if(r===1){let f=t-e-n;return f<=0?f===0?1/0:NaN:ue(t)*ue(f)/(ue(t-e)*ue(t-n))}if(r>1)return NaN;if(r<0)return Math.pow(1-r,-e)*$s(e,t-n,t,r/(r-1));if(r<=.5)return _s(e,n,t,r);let u=t-e-n;if(Number.isInteger(u)){if(r<1){let f=Math.ceil(17/-Math.log10(r));if(f<=4e5)return _s(e,n,t,r,f+10)}return NaN}let a=ue(t)*ue(u)/(ue(t-e)*ue(t-n))*_s(e,n,1-u,1-r),l=ue(t)*ue(-u)/(ue(e)*ue(n))*Math.pow(1-r,u)*_s(t-e,t-n,1+u,1-r);return a+l}function w0(e,n,t,r=2e4){let i=1,o=1;for(let s=0;s<r;s++)if(i*=(e+s)*t/((n+s)*(s+1)),i===0||(o+=i,s>2&&Math.abs(i)<=Number.EPSILON*Math.abs(o)))return o;return o}function Fs(e,n,t){if([e,n,t].some(Number.isNaN))return NaN;let r=Tr(e)?-e:1/0;return Tr(n)&&(r===1/0||r>-n)?NaN:r!==1/0?w0(e,n,t,r+1):t<0?Math.exp(t)*Fs(n-e,n,-t):w0(e,n,t)}function u1(e,n,t,r,i,o){if([e,n,t,r,i,o].some(Number.isNaN))return NaN;if(Tr(r))return NaN;let s=Math.abs(i)<1||Tr(n),u=Math.abs(o)<1||Tr(t);if(!s||!u)return NaN;let a=1e4,l=1e4,f=0,c=1,p=0;for(let m=0;m<a;m++){let g=c,b=g;for(let h=0;h<l&&(g*=(e+m+h)*(t+h)*o/((r+m+h)*(h+1)),!(g===0||(b+=g,Math.abs(g)<=Number.EPSILON*(1+Math.abs(b)))));h++);if(f+=b,Math.abs(b)<=Number.EPSILON*(1+Math.abs(f))){if(++p>=3)return f}else p=0;if(c*=(e+m)*(n+m)*i/((r+m)*(m+1)),c===0)return f}return f}function Ns(e){return e.isInteger()&&!e.isPositive()}function Ss(e,n,t,r,i,o){let s=new S(10).pow(-(S.precision+2)),u=S.ONE,a=S.ONE;for(let l=0;l<o;l++){(l&255)===0&&$(e._deadline);let f=new S(l);if(u=u.mul(n.add(f)).mul(t.add(f)).mul(i).div(r.add(f).mul(new S(l+1))),u.isZero()||(a=a.add(u),l>2&&u.abs().lt(s.mul(a.abs().add(S.ONE)))))return a}return a}function hp(e,n,t,r,i){if(n.isNaN()||t.isNaN()||r.isNaN()||i.isNaN())return S.NAN;let o=S.precision,s=10,u=Math.max(1e4,40*(o+s)),a=Ns(n)?-n.toNumber():1/0,l=Ns(t)?-t.toNumber():1/0,f=Math.min(a,l);if(Ns(r)&&(f===1/0||f>-r.toNumber()))return S.NAN;if(f!==1/0&&f<u)return an(s,()=>Ss(e,n,t,r,i,f+1)).toPrecision(o);if(i.isZero())return S.ONE;let c=S.ONE;if(i.eq(c)){let m=r.sub(n).sub(t);return m.isPositive()?an(s,()=>un(e,r).mul(un(e,m)).div(un(e,r.sub(n)).mul(un(e,r.sub(t))))).toPrecision(o):S.NAN}if(i.gt(c))return S.NAN;if(i.isNegative())return an(s,()=>{let m=c.sub(i);return n.neg().mul(m.ln()).exp().mul(hp(e,n,r.sub(t),r,i.div(i.sub(c))))}).toPrecision(o);if(i.lte(S.HALF))return an(s,()=>Ss(e,n,t,r,i,u)).toPrecision(o);let p=r.sub(n).sub(t);if(p.isInteger()){let m=i.toNumber();if(m<1){let g=Math.ceil((o+s+2)/-Math.log10(m))+100;if(g<=2e6)return an(s,()=>Ss(e,n,t,r,i,g)).toPrecision(o)}return S.NAN}return an(s,()=>{let m=c.sub(i),g=un(e,r).mul(un(e,p)).div(un(e,r.sub(n)).mul(un(e,r.sub(t)))).mul(Ss(e,n,t,c.sub(p),m,u)),b=un(e,r).mul(un(e,p.neg())).div(un(e,n).mul(un(e,t))).mul(p.mul(m.ln()).exp()).mul(Ss(e,r.sub(n),r.sub(t),c.add(p),m,u));return g.add(b)}).toPrecision(o)}function C0(e,n,t,r,i){let o=new S(10).pow(-(S.precision+2)),s=S.ONE,u=S.ONE;for(let a=0;a<i;a++){(a&255)===0&&$(e._deadline);let l=new S(a);if(s=s.mul(n.add(l)).mul(r).div(t.add(l).mul(new S(a+1))),s.isZero()||(u=u.add(s),a>2&&s.abs().lt(o.mul(u.abs().add(S.ONE)))))return u}return u}function yp(e,n,t,r){if(n.isNaN()||t.isNaN()||r.isNaN())return S.NAN;let i=S.precision,o=10,s=Math.max(2e4,40*(i+o)),u=Ns(n)?-n.toNumber():1/0;return Ns(t)&&(u===1/0||u>-t.toNumber())?S.NAN:u!==1/0&&u<s?an(o,()=>C0(e,n,t,r,u+1)).toPrecision(i):r.isNegative()?an(o,()=>r.exp().mul(yp(e,t.sub(n),t,r.neg()))).toPrecision(i):an(o,()=>C0(e,n,t,r,s)).toPrecision(i)}function qs(e){if(!e.isInteger||e.isNegative||!C(e))return;let n=wn(e);if(n!==null)return wt(n)}function kn(e){return d(e)?e.op1:void 0}function ja(e){return d(e)?e.op2:void 0}function ze(e){return d(e)?e.ops:void 0}function Kw(e){for(let n=0;n<e.length;n++){let t=e[n];for(let r=n+1;r<e.length;r++){let i=e[r];if(t.operator==="Not"&&kn(t).isSame(i)||i.operator==="Not"&&kn(i).isSame(t))return!0}}return!1}function eC(e){for(let n=0;n<e.length;n++){let t=e[n];for(let r=n+1;r<e.length;r++){let i=e[r];if(t.operator==="Not"&&kn(t).isSame(i)||i.operator==="Not"&&kn(i).isSame(t))return!0}}return!1}function Ua(e,{engine:n}){if(e.length===0)return n.True;let t=[];for(let i of e){if(i.operator==="Or"&&eC(ze(i))&&(i=n.True),N(i)==="False")return n.False;if(N(i)!=="True"){let o=!1;for(let s of t)if(s.isSame(i))o=!0;else if(i.operator==="Not"&&kn(i).isSame(s)||s.operator==="Not"&&kn(s).isSame(i))return n.False;o||t.push(i)}}if(t.length===0)return n.True;if(t.length===1)return t[0];let r=nC(t);return r.length===0?n.True:r.length===1?r[0]:n._fn("And",r)}function nC(e){let n=[];for(let t of e){let r=t.operator==="Or"?ze(t):void 0;if(r){let i=!1;for(let o of r){for(let s of e)if(s!==t&&o.isSame(s)){i=!0;break}if(i)break}i||n.push(t)}else n.push(t)}return n}function Ga(e,{engine:n}){if(e.length===0)return n.True;let t=[];for(let i of e){if(i.operator==="And"&&Kw(ze(i))&&(i=n.False),N(i)==="True")return n.True;if(N(i)!=="False"){let o=!1;for(let s of t)if(s.isSame(i))o=!0;else if(i.operator==="Not"&&kn(i).isSame(s)||s.operator==="Not"&&kn(s).isSame(i))return n.True;o||t.push(i)}}if(t.length===0)return n.False;if(t.length===1)return t[0];let r=tC(t);return r.length===0?n.False:r.length===1?r[0]:n._fn("Or",r)}function tC(e){let n=[];for(let t of e){let r=t.operator==="And"?ze(t):void 0;if(r){let i=!1;for(let o of r){for(let s of e)if(s!==t&&o.isSame(s)){i=!0;break}if(i)break}i||n.push(t)}else n.push(t)}return n}function Ha(e,{engine:n}){let t=N(e[0]);if(t==="True")return n.False;if(t==="False")return n.True}function Za(e,{engine:n}){let t=N(e[0]),r=N(e[1]);if(t==="True"&&r==="True"||t==="False"&&r==="False")return n.True;if(t==="True"&&r==="False"||t==="False"&&r==="True")return n.False}function Ya(e,{engine:n}){let t=N(e[0]),r=N(e[1]);if(t==="True"&&r==="True"||t==="False"&&r==="False"||t==="False"&&r==="True")return n.True;if(t==="True"&&r==="False")return n.False}function Qa(e,{engine:n}){if(e.length===0)return n.False;let t=0,r=[];for(let s of e)N(s)==="True"?t++:N(s)==="False"||r.push(s);let i=[];for(let s of r){let u=i.findIndex(a=>a.isSame(s));u>=0?i.splice(u,1):i.push(s)}let o=t%2===1;if(i.length===0)return o?n.True:n.False;if(i.length===1)return o?n._fn("Not",[i[0]]):i[0];if(i.length!==r.length)return n._fn("Xor",o?[n.True,...i]:i)}function Ja(e,{engine:n}){if(e.length===0)return n.False;for(let r of e)if(N(r)==="False")return n.True;let t=!0;for(let r of e)if(N(r)!=="True"){t=!1;break}if(t)return n.False}function Wa(e,{engine:n}){if(e.length===0)return n.True;for(let r of e)if(N(r)==="True")return n.False;let t=!0;for(let r of e)if(N(r)!=="False"){t=!1;break}if(t)return n.True}function Ye(e,n){let t=e.operator;if(!t||N(e)==="True"||N(e)==="False")return e;if(t==="Not"){let r=kn(e);if(!r)return e;let i=r.operator;if(i==="Not")return Ye(kn(r),n);if(i==="And"){let o=ze(r).map(s=>Ye(n._fn("Not",[s]),n));return n._fn("Or",o)}if(i==="Or"){let o=ze(r).map(s=>Ye(n._fn("Not",[s]),n));return n._fn("And",o)}if(N(r)==="True")return n.False;if(N(r)==="False")return n.True;if(i==="Implies"){let o=kn(r),s=ja(r);return Ye(n._fn("And",[o,n._fn("Not",[s])]),n)}if(i==="Equivalent"){let o=kn(r),s=ja(r);return Ye(n._fn("Or",[n._fn("And",[o,n._fn("Not",[s])]),n._fn("And",[n._fn("Not",[o]),s])]),n)}if(i==="Xor"){let o=ze(r);if(o.length===2){let s=o[0],u=o[1];return Ye(n._fn("Or",[n._fn("And",[s,u]),n._fn("And",[n._fn("Not",[s]),n._fn("Not",[u])])]),n)}return Ye(n._fn("Not",[Ye(r,n)]),n)}return i==="Nand"?Ye(n._fn("And",ze(r)),n):i==="Nor"?Ye(n._fn("Or",ze(r)),n):e}if(t==="Implies"){let r=kn(e),i=ja(e);return Ye(n._fn("Or",[n._fn("Not",[r]),i]),n)}if(t==="Equivalent"){let r=kn(e),i=ja(e);return Ye(n._fn("And",[n._fn("Or",[n._fn("Not",[r]),i]),n._fn("Or",[n._fn("Not",[i]),r])]),n)}if(t==="Xor"){let r=ze(e);if(r.length===2){let i=r[0],o=r[1];return Ye(n._fn("And",[n._fn("Or",[i,o]),n._fn("Or",[n._fn("Not",[i]),n._fn("Not",[o])])]),n)}if(r.length>2){let i=n._fn("Xor",[r[0],r[1]]),o=r.slice(2);return Ye(n._fn("Xor",[i,...o]),n)}return r.length===1?Ye(r[0],n):n.False}if(t==="Nand"){let r=ze(e);return Ye(n._fn("Not",[n._fn("And",r)]),n)}if(t==="Nor"){let r=ze(e);return Ye(n._fn("Not",[n._fn("Or",r)]),n)}if(t==="And"||t==="Or"){let r=ze(e).map(i=>Ye(i,n));return n._fn(t,r)}return e}function vp(e,n){let t=e.operator;if(t!=="Or")return t==="And"?n._fn("And",ze(e).map(l=>vp(l,n))):e;let r=[];for(let l of ze(e))l.operator==="Or"?r.push(...ze(l)):r.push(l);let i=r.findIndex(l=>l.operator==="And");if(i===-1)return e;let o=r[i],s=[...r.slice(0,i),...r.slice(i+1)],u=s.length===1?s[0]:n._fn("Or",s),a=n._fn("And",ze(o).map(l=>n._fn("Or",[l,u])));return vp(a,n)}function a1(e,n){let t=Ye(e,n);return vp(t,n).simplify()}function xp(e,n){let t=e.operator;if(t!=="And")return t==="Or"?n._fn("Or",ze(e).map(l=>xp(l,n))):e;let r=[];for(let l of ze(e))l.operator==="And"?r.push(...ze(l)):r.push(l);let i=r.findIndex(l=>l.operator==="Or");if(i===-1)return e;let o=r[i],s=[...r.slice(0,i),...r.slice(i+1)],u=s.length===1?s[0]:n._fn("And",s),a=n._fn("Or",ze(o).map(l=>n._fn("And",[l,u])));return xp(a,n)}function l1(e,n){let t=Ye(e,n);return xp(t,n).simplify()}function Or(e){let n=new Set;function t(r){if(!(N(r)==="True"||N(r)==="False")){if(w(r)&&r.operator==="Symbol"){n.add(r.symbol);return}if(d(r))for(let i of r.ops)t(i)}}return t(e),Array.from(n).sort()}function Lr(e,n,t){let r={};for(let[o,s]of Object.entries(n))r[o]=s?t.True:t.False;return e.subs(r).canonical.evaluate()}function*Dr(e){let n=e.length,t=1<<n;for(let r=0;r<t;r++){let i={};for(let o=0;o<n;o++)i[e[o]]=(r>>n-1-o&1)===1;yield i}}function rC(e,n,t,r){return e.filter(i=>{let s=t.subs({[n]:i}).evaluate();return N(s)==="True"})}function Lt(e,n){if(e.operator!=="Element")return{status:"error",reason:"expected-element-expression"};if(!d(e))return{status:"error",reason:"expected-element-expression"};let t=w(e.op1)?e.op1.symbol:void 0;if(!t)return{status:"error",reason:"expected-index-variable"};let r=e.op2;if(!r)return{status:"error",reason:"expected-domain"};let i=e.op3,o=e.nops>=3&&i&&N(i)!=="Nothing"?i:null,s=a=>{if(o){let l=rC(a,t,o,n);return{status:"success",variable:t,values:l}}return{status:"success",variable:t,values:a}};if(r.operator==="Set"||r.operator==="List"){let a=d(r)?r.ops:void 0;if(a&&a.length<=1e3){if(r.operator==="List"&&a.length===2){let l=z(a[0]),f=z(a[1]);if(l!==null&&f!==null){let c=f-l+1;if(c>0&&c<=1e3){let p=[];for(let m=l;m<=f;m++)p.push(n.number(m));return s(p)}if(c>1e3)return{status:"non-enumerable",variable:t,domain:r,reason:"domain-too-large"}}}return s([...a])}return a&&a.length>1e3?{status:"non-enumerable",variable:t,domain:r,reason:"domain-too-large"}:{status:"error",reason:"empty-domain"}}if(d(r,"Range")){let a=z(r.op1),l=z(r.op2),f=r.ops.length>=3?z(r.op3):1;if(a!==null&&l!==null&&f!==null&&f!==0){let c=Math.floor((l-a)/f)+1;if(c>0&&c<=1e3){let p=[];for(let m=a;f>0?m<=l:m>=l;m+=f)p.push(n.number(m));return s(p)}if(c>1e3)return{status:"non-enumerable",variable:t,domain:r,reason:"domain-too-large"}}return{status:"non-enumerable",variable:t,domain:r,reason:"non-integer-bounds"}}if(d(r,"Interval")){let a=r.op1,l=r.op2,f=!1,c=!1;d(a,"Open")?(f=!0,a=a.op1):d(a,"Closed")&&(a=a.op1),d(l,"Open")?(c=!0,l=l.op1):d(l,"Closed")&&(l=l.op1);let p=z(a),m=z(l);if(p!==null&&m!==null){f&&(p+=1),c&&(m-=1);let g=m-p+1;if(g>0&&g<=1e3){let b=[];for(let h=p;h<=m;h++)b.push(n.number(h));return s(b)}if(g>1e3)return{status:"non-enumerable",variable:t,domain:r,reason:"domain-too-large"}}return{status:"non-enumerable",variable:t,domain:r,reason:"non-integer-bounds"}}let u=N(r);if(u){if(["Integers","NonNegativeIntegers","PositiveIntegers","NegativeIntegers","Rationals","Reals","PositiveReals","NonNegativeReals","NegativeReals","NonPositiveReals","ExtendedReals","Complexes","ImaginaryNumbers","Numbers","ExtendedComplexes","AlgebraicNumbers","TranscendentalNumbers"].includes(u))return{status:"non-enumerable",variable:t,domain:r,reason:"infinite-domain"};let l=r.value;if(l&&l.operator==="Set"&&d(l)){let f=l.ops;if(f&&f.length<=1e3)return s([...f]);if(f&&f.length>1e3)return{status:"non-enumerable",variable:t,domain:r,reason:"domain-too-large"}}return{status:"non-enumerable",variable:t,domain:r,reason:"unknown-domain"}}return{status:"non-enumerable",variable:t,domain:r,reason:"unrecognized-domain-type"}}function Ka(e,n){if(N(e)===n)return!0;if(d(e)){for(let t of e.ops)if(Ka(t,n))return!0}return!1}function el(e,n){let t=e.canonical,r=t.operator;if(r!=="ForAll"&&r!=="Exists")return[];if(!d(t))return[];let i=t.op1,o=t.op2;if(!i||!o)return[];let s=Lt(i,n);if(s.status!=="success")return[];let u=el(o,n);return[{variable:s.variable,values:s.values},...u]}function nl(e){let n=e.canonical,t=n.operator;if((t==="ForAll"||t==="Exists")&&d(n)){let r=n.op2;if(r)return nl(r)}return n}function c1(e,n,t){let r=e.map(()=>0),i=e.map(o=>o.values.length);if(i.some(o=>o===0))return t.True;for(;;){let o={};for(let l=0;l<e.length;l++)o[e[l].variable]=e[l].values[r[l]];let u=n.subs(o).canonical.evaluate();if(N(u)==="False")return t.False;if(N(u)!=="True")return;let a=e.length-1;for(;a>=0&&(r[a]++,!(r[a]<i[a]));)r[a]=0,a--;if(a<0)break}return t.True}function p1(e,n,t){let r=e.map(()=>0),i=e.map(o=>o.values.length);if(i.some(o=>o===0))return t.False;for(;;){let o={};for(let l=0;l<e.length;l++)o[e[l].variable]=e[l].values[r[l]];let u=n.subs(o).canonical.evaluate();if(N(u)==="True")return t.True;let a=e.length-1;for(;a>=0&&(r[a]++,!(r[a]<i[a]));)r[a]=0,a--;if(a<0)break}return t.False}function m1(e,n){let t=Or(e);if(t.length===0){let r=e.evaluate();return N(r)==="True"?n.True:n.False}if(t.length>20)return n._fn("IsSatisfiable",[e]);for(let r of Dr(t)){let i=Lr(e,r,n);if(N(i)==="True")return n.True}return n.False}function d1(e,n){let t=Or(e);if(t.length===0){let r=e.evaluate();return N(r)==="True"?n.True:n.False}if(t.length>20)return n._fn("IsTautology",[e]);for(let r of Dr(t)){let i=Lr(e,r,n);if(N(i)!=="True")return n.False}return n.True}function g1(e,n){let t=Or(e);if(t.length>10)return n._fn("TruthTable",[e]);let r=[],i=n._fn("List",[...t.map(o=>n.string(o)),n.string("Result")]);r.push(i);for(let o of Dr(t)){let s=Lr(e,o,n),u=n._fn("List",[...t.map(a=>o[a]?n.True:n.False),s]);r.push(u)}return n._fn("List",r)}function iC(e,n){let t=[];for(let r=n-1;r>=0;r--)t.push(e>>r&1);return t}function oC(e){return e.filter(n=>n===1).length}function sC(e,n){let t=-1;for(let r=0;r<e.length;r++)if(e[r]===-1||n[r]===-1){if(e[r]!==n[r])return-1}else if(e[r]!==n[r]){if(t!==-1)return-1;t=r}return t}function uC(e,n){let t=[...e];return t[n]=-1,t}function f1(e){return e.map(n=>n===-1?"-":n.toString()).join("")}function b1(e,n){let t=Or(e);if(t.length>12)return null;if(t.length===0){let s=e.evaluate();return N(s)==="True"?[n.True]:N(s)==="False"?[]:null}let r=[],i=0;for(let s of Dr(t)){let u=Lr(e,s,n);N(u)==="True"&&r.push(i),i++}return r.length===0?[]:r.length===1<<t.length?[n.True]:tl(r,t.length).map(s=>Ep(s,t,n))}function h1(e,n){let t=Or(e);if(t.length>12)return null;if(t.length===0){let s=e.evaluate();return N(s)==="True"?[]:N(s)==="False"?[n.False]:null}let r=[],i=0;for(let s of Dr(t)){let u=Lr(e,s,n);N(u)==="False"&&r.push(i),i++}return r.length===0?[]:r.length===1<<t.length?[n.False]:tl(r,t.length).map(s=>_p(s,t,n))}function tl(e,n){let t=new Map;for(let i of e){let o=iC(i,n);t.set(f1(o),{term:o,combined:!1})}let r=[];for(;t.size>0;){let i=new Map,o=new Map;for(let[u,{term:a}]of t){let l=oC(a);o.has(l)||o.set(l,[]),o.get(l).push({key:u,term:a})}let s=Array.from(o.keys()).sort((u,a)=>u-a);for(let u=0;u<s.length-1;u++){let a=o.get(s[u]),l=o.get(s[u+1]);for(let{key:f,term:c}of a)for(let{key:p,term:m}of l){let g=sC(c,m);if(g!==-1){let b=t.get(f),h=t.get(p);b.combined=!0,h.combined=!0;let y=uC(c,g),x=f1(y);i.has(x)||i.set(x,{term:y,combined:!1})}}}for(let{term:u,combined:a}of t.values())a||r.push(u);t=i}return r}function Ep(e,n,t){let r=[];for(let i=0;i<e.length;i++)e[i]===1?r.push(t.symbol(n[i])):e[i]===0&&r.push(t._fn("Not",[t.symbol(n[i])]));return r.length===0?t.True:r.length===1?r[0]:t._fn("And",r)}function _p(e,n,t){let r=[];for(let i=0;i<e.length;i++)e[i]===0?r.push(t.symbol(n[i])):e[i]===1&&r.push(t._fn("Not",[t.symbol(n[i])]));return r.length===0?t.False:r.length===1?r[0]:t._fn("Or",r)}function y1(e,n){let t=Or(e);if(t.length>12)return null;if(t.length===0){let u=e.evaluate();return N(u)==="True"?n.True:n.False}let r=[],i=0;for(let u of Dr(t)){let a=Lr(e,u,n);N(a)==="True"&&r.push(i),i++}if(r.length===0)return n.False;if(r.length===1<<t.length)return n.True;let o=tl(r,t.length),s=x1(o,r,t.length);return s.length===0?n.False:s.length===1?Ep(s[0],t,n):n._fn("Or",s.map(u=>Ep(u,t,n)))}function v1(e,n){let t=Or(e);if(t.length>12)return null;if(t.length===0){let u=e.evaluate();return N(u)==="True"?n.True:n.False}let r=[],i=0;for(let u of Dr(t)){let a=Lr(e,u,n);N(a)==="False"&&r.push(i),i++}if(r.length===0)return n.True;if(r.length===1<<t.length)return n.False;let o=tl(r,t.length),s=x1(o,r,t.length);return s.length===0?n.True:s.length===1?_p(s[0],t,n):n._fn("And",s.map(u=>_p(u,t,n)))}function Xa(e,n){let t=[],r=[];for(let s=0;s<e.length;s++)e[s]===-1&&r.push(s);let i=r.length,o=1<<i;for(let s=0;s<o;s++){let u=0;for(let a=0;a<n;a++){let l=r.indexOf(a),f;l!==-1?f=s>>i-1-l&1:f=e[a],u=u<<1|f}t.push(u)}return t}function x1(e,n,t){let r=new Set(n),i=[],o=new Map;for(let u of n)o.set(u,[]);for(let u=0;u<e.length;u++){let a=Xa(e[u],t);for(let l of a)o.has(l)&&o.get(l).push(u)}let s=new Set;for(let[u,a]of o)if(a.length===1&&r.has(u)){let l=a[0];if(!s.has(l)){s.add(l),i.push(e[l]);let f=Xa(e[l],t);for(let c of f)r.delete(c)}}for(;r.size>0;){let u=-1,a=0;for(let f=0;f<e.length;f++){if(s.has(f))continue;let p=Xa(e[f],t).filter(m=>r.has(m)).length;p>a&&(a=p,u=f)}if(u===-1)break;s.add(u),i.push(e[u]);let l=Xa(e[u],t);for(let f of l)r.delete(f)}return i}function E1(e){return e?._kind==="number"}function aC(e){return e?._kind==="symbol"}function Bs(e,n){return(e?._kind==="function"||e?._kind==="tensor")&&(n===void 0||e.operator===n)}function Dt(e){if(Bs(e,"Interval")){let n=e.op1,t=e.op2,r=!1,i=!1;Bs(n,"Open")?(r=!0,n=n.op1):Bs(n,"Closed")&&(n=n.op1),Bs(t,"Open")?(i=!0,t=t.op1):Bs(t,"Closed")&&(t=t.op1);let o=n.N(),s=t.N();return!E1(o)||!E1(s)?void 0:{start:o.re,openStart:r,end:s.re,openEnd:i}}if(aC(e)){if(e.symbol==="EmptySet")return{start:0,openStart:!0,end:0,openEnd:!0};if(e.symbol==="RealNumbers")return{start:-1/0,openStart:!1,end:1/0,openEnd:!1};if(e.symbol==="NegativeNumbers")return{start:-1/0,openStart:!1,end:0,openEnd:!0};if(e.symbol==="NonPositiveNumbers")return{start:-1/0,openStart:!1,end:0,openEnd:!1};if(e.symbol==="PositiveNumbers")return{start:0,openStart:!0,end:1/0,openEnd:!1};if(e.symbol==="NonNegativeNumbers")return{start:0,openStart:!1,end:1/0,openEnd:!1}}}function _1(e,n){return!((e.openStart?n<=e.start:n<e.start)||(e.openEnd?n>=e.end:n>e.end))}function po(e){let n=Math.sin(e*12.9898)*43758.5453;return n-Math.floor(n)}function rl(e){return e+.6180339887498949}function it(e,n,t){return n.every(r=>r.isCanonical)?n:n.map(r=>e.expr(r,{scope:t}))}function Qe(e){if(typeof e=="string")return Vb(e)?e:"error";switch(e.kind){case"union":return Sp(e);case"intersection":return gC(e);case"negation":return fC(e);case"collection":case"indexed_collection":return bC(e.kind,e);case"list":return hC(e);case"set":return yC(e);case"tuple":return vC(e);case"record":return xC(e);case"dictionary":return EC(e);case"signature":return _C(e);case"value":return e;case"reference":return e;case"numeric":return e.lower!==void 0&&e.upper!==void 0&&e.lower>e.upper?"never":e;case"symbol":return e;case"expression":return e;default:throw new Error(`Unknown type kind: ${e}`)}}function Mn(e){return typeof e!="object"||Object.isFrozen(e)||Object.prototype.hasOwnProperty.call(e,"toString")||Object.defineProperty(e,"toString",{value:()=>Xe(e)}),e}function lC(e){let n=[],t=new Set;for(let r of e){let i=Qe(r),o=typeof i=="string"?i:Xe(i);t.has(o)||(t.add(o),n.push(i))}return n}function fC(e){let n=Qe(e.type);return n==="never"?"any":n==="any"?"never":Mn({kind:"negation",type:n})}function cC(e){let n=[],t=new Set,r=i=>{if(typeof i=="object"&&i.kind==="union"){for(let s of i.types)r(s);return}let o=typeof i=="string"?i:Xe(i);t.has(o)||(t.add(o),n.push(i))};for(let i of e)r(Qe(i));return n}function pC(e){return e.map(n=>[typeof n=="string"?n:Xe(n),n]).sort((n,t)=>n[0]<t[0]?-1:n[0]>t[0]?1:0).map(([,n])=>n)}function Sp(e){let n=cC(e.types);if(n.length===0)return"never";if(n.some(r=>r==="error"))return"error";if(n.length===1)return Mn(n[0]);let t=[];for(let r of n)if(!t.some(i=>pe(r,i))){for(let i=t.length-1;i>=0;i--)pe(t[i],r)&&t.splice(i,1);t.push(r)}if(t.indexOf("non_finite_number")!==-1)for(let r=0;r<t.length;r++){let i=t[r];if(typeof i!="string")continue;let o=zb[i];if(o){t[r]=o,t.splice(t.indexOf("non_finite_number"),1);break}}return t.length===1?Mn(t[0]):Mn({kind:"union",types:pC(t)})}function w1(e,n){if(pe(e,n))return e;if(pe(n,e))return n;if(typeof e=="object"&&e.kind==="union")return N1(e.types,n);if(typeof n=="object"&&n.kind==="union")return N1(n.types,e);if(typeof e=="string"&&typeof n=="string"){let t=dc(e,n);return t.length===0?"nothing":t.length===1?t[0]:{kind:"union",types:t}}if(typeof e=="object"&&e.kind==="numeric"||typeof n=="object"&&n.kind==="numeric"){let t=S1(e),r=S1(n);if(t&&r)return mC(t,r)}return"nothing"}function S1(e){return typeof e=="object"?e.kind==="numeric"?e:null:Bb.has(e)?{kind:"numeric",type:e}:null}function mC(e,n){let t=dc(e.type,n.type);if(t.length===0)return"nothing";let r=Math.max(e.lower??-1/0,n.lower??-1/0),i=Math.min(e.upper??1/0,n.upper??1/0);if(r>i)return"nothing";let o=r!==-1/0||i!==1/0,s=[];for(let u of t)u==="non_finite_number"&&o||s.push(dC(u,r,i));return s.length===0?"nothing":s.length===1?s[0]:Sp({kind:"union",types:s})}function dC(e,n,t){return n===-1/0&&t===1/0?e:{kind:"numeric",type:e,lower:n,upper:t}}function N1(e,n){let t=e.map(r=>w1(r,n)).filter(r=>r!=="nothing");return t.length===0?"nothing":t.length===1?t[0]:Sp({kind:"union",types:t})}function gC(e){let n=lC(e.types);if(n.length===0)return"nothing";if(n.some(r=>r==="error"))return"error";let t=n[0];for(let r=1;r<n.length;r++)if(t=w1(t,n[r]),t==="nothing")return"nothing";return Mn(t)}function bC(e,n){let t=Qe(n.elements);return t==="error"?"error":t==="nothing"?Mn({kind:e,elements:"nothing"}):t==="any"?e:Mn({...n,elements:t})}function hC(e){let n=Qe(e.elements);if(n==="error")return"error";if(n==="nothing")return Mn({kind:"list",elements:"nothing"});if(n==="any")return"list";let t=e.dimensions;return t&&(t=t.filter(r=>r>=1||r===-1),t.length===0)?"nothing":Mn({...e,dimensions:t,elements:n})}function yC(e){let n=Qe(e.elements);return n==="error"?"error":n==="nothing"?Mn({kind:"set",elements:"nothing"}):n==="any"?"set":Mn({...e,elements:n})}function vC(e){let n=e.elements.map(t=>({...t,type:Qe(t.type)}));return n.length===0?"nothing":n.some(t=>t.type==="error")?"error":(n=n.filter(t=>t.type!=="nothing"),Mn({...e,elements:n}))}function xC(e){let n={};for(let[t,r]of Object.entries(e.elements))n[t]=Qe(r);return Object.values(n).some(t=>t==="error")?"error":(n=Object.fromEntries(Object.entries(n).filter(([t,r])=>r!=="nothing")),Object.keys(n).length===0?"record":Mn({...e,elements:n}))}function EC(e){let n=Qe(e.values);return n==="error"||n==="nothing"?"error":n==="any"||n==="unknown"?"any":Mn({kind:"dictionary",values:n})}function _C(e){let n=e.args?.map(o=>({...o,type:Qe(o.type)})),t=e.optArgs?.map(o=>({...o,type:Qe(o.type)})),r=e.variadicArg?{...e.variadicArg,type:Qe(e.variadicArg.type)}:void 0,i=Qe(e.result);return n?.some(o=>o.type==="error")||t?.some(o=>o.type==="error")||r?.type==="error"||i==="error"?"error":(t=t?.filter(o=>o.type!=="nothing"),n?.length===0&&(t=void 0),t?.length===0&&(t=void 0),r?.type==="nothing"&&(r=void 0),Mn({...e,args:n,optArgs:t,variadicArg:r,variadicMin:r?e.variadicMin:void 0,result:i}))}function SC(e,n){return Qe({kind:"intersection",types:[e,n]})}function dn(e,n){let t=e.type;if(t.matches(n))return!0;if(SC(t.type,n)==="nothing"||C(e))return!1}function $r(e,n,t){let r=dn(e,n);if(r===!1||t===!1)return!1;if(t===!0)return r}function NC(e){let n=!1;for(let t of e){if(t===!0)return!0;t===void 0&&(n=!0)}return n?void 0:!1}function Si(e){let n=!1;for(let t of e){if(t===!1)return!1;t===void 0&&(n=!0)}return n?void 0:!0}function wp(e){return e===void 0?void 0:!e}function yt(e,n){return d(n,"List")&&n.nops===2?e.function("Interval",[n.op1.canonical,n.op2.canonical]):d(n,"Tuple")&&n.nops===2?e.function("Interval",[e.function("Open",[n.op1.canonical]),e.function("Open",[n.op2.canonical])]):n.canonical}var I1={EmptySet:{type:"set",isConstant:!0,wikidata:"Q226183",description:"The empty set, a set containing no elements.",eq:e=>e.type.matches("set")&&e.isEmptyCollection,collection:{iterator:()=>({next:()=>({value:void 0,done:!0})}),count:()=>0,isEmpty:()=>!0,isFinite:()=>!0,contains:()=>!1,subsetOf:(e,n,t)=>!t&&n.isEmptyCollection===!0,eltsgn:()=>{},elttype:()=>"never"}},Numbers:{type:"set<number>",isConstant:!0,description:"The set of all numbers.",collection:{iterator:Np,count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,contains:(e,n)=>dn(n,"number"),subsetOf:(e,n,t)=>n.operator==="Range"||n.operator==="Linspace"?!0:n.type.matches(Z.setNumber)&&(!t||N(n)!=="Numbers"),eltsgn:()=>"unsigned",elttype:()=>"number"}},ComplexNumbers:{type:"set<finite_complex>",isConstant:!0,description:"The set of all finite complex numbers.",collection:{iterator:Np,count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,contains:(e,n)=>dn(n,"finite_complex"),subsetOf:(e,n,t)=>n.operator==="Range"||n.operator==="Linspace"?!0:n.type.matches(Z.setComplex)&&(!t||N(n)!=="ComplexNumbers"),eltsgn:()=>"unsigned",elttype:()=>"finite_complex"}},ExtendedComplexNumbers:{type:"set<complex>",isConstant:!0,description:"The set of all complex numbers, including infinities.",collection:{iterator:Np,count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,contains:(e,n)=>dn(n,"complex"),subsetOf:(e,n,t)=>n.operator==="Range"||n.operator==="Linspace"?!0:n.type.matches(Z.setComplex)&&(!t||N(n)!=="ExtendedComplexNumbers"),eltsgn:()=>"unsigned",elttype:()=>"complex"}},ImaginaryNumbers:{type:"set<imaginary>",isConstant:!0,description:"The set of all imaginary numbers.",collection:{iterator:RC,count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,contains:(e,n)=>dn(n,"imaginary"),subsetOf:(e,n,t)=>n.type.matches(Z.setImaginary)&&(!t||N(n)!=="ImaginaryNumbers"),eltsgn:()=>"unsigned",elttype:()=>"imaginary"}},RealNumbers:{type:"set<finite_real>",isConstant:!0,description:"The set of all finite real numbers.",collection:{iterator:e=>Fr(e),contains:(e,n)=>dn(n,"finite_real"),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,subsetOf:(e,n,t)=>n.type.matches(Z.setReal)&&(!t||N(n)!=="RealNumbers"),eltsgn:()=>{},elttype:()=>"finite_real"}},ExtendedRealNumbers:{type:"set<real>",isConstant:!0,description:"The set of all real numbers, including infinities.",collection:{iterator:e=>Fr(e),contains:(e,n)=>dn(n,"real"),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,subsetOf:(e,n,t)=>n.type.matches(Z.setReal)&&(!t||N(n)!=="ExtendedRealNumbers"),eltsgn:()=>{},elttype:()=>"real"}},Integers:{type:"set<finite_integer>",isConstant:!0,description:"The set of all finite integers.",collection:{iterator:C1,contains:(e,n)=>dn(n,"finite_integer"),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,subsetOf:(e,n,t)=>n.operator==="Range"?!0:n.type.matches(Z.setFiniteInteger)&&(!t||N(n)!=="Integers"),eltsgn:()=>{},elttype:()=>"finite_integer"}},ExtendedIntegers:{type:"set<integer>",isConstant:!0,description:"The set of all integers, including infinities.",collection:{iterator:C1,contains:(e,n)=>dn(n,"integer"),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,subsetOf:(e,n,t)=>n.operator==="Range"?!0:n.type.matches(Z.setInteger)&&(!t||N(n)!=="ExtendedIntegers"),eltsgn:()=>{},elttype:()=>"integer"}},RationalNumbers:{type:"set<finite_rational>",isConstant:!0,description:"The set of all finite rational numbers.",collection:{iterator:e=>Fr(e),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,contains:(e,n)=>dn(n,"finite_rational"),subsetOf:(e,n,t)=>n.type.matches(Z.setRational)&&(!t||N(n)!=="RationalNumbers"),eltsgn:()=>{},elttype:()=>"finite_rational"}},ExtendedRationalNumbers:{type:"set<rational>",isConstant:!0,description:"The set of all rational numbers, including infinities.",collection:{iterator:e=>Fr(e),contains:(e,n)=>dn(n,"rational"),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,subsetOf:(e,n,t)=>n.type.matches(Z.setRational)&&(!t||N(n)!=="ExtendedRationalNumbers"),eltsgn:()=>{},elttype:()=>"rational"}},NegativeNumbers:{type:"set<real>",isConstant:!0,description:"The set of all negative real numbers.",collection:{iterator:e=>Fr(e,{sign:"-",includeZero:!1}),count:()=>1/0,contains:(e,n)=>$r(n,"real",n.isNegative),subsetOf:(e,n,t)=>{if((n.operator==="Range"||n.operator==="Linspace")&&d(n)){let r=n.ops[0].re,i=n.ops[1].re;return r<0&&i<0}return n.type.matches(Z.setReal)&&n.baseDefinition?.collection?.eltsgn?.(n)==="negative"&&(!t||N(n)!=="NegativeNumbers")},eltsgn:()=>"negative",elttype:()=>"real"}},NonPositiveNumbers:{type:"set<real>",isConstant:!0,description:"The set of all non-positive real numbers.",collection:{iterator:e=>Fr(e,{sign:"-",includeZero:!0}),contains:(e,n)=>$r(n,"real",n.isNonPositive),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,subsetOf:(e,n,t)=>{if((n.operator==="Range"||n.operator==="Linspace")&&d(n)){let r=n.ops[0].re,i=n.ops[1].re;return r>=0&&i>=0}return n.type.matches(Z.setReal)&&n.baseDefinition?.collection?.eltsgn?.(n)==="non-positive"&&(!t||N(n)!=="NonPositiveNumbers")},eltsgn:()=>"non-positive",elttype:()=>"real"}},NonNegativeNumbers:{type:"set<real>",isConstant:!0,description:"The set of all non-negative real numbers.",collection:{iterator:e=>Fr(e,{sign:"+",includeZero:!0}),contains:(e,n)=>$r(n,"real",n.isNonNegative),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,subsetOf:(e,n,t)=>{if((n.operator==="Range"||n.operator==="Linspace")&&d(n)){let r=n.ops[0].re,i=n.ops[1].re;return r<=0&&i<=0}return n.type.matches(Z.setReal)&&n.baseDefinition?.collection?.eltsgn?.(n)==="non-negative"&&(!t||N(n)!=="NonNegativeNumbers")},eltsgn:()=>"non-negative",elttype:()=>"real"}},PositiveNumbers:{type:"set<real>",isConstant:!0,description:"The set of all positive real numbers.",collection:{iterator:e=>Fr(e,{sign:"+",includeZero:!1}),contains:(e,n)=>$r(n,"real",n.isPositive),count:()=>1/0,subsetOf:(e,n,t)=>{if((n.operator==="Range"||n.operator==="Linspace")&&d(n)){let r=n.ops[0].re,i=n.ops[1].re;return r>0&&i>0}return n.type.matches(Z.setReal)&&n.baseDefinition?.collection?.eltsgn?.(n)==="positive"&&(!t||N(n)!=="PositiveNumbers")},eltsgn:()=>"positive",elttype:()=>"real"}},NegativeIntegers:{type:"set<integer>",isConstant:!0,description:"The set of all negative integers.",collection:{iterator:e=>ol(e.engine,-1,-1),contains:(e,n)=>$r(n,"integer",n.isNegative),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,subsetOf:(e,n,t)=>{if(d(n,"Range")){let r=n.ops[0].re,i=n.ops[1].re;return r<0&&i<0}return n.type.matches(Z.setInteger)&&n.baseDefinition?.collection?.eltsgn?.(n)==="negative"&&(!t||N(n)!=="NegativeIntegers")},eltsgn:()=>"negative",elttype:()=>"integer"}},NonPositiveIntegers:{type:"set<integer>",isConstant:!0,description:"The set of all non-positive integers.",collection:{iterator:e=>ol(e.engine,0,-1),contains:(e,n)=>$r(n,"integer",n.isNonPositive),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,subsetOf:(e,n,t)=>{if(d(n,"Range")){let r=n.ops[0].re,i=n.ops[1].re;return r<=0&&i<=0}return n.type.matches(Z.setInteger)&&n.baseDefinition?.collection?.eltsgn?.(n)==="non-positive"&&(!t||N(n)!=="NonPositiveIntegers")},eltsgn:()=>"non-positive",elttype:()=>"integer"}},NonNegativeIntegers:{type:"set<integer>",isConstant:!0,description:"The set of all non-negative integers.",collection:{iterator:e=>ol(e.engine,0,1),contains:(e,n)=>$r(n,"integer",n.isNonNegative),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,subsetOf:(e,n,t)=>{if(d(n,"Range")){let r=n.ops[0].re,i=n.ops[1].re;return r>0&&i>0}return n.type.matches(Z.setInteger)&&n.baseDefinition?.collection?.eltsgn?.(n)==="non-negative"&&(!t||N(n)!=="NonNegativeIntegers")},eltsgn:()=>"non-negative",elttype:()=>"integer"}},PositiveIntegers:{type:"set<integer>",isConstant:!0,description:"The set of all positive integers.",collection:{iterator:e=>ol(e.engine,1,1),contains:(e,n)=>$r(n,"integer",n.isPositive),count:()=>1/0,isEmpty:()=>!1,isFinite:()=>!1,subsetOf:(e,n,t)=>{if(d(n,"Range")){let r=n.ops[0].re,i=n.ops[1].re;return r>0&&i>0}return n.type.matches(Z.setInteger)&&n.baseDefinition?.collection?.eltsgn?.(n)==="positive"&&(!t||N(n)!=="PositiveIntegers")},eltsgn:()=>"positive",elttype:()=>"integer"}},Element:{complexity:11200,signature:"(value, collection, boolean?) -> boolean",description:`Test whether a value is an element of a collection. Optional third argument is a boolean expression (condition) for filtered iteration in Sum/Product.
|
|
5
5
|
|
|
@@ -1810,4 +1810,4 @@ vec2 _iv_mod(vec2 a, vec2 b) {
|
|
|
1810
1810
|
}
|
|
1811
1811
|
`;function $S(e={}){let n=e.trigAbsPad??0;return C6.replace("__IV_TRIG_ABS__",Tn(n))}var Zz=$S(),DS={Add:(e,n)=>{if(e.length===0)return"vec2(0.0, 0.0)";let t=n(e[0]);for(let r=1;r<e.length;r++)t=`_iv_add(${t}, ${n(e[r])})`;return t},Subtract:([e,n],t)=>{if(e===null||n===null)throw new Error("Subtract: missing argument");return`_iv_sub(${t(e)}, ${t(n)})`},Multiply:(e,n)=>{if(e.length===0)return"vec2(1.0, 1.0)";let t=n(e[0]);for(let r=1;r<e.length;r++)t=`_iv_mul(${t}, ${n(e[r])})`;return t},Divide:([e,n],t)=>{if(e===null||n===null)throw new Error("Divide: missing argument");return`_iv_div(${t(e)}, ${t(n)})`},Negate:([e],n)=>{if(e===null)throw new Error("Negate: no argument");return`_iv_negate(${n(e)})`},Square:([e],n)=>{if(e===null)throw new Error("Square: no argument");return`_iv_square(${n(e)})`},Sqrt:([e],n)=>{if(e===null)throw new Error("Sqrt: no argument");return`_iv_sqrt(${n(e)})`},Abs:([e],n)=>{if(e===null)throw new Error("Abs: no argument");return`_iv_abs(${n(e)})`},Exp:([e],n)=>{if(e===null)throw new Error("Exp: no argument");return`_iv_exp(${n(e)})`},Ln:([e],n)=>{if(e===null)throw new Error("Ln: no argument");return`_iv_ln(${n(e)})`},Log:(e,n)=>e.length===1?`_iv_log10(${n(e[0])})`:`_iv_div(_iv_ln(${n(e[0])}), _iv_ln(${n(e[1])}))`,Lb:([e],n)=>{if(e===null)throw new Error("Lb: no argument");return`_iv_log2(${n(e)})`},Sin:([e],n)=>{if(e===null)throw new Error("Sin: no argument");return`_iv_sin(${n(e)})`},Cos:([e],n)=>{if(e===null)throw new Error("Cos: no argument");return`_iv_cos(${n(e)})`},Tan:([e],n)=>{if(e===null)throw new Error("Tan: no argument");return`_iv_tan(${n(e)})`},Arcsin:([e],n)=>{if(e===null)throw new Error("Arcsin: no argument");return`_iv_asin(${n(e)})`},Arccos:([e],n)=>{if(e===null)throw new Error("Arccos: no argument");return`_iv_acos(${n(e)})`},Arctan:([e],n)=>{if(e===null)throw new Error("Arctan: no argument");return`_iv_atan(${n(e)})`},Floor:([e],n)=>{if(e===null)throw new Error("Floor: no argument");return`_iv_floor(${n(e)})`},Ceil:([e],n)=>{if(e===null)throw new Error("Ceil: no argument");return`_iv_ceil(${n(e)})`},Round:([e],n)=>{if(e===null)throw new Error("Round: no argument");return`_iv_round(${n(e)})`},Truncate:([e],n)=>{if(e===null)throw new Error("Truncate: no argument");return`_iv_trunc(${n(e)})`},Fract:([e],n)=>{if(e===null)throw new Error("Fract: no argument");return`_iv_fract(${n(e)})`},Sign:([e],n)=>{if(e===null)throw new Error("Sign: no argument");return`_iv_sign(${n(e)})`},Heaviside:([e],n)=>{if(e===null)throw new Error("Heaviside: no argument");return`_iv_heaviside(${n(e)})`},Mod:([e,n],t)=>{if(e===null||n===null)throw new Error("Mod: missing argument");return`_iv_mod(${t(e)}, ${t(n)})`},Min:(e,n)=>{if(e.length===0)throw new Error("Min: no argument");let t=n(e[0]);for(let r=1;r<e.length;r++)t=`_iv_min(${t}, ${n(e[r])})`;return t},Max:(e,n)=>{if(e.length===0)throw new Error("Max: no argument");let t=n(e[0]);for(let r=1;r<e.length;r++)t=`_iv_max(${t}, ${n(e[r])})`;return t},Power:([e,n],t)=>{if(e===null||n===null)throw new Error("Power: missing argument");if(w(e,"ExponentialE"))return`_iv_exp(${t(n)})`;if(C(n)&&n.im===0){let r=n.re;if(r===.5)return`_iv_sqrt(${t(e)})`;if(r===2)return`_iv_square(${t(e)})`;if(Number.isInteger(r)&&r>=0)return`_iv_powi(${t(e)}, ${Tn(r)})`;if(!Number.isInteger(r)&&r>0){let i=n.numerator?.re,o=n.denominator?.re;return Number.isInteger(i)&&Number.isInteger(o)&&o>1&&o%2!==0?`_iv_powrat(${t(e)}, ${Tn(i)}, ${Tn(r)})`:`_iv_powf(${t(e)}, ${Tn(r)})`}throw new Error(`interval-glsl: Power with exponent \`${n.toString()}\` is not yet supported`)}throw new Error("interval-glsl: Power with a variable exponent is not yet supported")}},Jf={Pi:"vec2(3.14159265359, 3.14159265359)",ExponentialE:"vec2(2.71828182846, 2.71828182846)",GoldenRatio:"vec2(1.61803398875, 1.61803398875)",CatalanConstant:"vec2(0.91596559417, 0.91596559417)",EulerGamma:"vec2(0.57721566490, 0.57721566490)"},Wf=class extends ii{languageId="interval-glsl";getOperators(){return{}}getFunctions(){return DS}getConstants(){return Jf}createTarget(n={}){return super.createTarget({operators:()=>{},functions:t=>DS[t],number:t=>`vec2(${Tn(t)}, ${Tn(t)})`,complex:()=>{throw new Error("interval-glsl: complex values are not supported")},var:t=>Jf[t],...n})}getPreamble(n={}){return $S(n)}compile(n,t={}){let{vars:r,trigAbsPad:i}=t,o=this.createTarget({var:a=>{if(r&&a in r)return r[a];if(a in Jf)return Jf[a]}}),s=P.compile(n,o),u=P.withReferences({target:"interval-glsl",success:!0,code:s},n,o,r?new Set(Object.keys(r)):void 0);return(s.includes("_iv_")||(u.freeSymbols?.length??0)>0)&&(u.preamble=this.getPreamble({trigAbsPad:i})),u}compileExclusionShader(n,t={}){let{version:r="300 es",precision:i="highp",trigAbsPad:o}=t,s=this.compile(n),u=s.freeSymbols??[];if(u.length>2)throw new Error(`interval-glsl exclusion shader supports at most 2 free variables (got ${u.length}: ${u.join(", ")})`);let a=u.map(m=>`vec2 ${m}`).join(", "),[l,f]=u,c=["void main() {"];c.push(" vec2 _cell = gl_FragCoord.xy / u_resolution;"),c.push(" vec2 _step = 1.0 / u_resolution;");let p=[];return l!==void 0&&(c.push(" float _xlo = mix(u_domainX.x, u_domainX.y, _cell.x);"),c.push(" float _xhi = mix(u_domainX.x, u_domainX.y, _cell.x + _step.x);"),c.push(" float _xext = max(abs(u_domainX.x), abs(u_domainX.y));"),p.push("_iv_widen_box(vec2(_xlo, _xhi), _xext)")),f!==void 0&&(c.push(" float _ylo = mix(u_domainY.x, u_domainY.y, _cell.y);"),c.push(" float _yhi = mix(u_domainY.x, u_domainY.y, _cell.y + _step.y);"),c.push(" float _yext = max(abs(u_domainY.x), abs(u_domainY.y));"),p.push("_iv_widen_box(vec2(_ylo, _yhi), _yext)")),c.push(` vec2 _f = _implicit(${p.join(", ")});`),c.push(" bool _excluded = (_f.x > 0.0 || _f.y < 0.0);"),c.push(" fragColor = _excluded ? vec4(0.0, 0.0, 0.0, 1.0) : vec4(1.0);"),c.push("}"),[`#version ${r}`,`precision ${i} float;`,"",this.getPreamble({trigAbsPad:o}).trim(),"","uniform vec2 u_domainX; // [min, max] for the 1st free variable","uniform vec2 u_domainY; // [min, max] for the 2nd free variable","uniform vec2 u_resolution; // render target size, in pixels","","out vec4 fragColor;","","// Interval evaluation of the implicit field f over a cell box. The box is","// outward-rounded by the caller (main(), via _iv_widen_box).",`vec2 _implicit(${a}) {`,` return ${s.code};`,"}","",c.join(`
|
|
1812
1812
|
`),""].join(`
|
|
1813
|
-
`)}};var Xf=class{_targets=new Map;register(n,t){H2(n),Y2(t),this._targets.set(n,t)}get(n){return this._targets.get(n)}list(){return[...this._targets.keys()]}unregister(n){this._targets.delete(n)}registerDefaults(){this.register("javascript",new Xo),this.register("glsl",new ii),this.register("wgsl",new Du),this.register("python",new ns),this.register("interval-js",new rs),this.register("interval-glsl",new Wf)}};var Kf=class{_listeners=[];_registered=new WeakSet;_pending=!1;_version=0;listen(n){return this._registered.has(n)||(this._registered.add(n),this._listeners.push(new WeakRef(n))),()=>this._unsubscribe(n)}_unsubscribe(n){this._registered.has(n)&&(this._registered.delete(n),this._listeners=this._listeners.filter(t=>{let r=t.deref();return r!==void 0&&r!==n}))}notify(){if(this._pending)return;this._pending=!0;let n=this._version+1;queueMicrotask(()=>{if(n!==this._version+1){this._pending=!1;return}this.notifyNow()})}notifyNow(){this._version++,this._listeners=this._listeners.filter(n=>{let t=n.deref();try{t?.onConfigurationChange?.()}catch(r){console.error("Listener error:",r)}return t!==void 0}),this._pending=!1}};var ec=class{_generation=0;_tracker=new Kf;get generation(){return this._generation}set generation(n){this._generation=n}reset(n){this._generation+=1,n.refreshNumericConstants(),n.resetCommonSymbols(),n.purgeCaches(),this._tracker.notifyNow()}listen(n){return this._tracker.listen(n)}};function I6(e){return!!(e===void 0||e==="Number"||e===!0||Array.isArray(e)&&e.includes("Number"))}function FS(e,n,t,r){let i=r?.canonical??!0,o=r?.metadata,s=t.normalize(),u=s.toLowerCase();if(u==="infinity"||u==="+infinity")return e.PositiveInfinity;if(u==="-infinity")return e.NegativeInfinity;if(e.strict&&!Bn(s))return e.error(["invalid-symbol",Mt(s)],s);if(!i)return new _r(e,s,{metadata:o});if(e._isShadowedParameter(s)){let c=e.lookupDefinition(s);if(!c||Q(c)&&c.value.isConstant){let p=e.context.lexicalScope;for(;p.noAutoDeclare&&p.parent;)p=p.parent;c=e._declareSymbolValue(s,{type:"unknown",inferred:!0},p)}return new _r(e,s,{metadata:o,def:c})}let a=n[s];if(a)return a;let l=e.lookupDefinition(s);if(Q(l)&&l.value.holdUntil==="never")return l.value.value??e.Nothing;if(l)return new _r(e,s,{metadata:o,def:l});let f=e.context.lexicalScope;for(;f.noAutoDeclare&&f.parent;)f=f.parent;return l=e._declareSymbolValue(s,{type:"unknown",inferred:!0},f),new _r(e,s,{metadata:o,def:l})}function qS(e,n,t,r){let i=r?.metadata;if(!I6(r?.canonical)&&Cr(t))return e._fn("Rational",[e.number(t[0]),e.number(t[1])],{...i,canonical:!1});let s=Il(e,t);if(i===void 0){if(typeof s=="number"){let u=s;if(u===1)return e.One;if(u===0)return e.Zero;if(u===-1)return e.NegativeOne;if(u===2)return e.Two;if(Number.isInteger(u)&&n[u]!==void 0)return n[u]??=new Le(e,s),n[u];if(Number.isNaN(u))return e.NaN;if(!Number.isFinite(u))return u<0?e.NegativeInfinity:e.PositiveInfinity}else if(s instanceof mn){if(s.isZero)return e.Zero;if(s.isOne)return e.One;if(s.isNegativeOne)return e.NegativeOne;if(s.isNaN)return e.NaN;if(s.isNegativeInfinity)return e.NegativeInfinity;if(s.isPositiveInfinity)return e.PositiveInfinity}}return new Le(e,s,{metadata:i})}var is=class{_rules;_cachedLength=-1;constructor(n){this._rules=n}get rules(){return this._rules}set rules(n){this._rules=n,this._cachedLength=-1}hasMutatedSinceLastCache(){return this._cachedLength>=0&&this._rules.length!==this._cachedLength}markCached(){this._cachedLength=this._rules.length}};var nc=class{_precision;_angularUnit;_tolerance;_bignumTolerance;_negBignumTolerance;constructor(n){let t=n?.precision??gc;t==="machine"&&(t=Math.floor(Ui)),this._precision=t,S.precision=t,this._angularUnit=n?.angularUnit??"rad",this._tolerance=ss,this._bignumTolerance=new S(ss),this._negBignumTolerance=new S(-ss),this.setTolerance(n?.tolerance??"auto")}get precision(){return this._precision}setPrecision(n){let t=n;if(t==="machine"&&(t=Ui),t==="auto"&&(t=gc),t===this._precision)return!1;if(typeof t!="number"||t<=0)throw Error('Expected "machine" or a positive number');return this._precision=Math.max(t,Ui),S.precision=this._precision,this.setTolerance("auto"),!0}get angularUnit(){return this._angularUnit}setAngularUnit(n){if(n===this._angularUnit)return!1;if(typeof n!="string")throw Error("Expected a string");return this._angularUnit=n,!0}get tolerance(){return this._tolerance}setTolerance(n){let t=n;t==="auto"&&(t=ss),(!Number.isFinite(t)||t<0)&&(t=Math.pow(10,-this._precision+2)),this._tolerance=t,this._bignumTolerance=new S(t),this._negBignumTolerance=new S(-t)}get bignumTolerance(){return this._bignumTolerance}get negBignumTolerance(){return this._negBignumTolerance}get bignumNaN(){return S.NAN}get bignumZero(){return S.ZERO}get bignumOne(){return S.ONE}get bignumTwo(){return S.TWO}get bignumHalf(){return S.HALF}get bignumPi(){return S.PI}get bignumNegativeOne(){return S.NEGATIVE_ONE}bignum(n){if(n instanceof S)return n;try{return new S(n)}catch(t){t instanceof Error?console.error(t.message):console.error(String(t))}return S.NAN}};var tc=class{_timeLimit=2e3;_iterationLimit=1024;_recursionLimit=256;_recursionDepth=0;_maxCollectionSize=1e4;_deadline=void 0;_isVerifying=!1;get timeLimit(){return this._timeLimit}set timeLimit(n){this._timeLimit=n<=0?Number.POSITIVE_INFINITY:n}get iterationLimit(){return this._iterationLimit}set iterationLimit(n){this._iterationLimit=n<=0?Number.POSITIVE_INFINITY:n}get recursionLimit(){return this._recursionLimit}set recursionLimit(n){this._recursionLimit=n<=0?Number.POSITIVE_INFINITY:n}get recursionDepth(){return this._recursionDepth}enterRecursion(){if(this._recursionDepth>=this._recursionLimit)throw new Oe({cause:"recursion-depth-exceeded",message:"Recursion limit exceeded"});this._recursionDepth+=1}exitRecursion(){this._recursionDepth>0&&(this._recursionDepth-=1)}get maxCollectionSize(){return this._maxCollectionSize}set maxCollectionSize(n){this._maxCollectionSize=n<=0?Number.POSITIVE_INFINITY:n}get deadline(){return this._deadline}set deadline(n){this._deadline=n}get timeRemaining(){return this._deadline===void 0?Number.POSITIVE_INFINITY:this._deadline-Date.now()}get isVerifying(){return this._isVerifying}set isVerifying(n){this._isVerifying=n}shouldContinueExecution(){return this._deadline===void 0||this._deadline>=Date.now()}};function M6(e){if(typeof e!="string")return Q2(e),e;let n=wf.find(t=>t.name===e);if(!n)throw new Error(`Unknown standard library: "${e}"`);return n}function BS(e){return e?Cf(e.map(M6)):[...If()]}function VS(e,n){for(let t of n){let r=t.definitions;if(!r)continue;let i=Array.isArray(r)?r:[r];for(let o of i)I2(e,o)}}function zu(e,n){let t=e[n];if(!t)throw new Error(`Common symbol "${n}" failed to initialize`);return t}var rc=class{constructor(n){this.engine=n}engine;initializeCommonNumbers(){return{Zero:new Le(this.engine,0),One:new Le(this.engine,1),Half:new Le(this.engine,{rational:[1,2]}),NegativeOne:new Le(this.engine,-1),Two:new Le(this.engine,2),NaN:new Le(this.engine,Number.NaN),PositiveInfinity:new Le(this.engine,Number.POSITIVE_INFINITY),NegativeInfinity:new Le(this.engine,Number.NEGATIVE_INFINITY),I:new Le(this.engine,{im:1}),ComplexInfinity:new Le(this.engine,{re:1/0,im:1/0})}}bootstrapLibraries(n){let t=BS(n);VS(this.engine,t)}initializeCommonSymbolBindings(n){return Q_(this.engine,n),{True:zu(n,"True"),False:zu(n,"False"),Pi:zu(n,"Pi"),E:zu(n,"ExponentialE"),Nothing:zu(n,"Nothing")}}};function A6(e){let n=[],t=e;for(;t;)t.types&&n.push(...Object.keys(t.types)),t=t.parent;return n}function R6(e,n){let t=e;for(;t;){if(t.types?.[n])return t.types[n];t=t.parent}}function zS(e){return{get names(){return A6(e.context.lexicalScope)},resolve(n){return R6(e.context.lexicalScope,n)},forward(n){let t={kind:"reference",name:n,alias:!1,def:void 0};return e.context.lexicalScope.types??={},e.context.lexicalScope.types[n]=t,t}}}function ic(e,n,t){let r;typeof n=="string"?r=e.string(n):r=e.function("ErrorCode",n.map(s=>e.string(s)));let i;t&&Nh(t)?i=e.function("LatexString",[e.string(hi(t))]):typeof t=="string"&&t.length>0&&(i=e.string(t));let o=[e.expr(r)];return i&&o.push(i),e.function("Error",o)}function jS(e,n,t,r){return t?ic(e,["incompatible-type",Xe(n),t.toString()],r):ic(e,["incompatible-type",Xe(n)],r)}var Ib=null,Mb=null;function oc(e){Mb=e}function ui(){if(!Ib){if(!Mb)throw new Error("ComputeEngine factory not registered. Import from the main module.");Ib=Mb()}return Ib}function ai(e,n){if(typeof e=="string"){let t=ui();return t.parse(e,{strict:n?.strict??!1})??t.expr("Nothing")}return yc(e)?e:ui().expr(e)}function US(e,n){return ui().parse(e,n)}function GS(e,n){return ui().expr(e,n)}function HS(e,n){return ai(e,n).simplify(n)}function ZS(e,n){return ai(e,n).evaluate()}function YS(e,n){return ai(e,n).N()}function QS(e,n){ui().declare(e,n)}function JS(e,n){ui().assign(e,n)}function WS(e,n){return me(ai(e,n))}function XS(e,n,t){return ai(e,t).solve(n)}function KS(e,n){return nr(ai(e,n))}function eN(e,n){return vt(ai(e,n))}function nN(e,n){return Qo(ai(e,n),n)}var P6=/^(Sin|Cos|Tan|Cot|Sec|Csc)$/;function sc(e){return P6.test(e.operator)?!0:d(e)?e.ops.some(sc):!1}function li(e,...n){return n.includes(e.operator)?!0:d(e)?e.ops.some(t=>li(t,...n)):!1}function qe(e,n){let t=e.engine;if(d(e)&&e.ops.length>0){let r=e,i=r.ops.map(s=>qe(s,n));i.some((s,u)=>s!==r.ops[u])&&(e=t._fn(r.operator,i))}return n(e)??e}function Ab(e,n){if(!d(e)||!d(n))return!1;let t=e.op1,r=n.op1;return t!==void 0&&r!==void 0&&t.isSame(r)}function T6(e){let n=e.engine,t=e.operator;if(!d(e))return;let r=e.op1;if(r){if(t==="Sec")return n.One.div(n._fn("Cos",[r]));if(t==="Csc")return n.One.div(n._fn("Sin",[r]))}}function oN(e){return qe(e,T6)}function k6(e){let n=e.engine,t=e.operator;if(!d(e))return;let r=e.op1;if(r){if(t==="Tan")return n._fn("Sin",[r]).div(n._fn("Cos",[r]));if(t==="Cot")return n._fn("Cos",[r]).div(n._fn("Sin",[r]))}}function sN(e){return qe(e,k6)}function O6(e){let n=e.engine;if(e.operator!=="Divide"||!d(e))return;let t=e.op1,r=e.op2;if(!(!t||!r)){if(t.operator==="Sin"&&r.operator==="Cos"&&Ab(t,r))return d(t)?n._fn("Tan",[t.op1]):void 0;if(t.operator==="Cos"&&r.operator==="Sin"&&Ab(t,r))return d(t)?n._fn("Cot",[t.op1]):void 0}}function uN(e){return qe(e,O6)}function L6(e){if(d(e,"Negate"))return e.op1;if(d(e,"Multiply")){let n=e.ops.findIndex(t=>t.isSame(-1));if(n>=0){let t=e.ops.filter((r,i)=>i!==n);return t.length===1?t[0]:e.engine._fn("Multiply",t)}}}function D6(e){let n=e.engine,t=e.operator;if(!d(e))return;let r=e.op1;if(!r)return;let i=L6(r);if(i){if(t==="Cos")return n._fn("Cos",[i]);if(t==="Sec")return n._fn("Sec",[i]);if(t==="Sin")return n._fn("Sin",[i]).neg();if(t==="Tan")return n._fn("Tan",[i]).neg();if(t==="Csc")return n._fn("Csc",[i]).neg();if(t==="Cot")return n._fn("Cot",[i]).neg()}}function aN(e){return qe(e,D6)}function $6(e){let n=e.engine;if(e.operator!=="Power"||!d(e))return;let t=e.op1,r=e.op2;if(!t||!r||t.operator!=="Sin"||!r.isSame(2)||!d(t))return;let i=t.op1;if(i)return n.One.sub(n._fn("Cos",[i]).pow(2))}function Rb(e){return qe(e,$6)}function F6(e){let n=e.engine;if(e.operator!=="Power"||!d(e))return;let t=e.op1,r=e.op2;if(!t||!r||t.operator!=="Cos"||!r.isSame(2)||!d(t))return;let i=t.op1;if(i)return n.One.sub(n._fn("Sin",[i]).pow(2))}function lN(e){return qe(e,F6)}function q6(e){let n=e.engine;if(e.operator!=="Power"||!d(e))return;let t=e.op1,r=e.op2;if(!t||!r||t.operator!=="Cos"||!r.isSame(2)||!d(t))return;let i=t.op1;if(i)return n.One.add(n._fn("Cos",[i.mul(2)])).div(2)}function fN(e){return qe(e,q6)}function B6(e){let n=e.engine;if(d(e,"Divide")){let r=e.op1,i=e.op2;if(!r||!i||!i.isSame(2))return;if(d(r,"Add")&&r.ops.length===2)return tN(n,r.ops)}let t=r=>!!(r.re===.5&&r.im===0||r.isSame(n.Half));if(d(e,"Multiply")){let r=e.ops.findIndex(i=>t(i));if(r>=0){let i=e.ops.filter((o,s)=>s!==r);if(i.length===1&&i[0].operator==="Add"){let o=i[0];if(d(o)&&o.ops.length===2)return tN(n,o.ops)}}}if(d(e,"Add")&&e.ops.length===2){let r,i,o=!1,s=u=>u.re===-.5&&u.im===0;for(let u of e.ops){if(t(u)){r=u;continue}let a=u,l=!1;if(d(u,"Negate")&&(l=!0,a=u.op1),d(a,"Divide")&&a.op2?.isSame(2)){let f=a.op1;if(f?.operator==="Cos"){i=f,o=l;continue}}if(d(a,"Multiply")){let f=a.ops.findIndex(p=>t(p));if(f>=0){let p=a.ops.filter((m,g)=>g!==f);if(p.length===1&&p[0].operator==="Cos"){i=p[0],o=l;continue}}let c=a.ops.findIndex(p=>s(p));if(c>=0){let p=a.ops.filter((m,g)=>g!==c);if(p.length===1&&p[0].operator==="Cos"){i=p[0],o=!l;continue}}}}if(r&&i){if(!d(i))return;let u=i.op1;if(!u)return;let a;if(d(u,"Multiply")){let l=u.ops.findIndex(f=>f.isSame(2));if(l>=0){let f=u.ops.filter((c,p)=>p!==l);a=f.length===1?f[0]:n._fn("Multiply",f)}}return a?o?n._fn("Sin",[a]).pow(2):n._fn("Cos",[a]).pow(2):void 0}}}function tN(e,n){let t=-1,r=-1,i=!1;for(let a=0;a<n.length;a++)if(n[a].isSame(1))t=a;else if(n[a].operator==="Cos")r=a,i=!1;else if(n[a].operator==="Negate"){let l=n[a];d(l)&&l.op1?.operator==="Cos"&&(r=a,i=!0)}if(t<0||r<0)return;let o;if(i){let a=n[r];if(!d(a))return;o=a.op1}else o=n[r];if(!d(o))return;let s=o.op1;if(!s)return;let u;if(d(s,"Multiply")){let a=s.ops.findIndex(l=>l.isSame(2));if(a>=0){let l=s.ops.filter((f,c)=>c!==a);u=l.length===1?l[0]:e._fn("Multiply",l)}}if(u)return i?e._fn("Sin",[u]).pow(2):e._fn("Cos",[u]).pow(2)}function Pb(e){return qe(e,B6)}function V6(e){let n=e.engine;if(e.operator!=="Multiply"||!d(e))return;let t=e.ops;if(!(t.length<2))for(let r=0;r<t.length;r++)for(let i=r+1;i<t.length;i++){let o=t[r],s=t[i];if(!d(o)||!d(s))continue;let u=o.op1,a=s.op1;if(!u||!a)continue;let l;if(o.operator==="Sin"&&s.operator==="Cos"?l=n._fn("Sin",[u.add(a)]).add(n._fn("Sin",[u.sub(a)])).div(2):o.operator==="Cos"&&s.operator==="Sin"?l=n._fn("Sin",[u.add(a)]).sub(n._fn("Sin",[u.sub(a)])).div(2):o.operator==="Cos"&&s.operator==="Cos"?l=n._fn("Cos",[u.add(a)]).add(n._fn("Cos",[u.sub(a)])).div(2):o.operator==="Sin"&&s.operator==="Sin"&&(l=n._fn("Cos",[u.sub(a)]).sub(n._fn("Cos",[u.add(a)])).div(2)),l){let f=t.filter((c,p)=>p!==r&&p!==i);return f.length===0?l:l.mul(f.length===1?f[0]:n._fn("Multiply",f))}}}function cN(e){return qe(e,V6)}function z6(e){let n=e.engine;if(e.operator!=="Add"||!d(e))return;let t=e.ops;if(!(t.length<2))for(let r=0;r<t.length;r++)for(let i=r+1;i<t.length;i++){let o=t[r],s=t[i],u;if(o.operator==="Sin"&&s.operator==="Sin"){if(!d(o)||!d(s))continue;let a=o.op1,l=s.op1;if(a&&l){let f=a.add(l).div(2),c=a.sub(l).div(2);u=n._fn("Sin",[f]).mul(n._fn("Cos",[c])).mul(2)}}else if(o.operator==="Cos"&&s.operator==="Cos"){if(!d(o)||!d(s))continue;let a=o.op1,l=s.op1;if(a&&l){let f=a.add(l).div(2),c=a.sub(l).div(2);u=n._fn("Cos",[f]).mul(n._fn("Cos",[c])).mul(2)}}else if(o.operator==="Sin"&&s.operator==="Negate"){if(!d(o)||!d(s)||s.op1?.operator!=="Sin")continue;let a=s.op1;if(!d(a))continue;let l=o.op1,f=a.op1;if(l&&f){let c=l.add(f).div(2),p=l.sub(f).div(2);u=n._fn("Cos",[c]).mul(n._fn("Sin",[p])).mul(2)}}else if(o.operator==="Cos"&&s.operator==="Negate"){if(!d(o)||!d(s)||s.op1?.operator!=="Cos")continue;let a=s.op1;if(!d(a))continue;let l=o.op1,f=a.op1;if(l&&f){let c=l.add(f).div(2),p=l.sub(f).div(2);u=n._fn("Sin",[c]).mul(n._fn("Sin",[p])).mul(-2)}}if(u){let a=t.filter((l,f)=>f!==r&&f!==i);return a.length===0?u:u.add(a.length===1?a[0]:n._fn("Add",a))}}}function uc(e){return qe(e,z6)}function j6(e){let n=e.engine,t=e.operator;if(t!=="Sin"&&t!=="Cos"||!d(e))return;let r=e.op1;if(r){if(d(r,"Add")&&r.ops.length===2){let[i,o]=r.ops;return t==="Sin"?n._fn("Sin",[i]).mul(n._fn("Cos",[o])).add(n._fn("Cos",[i]).mul(n._fn("Sin",[o]))):n._fn("Cos",[i]).mul(n._fn("Cos",[o])).sub(n._fn("Sin",[i]).mul(n._fn("Sin",[o])))}if(d(r,"Subtract")){let i=r.op1,o=r.op2;return!i||!o?void 0:t==="Sin"?n._fn("Sin",[i]).mul(n._fn("Cos",[o])).sub(n._fn("Cos",[i]).mul(n._fn("Sin",[o]))):n._fn("Cos",[i]).mul(n._fn("Cos",[o])).add(n._fn("Sin",[i]).mul(n._fn("Sin",[o])))}}}function pN(e){return qe(e,j6)}function U6(e){let n=e.engine;if(e.operator!=="Add"||!d(e))return;let t=e.ops;if(!(t.length<2))for(let r=0;r<t.length;r++)for(let i=r+1;i<t.length;i++){let o=t[r],s=t[i],u=_=>{if(_.operator!=="Multiply"||!d(_))return null;let M=_.ops;if(M.length!==2)return null;let[I,A]=M;return I.operator==="Sin"&&A.operator==="Cos"?{sin:I,cos:A}:I.operator==="Cos"&&A.operator==="Sin"?{sin:A,cos:I}:null},a=_=>{if(_.operator!=="Multiply"||!d(_))return null;let M=_.ops;if(M.length!==2)return null;let[I,A]=M;return I.operator==="Cos"&&A.operator==="Cos"?{cos1:I,cos2:A}:null},l=_=>{if(_.operator!=="Multiply"||!d(_))return null;let M=_.ops;if(M.length!==2)return null;let[I,A]=M;return I.operator==="Sin"&&A.operator==="Sin"?{sin1:I,sin2:A}:null},f=_=>d(_)?_.op1:void 0,c=u(o),p=u(s),m=d(o,"Negate")&&o.op1?u(o.op1):null,g=d(s,"Negate")&&s.op1?u(s.op1):null;if(c&&p){let _=f(c.sin),M=f(c.cos),I=f(p.sin),A=f(p.cos);if(_&&M&&I&&A&&_.isSame(A)&&M.isSame(I)){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Sin",[_.add(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}if(c&&g){let _=f(c.sin),M=f(c.cos),I=f(g.sin),A=f(g.cos);if(_&&M&&I&&A&&_.isSame(A)&&M.isSame(I)){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Sin",[_.sub(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}if(m&&p){let _=f(m.sin),M=f(m.cos),I=f(p.sin),A=f(p.cos);if(_&&M&&I&&A&&I.isSame(M)&&A.isSame(_)){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Sin",[I.sub(A)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}let b=a(o),h=a(s),y=l(o),x=l(s),v=d(o,"Negate")&&o.op1?l(o.op1):null,E=d(s,"Negate")&&s.op1?l(s.op1):null;if(b&&E){let _=f(b.cos1),M=f(b.cos2),I=f(E.sin1),A=f(E.sin2);if(_&&M&&I&&A&&(_.isSame(I)&&M.isSame(A)||_.isSame(A)&&M.isSame(I))){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Cos",[_.add(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}if(v&&h){let _=f(h.cos1),M=f(h.cos2),I=f(v.sin1),A=f(v.sin2);if(_&&M&&I&&A&&(_.isSame(I)&&M.isSame(A)||_.isSame(A)&&M.isSame(I))){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Cos",[_.add(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}if(b&&x){let _=f(b.cos1),M=f(b.cos2),I=f(x.sin1),A=f(x.sin2);if(_&&M&&I&&A&&(_.isSame(I)&&M.isSame(A)||_.isSame(A)&&M.isSame(I))){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Cos",[_.sub(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}if(y&&h){let _=f(h.cos1),M=f(h.cos2),I=f(y.sin1),A=f(y.sin2);if(_&&M&&I&&A&&(_.isSame(I)&&M.isSame(A)||_.isSame(A)&&M.isSame(I))){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Cos",[_.sub(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}}}function ac(e){return qe(e,U6)}function G6(e){let n=e.engine,t=e.operator;if(t!=="Sin"&&t!=="Cos"||!d(e))return;let r=e.op1;if(r&&d(r,"Multiply")){let i=r.ops,o=i.findIndex(s=>s.isSame(2));if(o>=0){let s=i.filter((a,l)=>l!==o),u=s.length===1?s[0]:n._fn("Multiply",s);return t==="Sin"?n._fn("Sin",[u]).mul(n._fn("Cos",[u])).mul(2):n._fn("Cos",[u]).pow(2).mul(2).sub(n.One)}}}function Tb(e){return qe(e,G6)}function H6(e){let n=e.engine;if(d(e,"Multiply")){let t=e.ops,r=t.findIndex(i=>i.isSame(2));if(r>=0){let i=t.filter((u,a)=>a!==r),o,s;for(let u of i)u.operator==="Sin"&&!o?o=u:u.operator==="Cos"&&!s&&(s=u);if(o&&s&&Ab(o,s)){if(!d(o))return;let u=i.filter(l=>l!==o&&l!==s),a=n._fn("Sin",[o.op1.mul(2)]);return u.length===0?a:a.mul(u.length===1?u[0]:n._fn("Multiply",u))}}}if(d(e,"Add")&&e.ops.length===2){let[t,r]=e.ops;if(d(t,"Power")&&t.op1?.operator==="Cos"&&t.op2?.isSame(2)&&r.operator==="Negate"&&d(r)&&r.op1?.operator==="Power"&&d(r.op1)&&r.op1.op1?.operator==="Sin"&&r.op1.op2?.isSame(2)){let a=t.op1,l=r.op1;if(d(a)&&d(l)){let f=l.op1;if(d(f)){let c=a.op1,p=f.op1;if(c&&p&&c.isSame(p))return n._fn("Cos",[c.mul(2)])}}}let i=a=>{if(!d(a,"Multiply"))return;let l=a.ops.findIndex(p=>p.isSame(2));if(l<0)return;let f=a.ops.filter((p,m)=>m!==l);if(f.length!==1)return;let c=f[0];if(d(c,"Power")&&c.op1?.operator==="Cos"&&c.op2?.isSame(2)){let p=c.op1;if(d(p))return p.op1}},o=i(t);if(o&&(r.isSame(-1)||d(r,"Negate")&&r.op1?.isSame(1)))return n._fn("Cos",[o.mul(2)]);if(o=i(r),o&&(t.isSame(-1)||d(t,"Negate")&&t.op1?.isSame(1)))return n._fn("Cos",[o.mul(2)]);let s=a=>{if(!d(a,"Multiply"))return;let l=a.ops.findIndex(p=>p.isSame(2));if(l<0)return;let f=a.ops.filter((p,m)=>m!==l);if(f.length!==1)return;let c=f[0];if(d(c,"Power")&&c.op1?.operator==="Sin"&&c.op2?.isSame(2)){let p=c.op1;if(d(p))return p.op1}};if(t.isSame(1)&&d(r,"Negate")&&r.op1){let a=s(r.op1);if(a)return n._fn("Cos",[a.mul(2)])}if(r.isSame(1)&&d(t,"Negate")&&t.op1){let a=s(t.op1);if(a)return n._fn("Cos",[a.mul(2)])}let u=a=>{if(!d(a,"Multiply"))return;let l=a.ops.findIndex(p=>p.isSame(-2));if(l<0)return;let f=a.ops.filter((p,m)=>m!==l);if(f.length!==1)return;let c=f[0];if(d(c,"Power")&&c.op1?.operator==="Sin"&&c.op2?.isSame(2)){let p=c.op1;if(d(p))return p.op1}};if(t.isSame(1)){let a=u(r);if(a)return n._fn("Cos",[a.mul(2)])}if(r.isSame(1)){let a=u(t);if(a)return n._fn("Cos",[a.mul(2)])}}}function mN(e){return qe(e,H6)}function Z6(e){let n=e.engine;if(e.operator!=="Tan"||!d(e))return;let t=e.op1;if(t){if(d(t,"Add")&&t.ops.length===2){let[r,i]=t.ops,o=n._fn("Tan",[r]),s=n._fn("Tan",[i]);return o.add(s).div(n.One.sub(o.mul(s)))}if(d(t,"Subtract")){let r=t.op1,i=t.op2;if(!r||!i)return;let o=n._fn("Tan",[r]),s=n._fn("Tan",[i]);return o.sub(s).div(n.One.add(o.mul(s)))}}}function dN(e){return qe(e,Z6)}var Y6=[{value:0,angle:[0,1]},{value:1/Math.sqrt(3),angle:[1,6]},{value:1,angle:[1,4]},{value:Math.sqrt(3),angle:[1,3]},{value:2-Math.sqrt(3),angle:[1,12]},{value:2+Math.sqrt(3),angle:[5,12]}];function Q6(e,n=1e-10){for(let t of Y6)if(Math.abs(t.value-e)<n)return t.angle}function J6(e){if(e.operator!=="Multiply"||!d(e))return;let n=e.ops;if(n.length<2)return;let t=[],r=1;for(let i of n)if(d(i,"Tan")&&i.op1)t.push(i.op1);else if(d(i,"Negate")&&i.op1?.operator==="Sqrt"){let o=i.op1;if(d(o)){let s=o.op1;if(C(s)&&typeof s.re=="number")r*=-Math.sqrt(s.re);else return}else return}else if(d(i,"Sqrt")){let o=i.op1;if(o&&C(o)&&typeof o.re=="number")r*=Math.sqrt(o.re);else return}else if(C(i)&&typeof i.re=="number")r*=i.re;else return;if(t.length===2)return[r,t[0],t[1]]}function rN(e){if(d(e,"Multiply")){let n=!1,t;for(let r of e.ops)if(w(r,"Pi"))n=!0;else if(C(r)&&typeof r.re=="number"){let i=r.re;for(let o=1;o<=36;o++){let s=Math.round(i*o);if(Math.abs(s/o-i)<1e-10){t=[s,o];break}}}if(n&&t)return t}if(w(e,"Pi"))return[1,1]}function W6(e){let n=e.engine;if(e.operator!=="Add"||!d(e))return;let t=e.ops;if(t.length!==3)return;let r=[],i;for(let x=0;x<t.length;x++){let v=t[x];if(d(v,"Tan")&&v.op1)r.push({arg:v.op1,index:x});else{let E=J6(v);E&&(i={coef:E[0],arg1:E[1],arg2:E[2],index:x})}}if(r.length!==2||!i)return;let[o,s]=r,u=o.arg.isSame(i.arg1)||o.arg.isSame(i.arg2),a=s.arg.isSame(i.arg1)||s.arg.isSame(i.arg2),l=o.arg.isSame(i.arg2)||o.arg.isSame(i.arg1),f=s.arg.isSame(i.arg2)||s.arg.isSame(i.arg1);if(!(u&&f||a&&l))return;let c=-i.coef;if(c<=0)return;let p=Q6(c);if(!p)return;let m=rN(o.arg),g=rN(s.arg);if(!m||!g)return;let b=iN(iN(m[1],g[1]),p[1]);if(m[0]*(b/m[1])+g[0]*(b/g[1])+p[0]*(b/p[1])!==b)return;let y=n._fn("Multiply",[n.number([p[0],p[1]]),n.symbol("Pi")]);return n._fn("Tan",[y]).neg()}function iN(e,n){return Math.abs(e*n)/X6(e,n)}function X6(e,n){for(e=Math.abs(e),n=Math.abs(n);n;){let t=n;n=e%n,e=t}return e}function gN(e){return qe(e,W6)}function K6(e){let n=e.engine;if(e.operator!=="Multiply"||!d(e))return;let t=e.ops;if(!(t.length<2))for(let r=0;r<t.length;r++)for(let i=r+1;i<t.length;i++){let o=t[r],s=t[i];if(!d(o)||!d(s))continue;let u=o.op1,a=s.op1;if(!(!u||!a)){if(o.operator==="Tan"&&s.operator==="Tan"){let l=o,f=s,c=n._fn("Cot",[u.add(a)]),p=n.One.sub(l.add(f).mul(c)),m=t.filter((g,b)=>b!==r&&b!==i);return m.length===0?p:p.mul(m.length===1?m[0]:n._fn("Multiply",m))}if(o.operator==="Cot"&&s.operator==="Cot"){let l=o,f=s,c=n._fn("Cot",[u.add(a)]),p=n.One.add(l.add(f).mul(c)),m=t.filter((g,b)=>b!==r&&b!==i);return m.length===0?p:p.mul(m.length===1?m[0]:n._fn("Multiply",m))}}}}function bN(e){return qe(e,K6)}function e8(e){let n=e.engine;if(e.operator!=="Power"||!d(e))return;let t=e.op1,r=e.op2;if(!t||!r||!r.isSame(2)||!d(t))return;let i=t.op1;if(i){if(t.operator==="Tan")return n._fn("Sec",[i]).pow(2).sub(n.One);if(t.operator==="Cot")return n._fn("Csc",[i]).pow(2).sub(n.One);if(t.operator==="Sec")return n.One.add(n._fn("Tan",[i]).pow(2));if(t.operator==="Csc")return n.One.add(n._fn("Cot",[i]).pow(2))}}function hN(e){return qe(e,e8)}function n8(e){let n=e.engine;if(e.operator!=="Add"||!d(e))return;let t=e.ops;if(t.length!==2)return;let r=p=>{let m=!1,g=p;if(d(p,"Negate")&&(m=!0,g=p.op1),!d(g)||g.operator!=="Power"||!g.op2?.isSame(2))return null;let b=g.op1;if(!d(b)||!b.op1)return null;let h=b.operator;return["Tan","Cot","Sec","Csc"].includes(h)?{func:h,arg:b.op1,neg:m}:null},i=r(t[0]),o=r(t[1]);if(i&&o&&i.arg.isSame(o.arg)){if(i.func==="Cot"&&!i.neg&&o.func==="Csc"&&o.neg||i.func==="Csc"&&i.neg&&o.func==="Cot"&&!o.neg)return n.number(-1);if(i.func==="Csc"&&!i.neg&&o.func==="Cot"&&o.neg||i.func==="Cot"&&i.neg&&o.func==="Csc"&&!o.neg)return n.One;if(i.func==="Tan"&&!i.neg&&o.func==="Sec"&&o.neg||i.func==="Sec"&&i.neg&&o.func==="Tan"&&!o.neg)return n.number(-1);if(i.func==="Sec"&&!i.neg&&o.func==="Tan"&&o.neg||i.func==="Tan"&&i.neg&&o.func==="Sec"&&!o.neg)return n.One}let s=-1,u=-1,a=!1;for(let p=0;p<t.length;p++){let m=t[p];m.isSame(1)?(s=p,a=!1):m.isSame(-1)||d(m,"Negate")&&m.op1?.isSame(1)?(s=p,a=!0):d(m,"Power")&&m.op2?.isSame(2)&&(u=p)}if(s<0||u<0)return;let l=t[u];if(!d(l))return;let f=l.op1;if(!f||!d(f))return;let c=f.op1;if(c){if(f.operator==="Sec"&&a)return n._fn("Tan",[c]).pow(2);if(f.operator==="Csc"&&a)return n._fn("Cot",[c]).pow(2);if(f.operator==="Tan"&&!a)return n._fn("Sec",[c]).pow(2);if(f.operator==="Cot"&&!a)return n._fn("Csc",[c]).pow(2)}}function kb(e){return qe(e,n8)}function t8(e){let n=e.engine;if(!d(e,"Multiply"))return[1,n.One,e];for(let t=0;t<e.ops.length;t++){let r=e.ops[t],i;if(C(r)&&typeof r.re=="number"&&r.im===0&&(i=r.re),i!==void 0){let o=e.ops.filter((u,a)=>a!==t),s=o.length===1?o[0]:n._fn("Multiply",o);return[i,r,s]}}return[1,n.One,e]}function r8(e){let n=e.engine;if(e.operator!=="Multiply"||!d(e))return;let t=e.ops;if(t.length<2)return;let r=[],i=[];for(let I of t)if(d(I,"Cos")&&I.op1){let A=t8(I.op1);A?r.push({arg:A[2],numericMult:A[0],symbolicCoeff:A[1]}):r.push({arg:I.op1,numericMult:1,symbolicCoeff:n.One})}else i.push(I);if(r.length<2)return;let o=r[0].arg,s=r.filter(I=>I.arg.isSame(o)),u=r.filter(I=>!I.arg.isSame(o));if(s.length<2)return;s.sort((I,A)=>I.numericMult-A.numericMult);let a=[],l=[],f=[...s],c=f[0].numericMult;if(c>0){a.push(f[0]);let I=new Set([0]),A=c*2;for(;;){let R=f.findIndex((T,D)=>!I.has(D)&&Math.abs(T.numericMult-A)<1e-10);if(R===-1)break;a.push(f[R]),I.add(R),A*=2}l=f.filter((R,T)=>!I.has(T))}if(a.length<2)return;let p=a[0].numericMult,m=[...i];for(let I of l){let A=I.symbolicCoeff.isSame(n.One)?I.arg:n._fn("Multiply",[I.symbolicCoeff,I.arg]);m.push(n._fn("Cos",[A]))}for(let I of u){let A=I.symbolicCoeff.isSame(n.One)?I.arg:n._fn("Multiply",[I.symbolicCoeff,I.arg]);m.push(n._fn("Cos",[A]))}let g=a.length,b=a[0].symbolicCoeff,h=Math.pow(2,g);if(w(o,"Pi")){let I=1/(h+1);if(Math.abs(p-I)<1e-10){let A=n.number([1,h]);return m.length===0?A:A.mul(m.length===1?m[0]:n._fn("Multiply",m))}}let y=b.mul(h),x=b.isSame(n.One)?o:n._fn("Multiply",[b,o]),v=n._fn("Multiply",[y,o]),E=n._fn("Sin",[v]),_=n._fn("Sin",[x]),M=E.div(n.number(h).mul(_));return m.length===0?M:M.mul(m.length===1?m[0]:n._fn("Multiply",m))}function yN(e){return qe(e,r8)}function i8(e){if(d(e,"Power")&&e.op2?.isSame(2)){let n=e.op1;if(d(n,"Sin")&&n.op1)return{func:"Sin",arg:n.op1,coef:1};if(d(n,"Cos")&&n.op1)return{func:"Cos",arg:n.op1,coef:1}}if(d(e,"Multiply")){let n=1,t;for(let r of e.ops)if(d(r,"Power")&&r.op2?.isSame(2)){let i=r.op1;(i?.operator==="Sin"||i?.operator==="Cos")&&(t=r)}else typeof r.re=="number"&&r.im===0&&(n*=r.re);if(d(t)){let r=t.op1;if(d(r,"Sin")&&r.op1)return{func:"Sin",arg:r.op1,coef:n};if(d(r,"Cos")&&r.op1)return{func:"Cos",arg:r.op1,coef:n}}}return null}function o8(e){let n=e.engine;if(e.operator!=="Add"||!d(e))return;let t=e.ops;if(t.length<2)return;let r=[],i=[],o=[];for(let s=0;s<t.length;s++){let u=t[s],a=i8(u);a?r.push({...a,index:s}):typeof u.re=="number"&&u.im===0&&C(u)?o.push({value:u.re,index:s}):i.push({expr:u,index:s})}for(let s=0;s<r.length;s++)for(let u=s+1;u<r.length;u++){let a=r[s],l=r[u];if(a.arg.isSame(l.arg)&&(a.func==="Sin"&&l.func==="Cos"||a.func==="Cos"&&l.func==="Sin")&&Math.abs(a.coef-l.coef)<1e-10){let f=a.coef,c=new Set([a.index,l.index]),p=t.filter((m,g)=>!c.has(g));return p.length===0?n.number(f):f===1?n._fn("Add",[n.One,...p]):n._fn("Add",[n.number(f),...p])}}for(let s of r)if(s.coef<0){let u=Math.abs(s.coef);for(let a of o)if(Math.abs(a.value-u)<1e-10){let l=new Set([s.index,a.index]),f=t.filter((m,g)=>!l.has(g)),c=s.func==="Sin"?"Cos":"Sin",p=n._fn(c,[s.arg]).pow(2).mul(u);return f.length===0?p:n._fn("Add",[p,...f])}}}function vN(e){return qe(e,o8)}var s8=new Set(["Sin","Cos","Tan","Cot","Sec","Csc"]);function Ob(e){let n=0;if(s8.has(e.operator)&&(n=1),d(e))for(let t of e.ops)n+=Ob(t);return n}function Lb(e){if(w(e)||C(e))return 1;let n=1;if(d(e))for(let t of e.ops)n+=Lb(t);return n}function xN(e){let n=Ob(e),t=Lb(e);return n*1e3+t}var EN=xN;function Db(e,n){if(e.length===0)throw new Error("bestOf called with empty array");if(e.length===1)return e[0];let t=e[0],r=n(t);for(let i=1;i<e.length;i++){let o=n(e[i]);o<r&&(t=e[i],r=o)}return t}function ju(e,n){let t=n(e);return t.isSame(e)?null:t}function _N(e,n){let t=ju(e,Rb),r=ju(e,lN),i=[e];return t&&i.push(t),r&&i.push(r),Db(i,n)}function u8(e,n){return _N(e,n)}function a8(e,n){let t=ju(e,cN),r=[e];if(t){r.push(t);let i=ju(t,ac);i&&r.push(i)}return Db(r,n)}function l8(e,n){let t=ju(e,ac),r=[e];return t&&r.push(t),Db(r,n)}function f8(e,n){let t=dN(e);return t=bN(t),t}function c8(e,n){let t=e;return t=pN(t),t=Tb(t),t=Rb(t),t=fN(t),t=Tb(t),t=a8(t,n),t=_N(t,n),t=uc(t),t=u8(t,n),t=uc(t),t=l8(t,n),t}function SN(e,n){if(!sc(e))return;let t=n?.measure??EN,r=n?.maxIterations??100,i=e,o=0,s=e,u=t(e),a=E=>{let _=t(E);_<u&&(s=E,u=_)};i=aN(i),a(i);let l=kb(i);a(l);let f=hN(i);a(f),i=s;let c=Pb(i);if(a(c),i=s,li(i,"Sec","Csc")&&(i=oN(i),s=i,u=t(i)),li(i,"Tan","Cot")){let E=f8(i,t);a(E),i=E}if(li(i,"Tan","Cot")&&(i=sN(i),a(i)),li(i,"Sin","Cos")){let E=uc(i);a(E),i=s}if(li(i,"Sin","Cos")){let E=t(i);for(;o<r;){o++;let _=c8(i,t),M=t(_);if(a(_),M>=E)break;i=_,E=M}}let p=uN(s);a(p);let m=mN(s);a(m);let g=yN(s);a(g);let b=Pb(s);a(b);let h=kb(s);a(h);let y=ac(s);a(y);let x=vN(s);a(x);let v=gN(s);if(a(v),s.operator==="Add"||s.operator==="Multiply"){let E=e.engine.expr(s.json);a(E)}if(!s.isSame(e))return{value:s,because:"fu"}}function $b(e,n){if(Array.isArray(e)){if(e[0]==="InvisibleOperator")for(let t=1;t+1<e.length;t++){let r=e[t],i=e[t+1];typeof r=="string"&&Array.isArray(i)&&i[0]==="Delimiter"&&n.add(r)}for(let t of e)$b(t,n);return}e!==null&&typeof e=="object"&&"fn"in e&&Array.isArray(e.fn)&&$b(e.fn,n)}var fi=class e{static _latexSyntaxFactory=null;True;False;Pi;E;Nothing;Zero;One;Half;NegativeOne;Two;I;NaN;PositiveInfinity;NegativeInfinity;ComplexInfinity;_numericConfiguration;_cacheStore=new Of;_runtimeState=new tc;_configurationLifecycle=new ec;_cost;_integrationProvider;_simplificationRules=new is([...f_]);_solveRules=new is([...My]);_harmonizationRules=new is([...Ty]);_compilationTargets=new Xf;_fuAlgorithm=SN;_commonSymbols={Pi:null,True:null,False:null,All:null,Nothing:null,None:null,Undefined:null,ImaginaryUnit:null,ExponentialE:null};_commonNumbers={"-5":null,"-4":null,"-3":null,"-2":null,2:null,3:null,4:null,5:null,6:null,7:null,8:null,9:null,10:null,11:null,12:null,36:null};_evalContextStack=[];get context(){return this._evalContextStack[this._evalContextStack.length-1]}get contextStack(){return[...this._evalContextStack]}set contextStack(n){this._evalContextStack=[...n]}__typeResolver;get _typeResolver(){return this.__typeResolver??=zS(this),this.__typeResolver}declareType(n,t,r){y_(this,n,t,r)}get trace(){return this._evalContextStack.map(n=>n.name).filter(n=>n!==void 0).reverse()}get _generation(){return this._configurationLifecycle.generation}set _generation(n){this._configurationLifecycle.generation=n}strict;static getStandardLibrary(n){return If(n)}constructor(n){if(n!==void 0&&typeof n!="object")throw Error("Unexpected argument");this.strict=!0,this._numericConfiguration=new nc({precision:n?.precision,tolerance:n?.tolerance??"auto",angularUnit:"rad"});let t=new rc(this),r=t.initializeCommonNumbers();this.Zero=r.Zero,this.One=r.One,this.Half=r.Half,this.NegativeOne=r.NegativeOne,this.Two=r.Two,this.NaN=r.NaN,this.PositiveInfinity=r.PositiveInfinity,this.NegativeInfinity=r.NegativeInfinity,this.I=r.I,this.ComplexInfinity=r.ComplexInfinity,this._reset(),this.pushScope(void 0,"system"),this.declareType("limits","expression<Limits>"),this.declareType("distribution","expression<NormalDistribution> | expression<BinomialDistribution> | expression<PoissonDistribution> | expression<UniformDistribution> | expression<ExponentialDistribution>",{alias:!0}),t.bootstrapLibraries(n?.libraries);let i=t.initializeCommonSymbolBindings(this._commonSymbols);this.True=i.True,this.False=i.False,this.Pi=i.Pi,this.E=i.E,this.Nothing=i.Nothing,this.pushScope(void 0,"global"),this._compilationTargets.registerDefaults(),n?.latexSyntax&&(this._latexSyntax=n.latexSyntax),n?.latexOptions&&(this._latexOptions={...n.latexOptions}),Zh(this)}toJSON(){return"[ComputeEngine]"}[Symbol.toStringTag]="ComputeEngine";_reset(){this._configurationLifecycle.reset({refreshNumericConstants:()=>{},resetCommonSymbols:()=>J_(this._commonSymbols),purgeCaches:()=>this._cacheStore.purgeValues()})}listenToConfigurationChange(n){return this._configurationLifecycle.listen(n)}_compile(n,t){return Qo(n,t)}getCompilationTarget(n){return this._compilationTargets.get(n)}listCompilationTargets(){return this._compilationTargets.list()}registerCompilationTarget(n,t){this._compilationTargets.register(n,t)}unregisterCompilationTarget(n){this._compilationTargets.unregister(n)}get precision(){return this._numericConfiguration.precision}set precision(n){this._numericConfiguration.setPrecision(n)&&this._reset()}get angularUnit(){return this._numericConfiguration.angularUnit}set angularUnit(n){this._numericConfiguration.setAngularUnit(n)&&this._reset()}get timeLimit(){return this._runtimeState.timeLimit}set timeLimit(n){this._runtimeState.timeLimit=n}get deadline(){return this._runtimeState.deadline}set deadline(n){this._runtimeState.deadline=n}get _deadline(){return this._runtimeState.deadline}set _deadline(n){this._runtimeState.deadline=n}get _timeRemaining(){return this._runtimeState.timeRemaining}get iterationLimit(){return this._runtimeState.iterationLimit}set iterationLimit(n){this._runtimeState.iterationLimit=n}get recursionLimit(){return this._runtimeState.recursionLimit}set recursionLimit(n){this._runtimeState.recursionLimit=n}_enterRecursion(){this._runtimeState.enterRecursion()}_exitRecursion(){this._runtimeState.exitRecursion()}get maxCollectionSize(){return this._runtimeState.maxCollectionSize}set maxCollectionSize(n){this._runtimeState.maxCollectionSize=n}get _isVerifying(){return this._runtimeState.isVerifying}set _isVerifying(n){this._runtimeState.isVerifying=n}get isVerifying(){return this._runtimeState.isVerifying}get tolerance(){return this._numericConfiguration.tolerance}set tolerance(n){this._numericConfiguration.setTolerance(n)}chop(n){let t=this._numericConfiguration.tolerance;return typeof n=="number"?Math.abs(n)<=t?0:n:n instanceof S?n.isPositive()&&n.lte(this._numericConfiguration.bignumTolerance)||n.isNegative()&&n.gte(this._numericConfiguration.negBignumTolerance)||n.isZero()?0:n:n instanceof L&&Math.abs(n.re)<=t&&Math.abs(n.im)<=t?0:n}bignum(n){return this._numericConfiguration.bignum(n)}complex(n,t){return n instanceof S&&(n=n.toNumber()),t instanceof S&&(t=t.toNumber()),new L(n,t)}_numericValue(n){if(n instanceof mn)return n.asExact??n;let t=this._numericConfiguration.precision>Ui?r=>new Fh(r):r=>new Rh(r);if(typeof n=="number")return Number.isInteger(n)?new Ge(n,t):t(n);if(typeof n=="bigint")return new Ge(n,t);if(Cr(n))return new Ge({rational:n},t);if(n instanceof S){if(n.isInteger()){let r=ji(n.toString());if(r!==null)return new Ge(r,t)}return t(n)}if(n instanceof L)return n.im===0?this._numericValue(n.re):t({re:n.re,im:n.im});if("im"in n||"re"in n)return n.im!==void 0&&n.im!==0?t(n):n.re instanceof S&&n.re.isInteger()?new Ge({rational:[ji(n.re.toString()),BigInt(1)]},t):typeof n.re=="number"&&Number.isInteger(n.re)?new Ge({rational:[n.re,1]},t):t(n);if("radical"in n||"rational"in n){if(n.radical!==void 0&&(!Number.isInteger(n.radical)||n.radical>=cn))throw Error("Unexpected value for radical part:"+n.radical);return n.rational&&ta(n.rational)&&(!Number.isInteger(n.rational[0])||!Number.isInteger(n.rational[1]))?t(n):new Ge(n,t)}throw Error(`Unexpected value: ${typeof n=="object"?JSON.stringify(n):String(n)}`)}get costFunction(){return this._cost??M2}set costFunction(n){this._cost=typeof n=="function"?n:void 0}get simplificationRules(){return this._simplificationRules.rules}set simplificationRules(n){this._simplificationRules.rules=n,this._cacheStore.invalidate("standard-simplification-rules")}get solveRules(){return this._solveRules.rules}set solveRules(n){this._solveRules.rules=n,this._cacheStore.invalidate("univariate-roots-rules")}get harmonizationRules(){return this._harmonizationRules.rules}set harmonizationRules(n){this._harmonizationRules.rules=n,this._cacheStore.invalidate("harmonization-rules")}lookupDefinition(n){return m_(this,n)}normalizeIdentifier(n){if(!n)return"";if(Bn(n))return n;this.pushScope();try{let t=this.parse(n);if(w(t))return t.symbol}finally{this.popScope()}return""}operatorInfo(n){let t=this.lookupDefinition(n);if(!t||!ae(t))return;let r=t.operator;return{kind:r.evaluate||r.collection?"function":"opaque",signature:r.signature}}symbolInfo(n){let t=this.lookupDefinition(n);if(!t||!Q(t))return;let r=t.value;return{kind:r.isConstant?"constant":"variable",type:r.type}}functionProperties(n){return Oi(this,n)}_declareSymbolValue(n,t,r){return d_(this,n,t,r)}_declareSymbolOperator(n,t,r){return g_(this,n,t,r)}pushScope(n,t){E_(this,n,t)}popScope(){__(this)}_pushEvalContext(n,t){qd(this,n,t)}_popEvalContext(){Bd(this)}_inScope(n,t){return S_(this,n,t)}_printStack(n){N_(this,n)}_shadowedParameterStack=[];_pushShadowedParameters(n){this._shadowedParameterStack.push(new Set(n))}_popShadowedParameters(){this._shadowedParameterStack.pop()}_isShadowedParameter(n){let t=this._shadowedParameterStack;for(let r=t.length-1;r>=0;r--)if(t[r].has(n))return!0;return!1}_getSymbolValue(n){return b_(this,n)}_setSymbolValue(n,t){h_(this,n,t)}declare(n,t,r){return v_(this,n,t,r)}declareSequence(n,t){return q_(this,n,t)}getSequenceStatus(n){return B_(this,n)}getSequence(n){return V_(this,n)}listSequences(){return z_(this)}isSequence(n){return j_(this,n)}clearSequenceCache(n){U_(this,n)}getSequenceCache(n){return G_(this,n)}getSequenceTerms(n,t,r,i){return H_(this,n,t,r,i)}lookupOEIS(n,t){return Z_(this,n,t)}checkSequenceOEIS(n,t,r){return Y_(this,n,t,r)}assign(n,t){return x_(this,n,t)}_shouldContinueExecution(){return this._runtimeState.shouldContinueExecution()}_checkContinueExecution(){if(!this._shouldContinueExecution())throw new Error("timeout")}_cache(n,t,r){return this._cacheStore.getOrBuild(n,t,r)}expr(n,t){let{canonical:r,structural:i}=Rf(t);return Pn(this,n,{canonical:r,structural:i,scope:t?.scope})}box(n,t){return this.expr(n,t)}_latexSyntax;get latexSyntax(){return!this._latexSyntax&&e._latexSyntaxFactory&&(this._latexSyntax=e._latexSyntaxFactory()),this._latexSyntax}_requireLatexSyntax(){if(!this._latexSyntax&&e._latexSyntaxFactory&&(this._latexSyntax=e._latexSyntaxFactory()),!this._latexSyntax)throw new Error("LatexSyntax not available. Pass a LatexSyntax instance to the ComputeEngine constructor.");return this._latexSyntax}_latexOptions={};get latexOptions(){return this._latexOptions}set latexOptions(n){this._latexOptions={...n}}parse(n,t){if(n==null)return null;if(typeof n!="string")throw Error("ce.parse(): expected a LaTeX string");let r=this._requireLatexSyntax(),{form:i,canonical:o,structural:s,...u}=t??{},a=r.parse(n,{getSymbolType:l=>{let f=this.lookupDefinition(l);return f?ae(f)?f.operator.signature:Q(f)?f.value.type:Z.unknown:Z.unknown},hasSubscriptEvaluate:l=>{let f=this.lookupDefinition(l);return!!(Q(f)&&f.value.subscriptEvaluate)},tolerance:this.tolerance,...this._latexOptions,...u});return a===null?null:Pn(this,a,Rf({form:i,canonical:o,structural:s}))}appliedNonFunctions(n){let t=this.latexSyntax;if(!t)return[];let r=t.parse(n,{getSymbolType:o=>{let s=this.lookupDefinition(o);return s?ae(s)?s.operator.signature:Q(s)?s.value.type:Z.unknown:Z.unknown},...this._latexOptions}),i=new Set;return r!==null&&$b(r,i),Array.from(i).sort()}function(n,t,r){let{canonical:i,structural:o}=Rf(r);return Af(this,n,t,{metadata:r?.metadata,canonical:i,structural:o,scope:r?.scope})}error(n,t){return ic(this,n,t)}typeError(n,t,r){return jS(this,n,t,r)}hold(n){return this._fn("Hold",[this.expr(n,{form:"raw"})])}tuple(...n){return new Pe(this,"Tuple",n.map(t=>typeof t=="number"?this.number(t):t.canonical),{canonical:!0})}type(n){return n instanceof Z?n:new Z(n,this._typeResolver)}string(n,t){return new Kr(this,n,t)}symbol(n,t){return FS(this,this._commonSymbols,n,t)}number(n,t){return qS(this,this._commonNumbers,n,t)}rules(n,t){return Xs(this,n,t)}getRuleSet(n){if(n??="standard-simplification",n==="standard-simplification"){this._simplificationRules.hasMutatedSinceLastCache()&&this._cacheStore.invalidate("standard-simplification-rules");let t=this._cache("standard-simplification-rules",()=>{let i=Xs(this,this._simplificationRules.rules,{canonical:!0}).rules.filter(o=>o.purpose!=="expand");return{rules:iy(i)}});return this._simplificationRules.markCached(),t}if(n==="solve-univariate"){this._solveRules.hasMutatedSinceLastCache()&&this._cacheStore.invalidate("univariate-roots-rules");let t=this._cache("univariate-roots-rules",()=>Xs(this,this._solveRules.rules));return this._solveRules.markCached(),t}if(n==="harmonization"){this._harmonizationRules.hasMutatedSinceLastCache()&&this._cacheStore.invalidate("harmonization-rules");let t=this._cache("harmonization-rules",()=>Xs(this,this._harmonizationRules.rules));return this._harmonizationRules.markCached(),t}}_fn(n,t,r){let i=r?.canonical??!0;return new Pe(this,n,t,{...r,canonical:i})}ask(n){return Gd(this,n)}verify(n){return Hd(this,n)}assume(n){return O_(this,n)}forget(n){Zd(this,n)}};oc(()=>new fi);var YU="0.69.0";fi._latexSyntaxFactory=()=>new aa;oc(()=>new fi({latexSyntax:new aa}));globalThis[Symbol.for("io.cortexjs.compute-engine")]={ComputeEngine:fi.prototype.constructor,version:"0.69.0"};export{LN as ALGEBRA_DICTIONARY,$N as ARITHMETIC_DICTIONARY,P as BaseCompiler,S as BigDecimal,BN as CALCULUS_DICTIONARY,FN as COMPLEX_DICTIONARY,kN as CORE_DICTIONARY,Oe as CancellationError,fi as ComputeEngine,ii as GLSLTarget,zi as GPUShaderTarget,PN as INEQUALITIES_DICTIONARY,rs as IntervalJavaScriptTarget,Xo as JavaScriptTarget,Ic as LATEX_DICTIONARY,VN as LINEAR_ALGEBRA_DICTIONARY,TN as LOGIC_DICTIONARY,aa as LatexSyntax,YS as N,UN as OTHERS_DICTIONARY,GN as PHYSICS_DICTIONARY,ns as PythonTarget,DN as SETS_DICTIONARY,zN as STATISTICS_DICTIONARY,ON as SYMBOLS_DICTIONARY,qN as TRIGONOMETRY_DICTIONARY,jN as UNITS_DICTIONARY,Du as WGSLTarget,JS as assign,nN as compile,QS as declare,ZS as evaluate,WS as expand,KS as expandAll,GS as expr,eN as factor,ui as getDefaultEngine,MN as isCollection,ls as isDictionary,yc as isExpression,d as isFunction,AN as isIndexedCollection,C as isNumber,B as isString,w as isSymbol,IN as isTensor,sa as labelFor,_e as numericValue,US as parse,Kt as parseLatex,RN as registerStepLabels,Ji as serializeLatex,HS as simplify,XS as solve,YU as version};
|
|
1813
|
+
`)}};var Xf=class{_targets=new Map;register(n,t){H2(n),Y2(t),this._targets.set(n,t)}get(n){return this._targets.get(n)}list(){return[...this._targets.keys()]}unregister(n){this._targets.delete(n)}registerDefaults(){this.register("javascript",new Xo),this.register("glsl",new ii),this.register("wgsl",new Du),this.register("python",new ns),this.register("interval-js",new rs),this.register("interval-glsl",new Wf)}};var Kf=class{_listeners=[];_registered=new WeakSet;_pending=!1;_version=0;listen(n){return this._registered.has(n)||(this._registered.add(n),this._listeners.push(new WeakRef(n))),()=>this._unsubscribe(n)}_unsubscribe(n){this._registered.has(n)&&(this._registered.delete(n),this._listeners=this._listeners.filter(t=>{let r=t.deref();return r!==void 0&&r!==n}))}notify(){if(this._pending)return;this._pending=!0;let n=this._version+1;queueMicrotask(()=>{if(n!==this._version+1){this._pending=!1;return}this.notifyNow()})}notifyNow(){this._version++,this._listeners=this._listeners.filter(n=>{let t=n.deref();try{t?.onConfigurationChange?.()}catch(r){console.error("Listener error:",r)}return t!==void 0}),this._pending=!1}};var ec=class{_generation=0;_tracker=new Kf;get generation(){return this._generation}set generation(n){this._generation=n}reset(n){this._generation+=1,n.refreshNumericConstants(),n.resetCommonSymbols(),n.purgeCaches(),this._tracker.notifyNow()}listen(n){return this._tracker.listen(n)}};function I6(e){return!!(e===void 0||e==="Number"||e===!0||Array.isArray(e)&&e.includes("Number"))}function FS(e,n,t,r){let i=r?.canonical??!0,o=r?.metadata,s=t.normalize(),u=s.toLowerCase();if(u==="infinity"||u==="+infinity")return e.PositiveInfinity;if(u==="-infinity")return e.NegativeInfinity;if(e.strict&&!Bn(s))return e.error(["invalid-symbol",Mt(s)],s);if(!i)return new _r(e,s,{metadata:o});if(e._isShadowedParameter(s)){let c=e.lookupDefinition(s);if(!c||Q(c)&&c.value.isConstant){let p=e.context.lexicalScope;for(;p.noAutoDeclare&&p.parent;)p=p.parent;c=e._declareSymbolValue(s,{type:"unknown",inferred:!0},p)}return new _r(e,s,{metadata:o,def:c})}let a=n[s];if(a)return a;let l=e.lookupDefinition(s);if(Q(l)&&l.value.holdUntil==="never")return l.value.value??e.Nothing;if(l)return new _r(e,s,{metadata:o,def:l});let f=e.context.lexicalScope;for(;f.noAutoDeclare&&f.parent;)f=f.parent;return l=e._declareSymbolValue(s,{type:"unknown",inferred:!0},f),new _r(e,s,{metadata:o,def:l})}function qS(e,n,t,r){let i=r?.metadata;if(!I6(r?.canonical)&&Cr(t))return e._fn("Rational",[e.number(t[0]),e.number(t[1])],{...i,canonical:!1});let s=Il(e,t);if(i===void 0){if(typeof s=="number"){let u=s;if(u===1)return e.One;if(u===0)return e.Zero;if(u===-1)return e.NegativeOne;if(u===2)return e.Two;if(Number.isInteger(u)&&n[u]!==void 0)return n[u]??=new Le(e,s),n[u];if(Number.isNaN(u))return e.NaN;if(!Number.isFinite(u))return u<0?e.NegativeInfinity:e.PositiveInfinity}else if(s instanceof mn){if(s.isZero)return e.Zero;if(s.isOne)return e.One;if(s.isNegativeOne)return e.NegativeOne;if(s.isNaN)return e.NaN;if(s.isNegativeInfinity)return e.NegativeInfinity;if(s.isPositiveInfinity)return e.PositiveInfinity}}return new Le(e,s,{metadata:i})}var is=class{_rules;_cachedLength=-1;constructor(n){this._rules=n}get rules(){return this._rules}set rules(n){this._rules=n,this._cachedLength=-1}hasMutatedSinceLastCache(){return this._cachedLength>=0&&this._rules.length!==this._cachedLength}markCached(){this._cachedLength=this._rules.length}};var nc=class{_precision;_angularUnit;_tolerance;_bignumTolerance;_negBignumTolerance;constructor(n){let t=n?.precision??gc;t==="machine"&&(t=Math.floor(Ui)),this._precision=t,S.precision=t,this._angularUnit=n?.angularUnit??"rad",this._tolerance=ss,this._bignumTolerance=new S(ss),this._negBignumTolerance=new S(-ss),this.setTolerance(n?.tolerance??"auto")}get precision(){return this._precision}setPrecision(n){let t=n;if(t==="machine"&&(t=Ui),t==="auto"&&(t=gc),t===this._precision)return!1;if(typeof t!="number"||t<=0)throw Error('Expected "machine" or a positive number');return this._precision=Math.max(t,Ui),S.precision=this._precision,this.setTolerance("auto"),!0}get angularUnit(){return this._angularUnit}setAngularUnit(n){if(n===this._angularUnit)return!1;if(typeof n!="string")throw Error("Expected a string");return this._angularUnit=n,!0}get tolerance(){return this._tolerance}setTolerance(n){let t=n;t==="auto"&&(t=ss),(!Number.isFinite(t)||t<0)&&(t=Math.pow(10,-this._precision+2)),this._tolerance=t,this._bignumTolerance=new S(t),this._negBignumTolerance=new S(-t)}get bignumTolerance(){return this._bignumTolerance}get negBignumTolerance(){return this._negBignumTolerance}get bignumNaN(){return S.NAN}get bignumZero(){return S.ZERO}get bignumOne(){return S.ONE}get bignumTwo(){return S.TWO}get bignumHalf(){return S.HALF}get bignumPi(){return S.PI}get bignumNegativeOne(){return S.NEGATIVE_ONE}bignum(n){if(n instanceof S)return n;try{return new S(n)}catch(t){t instanceof Error?console.error(t.message):console.error(String(t))}return S.NAN}};var tc=class{_timeLimit=2e3;_iterationLimit=1024;_recursionLimit=256;_recursionDepth=0;_maxCollectionSize=1e4;_deadline=void 0;_isVerifying=!1;get timeLimit(){return this._timeLimit}set timeLimit(n){this._timeLimit=n<=0?Number.POSITIVE_INFINITY:n}get iterationLimit(){return this._iterationLimit}set iterationLimit(n){this._iterationLimit=n<=0?Number.POSITIVE_INFINITY:n}get recursionLimit(){return this._recursionLimit}set recursionLimit(n){this._recursionLimit=n<=0?Number.POSITIVE_INFINITY:n}get recursionDepth(){return this._recursionDepth}enterRecursion(){if(this._recursionDepth>=this._recursionLimit)throw new Oe({cause:"recursion-depth-exceeded",message:"Recursion limit exceeded"});this._recursionDepth+=1}exitRecursion(){this._recursionDepth>0&&(this._recursionDepth-=1)}get maxCollectionSize(){return this._maxCollectionSize}set maxCollectionSize(n){this._maxCollectionSize=n<=0?Number.POSITIVE_INFINITY:n}get deadline(){return this._deadline}set deadline(n){this._deadline=n}get timeRemaining(){return this._deadline===void 0?Number.POSITIVE_INFINITY:this._deadline-Date.now()}get isVerifying(){return this._isVerifying}set isVerifying(n){this._isVerifying=n}shouldContinueExecution(){return this._deadline===void 0||this._deadline>=Date.now()}};function M6(e){if(typeof e!="string")return Q2(e),e;let n=wf.find(t=>t.name===e);if(!n)throw new Error(`Unknown standard library: "${e}"`);return n}function BS(e){return e?Cf(e.map(M6)):[...If()]}function VS(e,n){for(let t of n){let r=t.definitions;if(!r)continue;let i=Array.isArray(r)?r:[r];for(let o of i)I2(e,o)}}function zu(e,n){let t=e[n];if(!t)throw new Error(`Common symbol "${n}" failed to initialize`);return t}var rc=class{constructor(n){this.engine=n}engine;initializeCommonNumbers(){return{Zero:new Le(this.engine,0),One:new Le(this.engine,1),Half:new Le(this.engine,{rational:[1,2]}),NegativeOne:new Le(this.engine,-1),Two:new Le(this.engine,2),NaN:new Le(this.engine,Number.NaN),PositiveInfinity:new Le(this.engine,Number.POSITIVE_INFINITY),NegativeInfinity:new Le(this.engine,Number.NEGATIVE_INFINITY),I:new Le(this.engine,{im:1}),ComplexInfinity:new Le(this.engine,{re:1/0,im:1/0})}}bootstrapLibraries(n){let t=BS(n);VS(this.engine,t)}initializeCommonSymbolBindings(n){return Q_(this.engine,n),{True:zu(n,"True"),False:zu(n,"False"),Pi:zu(n,"Pi"),E:zu(n,"ExponentialE"),Nothing:zu(n,"Nothing")}}};function A6(e){let n=[],t=e;for(;t;)t.types&&n.push(...Object.keys(t.types)),t=t.parent;return n}function R6(e,n){let t=e;for(;t;){if(t.types?.[n])return t.types[n];t=t.parent}}function zS(e){return{get names(){return A6(e.context.lexicalScope)},resolve(n){return R6(e.context.lexicalScope,n)},forward(n){let t={kind:"reference",name:n,alias:!1,def:void 0};return e.context.lexicalScope.types??={},e.context.lexicalScope.types[n]=t,t}}}function ic(e,n,t){let r;typeof n=="string"?r=e.string(n):r=e.function("ErrorCode",n.map(s=>e.string(s)));let i;t&&Nh(t)?i=e.function("LatexString",[e.string(hi(t))]):typeof t=="string"&&t.length>0&&(i=e.string(t));let o=[e.expr(r)];return i&&o.push(i),e.function("Error",o)}function jS(e,n,t,r){return t?ic(e,["incompatible-type",Xe(n),t.toString()],r):ic(e,["incompatible-type",Xe(n)],r)}var Ib=null,Mb=null;function oc(e){Mb=e}function ui(){if(!Ib){if(!Mb)throw new Error("ComputeEngine factory not registered. Import from the main module.");Ib=Mb()}return Ib}function ai(e,n){if(typeof e=="string"){let t=ui();return t.parse(e,{strict:n?.strict??!1})??t.expr("Nothing")}return yc(e)?e:ui().expr(e)}function US(e,n){return ui().parse(e,n)}function GS(e,n){return ui().expr(e,n)}function HS(e,n){return ai(e,n).simplify(n)}function ZS(e,n){return ai(e,n).evaluate()}function YS(e,n){return ai(e,n).N()}function QS(e,n){ui().declare(e,n)}function JS(e,n){ui().assign(e,n)}function WS(e,n){return me(ai(e,n))}function XS(e,n,t){return ai(e,t).solve(n)}function KS(e,n){return nr(ai(e,n))}function eN(e,n){return vt(ai(e,n))}function nN(e,n){return Qo(ai(e,n),n)}var P6=/^(Sin|Cos|Tan|Cot|Sec|Csc)$/;function sc(e){return P6.test(e.operator)?!0:d(e)?e.ops.some(sc):!1}function li(e,...n){return n.includes(e.operator)?!0:d(e)?e.ops.some(t=>li(t,...n)):!1}function qe(e,n){let t=e.engine;if(d(e)&&e.ops.length>0){let r=e,i=r.ops.map(s=>qe(s,n));i.some((s,u)=>s!==r.ops[u])&&(e=t._fn(r.operator,i))}return n(e)??e}function Ab(e,n){if(!d(e)||!d(n))return!1;let t=e.op1,r=n.op1;return t!==void 0&&r!==void 0&&t.isSame(r)}function T6(e){let n=e.engine,t=e.operator;if(!d(e))return;let r=e.op1;if(r){if(t==="Sec")return n.One.div(n._fn("Cos",[r]));if(t==="Csc")return n.One.div(n._fn("Sin",[r]))}}function oN(e){return qe(e,T6)}function k6(e){let n=e.engine,t=e.operator;if(!d(e))return;let r=e.op1;if(r){if(t==="Tan")return n._fn("Sin",[r]).div(n._fn("Cos",[r]));if(t==="Cot")return n._fn("Cos",[r]).div(n._fn("Sin",[r]))}}function sN(e){return qe(e,k6)}function O6(e){let n=e.engine;if(e.operator!=="Divide"||!d(e))return;let t=e.op1,r=e.op2;if(!(!t||!r)){if(t.operator==="Sin"&&r.operator==="Cos"&&Ab(t,r))return d(t)?n._fn("Tan",[t.op1]):void 0;if(t.operator==="Cos"&&r.operator==="Sin"&&Ab(t,r))return d(t)?n._fn("Cot",[t.op1]):void 0}}function uN(e){return qe(e,O6)}function L6(e){if(d(e,"Negate"))return e.op1;if(d(e,"Multiply")){let n=e.ops.findIndex(t=>t.isSame(-1));if(n>=0){let t=e.ops.filter((r,i)=>i!==n);return t.length===1?t[0]:e.engine._fn("Multiply",t)}}}function D6(e){let n=e.engine,t=e.operator;if(!d(e))return;let r=e.op1;if(!r)return;let i=L6(r);if(i){if(t==="Cos")return n._fn("Cos",[i]);if(t==="Sec")return n._fn("Sec",[i]);if(t==="Sin")return n._fn("Sin",[i]).neg();if(t==="Tan")return n._fn("Tan",[i]).neg();if(t==="Csc")return n._fn("Csc",[i]).neg();if(t==="Cot")return n._fn("Cot",[i]).neg()}}function aN(e){return qe(e,D6)}function $6(e){let n=e.engine;if(e.operator!=="Power"||!d(e))return;let t=e.op1,r=e.op2;if(!t||!r||t.operator!=="Sin"||!r.isSame(2)||!d(t))return;let i=t.op1;if(i)return n.One.sub(n._fn("Cos",[i]).pow(2))}function Rb(e){return qe(e,$6)}function F6(e){let n=e.engine;if(e.operator!=="Power"||!d(e))return;let t=e.op1,r=e.op2;if(!t||!r||t.operator!=="Cos"||!r.isSame(2)||!d(t))return;let i=t.op1;if(i)return n.One.sub(n._fn("Sin",[i]).pow(2))}function lN(e){return qe(e,F6)}function q6(e){let n=e.engine;if(e.operator!=="Power"||!d(e))return;let t=e.op1,r=e.op2;if(!t||!r||t.operator!=="Cos"||!r.isSame(2)||!d(t))return;let i=t.op1;if(i)return n.One.add(n._fn("Cos",[i.mul(2)])).div(2)}function fN(e){return qe(e,q6)}function B6(e){let n=e.engine;if(d(e,"Divide")){let r=e.op1,i=e.op2;if(!r||!i||!i.isSame(2))return;if(d(r,"Add")&&r.ops.length===2)return tN(n,r.ops)}let t=r=>!!(r.re===.5&&r.im===0||r.isSame(n.Half));if(d(e,"Multiply")){let r=e.ops.findIndex(i=>t(i));if(r>=0){let i=e.ops.filter((o,s)=>s!==r);if(i.length===1&&i[0].operator==="Add"){let o=i[0];if(d(o)&&o.ops.length===2)return tN(n,o.ops)}}}if(d(e,"Add")&&e.ops.length===2){let r,i,o=!1,s=u=>u.re===-.5&&u.im===0;for(let u of e.ops){if(t(u)){r=u;continue}let a=u,l=!1;if(d(u,"Negate")&&(l=!0,a=u.op1),d(a,"Divide")&&a.op2?.isSame(2)){let f=a.op1;if(f?.operator==="Cos"){i=f,o=l;continue}}if(d(a,"Multiply")){let f=a.ops.findIndex(p=>t(p));if(f>=0){let p=a.ops.filter((m,g)=>g!==f);if(p.length===1&&p[0].operator==="Cos"){i=p[0],o=l;continue}}let c=a.ops.findIndex(p=>s(p));if(c>=0){let p=a.ops.filter((m,g)=>g!==c);if(p.length===1&&p[0].operator==="Cos"){i=p[0],o=!l;continue}}}}if(r&&i){if(!d(i))return;let u=i.op1;if(!u)return;let a;if(d(u,"Multiply")){let l=u.ops.findIndex(f=>f.isSame(2));if(l>=0){let f=u.ops.filter((c,p)=>p!==l);a=f.length===1?f[0]:n._fn("Multiply",f)}}return a?o?n._fn("Sin",[a]).pow(2):n._fn("Cos",[a]).pow(2):void 0}}}function tN(e,n){let t=-1,r=-1,i=!1;for(let a=0;a<n.length;a++)if(n[a].isSame(1))t=a;else if(n[a].operator==="Cos")r=a,i=!1;else if(n[a].operator==="Negate"){let l=n[a];d(l)&&l.op1?.operator==="Cos"&&(r=a,i=!0)}if(t<0||r<0)return;let o;if(i){let a=n[r];if(!d(a))return;o=a.op1}else o=n[r];if(!d(o))return;let s=o.op1;if(!s)return;let u;if(d(s,"Multiply")){let a=s.ops.findIndex(l=>l.isSame(2));if(a>=0){let l=s.ops.filter((f,c)=>c!==a);u=l.length===1?l[0]:e._fn("Multiply",l)}}if(u)return i?e._fn("Sin",[u]).pow(2):e._fn("Cos",[u]).pow(2)}function Pb(e){return qe(e,B6)}function V6(e){let n=e.engine;if(e.operator!=="Multiply"||!d(e))return;let t=e.ops;if(!(t.length<2))for(let r=0;r<t.length;r++)for(let i=r+1;i<t.length;i++){let o=t[r],s=t[i];if(!d(o)||!d(s))continue;let u=o.op1,a=s.op1;if(!u||!a)continue;let l;if(o.operator==="Sin"&&s.operator==="Cos"?l=n._fn("Sin",[u.add(a)]).add(n._fn("Sin",[u.sub(a)])).div(2):o.operator==="Cos"&&s.operator==="Sin"?l=n._fn("Sin",[u.add(a)]).sub(n._fn("Sin",[u.sub(a)])).div(2):o.operator==="Cos"&&s.operator==="Cos"?l=n._fn("Cos",[u.add(a)]).add(n._fn("Cos",[u.sub(a)])).div(2):o.operator==="Sin"&&s.operator==="Sin"&&(l=n._fn("Cos",[u.sub(a)]).sub(n._fn("Cos",[u.add(a)])).div(2)),l){let f=t.filter((c,p)=>p!==r&&p!==i);return f.length===0?l:l.mul(f.length===1?f[0]:n._fn("Multiply",f))}}}function cN(e){return qe(e,V6)}function z6(e){let n=e.engine;if(e.operator!=="Add"||!d(e))return;let t=e.ops;if(!(t.length<2))for(let r=0;r<t.length;r++)for(let i=r+1;i<t.length;i++){let o=t[r],s=t[i],u;if(o.operator==="Sin"&&s.operator==="Sin"){if(!d(o)||!d(s))continue;let a=o.op1,l=s.op1;if(a&&l){let f=a.add(l).div(2),c=a.sub(l).div(2);u=n._fn("Sin",[f]).mul(n._fn("Cos",[c])).mul(2)}}else if(o.operator==="Cos"&&s.operator==="Cos"){if(!d(o)||!d(s))continue;let a=o.op1,l=s.op1;if(a&&l){let f=a.add(l).div(2),c=a.sub(l).div(2);u=n._fn("Cos",[f]).mul(n._fn("Cos",[c])).mul(2)}}else if(o.operator==="Sin"&&s.operator==="Negate"){if(!d(o)||!d(s)||s.op1?.operator!=="Sin")continue;let a=s.op1;if(!d(a))continue;let l=o.op1,f=a.op1;if(l&&f){let c=l.add(f).div(2),p=l.sub(f).div(2);u=n._fn("Cos",[c]).mul(n._fn("Sin",[p])).mul(2)}}else if(o.operator==="Cos"&&s.operator==="Negate"){if(!d(o)||!d(s)||s.op1?.operator!=="Cos")continue;let a=s.op1;if(!d(a))continue;let l=o.op1,f=a.op1;if(l&&f){let c=l.add(f).div(2),p=l.sub(f).div(2);u=n._fn("Sin",[c]).mul(n._fn("Sin",[p])).mul(-2)}}if(u){let a=t.filter((l,f)=>f!==r&&f!==i);return a.length===0?u:u.add(a.length===1?a[0]:n._fn("Add",a))}}}function uc(e){return qe(e,z6)}function j6(e){let n=e.engine,t=e.operator;if(t!=="Sin"&&t!=="Cos"||!d(e))return;let r=e.op1;if(r){if(d(r,"Add")&&r.ops.length===2){let[i,o]=r.ops;return t==="Sin"?n._fn("Sin",[i]).mul(n._fn("Cos",[o])).add(n._fn("Cos",[i]).mul(n._fn("Sin",[o]))):n._fn("Cos",[i]).mul(n._fn("Cos",[o])).sub(n._fn("Sin",[i]).mul(n._fn("Sin",[o])))}if(d(r,"Subtract")){let i=r.op1,o=r.op2;return!i||!o?void 0:t==="Sin"?n._fn("Sin",[i]).mul(n._fn("Cos",[o])).sub(n._fn("Cos",[i]).mul(n._fn("Sin",[o]))):n._fn("Cos",[i]).mul(n._fn("Cos",[o])).add(n._fn("Sin",[i]).mul(n._fn("Sin",[o])))}}}function pN(e){return qe(e,j6)}function U6(e){let n=e.engine;if(e.operator!=="Add"||!d(e))return;let t=e.ops;if(!(t.length<2))for(let r=0;r<t.length;r++)for(let i=r+1;i<t.length;i++){let o=t[r],s=t[i],u=_=>{if(_.operator!=="Multiply"||!d(_))return null;let M=_.ops;if(M.length!==2)return null;let[I,A]=M;return I.operator==="Sin"&&A.operator==="Cos"?{sin:I,cos:A}:I.operator==="Cos"&&A.operator==="Sin"?{sin:A,cos:I}:null},a=_=>{if(_.operator!=="Multiply"||!d(_))return null;let M=_.ops;if(M.length!==2)return null;let[I,A]=M;return I.operator==="Cos"&&A.operator==="Cos"?{cos1:I,cos2:A}:null},l=_=>{if(_.operator!=="Multiply"||!d(_))return null;let M=_.ops;if(M.length!==2)return null;let[I,A]=M;return I.operator==="Sin"&&A.operator==="Sin"?{sin1:I,sin2:A}:null},f=_=>d(_)?_.op1:void 0,c=u(o),p=u(s),m=d(o,"Negate")&&o.op1?u(o.op1):null,g=d(s,"Negate")&&s.op1?u(s.op1):null;if(c&&p){let _=f(c.sin),M=f(c.cos),I=f(p.sin),A=f(p.cos);if(_&&M&&I&&A&&_.isSame(A)&&M.isSame(I)){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Sin",[_.add(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}if(c&&g){let _=f(c.sin),M=f(c.cos),I=f(g.sin),A=f(g.cos);if(_&&M&&I&&A&&_.isSame(A)&&M.isSame(I)){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Sin",[_.sub(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}if(m&&p){let _=f(m.sin),M=f(m.cos),I=f(p.sin),A=f(p.cos);if(_&&M&&I&&A&&I.isSame(M)&&A.isSame(_)){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Sin",[I.sub(A)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}let b=a(o),h=a(s),y=l(o),x=l(s),v=d(o,"Negate")&&o.op1?l(o.op1):null,E=d(s,"Negate")&&s.op1?l(s.op1):null;if(b&&E){let _=f(b.cos1),M=f(b.cos2),I=f(E.sin1),A=f(E.sin2);if(_&&M&&I&&A&&(_.isSame(I)&&M.isSame(A)||_.isSame(A)&&M.isSame(I))){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Cos",[_.add(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}if(v&&h){let _=f(h.cos1),M=f(h.cos2),I=f(v.sin1),A=f(v.sin2);if(_&&M&&I&&A&&(_.isSame(I)&&M.isSame(A)||_.isSame(A)&&M.isSame(I))){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Cos",[_.add(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}if(b&&x){let _=f(b.cos1),M=f(b.cos2),I=f(x.sin1),A=f(x.sin2);if(_&&M&&I&&A&&(_.isSame(I)&&M.isSame(A)||_.isSame(A)&&M.isSame(I))){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Cos",[_.sub(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}if(y&&h){let _=f(h.cos1),M=f(h.cos2),I=f(y.sin1),A=f(y.sin2);if(_&&M&&I&&A&&(_.isSame(I)&&M.isSame(A)||_.isSame(A)&&M.isSame(I))){let R=t.filter((D,k)=>k!==r&&k!==i),T=n._fn("Cos",[_.sub(M)]);return R.length===0?T:T.add(R.length===1?R[0]:n._fn("Add",R))}}}}function ac(e){return qe(e,U6)}function G6(e){let n=e.engine,t=e.operator;if(t!=="Sin"&&t!=="Cos"||!d(e))return;let r=e.op1;if(r&&d(r,"Multiply")){let i=r.ops,o=i.findIndex(s=>s.isSame(2));if(o>=0){let s=i.filter((a,l)=>l!==o),u=s.length===1?s[0]:n._fn("Multiply",s);return t==="Sin"?n._fn("Sin",[u]).mul(n._fn("Cos",[u])).mul(2):n._fn("Cos",[u]).pow(2).mul(2).sub(n.One)}}}function Tb(e){return qe(e,G6)}function H6(e){let n=e.engine;if(d(e,"Multiply")){let t=e.ops,r=t.findIndex(i=>i.isSame(2));if(r>=0){let i=t.filter((u,a)=>a!==r),o,s;for(let u of i)u.operator==="Sin"&&!o?o=u:u.operator==="Cos"&&!s&&(s=u);if(o&&s&&Ab(o,s)){if(!d(o))return;let u=i.filter(l=>l!==o&&l!==s),a=n._fn("Sin",[o.op1.mul(2)]);return u.length===0?a:a.mul(u.length===1?u[0]:n._fn("Multiply",u))}}}if(d(e,"Add")&&e.ops.length===2){let[t,r]=e.ops;if(d(t,"Power")&&t.op1?.operator==="Cos"&&t.op2?.isSame(2)&&r.operator==="Negate"&&d(r)&&r.op1?.operator==="Power"&&d(r.op1)&&r.op1.op1?.operator==="Sin"&&r.op1.op2?.isSame(2)){let a=t.op1,l=r.op1;if(d(a)&&d(l)){let f=l.op1;if(d(f)){let c=a.op1,p=f.op1;if(c&&p&&c.isSame(p))return n._fn("Cos",[c.mul(2)])}}}let i=a=>{if(!d(a,"Multiply"))return;let l=a.ops.findIndex(p=>p.isSame(2));if(l<0)return;let f=a.ops.filter((p,m)=>m!==l);if(f.length!==1)return;let c=f[0];if(d(c,"Power")&&c.op1?.operator==="Cos"&&c.op2?.isSame(2)){let p=c.op1;if(d(p))return p.op1}},o=i(t);if(o&&(r.isSame(-1)||d(r,"Negate")&&r.op1?.isSame(1)))return n._fn("Cos",[o.mul(2)]);if(o=i(r),o&&(t.isSame(-1)||d(t,"Negate")&&t.op1?.isSame(1)))return n._fn("Cos",[o.mul(2)]);let s=a=>{if(!d(a,"Multiply"))return;let l=a.ops.findIndex(p=>p.isSame(2));if(l<0)return;let f=a.ops.filter((p,m)=>m!==l);if(f.length!==1)return;let c=f[0];if(d(c,"Power")&&c.op1?.operator==="Sin"&&c.op2?.isSame(2)){let p=c.op1;if(d(p))return p.op1}};if(t.isSame(1)&&d(r,"Negate")&&r.op1){let a=s(r.op1);if(a)return n._fn("Cos",[a.mul(2)])}if(r.isSame(1)&&d(t,"Negate")&&t.op1){let a=s(t.op1);if(a)return n._fn("Cos",[a.mul(2)])}let u=a=>{if(!d(a,"Multiply"))return;let l=a.ops.findIndex(p=>p.isSame(-2));if(l<0)return;let f=a.ops.filter((p,m)=>m!==l);if(f.length!==1)return;let c=f[0];if(d(c,"Power")&&c.op1?.operator==="Sin"&&c.op2?.isSame(2)){let p=c.op1;if(d(p))return p.op1}};if(t.isSame(1)){let a=u(r);if(a)return n._fn("Cos",[a.mul(2)])}if(r.isSame(1)){let a=u(t);if(a)return n._fn("Cos",[a.mul(2)])}}}function mN(e){return qe(e,H6)}function Z6(e){let n=e.engine;if(e.operator!=="Tan"||!d(e))return;let t=e.op1;if(t){if(d(t,"Add")&&t.ops.length===2){let[r,i]=t.ops,o=n._fn("Tan",[r]),s=n._fn("Tan",[i]);return o.add(s).div(n.One.sub(o.mul(s)))}if(d(t,"Subtract")){let r=t.op1,i=t.op2;if(!r||!i)return;let o=n._fn("Tan",[r]),s=n._fn("Tan",[i]);return o.sub(s).div(n.One.add(o.mul(s)))}}}function dN(e){return qe(e,Z6)}var Y6=[{value:0,angle:[0,1]},{value:1/Math.sqrt(3),angle:[1,6]},{value:1,angle:[1,4]},{value:Math.sqrt(3),angle:[1,3]},{value:2-Math.sqrt(3),angle:[1,12]},{value:2+Math.sqrt(3),angle:[5,12]}];function Q6(e,n=1e-10){for(let t of Y6)if(Math.abs(t.value-e)<n)return t.angle}function J6(e){if(e.operator!=="Multiply"||!d(e))return;let n=e.ops;if(n.length<2)return;let t=[],r=1;for(let i of n)if(d(i,"Tan")&&i.op1)t.push(i.op1);else if(d(i,"Negate")&&i.op1?.operator==="Sqrt"){let o=i.op1;if(d(o)){let s=o.op1;if(C(s)&&typeof s.re=="number")r*=-Math.sqrt(s.re);else return}else return}else if(d(i,"Sqrt")){let o=i.op1;if(o&&C(o)&&typeof o.re=="number")r*=Math.sqrt(o.re);else return}else if(C(i)&&typeof i.re=="number")r*=i.re;else return;if(t.length===2)return[r,t[0],t[1]]}function rN(e){if(d(e,"Multiply")){let n=!1,t;for(let r of e.ops)if(w(r,"Pi"))n=!0;else if(C(r)&&typeof r.re=="number"){let i=r.re;for(let o=1;o<=36;o++){let s=Math.round(i*o);if(Math.abs(s/o-i)<1e-10){t=[s,o];break}}}if(n&&t)return t}if(w(e,"Pi"))return[1,1]}function W6(e){let n=e.engine;if(e.operator!=="Add"||!d(e))return;let t=e.ops;if(t.length!==3)return;let r=[],i;for(let x=0;x<t.length;x++){let v=t[x];if(d(v,"Tan")&&v.op1)r.push({arg:v.op1,index:x});else{let E=J6(v);E&&(i={coef:E[0],arg1:E[1],arg2:E[2],index:x})}}if(r.length!==2||!i)return;let[o,s]=r,u=o.arg.isSame(i.arg1)||o.arg.isSame(i.arg2),a=s.arg.isSame(i.arg1)||s.arg.isSame(i.arg2),l=o.arg.isSame(i.arg2)||o.arg.isSame(i.arg1),f=s.arg.isSame(i.arg2)||s.arg.isSame(i.arg1);if(!(u&&f||a&&l))return;let c=-i.coef;if(c<=0)return;let p=Q6(c);if(!p)return;let m=rN(o.arg),g=rN(s.arg);if(!m||!g)return;let b=iN(iN(m[1],g[1]),p[1]);if(m[0]*(b/m[1])+g[0]*(b/g[1])+p[0]*(b/p[1])!==b)return;let y=n._fn("Multiply",[n.number([p[0],p[1]]),n.symbol("Pi")]);return n._fn("Tan",[y]).neg()}function iN(e,n){return Math.abs(e*n)/X6(e,n)}function X6(e,n){for(e=Math.abs(e),n=Math.abs(n);n;){let t=n;n=e%n,e=t}return e}function gN(e){return qe(e,W6)}function K6(e){let n=e.engine;if(e.operator!=="Multiply"||!d(e))return;let t=e.ops;if(!(t.length<2))for(let r=0;r<t.length;r++)for(let i=r+1;i<t.length;i++){let o=t[r],s=t[i];if(!d(o)||!d(s))continue;let u=o.op1,a=s.op1;if(!(!u||!a)){if(o.operator==="Tan"&&s.operator==="Tan"){let l=o,f=s,c=n._fn("Cot",[u.add(a)]),p=n.One.sub(l.add(f).mul(c)),m=t.filter((g,b)=>b!==r&&b!==i);return m.length===0?p:p.mul(m.length===1?m[0]:n._fn("Multiply",m))}if(o.operator==="Cot"&&s.operator==="Cot"){let l=o,f=s,c=n._fn("Cot",[u.add(a)]),p=n.One.add(l.add(f).mul(c)),m=t.filter((g,b)=>b!==r&&b!==i);return m.length===0?p:p.mul(m.length===1?m[0]:n._fn("Multiply",m))}}}}function bN(e){return qe(e,K6)}function e8(e){let n=e.engine;if(e.operator!=="Power"||!d(e))return;let t=e.op1,r=e.op2;if(!t||!r||!r.isSame(2)||!d(t))return;let i=t.op1;if(i){if(t.operator==="Tan")return n._fn("Sec",[i]).pow(2).sub(n.One);if(t.operator==="Cot")return n._fn("Csc",[i]).pow(2).sub(n.One);if(t.operator==="Sec")return n.One.add(n._fn("Tan",[i]).pow(2));if(t.operator==="Csc")return n.One.add(n._fn("Cot",[i]).pow(2))}}function hN(e){return qe(e,e8)}function n8(e){let n=e.engine;if(e.operator!=="Add"||!d(e))return;let t=e.ops;if(t.length!==2)return;let r=p=>{let m=!1,g=p;if(d(p,"Negate")&&(m=!0,g=p.op1),!d(g)||g.operator!=="Power"||!g.op2?.isSame(2))return null;let b=g.op1;if(!d(b)||!b.op1)return null;let h=b.operator;return["Tan","Cot","Sec","Csc"].includes(h)?{func:h,arg:b.op1,neg:m}:null},i=r(t[0]),o=r(t[1]);if(i&&o&&i.arg.isSame(o.arg)){if(i.func==="Cot"&&!i.neg&&o.func==="Csc"&&o.neg||i.func==="Csc"&&i.neg&&o.func==="Cot"&&!o.neg)return n.number(-1);if(i.func==="Csc"&&!i.neg&&o.func==="Cot"&&o.neg||i.func==="Cot"&&i.neg&&o.func==="Csc"&&!o.neg)return n.One;if(i.func==="Tan"&&!i.neg&&o.func==="Sec"&&o.neg||i.func==="Sec"&&i.neg&&o.func==="Tan"&&!o.neg)return n.number(-1);if(i.func==="Sec"&&!i.neg&&o.func==="Tan"&&o.neg||i.func==="Tan"&&i.neg&&o.func==="Sec"&&!o.neg)return n.One}let s=-1,u=-1,a=!1;for(let p=0;p<t.length;p++){let m=t[p];m.isSame(1)?(s=p,a=!1):m.isSame(-1)||d(m,"Negate")&&m.op1?.isSame(1)?(s=p,a=!0):d(m,"Power")&&m.op2?.isSame(2)&&(u=p)}if(s<0||u<0)return;let l=t[u];if(!d(l))return;let f=l.op1;if(!f||!d(f))return;let c=f.op1;if(c){if(f.operator==="Sec"&&a)return n._fn("Tan",[c]).pow(2);if(f.operator==="Csc"&&a)return n._fn("Cot",[c]).pow(2);if(f.operator==="Tan"&&!a)return n._fn("Sec",[c]).pow(2);if(f.operator==="Cot"&&!a)return n._fn("Csc",[c]).pow(2)}}function kb(e){return qe(e,n8)}function t8(e){let n=e.engine;if(!d(e,"Multiply"))return[1,n.One,e];for(let t=0;t<e.ops.length;t++){let r=e.ops[t],i;if(C(r)&&typeof r.re=="number"&&r.im===0&&(i=r.re),i!==void 0){let o=e.ops.filter((u,a)=>a!==t),s=o.length===1?o[0]:n._fn("Multiply",o);return[i,r,s]}}return[1,n.One,e]}function r8(e){let n=e.engine;if(e.operator!=="Multiply"||!d(e))return;let t=e.ops;if(t.length<2)return;let r=[],i=[];for(let I of t)if(d(I,"Cos")&&I.op1){let A=t8(I.op1);A?r.push({arg:A[2],numericMult:A[0],symbolicCoeff:A[1]}):r.push({arg:I.op1,numericMult:1,symbolicCoeff:n.One})}else i.push(I);if(r.length<2)return;let o=r[0].arg,s=r.filter(I=>I.arg.isSame(o)),u=r.filter(I=>!I.arg.isSame(o));if(s.length<2)return;s.sort((I,A)=>I.numericMult-A.numericMult);let a=[],l=[],f=[...s],c=f[0].numericMult;if(c>0){a.push(f[0]);let I=new Set([0]),A=c*2;for(;;){let R=f.findIndex((T,D)=>!I.has(D)&&Math.abs(T.numericMult-A)<1e-10);if(R===-1)break;a.push(f[R]),I.add(R),A*=2}l=f.filter((R,T)=>!I.has(T))}if(a.length<2)return;let p=a[0].numericMult,m=[...i];for(let I of l){let A=I.symbolicCoeff.isSame(n.One)?I.arg:n._fn("Multiply",[I.symbolicCoeff,I.arg]);m.push(n._fn("Cos",[A]))}for(let I of u){let A=I.symbolicCoeff.isSame(n.One)?I.arg:n._fn("Multiply",[I.symbolicCoeff,I.arg]);m.push(n._fn("Cos",[A]))}let g=a.length,b=a[0].symbolicCoeff,h=Math.pow(2,g);if(w(o,"Pi")){let I=1/(h+1);if(Math.abs(p-I)<1e-10){let A=n.number([1,h]);return m.length===0?A:A.mul(m.length===1?m[0]:n._fn("Multiply",m))}}let y=b.mul(h),x=b.isSame(n.One)?o:n._fn("Multiply",[b,o]),v=n._fn("Multiply",[y,o]),E=n._fn("Sin",[v]),_=n._fn("Sin",[x]),M=E.div(n.number(h).mul(_));return m.length===0?M:M.mul(m.length===1?m[0]:n._fn("Multiply",m))}function yN(e){return qe(e,r8)}function i8(e){if(d(e,"Power")&&e.op2?.isSame(2)){let n=e.op1;if(d(n,"Sin")&&n.op1)return{func:"Sin",arg:n.op1,coef:1};if(d(n,"Cos")&&n.op1)return{func:"Cos",arg:n.op1,coef:1}}if(d(e,"Multiply")){let n=1,t;for(let r of e.ops)if(d(r,"Power")&&r.op2?.isSame(2)){let i=r.op1;(i?.operator==="Sin"||i?.operator==="Cos")&&(t=r)}else typeof r.re=="number"&&r.im===0&&(n*=r.re);if(d(t)){let r=t.op1;if(d(r,"Sin")&&r.op1)return{func:"Sin",arg:r.op1,coef:n};if(d(r,"Cos")&&r.op1)return{func:"Cos",arg:r.op1,coef:n}}}return null}function o8(e){let n=e.engine;if(e.operator!=="Add"||!d(e))return;let t=e.ops;if(t.length<2)return;let r=[],i=[],o=[];for(let s=0;s<t.length;s++){let u=t[s],a=i8(u);a?r.push({...a,index:s}):typeof u.re=="number"&&u.im===0&&C(u)?o.push({value:u.re,index:s}):i.push({expr:u,index:s})}for(let s=0;s<r.length;s++)for(let u=s+1;u<r.length;u++){let a=r[s],l=r[u];if(a.arg.isSame(l.arg)&&(a.func==="Sin"&&l.func==="Cos"||a.func==="Cos"&&l.func==="Sin")&&Math.abs(a.coef-l.coef)<1e-10){let f=a.coef,c=new Set([a.index,l.index]),p=t.filter((m,g)=>!c.has(g));return p.length===0?n.number(f):f===1?n._fn("Add",[n.One,...p]):n._fn("Add",[n.number(f),...p])}}for(let s of r)if(s.coef<0){let u=Math.abs(s.coef);for(let a of o)if(Math.abs(a.value-u)<1e-10){let l=new Set([s.index,a.index]),f=t.filter((m,g)=>!l.has(g)),c=s.func==="Sin"?"Cos":"Sin",p=n._fn(c,[s.arg]).pow(2).mul(u);return f.length===0?p:n._fn("Add",[p,...f])}}}function vN(e){return qe(e,o8)}var s8=new Set(["Sin","Cos","Tan","Cot","Sec","Csc"]);function Ob(e){let n=0;if(s8.has(e.operator)&&(n=1),d(e))for(let t of e.ops)n+=Ob(t);return n}function Lb(e){if(w(e)||C(e))return 1;let n=1;if(d(e))for(let t of e.ops)n+=Lb(t);return n}function xN(e){let n=Ob(e),t=Lb(e);return n*1e3+t}var EN=xN;function Db(e,n){if(e.length===0)throw new Error("bestOf called with empty array");if(e.length===1)return e[0];let t=e[0],r=n(t);for(let i=1;i<e.length;i++){let o=n(e[i]);o<r&&(t=e[i],r=o)}return t}function ju(e,n){let t=n(e);return t.isSame(e)?null:t}function _N(e,n){let t=ju(e,Rb),r=ju(e,lN),i=[e];return t&&i.push(t),r&&i.push(r),Db(i,n)}function u8(e,n){return _N(e,n)}function a8(e,n){let t=ju(e,cN),r=[e];if(t){r.push(t);let i=ju(t,ac);i&&r.push(i)}return Db(r,n)}function l8(e,n){let t=ju(e,ac),r=[e];return t&&r.push(t),Db(r,n)}function f8(e,n){let t=dN(e);return t=bN(t),t}function c8(e,n){let t=e;return t=pN(t),t=Tb(t),t=Rb(t),t=fN(t),t=Tb(t),t=a8(t,n),t=_N(t,n),t=uc(t),t=u8(t,n),t=uc(t),t=l8(t,n),t}function SN(e,n){if(!sc(e))return;let t=n?.measure??EN,r=n?.maxIterations??100,i=e,o=0,s=e,u=t(e),a=E=>{let _=t(E);_<u&&(s=E,u=_)};i=aN(i),a(i);let l=kb(i);a(l);let f=hN(i);a(f),i=s;let c=Pb(i);if(a(c),i=s,li(i,"Sec","Csc")&&(i=oN(i),s=i,u=t(i)),li(i,"Tan","Cot")){let E=f8(i,t);a(E),i=E}if(li(i,"Tan","Cot")&&(i=sN(i),a(i)),li(i,"Sin","Cos")){let E=uc(i);a(E),i=s}if(li(i,"Sin","Cos")){let E=t(i);for(;o<r;){o++;let _=c8(i,t),M=t(_);if(a(_),M>=E)break;i=_,E=M}}let p=uN(s);a(p);let m=mN(s);a(m);let g=yN(s);a(g);let b=Pb(s);a(b);let h=kb(s);a(h);let y=ac(s);a(y);let x=vN(s);a(x);let v=gN(s);if(a(v),s.operator==="Add"||s.operator==="Multiply"){let E=e.engine.expr(s.json);a(E)}if(!s.isSame(e))return{value:s,because:"fu"}}function $b(e,n){if(Array.isArray(e)){if(e[0]==="InvisibleOperator")for(let t=1;t+1<e.length;t++){let r=e[t],i=e[t+1];typeof r=="string"&&Array.isArray(i)&&i[0]==="Delimiter"&&n.add(r)}for(let t of e)$b(t,n);return}e!==null&&typeof e=="object"&&"fn"in e&&Array.isArray(e.fn)&&$b(e.fn,n)}var fi=class e{static _latexSyntaxFactory=null;True;False;Pi;E;Nothing;Zero;One;Half;NegativeOne;Two;I;NaN;PositiveInfinity;NegativeInfinity;ComplexInfinity;_numericConfiguration;_cacheStore=new Of;_runtimeState=new tc;_configurationLifecycle=new ec;_cost;_integrationProvider;_simplificationRules=new is([...f_]);_solveRules=new is([...My]);_harmonizationRules=new is([...Ty]);_compilationTargets=new Xf;_fuAlgorithm=SN;_commonSymbols={Pi:null,True:null,False:null,All:null,Nothing:null,None:null,Undefined:null,ImaginaryUnit:null,ExponentialE:null};_commonNumbers={"-5":null,"-4":null,"-3":null,"-2":null,2:null,3:null,4:null,5:null,6:null,7:null,8:null,9:null,10:null,11:null,12:null,36:null};_evalContextStack=[];get context(){return this._evalContextStack[this._evalContextStack.length-1]}get contextStack(){return[...this._evalContextStack]}set contextStack(n){this._evalContextStack=[...n]}__typeResolver;get _typeResolver(){return this.__typeResolver??=zS(this),this.__typeResolver}declareType(n,t,r){y_(this,n,t,r)}get trace(){return this._evalContextStack.map(n=>n.name).filter(n=>n!==void 0).reverse()}get _generation(){return this._configurationLifecycle.generation}set _generation(n){this._configurationLifecycle.generation=n}strict;static getStandardLibrary(n){return If(n)}constructor(n){if(n!==void 0&&typeof n!="object")throw Error("Unexpected argument");this.strict=!0,this._numericConfiguration=new nc({precision:n?.precision,tolerance:n?.tolerance??"auto",angularUnit:"rad"});let t=new rc(this),r=t.initializeCommonNumbers();this.Zero=r.Zero,this.One=r.One,this.Half=r.Half,this.NegativeOne=r.NegativeOne,this.Two=r.Two,this.NaN=r.NaN,this.PositiveInfinity=r.PositiveInfinity,this.NegativeInfinity=r.NegativeInfinity,this.I=r.I,this.ComplexInfinity=r.ComplexInfinity,this._reset(),this.pushScope(void 0,"system"),this.declareType("limits","expression<Limits>"),this.declareType("distribution","expression<NormalDistribution> | expression<BinomialDistribution> | expression<PoissonDistribution> | expression<UniformDistribution> | expression<ExponentialDistribution>",{alias:!0}),t.bootstrapLibraries(n?.libraries);let i=t.initializeCommonSymbolBindings(this._commonSymbols);this.True=i.True,this.False=i.False,this.Pi=i.Pi,this.E=i.E,this.Nothing=i.Nothing,this.pushScope(void 0,"global"),this._compilationTargets.registerDefaults(),n?.latexSyntax&&(this._latexSyntax=n.latexSyntax),n?.latexOptions&&(this._latexOptions={...n.latexOptions}),Zh(this)}toJSON(){return"[ComputeEngine]"}[Symbol.toStringTag]="ComputeEngine";_reset(){this._configurationLifecycle.reset({refreshNumericConstants:()=>{},resetCommonSymbols:()=>J_(this._commonSymbols),purgeCaches:()=>this._cacheStore.purgeValues()})}listenToConfigurationChange(n){return this._configurationLifecycle.listen(n)}_compile(n,t){return Qo(n,t)}getCompilationTarget(n){return this._compilationTargets.get(n)}listCompilationTargets(){return this._compilationTargets.list()}registerCompilationTarget(n,t){this._compilationTargets.register(n,t)}unregisterCompilationTarget(n){this._compilationTargets.unregister(n)}get precision(){return this._numericConfiguration.precision}set precision(n){this._numericConfiguration.setPrecision(n)&&this._reset()}get angularUnit(){return this._numericConfiguration.angularUnit}set angularUnit(n){this._numericConfiguration.setAngularUnit(n)&&this._reset()}get timeLimit(){return this._runtimeState.timeLimit}set timeLimit(n){this._runtimeState.timeLimit=n}get deadline(){return this._runtimeState.deadline}set deadline(n){this._runtimeState.deadline=n}get _deadline(){return this._runtimeState.deadline}set _deadline(n){this._runtimeState.deadline=n}get _timeRemaining(){return this._runtimeState.timeRemaining}get iterationLimit(){return this._runtimeState.iterationLimit}set iterationLimit(n){this._runtimeState.iterationLimit=n}get recursionLimit(){return this._runtimeState.recursionLimit}set recursionLimit(n){this._runtimeState.recursionLimit=n}_enterRecursion(){this._runtimeState.enterRecursion()}_exitRecursion(){this._runtimeState.exitRecursion()}get maxCollectionSize(){return this._runtimeState.maxCollectionSize}set maxCollectionSize(n){this._runtimeState.maxCollectionSize=n}get _isVerifying(){return this._runtimeState.isVerifying}set _isVerifying(n){this._runtimeState.isVerifying=n}get isVerifying(){return this._runtimeState.isVerifying}get tolerance(){return this._numericConfiguration.tolerance}set tolerance(n){this._numericConfiguration.setTolerance(n)}chop(n){let t=this._numericConfiguration.tolerance;return typeof n=="number"?Math.abs(n)<=t?0:n:n instanceof S?n.isPositive()&&n.lte(this._numericConfiguration.bignumTolerance)||n.isNegative()&&n.gte(this._numericConfiguration.negBignumTolerance)||n.isZero()?0:n:n instanceof L&&Math.abs(n.re)<=t&&Math.abs(n.im)<=t?0:n}bignum(n){return this._numericConfiguration.bignum(n)}complex(n,t){return n instanceof S&&(n=n.toNumber()),t instanceof S&&(t=t.toNumber()),new L(n,t)}_numericValue(n){if(n instanceof mn)return n.asExact??n;let t=this._numericConfiguration.precision>Ui?r=>new Fh(r):r=>new Rh(r);if(typeof n=="number")return Number.isInteger(n)?new Ge(n,t):t(n);if(typeof n=="bigint")return new Ge(n,t);if(Cr(n))return new Ge({rational:n},t);if(n instanceof S){if(n.isInteger()){let r=ji(n.toString());if(r!==null)return new Ge(r,t)}return t(n)}if(n instanceof L)return n.im===0?this._numericValue(n.re):t({re:n.re,im:n.im});if("im"in n||"re"in n)return n.im!==void 0&&n.im!==0?t(n):n.re instanceof S&&n.re.isInteger()?new Ge({rational:[ji(n.re.toString()),BigInt(1)]},t):typeof n.re=="number"&&Number.isInteger(n.re)?new Ge({rational:[n.re,1]},t):t(n);if("radical"in n||"rational"in n){if(n.radical!==void 0&&(!Number.isInteger(n.radical)||n.radical>=cn))throw Error("Unexpected value for radical part:"+n.radical);return n.rational&&ta(n.rational)&&(!Number.isInteger(n.rational[0])||!Number.isInteger(n.rational[1]))?t(n):new Ge(n,t)}throw Error(`Unexpected value: ${typeof n=="object"?JSON.stringify(n):String(n)}`)}get costFunction(){return this._cost??M2}set costFunction(n){this._cost=typeof n=="function"?n:void 0}get simplificationRules(){return this._simplificationRules.rules}set simplificationRules(n){this._simplificationRules.rules=n,this._cacheStore.invalidate("standard-simplification-rules")}get solveRules(){return this._solveRules.rules}set solveRules(n){this._solveRules.rules=n,this._cacheStore.invalidate("univariate-roots-rules")}get harmonizationRules(){return this._harmonizationRules.rules}set harmonizationRules(n){this._harmonizationRules.rules=n,this._cacheStore.invalidate("harmonization-rules")}lookupDefinition(n){return m_(this,n)}normalizeIdentifier(n){if(!n)return"";if(Bn(n))return n;this.pushScope();try{let t=this.parse(n);if(w(t))return t.symbol}finally{this.popScope()}return""}operatorInfo(n){let t=this.lookupDefinition(n);if(!t||!ae(t))return;let r=t.operator;return{kind:r.evaluate||r.collection?"function":"opaque",signature:r.signature}}symbolInfo(n){let t=this.lookupDefinition(n);if(!t||!Q(t))return;let r=t.value;return{kind:r.isConstant?"constant":"variable",type:r.type}}functionProperties(n){return Oi(this,n)}_declareSymbolValue(n,t,r){return d_(this,n,t,r)}_declareSymbolOperator(n,t,r){return g_(this,n,t,r)}pushScope(n,t){E_(this,n,t)}popScope(){__(this)}_pushEvalContext(n,t){qd(this,n,t)}_popEvalContext(){Bd(this)}_inScope(n,t){return S_(this,n,t)}_printStack(n){N_(this,n)}_shadowedParameterStack=[];_pushShadowedParameters(n){this._shadowedParameterStack.push(new Set(n))}_popShadowedParameters(){this._shadowedParameterStack.pop()}_isShadowedParameter(n){let t=this._shadowedParameterStack;for(let r=t.length-1;r>=0;r--)if(t[r].has(n))return!0;return!1}_getSymbolValue(n){return b_(this,n)}_setSymbolValue(n,t){h_(this,n,t)}declare(n,t,r){return v_(this,n,t,r)}declareSequence(n,t){return q_(this,n,t)}getSequenceStatus(n){return B_(this,n)}getSequence(n){return V_(this,n)}listSequences(){return z_(this)}isSequence(n){return j_(this,n)}clearSequenceCache(n){U_(this,n)}getSequenceCache(n){return G_(this,n)}getSequenceTerms(n,t,r,i){return H_(this,n,t,r,i)}lookupOEIS(n,t){return Z_(this,n,t)}checkSequenceOEIS(n,t,r){return Y_(this,n,t,r)}assign(n,t){return x_(this,n,t)}_shouldContinueExecution(){return this._runtimeState.shouldContinueExecution()}_checkContinueExecution(){if(!this._shouldContinueExecution())throw new Error("timeout")}_cache(n,t,r){return this._cacheStore.getOrBuild(n,t,r)}expr(n,t){let{canonical:r,structural:i}=Rf(t);return Pn(this,n,{canonical:r,structural:i,scope:t?.scope})}box(n,t){return this.expr(n,t)}_latexSyntax;get latexSyntax(){return!this._latexSyntax&&e._latexSyntaxFactory&&(this._latexSyntax=e._latexSyntaxFactory()),this._latexSyntax}_requireLatexSyntax(){if(!this._latexSyntax&&e._latexSyntaxFactory&&(this._latexSyntax=e._latexSyntaxFactory()),!this._latexSyntax)throw new Error("LatexSyntax not available. Pass a LatexSyntax instance to the ComputeEngine constructor.");return this._latexSyntax}_latexOptions={};get latexOptions(){return this._latexOptions}set latexOptions(n){this._latexOptions={...n}}parse(n,t){if(n==null)return null;if(typeof n!="string")throw Error("ce.parse(): expected a LaTeX string");let r=this._requireLatexSyntax(),{form:i,canonical:o,structural:s,...u}=t??{},a=r.parse(n,{getSymbolType:l=>{let f=this.lookupDefinition(l);return f?ae(f)?f.operator.signature:Q(f)?f.value.type:Z.unknown:Z.unknown},hasSubscriptEvaluate:l=>{let f=this.lookupDefinition(l);return!!(Q(f)&&f.value.subscriptEvaluate)},tolerance:this.tolerance,...this._latexOptions,...u});return a===null?null:Pn(this,a,Rf({form:i,canonical:o,structural:s}))}appliedNonFunctions(n){let t=this.latexSyntax;if(!t)return[];let r=t.parse(n,{getSymbolType:o=>{let s=this.lookupDefinition(o);return s?ae(s)?s.operator.signature:Q(s)?s.value.type:Z.unknown:Z.unknown},...this._latexOptions}),i=new Set;return r!==null&&$b(r,i),Array.from(i).sort()}function(n,t,r){let{canonical:i,structural:o}=Rf(r);return Af(this,n,t,{metadata:r?.metadata,canonical:i,structural:o,scope:r?.scope})}error(n,t){return ic(this,n,t)}typeError(n,t,r){return jS(this,n,t,r)}hold(n){return this._fn("Hold",[this.expr(n,{form:"raw"})])}tuple(...n){return new Pe(this,"Tuple",n.map(t=>typeof t=="number"?this.number(t):t.canonical),{canonical:!0})}type(n){return n instanceof Z?n:new Z(n,this._typeResolver)}string(n,t){return new Kr(this,n,t)}symbol(n,t){return FS(this,this._commonSymbols,n,t)}number(n,t){return qS(this,this._commonNumbers,n,t)}rules(n,t){return Xs(this,n,t)}getRuleSet(n){if(n??="standard-simplification",n==="standard-simplification"){this._simplificationRules.hasMutatedSinceLastCache()&&this._cacheStore.invalidate("standard-simplification-rules");let t=this._cache("standard-simplification-rules",()=>{let i=Xs(this,this._simplificationRules.rules,{canonical:!0}).rules.filter(o=>o.purpose!=="expand");return{rules:iy(i)}});return this._simplificationRules.markCached(),t}if(n==="solve-univariate"){this._solveRules.hasMutatedSinceLastCache()&&this._cacheStore.invalidate("univariate-roots-rules");let t=this._cache("univariate-roots-rules",()=>Xs(this,this._solveRules.rules));return this._solveRules.markCached(),t}if(n==="harmonization"){this._harmonizationRules.hasMutatedSinceLastCache()&&this._cacheStore.invalidate("harmonization-rules");let t=this._cache("harmonization-rules",()=>Xs(this,this._harmonizationRules.rules));return this._harmonizationRules.markCached(),t}}_fn(n,t,r){let i=r?.canonical??!0;return new Pe(this,n,t,{...r,canonical:i})}ask(n){return Gd(this,n)}verify(n){return Hd(this,n)}assume(n){return O_(this,n)}forget(n){Zd(this,n)}};oc(()=>new fi);var YU="0.69.1";fi._latexSyntaxFactory=()=>new aa;oc(()=>new fi({latexSyntax:new aa}));globalThis[Symbol.for("io.cortexjs.compute-engine")]={ComputeEngine:fi.prototype.constructor,version:"0.69.1"};export{LN as ALGEBRA_DICTIONARY,$N as ARITHMETIC_DICTIONARY,P as BaseCompiler,S as BigDecimal,BN as CALCULUS_DICTIONARY,FN as COMPLEX_DICTIONARY,kN as CORE_DICTIONARY,Oe as CancellationError,fi as ComputeEngine,ii as GLSLTarget,zi as GPUShaderTarget,PN as INEQUALITIES_DICTIONARY,rs as IntervalJavaScriptTarget,Xo as JavaScriptTarget,Ic as LATEX_DICTIONARY,VN as LINEAR_ALGEBRA_DICTIONARY,TN as LOGIC_DICTIONARY,aa as LatexSyntax,YS as N,UN as OTHERS_DICTIONARY,GN as PHYSICS_DICTIONARY,ns as PythonTarget,DN as SETS_DICTIONARY,zN as STATISTICS_DICTIONARY,ON as SYMBOLS_DICTIONARY,qN as TRIGONOMETRY_DICTIONARY,jN as UNITS_DICTIONARY,Du as WGSLTarget,JS as assign,nN as compile,QS as declare,ZS as evaluate,WS as expand,KS as expandAll,GS as expr,eN as factor,ui as getDefaultEngine,MN as isCollection,ls as isDictionary,yc as isExpression,d as isFunction,AN as isIndexedCollection,C as isNumber,B as isString,w as isSymbol,IN as isTensor,sa as labelFor,_e as numericValue,US as parse,Kt as parseLatex,RN as registerStepLabels,Ji as serializeLatex,HS as simplify,XS as solve,YU as version};
|