@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,4 +1,4 @@
|
|
|
1
|
-
/** LatexSyntax 0.69.
|
|
1
|
+
/** LatexSyntax 0.69.1 */
|
|
2
2
|
(function(global,factory){typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'],factory):(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.LatexSyntax = {}));})(this, (function (exports) { 'use strict';
|
|
3
3
|
"use strict";
|
|
4
4
|
var LatexSyntax = (() => {
|
|
@@ -18459,7 +18459,7 @@ var LatexSyntax = (() => {
|
|
|
18459
18459
|
}
|
|
18460
18460
|
|
|
18461
18461
|
// src/latex-syntax.ts
|
|
18462
|
-
var version = "0.69.
|
|
18462
|
+
var version = "0.69.1";
|
|
18463
18463
|
return __toCommonJS(latex_syntax_exports);
|
|
18464
18464
|
})();
|
|
18465
18465
|
Object.assign(exports, LatexSyntax); Object.defineProperty(exports, '__esModule', { value: true });}));
|
package/dist/math-json.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Compute Engine 0.69.
|
|
1
|
+
/** Compute Engine 0.69.1 */
|
|
2
2
|
|
|
3
3
|
// src/math-json/utils.ts
|
|
4
4
|
function isNumberObject(expr) {
|
|
@@ -117,7 +117,7 @@ function expressionToDictionaryValue(expr) {
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
// src/math-json.ts
|
|
120
|
-
var version = "0.69.
|
|
120
|
+
var version = "0.69.1";
|
|
121
121
|
export {
|
|
122
122
|
dictionaryFromExpression,
|
|
123
123
|
isFunctionObject,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/** Compute Engine 0.69.
|
|
2
|
-
function b(n){return n!==null&&typeof n=="object"&&"num"in n}function u(n){return n!==null&&typeof n=="object"&&"sym"in n}function f(n){return n!==null&&typeof n=="object"&&"str"in n}function d(n){return n!==null&&typeof n=="object"&&"dict"in n&&typeof n.dict=="object"&&!Array.isArray(n.dict)&&n.dict!==null}function r(n){return n!==null&&typeof n=="object"&&"fn"in n&&Array.isArray(n.fn)&&n.fn.length>0&&typeof n.fn[0]=="string"}function c(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"?null:n.length>=2&&n.at(0)==="'"&&n.at(-1)==="'"?n.substring(1,n.length-1):g(n)||y(n)?null:n}function s(n){return Array.isArray(n)?n[0]:n==null?"":r(n)?n.fn[0]:""}function h(n){return Array.isArray(n)?n.slice(1):n!==void 0&&r(n)?n.fn.slice(1):[]}function M(n,t){return Array.isArray(n)?n[t]??null:n===null||!r(n)?null:n.fn[t]??null}function J(n){return typeof n=="string"&&y(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:u(n)?n.sym:null}function l(n){let t=s(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,o]=h(n),e=c(i);return e?[e,o??"Nothing"]:null}return null}function m(n){if(n===null)return null;if(d(n))return n;let t=l(n);if(t)return{dict:{[t[0]]:a(t[1])??"Nothing"}};if(s(n)==="Dictionary"){let i={};for(let o of h(n)){let e=l(o);e&&(i[e[0]]=a(e[1])??"Nothing")}return{dict:i}}return null}function E(n,t){let i=null;if(Array.isArray(n)&&(i=n),r(n)&&(i=n.fn),i===null)return[];let o=1,e=[];for(;o<i.length;)e.push(t(i[o])),o+=1;return e}function g(n){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(n)||/^[+-]?(0|[1-9][0-9]*)(\.([0-9]+(\([0-9]+\))?|\([0-9]+\)))?([eE][+-]?[0-9]+)?$/.test(n)}function y(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function a(n){return n==null?null:f(n)?n.str:b(n)?parseFloat(n.num):u(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var O="0.69.
|
|
1
|
+
/** Compute Engine 0.69.1 */
|
|
2
|
+
function b(n){return n!==null&&typeof n=="object"&&"num"in n}function u(n){return n!==null&&typeof n=="object"&&"sym"in n}function f(n){return n!==null&&typeof n=="object"&&"str"in n}function d(n){return n!==null&&typeof n=="object"&&"dict"in n&&typeof n.dict=="object"&&!Array.isArray(n.dict)&&n.dict!==null}function r(n){return n!==null&&typeof n=="object"&&"fn"in n&&Array.isArray(n.fn)&&n.fn.length>0&&typeof n.fn[0]=="string"}function c(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"?null:n.length>=2&&n.at(0)==="'"&&n.at(-1)==="'"?n.substring(1,n.length-1):g(n)||y(n)?null:n}function s(n){return Array.isArray(n)?n[0]:n==null?"":r(n)?n.fn[0]:""}function h(n){return Array.isArray(n)?n.slice(1):n!==void 0&&r(n)?n.fn.slice(1):[]}function M(n,t){return Array.isArray(n)?n[t]??null:n===null||!r(n)?null:n.fn[t]??null}function J(n){return typeof n=="string"&&y(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:u(n)?n.sym:null}function l(n){let t=s(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,o]=h(n),e=c(i);return e?[e,o??"Nothing"]:null}return null}function m(n){if(n===null)return null;if(d(n))return n;let t=l(n);if(t)return{dict:{[t[0]]:a(t[1])??"Nothing"}};if(s(n)==="Dictionary"){let i={};for(let o of h(n)){let e=l(o);e&&(i[e[0]]=a(e[1])??"Nothing")}return{dict:i}}return null}function E(n,t){let i=null;if(Array.isArray(n)&&(i=n),r(n)&&(i=n.fn),i===null)return[];let o=1,e=[];for(;o<i.length;)e.push(t(i[o])),o+=1;return e}function g(n){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(n)||/^[+-]?(0|[1-9][0-9]*)(\.([0-9]+(\([0-9]+\))?|\([0-9]+\)))?([eE][+-]?[0-9]+)?$/.test(n)}function y(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function a(n){return n==null?null:f(n)?n.str:b(n)?parseFloat(n.num):u(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var O="0.69.1";export{m as dictionaryFromExpression,r as isFunctionObject,f as isStringObject,u as isSymbolObject,E as mapArgs,M as operand,s as operator,c as stringValue,J as symbol,O as version};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** MathJSON 0.69.
|
|
1
|
+
/** MathJSON 0.69.1 */
|
|
2
2
|
(function(global,factory){typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'],factory):(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.MathJson = {}));})(this, (function (exports) { 'use strict';
|
|
3
|
-
"use strict";var MathJson=(()=>{var l=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var O=(n,t)=>{for(var i in t)l(n,i,{get:t[i],enumerable:!0})},A=(n,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of g(t))!j.call(n,e)&&e!==i&&l(n,e,{get:()=>t[e],enumerable:!(o=E(t,e))||o.enumerable});return n};var S=n=>A(l({},"__esModule",{value:!0}),n);var F={};O(F,{dictionaryFromExpression:()=>M,isFunctionObject:()=>r,isStringObject:()=>a,isSymbolObject:()=>u,mapArgs:()=>J,operand:()=>b,operator:()=>s,stringValue:()=>f,symbol:()=>d,version:()=>k});function N(n){return n!==null&&typeof n=="object"&&"num"in n}function u(n){return n!==null&&typeof n=="object"&&"sym"in n}function a(n){return n!==null&&typeof n=="object"&&"str"in n}function p(n){return n!==null&&typeof n=="object"&&"dict"in n&&typeof n.dict=="object"&&!Array.isArray(n.dict)&&n.dict!==null}function r(n){return n!==null&&typeof n=="object"&&"fn"in n&&Array.isArray(n.fn)&&n.fn.length>0&&typeof n.fn[0]=="string"}function f(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"?null:n.length>=2&&n.at(0)==="'"&&n.at(-1)==="'"?n.substring(1,n.length-1):D(n)||m(n)?null:n}function s(n){return Array.isArray(n)?n[0]:n==null?"":r(n)?n.fn[0]:""}function y(n){return Array.isArray(n)?n.slice(1):n!==void 0&&r(n)?n.fn.slice(1):[]}function b(n,t){return Array.isArray(n)?n[t]??null:n===null||!r(n)?null:n.fn[t]??null}function d(n){return typeof n=="string"&&m(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:u(n)?n.sym:null}function c(n){let t=s(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,o]=y(n),e=f(i);return e?[e,o??"Nothing"]:null}return null}function M(n){if(n===null)return null;if(p(n))return n;let t=c(n);if(t)return{dict:{[t[0]]:h(t[1])??"Nothing"}};if(s(n)==="Dictionary"){let i={};for(let o of y(n)){let e=c(o);e&&(i[e[0]]=h(e[1])??"Nothing")}return{dict:i}}return null}function J(n,t){let i=null;if(Array.isArray(n)&&(i=n),r(n)&&(i=n.fn),i===null)return[];let o=1,e=[];for(;o<i.length;)e.push(t(i[o])),o+=1;return e}function D(n){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(n)||/^[+-]?(0|[1-9][0-9]*)(\.([0-9]+(\([0-9]+\))?|\([0-9]+\)))?([eE][+-]?[0-9]+)?$/.test(n)}function m(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function h(n){return n==null?null:a(n)?n.str:N(n)?parseFloat(n.num):u(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var k="0.69.
|
|
3
|
+
"use strict";var MathJson=(()=>{var l=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var O=(n,t)=>{for(var i in t)l(n,i,{get:t[i],enumerable:!0})},A=(n,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of g(t))!j.call(n,e)&&e!==i&&l(n,e,{get:()=>t[e],enumerable:!(o=E(t,e))||o.enumerable});return n};var S=n=>A(l({},"__esModule",{value:!0}),n);var F={};O(F,{dictionaryFromExpression:()=>M,isFunctionObject:()=>r,isStringObject:()=>a,isSymbolObject:()=>u,mapArgs:()=>J,operand:()=>b,operator:()=>s,stringValue:()=>f,symbol:()=>d,version:()=>k});function N(n){return n!==null&&typeof n=="object"&&"num"in n}function u(n){return n!==null&&typeof n=="object"&&"sym"in n}function a(n){return n!==null&&typeof n=="object"&&"str"in n}function p(n){return n!==null&&typeof n=="object"&&"dict"in n&&typeof n.dict=="object"&&!Array.isArray(n.dict)&&n.dict!==null}function r(n){return n!==null&&typeof n=="object"&&"fn"in n&&Array.isArray(n.fn)&&n.fn.length>0&&typeof n.fn[0]=="string"}function f(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"?null:n.length>=2&&n.at(0)==="'"&&n.at(-1)==="'"?n.substring(1,n.length-1):D(n)||m(n)?null:n}function s(n){return Array.isArray(n)?n[0]:n==null?"":r(n)?n.fn[0]:""}function y(n){return Array.isArray(n)?n.slice(1):n!==void 0&&r(n)?n.fn.slice(1):[]}function b(n,t){return Array.isArray(n)?n[t]??null:n===null||!r(n)?null:n.fn[t]??null}function d(n){return typeof n=="string"&&m(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:u(n)?n.sym:null}function c(n){let t=s(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,o]=y(n),e=f(i);return e?[e,o??"Nothing"]:null}return null}function M(n){if(n===null)return null;if(p(n))return n;let t=c(n);if(t)return{dict:{[t[0]]:h(t[1])??"Nothing"}};if(s(n)==="Dictionary"){let i={};for(let o of y(n)){let e=c(o);e&&(i[e[0]]=h(e[1])??"Nothing")}return{dict:i}}return null}function J(n,t){let i=null;if(Array.isArray(n)&&(i=n),r(n)&&(i=n.fn),i===null)return[];let o=1,e=[];for(;o<i.length;)e.push(t(i[o])),o+=1;return e}function D(n){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(n)||/^[+-]?(0|[1-9][0-9]*)(\.([0-9]+(\([0-9]+\))?|\([0-9]+\)))?([eE][+-]?[0-9]+)?$/.test(n)}function m(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function h(n){return n==null?null:a(n)?n.str:N(n)?parseFloat(n.num):u(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var k="0.69.1";return S(F);})();
|
|
4
4
|
Object.assign(exports, MathJson); Object.defineProperty(exports, '__esModule', { value: true });}));
|
package/dist/math-json.umd.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** MathJSON 0.69.
|
|
1
|
+
/** MathJSON 0.69.1 */
|
|
2
2
|
(function(global,factory){typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'],factory):(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.MathJson = {}));})(this, (function (exports) { 'use strict';
|
|
3
3
|
"use strict";
|
|
4
4
|
var MathJson = (() => {
|
|
@@ -152,7 +152,7 @@ var MathJson = (() => {
|
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
// src/math-json.ts
|
|
155
|
-
var version = "0.69.
|
|
155
|
+
var version = "0.69.1";
|
|
156
156
|
return __toCommonJS(math_json_exports);
|
|
157
157
|
})();
|
|
158
158
|
Object.assign(exports, MathJson); Object.defineProperty(exports, '__esModule', { value: true });}));
|
package/dist/numerics.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Compute Engine 0.69.
|
|
1
|
+
/** Compute Engine 0.69.1 */
|
|
2
2
|
|
|
3
3
|
// src/compute-engine/numeric-value/types.ts
|
|
4
4
|
var NumericValue = class {
|
|
@@ -11312,7 +11312,7 @@ var C_ONE = new Complex(1, 0);
|
|
|
11312
11312
|
var C_ZERO = new Complex(0, 0);
|
|
11313
11313
|
|
|
11314
11314
|
// src/numerics.ts
|
|
11315
|
-
var version = "0.69.
|
|
11315
|
+
var version = "0.69.1";
|
|
11316
11316
|
export {
|
|
11317
11317
|
BigNumericValue,
|
|
11318
11318
|
DEFAULT_PRECISION,
|
package/dist/numerics.min.esm.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/** Compute Engine 0.69.
|
|
1
|
+
/** Compute Engine 0.69.1 */
|
|
2
2
|
var F=class{get bignumRe(){}im;get bignumIm(){}isZeroWithTolerance(e){return this.isZero}valueOf(){return this.im===0?this.bignumRe?this.bignumRe.toNumber():this.re:this.toString()}[Symbol.toPrimitive](e){return e==="string"?this.toString():this.valueOf()}toJSON(){if(this.im===0){let e=this.re;if(Number.isFinite(e))return e}return this.N().toString()}print(){let e=console.log;e?.(this.toString())}};var mt=new Map,Cn=1e5;function M(i){if(i<=Cn){let e=mt.get(i);return e===void 0&&(e=10n**BigInt(i),mt.set(i,e)),e}return 10n**BigInt(i)}function X(i){if(i<0n&&(i=-i),i===0n)return 0;let e=0,t=1;for(;i>>BigInt(t)>0n;)t*=2;for(let n=t>>1;n>=1;n>>=1)i>>BigInt(n)>0n&&(e+=n,i>>=BigInt(n));return e+1}function dt(i,e,t){return i*e>>BigInt(t)}function ht(i,e,t){return(i<<BigInt(t))/e}function qe(i,e){if(i===0n)return 0n;if(i<0n)throw new RangeError("fpsqrt: negative input");let t=i<<BigInt(e),n;if(e<_n){n=Ni(t);let a;do a=n,n=(n+t/n)/2n;while(q(n-a)>1n)}else n=pi(t,X(t));let r=(n+t/n)/2n,s=q(n*n-t);return q(r*r-t)<s?r:n}function Ni(i){let e=X(i);if(e<=1023){let o=Math.sqrt(Number(i));if(Number.isFinite(o)&&o>=1)return BigInt(Math.floor(o))}let t=e-52,n=Number(i>>BigInt(t)),r=Math.sqrt(n);t&1&&(r*=Math.SQRT2);let s=BigInt(Math.round(r))<<BigInt(t>>1);return s>0n?s:1n}var Nt=1024,_n=640;function pi(i,e){if(e<Nt){let s=Ni(i),o;do o=s,s=(s+i/s)/2n;while(q(s-o)>1n);for(;s*s>i;)s-=1n;for(;(s+1n)*(s+1n)<=i;)s+=1n;return s}let t=e>>2<<1,n=pi(i>>BigInt(t),e-t)<<BigInt(t>>1),r;do r=n,n=(n+i/n)/2n;while(q(n-r)>1n);for(;n*n>i;)n-=1n;for(;(n+1n)*(n+1n)<=i;)n+=1n;return n}function q(i){return i<0n?-i:i}function le(i){if(i===0n)return 1;if(i<0n&&(i=-i),i<0x20000000000000n){let n=Number(i);return n<1e8?n<1e4?n<100?n<10?1:2:n<1e3?3:4:n<1e6?n<1e5?5:6:n<1e7?7:8:n<1e12?n<1e10?n<1e9?9:10:n<1e11?11:12:n<1e14?n<1e13?13:14:n<1e15?15:16}let e=i.toString(16).length*4,t=Math.ceil(e*.30102999566398);for(;i<M(t-1);)t--;for(;i>=M(t);)t++;return t}var Vn=.7;function gi(i,e){if(i===0n)return 1n<<BigInt(e);let t=Math.round(Vn*Math.sqrt(e)),n=t+8,r=e+n,s=BigInt(r),o=1n<<s,a=BigInt(n),c=i<<a,l=c<0n,f=l?-c:c,m=Math.max(0,X(f)-r+t);f>>=BigInt(m),c=l?-f:f;let d=o,h=c;d+=h;for(let N=2;h=(h*c>>s)/BigInt(N),h!==0n;N++)d+=h;for(let N=0;N<m;N++)d=d*d>>s;return d+(1n<<a-1n)>>a}var qn=4e4;function bi(i,e){let t=1n<<BigInt(e);if(i<=0n)throw new RangeError("fpln: input must be positive");return i===t?0n:e>=qn?Gn(i,e):Zn(i,e)}function Zn(i,e){let t=BigInt(e),n=1n<<t,r=52,s=e-r,o;if(s>0){let N=Number(i>>BigInt(s))/2**r;o=BigInt(Math.round(Math.log(N)*2**r))<<BigInt(s)}else{let N=Number(i)/Number(n);o=BigInt(Math.round(Math.log(N)*Number(n)))}let a=i*gi(-o,e)>>t,l=(a-n<<t)/(a+n),f=l<0n?-l:l,m=f*f>>t,d=f,h=f;for(let N=3n;d=d*m>>t,d!==0n;N+=2n)h+=d/N;return o+(l<0n?-2n:2n)*h}var ie=null;function Ln(i){if(ie!==null){if(ie.bits===i)return ie.value;if(ie.bits>i)return ie.value>>BigInt(ie.bits-i)}let e=Math.ceil(i*Ze)+12,t;if(e<=ft.length){let n=ft.slice(0,e);t=(BigInt(n)<<BigInt(i))/M(n.length)}else t=Xn(i);return ie={bits:i,value:t},t}function Gn(i,e){let t=BigInt(e),n=X(i)-e,r=Math.max(2,Math.ceil(e/2+4-n)),s=i<<BigInt(r-2),o=1n<<t,a=s;for(;q(o-a)>1n;){let l=o+a>>1n;a=Be(o*a),o=l}return Ve(e)*s/(2n*o)-BigInt(r)*Ln(e)}var ce="314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635",Ze=Math.log10(2),ft="693147180559945309417232121458176568075500134360255254120680009493393621969694715605863326996418687542001481020570685733685520235758130557032670751635075961930727570828371435190307038623891673471123350115364497955239120475172681574932065155524734139525882950453007095326366642654104239157814952043740430385500801944170641671518644712839968171784546957026271631064546150257207402481637773389638550695260668341137273873722928956493547025762652098859693201965058554764703306793654432547632744951250406069438147104689946506220167720424524529612687946546193165174681392672504103802546259656869144192871608293803172714367782654877566485085674077648451464439940461422603193096735402574446070308096085047486638523138181676751438667476647890881437141985494231519973548803751658612753529166100071053558249879414729509293113897155998205654392871700072180857610252368892132449713893203784393530887748259701715591070882368362758984258918535302436342143670611892367891923723146723217205340164925687274778234453534764811494186423867767744060695626573796008670762571991847340226514628379048830620330611446300737194890027436439650025809365194430411911506080948793067865158870900605203468429736193841289652556539686022194122924207574321757489097706752687115817051137009158942665478595964890653058460258668382940022833005382074005677053046787001841624044188332327983863490015631218895606505531512721993983320307514084260914790012651682434438935724727882054862715527418772430024897945401961872339808608316648114909306675193393128904316413706813977764981769748689038877899912965036192707108892641052309247839173735012298424204995689359922066022046549415106139187885744245577510206837030866619480896412186807790208181588580001688115973056186676199187395200766719214592236720602539595436541655311295175989940056000366513567569051245926825743946483168332624901803824240824231452306140963805700702551387702681785163069025513703234053802145019015374029509942262995779647427138157363801729873940704242179972266962979939312706935747240493386530879758721699645129446491883771156701678598804981838896784134938314014073166472765327635919233511233389338709513209059272185471328975470797891384445466676192702885533423429899321803769154973340267546758873236778342916191810430116091695265547859732891763545556742863877463987101912431754255888301206779210280341206879759143081283307230300883494705792496591005860012341561757413272465943",Yn=13591409n,Un=545140134n,jn=10939058860032000n,Jn=47.11;function _e(i,e){if(e-i===1){let l,f;if(i===0)l=1n,f=1n;else{l=BigInt(6*i-5)*BigInt(2*i-1)*BigInt(6*i-1);let d=BigInt(i);f=d*d*d*jn}let m=l*(Yn+Un*BigInt(i));return i&1&&(m=-m),[l,f,m]}let t=i+e>>1,[n,r,s]=_e(i,t),[o,a,c]=_e(t,e);return[n*o,r*a,a*s+n*c]}function pt(i){return Math.max(2,Math.floor(i/Jn)+3)}function $n(i){let[,e,t]=_e(0,pt(i)),n=1n<<BigInt(i),r=Be(10005n*n*n);return e*426880n*r/t}function gt(i){let[,e,t]=_e(0,pt(Math.ceil(i/Ze))),n=M(i),r=Be(10005n*n*n);return e*426880n*r/t}function hi(i,e){if(e-i===1){let l=i===0?1n:BigInt(2*i-1),f=i===0?1n:9n*BigInt(2*i+1);return[l,f,l]}let t=i+e>>1,[n,r,s]=hi(i,t),[o,a,c]=hi(t,e);return[n*o,r*a,a*s+n*c]}function Xn(i){let e=Math.max(2,Math.ceil(i/3.169925)+5),[,t,n]=hi(0,e);return(n<<BigInt(i+1))/(3n*t)}function Be(i){if(i<0n)throw new RangeError("bigintSqrt: negative input");if(i===0n)return 0n;let e=X(i);if(e>=Nt)return pi(i,e);let t=Ni(i),n;do n=t,t=(t+i/t)/2n;while(q(t-n)>1n);for(;t*t>i;)t-=1n;for(;(t+1n)*(t+1n)<=i;)t+=1n;return t}var te=null;function Ve(i){if(te!==null){if(te.bits===i)return te.value;if(te.bits>i)return te.value>>BigInt(te.bits-i)}let e=Hn(i);return te={bits:i,value:e},e}function Hn(i){let e=Math.ceil(i*Ze)+12;if(e+1<=ce.length){let t=ce.slice(0,e+1);return(BigInt(t)<<BigInt(i))/M(t.length-1)}return $n(i)}function Le(i,e){let t=BigInt(e),n=1n<<t;if(i===0n)return[0n,n];let r=Ve(e),s=2n*r,o=r/2n,a,c=q(i);if(c>n<<30n){let T=X(c)-e+64,A=e+T,J=i<<BigInt(T),K=2n*Ve(A),j=J%K;j<0n&&(j+=K),a=j>>BigInt(T)}else a=i%s;a<0n&&(a+=s);let l=1n,f=1n;a>3n*o?(a=s-a,l=-1n):a>r?(a=a-r,l=-1n,f=-1n):a>o&&(a=r-a,f=-1n);let m=Math.round(e*Ze),d=Math.min(18,Math.max(2,Math.ceil(.87*Math.sqrt(m)))),h=0,N=n>>BigInt(d);for(;a>N;)a=a/2n,h++;let p=a,b=n,y=a,v=n,g=a*a,E=2n*t;for(let T=2;;T+=2){if(v=(v*g>>E)/(BigInt(T)*BigInt(T-1)),v===0n){y=(y*g>>E)/(BigInt(T+1)*BigInt(T)),y!==0n&&(T%4===2?(b-=v,p-=y):(b+=v,p+=y));break}if(y=(y*g>>E)/(BigInt(T+1)*BigInt(T)),T%4===2?(b-=v,p-=y):(b+=v,p+=y),y===0n)break}for(let T=0;T<h;T++){let A=2n*p*b>>t,J=(2n*b*b>>t)-n;p=A,b=J}return[l*p,f*b]}function Me(i,e){if(i===0n)return 0n;if(i<0n)return-Me(-i,e);let t=BigInt(e),n=1n<<t,s=Ve(e)/2n;if(i>n){let h=(n<<t)/i;return s-Me(h,e)}let o=4n*n/10n,a=0,c=i;for(;c>o;){let h=c*c,N=(n<<t)+h>>t,p=qe(N,e);c=(c<<t)/(n+p),a++}let l=c,f=c,m=c*c,d=2n*t;for(let h=3;f=f*m>>d,f!==0n;h+=2)h%4===3?l-=f/BigInt(h):l+=f/BigInt(h);for(let h=0;h<a;h++)l=2n*l;return l}var yi=NaN,u=class i{static precision=50;static ZERO=Object.freeze(Object.assign(Object.create(i.prototype),{_digits:1,significand:0n,exponent:0}));static ONE=Object.freeze(Object.assign(Object.create(i.prototype),{_digits:1,significand:1n,exponent:0}));static TWO=Object.freeze(Object.assign(Object.create(i.prototype),{_digits:1,significand:2n,exponent:0}));static NEGATIVE_ONE=Object.freeze(Object.assign(Object.create(i.prototype),{_digits:1,significand:-1n,exponent:0}));static HALF=Object.freeze(Object.assign(Object.create(i.prototype),{_digits:1,significand:5n,exponent:-1}));static NAN=Object.freeze(Object.assign(Object.create(i.prototype),{_digits:1,significand:0n,exponent:NaN}));static POSITIVE_INFINITY=Object.freeze(Object.assign(Object.create(i.prototype),{_digits:1,significand:1n,exponent:1/0}));static NEGATIVE_INFINITY=Object.freeze(Object.assign(Object.create(i.prototype),{_digits:1,significand:-1n,exponent:1/0}));static _piFullPrecision=null;static _piCache=null;static _piCachePrecision=0;static _eulerGammaCache=null;static _eulerGammaCachePrecision=0;static get PI(){let e=i.precision;if(i._piCache!==null&&i._piCachePrecision===e)return i._piCache;let t=e+4,n;if(t+1<=ce.length)i._piFullPrecision===null&&(i._piFullPrecision=new i(ce[0]+"."+ce.slice(1))),n=i._piFullPrecision.toPrecision(t);else{let r=t+4;n=B(gt(r),-r).toPrecision(t)}return i._piCache=n,i._piCachePrecision=e,n}static get EULER_GAMMA(){let e=i.precision;if(i._eulerGammaCache!==null&&i._eulerGammaCachePrecision>=e)return i._eulerGammaCache.toPrecision(e);let t=Qn(e);return i._eulerGammaCache=t,i._eulerGammaCachePrecision=e,t}significand;exponent;_digits;digitCount(){return this._digits??(this._digits=le(this.significand))}constructor(e){if(e instanceof i){this.significand=e.significand,this.exponent=e.exponent;return}if(typeof e=="bigint"){[this.significand,this.exponent]=Ge(e,0);return}if(typeof e=="number"){[this.significand,this.exponent]=zn(e);return}[this.significand,this.exponent]=vt(e)}isNaN(){return Number.isNaN(this.exponent)}isZero(){return this.exponent===0&&this.significand===0n}isFinite(){return Number.isFinite(this.exponent)}isInteger(){return this.isFinite()&&this.exponent>=0}isPositive(){return this.significand>0n}isNegative(){return this.significand<0n}cmp(e){if(typeof e=="number"){if(Number.isNaN(e))return yi;let h=this.exponent;if(Number.isNaN(h))return yi;if(e===0)return this.significand===0n?0:this.significand>0n?1:-1;if(!Number.isFinite(h))return e===1/0?this.significand>0n?0:-1:e===-1/0?this.significand<0n?0:1:this.significand>0n?1:-1;if(this.significand===0n)return e>0?-1:1;if(e===1/0)return-1;if(e===-1/0)return 1;if(this.significand>0n!=e>0)return this.significand>0n?1:-1;if(Number.isInteger(e)&&h>=0&&h<=15){let N=this.significand*M(h),p=BigInt(e);return N<p?-1:N>p?1:0}e=new i(e)}let t=this.exponent,n=e.exponent,r=this.significand,s=e.significand;if(t!==t||n!==n)return yi;if(!Number.isFinite(t)||!Number.isFinite(n))return!Number.isFinite(t)&&!Number.isFinite(n)?r===s?0:r>s?1:-1:Number.isFinite(t)?s>0n?-1:1:r>0n?1:-1;if(r===0n)return s===0n?0:s>0n?-1:1;if(s===0n)return r>0n?1:-1;if(r>0n&&s<0n)return 1;if(r<0n&&s>0n)return-1;if(t===n)return r<s?-1:r>s?1:0;let o=this.digitCount(),a=e.digitCount(),c=o+t,l=a+n;if(c!==l){let h=r>0n?1:-1;return c>l?h:-h}let f=r,m=s,d=Math.abs(t-n);if(d>1e3){let h=o,N=a,p=Math.max(h,N)+1;h<p&&(f=f*M(p-h)),N<p&&(m=m*M(p-N))}else t<n?m=m*M(d):f=f*M(d);return f<m?-1:f>m?1:0}eq(e){return typeof e=="number"?e===0?this.significand===0n&&this.exponent===0:e===1?this.significand===1n&&this.exponent===0:e===-1?this.significand===-1n&&this.exponent===0:Number.isInteger(e)&&Number.isFinite(this.exponent)&&this.exponent>=0&&this.exponent<=15?this.significand*M(this.exponent)===BigInt(e):this.cmp(e)===0:this.significand===e.significand&&this.exponent===e.exponent}lt(e){return this.cmp(e)===-1}lte(e){let t=this.cmp(e);return t===-1||t===0}gt(e){return this.cmp(e)===1}gte(e){let t=this.cmp(e);return t===1||t===0}add(e){typeof e=="number"&&(e=new i(e));let t=this.exponent,n=e.exponent;if(Number.isFinite(t)&&Number.isFinite(n)){if(t===n)return B(this.significand+e.significand,t);let o=t-n;return o>0?B(this.significand*M(o)+e.significand,n):B(this.significand+e.significand*M(-o),t)}if(t!==t||n!==n)return i.NAN;let r=!Number.isFinite(t),s=!Number.isFinite(n);return r&&s?this.significand!==e.significand?i.NAN:this.significand>0n?i.POSITIVE_INFINITY:i.NEGATIVE_INFINITY:r?this.significand>0n?i.POSITIVE_INFINITY:i.NEGATIVE_INFINITY:e.significand>0n?i.POSITIVE_INFINITY:i.NEGATIVE_INFINITY}sub(e){typeof e=="number"&&(e=new i(e));let t=this.exponent,n=e.exponent;if(Number.isFinite(t)&&Number.isFinite(n)){if(t===n)return B(this.significand-e.significand,t);let o=t-n;return o>0?B(this.significand*M(o)-e.significand,n):B(this.significand-e.significand*M(-o),t)}if(t!==t||n!==n)return i.NAN;let r=!Number.isFinite(t),s=!Number.isFinite(n);return r&&s?this.significand===e.significand?i.NAN:this.significand>0n?i.POSITIVE_INFINITY:i.NEGATIVE_INFINITY:r?this.significand>0n?i.POSITIVE_INFINITY:i.NEGATIVE_INFINITY:e.significand>0n?i.NEGATIVE_INFINITY:i.POSITIVE_INFINITY}mul(e){typeof e=="number"&&(e=new i(e));let t=this.exponent,n=e.exponent;if(Number.isFinite(t)&&Number.isFinite(n))return B(this.significand*e.significand,t+n);if(t!==t||n!==n||this.significand===0n||e.significand===0n)return i.NAN;let r=this.significand>0n?1n:-1n,s=e.significand>0n?1n:-1n;return r*s>0n?i.POSITIVE_INFINITY:i.NEGATIVE_INFINITY}mulToPrecision(e,t){typeof e=="number"&&(e=new i(e));let n=this.exponent,r=e.exponent,s=this.significand,o=e.significand;if(s!==0n&&o!==0n&&Number.isFinite(n)&&Number.isFinite(r)){let a=s*o,c=n+r,l=this.digitCount()+e.digitCount()-1,m=(a<0n?-a:a)>=M(l)?l+1:l;return m<=t?B(a,c):bt(a,c).roundToPrecKnownDigits(t,m)}return this.mul(e).toPrecision(t)}neg(){let e=this.significand;return e===0n?this:Number.isFinite(this.exponent)?B(-e,this.exponent):e>0n?i.NEGATIVE_INFINITY:i.POSITIVE_INFINITY}abs(){return this.significand>=0n?this:Number.isFinite(this.exponent)?B(-this.significand,this.exponent):i.POSITIVE_INFINITY}floor(){let e=this.exponent;if(e>=0)return this;if(Number.isFinite(e)){let t=this.trunc();return this.significand<0n?t.sub(B(1n,0)):t}return this}ceil(){let e=this.exponent;if(e>=0)return this;if(Number.isFinite(e)){let t=this.trunc();return this.significand>0n?t.add(B(1n,0)):t}return this}round(){let e=this.exponent;if(e>=0)return this;if(Number.isFinite(e)){let t=B(5n,-1);return this.significand>0n?this.add(t).trunc():this.sub(t).trunc()}return this}trunc(){let e=this.exponent;if(e>=0)return this;if(Number.isFinite(e)){let t=this.significand/M(-e);return B(t===0n?0n:t,0)}return this}div(e){typeof e=="number"&&(e=new i(e));let t=this.exponent,n=e.exponent,r=this.significand,s=e.significand;if(Number.isFinite(t)&&Number.isFinite(n)){if(s===0n)return r===0n?i.NAN:r>0n?i.POSITIVE_INFINITY:i.NEGATIVE_INFINITY;if(r===0n)return B(0n,0);let c=i.precision,l=10,f=this.digitCount(),m=e.digitCount(),d=c+l+Math.max(0,m-f),h=M(d),N=r*h/s,p=t-n-d,b=N<0n?-N:N,y=f+d-m,v=b>=M(y)?y+1:y;return bt(N,p).roundToPrecKnownDigits(c,v)}if(t!==t||n!==n)return i.NAN;let o=!Number.isFinite(t),a=!Number.isFinite(n);if(o&&a)return i.NAN;if(o){let c=r>0n?1n:-1n,l=s>0n?1n:s<0n?-1n:1n;return c*l>0n?i.POSITIVE_INFINITY:i.NEGATIVE_INFINITY}return B(0n,0)}inv(){return B(1n,0).div(this)}divToward(e,t){typeof e=="number"&&(e=new i(e));let n=this.exponent,r=e.exponent,s=this.significand,o=e.significand;if(!Number.isFinite(n)||!Number.isFinite(r)||o===0n||s===0n)return this.div(e);let a=s<0n!=o<0n,c=s<0n?-s:s,l=o<0n?-o:o,f=i.precision,d=f+10+Math.max(0,e.digitCount()-this.digitCount()),h=c*M(d),N=h/l,p=h%l!==0n,b=n-r-d,y=this.digitCount()+d-e.digitCount(),v=N>=M(y)?y+1:y,g=a?t==="floor":t==="ceiling",[E,T]=yt(N,p,b,f,g,v);return B(a?-E:E,T)}sqrtToward(e){if(this.significand===0n)return this.exponent!==this.exponent?this:i.ZERO;if(!Number.isFinite(this.exponent))return this.significand>0n?i.POSITIVE_INFINITY:i.NAN;if(this.significand<0n)return i.NAN;let t=i.precision,n=4,r=this.significand,s=this.exponent,o=s+this.digitCount()-1,a=Math.floor(o/2),c=t+n-a;s+2*c<0&&(c=Math.ceil(-s/2)+1);let l=s+2*c,f=l>=0?r*M(l):r/M(-l),m=Be(f),d=m*m!==f,[h,N]=yt(m,d,-c,t,e==="ceiling");return B(h,N)}mod(e){typeof e=="number"&&(e=new i(e));let t=this.exponent,n=e.exponent;if(Number.isFinite(t)&&Number.isFinite(n)){if(e.significand===0n)return i.NAN;if(this.significand===0n)return B(0n,0);let r=t-n,s=r>=0?this.significand*M(r):this.significand,o=r>=0?e.significand:e.significand*M(-r),a=s/o;return this.sub(B(a,0).mul(e))}return t!==t||n!==n||!Number.isFinite(t)?i.NAN:new i(this)}pow(e){if(typeof e=="number"&&(e=new i(e)),this.isNaN()||e.isNaN()||!e.isFinite())return i.NAN;if(e.isInteger()){let a=e.toBigInt();if(a===0n)return B(1n,0);if(!this.isFinite())return a>0n?this.significand<0n&&a%2n!==0n?i.NEGATIVE_INFINITY:i.POSITIVE_INFINITY:B(0n,0);if(this.isZero())return a>0n?B(0n,0):i.POSITIVE_INFINITY;if(a<0n)return this.pow(e.neg()).inv();let c=this.significand<0n?-this.significand:this.significand,l=this.digitCount(),f=l>15?l-15:0,m=f>0?Number(c/10n**BigInt(f)):Number(c),d=Math.log10(m)+f+this.exponent,h=Number(a)*d;if(h>9e15)return this.significand<0n&&a%2n!==0n?i.NEGATIVE_INFINITY:i.POSITIVE_INFINITY;if(h<-9e15)return B(0n,0);let N=i.precision,p=a.toString(2).length,b=Math.min(2*p+5,100),y=N+b,v=B(1n,0),g=this,E=a;for(;E>0n;)E&1n&&(v=v.mulToPrecision(g,y)),E>>=1n,E>0n&&(g=g.mulToPrecision(g,y));return v.toPrecision(N)}if(!this.isFinite())return this.significand<0n?i.NAN:e.significand>0n?i.POSITIVE_INFINITY:i.ZERO;if(this.isZero())return e.significand>0n?i.ZERO:i.POSITIVE_INFINITY;if(this.significand<0n)return i.NAN;let t=this.exponent+this.digitCount()-1,r=e.exponent+e.digitCount()-1+Math.log10(Math.abs(t)*2.303+3)+1,s=Math.min(20,Math.max(2,Math.ceil(r)+2)),o=i.precision;i.precision=o+s;try{let a=Kn(this,o+s);return e.mul(a).exp().toPrecision(o)}finally{i.precision=o}}toNumber(){return Number.isFinite(this.exponent)?this.significand===0n?0:this.exponent===0?Number(this.significand):Number(this.toString()):this.exponent!==this.exponent?NaN:this.significand>0n?1/0:-1/0}toString(){if(!Number.isFinite(this.exponent))return this.exponent!==this.exponent?"NaN":this.significand>0n?"Infinity":"-Infinity";if(this.significand===0n)return"0";let e=this.significand<0n,t=(e?-this.significand:this.significand).toString(),n=t.length,r=n+this.exponent-1,s=e?"-":"";if(r>20||r<-6){let c=n===1?t:t[0]+"."+t.slice(1),l=r>=0?"+":"";return`${s}${c}e${l}${r}`}if(this.exponent>=0)return s+t+"0".repeat(this.exponent);let o=-this.exponent;if(o<n){let c=t.slice(0,n-o),l=t.slice(n-o);return`${s}${c}.${l}`}let a=o-n;return`${s}0.${"0".repeat(a)}${t}`}toFixed(e){let t=e??0;if(!Number.isFinite(this.exponent))return this.exponent!==this.exponent?"NaN":this.significand>0n?"Infinity":"-Infinity";let n=this.significand<0n,r=n?-this.significand:this.significand,s=this.exponent+t,o,a;if(s>=0)a=r===0n,o=a?"0":r.toString()+"0".repeat(s);else{let m=M(-s),d=r/m,h=r%m,N=m/2n,p;h>N?p=d+1n:h<N||m%2n!==0n||d%2n===0n?p=d:p=d+1n,a=p===0n,o=p.toString()}let c=n&&!a?"-":"";if(t===0)return`${c}${o}`;if(o.length<=t){let m=o.padStart(t,"0");return`${c}0.${m}`}let l=o.slice(0,o.length-t),f=o.slice(o.length-t);return`${c}${l}.${f}`}toPrecision(e){if(this.significand===0n||!Number.isFinite(this.exponent))return this;let t=this.digitCount();return t<=e?this:this.roundToPrecKnownDigits(e,t)}roundToPrecKnownDigits(e,t){let n=this.significand<0n?-this.significand:this.significand,r=t-e,s=M(r),o=n/s,a=n-o*s,c=s/2n;(a>c||a===c&&o%2n!==0n)&&(o+=1n);let l=this.significand<0n?-o:o;return B(l,this.exponent+r)}toBigInt(){if(!Number.isFinite(this.exponent))throw this.exponent!==this.exponent?new RangeError("Cannot convert NaN to BigInt"):new RangeError("Cannot convert Infinity to BigInt");if(this.exponent>=0)return this.significand*M(this.exponent);let e=M(-this.exponent);return this.significand/e}},Wn=8,we=[];function Kn(i,e){let t=i.significand,n=i.exponent;for(let s=we.length-1;s>=0;s--){let o=we[s];if(o.prec===e&&o.exp===n&&o.sig===t)return o.ln}let r=i.ln();return we.push({sig:t,exp:n,prec:e,ln:r}),we.length>Wn&&we.shift(),r}function Qn(i){let e=i+20+Math.ceil(Math.log10(i+10)),t=u.precision;u.precision=e;try{let n=Math.ceil(e*Math.LN10/4)+5,r=new u(n),s=r.mul(r),o=u.ONE,a=u.ONE,c=u.ZERO,l=u.ZERO,f=u.ONE.div(new u(10).pow(e)),m=6*n+100;for(let d=1;d<=m;d++){let h=new u(d).mul(d);if(o=o.mul(s).div(h).toPrecision(e),l=l.add(u.ONE.div(d)).toPrecision(e),a=a.add(o).toPrecision(e),c=c.add(o.mul(l)).toPrecision(e),d>n&&o.lt(a.mul(f)))break}return c.div(a).sub(r.ln()).toPrecision(i)}finally{u.precision=t}}function B(i,e){let[t,n]=Ge(i,e),r=Object.create(u.prototype);return r.significand=t,r.exponent=n,r}function bt(i,e){let t=Object.create(u.prototype);return t.significand=i,t.exponent=e,t}function yt(i,e,t,n,r,s){if(i===0n)return[r&&e?1n:0n,t];let o=s??le(i);if(o<=n)return[r&&e?i+1n:i,t];let a=o-n,c=M(a),l=i/c,f=e||i%c!==0n;return r&&f&&(l+=1n),[l,t+a]}var It=1000000000n,Tt=1000n;function Ge(i,e){if(i===0n)return[0n,0];if((i&1n)!==0n)return[i,e];if(i%10n!==0n)return[i,e];for(;i%It===0n;)i/=It,e+=9;for(;i%Tt===0n;)i/=Tt,e+=3;for(;i%10n===0n;)i/=10n,e+=1;return[i,e]}function zn(i){return Number.isNaN(i)?[0n,NaN]:i===1/0?[1n,1/0]:i===-1/0?[-1n,1/0]:Number.isInteger(i)?Ge(BigInt(i),0):vt(i.toString())}function vt(i){if(i=i.trim(),i===""||i==="NaN")return[0n,NaN];if(i==="Infinity"||i==="+Infinity")return[1n,1/0];if(i==="-Infinity")return[-1n,1/0];let e,t=0,n=i.search(/[eE]/);if(n!==-1){if(e=i.slice(0,n),t=Number(i.slice(n+1)),!Number.isFinite(t))return[0n,NaN]}else e=i;let r=!1;e.startsWith("-")?(r=!0,e=e.slice(1)):e.startsWith("+")&&(e=e.slice(1));let s=e.indexOf("."),o,a;s===-1?(o=e,a=""):(o=e.slice(0,s),a=e.slice(s+1)),o=o.replace(/^0+/,"")||"0";let c=o+a;if(c.length===0||!/^\d+$/.test(c))return[0n,NaN];let l=BigInt(c);r&&(l=-l);let f=-a.length;return Ge(l,f+t)}var er=Math.log2(10),Bt=Math.log10(2),ir=16,Ti=1e6;function H(i,e){let t=Math.ceil(e*er)+ir,n=BigInt(t);return i.exponent>=0?[i.significand*M(i.exponent)<<n,t]:[(i.significand<<n)/M(-i.exponent),t]}function W(i,e,t){if(i===0n)return u.ZERO;let n=i<0n,r=n?-i:i,s=BigInt(e),o=X(r)-e,a=Math.floor(o*Bt),c=t+4-a,l,f;if(c>=0)l=r*M(c)+(1n<<s-1n)>>s,f=-c;else{let d=M(-c)<<s;l=(r+d/2n)/d,f=-c}if(l===0n)return u.ZERO;let m=le(l);if(m>t){let d=m-t,h=M(d),N=h/2n,p=l%h;l=l/h,p>=N&&(l+=1n),f+=d}return B(n?-l:l,f)}function D(i){return i.exponent+i.digitCount()-1}function Ii(i,e){if(i===0n)return 0;let t=i<0n?-i:i,n=e*Bt-(le(t)-1);return n>0?Math.ceil(n):0}var wt=5,Et=BigInt(Number.MAX_SAFE_INTEGER),ne=null;function xt(i){if(ne!==null){if(ne.bits===i)return ne.value;if(ne.bits>i)return ne.value>>BigInt(ne.bits-i)}let e=bi(10n<<BigInt(i),i);return ne={bits:i,value:e},e}u.prototype.sqrt=function(){if(this.isNaN())return u.NAN;if(this.isZero())return u.ZERO;if(!this.isFinite())return this.significand>0n?u.POSITIVE_INFINITY:u.NAN;if(this.significand<0n)return u.NAN;let i=u.precision,e=i+10,t=D(this),n=Math.floor(t/2),r=B(this.significand,this.exponent-2*n),[s,o]=H(r,e),a=qe(s,o),c=W(a,o,i);return B(c.significand,c.exponent+n)};u.prototype.cbrt=function(){if(this.isNaN())return u.NAN;if(this.isZero())return u.ZERO;if(!this.isFinite())return this.significand>0n?u.POSITIVE_INFINITY:u.NEGATIVE_INFINITY;if(this.significand<0n)return this.neg().cbrt().neg();let i=u.precision,e=i+10,t=D(this),n=Math.floor(t/3),r=B(this.significand,this.exponent-3*n),[s,o]=H(r,e),a=s<<BigInt(2*o),c,l=r.toNumber();if(o<=1e3&&Number.isFinite(l)&&l>0){let d=Number(1n<<BigInt(o)),h=Math.cbrt(l);Number.isFinite(h)&&h>0?(c=BigInt(Math.floor(h*d)),c===0n&&(c=1n)):c=Mt(a)}else c=Mt(a);let f;do{f=c;let d=c*c;if(d===0n){c=1n;break}c=(2n*c+a/d)/3n}while(q(c-f)>1n);{let d=(2n*c+a/(c*c))/3n,h=q(c*c*c-a);q(d*d*d-a)<h&&(c=d)}let m=W(c,o,i);return B(m.significand,m.exponent+n)};u.sqrt=function(i){return i.sqrt()};u.cbrt=function(i){return i.cbrt()};u.prototype.exp=function(){if(this.isNaN())return u.NAN;if(!this.isFinite())return this.significand>0n?u.POSITIVE_INFINITY:u.ZERO;if(this.isZero())return u.ONE;if(D(this)>=17)return this.significand>0n?u.POSITIVE_INFINITY:u.ZERO;let i=u.precision,e=Math.max(0,this.exponent+this.digitCount()),t=i+20+e,[n,r]=H(this,t),s=xt(r),o=n/s,a=n-o*s;if(a<0n&&(o-=1n,a+=s),o>Et||o<-Et)return o>0n?u.POSITIVE_INFINITY:u.ZERO;let c=W(gi(a,r),r,i),l=c.exponent+Number(o);return Number.isSafeInteger(l)?B(c.significand,l):o>0n?u.POSITIVE_INFINITY:u.ZERO};u.prototype.ln=function(){if(this.isNaN())return u.NAN;if(!this.isFinite())return this.significand>0n?u.POSITIVE_INFINITY:u.NAN;if(this.isZero())return u.NEGATIVE_INFINITY;if(this.significand<0n)return u.NAN;if(this.eq(1))return u.ZERO;let i=u.precision,e=this.significand,t=this.digitCount(),n=this.exponent+t-1,r=B(e,-(t-1)),s=Math.abs(n).toString().length,o=0;if(n===0||n===-1){let d=this.sub(u.ONE);if(!d.isZero()){let h=D(d);h<0&&(o=-h)}}let a=i+20+s+o,[c,l]=H(r,a),f=xt(l),m=bi(c,l)+BigInt(n)*f;return W(m,l,i)};u.prototype.log=function(i){let e=i instanceof u?i:new u(i),t=u.precision;u.precision=t+10;try{return this.ln().div(e.ln()).toPrecision(t)}finally{u.precision=t}};u.exp=function(i){return i.exp()};u.ln=function(i){return i.ln()};u.log10=function(i){return i.log(10)};u.log2=function(i){return i.log(2)};u.prototype.sin=function(){if(this.isNaN())return u.NAN;if(!this.isFinite())return u.NAN;if(this.isZero())return u.ZERO;let i=u.precision,e=D(this);if(e<0&&-2*e>=i+4)return this.toPrecision(i);let t=i+15+(e<0?-e:0);if(e+t+30>Ti)return u.NAN;let[n,r]=H(this,t),[s]=Le(n,r);return W(s,r,i)};u.prototype.cos=function(){if(this.isNaN())return u.NAN;if(!this.isFinite())return u.NAN;if(this.isZero())return u.ONE;let i=u.precision,e=D(this),t=0;for(let n=0;;n++){let r=i+15+t;if(e+r+30>Ti)return u.NAN;let[s,o]=H(this,r),[,a]=Le(s,o);if(a===0n){if(n>=3)return u.ZERO;t+=i+30;continue}let c=Ii(a,o);if(c<=t+wt||n>=3)return W(a,o,i);t=c+5}};u.prototype.tan=function(){if(this.isNaN())return u.NAN;if(!this.isFinite())return u.NAN;if(this.isZero())return u.ZERO;let i=u.precision,e=D(this);if(e<0&&-2*e>=i+4)return this.toPrecision(i);let t=e<0?-e:0,n=0;for(let r=0;;r++){let s=i+15+t+n;if(e+s+30>Ti)return u.NAN;let[o,a]=H(this,s),[c,l]=Le(o,a);if(l===0n){if(r>=3)return c>0n?u.POSITIVE_INFINITY:u.NEGATIVE_INFINITY;n+=i+30;continue}let f=Math.max(c===0n?0:Ii(c,a),Ii(l,a));if(f<=n+wt||r>=3){let m=(c<<BigInt(a))/l;return W(m,a,i)}n=f+5}};u.prototype.atan=function(){if(this.isNaN())return u.NAN;if(this.isZero())return u.ZERO;if(!this.isFinite()){let o=u.PI.div(u.TWO);return this.significand>0n?o:o.neg()}let i=u.precision,e=D(this);if(e<0&&-2*e>=i+4)return this.toPrecision(i);let t=i+15+(e<0?-e:0),[n,r]=H(this,t),s=Me(n,r);return W(s,r,i)};u.prototype.asin=function(){if(this.isNaN())return u.NAN;if(!this.isFinite())return u.NAN;if(this.isZero())return u.ZERO;let i=this.abs(),e=u.ONE;if(i.gt(e))return u.NAN;if(i.eq(e)){let h=u.PI.div(u.TWO);return this.significand>0n?h:h.neg()}let t=u.precision,n=D(this);if(n<0&&-2*n>=t+4)return this.toPrecision(t);let r=t+20+(n<0?-n:0),[s,o]=H(this,r),a=1n<<BigInt(o),c=dt(s,s,o),l=a-c,f=qe(l,o),m=ht(s,f,o),d=Me(m,o);return W(d,o,t)};u.prototype.acos=function(){if(this.isNaN())return u.NAN;if(!this.isFinite())return u.NAN;if(this.abs().gt(u.ONE))return u.NAN;if(this.eq(1))return u.ZERO;if(this.eq(-1))return u.PI;let e=u.precision,t=u.precision;u.precision=e+10;try{let n=u.TWO;if(this.significand>=0n){let s=u.ONE.sub(this).mulToPrecision(u.HALF,e+10).sqrt();return n.mulToPrecision(s.asin(),e)}let r=u.ONE.add(this).mulToPrecision(u.HALF,e+10).sqrt();return u.PI.sub(n.mul(r.asin())).toPrecision(e)}finally{u.precision=t}};u.sin=function(i){return i.sin()};u.cos=function(i){return i.cos()};u.tan=function(i){return i.tan()};u.asin=function(i){return i.asin()};u.acos=function(i){return i.acos()};u.atan=function(i){return i.atan()};u.atan2=function(i,e){let t=i instanceof u?i:new u(i);if(t.isNaN()||e.isNaN())return u.NAN;let n=u.PI,r=n.div(u.TWO);if(e.isZero())return t.isZero()?u.ZERO:t.significand>0n?r:r.neg();let s=t.div(e);return e.significand>0n?s.atan():t.significand>=0n?s.atan().add(n):s.atan().sub(n)};u.prototype.sinh=function(){if(this.isNaN())return u.NAN;if(this.isZero())return u.ZERO;if(!this.isFinite())return this.significand>0n?u.POSITIVE_INFINITY:u.NEGATIVE_INFINITY;let i=u.precision,e=D(this);if(e<0){if(-2*e>=i+4)return this.toPrecision(i);let r=u.precision;u.precision=i-e+5;try{let s=this.exp();return s.sub(s.inv()).mulToPrecision(u.HALF,i)}finally{u.precision=r}}if(Math.abs(this.toNumber())>1.16*(i+3)){let r=this.abs().exp().div(u.TWO);return this.significand>0n?r:r.neg()}let t=this.exp(),n=t.inv();return t.sub(n).div(u.TWO)};u.prototype.cosh=function(){if(this.isNaN())return u.NAN;if(this.isZero())return u.ONE;if(!this.isFinite())return u.POSITIVE_INFINITY;let i=u.precision;if(Math.abs(this.toNumber())>1.16*(i+3))return this.abs().exp().div(u.TWO);let e=this.exp(),t=e.inv();return e.add(t).div(u.TWO)};u.prototype.tanh=function(){if(this.isNaN())return u.NAN;if(this.isZero())return u.ZERO;if(!this.isFinite())return this.significand>0n?u.ONE:u.NEGATIVE_ONE;let i=u.precision,e=D(this);if(e<0){if(-2*e>=i+4)return this.toPrecision(i);let n=u.precision;u.precision=i-e+5;try{let r=this.mul(u.TWO).exp();return r.sub(u.ONE).div(r.add(u.ONE)).toPrecision(i)}finally{u.precision=n}}if(Math.abs(this.toNumber())>1.16*(i+3))return this.significand>0n?u.ONE:u.NEGATIVE_ONE;let t=this.mul(u.TWO).exp();return t.sub(u.ONE).div(t.add(u.ONE))};u.sinh=function(i){return i.sinh()};u.cosh=function(i){return i.cosh()};u.tanh=function(i){return i.tanh()};u.prototype.expm1=function(){if(this.isNaN())return u.NAN;if(!this.isFinite())return this.significand>0n?u.POSITIVE_INFINITY:u.NEGATIVE_ONE;if(this.isZero())return u.ZERO;let i=u.precision,e=D(this);if(e<0&&-e>=i+2)return this.toPrecision(i);if(e<0){let t=u.precision;u.precision=i-e+5;try{return this.exp().sub(u.ONE).toPrecision(i)}finally{u.precision=t}}return this.exp().sub(u.ONE)};u.prototype.log1p=function(){if(this.isNaN())return u.NAN;if(!this.isFinite())return this.significand>0n?u.POSITIVE_INFINITY:u.NAN;if(this.isZero())return u.ZERO;let i=u.ONE.add(this);if(i.isZero())return u.NEGATIVE_INFINITY;if(i.significand<0n)return u.NAN;let e=u.precision,t=D(this);if(t<0&&-t>=e+2)return this.toPrecision(e);if(t<0){let n=u.precision;u.precision=e-t+5;try{return u.ONE.add(this).ln().toPrecision(e)}finally{u.precision=n}}return u.ONE.add(this).ln()};u.prototype.asinh=function(){if(this.isNaN())return u.NAN;if(this.isZero())return u.ZERO;if(!this.isFinite())return this.significand>0n?u.POSITIVE_INFINITY:u.NEGATIVE_INFINITY;let i=this.significand<0n,e=this.abs(),t=u.precision,n=D(this);if(n<0&&-2*n>=t+4)return this.toPrecision(t);let r=()=>e.add(e.mul(e).add(u.ONE).sqrt()).ln(),s;if(n<0){let o=u.precision;u.precision=t-n+5;try{s=r().toPrecision(t)}finally{u.precision=o}}else s=r();return i?s.neg():s};u.prototype.acosh=function(){if(this.isNaN())return u.NAN;if(!this.isFinite())return this.significand>0n?u.POSITIVE_INFINITY:u.NAN;if(this.lt(u.ONE))return u.NAN;if(this.eq(1))return u.ZERO;let i=this.sub(u.ONE).div(u.TWO).sqrt();return u.TWO.mul(i.asinh())};u.prototype.atanh=function(){if(this.isNaN())return u.NAN;if(!this.isFinite())return u.NAN;if(this.isZero())return u.ZERO;let i=this.abs();if(i.eq(1))return this.significand>0n?u.POSITIVE_INFINITY:u.NEGATIVE_INFINITY;if(i.gt(u.ONE))return u.NAN;let e=u.precision,t=D(this);if(-2*t>=e+4)return this.toPrecision(e);let n=u.precision;u.precision=e-t+5;try{return u.ONE.add(this).div(u.ONE.sub(this)).ln().mulToPrecision(u.HALF,e)}finally{u.precision=n}};u.prototype.nthRoot=function(i){if(this.isNaN()||!Number.isInteger(i)||i===0)return u.NAN;if(i===1)return this;if(i===2)return this.sqrt();if(i===3)return this.cbrt();if(i<0)return this.nthRoot(-i).inv();if(this.isZero())return u.ZERO;if(!this.isFinite())return this.significand>0n?u.POSITIVE_INFINITY:i%2===0?u.NAN:u.NEGATIVE_INFINITY;if(this.significand<0n)return i%2===0?u.NAN:this.neg().nthRoot(i).neg();let e=u.precision,t=u.precision;u.precision=e+8;try{return u.exp(this.ln().div(new u(i))).toPrecision(e)}finally{u.precision=t}};u.asinh=function(i){return i.asinh()};u.acosh=function(i){return i.acosh()};u.atanh=function(i){return i.atanh()};u.expm1=function(i){return i.expm1()};u.log1p=function(i){return i.log1p()};u.nthRoot=function(i,e){return i.nthRoot(e)};function Mt(i){let e=X(i);if(e<=1023){let c=Math.cbrt(Number(i));if(Number.isFinite(c)&&c>=1)return BigInt(Math.floor(c))}let t=e-51,n=Number(i>>BigInt(t)),r=Math.cbrt(n),s=Math.floor(t/3),o=t%3;o===1&&(r*=1.2599210498948732),o===2&&(r*=1.5874010519681994);let a=BigInt(Math.round(r))<<BigInt(s);return a>0n?a:1n}var xe=class extends Error{cause;value;constructor({message:e,value:t,cause:n}={}){super(e??"Operation canceled"),t&&(this.value=t),this.cause=n,this.name="CancellationError"}};function Z(i){if(i!==void 0&&Date.now()>=i)throw new xe({cause:"timeout",message:"Timeout exceeded"})}var Ye;function Ue(){return Ye}function je(i,e){let t=Ye;Ye=i;try{return e()}finally{Ye=t}}function vi(i,e,t={}){let{contract:n=.125,step:r=1,power:s=2,atol:o=1e-16,rtol:a=o>0?0:Math.sqrt(Number.EPSILON),maxeval:c=1e6,breaktol:l=2,deadline:f=Ue()}=t;return isFinite(e)?je(f,()=>{let m=r,d=Math.pow(1/n,s),h=i(e+m),N=[h],p=1/0,b=1;for(;b<c;){Z(f),b+=1,m*=n,N.push(i(e+m));let y=d,v=1/0;for(let g=N.length-2;g>=0;g--){let E=N[g];N[g]=N[g+1]+(N[g+1]-N[g])/(y-1);let T=Math.abs(N[g]-E);v=Math.min(v,T),T<p&&(h=N[g],p=T),y*=d}if(v>l*p||!isFinite(v)||p<=Math.max(a*Math.abs(h),o))break}return[h,p]}):vi(m=>i(1/m),1/e,{rtol:a,atol:o,maxeval:c,contract:Math.abs(n)>1?1/n:n,step:1/r,power:s,deadline:f})}function L(i){if(typeof i=="bigint")return i;if(typeof i=="number")return Number.isInteger(i)?BigInt(i):null;if(i instanceof u||typeof i=="object"&&i!==null&&typeof i.isInteger=="function"&&typeof i.toFixed=="function"){let r=i;return r.isInteger()?BigInt(r.toFixed(0)):null}if(typeof i!="string")return null;let e=i.toLowerCase(),t=e.match(/^([+-]?[0-9]+)e([+-]?[0-9]+)$/);if(t){let r=parseInt(t[2]);if(r<0)return null;e=t[1]+"0".repeat(r)}if(e.indexOf(".")>=0||!/^[+-]?[0-9]+$/.test(e))return null;try{return BigInt(e)}catch(r){return console.error(r instanceof Error?r.message:String(r)),null}}var tr=new Set([2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919]),nr=7919;function Ei(i){if(Number.isInteger(i)&&i>=0&&i<Number.MAX_SAFE_INTEGER,i<=3)return{[i]:1};let e={},t=0;for(;i%2===0;)t+=1,i/=2;for(t>0&&(e[2]=t),t=0;i%3===0;)t+=1,i/=3;t>0&&(e[3]=t);let n=!1;for(;!n;){if(i===1)return e;if(i>=2**32){let s=new Map;Mi(BigInt(i),s);for(let[o,a]of s){let c=Number(o);e[c]=(e[c]??0)+a}return e}let r=Math.sqrt(i);n=!0;for(let s=6;s<=r+6;s+=6){if(i%(s-1)===0){e[s-1]=(e[s-1]??0)+1,i/=s-1,n=!1;break}if(i%(s+1)===0){e[s+1]=(e[s+1]??0)+1,i/=s+1,n=!1;break}}}return e[i]!==void 0?e[i]+=1:e[i]=1,e}function ao(i){return!Number.isInteger(i)||!Number.isFinite(i)||i<=1?!1:Rt(BigInt(i))}var rr=1n<<32n,kt=[2n,3n,5n,7n,11n,13n,17n,19n,23n,29n,31n,37n];function Rt(i){if(i<2n)return!1;if(i<=nr)return tr.has(Number(i));if(i<rr){if(i%2n===0n||i%3n===0n)return!1;for(let e=5n;e*e<=i;e+=6n)if(i%e===0n||i%(e+2n)===0n)return!1;return!0}return or(i)}function sr(i,e,t){if(t===1n)return 0n;let n=1n;for(i=(i%t+t)%t;e>0n;)e&1n&&(n=n*i%t),i=i*i%t,e>>=1n;return n}function or(i){for(let n of kt)if(i%n===0n)return i===n;let e=i-1n,t=0n;for(;e%2n===0n;)e/=2n,t+=1n;e:for(let n of kt){let r=sr(n,e,i);if(!(r===1n||r===i-1n)){for(let s=1n;s<t;s++)if(r=r*r%i,r===i-1n)continue e;return!1}}return!0}function Pt(i,e){for(;e!==0n;){let t=i%e;i=e,e=t}return i}function ur(i){let e=128n;for(let t=1n;;t++){let n=2n,r=2n,s=2n,o=1n,a=1n,c=1n;for(;a===1n;){n=r;for(let l=0n;l<c;l++)r=(r*r+t)%i;for(let l=0n;l<c&&a===1n;l+=e){s=r;let f=c-l<e?c-l:e;for(let m=0n;m<f;m++)r=(r*r+t)%i,o=o*(n>r?n-r:r-n)%i;a=Pt(o,i)}c<<=1n}if(a===i)for(a=1n;a===1n;)s=(s*s+t)%i,a=Pt(n>s?n-s:s-n,i);if(a!==i)return a}}function Mi(i,e){for(;i!==1n;){if(Rt(i)){e.set(i,(e.get(i)??0)+1);return}let t=ur(i);Mi(t,e),i/=t}}var ar=[BigInt(4),BigInt(2),BigInt(4),BigInt(2),BigInt(4),BigInt(6),BigInt(2),BigInt(6)];function Dt(i){if(i<Number.MAX_SAFE_INTEGER){let m=Ei(Number(i)),d=new Map;for(let h of Object.keys(m))d.set(L(h),m[Number(h)]);return d}let e=i,t=new Map,n=0,r=0,s=0,o=BigInt(10);for(;e%o===BigInt(0);)n+=1,s+=1,e=e/o;for(o=BigInt(5);e%o===BigInt(0);)s+=1,e=e/o;for(o=BigInt(3);e%o===BigInt(0);)r+=1,e=e/o;for(o=BigInt(2);e%o===BigInt(0);)n+=1,e=e/o;n>0&&t.set("2",n),r>0&&t.set("3",r),s>0&&t.set("5",s),o=BigInt(7);let a="",c=0,l=BigInt(65536);for(;o*o<=e&&o<=l;)e%o===BigInt(0)?(a||(a=o.toString()),t.set(a,(t.get(a)??0)+1),e=e/o):(o=o+ar[c],a="",c=c<7?c+1:0);let f=new Map;for(let[m,d]of t)f.set(L(m),d);return e!==BigInt(1)&&Mi(e,f),f}var cr=21,St=53,lr=Math.floor(Math.log10(Math.pow(2,St))),Ot=1e-10,C=1e6,mr=1024,fr=1e4,dr=200;function At(i){if(i!==i)return i;if(i===-1/0)return-Number.MAX_VALUE;if(i===1/0||i===Number.MAX_VALUE)return 1/0;let e=i*(i<0?1-Number.EPSILON/2:1+Number.EPSILON);e===i&&(e=Number.MIN_VALUE*Number.EPSILON>0?i+Number.MIN_VALUE*Number.EPSILON:i+Number.MIN_VALUE),e===1/0&&(e=+Number.MAX_VALUE);let t=i+(e-i)/2;i<t&&t<e&&(e=t);let n=(e+i)/2;return i<n&&n<e&&(e=n),e===0?-0:e}function hr(i){return-At(-i)}function wi(i,e){if(e===1)return i;if(e===2)return Math.sqrt(i);if(e===3)return Math.cbrt(i);if(!Number.isInteger(e)||i===0||!Number.isFinite(i)||i<0)return Math.pow(i,1/e);let t=Math.pow(i,1/e);if(!Number.isFinite(t)||t===0)return t;t=((e-1)*t+i/Math.pow(t,e-1))/e;let n=Math.round(t);return n>0&&Math.abs(t-n)<=8*Number.EPSILON*n&&n**e===i?n:t}function Q(i,e){if(i>=Number.MAX_SAFE_INTEGER)return[1,i];if(i===0)return[0,0];if(i===1)return[1,1];if(Number.isInteger(i)&&i>0&&i<Number.MAX_SAFE_INTEGER,e===2){let s=[[0,0],[1,1],[1,2],[1,3],[2,1],[1,5],[1,6],[1,7],[2,2],[3,1],[1,10],[1,11],[2,3],[1,13],[1,14],[1,15],[4,1],[1,17],[3,2],[1,19],[2,5]][i];if(s)return s}let t=Ei(i),n=BigInt(1),r=BigInt(1);for(let s of Object.keys(t)){let o=BigInt(parseInt(s)),a=BigInt(e);n=n*o**(BigInt(t[Number(s)])/a),r=r*o**(BigInt(t[Number(s)])%a)}return[Number(n),Number(r)]}function G(i,e){if(i===0)return e;if(e===0||i===e)return i;if(!Number.isInteger(i)||!Number.isInteger(e))return NaN;for(;e!==0;)[i,e]=[e,i%e];return i<0?-i:i}function xi(i,e){if(i===0||e===0)return 0;let t=BigInt(i)*BigInt(e)/BigInt(G(i,e));return t<0n&&(t=-t),Number(t)}function Nr(i){if(!Number.isInteger(i)||i<0)return NaN;if(i>=170)return 1/0;let e=1;for(let t=2;t<=i;t++)e=e*t;return e}function pr(i){if(!Number.isInteger(i)||i<0)return NaN;if(i<0)return NaN;if(i<=1)return 1;let e=i;for(;i>2;)i-=2,e*=i;return e}function gr(i,e=Ot){return typeof i=="number"&&Math.abs(i)<=e?0:i}function br(i,e,t=.1){return(i(e-4*t)/280-4*i(e-3*t)/105+i(e-2*t)/5-4*i(e-t)/5+4*i(e+t)/5-i(e+2*t)/5+4*i(e+3*t)/105-i(e+4*t)/280)/t}function yr(i,e,t){let s=!Number.isFinite(e),o=h=>s?1/h:e+h,a=(h,N,p)=>{let b=.01*Math.max(1,Math.abs(p));for(let y=1;y<=5;y++){let v=i(o(h*Math.pow(N/h,y/6)));if(!Number.isFinite(v)||Math.abs(v-p)>b)return!1}return!0},c=s?1/t:t,l=0,f=!1,m=NaN,d=NaN;for(let h=1;h<=60;h++){let N=i(o(c));if(!Number.isFinite(N))return h-1;let p=Math.abs(N);if(h===1){l=p,m=p,d=c,c*=.125;continue}if(Math.abs(p-m)<=1e-10*Math.max(1,p))return a(d,c,N)?1/0:0;if(f&&l>1e-6&&p<1e-8*l)return h-1;p>l&&(f=!0,l=p),m=p,d=c,c*=.125}return 1/0}function Bi(i,e,t=1,n){if(t===0){let c=Bi(i,e,-1,n),l=Bi(i,e,1,n);return c===void 0||l===void 0?NaN:Math.abs(c-l)>1e-5?NaN:(c+l)/2}let r=t>0?1:-1,s=yr(i,e,r);if(s===0)return NaN;let[o,a]=vi(i,e,{step:r,deadline:n,...Number.isFinite(s)?{maxeval:s}:{}});return Number.isFinite(o)&&a>1e-6*Math.max(1,Math.abs(o))?NaN:o}function*Ir(){yield[0,1];for(let i=1;;i++)for(let e=0;e<=i;e++){let t=i-e;t!==0&&G(e,t)===1&&(yield[e,t],yield[-e,t])}}function*Tr(){yield[0,1];for(let i=1;;i++)for(let e=0;e<=i;e++){let t=i-e;t!==0&&G(e,t)===1&&(yield[e,t])}}function*vr(){yield[0,0];for(let i=1;;i++)for(let e=0;e<=i;e++){let t=i-e;if(t===0||G(e,t)!==1)continue;let n=e/t;for(let r=0;r<=i;r++){let s=i-r;if(s===0||G(r,s)!==1)continue;let o=r/s;yield[n,o],yield[-n,o],yield[n,-o],yield[-n,-o]}}}function*Er(){yield 0;for(let i=1;;i++)yield i,yield-i}function*Mr(){for(let i=0;;i++)yield i}function me(i,e){for(;e!==BigInt(0);)[i,e]=[e,i%e];return i<0?-i:i}function ki(i,e){return i*e/me(i,e)}function Je(i,e){let t=Dt(i),n=BigInt(1),r=BigInt(1),s=BigInt(e);for(let[o,a]of t){let c=L(a);n=n*o**(c/s),r=r*o**(c%s)}return[n,r]}function Br(i){return i>=Number.MIN_SAFE_INTEGER&&i<=Number.MAX_SAFE_INTEGER?Number(i):i}function*Ft(i){if(i<0)return BigInt(0);if(i<10)return BigInt([1,1,2,6,24,120,720,5040,40320,362880][Number(i)]);if(i%BigInt(2)===BigInt(1))return i*(yield*Ft(i-BigInt(1)));let e=i,t=i,n=i;for(;e>2;)e-=BigInt(2),t+=e,n*=t,yield n;return n}function yo(i){return i!==null&&Array.isArray(i)}function S(i){return i!==null&&Array.isArray(i)&&typeof i[0]=="number"}function Pi(i){return i!==null&&Array.isArray(i)&&typeof i[0]=="bigint"}function k(i){return i[0]==0}function Pe(i){return i[0]>0}function Ri(i){return i[0]==i[1]}function Di(i){return i[0]===-i[1]}function z(i){return i[1]==1}function Io(i){return Number(i[0])}function To(i){return Number(i[1])}function Si(i){return Number(i[0])/Number(i[1])}function vo(i){return i[0]<0}function Eo(i,e){return x(i,fe(e))}function O(i,e){if(typeof i[0]=="number"&&!Number.isFinite(i[0]))return i;let t=e;if(t===null)return i;if(Pi(t))return i=[BigInt(i[0]),BigInt(i[1])],[t[1]*i[0]+t[0]*i[1],t[1]*i[1]];if(!Number.isFinite(t[0]))return t;if(Pi(i)){let s=[BigInt(t[0]),BigInt(t[1])];return[s[1]*i[0]+s[0]*i[1],s[1]*i[1]]}let n=t[1]*i[0]+t[0]*i[1],r=t[1]*i[1];return n<=9007199254740991&&n>=-9007199254740991&&r<=9007199254740991?[n,r]:!Number.isFinite(i[0])||!Number.isFinite(i[1])||!Number.isFinite(t[0])||!Number.isFinite(t[1])?[NaN,1]:[BigInt(t[1])*BigInt(i[0])+BigInt(t[0])*BigInt(i[1]),BigInt(t[1])*BigInt(i[1])]}function x(i,e){if(S(i)&&(!Number.isFinite(i[0])||!Number.isFinite(i[1])))return[NaN,1];if(S(e)&&(!Number.isFinite(e[0])||!Number.isFinite(e[1])))return[NaN,1];if(S(i)&&S(e)){let t=i[0]*e[0],n=i[1]*e[1];return t<=9007199254740991&&t>=-9007199254740991&&n<=9007199254740991?[t,n]:[BigInt(i[0])*BigInt(e[0]),BigInt(i[1])*BigInt(e[1])]}return S(i)?[BigInt(i[0])*e[0],BigInt(i[1])*e[1]]:S(e)?[BigInt(e[0])*i[0],BigInt(e[1])*i[1]]:[i[0]*e[0],i[1]*e[1]]}function $(i){return[-i[0],i[1]]}function fe(i){return i[0]<0?[-i[1],-i[0]]:[i[1],i[0]]}function Mo(i){return[Number(i[0]),Number(i[1])]}function Bo(i,e){if(Number.isInteger(e),e===0)return[1,1];if(e<0&&(i=fe(i),e=-e),e===1)return i;let t=BigInt(e);return[BigInt(i[0])**t,BigInt(i[1])**t]}function wo(i){let e=Math.sqrt(Number(i[0])),t=Math.sqrt(Number(i[1]));if(Number.isInteger(e)&&Number.isInteger(t))return[e,t]}function Ct(i,e){return S(i)&&S(e)?i[1]===1&&e[1]===1?[G(i[0],e[0]),1]:[G(i[0],e[0]),xi(i[1],e[1])]:i[1]===1&&e[1]===1?[me(BigInt(i[0]),BigInt(e[0])),BigInt(1)]:[me(BigInt(i[0]),BigInt(e[0])),ki(BigInt(i[1]),BigInt(e[1]))]}function ke(i){if(S(i)){if(i[1]<0&&(i=[-i[0],-i[1]]),i[0]===1||i[1]===1)return i;if(!Number.isFinite(i[1]))return[0,1];let r=G(i[0],i[1]);return r<=1?i:[i[0]/r,i[1]/r]}i[1]<0&&(i=[-i[0],-i[1]]);let e=me(i[0],i[1]),[t,n]=e<=1?i:[i[0]/e,i[1]/e];return t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER&&n<=Number.MAX_SAFE_INTEGER?[Number(t),Number(n)]:[t,n]}function xo(i){if(!Number.isFinite(i)||i%1===0)return i;let t=1e-15,n=Math.floor(i),r=1,s=0,o=n,a=1;for(;i-n>t*a*a;){i=1/(i-n),n=Math.floor(i);let c=r;r=o;let l=s;s=a,o=c+n*r,a=l+n*s}return[o,a]}function ko(i){if(Pi(i)){let[a,c]=i,[l,f]=Je(a,2),[m,d]=Je(c,2);return[ke([l,m*d]),f*d]}let[e,t]=i,[n,r]=Q(e,2),[s,o]=Q(t,2);return[ke([n,s*o]),r*o]}function _t(i){return!!(typeof i=="number"||Oi(i)||typeof i=="string"&&wr(i))}function Oi(i){return i!==null&&typeof i=="object"&&"num"in i}function wr(i){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(i)||/^[+-]?(0|[1-9][0-9]*)(\.([0-9]+(\([0-9]+\))?|\([0-9]+\)))?([eE][+-]?[0-9]+)?$/.test(i)}function xr(i,e){return typeof i=="number"?Number.isFinite(i)?parseFloat(i.toPrecision(e)):i:i.toPrecision(e)}function $e(i,e){return i.toFixed(e)}function Do(i,e,t="auto"){if(t==="max")return{value:String(i),error:String(e)};if(typeof t=="object"&&"fractional"in t){let c=t.fractional;return{value:$e(i,c),error:$e(e,c)}}let n=t==="auto"?2:t.significant,r=xr(e,n),s=parseInt(r.toExponential().split("e")[1],10),o=n-1-s;if(o>0)return{value:$e(i,o),error:$e(r,o)};let a=Math.pow(10,-o);return{value:String(Math.round(i/a)*a),error:String(Math.round(r/a)*a)}}function kr(i){if(i==="N")return[0,""];let e={I:1,V:5,X:10,L:50,C:100,D:500,M:1e3},t=0,n=0;i=i.toUpperCase();for(let r=i.length-1;r>=0;r--){let s=e[i[r]];if(s===void 0)return[t,i.slice(r)];s<n?t-=s:t+=s,n=s}return[t,""]}function Vt(i,e){if(i=i.trim(),i.length===0)return[NaN,""];if(i.startsWith("+"))return Vt(i.slice(1),e);if(i.startsWith("-")){let[r,s]=Vt(i.slice(1),e);return[-r,s]}let t=10;if(typeof e=="string"&&(e=e.toLowerCase()),i.startsWith("0x"))t=16,i=i.slice(2);else if(i.startsWith("0b"))t=2,i=i.slice(2);else{if(e==="roman")return kr(i);if(e==="base64"||e==="base-64")try{return[parseInt(btoa(i)),""]}catch{return[NaN,""]}else typeof e=="number"?t=e:typeof e=="string"&&(t=parseInt(e))}let n=0;for(let r=0;r<i.length;r++){let s={" ":-1,"\xA0":-1,"\u2000":-1,"\u2001":-1,"\u2002":-1,"\u2003":-1,"\u2004":-1,"\u2005":-1,"\u2006":-1,"\u2007":-1,"\u2008":-1,"\u2009":-1,"\u200A":-1,"\u200B":-1,"\u202F":-1,"\u205F":-1,_:-1,",":-1,0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,b:11,c:12,d:13,e:14,f:15,g:16,h:17,i:18,j:19,k:20,l:21,m:22,n:23,o:24,p:25,q:26,r:27,s:28,t:29,u:30,v:31,w:32,x:33,y:34,z:35}[i[r]];if(s!==-1){if(s===void 0)return[n,i.substring(r)];if(s>=t)return[n,i.substring(r)];n=n*t+s}}return[n,""]}function P(i,e){if(typeof e=="number"&&typeof i=="number")return i.toFixed(e);let t=i.toString();if(typeof i=="number"&&Number.isInteger(i)&&t.includes("e")){let n=BigInt(i).toString(),r=n.match(/0+$/);if((r?r[0].length:0)<=5)return n}else if(typeof i=="bigint"){let n=t.match(/0+$/),r=n?n[0].length:0;if(r>5)return`${t.slice(0,-r)}e+${r}`}return t}function Co(i){if(typeof i=="number")return Number.isInteger(i)?BigInt(i):null;if(i==null||!_t(i))return null;let e=Oi(i)?i.num:i;if(typeof e=="number")return Number.isInteger(e)?BigInt(e):null;if(typeof e!="string")return null;let t=e.toLowerCase().replace(/[nd]$/,"").replace(/[\u0009-\u000d\u0020\u00a0]/g,"");return t==="nan"||/^(infinity|\+infinity|oo|\+oo|-infinity|-oo)$/.test(t)?null:L(t)}function _(i,e){if(typeof i=="number")return isNaN(i)?"NaN":Number.isFinite(i)?typeof e=="number"?{num:i.toFixed(e)}:i:i<0?"NegativeInfinity":"PositiveInfinity";if(i>=Number.MIN_SAFE_INTEGER&&i<=Number.MAX_SAFE_INTEGER)return Number(i);let t=Number(i);return Number.isFinite(t)&&BigInt(t)===i?t:{num:P(i)}}var Xe=["number","finite_number","complex","finite_complex","imaginary","real","finite_real","rational","finite_rational","integer","finite_integer","non_finite_number"],Ai=["indexed_collection","list","tuple"],He=[...Ai,"collection","set","record","dictionary"],We=["scalar",...Xe,"boolean","string"],Fi=["value","color",...He,...We],Ci=["expression","symbol","function",...Fi],_i=["any","unknown","nothing","never","error",...Ci],qt=new Set(Xe),Zt=new Set(He),Lt=new Set(We),de=new Set(_i);function Gt(i){return typeof i=="string"?de.has(i):typeof i!="object"||!("kind"in i)?!1:i.kind==="signature"||i.kind==="union"||i.kind==="intersection"||i.kind==="negation"||i.kind==="value"||i.kind==="tuple"||i.kind==="list"||i.kind==="record"||i.kind==="dictionary"||i.kind==="set"||i.kind==="symbol"||i.kind==="expression"||i.kind==="numeric"||i.kind==="collection"||i.kind==="indexed_collection"||i.kind==="reference"}var Ke=class{input;pos=0;line=1;column=1;tokens=[];tolerant;constructor(e,t){this.input=e,this.tolerant=t?.tolerant??!1}saveState(){return{pos:this.pos,line:this.line,column:this.column,tokens:[...this.tokens]}}restoreState(e){this.pos=e.pos,this.line=e.line,this.column=e.column,this.tokens=e.tokens}error(e){throw new Error(`Lexer error at line ${this.line}, column ${this.column}: ${e}`)}peek(e=0){let t=this.pos+e;return t<this.input.length?this.input[t]:""}advance(){let e=this.input[this.pos++];return e===`
|
|
3
3
|
`?(this.line++,this.column=1):this.column++,e}match(e){if(this.input.slice(this.pos,this.pos+e.length)===e){for(let t=0;t<e.length;t++)this.advance();return!0}return!1}isEOF(){return this.pos>=this.input.length}skipWhitespace(){for(;!this.isEOF()&&/\s/.test(this.peek());)this.advance()}readIdentifier(){let e="";for(;!this.isEOF()&&/[a-zA-Z0-9_]/.test(this.peek());)e+=this.advance();return e}readVerbatimString(){if(!this.match("`"))return"";let e="";for(;!this.isEOF()&&this.peek()!=="`";)this.match("\\`")?e+="`":this.match("\\\\")?e+="\\":e+=this.advance();return this.isEOF()&&this.error("Unterminated verbatim string"),this.advance(),e}readStringLiteral(){let e=this.advance(),t="";for(;!this.isEOF()&&this.peek()!==e;)this.match("\\"+e)?t+=e:this.match("\\\\")?t+="\\":t+=this.advance();return this.isEOF()&&this.error("Unterminated string literal"),this.advance(),t}readNumber(){let e="";if((this.peek()==="-"||this.peek()==="+")&&(e+=this.advance()),this.match("0x")||this.match("0X")){for(e+="x";!this.isEOF()&&/[0-9a-fA-F]/.test(this.peek());)e+=this.advance();return"0"+e}if(this.match("0b")||this.match("0B")){for(e+="b";!this.isEOF()&&/[01]/.test(this.peek());)e+=this.advance();return"0"+e}for(;!this.isEOF()&&/[0-9]/.test(this.peek());)e+=this.advance();if(this.peek()==="."&&/[0-9]/.test(this.peek(1)))for(e+=this.advance();!this.isEOF()&&/[0-9]/.test(this.peek());)e+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(e+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(e+=this.advance());!this.isEOF()&&/[0-9]/.test(this.peek());)e+=this.advance();return e}createToken(e,t){return{type:e,value:t,position:this.pos-t.length,line:this.line,column:this.column-t.length}}nextToken(){if(this.skipWhitespace(),this.isEOF())return this.createToken("EOF","");let e=this.pos,t=this.peek();if(this.match("->"))return this.createToken("->","->");if(this.match(".."))return this.createToken("..","..");if(this.match("+\u221E")||this.match("+oo"))return this.createToken("PLUS_INFINITY",this.input.slice(e,this.pos));if(this.match("-\u221E")||this.match("-oo"))return this.createToken("MINUS_INFINITY",this.input.slice(e,this.pos));if(this.match("+infinity"))return this.createToken("PLUS_INFINITY","+infinity");if(this.match("-infinity"))return this.createToken("MINUS_INFINITY","-infinity");if(/[a-zA-Z_]/.test(t)){let n=this.readIdentifier();switch(n){case"true":return this.createToken("TRUE",n);case"false":return this.createToken("FALSE",n);case"nan":return this.createToken("NAN",n);case"infinity":return this.createToken("INFINITY",n);case"oo":return this.createToken("INFINITY",n);default:return this.createToken("IDENTIFIER",n)}}switch(t){case"|":return this.advance(),this.createToken("|","|");case"&":return this.advance(),this.createToken("&","&");case"!":return this.advance(),this.createToken("!","!");case"^":return this.advance(),this.createToken("^","^");case"(":return this.advance(),this.createToken("(","(");case")":return this.advance(),this.createToken(")",")");case"<":return this.advance(),this.createToken("<","<");case">":return this.advance(),this.createToken(">",">");case"[":return this.advance(),this.createToken("[","[");case"]":return this.advance(),this.createToken("]","]");case",":return this.advance(),this.createToken(",",",");case":":return this.advance(),this.createToken(":",":");case"?":return this.advance(),this.createToken("?","?");case"*":return this.advance(),this.createToken("*","*");case"+":return/[0-9]/.test(this.peek(1))?this.createToken("NUMBER_LITERAL",this.readNumber()):(this.advance(),this.createToken("+","+"));case"x":return/[0-9]/.test(this.peek(1))?(this.advance(),this.createToken("x","x")):(this.advance(),this.createToken("x","x"))}if(t==='"'||t==="'")return this.createToken("STRING_LITERAL",this.readStringLiteral());if(t==="`")return this.createToken("VERBATIM_STRING",this.readVerbatimString());if(/[0-9]/.test(t)||t==="-"&&/[0-9]/.test(this.peek(1))){let n=this.readNumber();return this.peek()==="x"&&/[0-9]/.test(this.peek(1)),this.createToken("NUMBER_LITERAL",n)}if(t==="\u221E")return this.advance(),this.createToken("INFINITY","\u221E");if(this.tolerant)return this.createToken("EOF","");this.error(`Unexpected character: ${t}`)}tokenize(){let e=[];for(;!this.isEOF();){let t=this.nextToken();if(t&&(e.push(t),t.type==="EOF"))break}return e}peekToken(){if(this.tokens.length===0){let e=this.nextToken();e&&this.tokens.push(e)}return this.tokens[0]||this.createToken("EOF","")}consumeToken(){if(this.tokens.length===0){let e=this.nextToken();if(e)return e}return this.tokens.shift()||this.createToken("EOF","")}matchToken(e){return this.peekToken().type===e?(this.consumeToken(),!0):!1}expectToken(e){let t=this.consumeToken();return t.type!==e&&this.error(`Expected ${e}, got ${t.type}`),t}};var Qe=class{lexer;typeResolver;current;allowTrailing;_end=0;constructor(e,t){this.allowTrailing=t?.allowTrailing??!1,this.lexer=new Ke(e,{tolerant:this.allowTrailing}),this.typeResolver=t?.typeResolver??{forward:()=>{},resolve:()=>{},get names(){return[]}},this.current=this.lexer.consumeToken()}get endOffset(){return this._end}error(e,t){this.errorAtToken(this.current,e,t)}errorAtToken(e,t,n){let r=this.lexer.input;this.allowTrailing&&(r=r.slice(0,e.position+e.value.length));let o=r.split(`
|
|
4
4
|
`)[e.line-1]||r,a=e.column,c=" ".repeat(Math.max(0,a-1))+"^",l=["","Invalid type",`| ${o}`,`| ${c}`,"|",`| ${t}`];n&&l.push(`| ${n}`),l.push("");let f=new Error(l.join(`
|
|
5
5
|
`));throw f.position=e.position,f.rawMessage=t,f}advance(){let e=this.current;return this._end=e.position+e.value.length,this.current=this.lexer.consumeToken(),e}match(e){return this.current.type===e?(this.advance(),!0):!1}expect(e){return this.current.type!==e&&this.error(`Expected ${e}, got ${this.current.type}`),this.advance()}createNode(e,t={}){return{kind:e,position:this.current.position,line:this.current.line,column:this.current.column,...t}}parseType(){this.checkForNakedFunctionSignature();let e=this.parseUnionType();if(e||this.error("Expected a type"),this.current.type!=="EOF")if(this.current.type==="->"||this.current.type==="+"||this.current.type==="*"||this.current.type==="?")this.error("Function signatures must be enclosed in parentheses","For example `(x: number) -> number`");else if(this.current.type==="("){let t=this.lexer.input;t.includes("set(")||t.includes("collection(")||t.includes("list(")||t.includes("tuple(")?t.includes("set(")?this.error("Use `set<integer>` instead of `set(integer)`."):t.includes("collection(")?this.error("Use `collection<type>` instead of `collection(type)`.","For example `collection<number>`"):t.includes("list(")?this.error("Use `list<type>` instead of `list(type)`.","For example `list<number>`"):t.includes("tuple(")&&this.error("Use `tuple<type1, type2>` instead of `tuple(type1, type2)`.","For example `tuple<string, number>`"):this.error("Unexpected token after type")}else this.error("Unexpected token after type");return e}parseTypePrefix(){this.checkForNakedFunctionSignature();let e=this.parseUnionType();return e||this.error("Expected a type"),e}checkForNakedFunctionSignature(){if(this.current.type==="IDENTIFIER"){let e=this.lexer.saveState(),t=this.current;try{let n=this.current;if(this.advance(),this.current.type===":"){this.advance();let r=!1,s=0,o=10;for(;this.current.type!=="EOF"&&s<o;){if(this.current.type==="->"){r=!0;break}if(this.current.type==="+"||this.current.type==="*"||this.current.type==="?"){if(this.advance(),this.current.type==="->"){r=!0;break}s++}this.advance(),s++}r&&(this.lexer.restoreState(e),this.current=t,this.errorAtToken(n,"Function signatures must be enclosed in parentheses","For example `(z: string*) -> boolean`"))}this.lexer.restoreState(e),this.current=t}catch(n){if(this.lexer.restoreState(e),this.current=t,n instanceof Error&&n.message.includes("Function signatures must be enclosed"))throw n}}}parseUnionType(){let e=this.parseIntersectionType();if(!e)return;let t=[e];for(;this.match("|");){let n=this.parseIntersectionType();n||this.error("Expected type after |"),t.push(n)}return t.length===1?t[0]:this.createNode("union",{types:t})}parseIntersectionType(){let e=this.parsePrimaryType();if(!e)return;let t=[e];for(;this.match("&");){let n=this.parsePrimaryType();n||this.error("Expected type after &"),t.push(n)}return t.length===1?t[0]:this.createNode("intersection",{types:t})}parsePrimaryType(){if(this.match("!")){let e=this.parsePrimaryType();return e||this.error("Expected type after !"),this.createNode("negation",{type:e})}if(this.current.type==="("){let e=this.parseFunctionSignature();if(e)return e;if(this.match("(")){let t=this.parseUnionType();if(t||this.error("Expected type after ("),this.current.type===","){let n=[this.createNode("named_element",{name:void 0,type:t})];for(;this.match(",");){let r=this.parseUnionType();r||this.error("Expected type after ,"),n.push(this.createNode("named_element",{name:void 0,type:r}))}return this.expect(")"),this.createNode("tuple",{elements:n})}return this.expect(")"),this.createNode("group",{type:t})}}return this.parseListType()||this.parseTupleType()||this.parseRecordType()||this.parseDictionaryType()||this.parseSetType()||this.parseCollectionType()||this.parseExpressionType()||this.parseSymbolType()||this.parseNumericType()||this.parsePrimitiveType()||this.parseValue()||this.parseTypeReference()}isFunctionSignature(){let e=this.lexer.saveState(),t=this.current;this.advance();let n=1;for(;n>0&&this.current.type!=="EOF";)this.current.type==="("?n++:this.current.type===")"&&n--,this.advance();let r=this.current.type==="->";return this.lexer.restoreState(e),this.current=t,r}parseFunctionSignature(){if(this.current.type!=="("||!this.isFunctionSignature())return;let e=[];if(this.advance(),!this.match(")")){do{let o=this.parseArgument();o||this.error("Expected argument"),e.push(o)}while(this.match(","));this.expect(")")}this.expect("->");let t=this.parseUnionType();t||this.error("Expected return type after ->");let n=e.some(o=>o.modifier==="optional"),r=e.some(o=>o.modifier==="variadic_zero"||o.modifier==="variadic_one"),s=e.filter(o=>o.modifier==="variadic_zero"||o.modifier==="variadic_one").length;return n&&r&&this.error("Variadic arguments cannot be used with optional arguments"),s>1&&this.error("There can be only one variadic argument"),this.createNode("function_signature",{arguments:e,returnType:t})}parseArgument(){let e=this.parseNamedElement();if(!e)return;let t;return this.match("?")?t="optional":this.match("*")?t="variadic_zero":this.match("+")&&(t="variadic_one"),this.createNode("argument",{element:e,modifier:t})}parseNamedElement(){let e;if(this.current.type==="IDENTIFIER"||this.current.type==="VERBATIM_STRING"){let n=this.current;if(this.lexer.peekToken().type===":"){e=n.value,this.advance(),this.advance();let s=this.parseUnionType();return s?this.createNode("named_element",{name:e,type:s}):void 0}}let t=this.parseUnionType();if(t)return this.createNode("named_element",{name:void 0,type:t})}parseListType(){if(this.current.type==="IDENTIFIER"){let e=this.current,n=this.lexer.peekToken().type==="<";switch(e.value){case"list":return n?(this.advance(),this.parseListTypeImpl()):void 0;case"vector":return n?(this.advance(),this.parseVectorType()):(this.advance(),this.createNode("list",{elementType:this.createNode("primitive",{name:"number"}),dimensions:void 0}));case"matrix":return n?(this.advance(),this.parseMatrixType()):(this.advance(),this.createNode("matrix",{elementType:this.createNode("primitive",{name:"number"}),dimensions:[this.createNode("dimension",{size:-1}),this.createNode("dimension",{size:-1})]}));case"tensor":return n?(this.advance(),this.parseTensorType()):(this.advance(),this.createNode("list",{elementType:this.createNode("primitive",{name:"number"}),dimensions:void 0}));default:return}}}parseListTypeImpl(){let e=this.createNode("primitive",{name:"any"}),t;if(this.match("<")){if(t=this.parseDimensions(),!t){let n=this.parseUnionType();n&&(e=n,this.match("^")&&(t=this.parseCaretDimensions()))}this.expect(">")}return this.createNode("list",{elementType:e,dimensions:t})}parseVectorType(){let e=this.createNode("primitive",{name:"number"}),t;if(this.match("<")){if(this.current.type==="NUMBER_LITERAL")t=parseInt(this.advance().value);else{let n=this.parseUnionType();n&&(e=n,this.match("^")&&(this.current.type==="NUMBER_LITERAL"?t=parseInt(this.advance().value):this.error("Expected number after ^")))}this.expect(">")}return this.createNode("vector",{elementType:e,size:t})}parseMatrixType(){let e=this.createNode("primitive",{name:"number"}),t;if(this.match("<")){if(t=this.parseDimensions(),!t){let n=this.parseUnionType();n&&(e=n,this.match("^")&&(t=this.parseCaretDimensions()))}this.expect(">")}else t=[this.createNode("dimension",{size:null}),this.createNode("dimension",{size:null})];return this.createNode("matrix",{elementType:e,dimensions:t})}parseTensorType(){let e=this.createNode("primitive",{name:"number"});if(this.match("<")){let t=this.parseUnionType();t&&(e=t),this.expect(">")}return this.createNode("tensor",{elementType:e})}parseDimensions(){let e=this.parseDimension();if(!e)return;let t=[e];for(;;){let n=this.current;if(n.type==="IDENTIFIER"&&/^(x\d+)+$/.test(n.value)){this.advance();for(let r of n.value.match(/x(\d+)/g))t.push(this.createNode("dimension",{size:parseInt(r.slice(1))}))}else if(n.type==="IDENTIFIER"&&n.value==="x"){let r=this.lexer.peekToken();r.type!=="NUMBER_LITERAL"&&r.type!=="?"&&this.error("Expected a positive integer literal or `?` after x. For example: `2x3` or `2x?`"),this.advance(),t.push(this.parseDimension())}else break}return t}parseDimension(){if(this.match("?"))return this.createNode("dimension",{size:null});if(this.current.type==="NUMBER_LITERAL"){let e=parseInt(this.advance().value);return this.createNode("dimension",{size:e})}}parseCaretDimensions(){let e=this.match("("),t=this.parseDimensions();return e&&this.expect(")"),t}parseTupleType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="tuple"){if(this.lexer.peekToken().type!=="<")return;this.advance(),this.expect("<");let t=[];if(this.current.type!==">"){let n=this.parseNamedElement();n||this.error("Expected tuple element"),t.push(n);let r=n.name!==void 0;for(;this.match(",");){let s=this.parseNamedElement();s||this.error("Expected tuple element"),r&&!s.name&&this.error("All tuple elements should be named, or none. Previous elements were named, but this one isn't."),!r&&s.name&&this.error("All tuple elements should be named, or none. Previous elements were not named, but this one is."),t.push(s)}}return this.expect(">"),this.createNode("tuple",{elements:t})}}parseRecordType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="record"){this.advance();let e=[];if(this.match("<")){if(this.current.type!==">")do{let t=this.parseRecordEntry();t||this.error("Expected record entry"),e.push(t)}while(this.match(","));this.expect(">")}return this.createNode("record",{entries:e})}}parseRecordEntry(){let e;if(this.current.type==="IDENTIFIER")e=this.advance().value;else if(this.current.type==="VERBATIM_STRING")e=this.advance().value;else return;this.expect(":");let t=this.parseUnionType();return t||this.error("Expected value type"),this.createNode("record_entry",{key:e,valueType:t})}parseDictionaryType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="dictionary"){this.advance();let e=this.createNode("primitive",{name:"any"});if(this.match("<")){let t=this.parseUnionType();t&&(e=t),this.expect(">")}return this.createNode("dictionary",{valueType:e})}}parseSetType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="set"){this.advance();let e=this.createNode("primitive",{name:"any"});if(this.match("<")){let t=this.parseUnionType();t&&(e=t),this.expect(">")}return this.createNode("set",{elementType:e})}}parseCollectionType(){if(this.current.type==="IDENTIFIER"){let e=this.current.value==="indexed_collection",t=this.current.value==="collection";if(e||t){this.advance();let n=this.createNode("primitive",{name:"any"});if(this.match("<")){let r=this.parseUnionType();r&&(n=r),this.expect(">")}return this.createNode("collection",{elementType:n,indexed:e})}}}parseExpressionType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="expression"){if(this.lexer.peekToken().type!=="<")return;this.advance(),this.expect("<");let n=this.expect("IDENTIFIER").value;return this.expect(">"),this.createNode("expression",{operator:n})}}parseSymbolType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="symbol"){if(this.lexer.peekToken().type!=="<")return;this.advance(),this.expect("<");let n=this.expect("IDENTIFIER").value;return this.expect(">"),this.createNode("symbol",{name:n})}}parseNumericType(){if(this.current.type==="IDENTIFIER"&&["real","finite_real","rational","finite_rational","integer","finite_integer"].includes(this.current.value)){let t=this.advance().value;if(this.match("<")){let n=this.parseValue();this.expect("..");let r=this.parseValue();this.expect(">");let s=n?.value??-1/0,o=r?.value??1/0;return(Number.isNaN(s)||Number.isNaN(o))&&this.error("Invalid numeric type","Lower and upper bounds must be valid numbers"),s>o&&this.error(`Invalid range: ${s}..${o}`,"The lower bound must be less than the upper bound"),this.createNode("numeric",{baseType:t,lowerBound:n,upperBound:r})}return this.createNode("numeric",{baseType:t})}}parsePrimitiveType(){if(this.current.type==="IDENTIFIER"){let e=this.current.value;if(de.has(e))return this.advance(),this.createNode("primitive",{name:e})}}parseValue(){let e,t;switch(this.current.type){case"STRING_LITERAL":e=this.advance().value,t="string";break;case"NUMBER_LITERAL":e=parseFloat(this.advance().value),t="number";break;case"TRUE":this.advance(),e=!0,t="boolean";break;case"FALSE":this.advance(),e=!1,t="boolean";break;case"NAN":this.advance(),e=NaN,t="nan";break;case"INFINITY":case"PLUS_INFINITY":this.advance(),e=1/0,t="infinity";break;case"MINUS_INFINITY":this.advance(),e=-1/0,t="infinity";break;default:return}return this.createNode("value",{value:e,valueType:t})}parseTypeReference(){let e=this.current.type==="IDENTIFIER"&&this.current.value==="type";if(e&&this.advance(),this.current.type==="IDENTIFIER"){let t=this.current,n=this.advance().value;return this.typeResolver.resolve(n)?this.createNode("type_reference",{name:n,isForward:e}):e&&this.typeResolver.forward(n)?this.createNode("type_reference",{name:n,isForward:!0}):(e||this.errorAtToken(t,`Unknown type "${n}"`,"Syntax error. The type was not recognized."),this.createNode("type_reference",{name:n,isForward:e}))}}};function Yt(i,e){switch(i.kind){case"function_signature":return e.visitFunctionSignature(i);case"union":return e.visitUnionType(i);case"intersection":return e.visitIntersectionType(i);case"negation":return e.visitNegationType(i);case"group":return e.visitGroupType(i);case"list":return e.visitListType(i);case"vector":return e.visitVectorType(i);case"matrix":return e.visitMatrixType(i);case"tensor":return e.visitTensorType(i);case"tuple":return e.visitTupleType(i);case"record":return e.visitRecordType(i);case"dictionary":return e.visitDictionaryType(i);case"set":return e.visitSetType(i);case"collection":return e.visitCollectionType(i);case"expression":return e.visitExpressionType(i);case"symbol":return e.visitSymbolType(i);case"numeric":return e.visitNumericType(i);case"primitive":return e.visitPrimitiveType(i);case"type_reference":return e.visitTypeReference(i);case"value":return e.visitValue(i);default:throw new Error(`Unknown node kind: ${i.kind}`)}}var Vi=class{typeResolver;constructor(e){this.typeResolver=e??{forward:()=>{},resolve:()=>{},get names(){return[]}}}buildType(e){return Yt(e,this)}visitFunctionSignature(e){let t=[],n=[],r,s;for(let c of e.arguments){let l=this.buildNamedElement(c.element);switch(c.modifier){case"optional":n.push(l);break;case"variadic_zero":r=l,s=0;break;case"variadic_one":r=l,s=1;break;default:t.push(l);break}}let o=this.buildType(e.returnType),a={kind:"signature",args:t.length>0?t:void 0,result:o};return n.length>0&&(a.optArgs=n),r&&(a.variadicArg=r,a.variadicMin=s),a}visitUnionType(e){return{kind:"union",types:e.types.map(n=>this.buildType(n))}}visitIntersectionType(e){return{kind:"intersection",types:e.types.map(n=>this.buildType(n))}}visitNegationType(e){return{kind:"negation",type:this.buildType(e.type)}}visitGroupType(e){return this.buildType(e.type)}visitListType(e){let t=this.buildType(e.elementType),n=e.dimensions?.map(r=>this.buildDimension(r));return{kind:"list",elements:t,dimensions:n}}visitVectorType(e){let t=this.buildType(e.elementType);return e.size!==void 0?{kind:"list",elements:t,dimensions:[e.size]}:{kind:"list",elements:t}}visitMatrixType(e){let t=this.buildType(e.elementType);if(e.dimensions){let n=e.dimensions.map(r=>this.buildDimension(r));return{kind:"list",elements:t,dimensions:n}}return{kind:"list",elements:t,dimensions:[-1,-1]}}visitTensorType(e){return{kind:"list",elements:this.buildType(e.elementType)}}visitTupleType(e){return{kind:"tuple",elements:e.elements.map(n=>this.buildNamedElement(n))}}visitRecordType(e){if(e.entries.length===0)return"record";let t={};for(let n of e.entries)t[n.key]=this.buildType(n.valueType);return{kind:"record",elements:t}}visitDictionaryType(e){let t=this.buildType(e.valueType);return this.isAnyType(t)?"dictionary":{kind:"dictionary",values:t}}visitSetType(e){let t=this.buildType(e.elementType);return this.isAnyType(t)?"set":{kind:"set",elements:t}}visitCollectionType(e){let t=this.buildType(e.elementType);return e.indexed?this.isAnyType(t)?"indexed_collection":{kind:"indexed_collection",elements:t}:this.isAnyType(t)?"collection":{kind:"collection",elements:t}}visitExpressionType(e){return{kind:"expression",operator:e.operator}}visitSymbolType(e){return{kind:"symbol",name:e.name}}visitNumericType(e){if(!e.lowerBound&&!e.upperBound)return e.baseType;let t=e.lowerBound?this.buildValue(e.lowerBound):-1/0,n=e.upperBound?this.buildValue(e.upperBound):1/0;return t===-1/0&&n===1/0?e.baseType:{kind:"numeric",type:e.baseType,lower:t,upper:n}}visitPrimitiveType(e){return e.name}visitTypeReference(e){let t=this.typeResolver.resolve(e.name);if(t)return t;if(e.isForward){let n=this.typeResolver.forward(e.name);if(n)return n}return e.name}visitValue(e){return{kind:"value",value:e.value}}buildNamedElement(e){let t=this.buildType(e.type);return e.name?{name:e.name,type:t}:{type:t}}buildDimension(e){return e.size??-1}buildValue(e){return e.value}isAnyType(e){return e==="any"||typeof e=="object"&&"kind"in e&&e.kind==="primitive"&&"name"in e&&e.name==="any"}};function Ut(i,e){return new Vi(e).buildType(i)}var ze=new Map,Pr=2048;function jt(i){if(i===null||typeof i!="object"||Object.isFrozen(i))return i;Object.freeze(i);for(let e of Object.values(i))jt(e);return i}function qi(i,e){if(i===void 0)return;if(Gt(i))return i;if(typeof i!="string")return;let t=e===void 0;if(t){let n=ze.get(i);if(n!==void 0)return n}try{let r=new Qe(i,{typeResolver:e}).parseType(),s=Ut(r,e);return t&&(ze.size>=Pr&&ze.clear(),ze.set(i,jt(s))),s}catch(n){throw new Error(`Failed to parse type "${i}": ${n instanceof Error?n.message:String(n)}`)}}var Jt={number:Xe,non_finite_number:[],finite_number:["finite_complex","finite_real","finite_integer","finite_rational"],complex:["finite_complex","imaginary","real","rational","integer","finite_real","finite_rational","finite_integer","non_finite_number"],finite_complex:["imaginary","finite_real","finite_rational","finite_integer"],imaginary:[],real:["rational","integer","finite_real","finite_rational","finite_integer","non_finite_number"],finite_real:["finite_rational","finite_integer"],rational:["finite_rational","finite_integer","integer","non_finite_number"],finite_rational:["finite_integer"],integer:["finite_integer","non_finite_number"],finite_integer:[],any:_i,unknown:[],nothing:[],never:[],error:[],value:Fi,scalar:We,collection:He,indexed_collection:Ai,list:[],set:[],tuple:[],record:[],dictionary:[],function:[],symbol:[],boolean:[],string:[],color:[],expression:Ci},Re=(()=>{let i={},e=t=>{if(i[t])return i[t];let n=new Set([t]);i[t]=n;for(let r of Jt[t])if(r!==t)for(let s of e(r))n.add(s);return n};for(let t of Object.keys(Jt))e(t);return i})();function he(i,e){return e==="any"||i==="never"?!0:e==="never"?!1:e==="error"?i==="error":e==="nothing"?i==="nothing":i==="nothing"?!1:e==="unknown"?!0:i==="unknown"?!1:i===e?!0:Re[e].has(i)}function $t(i,e){if(i===e)return[i];let t=Re[i],n=Re[e];if(t.has(e))return[e];if(n.has(i))return[i];let r=i<e?`${i}|${e}`:`${e}|${i}`,s=Xt.get(r);if(s)return s;let o=[];for(let c of t)n.has(c)&&o.push(c);let a=o.filter(c=>!o.some(l=>l!==c&&Re[l].has(c)));return Xt.set(r,a),a}var Xt=new Map;function Rr(i){return i.lower!==void 0&&i.upper!==void 0&&Number.isFinite(i.lower)&&Number.isFinite(i.upper)}function Dr(i){switch(i){case"number":return"finite_number";case"complex":return"finite_complex";case"real":return"finite_real";case"rational":return"finite_rational";case"integer":return"finite_integer";default:return i}}var Sr={finite_number:"number",finite_complex:"complex",finite_real:"real",finite_rational:"rational",finite_integer:"integer"};function Or(i){if(!i.some(t=>t==="non_finite_number"))return i;let e;for(let t of i){if(typeof t!="string")continue;let n=Sr[t];n&&(e??=[]).push(n)}return e?[...i,...e]:i}function Ar(i,e){if(i==="never"||e==="never")return!0;if(i==="any"||e==="any"||i==="unknown"||e==="unknown")return!1;if(i==="nothing"||e==="nothing")return i!==e;if(I(i,e)||I(e,i))return!1;if(typeof i=="object"&&i.kind==="value"||typeof e=="object"&&e.kind==="value")return!0;if(typeof i=="string"&&typeof e=="string")return $t(i,e).length===0;if(typeof i=="object"&&i.kind==="numeric"&&typeof e=="object"&&e.kind==="numeric"){if($t(i.type,e.type).length===0)return!0;let r=i.lower??-1/0,s=i.upper??1/0,o=e.lower??-1/0,a=e.upper??1/0;return s<o||a<r}let t=De(i),n=De(e);if(t!==n){let r=t?e:i;if(!Li(r)&&!Gi(r)&&!De(r))return!0}return!1}function I(i,e){if(typeof i=="string"&&!de.has(i)&&(i=qi(i)),typeof e=="string"&&!de.has(e)&&(e=qi(e)),e==="any"||i==="never")return!0;if(e==="never")return!1;if(e==="error")return i==="error";if(e==="nothing")return i==="nothing";if(i==="nothing")return!1;if(e==="unknown")return!0;if(i==="unknown")return!1;if(typeof e=="string"){if(typeof i=="string")return he(i,e);if(i.kind==="value")return typeof i.value=="boolean"?e==="boolean":typeof i.value=="number"?Number.isInteger(i.value)?he("integer",e):he("real",e):typeof i.value=="boolean"?he("boolean",e):typeof i.value=="string"?he("string",e):!1;if(i.kind==="union")return i.types.every(t=>I(t,e));if(i.kind==="intersection")return i.types.some(t=>I(t,e));if(i.kind==="negation")return!1;if(i.kind==="numeric"){let t=Rr(i)?Dr(i.type):i.type;return!!I(t,e)}return e==="number"?De(i):e==="symbol"?Zi(i):e==="expression"?Fr(i):e==="function"?zt(i):e==="scalar"?Li(i):e==="value"?Gi(i):e==="indexed_collection"?Qt(i):e==="collection"?Kt(i):e==="tuple"?i.kind==="tuple":e==="list"?i.kind==="list":e==="set"?i.kind==="set":e==="record"?i.kind==="record":e==="dictionary"?i.kind==="dictionary":!1}if(e.kind==="union"){let t=Or(e.types);return typeof i!="string"&&i.kind==="union"?i.types.every(n=>t.some(r=>I(n,r))):t.some(n=>I(i,n))}if(e.kind==="negation")return typeof i!="string"&&i.kind==="negation"?I(e.type,i.type):Ar(i,e.type);if(e.kind==="expression"){if(i==="symbol")return e.operator==="Symbol";if(typeof i=="string")return!1;if(i.kind==="expression")return e.operator==="Symbol"?Zi(i):i.operator===e.operator;if(i.kind==="symbol")return e.operator==="Symbol"}if(typeof i=="string")return!1;if(e.kind==="reference"){if(i.kind==="reference")return i.name===e.name;if(e.alias===!0&&e.def)return I(i,e.def)}if(i.kind==="union")return i.types.some(t=>I(t,e));if(i.kind==="intersection"&&e.kind==="intersection")return e.types.every(t=>i.types.some(n=>I(n,t)));if(i.kind==="intersection")return i.types.every(t=>I(t,e));if(e.kind==="intersection")return e.types.every(t=>I(i,t));if(i.kind==="signature"&&e.kind==="signature"){if(!I(i.result,e.result))return!1;if(i.optArgs||i.variadicArg){if(e.args){if(!i.args||i.args.length!==e.args.length)return!1;for(let t=0;t<e.args.length;t++)if(!I(e.args[t].type,i.args[t].type))return!1}else if(i.args)return!1;if(e.optArgs){if(!i.optArgs||i.optArgs.length!==e.optArgs.length)return!1;for(let t=0;t<i.optArgs.length;t++)if(!I(e.optArgs[t].type,i.optArgs[t].type))return!1}else if(i.optArgs)return!1;if(e.variadicArg){if(!i.variadicArg||i.variadicMin!=e.variadicMin||!I(e.variadicArg.type,i.variadicArg.type))return!1}else if(i.variadicArg)return!1}else{if(e.args&&!i.args)return!1;let t=0;if(e.args){if(i.args.length<e.args.length)return!1;for(;t<e.args.length;){if(!I(e.args[t].type,i.args[t].type))return!1;t+=1}}if(e.optArgs){if(t>=i.args.length)return!0;for(let n=0;n<e.optArgs.length;n++){if(!I(e.optArgs[n].type,i.args[t].type))return!1;if(t+=1,t>=i.args.length)return!0}}if(e.variadicArg){if(t>=i.args.length&&e.variadicMin===0)return!0;if(e.variadicMin>0&&t+e.variadicMin>i.args.length)return!1;for(;t<i.args.length;){if(!I(e.variadicArg.type,i.args[t].type))return!1;t+=1}}}return!0}if(i.kind==="record"&&e.kind==="record"){for(let t of Object.keys(e.elements))if(!(t in i.elements)||!I(i.elements[t],e.elements[t]))return!1;return!0}if(i.kind==="dictionary"&&e.kind==="dictionary")return I(i.values,e.values);if(e.kind==="indexed_collection")return i.kind==="indexed_collection"||i.kind==="list"?I(i.elements,e.elements):i.kind==="tuple"?i.elements.every(t=>I(t.type,e.elements)):!1;if(e.kind==="collection"){if(i.kind==="collection"||i.kind==="indexed_collection"||i.kind==="list")return I(i.elements,e.elements);if(i.kind==="tuple")return i.elements.every(t=>I(t.type,e.elements));if(i.kind==="set")return I(i.elements,e.elements);if(i.kind==="dictionary")return I({kind:"tuple",elements:[{type:"string"},{type:i.values}]},e.elements);if(i.kind==="record")return I({kind:"tuple",elements:[{type:"string"},{type:qr(...Object.values(i.elements))}]},e.elements)}if(i.kind==="tuple"&&e.kind==="tuple"){if(i.elements.length!==e.elements.length)return!1;for(let t=0;t<i.elements.length;t++){let n=i.elements[t],r=e.elements[t];if(!I(n.type,r.type)||r.name!==void 0&&n.name!==r.name)return!1}return!0}if(e.kind==="list"&&i.kind==="list"){if(!I(i.elements,e.elements))return!1;if(e.dimensions){if(!i.dimensions||i.dimensions.length!==e.dimensions.length)return!1;for(let t=0;t<i.dimensions.length;t++)if(e.dimensions[t]!==-1&&i.dimensions[t]!==e.dimensions[t])return!1}return!0}if(i.kind==="symbol"&&e.kind==="symbol")return i.name===e.name;if(e.kind==="numeric"&&i.kind==="value"){if(typeof i.value!="number")return!1;let t=Number.isInteger(i.value)?"finite_integer":"finite_real";return!(!he(t,e.type)||i.value<(e.lower??-1/0)||i.value>(e.upper??1/0))}if(i.kind==="numeric"&&e.kind==="numeric")return!(!I(i.type,e.type)||(i.lower??-1/0)<(e.lower??-1/0)||(i.upper??1/0)>(e.upper??1/0));if(e.kind==="set"&&i.kind==="set")return!!I(i.elements,e.elements);if(e.kind==="value"&&i.kind==="value")return e.value===i.value;if(i.kind==="value"){if(typeof i.value=="boolean")return I("boolean",e);if(typeof i.value=="number")return Number.isInteger(i.value)?I("integer",e):I("real",e);if(typeof i.value=="string")return I("string",e)}return!1}function De(i){return typeof i=="string"?qt.has(i):i.kind==="value"?typeof i.value=="number":i.kind==="numeric"}function Li(i){return De(i)?!0:typeof i=="string"?Lt.has(i):i.kind==="value"?["string","boolean","number"].includes(typeof i.value):!1}function Kt(i){return Qt(i)?!0:typeof i=="string"?Zt.has(i):["collection","set","record","dictionary"].includes(i.kind)}function Qt(i){return typeof i=="string"?!1:["indexed_collection","list","tuple"].includes(i.kind)}function Gi(i){return Li(i)||Kt(i)}function zt(i){return i==="function"||typeof i!="string"&&i.kind==="signature"}function Fr(i){return typeof i=="string"&&["expression","symbol","function"].includes(i)||Gi(i)||zt(i)||Zi(i)?!0:typeof i=="string"?!1:i.kind==="expression"}function Zi(i){return i==="symbol"?!0:typeof i=="string"?!1:i.kind==="symbol"?!0:i.kind==="expression"?i.operator==="Symbol":!1}function Cr(i,e){if(i===e)return i;if(i==="any"||e==="any")return"any";if(i==="never")return e;if(e==="never")return i;if(i==="unknown")return e;if(e==="unknown")return i;if(i==="nothing")return e;if(e==="nothing")return i;if(I(i,e))return e;if(I(e,i))return i;let t=Zr(i,e);return _r.has(t)?Vr(i,e):t}var _r=new Set(["scalar","value","function","expression","collection","indexed_collection","list","set","tuple","record","dictionary","map","any"]);function Vr(i,e){let t=[],n=new Set,r=s=>{if(typeof s=="object"&&s.kind==="union"){for(let a of s.types)r(a);return}let o=typeof s=="string"?s:JSON.stringify(s);n.has(o)||(n.add(o),t.push(s))};return r(i),r(e),t.length===1?t[0]:{kind:"union",types:t}}function qr(...i){return i.length===0?"nothing":i.length===1?i[0]:i.reduce((e,t)=>Cr(e,t))}var Ht=["non_finite_number","finite_integer","integer","finite_rational","rational","finite_real","real","imaginary","finite_complex","complex","finite_number","number","list","record","dictionary","set","tuple","indexed_collection","collection","scalar","value","function","expression"],Wt=new Map;function Zr(i,e){if(i===e)return i;if(i==="any"||e==="any")return"any";if(i==="never")return e;if(e==="never")return i;if(i==="unknown")return e;if(e==="unknown")return i;if(i==="nothing")return e;if(e==="nothing")return i;if(typeof i=="string"&&typeof e=="string"){let t=i<e?`${i}|${e}`:`${e}|${i}`,n=Wt.get(t);if(n===void 0){n="any";for(let r of Ht){let s=Re[r];if(s.has(i)&&s.has(e)){n=r;break}}Wt.set(t,n)}return n}for(let t of Ht)if(I(i,t)&&I(e,t))return t;return"any"}var Yi=Object.freeze([0,1]),re=class i extends F{rational;radical;im=0;imRational=Yi;imRadical=1;factory;constructor(e,t){if(super(),this.factory=t,typeof e=="number"){!Number.isFinite(e)||Number.isInteger(e),this.rational=[e,1],this.radical=1;return}if(typeof e=="bigint"){this.rational=[e,BigInt(1)],this.radical=1;return}typeof e!="object"||"im"in e;let n=1;if(typeof n!="number"||Number.isInteger(n),n==0){this.rational=[0,1],this.radical=1;return}let r=e.rational?[...e.rational]:[1,1];n!=1&&(typeof n=="bigint"?r=x(r,[n,BigInt(1)]):r=x(r,[n,1])),this.rational=r,this.radical=e.radical??1,this.radical<=C&&this.radical>=1,(e.imRational!==void 0||e.imRadical!==void 0)&&(this.imRational=e.imRational?[...e.imRational]:[1,1],this.imRadical=e.imRadical??1,this.imRadical<=C&&this.imRadical>=1),this.normalize()}get type(){return this.isNaN?"number":this.isPositiveInfinity||this.isNegativeInfinity?"non_finite_number":this.im!==0?k(this.rational)?"imaginary":"finite_complex":this.radical!==1?(k(this.rational),"finite_real"):z(this.rational)?"finite_integer":"finite_rational"}get isExact(){return!0}get asExact(){return this}toJSON(){return this.isNaN?"NaN":this.isPositiveInfinity?"PositiveInfinity":this.isNegativeInfinity?"NegativeInfinity":this.isZero?0:this.isOne?1:this.isNegativeOne?-1:this.im!==0?["Complex",k(this.rational)?0:ji(this.rational,this.radical),ji(this.imRational,this.imRadical)]:ji(this.rational,this.radical)}clone(e){return new i(e,this.factory)}toString(){if(this.isZero)return"0";if(this.isOne)return"1";if(this.isNegativeOne)return"-1";if(this.im!==0){let e=Ui(this.imRational,this.imRadical),t=e==="1"?"i":e==="-1"?"-i":`${e}i`;if(k(this.rational))return t;let n=Ui(this.rational,this.radical);return t.startsWith("-")?`(${n} - ${t.slice(1)})`:`(${n} + ${t})`}return Ui(this.rational,this.radical)}get sign(){return k(this.rational)?0:Pe(this.rational)?1:-1}get re(){return Si(this.rational)*Math.sqrt(this.radical)}get bignumRe(){return this._bignumComponent(this.rational,this.radical)}get bignumIm(){return this._bignumComponent(this.imRational,this.imRadical)}_bignumComponent(e,t){if(t===1)return S(e)?new u(e[0]).div(e[1]):new u(e[0]).div(new u(e[1]));let n=u.precision,r=Math.max(n,25);u.precision=r+10;try{return(S(e)?new u(e[0]).div(e[1]):new u(e[0]).div(new u(e[1]))).mulToPrecision(new u(t).sqrt(),r)}finally{u.precision=n}}get numerator(){return this.im!==0?this:this.rational[1]==1?this:this.clone({rational:S(this.rational)?[this.rational[0],1]:[this.rational[0],BigInt(1)],radical:this.radical})}get denominator(){return this.im!==0?this.clone(1):S(this.rational)?this.clone(this.rational[1]):this.clone({rational:[this.rational[1],BigInt(1)]})}_toFloat(){return this.im===0?this.factory(this.bignumRe):this.factory({re:this.bignumRe,im:this.im})}_liftComplex(e){return Number.isSafeInteger(e.re)&&Number.isSafeInteger(e.im)?this.clone({rational:[e.re,1],imRational:[e.im,1]}):null}normalize(){if(Number.isInteger(this.radical)&&this.radical>0&&Number.isFinite(this.radical),(this.imRational!==Yi||this.imRadical!==1)&&this._normalizeIm(),isNaN(this.radical)){this.rational=[NaN,1],this.radical=1,this.im!==0&&this._clearIm();return}let[e,t]=this.rational;if(t==0){this.rational=[NaN,1],this.radical=1,this.im!==0&&this._clearIm();return}if(this.radical===0||e===0){this.rational=[0,1],this.radical=1;return}if(this.radical>=4){let[n,r]=Q(this.radical,2);n!==1&&(this.rational=x(this.rational,[n,1])),this.radical=r}this.rational=ke(this.rational),this.im!==0&&(!Number.isFinite(this.rational[0])||this.radical===1&&this.imRadical)}_clearIm(){this.imRational=Yi,this.imRadical=1,this.im=0}_normalizeIm(){Number.isInteger(this.imRadical)&&this.imRadical>=0&&Number.isFinite(this.imRadical);let[e,t]=this.imRational;if(isNaN(this.imRadical)||t==0||typeof e=="number"&&!Number.isFinite(e)){this.rational=[NaN,1],this.radical=1,this._clearIm();return}if(this.imRadical===0||e===0){this._clearIm();return}if(this.imRadical>=4){let[n,r]=Q(this.imRadical,2);n!==1&&(this.imRational=x(this.imRational,[n,1])),this.imRadical=r}this.imRational=ke(this.imRational),this.im=Si(this.imRational)*(this.imRadical===1?1:Math.sqrt(this.imRadical))}get isNaN(){return Number.isNaN(this.rational[0])}get isPositiveInfinity(){return this.rational[0]==1/0}get isNegativeInfinity(){return this.rational[0]==-1/0}get isComplexInfinity(){return!1}get isZero(){return this.im===0&&k(this.rational)}get isOne(){return this.rational[0]!==this.rational[1]||this.radical!==1?!1:this.im===0}get isNegativeOne(){return this.rational[0]!==-this.rational[1]||this.radical!==1?!1:this.im===0}sgn(){if(this.im===0&&!Number.isNaN(this.rational[0]))return k(this.rational)?0:Pe(this.rational)?1:-1}N(){return this.isZero||this.isOne||this.isNegativeOne?this:this.im===0?this.rational[1]==1&&this.radical===1?this:this.factory(this.bignumRe):this.rational[1]==1&&this.radical===1&&this.imRational[1]==1&&this.imRadical===1?this:this._toFloat()}neg(){return this.im===0?this.isZero?this:this.clone({rational:$(this.rational),radical:this.radical}):this.clone({rational:k(this.rational)?this.rational:$(this.rational),radical:this.radical,imRational:$(this.imRational),imRadical:this.imRadical})}inv(){if(this.isNaN)return this;if(this.isPositiveInfinity||this.isNegativeInfinity)return this.clone(0);if(this.isZero)return this.clone(1/0);if(this.isOne)return this;if(this.isNegativeOne)return this;if(this.im!==0){if(k(this.rational)){let[r,s]=this.imRational;return this.clone({rational:[0,1],imRational:$(x([BigInt(s),BigInt(1)],fe([BigInt(r)*BigInt(this.imRadical),BigInt(1)]))),imRadical:this.imRadical})}let e=this.rational,t=this.imRational,n=fe(O(x(e,e),x(t,t)));return this.clone({rational:x(e,n),imRational:$(x(t,n)),imRadical:1})}return this.clone({rational:x([BigInt(this.rational[1]),BigInt(1)],fe([BigInt(this.rational[0])*BigInt(this.radical),BigInt(1)])),radical:this.radical})}add(e){if(typeof e=="number")return e===0?this:this.im===0?Number.isInteger(e)&&this.radical===1?this.clone({rational:O(this.rational,[e,1])}):this.factory(this.bignumRe).add(e):Number.isInteger(e)&&this.radical===1&&this.imRadical===1?this.clone({rational:O(this.rational,[e,1]),imRational:this.imRational,imRadical:1}):this._toFloat().add(e);if(e.isZero)return this;if(this.isZero)return e;if(!(e instanceof i)){if(e.im!==0){let n=this._liftComplex(e);if(n!==null)return this.add(n)}return e.add(this)}if(this.im===0&&e.im===0)return this.radical===e.radical?this.clone({rational:O(this.rational,e.rational),radical:this.radical}):this.factory(this.bignumRe).add(e);let t=ei({rat:this.rational,rad:this.radical},{rat:e.rational,rad:e.radical});if(t!==null){let n=ei({rat:this.imRational,rad:this.imRadical},{rat:e.imRational,rad:e.imRadical});if(n!==null&&en(t,n))return this.clone({rational:t.rat,radical:t.rad,imRational:n.rat,imRadical:n.rad})}return this._toFloat().add(e)}sub(e){return this.add(e.neg())}mul(e){if(e===0)return this.isPositiveInfinity||this.isNegativeInfinity||this.isNaN?this.clone(NaN):this.clone(0);if(e===1)return this;if(e===-1)return this.neg();if(typeof e=="number")return Number.isInteger(e)?this.im===0?this.clone({rational:x(this.rational,[e,1]),radical:this.radical}):this.clone({rational:x(this.rational,[e,1]),radical:this.radical,imRational:x(this.imRational,[e,1]),imRadical:this.imRadical}):this.im===0?this.factory(this.bignumRe).mul(e):this._toFloat().mul(e);if(e instanceof u)return this.factory(e).mul(this);if(e.im!==0&&!(e instanceof i)){let f=this._liftComplex(e);if(f===null)return e.mul(this);e=f}if(e.isZero)return this.isPositiveInfinity||this.isNegativeInfinity||this.isNaN?this.clone(NaN):e;if(e.isOne)return this;if(e.isNegativeOne)return this.neg();if(e.isNaN)return e;if(this.isZero)return e.isPositiveInfinity||e.isNegativeInfinity||e.isComplexInfinity||e.isNaN?this.clone(NaN):this;if(this.isOne)return e;if(this.isNegativeOne)return e.neg();if(!(e instanceof i))return e.mul(this);if(this.im===0&&e.im===0){let f=BigInt(this.radical)*BigInt(e.radical);return f>BigInt(C)?this.factory(this.bignumRe).mul(e):this.clone({rational:x(this.rational,e.rational),radical:Number(f)})}let t={rat:this.rational,rad:this.radical},n={rat:this.imRational,rad:this.imRadical},r={rat:e.rational,rad:e.radical},s={rat:e.imRational,rad:e.imRadical},o=ii(t,r),a=ii(n,s),c=ii(t,s),l=ii(n,r);if(o!==null&&a!==null&&c!==null&&l!==null){let f=ei(o,Lr(a)),m=ei(c,l);if(f!==null&&m!==null&&en(f,m))return this.clone({rational:f.rat,radical:f.rad,imRational:m.rat,imRadical:m.rad})}return this._toFloat().mul(e)}div(e){if(typeof e=="number")return e===1?this:e===-1?this.neg():e===0?this.clone(NaN):this.im===0?this.clone({rational:x(this.rational,[1,e]),radical:this.radical}):this.clone({rational:x(this.rational,[1,e]),radical:this.radical,imRational:x(this.imRational,[1,e]),imRadical:this.imRadical});if(this.isNaN)return this;if(e.isOne)return this;if(e.isNegativeOne)return this.neg();if(this.isZero)return e.isZero?this.clone(NaN):e.isNaN?e:this;if(e.isNaN)return e;if(e.isZero)return this.im!==0?this.factory({im:1/0}):this.clone(this.sign*(1/0));let t;if(e instanceof i)t=e;else{let s=e.im!==0?this._liftComplex(e):null;if(s===null)return this._toFloat().div(e);t=s}if(this.im!==0||t.im!==0){let s=t.inv();return s instanceof i?this.mul(s):this._toFloat().div(t)}let n=x(this.rational,[BigInt(t.rational[1]),BigInt(t.rational[0])*BigInt(t.radical)]),r=BigInt(this.radical)*BigInt(t.radical);return r>BigInt(C)?this.factory(this.bignumRe).div(t):this.clone({rational:n,radical:Number(r)})}pow(e){if(Array.isArray(e),this.isNaN)return this;if(typeof e=="number"&&isNaN(e))return this.clone(NaN);if(e instanceof F){if(e.isNaN)return this.clone(NaN);if(e.isZero)return this.clone(1);if(e.isOne)return this;if(e.im)e={re:e.re,im:e.im};else{if(e instanceof i&&e.radical===1&&e.rational[0]==1)return this.root(Number(e.rational[1]));e=e.re}}if(e===.5)return this.sqrt();if(typeof e=="object"&&("re"in e||"im"in e))return this._toFloat().pow(e);if(this.isPositiveInfinity){if(e===-1)return this.clone(0);if(e===1/0)return this.clone(1/0);if(e===-1/0)return this.clone(0)}else if(this.isNegativeInfinity&&e===1/0)return this.clone(NaN);if((e===1/0||e===-1/0)&&(this.isOne||this.isNegativeOne))return this.clone(NaN);if(e===1)return this;if(e===-1)return this.inv();if(e===0)return this.clone(1);if(this.isZero){if(e>0)return this;if(e<0)return this.factory({im:1/0})}if(e<0)return this.pow(-e).inv();if(this.im!==0){if(Number.isInteger(e)&&e<=1024){let t=this.clone(1),n=this,r=e;for(;r>0;)r%2===1&&(t=t.mul(n)),r=Math.floor(r/2),r>0&&(n=n.mul(n));return t}return this._toFloat().pow(e)}if(e%1===.5)return this.pow(Math.floor(e)).mul(this.sqrt());if(this.radical>C||this.rational[0]>C||this.rational[0]<-C||this.rational[1]>C)return this.factory(this.bignumRe).pow(e);if(this.sign<0){if(Number.isInteger(e)){let t=e%2===0?1:-1,n=BigInt(e),r=BigInt(this.radical)**n;return r>BigInt(C)?this.factory(this.bignumRe).pow(e):this.clone({rational:[BigInt(t)*(-BigInt(this.rational[0]))**n,BigInt(this.rational[1])**n],radical:Number(r)})}return this.factory({im:(-this.re)**e})}else if(Number.isInteger(e)){let t=BigInt(e),n=BigInt(this.radical)**t;return n>BigInt(C)?this.factory(this.bignumRe).pow(e):this.clone({rational:[BigInt(this.rational[0])**t,BigInt(this.rational[1])**t],radical:Number(n)})}return this.factory(this.bignumRe).pow(e)}root(e){if(e===0)return this.clone(NaN);if(this.isNaN)return this;if(this.isZero)return this;if(e===1)return this;if(e===-1)return this.inv();if(this.im!==0)return this._toFloat().root(e);if(e<0)return this.root(-e).inv();if(e%1===.5)return this.pow(2).root(2*e);if(this.sign<0&&Number.isInteger(e)&&e%2===1)return this.neg().root(e).neg();if(this.radical===1){if(this.sign>0&&Number.isInteger(e)){let[t,n]=this.rational,r=tn(t,e);if(r!==null){let s=tn(n,e);if(s!==null)return this.clone({rational:[r,s]})}}return this.factory(this.bignumRe).root(e)}return this.sign<0?this.factory({im:Math.pow(-this.re,1/e)}):this.factory(this.bignumRe).root(e)}sqrt(){if(this.isZero||this.isOne)return this;if(this.im!==0){if(this.radical===1&&this.imRadical===1){let e=this.rational,t=this.imRational,n=this.clone({rational:O(x(e,e),x(t,t))}).sqrt();if(n instanceof i&&n.im===0&&n.radical===1){let r=[1,2],s=this.clone({rational:x(O(e,n.rational),r)}).sqrt();if(s instanceof i&&s.im===0&&s.radical===1){let o=this.clone({rational:x(O(n.rational,$(e)),r)}).sqrt();if(o instanceof i&&o.im===0&&o.radical===1)return this.clone({rational:s.rational,imRational:Pe(t)?o.rational:$(o.rational),imRadical:1})}}}return this._toFloat().sqrt()}if(this.radical===1)if(S(this.rational)){let[e,t]=this.rational;return Math.abs(e*t)>C?this.factory(this.bignumRe).sqrt():e>0?this.clone({radical:e*t,rational:[1,t]}):this.clone({rational:[0,1],imRational:[1,t],imRadical:-e*t})}else return this.factory(this.bignumRe).sqrt();if(this.sign>0){let e=Math.sqrt(this.re);if(Number.isInteger(e))return this.clone(e)}return this.factory(this.bignumRe).sqrt()}gcd(e){if(!(e instanceof i))return e.gcd(this);if(this.isOne||this.im!==0||e.im!==0||e.isOne)return this.clone(1);let t=Ct(this.rational,e.rational),n=G(this.radical,e.radical);return this.clone({rational:t,radical:n})}abs(){if(this.im!==0){if(k(this.rational)){let n=this.imRational;return this.clone({rational:Pe(n)?n:$(n),radical:this.imRadical})}let e=this.rational,t=this.imRational;return this.clone({rational:O(x(e,e),x(t,t))}).sqrt()}return this.sign===-1?this.neg():this}ln(e){return this.isZero?this.clone(NaN):this.isPositiveInfinity?this.clone(1/0):this.im!==0?this._toFloat().ln(e):this.sign<0?this.clone(NaN):this.isOne?this.clone(0):this.isNegativeOne?this.factory({im:Math.PI}):this.factory(this.bignumRe).ln(e)}exp(){return this.isNaN?this.clone(NaN):this.isZero?this.clone(1):this.im!==0?this._toFloat().exp():this.isNegativeInfinity?this.clone(0):this.isPositiveInfinity?this.clone(1/0):this.factory(this.bignumRe).exp()}_integerPart(e){let t=BigInt(this.rational[0]),n=BigInt(this.rational[1]);n<0n&&(t=-t,n=-n);let r;if(e==="round"){let s=2n*t+n,o=2n*n;r=s/o,s%o!==0n&&s<0n&&(r-=1n)}else r=t/n,t%n!==0n&&(e==="floor"&&t<0n&&(r-=1n),e==="ceil"&&t>0n&&(r+=1n));return this.clone({rational:[r,BigInt(1)],radical:1})}floor(){return this.isNaN||this.im!==0?this.clone(NaN):this.radical===1&&z(this.rational)?this:this.radical===1?this._integerPart("floor"):this.clone(Math.floor(this.re))}ceil(){return this.isNaN||this.im!==0?this.clone(NaN):this.radical===1&&z(this.rational)?this:this.radical===1?this._integerPart("ceil"):this.clone(Math.ceil(this.re))}round(){return this.isNaN||this.im!==0?this.clone(NaN):this.radical===1&&z(this.rational)?this:this.radical===1?this._integerPart("round"):this.clone(Math.round(this.re))}eq(e){return typeof e=="number"?this.im===0&&this.radical===1&&z(this.rational)&&this.rational[0]==e:e instanceof i?this.radical===e.radical&&this.rational[0]==e.rational[0]&&this.rational[1]==e.rational[1]&&this.imRadical===e.imRadical&&this.imRational[0]==e.imRational[0]&&this.imRational[1]==e.imRational[1]:this.im===e.im&&this.bignumRe.eq(e.bignumRe??e.re)}lt(e){if(this.im===0){if(typeof e=="number")return this.re<e;if(e.im===0)return this.re<e.re}}lte(e){if(this.im===0){if(typeof e=="number")return this.re<=e;if(e.im===0)return this.re<=e.re}}gt(e){if(this.im===0){if(typeof e=="number")return this.re>e;if(e.im===0)return this.re>e.re}}gte(e){if(this.im===0){if(typeof e=="number")return this.re>=e;if(e.im===0)return this.re>=e.re}}static sum(e,t){if(e.length===1)return e;let n=m=>m.isExact||m.im!==0&&Number.isInteger(m.re)&&Number.isInteger(m.im);if(e.some(m=>!n(m))){if(e.length===2)return[e[0].add(e[1])];let m=t(0);for(let d of e)m=m.add(d);return[m]}let r=[0,1],s=[],o=[0,1],a=[],c=(m,d,h)=>{let N=m.findIndex(p=>p.radical===h);N===-1?m.push({multiple:d,radical:h}):m[N].multiple=O(m[N].multiple,d)};for(let m of e){if(m.isNaN)return[new i(NaN,t)];if(!m.isZero)if(m instanceof i){let d=m.rational;m.radical===1?o=O(o,d):k(d)||c(a,d,m.radical),m.im!==0&&(m.imRadical===1?r=O(r,m.imRational):c(s,m.imRational,m.imRadical))}else{I(m.type,"integer")||Number.isInteger(m.re)&&Number.isInteger(m.im),m.im!==0&&(r=O(r,[m.im,1]));let d=BigInt(m.bignumRe.toFixed(0));o=O(o,[d,BigInt(1)])}}if(!(!k(r)||s.length>0)){if(k(o)&&a.length===0)return[new i(0,t)];let m=[];return a.length===0?m.push(new i({rational:o},t)):(a.push({multiple:o,radical:1}),m.push(...a.map(d=>new i({rational:d.multiple,radical:d.radical},t)))),m}let f=[];(!k(o)||!k(r))&&f.push(new i({rational:o,imRational:r},t));for(let m of a)k(m.multiple)||f.push(new i({rational:m.multiple,radical:m.radical},t));for(let m of s)k(m.multiple)||f.push(new i({rational:[0,1],imRational:m.multiple,imRadical:m.radical},t));return f.length===0?[new i(0,t)]:f}};function ei(i,e){return k(i.rat)?e:k(e.rat)?i:i.rad===e.rad?{rat:O(i.rat,e.rat),rad:i.rad}:null}function ii(i,e){if(k(i.rat)||k(e.rat))return{rat:[0,1],rad:1};let t=BigInt(i.rad)*BigInt(e.rad);if(t>BigInt(C))return null;let n=x(i.rat,e.rat),r=Number(t);if(r>=4){let[s,o]=Q(r,2);s!==1&&(n=x(n,[s,1])),r=o}return{rat:n,rad:r}}function Lr(i){return k(i.rat)?i:{rat:$(i.rat),rad:i.rad}}function en(i,e){return k(e.rat)||k(i.rat)?!0:i.rad===1&&e.rad===1}function Ui(i,e){let t=r=>z(r)?P(r[0]):`${P(r[0])}/${P(r[1])}`;if(e===1)return t(i);let n=r=>`sqrt(${P(r)})`;return Ri(i)?n(e):Di(i)?`-${n(e)}`:i[0]==1?`${n(e)}/${P(i[1])}`:i[0]==-1?`-${n(e)}/${P(i[1])}`:`${t(i)}${n(e)}`}function ji(i,e){let t=n=>z(n)?_(n[0]):["Rational",_(n[0]),_(n[1])];return e===1?t(i):Ri(i)?["Sqrt",e]:Di(i)?["Negate",["Sqrt",e]]:i[0]==1?["Divide",["Sqrt",e],_(i[1])]:i[0]==-1?["Negate",["Divide",["Sqrt",e],_(i[1])]]:["Multiply",t(i),["Sqrt",e]]}function tn(i,e){if(typeof i=="bigint"){if(i<0n||i>BigInt(Number.MAX_SAFE_INTEGER))return null;i=Number(i)}if(!Number.isSafeInteger(i)||i<=0)return null;if(i===1)return 1;if(e>53)return null;let t=Math.round(Math.pow(i,1/e)),n=BigInt(e),r=BigInt(i);for(let s of[t,t-1,t+1])if(!(s<2)&&BigInt(s)**n===r)return s;return null}function nn(i,e){for(i.isInteger()&&e.isInteger();!e.isZero();)[i,e]=[e,i.mod(e)];return i.abs()}function Gr(i,e){return i.mul(e).div(nn(i,e)).abs()}function*Yr(i){if(!i.isInteger()||i.isNegative())return u.NAN;if(i.lt(1))return u.ONE;let e=i;for(;i.gt(2);)i=i.sub(2),e=e.mul(i),yield e;return e}function ti(i){if(!i.isFinite()||i.isZero())return!0;let n=(i.significand<0n?-i.significand:i.significand).toString().length;if(n>17)return!1;let r=n+i.exponent-1;return r>=309||r<=-308?!1:i.eq(new u(i.toNumber()))}var Ji=class i extends F{decimal;constructor(e){if(super(),typeof e=="number")this.decimal=new u(e),this.im=0;else if(e instanceof u)this.decimal=e,this.im=0;else{let t=e.re instanceof u?e.re:new u(e.re??0);this.decimal=t,this.im=e.im??0}this.decimal.isNaN()?this.im=NaN:isNaN(this.im)&&(this.decimal=u.NAN)}get type(){return this.isNaN?"number":this.isComplexInfinity?"complex":this.im!==0?this.decimal.isZero()?"imaginary":"finite_complex":this.decimal.isFinite()?this.decimal.isInteger()?"finite_integer":"finite_real":"non_finite_number"}get isExact(){return this.im===0&&this.decimal.isInteger()}get asExact(){if(this.isExact)return this._makeExact(L(this.decimal))}toJSON(){return this.isNaN?"NaN":this.isPositiveInfinity?"PositiveInfinity":this.isNegativeInfinity?"NegativeInfinity":this.isComplexInfinity?"ComplexInfinity":this.im===0?ti(this.decimal)?this.decimal.toNumber():{num:ni(this.decimal)}:ti(this.decimal)?["Complex",_(this.decimal.toNumber()),_(this.im)]:["Complex",{num:ni(this.decimal)},_(this.im)]}toString(){if(this.isZero)return"0";if(this.isOne)return"1";if(this.isNegativeOne)return"-1";if(this.im===0)return ni(this.decimal.toPrecision(u.precision));if(this.decimal.isZero())return this.im===1?"i":this.im===-1?"-i":`${P(this.im)}i`;if(this.isComplexInfinity)return"~oo";let e="";return this.im===1?e="+ i":this.im===-1?e="- i":this.im>0?e=`+ ${this.im}i`:e=`- ${-this.im}i`,`(${ni(this.decimal)} ${e})`}clone(e){return new i(e)}_makeExact(e){return new re(e,t=>this.clone(t))}get re(){return this.decimal.toNumber()}get bignumRe(){return this.decimal}get numerator(){return this}get denominator(){return this._makeExact(1)}get isNaN(){return this.decimal.isNaN()}get isPositiveInfinity(){return this.im===0&&!this.decimal.isFinite()&&!this.decimal.isNaN()&&this.decimal.isPositive()}get isNegativeInfinity(){return this.im===0&&!this.decimal.isFinite()&&!this.decimal.isNaN()&&this.decimal.isNegative()}get isComplexInfinity(){return!Number.isFinite(this.im)&&!Number.isNaN(this.im)}get isZero(){return this.im===0&&this.decimal.isZero()}isZeroWithTolerance(e){let t=typeof e=="number"?e:e.toNumber();if(Math.abs(this.im)>t)return!1;let n=typeof e=="number"?new u(e):e;return this.decimal.abs().lte(n)}get isOne(){return this.im===0&&this.decimal.eq(1)}get isNegativeOne(){return this.im===0&&this.decimal.eq(-1)}sgn(){if(this.im===0){if(this.decimal.isZero())return 0;if(this.decimal.isPositive())return 1;if(this.decimal.isNegative())return-1}}N(){return this}neg(){return this.isZero?this:this.clone({re:this.decimal.neg(),im:-this.im})}inv(){if(this.isOne)return this;if(this.isNegativeOne)return this;if(this.im===0)return this.clone(this.decimal.inv());let e=this.re*this.re+this.im*this.im,t=this.decimal.mul(this.decimal).add(this.im*this.im);return this.clone({re:this.decimal.div(t),im:-this.im/e})}add(e){return typeof e=="number"?e===0?this:this.clone({re:this.decimal.add(e),im:this.im}):e.isZero?this:this.isZero?this.clone({re:e.bignumRe??e.re,im:e.im}):this.clone({re:this.decimal.add(e.bignumRe??e.re),im:this.im+e.im})}sub(e){return this.add(e.neg())}mul(e){if(this.isZero)return e instanceof F&&(e.isPositiveInfinity||e.isNegativeInfinity||e.isComplexInfinity||e.isNaN)?this._makeExact(NaN):this;if(e===1)return this;if(e===-1)return this.neg();if(e===0)return this.isNaN||this.isPositiveInfinity||this.isNegativeInfinity||this.isComplexInfinity?this._makeExact(NaN):this.clone(0);if(this.isOne)return typeof e=="number"||e instanceof u?this.clone(e):this.clone({re:e.bignumRe??e.re,im:e.im});if(typeof e=="number")return this.im===0?this.clone(this.decimal.mul(e)):this.clone({re:this.decimal.mul(e),im:this.im*e});if(e instanceof u)return this.im===0?this.clone(this.decimal.mul(e)):this.clone({re:this.decimal.mul(e),im:this.im*e.toNumber()});if(this.isNegativeOne){let t=e.neg();return this.clone({re:t.bignumRe??t.re,im:t.im})}return e.isOne?this:e.isNegativeOne?this.neg():e.isZero?this.isNaN||this.isPositiveInfinity||this.isNegativeInfinity||this.isComplexInfinity?this._makeExact(NaN):this.clone(0):this.im===0&&e.im===0?this.clone(this.decimal.mul(e.bignumRe??e.re)):this.clone({re:this.decimal.mul(e.bignumRe??e.re).sub(this.im*e.im),im:this.re*e.im+this.im*e.re})}div(e){if(typeof e=="number")return e===1?this:e===-1?this.neg():e===0?this.clone(NaN):this.clone({re:this.decimal.div(e),im:this.im/e});if(e.isOne)return this;if(e.isNegativeOne)return this.neg();if(e.isZero)return this.isZero||this.isNaN?this.clone(NaN):this.im!==0?this.clone({im:1/0}):this.clone(this.decimal.isNegative()?-1/0:1/0);if(this.im===0&&e.im===0)return this.clone(this.decimal.div(e.bignumRe??e.re));let[t,n]=[this.re,this.im],[r,s]=[e.re,e.im],o=r*r+s*s,a=e.bignumRe??new u(e.re),c=a.mul(a).add(s*s);return this.clone({re:this.decimal.mul(a).add(n*s).div(c),im:(n*r-t*s)/o})}pow(e){if(Array.isArray(e),this.isNaN)return this;if(typeof e=="number"&&isNaN(e))return this.clone(NaN);if(e instanceof F){if(e.isNaN)return this.clone(NaN);if(e.isZero)return this.clone(1);if(e.isOne)return this;e.im?e={re:e.re,im:e.im}:e=e.re}if(typeof e=="object"&&("re"in e||"im"in e)){let[c,l]=[e?.re??0,e?.im??0];if(Number.isNaN(l)||Number.isNaN(c))return this.clone(NaN);if(l===0)e=c;else{if(this.im===1/0)return this.clone(NaN);if(this.isNegativeInfinity)return this.clone(0);if(this.isPositiveInfinity)return this.clone({im:1/0});if(this.isZero)return c>0?this.clone(0):this.clone(NaN);let f=this.decimal,m=this.im,d=f.mul(f).add(new u(m).mul(m)).sqrt().ln(),h=u.atan2(m,f),N=d.mul(c).sub(h.mul(l)),p=h.mul(c).add(d.mul(l)),b=N.exp();return this.clone({re:b.mulToPrecision(p.cos(),u.precision),im:Ne(b.mul(p.sin()).toNumber())})}}if(this.isPositiveInfinity){if(e===-1)return this.clone(0);if(e===1/0)return this.clone(1/0);if(e===-1/0)return this.clone(0)}else if(this.isNegativeInfinity&&e===1/0)return this.clone(NaN);if((e===1/0||e===-1/0)&&(this.isOne||this.isNegativeOne))return this.clone(NaN);if(e===1)return this;if(e===-1)return this.inv();if(e===0)return this.clone(1);if(this.isZero){if(e>0)return this;if(e<0)return this.clone({im:1/0})}if(e<0)return this.pow(-e).inv();if(this.im===0)return this.clone(this.decimal.pow(e));let t=this.decimal,n=this.im,r=t.mul(t).add(new u(n).mul(n)).sqrt(),s=u.atan2(n,t),o=r.pow(e),a=s.mul(e);return this.clone({re:o.mulToPrecision(a.cos(),u.precision),im:Ne(o.mul(a.sin()).toNumber())})}root(e){if(!Number.isInteger(e))return this._makeExact(NaN);if(e===0)return this._makeExact(NaN);if(e===1)return this;if(this.isZero)return this;if(this.isOne)return this;if(this.isNegativeOne)return this;if(this.im===0)return this.decimal.isNegative()?e%2===0?this._makeExact(NaN):e===3?this.clone(this.decimal.cbrt()):this.clone(this.decimal.neg().ln().div(e).exp().neg()):e===2?this.clone(this.decimal.sqrt()):e===3?this.clone(this.decimal.cbrt()):this.clone(this.decimal.nthRoot(e));let t=this.decimal,n=this.im,r=t.mul(t).add(new u(n).mul(n)).sqrt(),s=u.atan2(n,t),o=r.ln().div(e).exp(),a=s.div(e);return this.clone({re:o.mulToPrecision(a.cos(),u.precision),im:Ne(o.mul(a.sin()).toNumber())})}sqrt(){if(this.isZero||this.isOne)return this;if(this.im!==0){let e=this.decimal,t=this.im,n=e.mul(e).add(new u(t).mul(t)).sqrt(),r=e.add(n).div(2),s=n.sub(e).div(2),o=r.isNegative()?u.ZERO:r.sqrt(),a=Ne(Math.sign(t)*(s.isNegative()?0:s.sqrt().toNumber()));return this.clone({re:o,im:a})}return this.decimal.isPositive()?this.clone(this.decimal.sqrt()):this.clone({im:Math.sqrt(-this.re)})}gcd(e){if(this.isZero)return e;if(e.isZero)return this;if(this.im!==0||e.im!==0)return this._makeExact(NaN);if(!this.decimal.isInteger())return this._makeExact(1);let t=e.bignumRe?new u(e.bignumRe):new u(e.re);if(!t.isInteger())return this._makeExact(1);let n=this.decimal;for(;!t.isZero();){let r=t;t=n.mod(t),n=r}return this.clone(n.abs())}abs(){return this.im===0?this.decimal.isPositive()?this:this.clone(this.decimal.neg()):this.clone(this.decimal.pow(2).add(new u(this.im).mul(this.im)).sqrt())}ln(e){if(this.isZero)return this._makeExact(NaN);if(this.isNegativeInfinity)return this._makeExact(NaN);if(this.isPositiveInfinity)return this._makeExact(1/0);if(this.im===0){if(this.isOne)return this._makeExact(0);if(this.decimal.isNegative()){let o=this.decimal.neg();return e===void 0?this.clone({re:o.ln(),im:Math.PI}):this.clone({re:o.log(e),im:Math.PI/Math.log(e)})}return e===void 0?this.clone(this.decimal.ln()):this.clone(this.decimal.log(e))}let t=this.decimal,n=this.im,r=t.mul(t).add(new u(n).mul(n)).sqrt(),s=u.atan2(n,t).toNumber();return e===void 0?this.clone({re:r.ln(),im:s}):this.clone({re:r.log(e),im:s/Math.log(e)})}exp(){if(this.isNaN)return this._makeExact(NaN);if(this.isZero)return this._makeExact(1);if(this.isNegativeInfinity)return this._makeExact(0);if(this.isPositiveInfinity)return this._makeExact(1/0);if(this.im!==0){let e=this.decimal.exp(),t=Ne(Math.cos(this.im))===0?u.ZERO:new u(this.im).cos();return this.clone({re:e.mulToPrecision(t,u.precision),im:Ne(e.mul(Math.sin(this.im)).toNumber())})}return this.clone(this.decimal.exp())}floor(){return this.isNaN||this.im!==0?this._makeExact(NaN):this.decimal.isInteger()?this:this._makeExact(L(this.decimal.floor()))}ceil(){return this.isNaN||this.im!==0?this._makeExact(NaN):this.decimal.isInteger()?this:this._makeExact(L(this.decimal.ceil()))}round(){return this.isNaN||this.im!==0?this._makeExact(NaN):this.decimal.isInteger()?this:this._makeExact(L(this.decimal.round()))}eq(e){return this.isNaN?!1:typeof e=="number"?this.im===0&&this.decimal.eq(e):e.isNaN?!1:Number.isFinite(this.im)?this.decimal.eq(e.bignumRe??e.re)&&this.im-e.im===0:!Number.isFinite(e.im)}lt(e){if(this.im===0){if(typeof e=="number")return this.decimal.lt(e);if(e.im===0)return this.decimal.lt(e.bignumRe??e.re)}}lte(e){if(this.im===0){if(typeof e=="number")return this.decimal.lte(e);if(e.im===0)return this.decimal.lte(e.bignumRe??e.re)}}gt(e){if(this.im===0){if(typeof e=="number")return this.decimal.gt(e);if(e.im===0)return this.decimal.gt(e.bignumRe??e.re)}}gte(e){if(this.im===0){if(typeof e=="number")return this.decimal.gte(e);if(e.im===0)return this.decimal.gte(e.bignumRe??e.re)}}};function ni(i){let e=i.toString();if(i.isInteger()&&e.includes("e")){let t=i.toFixed(0),n=t.match(/0+$/);if((n?n[0].length:0)<=5)return t}return e}function Ne(i){return Math.abs(i)<=1e-14?0:i}var $i=class i extends F{decimal;constructor(e){if(super(),typeof e=="number")this.decimal=e,this.im=0;else if(e instanceof u)this.decimal=e.toNumber(),this.im=0;else{let t=e.re===void 0?0:e.re instanceof u?e.re.toNumber():e.re;this.decimal=t,this.im=e.im??0,isFinite(this.im)||(this.decimal=this.im)}isNaN(this.im)}_makeExact(e){return new re(e,t=>this.clone(t))}get type(){return this.isNaN?"number":this.isComplexInfinity?"complex":this.im!==0?this.decimal===0?"imaginary":"finite_complex":Number.isFinite(this.decimal)?Number.isInteger(this.decimal)?"finite_integer":"finite_real":"non_finite_number"}get isExact(){return this.im===0&&Number.isInteger(this.decimal)}get asExact(){if(this.isExact)return this._makeExact(this.decimal)}toJSON(){return this.isNaN?"NaN":this.isPositiveInfinity?"PositiveInfinity":this.isNegativeInfinity?"NegativeInfinity":this.im===0?_(this.decimal):["Complex",_(this.decimal),_(this.im)]}toString(){if(this.isZero)return"0";if(this.isOne)return"1";if(this.isNegativeOne)return"-1";if(this.im===0)return P(this.decimal);if(this.decimal===0)return this.im===1?"i":this.im===-1?"-i":`${P(this.im)}i`;if(this.isComplexInfinity)return"~oo";let e="";return this.im===1?e="+ i":this.im===-1?e="- i":this.im>0?e=`+ ${P(this.im)}i`:e=`- ${P(-this.im)}i`,`(${P(this.decimal)} ${e})`}clone(e){return new i(e)}get re(){return this.decimal}get bignumRe(){}get numerator(){return this}get denominator(){return this._makeExact(1)}get isNaN(){return Number.isNaN(this.decimal)}get isPositiveInfinity(){return!Number.isFinite(this.decimal)&&this.decimal>0&&this.im===0}get isNegativeInfinity(){return!Number.isFinite(this.decimal)&&this.decimal<0&&this.im===0}get isComplexInfinity(){return!Number.isFinite(this.im)&&!Number.isNaN(this.im)}get isZero(){return this.im===0&&this.decimal===0}isZeroWithTolerance(e){let t=e instanceof u?e.toNumber():e;return Math.abs(this.im)<=t&&Math.abs(this.decimal)<t}get isOne(){return this.im===0&&this.decimal===1}get isNegativeOne(){return this.im===0&&this.decimal===-1}sgn(){if(!(this.im!==0||!Number.isFinite(this.decimal)))return Math.sign(this.decimal)}N(){return this}neg(){return this.isNaN?this._makeExact(NaN):this.isZero?this:this.clone({re:-this.decimal,im:-this.im})}inv(){if(this.isNaN)return this._makeExact(NaN);if(this.isOne)return this;if(this.isNegativeOne)return this;if(this.im===0)return this.clone(1/this.decimal);let e=this.re*this.re+this.im*this.im;return this.clone({re:this.decimal/e,im:-this.im/e})}add(e){return this.isNaN?this._makeExact(NaN):typeof e=="number"?e===0?this:this.clone({re:this.decimal+e,im:this.im}):e.isZero?this:this.isZero?this.clone({re:e.bignumRe??e.re,im:e.im}):this.clone({re:this.decimal+e.re,im:this.im+e.im})}sub(e){return this.add(e.neg())}mul(e){if(this.isNaN)return this._makeExact(NaN);if(this.isZero)return e instanceof F&&(e.isPositiveInfinity||e.isNegativeInfinity||e.isComplexInfinity||e.isNaN)?this._makeExact(NaN):this;if(e instanceof u&&(e=e.toNumber()),e===1)return this;if(e===-1)return this.neg();if(e===0)return this.isPositiveInfinity||this.isNegativeInfinity||this.isComplexInfinity?this._makeExact(NaN):this.clone(0);if(this.isOne)return typeof e=="number"||e instanceof u?this.clone(e):this.clone({re:e.bignumRe??e.re,im:e.im});if(typeof e=="number")return this.im===0?this.clone(this.decimal*e):this.clone({re:this.decimal*e,im:this.im*e});if(this.isNegativeOne){let t=e.neg();return this.clone({re:t.bignumRe??t.re,im:t.im})}return e.isOne?this:e.isNegativeOne?this.neg():e.isZero?this.isPositiveInfinity||this.isNegativeInfinity||this.isComplexInfinity?this._makeExact(NaN):this.clone(0):this.im===0&&e.im===0?this.clone(this.decimal*e.re):this.clone({re:this.decimal*e.re-this.im*e.im,im:this.re*e.im+this.im*e.re})}div(e){if(this.isNaN)return this._makeExact(NaN);if(typeof e=="number")return e===1?this:e===-1?this.neg():e===0?this.clone(NaN):this.clone({re:this.decimal/e,im:this.im/e});if(e.isOne)return this;if(e.isNegativeOne)return this.neg();if(e.isZero)return this.clone(this.isZero?NaN:1/0);if(this.im===0&&e.im===0)return this.clone(this.decimal/e.re);let[t,n]=[this.decimal,this.im],[r,s]=[e.re,e.im],o=r*r+s*s;return this.clone({re:(t*r+n*s)/o,im:(n*r-t*s)/o})}pow(e){if(Array.isArray(e),this.isNaN)return this._makeExact(NaN);if(typeof e=="number"&&isNaN(e))return this.clone(NaN);if(e instanceof F){if(e.isNaN)return this.clone(NaN);if(e.isZero)return this.clone(1);if(e.isOne)return this;e.im?e={re:e.re,im:e.im}:e=e.re}if(typeof e=="object"&&("re"in e||"im"in e)){let[c,l]=[e?.re??0,e?.im??0];if(Number.isNaN(l)||Number.isNaN(c))return this.clone(NaN);if(l===0)e=c;else{if(this.im===1/0)return this.clone(NaN);if(this.isNegativeInfinity)return this.clone(0);if(this.isPositiveInfinity)return this.clone({im:1/0});if(this.isZero)return c>0?this.clone(0):this.clone(NaN);let f=this.decimal,m=this.im,d=.5*Math.log(f*f+m*m),h=Math.atan2(m,f),N=c*d-l*h,p=c*h+l*d,b=Math.exp(N);return this.clone({re:rn(b*Math.cos(p)),im:rn(b*Math.sin(p))})}}if(this.isPositiveInfinity){if(e===-1)return this.clone(0);if(e===1/0)return this.clone(1/0);if(e===-1/0)return this.clone(0)}else if(this.isNegativeInfinity&&e===1/0)return this.clone(NaN);if((e===1/0||e===-1/0)&&(this.isOne||this.isNegativeOne))return this.clone(NaN);if(e===1)return this;if(e===-1)return this.inv();if(e===0)return this.clone(1);if(this.isZero){if(e>0)return this;if(e<0)return this.clone({im:1/0})}if(e<0&&this.im===0)return this.clone(1/this.decimal**-e);if(this.im===0)return this.clone(this.decimal**e);let t=this.decimal,n=this.im,r=Math.sqrt(t*t+n*n),s=Math.atan2(n,t),o=r**e,a=s*e;return this.clone({re:o*Math.cos(a),im:o*Math.sin(a)})}root(e){if(this.isNaN)return this._makeExact(NaN);if(e===0)return this.clone(NaN);if(this.isNaN)return this;if(this.isZero)return this;if(this.isOne)return this;if(this.isNegativeOne)return this;if(e===1)return this;if(e===2)return this.sqrt();if(e===3)return this.clone(Math.cbrt(this.decimal));if(this.im===0)return this.decimal<0?e%2===0?this.clone(NaN):this.clone(-wi(-this.decimal,e)):this.clone(wi(this.decimal,e));let t=this.decimal,n=this.im,r=Math.hypot(t,n),s=Math.atan2(n,t),o=Math.pow(r,1/e),a=s/e;return this.clone({re:o*Math.cos(a),im:o*Math.sin(a)})}sqrt(){if(this.isNaN)return this._makeExact(NaN);if(this.isZero||this.isOne)return this;if(this.im!==0){let e=this.decimal,t=this.im,n=Math.sqrt(e*e+t*t),r=Math.sqrt((e+n)/2),s=Math.sign(t)*Math.sqrt((n-e)/2);return this.clone({re:r,im:s})}return this.decimal>0?this.clone(Math.sqrt(this.decimal)):this.clone({im:Math.sqrt(-this.decimal)})}gcd(e){if(this.isNaN)return this._makeExact(NaN);if(this.isZero)return e;if(e.isZero)return this;if(this.im!==0||e.im!==0)return this._makeExact(NaN);if(!Number.isInteger(this.decimal))return this._makeExact(1);let t=e.re;if(!Number.isInteger(t))return this._makeExact(1);let n=this.decimal;for(;t!==0;){let r=t;t=n%t,n=r}return this.clone(Math.abs(n))}abs(){return this.isNaN?this._makeExact(NaN):this.im===0?this.decimal>0?this:this.clone(-this.decimal):this.clone(Math.sqrt(this.decimal**2+this.im**2))}ln(e){if(this.isNaN)return this._makeExact(NaN);if(this.isZero)return this._makeExact(NaN);if(this.isNegativeInfinity)return this._makeExact(NaN);if(this.isPositiveInfinity)return this._makeExact(1/0);if(this.im===0){if(this.isOne)return this._makeExact(0);if(this.decimal<0){let a=e===void 0?1:Math.log(e);return this.clone({re:Math.log(-this.decimal)/a,im:Math.PI/a})}return e===void 0?this.clone(Math.log(this.decimal)):this.clone(Math.log(this.decimal)/Math.log(e))}let t=this.decimal,n=this.im,r=Math.hypot(t,n),s=Math.atan2(n,t),o=e===void 0?1:Math.log(e);return this.clone({re:Math.log(r)/o,im:s/o})}exp(){if(this.isNaN)return this._makeExact(NaN);if(this.isZero)return this._makeExact(1);if(this.isNegativeInfinity)return this._makeExact(0);if(this.isPositiveInfinity)return this._makeExact(1/0);if(this.im!==0){let e=Math.exp(this.decimal);return this.clone({re:e*Math.cos(this.im),im:e*Math.sin(this.im)})}return this.clone(Math.exp(this.decimal))}floor(){return this.isNaN||this.im!==0?this._makeExact(NaN):Number.isInteger(this.decimal)?this:this._makeExact(Math.floor(this.decimal))}ceil(){return this.isNaN||this.im!==0?this._makeExact(NaN):Number.isInteger(this.decimal)?this:this._makeExact(Math.ceil(this.decimal))}round(){return this.isNaN||this.im!==0?this._makeExact(NaN):Number.isInteger(this.decimal)?this:this._makeExact(Math.round(this.decimal))}eq(e){return this.isNaN?!1:typeof e=="number"?this.im===0&&this.decimal===e:e.isNaN?!1:Number.isFinite(this.im)?this.decimal===e.re&&this.im===e.im:!Number.isFinite(e.im)}lt(e){if(this.im===0){if(typeof e=="number")return this.decimal<e;if(e.im===0)return this.decimal<e.re}}lte(e){if(this.im===0){if(typeof e=="number")return this.decimal<=e;if(e.im===0)return this.decimal<=e.re}}gt(e){if(this.im===0){if(typeof e=="number")return this.decimal>e;if(e.im===0)return this.decimal>e.re}}gte(e){if(this.im===0){if(typeof e=="number")return this.decimal>=e;if(e.im===0)return this.decimal>=e.re}}};function rn(i){return Math.abs(i)<=1e-14?0:i}function sn(i){return i?._kind==="number"}function Ur(i){return i?._kind==="symbol"}function Se(i,e){return(i?._kind==="function"||i?._kind==="tensor")&&(e===void 0||i.operator===e)}function ea(i){if(Se(i,"Interval")){let e=i.op1,t=i.op2,n=!1,r=!1;Se(e,"Open")?(n=!0,e=e.op1):Se(e,"Closed")&&(e=e.op1),Se(t,"Open")?(r=!0,t=t.op1):Se(t,"Closed")&&(t=t.op1);let s=e.N(),o=t.N();return!sn(s)||!sn(o)?void 0:{start:s.re,openStart:n,end:o.re,openEnd:r}}if(Ur(i)){if(i.symbol==="EmptySet")return{start:0,openStart:!0,end:0,openEnd:!0};if(i.symbol==="RealNumbers")return{start:-1/0,openStart:!1,end:1/0,openEnd:!1};if(i.symbol==="NegativeNumbers")return{start:-1/0,openStart:!1,end:0,openEnd:!0};if(i.symbol==="NonPositiveNumbers")return{start:-1/0,openStart:!1,end:0,openEnd:!1};if(i.symbol==="PositiveNumbers")return{start:0,openStart:!0,end:1/0,openEnd:!1};if(i.symbol==="NonNegativeNumbers")return{start:0,openStart:!1,end:1/0,openEnd:!1}}}function ia(i,e){return!((i.openStart?e<=i.start:e<i.start)||(i.openEnd?e>=i.end:e>i.end))}function ta(i,e){if(!i.openStart&&e.openStart){if(i.start<=e.start)return!1}else if(i.start<e.start)return!1;if(!i.openEnd&&e.openEnd){if(i.end>=e.end)return!1}else if(i.end>e.end)return!1;return!0}function jr(i){let e=i.length;if(e===1)return i[0][0];if(e===2)return i[0][0]*i[1][1]-i[0][1]*i[1][0];let t=[],n=0;for(let r=0;r<e;r++){let s=0;for(let o=1;o<e;o++){let a=0;for(let c=0;c<e;c++)c!==r&&(t[s][a]=i[o][c],a++);s++}n=n+Math.pow(-1,r)*i[0][r]*jr(t)}return n}function Jr(i,e){if(e===0)return{estimate:i,error:e};let t=Math.abs(e),n=Math.floor(Math.log10(t)),r=2,s=Math.pow(10,n-(r-1)),o=Math.round(e/s)*s,a=Math.max(0,-(n-(r-1)));return{estimate:Number(i.toFixed(a)),error:o}}function oa(i,e,t,n=1e5,r){r??=Ue();let s;e===-1/0&&t===1/0?s=()=>{let b=Math.random(),y=Math.tan(Math.PI*(b-.5));return i(y)*Math.PI*(1+y*y)}:e===-1/0?s=()=>{let b=Math.random();return i(t+Math.log(b))/b}:t===1/0?s=()=>{let b=Math.random();return i(e-Math.log(b))/b}:s=()=>i(e+Math.random()*(t-e));let o=0,a=0,c=0;je(r,()=>{for(let b=0;b<n;b++){if((b&63)===0&&r!==void 0&&Date.now()>=r){b===0&&Z(r);break}let y;try{y=s()}catch(v){if(v instanceof xe&&c>0)break;throw v}o+=y,a+=y*y,c++}});let l=o/c,f=(a-c*l*l)/(c-1),m=Math.sqrt(f/c),d=isFinite(e)&&isFinite(t)?t-e:1,h=l*d,N=m*d;return Jr(h,N)}function ca(i){let e=0,t=0;for(let n of i)e+=n,t++;return t===0?NaN:e/t}function la(i){let e=u.ZERO,t=0;for(let n of i)e=e.add(n),t++;return t===0?u.NAN:e.div(new u(t))}function Xi(i){let e=[...i].sort((n,r)=>n-r),t=Math.floor(e.length/2);return e.length%2===0?(e[t-1]+e[t])/2:e[t]}function Hi(i){let e=[...i].sort((n,r)=>n.cmp(r)),t=Math.floor(e.length/2);return e.length%2===0?e[t-1].add(e[t]).div(u.TWO):e[t]}function $r(i){let e=0,t=0,n=0;for(let r of i)e+=r,t+=r*r,n++;return n===0?NaN:(t-e*e/n)/(n-1)}function Xr(i){let e=u.ZERO,t=u.ZERO,n=0;for(let r of i)e=e.add(r),t=t.add(r.mul(r)),n++;return n===0?u.NAN:t.sub(e.mul(e).div(new u(n))).div(new u(n-1))}function Hr(i){let e=0,t=0,n=0;for(let r of i)e+=r,t+=r*r,n++;return n===0?NaN:(t-e*e/n)/n}function Wr(i){let e=u.ZERO,t=u.ZERO,n=0;for(let r of i)e=e.add(r),t=t.add(r.mul(r)),n++;return n===0?u.NAN:t.sub(e.mul(e).div(new u(n))).div(new u(n))}function ma(i){return Math.sqrt($r(i))}function fa(i){return Xr(i).sqrt()}function da(i){return Math.sqrt(Hr(i))}function ha(i){return Wr(i).sqrt()}function Na(i){let e=0,t=0,n=0,r=0,s=0;for(let f of i){let m=f;if(!Number.isFinite(m))return NaN;e+=m,t+=m*m,n+=m*m*m,r+=m*m*m*m,s++}if(s===0)return NaN;let o=s,a=e/o,c=(t-e*e/o)/o;return(r-4*a*n+6*a*a*t-4*a*a*a*e+o*a*a*a*a)/o/(c*c)}function pa(i){let e=u.ZERO,t=u.ZERO,n=u.ZERO,r=u.ZERO,s=0;for(let l of i){let f=l;if(!f.isFinite())return u.NAN;e=e.add(f),t=t.add(f.mul(f)),n=n.add(f.mul(f).mul(f)),r=r.add(f.mul(f).mul(f).mul(f)),s++}if(s===0)return u.NAN;let o=e.div(s),a=t.sub(e.mul(e).div(s)).div(s);return r.sub(o.mul(n).mul(4)).add(o.mul(o).mul(t).mul(6)).sub(o.mul(o).mul(o).mul(e).mul(4)).add(o.mul(o).mul(o).mul(o).mul(s)).div(s).div(a.mul(a))}function ga(i){let e=0,t=0,n=0,r=0;for(let l of i){let f=l;if(!Number.isFinite(f))return NaN;e+=f,t+=f*f,n+=f*f*f,r++}if(r===0)return NaN;let s=r,o=e/s,a=(t-e*e/s)/s;return(n-3*o*t+3*o*o*e-s*o*o*o)/s/Math.pow(a,3/2)}function ba(i){let e=u.ZERO,t=u.ZERO,n=u.ZERO,r=0;for(let c of i){let l=c;if(!l.isFinite())return u.NAN;e=e.add(l),t=t.add(l.mul(l)),n=n.add(l.mul(l).mul(l)),r++}if(r===0)return u.NAN;let s=e.div(r),o=t.sub(e.mul(e).div(r)).div(r);return n.sub(s.mul(t).mul(3)).add(s.mul(s).mul(e).mul(3)).sub(s.mul(s).mul(s).mul(r)).div(r).div(o.mul(o.sqrt()))}function ya(i){let e={};for(let r of i)e[r]=(e[r]??0)+1;let t=0,n=NaN;for(let r in e){let s=e[r];s>t&&(t=s,n=+r)}return n}function Ia(i){let e={};for(let r of i)e[r.toString()]=(e[r.toString()]??0)+1;let t=0,n=u.NAN;for(let r in e){let s=e[r];s>t&&(t=s,n=new u(r))}return n}function Kr(i){let e=[...i].sort((c,l)=>c-l),t=e.length,n=Math.floor(t/2),r=n+t%2,s=Xi(e.slice(0,n)),o=Xi(e),a=Xi(e.slice(r));return[s,o,a]}function Qr(i){let e=[...i].sort((c,l)=>c.cmp(l)),t=e.length,n=Math.floor(t/2),r=n+t%2,s=Hi(e.slice(0,n)),o=Hi(e),a=Hi(e.slice(r));return[s,o,a]}function on(i,e,t){let n=[...i],r=[...e],s=n.length;if(s!==r.length||s<2)return NaN;let o=0,a=0,c=0;for(let l=0;l<s;l++)o+=n[l],a+=r[l],c+=n[l]*r[l];return(c-o*a/s)/(t?s:s-1)}function un(i,e,t){let n=[...i],r=[...e],s=n.length;if(s!==r.length||s<2)return u.NAN;let o=u.ZERO,a=u.ZERO,c=u.ZERO;for(let l=0;l<s;l++)o=o.add(n[l]),a=a.add(r[l]),c=c.add(n[l].mul(r[l]));return c.sub(o.mul(a).div(new u(s))).div(new u(t?s:s-1))}function Ta(i,e){return on(i,e,!1)}function va(i,e){return un(i,e,!1)}function Ea(i,e){return on(i,e,!0)}function Ma(i,e){return un(i,e,!0)}function Ba(i,e){let t=[...i],n=[...e],r=t.length;if(r!==n.length||r<2)return NaN;let s=0,o=0,a=0,c=0,l=0;for(let N=0;N<r;N++)s+=t[N],o+=n[N],a+=t[N]*n[N],c+=t[N]*t[N],l+=n[N]*n[N];let f=a-s*o/r,m=c-s*s/r,d=l-o*o/r,h=Math.sqrt(m*d);return h===0?NaN:f/h}function wa(i,e){let t=[...i],n=[...e],r=t.length;if(r!==n.length||r<2)return u.NAN;let s=u.ZERO,o=u.ZERO,a=u.ZERO,c=u.ZERO,l=u.ZERO;for(let p=0;p<r;p++)s=s.add(t[p]),o=o.add(n[p]),a=a.add(t[p].mul(n[p])),c=c.add(t[p].mul(t[p])),l=l.add(n[p].mul(n[p]));let f=new u(r),m=a.sub(s.mul(o).div(f)),d=c.sub(s.mul(s).div(f)),h=l.sub(o.mul(o).div(f)),N=d.mul(h).sqrt();return N.isZero()?u.NAN:m.div(N)}function xa(i){let[e,,t]=Kr(i);return t-e}function ka(i){let[e,,t]=Qr(i);return t.sub(e)}var ri={Q:1e30,R:1e27,Y:1e24,Z:1e21,E:1e18,P:1e15,T:1e12,G:1e9,M:1e6,k:1e3,h:100,da:10,d:.1,c:.01,m:.001,\u00B5:1e-6,\u03BC:1e-6,n:1e-9,p:1e-12,f:1e-15,a:1e-18,z:1e-21,y:1e-24,r:1e-27,q:1e-30},an=new Set(["m","g","s","A","K","mol","cd","Hz","N","Pa","J","W","C","V","F","ohm","S","Wb","T","H","lm","lx","Bq","Gy","Sv","kat","eV","L","bar"]),si={m:{dimension:[1,0,0,0,0,0,0],scale:1},kg:{dimension:[0,1,0,0,0,0,0],scale:1},g:{dimension:[0,1,0,0,0,0,0],scale:.001},s:{dimension:[0,0,1,0,0,0,0],scale:1},A:{dimension:[0,0,0,1,0,0,0],scale:1},K:{dimension:[0,0,0,0,1,0,0],scale:1},mol:{dimension:[0,0,0,0,0,1,0],scale:1},cd:{dimension:[0,0,0,0,0,0,1],scale:1},Hz:{dimension:[0,0,-1,0,0,0,0],scale:1},N:{dimension:[1,1,-2,0,0,0,0],scale:1},Pa:{dimension:[-1,1,-2,0,0,0,0],scale:1},J:{dimension:[2,1,-2,0,0,0,0],scale:1},W:{dimension:[2,1,-3,0,0,0,0],scale:1},C:{dimension:[0,0,1,1,0,0,0],scale:1},V:{dimension:[2,1,-3,-1,0,0,0],scale:1},F:{dimension:[-2,-1,4,2,0,0,0],scale:1},ohm:{dimension:[2,1,-3,-2,0,0,0],scale:1},S:{dimension:[-2,-1,3,2,0,0,0],scale:1},Wb:{dimension:[2,1,-2,-1,0,0,0],scale:1},T:{dimension:[0,1,-2,-1,0,0,0],scale:1},H:{dimension:[2,1,-2,-2,0,0,0],scale:1},lm:{dimension:[0,0,0,0,0,0,1],scale:1},lx:{dimension:[-2,0,0,0,0,0,1],scale:1},Bq:{dimension:[0,0,-1,0,0,0,0],scale:1},Gy:{dimension:[2,0,-2,0,0,0,0],scale:1},Sv:{dimension:[2,0,-2,0,0,0,0],scale:1},kat:{dimension:[0,0,-1,0,0,1,0],scale:1},degC:{dimension:[0,0,0,0,1,0,0],scale:1,offset:273.15},degF:{dimension:[0,0,0,0,1,0,0],scale:5/9,offset:459.67},min:{dimension:[0,0,1,0,0,0,0],scale:60},h:{dimension:[0,0,1,0,0,0,0],scale:3600},d:{dimension:[0,0,1,0,0,0,0],scale:86400},ha:{dimension:[2,0,0,0,0,0,0],scale:1e4},L:{dimension:[3,0,0,0,0,0,0],scale:.001},t:{dimension:[0,1,0,0,0,0,0],scale:1e3},eV:{dimension:[2,1,-2,0,0,0,0],scale:1602176634e-28},Da:{dimension:[0,1,0,0,0,0,0],scale:16605390666e-37},au:{dimension:[1,0,0,0,0,0,0],scale:149597870700},deg:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/180},rad:{dimension:[0,0,0,0,0,0,0],scale:1},grad:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/200},turn:{dimension:[0,0,0,0,0,0,0],scale:2*Math.PI},arcmin:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/10800},arcsec:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/648e3},percent:{dimension:[0,0,0,0,0,0,0],scale:.01},ppm:{dimension:[0,0,0,0,0,0,0],scale:1e-6},dB:{dimension:[0,0,0,0,0,0,0],scale:1},Np:{dimension:[0,0,0,0,0,0,0],scale:1},in:{dimension:[1,0,0,0,0,0,0],scale:.0254},ft:{dimension:[1,0,0,0,0,0,0],scale:.3048},mi:{dimension:[1,0,0,0,0,0,0],scale:1609.344},lb:{dimension:[0,1,0,0,0,0,0],scale:.45359237},oz:{dimension:[0,1,0,0,0,0,0],scale:.028349523125},gal:{dimension:[3,0,0,0,0,0,0],scale:.003785411784},atm:{dimension:[-1,1,-2,0,0,0,0],scale:101325},bar:{dimension:[-1,1,-2,0,0,0,0],scale:1e5},cal:{dimension:[2,1,-2,0,0,0,0],scale:4.184},kWh:{dimension:[2,1,-2,0,0,0,0],scale:36e5},\u00C5:{dimension:[1,0,0,0,0,0,0],scale:1e-10}};function Ki(i,e){return i[0]===e[0]&&i[1]===e[1]&&i[2]===e[2]&&i[3]===e[3]&&i[4]===e[4]&&i[5]===e[5]&&i[6]===e[6]}function Ra(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===0&&i[4]===0&&i[5]===0&&i[6]===0}function zr(i){if(i.length>2){let e=i.slice(0,2),t=i.slice(2);if(ri[e]!==void 0&&an.has(t)){let n=si[t];if(n)return{prefixScale:ri[e],baseEntry:n}}}if(i.length>1){let e=i.slice(0,1),t=i.slice(1);if(ri[e]!==void 0&&an.has(t)){let n=si[t];if(n)return{prefixScale:ri[e],baseEntry:n}}}return null}function oi(i){let e=si[i];if(e)return e;let t=zr(i);return t?{dimension:t.baseEntry.dimension,scale:t.prefixScale*t.baseEntry.scale}:null}function Wi(i){let e=oi(i);return e?e.dimension:null}function es(i){let e=oi(i);return e?e.scale:null}function Da(i,e){let t=Wi(i),n=Wi(e);return!t||!n?!1:Ki(t,n)}var is=new Map(["N","J","W","Pa","Hz","C","V","F","ohm","S","Wb","T","H","lm","lx","Gy","kat"].map(i=>[si[i].dimension.join(","),i]));function Sa(i){return is.get(i.join(","))??null}function ts(i,e,t){let n=oi(e),r=oi(t);if(!n||!r||!Ki(n.dimension,r.dimension))return null;let s=n.offset??0,o=r.offset??0;return(i+s)*n.scale/r.scale-o}function pe(i){if(typeof i=="string")return Wi(i);if(!Array.isArray(i)||i.length<2)return null;let e=i[0];if(e==="Multiply"){let t=[0,0,0,0,0,0,0];for(let n=1;n<i.length;n++){let r=pe(i[n]);if(!r)return null;for(let s=0;s<7;s++)t[s]+=r[s]}return t}if(e==="Divide"){if(i.length!==3)return null;let t=pe(i[1]),n=pe(i[2]);return!t||!n?null:t.map((r,s)=>r-n[s])}if(e==="Power"){if(i.length!==3)return null;let t=pe(i[1]),n=i[2];return!t||typeof n!="number"?null:t.map(r=>r*n)}return null}function ge(i){if(typeof i=="string")return es(i);if(!Array.isArray(i)||i.length<2)return null;let e=i[0];if(e==="Multiply"){let t=1;for(let n=1;n<i.length;n++){let r=ge(i[n]);if(r===null)return null;t*=r}return t}if(e==="Divide"){if(i.length!==3)return null;let t=ge(i[1]),n=ge(i[2]);return t===null||n===null||n===0?null:t/n}if(e==="Power"){if(i.length!==3)return null;let t=ge(i[1]),n=i[2];return t===null||typeof n!="number"?null:Math.pow(t,n)}return null}function ns(i){let e=i.indexOf("^");if(e===-1)return i;let t=i.slice(0,e),n=i.slice(e+1),r=parseInt(n,10);return isNaN(r)?i:["Power",t,r]}function Oe(i){if(i=i.trim(),i.length===0)return null;if(i[0]==="("&&i[i.length-1]===")"){let r=0,s=!0;for(let o=0;o<i.length-1;o++)if(i[o]==="("?r++:i[o]===")"&&r--,r===0&&o<i.length-1){s=!1;break}if(s)return Oe(i.slice(1,-1))}let e=-1,t=[],n=0;for(let r=0;r<i.length;r++)i[r]==="("?n++:i[r]===")"?n--:n===0&&(i[r]==="/"&&e===-1?e=r:i[r]==="*"&&t.push(r));if(e!==-1){let r=i.slice(0,e).trim(),s=i.slice(e+1).trim(),o=Oe(r),a=Oe(s);return!o||!a?null:["Divide",o,a]}if(t.length>0){let r=[],s=0;for(let a of t)r.push(i.slice(s,a).trim()),s=a+1;r.push(i.slice(s).trim());let o=r.filter(a=>a.length>0).map(a=>Oe(a));return o.some(a=>a===null)?null:o.length===1?o[0]:["Multiply",...o]}return i[0]==="("?null:ns(i)}function Oa(i){return i=i.trim(),i.length===0?null:/[/*^()]/.test(i)?Oe(i):i}function Aa(i,e,t){if(typeof e=="string"&&typeof t=="string")return ts(i,e,t);let n=pe(e),r=pe(t);if(!n||!r||!Ki(n,r))return null;let s=ge(e),o=ge(t);return s===null||o===null||o===0?null:i*s/o}var ci=7,li=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23];function Ae(i){if(i<0)return NaN;if(i===1||i===2)return 0;let e=i-1,t=li[0];for(let r=1;r<ci+2;r++)t+=li[r]/(e+r);let n=e+ci+.5;return .5*Math.log(2*Math.PI)+(e+.5)*Math.log(n)-n+Math.log(t)}function be(i){if(i<.5)return Math.PI/(Math.sin(Math.PI*i)*be(1-i));if(i>100)return Math.exp(Ae(i));i-=1;let e=li[0];for(let n=1;n<ci+2;n++)e+=li[n]/(i+n);let t=i+ci+.5;return Math.sqrt(2*Math.PI)*Math.pow(t,i+.5)*Math.exp(-t)*e}function rs(i){let t=Math.log(1-i*i),n=2/(Math.PI*.147)+t/2;return Math.sign(i)*Math.sqrt(Math.sqrt(n*n-t/.147)-n)}function ss(i){if(Number.isNaN(i)||i<-1||i>1)return NaN;if(i===0)return 0;if(i===1)return 1/0;if(i===-1)return-1/0;let e=i<0?-1:1,t=Math.abs(i),n=rs(t),r=Math.sqrt(Math.PI)/2,s=1-t,o=t>.9;for(let a=0;a<5;a++){let c=o?s-nt(n):rt(n)-t;n-=c*r*Math.exp(n*n)}return e*n}function nt(i){if(Number.isNaN(i))return NaN;if(!Number.isFinite(i))return i>0?0:2;if(i<0)return 2-nt(-i);if(i<2)return 1-rt(i);let e=1e-300,t=i===0?e:i,n=t,r=0;for(let s=1;s<=500;s++){let o=s/2;r=i+o*r,r===0&&(r=e),r=1/r,n=i+o/n,n===0&&(n=e);let a=n*r;if(t*=a,Math.abs(a-1)<1e-17)break}return Math.exp(-i*i)/(Math.sqrt(Math.PI)*t)}function rt(i){if(Number.isNaN(i))return NaN;if(i===0)return 0;if(!Number.isFinite(i))return i>0?1:-1;let e=i<0?-1:1,t=Math.abs(i);if(t>=6)return e;let n=t*t,r=t,s=t;for(let o=1;o<200&&(r*=2*n/(2*o+1),s+=r,!(r<s*1e-18));o++);return e*(2/Math.sqrt(Math.PI))*Math.exp(-n)*s}function ue(i,e){let t=u.precision;u.precision=t+i;try{return e().toPrecision(t)}finally{u.precision=t}}var ae=24,Qi=2e4,os=500;function us(i,e){return e.isFinite()?ue(ae,()=>st(i,e)):u.NAN}function st(i,e){if(!e.isFinite())return u.NAN;if(e.lt(u.HALF)){let g=u.PI,E=g.mul(e).sin().abs();return E.isZero()?u.NAN:g.ln().sub(E.ln()).sub(st(i,u.ONE.sub(e)))}if(e.isInteger()&&e.isPositive()){let g=e.toNumber();if(g<=1)return u.ZERO;if(g<=Qi){let E=1n,T=0;for(let A=2;A<g;A++)(++T&4095)===0&&Z(i._deadline),E*=BigInt(A);return new u(E.toString()).ln()}}let t=e.sub(u.HALF);if(t.isInteger()&&!t.isNegative()){let g=t.toNumber();if(g===0)return u.PI.ln().div(u.TWO);if(g<=Qi){let E=0,T=1n;for(let V=2;V<=2*g;V++)(++E&4095)===0&&Z(i._deadline),T*=BigInt(V);let A=1n;for(let V=2;V<=g;V++)(++E&4095)===0&&Z(i._deadline),A*=BigInt(V);let J=4n**BigInt(g);return new u(T.toString()).ln().add(u.PI.ln().div(u.TWO)).sub(new u(J.toString()).ln()).sub(new u(A.toString()).ln())}}let n=u.precision,r=10,s=Math.ceil(n),o=e.toNumber(),a=Math.max(0,Math.ceil(s-o)),c=u.ONE,l=e;for(let g=0;g<a;g++)c=c.mulToPrecision(l,n),l=l.add(u.ONE);let f=a>0?c.ln():u.ZERO,m=Math.max(20,Math.ceil(.6*n)+20),d=Fe(i,m),h=l.sub(u.HALF).mul(l.ln()).sub(l).add(u.PI.mul(u.TWO).ln().div(u.TWO)),N=u.ONE.div(l),p=N.mulToPrecision(N,n),b=N,y=new u(10).pow(-(n+r)),v=Math.min(m,d.length);for(let g=0;g<v;g++){let E=2*(g+1),[T,A]=d[g],J=BigInt(E)*BigInt(E-1),K=new u(T.toString()).div(new u((A*J).toString())).mulToPrecision(b,n);if(g>0&&K.abs().lt(y))break;h=h.add(K),b=b.mulToPrecision(p,n)}return h.sub(f)}function as(i,e){if(e.isInteger()&&e.isPositive()){let t=e.toNumber();if(t<=Qi){let n=1n,r=0;for(let s=2;s<t;s++)(++r&4095)===0&&Z(i._deadline),n*=BigInt(s);return new u(n.toString())}}return ue(ae,()=>ye(i,e))}function ye(i,e){if(e.lt(u.HALF)){let t=u.PI,n=t.mul(e).sin();return n.isZero()?u.NAN:t.div(n.mul(ye(i,u.ONE.sub(e))))}return st(i,e).exp()}function cn(i,e){for(;e!==0n;){let t=e;e=i%e,i=t}return i}function ai(i){return i<0n?-i:i}function cs(i,e){let t=[[1n,1n],[-1n,2n]];for(let r=2;r<=2*i;r++){if((r&255)===0&&Z(e),r%2===1){t.push([0n,1n]);continue}let s=BigInt(r+1),o=0n,a=1n,c=1n;for(let d=0;d<r;d++){d>0&&(c=c*(s-BigInt(d)+1n)/BigInt(d));let[h,N]=t[d];if(h!==0n&&(o=o*N+c*h*a,a=a*N,d%8===7)){let p=cn(ai(o),a);o/=p,a/=p}}let l=-o,f=s*a,m=cn(ai(l),ai(f));l/=m,f/=m,f<0n&&(l=-l,f=-f),t.push([l,f])}let n=[];for(let r=1;r<=i;r++)n.push(t[2*r]);return n}var ln=new WeakMap;function Fe(i,e){let t=ln.get(i);if(t&&t.length>=e)return t;let n=e+Math.min(64,Math.ceil(e/2)),r=cs(n,i._deadline);return ln.set(i,r),r}function hn(i,e){return e.isFinite()?ue(ae,()=>Nn(i,e)):u.NAN}function Nn(i,e){if(e.isNegative()){if(e.isInteger())return u.NAN;let h=u.PI,N=h.mul(e),p=N.cos().div(N.sin());return Nn(i,u.ONE.sub(e)).sub(h.mul(p))}if(e.isZero())return u.NAN;let t=u.precision,n=10,r=Math.max(7,Math.ceil(t)),s=new u(0),o=e;for(;o.lt(r);)s=s.sub(u.ONE.div(o)),o=o.add(u.ONE);let a=Math.max(20,Math.ceil(.6*t)+20),c=Fe(i,a);s=s.add(o.ln()).sub(u.ONE.div(o.mul(2)));let l=o.mulToPrecision(o,t),f=l,m=new u(10).pow(-(t+n)),d=Math.min(a,c.length);for(let h=0;h<d;h++){let[N,p]=c[h],b=BigInt(2*(h+1)),y=new u(N.toString()).div(new u((p*b).toString()).mul(l));if(h>0&&y.abs().lt(m))break;s=s.sub(y),l=l.mulToPrecision(f,t)}return s}function pn(i,e){return e.isFinite()?ue(ae,()=>gn(i,e)):u.NAN}function gn(i,e){if(e.isNegative()){if(e.isInteger())return u.NAN;let h=u.PI,N=h.mul(e).sin();return h.mul(h).div(N.mul(N)).sub(gn(i,u.ONE.sub(e)))}if(e.isZero())return u.NAN;let t=u.precision,n=10,r=Math.max(7,Math.ceil(t)),s=new u(0),o=e;for(;o.lt(r);)s=s.add(u.ONE.div(o.mul(o))),o=o.add(u.ONE);let a=Math.max(20,Math.ceil(.6*t)+20),c=Fe(i,a);s=s.add(u.ONE.div(o)),s=s.add(u.ONE.div(o.mul(o).mul(2)));let l=o.mul(o).mulToPrecision(o,t),f=o.mulToPrecision(o,t),m=new u(10).pow(-(t+n)),d=Math.min(a,c.length);for(let h=0;h<d;h++){let[N,p]=c[h],b=new u(N.toString()).div(new u(p.toString()).mul(l));if(h>0&&b.abs().lt(m))break;s=s.add(b),l=l.mulToPrecision(f,t)}return s}function ls(i,e,t){let n=e.toNumber();return!Number.isInteger(n)||n<0?u.NAN:n===0?hn(i,t):n===1?pn(i,t):!t.isFinite()||t.isZero()?u.NAN:ue(ae,()=>ms(i,n,t))}function ms(i,e,t){let n=g=>{let E=u.ONE;for(let T=2;T<=g;T++)E=E.mul(T);return E},r=u.precision,s=10,o=Math.max(7,Math.ceil(r)),a=t,c=new u(0);if(a.isNegative()&&a.isInteger())return u.NAN;let l=e%2===0?-1:1,f=n(e);for(;a.lt(o);)c=c.add(new u(l).mul(f).div(a.pow(e+1))),a=a.add(u.ONE);let m=Math.max(20,Math.ceil(.6*r)+20),d=Fe(i,m),h=e%2===0?-1:1;c=c.add(new u(h).mul(n(e-1)).div(a.pow(e))),c=c.add(new u(h).mul(f).div(a.pow(e+1).mul(2)));let N=1n;for(let g=2;g<=e-1;g++)N*=BigInt(g);let p=a.pow(e+2).toPrecision(r),b=a.mulToPrecision(a,r),y=new u(10).pow(-(r+s)),v=Math.min(m,d.length);for(let g=0;g<v;g++){let E=2*(g+1),[T,A]=d[g],J=N;for(let j=0;j<E;j++)J*=BigInt(e+j);let V=1n;for(let j=2;j<=E;j++)V*=BigInt(j);let K=new u((BigInt(h)*T*J).toString()).div(new u((A*V).toString()).mul(p));if(g>0&&K.abs().lt(y))break;c=c.add(K),p=p.mulToPrecision(b,r)}return c}function fs(i,e,t){return ue(ae,()=>ye(i,e).mul(ye(i,t)).div(ye(i,e.add(t))))}function ds(i,e){return e.isFinite()?e.eq(1)?new u(1/0):ue(ae,()=>bn(i,e)):u.NAN}function bn(i,e){let t=u.PI;if(e.isZero())return u.HALF.neg();if(e.isInteger()&&e.isPositive()){let d=e.toNumber();if(d%2===0&&d>=2&&d<=os){let h=d/2,N=Fe(i,h),[p,b]=N[h-1],y=new u(ai(p).toString()).div(new u(b.toString())),v=t.mul(2),g=u.ONE,E=0;for(let T=2;T<=d;T++)(++E&4095)===0&&Z(i._deadline),g=g.mul(T);return y.mul(v.pow(d)).div(g.mul(2))}}if(e.isNegative()&&e.isInteger()&&e.mod(u.TWO).isZero())return u.ZERO;if(e.isNegative())return new u(2).pow(e).mul(t.pow(e.sub(1))).mul(t.mul(e).div(2).sin()).mul(ye(i,u.ONE.sub(e))).mul(bn(i,u.ONE.sub(e)));let n=u.precision;if(e.gt((n+10)*3.33))return u.ONE;let r=Math.max(22,Math.ceil(1.32*n)+3),o=new u(3).add(new u(8).sqrt()).pow(r),a=o.add(u.ONE.div(o)).div(2),c=u.NEGATIVE_ONE,l=a.neg(),f=u.ZERO;for(let d=0;d<r;d++)(d&255)===0&&Z(i._deadline),l=c.sub(l),f=f.add(l.div(new u(d+1).pow(e))),c=c.mul(new u(d+r).mul(d-r)).div(new u(d).add(u.HALF).mul(d+1));return f.div(a).div(u.ONE.sub(new u(2).pow(u.ONE.sub(e))))}function hs(i,e){if(!e.isFinite())return e;if(e.isZero())return new u(0);let n=u.ONE.div(u.ONE.exp()).neg(),r=new u(10).pow(-u.precision),s=new u(10).pow(-15);if(e.sub(n).abs().lt(s))return u.NEGATIVE_ONE;if(e.lt(n))return u.NAN;let o,a=e.toNumber();if(a<0){let c=Math.sqrt(2*(Math.E*a+1));o=new u(-1+c-c*c/3+11/72*c*c*c)}else if(a<=1)o=new u(a*(1-a*(1-1.5*a)));else if(a<100){let c=Math.log(a);o=new u(c-Math.log(c))}else{let c=e.ln(),l=c.ln();o=c.sub(l).add(l.div(c))}for(let c=0;c<100;c++){let l=o.exp(),m=o.mul(l).sub(e),d=l.mul(o.add(1)),h=l.mul(o.add(2)),N=m.div(d.sub(m.mul(h).div(d.mul(2))));if(o=o.sub(N),N.abs().lt(r.mul(o.abs().add(1))))break}return o.toPrecision(u.precision)}var mi=.5772156649015329,ee=[1/6,-1/30,1/42,-1/30,5/66,-691/2730,7/6,-3617/510,43867/798,-174611/330];function ot(i){if(!isFinite(i))return NaN;if(i<0)return Number.isInteger(i)?NaN:ot(1-i)-Math.PI/Math.tan(Math.PI*i);if(i===0)return NaN;let e=0,t=i;for(;t<7;)e-=1/t,t+=1;e+=Math.log(t)-1/(2*t);let n=t*t;for(let r=0;r<ee.length;r++)e-=ee[r]/(2*(r+1)*n),n*=t*t;return e}function ut(i){if(!isFinite(i))return NaN;if(i<0){if(Number.isInteger(i))return NaN;let r=Math.sin(Math.PI*i);return Math.PI*Math.PI/(r*r)-ut(1-i)}if(i===0)return NaN;let e=0,t=i;for(;t<7;)e+=1/(t*t),t+=1;e+=1/t+1/(2*t*t);let n=t*t*t;for(let r=0;r<ee.length;r++)e+=ee[r]/n,n*=t*t;return e}function Ns(i,e){if(!Number.isInteger(i)||i<0)return NaN;if(i===0)return ot(e);if(i===1)return ut(e);if(!isFinite(e)||e===0)return NaN;if(e<0&&Number.isInteger(e))return NaN;let t=0,n=e,r=zi(i),s=i%2===0?-1:1,o=i+10;for(;n<o;)t+=s*r/Math.pow(n,i+1),n+=1;let a=i%2===0?-1:1;t+=a*zi(i-1)/Math.pow(n,i),t+=a*r/(2*Math.pow(n,i+1));let c=r*(i+1)/(2*Math.pow(n,i+2)),l=1/0;for(let f=1;f<=ee.length;f++){let m=ee[f-1]*c;if(Math.abs(m)>=l)break;t+=a*m,l=Math.abs(m);let d=2*f;c*=(d+i)*(d+i+1)/((d+1)*(d+2)*n*n)}return t}function zi(i){if(i<=1)return 1;let e=1;for(let t=2;t<=i;t++)e*=t;return e}function ps(i,e){return i>100||e>100||i+e>100?Math.exp(Ae(i)+Ae(e)-Ae(i+e)):be(i)*be(e)/be(i+e)}function yn(i){if(!isFinite(i))return NaN;if(i===1)return 1/0;if(i===0)return-.5;if(i===2)return Math.PI*Math.PI/6;if(i===4)return Math.PI**4/90;if(i===6)return Math.PI**6/945;if(i===8)return Math.PI**8/9450;if(i<0&&Number.isInteger(i)){if(i%2===0)return 0;let s=1-i;if(s/2<=ee.length)return-ee[s/2-1]/s}if(i<0)return Math.pow(2,i)*Math.pow(Math.PI,i-1)*Math.sin(Math.PI*i/2)*be(1-i)*yn(1-i);if(i>=12){let s=1;for(let o=2;o<=128;o++){let a=Math.pow(o,-i);if(s+=a,a<s*1e-18)break}return s}let[e,t]=gs(),n=0,r=0;for(let s=0;s<In;s++){let a=(s%2===0?e[s]:-e[s])*Math.pow(s+1,-i)-r,c=n+a;r=c-n-a,n=c}return n/t/-Math.expm1((1-i)*Math.LN2)}var In=28,ui=null;function gs(){if(ui)return ui;let i=In,e=1n<<64n,t=e,n=e,r=[n];for(let c=0;c<i;c++)t=t*BigInt(4*(i+c)*(i-c))/BigInt((2*c+1)*(2*c+2)),n+=t,r.push(n);let s=r[i],o=Math.pow(2,64),a=[];for(let c=0;c<i;c++)a.push(Number(s-r[c])/o);return ui=[a,Number(s)/o],ui}function bs(i){if(!isFinite(i))return i;if(i===0)return 0;let e=1/Math.E;if(i<-e)return NaN;if(Math.abs(i+e)<1e-15)return-1;let t;if(i<0){let n=Math.sqrt(2*(Math.E*i+1));t=-1+n-n*n/3+11/72*n*n*n}else if(i<=1)t=i*(1-i*(1-1.5*i));else if(i<100){let n=Math.log(i);t=n-Math.log(n)}else{let n=Math.log(i),r=Math.log(n);t=n-r+r/n}for(let n=0;n<30;n++){let r=Math.exp(t),o=t*r-i,a=r*(t+1),c=r*(t+2),l=o/(a-o*c/(2*a));if(t-=l,Math.abs(l)<1e-15*(1+Math.abs(t)))break}return t}function se(i,e){return!isFinite(e)||!Number.isInteger(i)?NaN:e===0?i===0?1:0:i<0?(i=-i,i%2===0?se(i,e):-se(i,e)):e<0?i%2===0?se(i,-e):-se(i,-e):e>25+i*i/2?Is(i,e):e<5+i?ys(i,e):Ts(i,e)}function ys(i,e){let t=e/2,n=-(e*e)/4,r=1;for(let o=1;o<=i;o++)r/=o;let s=r;for(let o=1;o<=60&&(r*=n/(o*(i+o)),s+=r,!(Math.abs(r)<Math.abs(s)*1e-16));o++);return s*Math.pow(t,i)}function Tn(i,e){let t=4*i*i,n=1,r=0,s=1,o=8*e;for(let a=1;a<=20;a++){s*=t-(2*a-1)*(2*a-1);let c=zi(a)*Math.pow(o,a),l=s/c;if(a%2===1?r+=(a%4===1?1:-1)*l:n+=(a%4===2?-1:1)*l,Math.abs(l)<1e-15)break}return[n,r]}function Is(i,e){let t=e-(i/2+.25)*Math.PI,[n,r]=Tn(i,e);return Math.sqrt(2/(Math.PI*e))*(n*Math.cos(t)-r*Math.sin(t))}function Ts(i,e){let t=Math.max(i+20,Math.ceil(e)+30),n=0,r=1,s=new Array(t+1);s[t]=r;for(let c=t;c>=1;c--){let l=2*c/e*r-n;n=r,r=l,s[c-1]=r}let o=s[0];for(let c=2;c<=t;c+=2)o+=2*s[c];let a=1/o;return s[i]*a}function et(i,e){if(!isFinite(e)||!Number.isInteger(i))return NaN;if(e<=0)return NaN;if(i<0)return i=-i,i%2===0?et(i,e):-et(i,e);if(e>12+i*i/4)return Ms(i,e);let t=vs(e);if(i===0)return t;let n=Es(e);if(i===1)return n;let r=t,s=n;for(let o=1;o<i;o++){let a=2*o/e*s-r;r=s,s=a}return s}function vs(i){let e=i/2,t=e*e,n=se(0,i),r=0,s=1,o=0;for(let a=1;a<=60&&(o+=1/a,s*=-t/(a*a),r-=s*o,!(Math.abs(s*o)<Math.abs(r)*1e-16));a++);return 2/Math.PI*(n*(Math.log(e)+mi)+r)}function Es(i){let e=i/2,t=e*e,n=se(1,i),r=0,s=1,o=1;for(let a=0;a<=60;a++){a>0&&(o*=a,s*=t);let c=o*(a+1),l=0;for(let p=1;p<=a;p++)l+=1/p;let f=l+1/(a+1),m=-mi+l,d=-mi+f,N=(a%2===0?1:-1)*(m+d)*s/(o*c);if(r+=N,a>3&&Math.abs(N)<1e-16*Math.abs(r))break}return-2/(Math.PI*i)+2/Math.PI*Math.log(e)*n-e/Math.PI*r}function Ms(i,e){let t=e-(i/2+.25)*Math.PI,[n,r]=Tn(i,e);return Math.sqrt(2/(Math.PI*e))*(n*Math.sin(t)+r*Math.cos(t))}function Ie(i,e){return!isFinite(e)||!Number.isInteger(i)?NaN:e===0?i===0?1:0:(i<0&&(i=-i),e<0?i%2===0?Ie(i,-e):-Ie(i,-e):e>20&&e>=i*i?ws(i,e):Bs(i,e))}function Bs(i,e){let t=e/2,n=e*e/4,r=1;for(let a=1;a<=i;a++)r/=a;let s=r,o=0;for(let a=1;a<=500;a++){r*=n/(a*(i+a));let c=r-o,l=s+c;if(o=l-s-c,s=l,Math.abs(r)<Math.abs(s)*1e-17)break}return s*Math.pow(t,i)}function ws(i,e){let t=4*i*i,n=1,r=1,s=1/0;for(let o=1;o<=40;o++){let a=t-(2*o-1)*(2*o-1);if(n*=-a/(o*8*e),Math.abs(n)>=s||(r+=n,s=Math.abs(n),Math.abs(n)<1e-17*Math.abs(r)))break}return Math.exp(e)/Math.sqrt(2*Math.PI*e)*r}function xs(i,e){if(!isFinite(e)||!Number.isInteger(i))return NaN;if(e<=0)return NaN;i<0&&(i=-i);let t,n;if(e>=20){if(t=mn(0,e),i===0)return t;n=mn(1,e)}else if(e>=1.5){if([t,n]=ks(e),i===0)return t}else{if(t=vn(e),i===0)return t;n=Ps(e)}if(i===1)return n;let r=t,s=n;for(let o=1;o<i;o++){let a=2*o/e*s+r;r=s,s=a}return s}function ks(i){let t=2*(1+i),n=1/t,r=n,s=n,o=0,a=1,c=-.25,l=.25,f=.25,m=1+f*s,d=0,h=0;for(let b=2;b<=1e4;b++){c-=2*(b-1),l=-c*l/b;let y=(o-t*a)/c;o=a,a=y,f+=l*y,t+=2,n=1/(t+c*n),s=(t*n-1)*s;let v=s-h,g=r+v;h=g-r-v,r=g;let E=f*s;if(v=E-d,g=m+v,d=g-m-v,m=g,Math.abs(E)<1e-18*Math.abs(m))break}r=.25*r;let N=Math.sqrt(Math.PI/(2*i))*Math.exp(-i)/m,p=N*(i+.5-r)/i;return[N,p]}function vn(i){let e=i/2,t=e*e,n=Ie(0,i),r=0,s=1,o=0;for(let a=1;a<=60&&(o+=1/a,s*=t/(a*a),r+=s*o,!(Math.abs(s*o)<Math.abs(r)*1e-16&&a>3));a++);return-(Math.log(e)+mi)*n+r}function Ps(i){let e=Ie(0,i),t=Ie(1,i),n=vn(i);return(1/i-t*n)/e}function mn(i,e){let t=4*i*i,n=1,r=1,s=1/0;for(let o=1;o<=40;o++){let a=t-(2*o-1)*(2*o-1);if(n*=a/(o*8*e),Math.abs(n)>=s||(r+=n,s=Math.abs(n),Math.abs(n)<1e-17*Math.abs(r)))break}return Math.sqrt(Math.PI/(2*e))*Math.exp(-e)*r}var fn=134217729;function dn(i,e){let t=i+e,n=t-i;return[t,i-(t-n)+(e-n)]}function Te(i,e){let t=i+e;return[t,e-(t-i)]}function Ce(i,e){let t=i*e,n=fn*i,r=n-(n-i),s=i-r,o=fn*e,a=o-(o-e),c=e-a;return[t,r*a-t+r*c+s*a+s*c]}function ve(i,e){let[t,n]=dn(i[0],e[0]),[r,s]=dn(i[1],e[1]),[o,a]=Te(t,n+r);return Te(o,a+s)}function En(i){return[-i[0],-i[1]]}function oe(i,e){let[t,n]=Ce(i[0],e[0]);return Te(t,n+i[0]*e[1]+i[1]*e[0])}function it(i,e){let[t,n]=Ce(i[0],e);return Te(t,n+i[1]*e)}function tt(i,e){let t=i[0]/e,[n,r]=Ce(t,e),s=ve(i,[-n,-r]);return Te(t,(s[0]+s[1])/e)}function Rs(i){let e=Math.sqrt(i),[t,n]=Ce(e,e);return Te(e,(i-t-n)/(2*e))}var Mn=[.3550280538878172,205233632436212e-31],Bn=[.2588194037928068,-2522243111610832e-32],Ds=[1.7320508075688772,10035084221806903e-32],Ss=[.7853981633974483,3061616997868383e-32];function wn(i){let e=it(Ce(i,i),i),t=[1,0],n=[i,0],r=[1,0],s=[i,0];for(let o=1;o<=200;o++){let a=3*o;if(r=tt(oe(r,e),(a-1)*a),s=tt(oe(s,e),a*(a+1)),t=ve(t,r),n=ve(n,s),Math.abs(r[0])+Math.abs(s[0])<1e-34*(Math.abs(t[0])+Math.abs(n[0])))break}return[t,n]}function at(i){let e=it(Rs(i),i);return tt(it(e,2),3)}function ct(i){return(6*i-5)*(6*i-3)*(6*i-1)/(216*i*(2*i-1))}function xn(i){let e=at(i),t=e[0],n=ve(e,En(Ss)),r=Math.cos(n[0]),s=Math.sin(n[0]),o=r-s*n[1],a=s+r*n[1],c=1,l=0,f=1,m=1/0;for(let h=1;h<=60;h++){f*=ct(h)/t;let N=Math.abs(f);if(N>=m)break;m=N;let p=h%4===0||h%4===1?f:-f;if(h%2===0?c+=p:l+=p,N<1e-18)break}let d=1/(Math.sqrt(Math.PI)*Math.pow(i,.25));return[c,l,o,a,d]}function Os(i){if(!isFinite(i))return NaN;if(i>9){let n=at(i),r=n[0];if(!Number.isFinite(r))return 0;let s=1,o=1,a=1/0;for(let l=1;l<=60&&(o*=ct(l)/r,!(o>=a||(s+=l%2===0?o:-o,a=o,o<1e-18*s)));l++);return Math.exp(-r)*(1-n[1])/(2*Math.sqrt(Math.PI)*Math.pow(i,.25))*s}if(i<-9){let[n,r,s,o,a]=xn(-i);return a*(s*n+o*r)}let[e,t]=wn(i);return ve(oe(Mn,e),En(oe(Bn,t)))[0]}function As(i){if(!isFinite(i))return NaN;if(i>9){let n=at(i),r=n[0];if(!Number.isFinite(r))return 1/0;let s=1,o=1,a=1/0;for(let l=1;l<=60&&(o*=ct(l)/r,!(o>=a||(s+=o,a=o,o<1e-18*s)));l++);return Math.exp(r)*(1+n[1])/(Math.sqrt(Math.PI)*Math.pow(i,.25))*s}if(i<-9){let[n,r,s,o,a]=xn(-i);return a*(-o*n+s*r)}let[e,t]=wn(i);return oe(Ds,ve(oe(Mn,e),oe(Bn,t)))[0]}var Fs=[-2991.8191940101983,708840.0452577386,-6297414862058625e-8,25489088057337637e-7,-4429795180596978e-5,3180162978765678e-4],Cs=[1,281.3762688899943,45584.78108065326,5173438887700964e-9,4193202458981112e-7,22441179564534092e-6,607366389490085e-3],_s=[-49884311457357354e-24,9504280628298596e-21,-.0006451914356839651,.018884331939670384,-.20552590095501388,1],Vs=[399982968972496e-26,9154392157746574e-25,12500186247959882e-23,12226278902417902e-21,.0008680295429417843,.04121420907221998,1],kn=[.4215435550436775,.1434079197807589,.011522095507358577,.000345017939782574,46361374928786735e-22,3055689837902576e-23,10230451416490724e-26,17201074326816183e-29,13428327623306275e-32,3763297112699879e-35],Pn=[1,.7515863983533789,.11688892585919138,.0064405152650885865,.00015593440916415301,18462756734893055e-22,11269922476399903e-24,36014002958937136e-27,5887545336215784e-29,45200143407412973e-33,12544323709001127e-36],Rn=[.5044420736433832,.1971028335255234,.018764858409257526,.0006840793809153931,11513882611188428e-21,9828524436884223e-23,44534441586175015e-26,10826804113902088e-28,1375554606332618e-30,8363544356306774e-34,18695871016278324e-38],Dn=[1,1.4749575992512833,.33774898912002,.02536037414203388,.0008146791071843061,12754507566772912e-21,10431458965757199e-23,46068072851523205e-26,11027321506624028e-28,13879653125957886e-31,8391588162831187e-34,18695871016278324e-38];function Y(i,e){let t=e[0];for(let n=1;n<e.length;n++)t=t*i+e[n];return t}var Sn=6e15;function On(i){let t=134217729*i,n=t-(t-i),r=i-n,s=n*n%4+2*(n*r%2)+r*r%4;return s%=4,s<0&&(s+=4),Math.PI/2*s}function qs(i){if(!isFinite(i))return i!==i?NaN:i>0?.5:-.5;let e=i<0?-1:1;if(i=Math.abs(i),i<1.6){let t=i*i,n=t*t;return e*i*t*Y(n,Fs)/Y(n,Cs)}if(i<Sn){let t=i*i,n=Math.PI*t,r=1/(n*n),s=1-r*Y(r,kn)/Y(r,Pn),o=1/n*Y(r,Rn)/Y(r,Dn),a=On(i),c=Math.cos(a),l=Math.sin(a);return e*(.5-(s*c+o*l)/(Math.PI*i))}return e*.5}function Zs(i){if(!isFinite(i))return i!==i?NaN:i>0?.5:-.5;let e=i<0?-1:1;if(i=Math.abs(i),i<1.6){let t=i*i,n=t*t;return e*i*Y(n,_s)/Y(n,Vs)}if(i<Sn){let t=i*i,n=Math.PI*t,r=1/(n*n),s=1-r*Y(r,kn)/Y(r,Pn),o=1/n*Y(r,Rn)/Y(r,Dn),a=On(i),c=Math.cos(a),l=Math.sin(a);return e*(.5+(s*l-o*c)/(Math.PI*i))}return e*.5}function Ls(i){return i===0?1:Math.sin(i)/i}var R=Math.cosh||function(i){return Math.abs(i)<1e-9?1-i:(Math.exp(i)+Math.exp(-i))*.5},U=Math.sinh||function(i){return Math.abs(i)<1e-9?i:(Math.exp(i)-Math.exp(-i))*.5},Gs=function(i){var e=Math.PI/4;if(-e>i||i>e)return Math.cos(i)-1;var t=i*i;return t*(t*(t*(t*(t*(t*(t*(t/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-1/2)},Ys=function(i,e){var t=Math.abs(i),n=Math.abs(e);return t<3e3&&n<3e3?Math.sqrt(t*t+n*n):(t<n?(t=n,n=i/e):n=e/i,t*Math.sqrt(1+n*n))},Ee=function(){throw SyntaxError("Invalid Param")};function lt(i,e){var t=Math.abs(i),n=Math.abs(e);return i===0?Math.log(n):e===0?Math.log(t):t<3e3&&n<3e3?Math.log(i*i+e*e)*.5:(i=i/2,e=e/2,.5*Math.log(i*i+e*e)+Math.LN2)}var Us=function(i,e){var t={re:0,im:0};if(i==null)t.re=t.im=0;else if(e!==void 0)t.re=i,t.im=e;else switch(typeof i){case"object":if("im"in i&&"re"in i)t.re=i.re,t.im=i.im;else if("abs"in i&&"arg"in i){if(!Number.isFinite(i.abs)&&Number.isFinite(i.arg))return w.INFINITY;t.re=i.abs*Math.cos(i.arg),t.im=i.abs*Math.sin(i.arg)}else if("r"in i&&"phi"in i){if(!Number.isFinite(i.r)&&Number.isFinite(i.phi))return w.INFINITY;t.re=i.r*Math.cos(i.phi),t.im=i.r*Math.sin(i.phi)}else i.length===2?(t.re=i[0],t.im=i[1]):Ee();break;case"string":t.im=t.re=0;var n=i.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),r=1,s=0;n===null&&Ee();for(var o=0;o<n.length;o++){var a=n[o];a===" "||a===" "||a===`
|
|
6
|
-
`||(a==="+"?r++:a==="-"?s++:a==="i"||a==="I"?(r+s===0&&Ee(),n[o+1]!==" "&&!isNaN(Number(n[o+1]))?(t.im+=parseFloat((s%2?"-":"")+n[o+1]),o++):t.im+=parseFloat((s%2?"-":"")+"1"),r=s=0):((r+s===0||isNaN(Number(a)))&&Ee(),n[o+1]==="i"||n[o+1]==="I"?(t.im+=parseFloat((s%2?"-":"")+a),o++):t.re+=parseFloat((s%2?"-":"")+a),r=s=0))}r+s>0&&Ee();break;case"number":t.im=0,t.re=i;break;default:Ee()}return isNaN(t.re)||isNaN(t.im),t},w=class i{constructor(e,t){this.re=0,this.im=0;var n=Us(e,t);this.re=n.re,this.im=n.im}sign(){var e=this.abs();return new i(this.re/e,this.im/e)}add(e,t){var n=new i(e,t);return this.isInfinite()&&n.isInfinite()?i.NAN:this.isInfinite()||n.isInfinite()?i.INFINITY:new i(this.re+n.re,this.im+n.im)}sub(e,t){var n=new i(e,t);return this.isInfinite()&&n.isInfinite()?i.NAN:this.isInfinite()||n.isInfinite()?i.INFINITY:new i(this.re-n.re,this.im-n.im)}mul(e,t){var n=new i(e,t);return this.isInfinite()&&n.isZero()||this.isZero()&&n.isInfinite()?i.NAN:this.isInfinite()||n.isInfinite()?i.INFINITY:n.im===0&&this.im===0?new i(this.re*n.re,0):new i(this.re*n.re-this.im*n.im,this.re*n.im+this.im*n.re)}div(e,t){var n=new i(e,t);if(this.isZero()&&n.isZero()||this.isInfinite()&&n.isInfinite())return i.NAN;if(this.isInfinite()||n.isZero())return i.INFINITY;if(this.isZero()||n.isInfinite())return i.ZERO;e=this.re,t=this.im;var r=n.re,s=n.im,o,a;return s===0?new i(e/r,t/r):Math.abs(r)<Math.abs(s)?(a=r/s,o=r*a+s,new i((e*a+t)/o,(t*a-e)/o)):(a=s/r,o=s*a+r,new i((e+t*a)/o,(t-e*a)/o))}pow(e,t){var n=new i(e,t);if(e=this.re,t=this.im,n.isZero())return i.ONE;if(n.im===0){if(t===0&&e>0)return new i(Math.pow(e,n.re),0);if(e===0)switch((n.re%4+4)%4){case 0:return new i(Math.pow(t,n.re),0);case 1:return new i(0,Math.pow(t,n.re));case 2:return new i(-Math.pow(t,n.re),0);case 3:return new i(0,-Math.pow(t,n.re))}}if(e===0&&t===0&&n.re>0&&n.im>=0)return i.ZERO;var r=Math.atan2(t,e),s=lt(e,t);return e=Math.exp(n.re*s-n.im*r),t=n.im*s+n.re*r,new i(e*Math.cos(t),e*Math.sin(t))}sqrt(){var e=this.re,t=this.im,n=this.abs(),r,s;if(e>=0){if(t===0)return new i(Math.sqrt(e),0);r=.5*Math.sqrt(2*(n+e))}else r=Math.abs(t)/Math.sqrt(2*(n-e));return e<=0?s=.5*Math.sqrt(2*(n-e)):s=Math.abs(t)/Math.sqrt(2*(n+e)),new i(r,t<0?-s:s)}exp(){var e=Math.exp(this.re);return this.im,new i(e*Math.cos(this.im),e*Math.sin(this.im))}expm1(){var e=this.re,t=this.im;return new i(Math.expm1(e)*Math.cos(t)+Gs(t),Math.exp(e)*Math.sin(t))}log(){var e=this.re,t=this.im;return t===0&&e>0,new i(lt(e,t),Math.atan2(t,e))}abs(){return Ys(this.re,this.im)}arg(){return Math.atan2(this.im,this.re)}sin(){var e=this.re,t=this.im;return new i(Math.sin(e)*R(t),Math.cos(e)*U(t))}cos(){var e=this.re,t=this.im;return new i(Math.cos(e)*R(t),-Math.sin(e)*U(t))}tan(){var e=2*this.re,t=2*this.im,n=Math.cos(e)+R(t);return new i(Math.sin(e)/n,U(t)/n)}cot(){var e=2*this.re,t=2*this.im,n=Math.cos(e)-R(t);return new i(-Math.sin(e)/n,U(t)/n)}sec(){var e=this.re,t=this.im,n=.5*R(2*t)+.5*Math.cos(2*e);return new i(Math.cos(e)*R(t)/n,Math.sin(e)*U(t)/n)}csc(){var e=this.re,t=this.im,n=.5*R(2*t)-.5*Math.cos(2*e);return new i(Math.sin(e)*R(t)/n,-Math.cos(e)*U(t)/n)}asin(){var e=this.re,t=this.im,n=new i(t*t-e*e+1,-2*e*t).sqrt(),r=new i(n.re-t,n.im+e).log();return new i(r.im,-r.re)}acos(){var e=this.re,t=this.im,n=new i(t*t-e*e+1,-2*e*t).sqrt(),r=new i(n.re-t,n.im+e).log();return new i(Math.PI/2-r.im,r.re)}atan(){var e=this.re,t=this.im;if(e===0){if(t===1)return new i(0,1/0);if(t===-1)return new i(0,-1/0)}var n=e*e+(1-t)*(1-t),r=new i((1-t*t-e*e)/n,-2*e/n).log();return new i(-.5*r.im,.5*r.re)}acot(){var e=this.re,t=this.im;if(t===0)return new i(Math.atan2(1,e),0);var n=e*e+t*t;return n!==0?new i(e/n,-t/n).atan():new i(e!==0?e/0:0,t!==0?-t/0:0).atan()}asec(){var e=this.re,t=this.im;if(e===0&&t===0)return new i(0,1/0);var n=e*e+t*t;return n!==0?new i(e/n,-t/n).acos():new i(e!==0?e/0:0,t!==0?-t/0:0).acos()}acsc(){var e=this.re,t=this.im;if(e===0&&t===0)return new i(Math.PI/2,1/0);var n=e*e+t*t;return n!==0?new i(e/n,-t/n).asin():new i(e!==0?e/0:0,t!==0?-t/0:0).asin()}sinh(){var e=this.re,t=this.im;return new i(U(e)*Math.cos(t),R(e)*Math.sin(t))}cosh(){var e=this.re,t=this.im;return new i(R(e)*Math.cos(t),U(e)*Math.sin(t))}tanh(){var e=2*this.re,t=2*this.im,n=R(e)+Math.cos(t);return new i(U(e)/n,Math.sin(t)/n)}coth(){var e=2*this.re,t=2*this.im,n=R(e)-Math.cos(t);return new i(U(e)/n,-Math.sin(t)/n)}csch(){var e=this.re,t=this.im,n=Math.cos(2*t)-R(2*e);return new i(-2*U(e)*Math.cos(t)/n,2*R(e)*Math.sin(t)/n)}sech(){var e=this.re,t=this.im,n=Math.cos(2*t)+R(2*e);return new i(2*R(e)*Math.cos(t)/n,-2*U(e)*Math.sin(t)/n)}asinh(){var e=this.im;this.im=-this.re,this.re=e;var t=this.asin();return this.re=-this.im,this.im=e,e=t.re,t.re=-t.im,t.im=e,t}acosh(){var e=this.acos();if(e.im<=0){var t=e.re;e.re=-e.im,e.im=t}else{var t=e.im;e.im=-e.re,e.re=t}return e}atanh(){var e=this.re,t=this.im,n=e>1&&t===0,r=1-e,s=1+e,o=r*r+t*t,a=o!==0?new i((s*r-t*t)/o,(t*r+s*t)/o):new i(e!==-1?e/0:0,t!==0?t/0:0),c=a.re;return a.re=lt(a.re,a.im)/2,a.im=Math.atan2(a.im,c)/2,n&&(a.im=-a.im),a}acoth(){var e=this.re,t=this.im;if(e===0&&t===0)return new i(0,Math.PI/2);var n=e*e+t*t;return n!==0?new i(e/n,-t/n).atanh():new i(e!==0?e/0:0,t!==0?-t/0:0).atanh()}acsch(){var e=this.re,t=this.im;if(t===0)return new i(e!==0?Math.log(e+Math.sqrt(e*e+1)):1/0,0);var n=e*e+t*t;return n!==0?new i(e/n,-t/n).asinh():new i(e!==0?e/0:0,t!==0?-t/0:0).asinh()}asech(){var e=this.re,t=this.im;if(this.isZero())return i.INFINITY;var n=e*e+t*t;return n!==0?new i(e/n,-t/n).acosh():new i(e!==0?e/0:0,t!==0?-t/0:0).acosh()}inverse(){if(this.isZero())return i.INFINITY;if(this.isInfinite())return i.ZERO;var e=this.re,t=this.im,n=e*e+t*t;return new i(e/n,-t/n)}conjugate(){return new i(this.re,-this.im)}neg(){return new i(-this.re,-this.im)}ceil(e){return e=Math.pow(10,e||0),new i(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)}floor(e){return e=Math.pow(10,e||0),new i(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)}round(e){return e=Math.pow(10,e||0),new i(Math.round(this.re*e)/e,Math.round(this.im*e)/e)}equals(e,t){var n=new i(e,t);return Math.abs(n.re-this.re)<=i.EPSILON&&Math.abs(n.im-this.im)<=i.EPSILON}clone(){return new i(this.re,this.im)}toString(){var e=this.re,t=this.im,n="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(e)<i.EPSILON&&(e=0),Math.abs(t)<i.EPSILON&&(t=0),t===0?n+e:(e!==0?(n+=e,n+=" ",t<0?(t=-t,n+="-"):n+="+",n+=" "):t<0&&(t=-t,n+="-"),t!==1&&(n+=t),n+"i"))}toVector(){return[this.re,this.im]}valueOf(){return this.im===0?this.re:null}isNaN(){return isNaN(this.re)||isNaN(this.im)}isZero(){return this.im===0&&this.re===0}isFinite(){return isFinite(this.re)&&isFinite(this.im)}isInfinite(){return!(this.isNaN()||this.isFinite())}};w.ZERO=new w(0,0);w.ONE=new w(1,0);w.I=new w(0,1);w.PI=new w(Math.PI,0);w.E=new w(Math.E,0);w.INFINITY=new w(1/0,1/0);w.NAN=new w(NaN,NaN);w.EPSILON=1e-15;var fi=7,di=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23],js=Math.sqrt(2*Math.PI),Js=.5*Math.log(2*Math.PI);function An(i){if(i.re<.5){let r=i.mul(Math.PI).sin();return new w(Math.PI,0).div(r.mul(An(new w(1,0).sub(i))))}let e=i.sub(1),t=new w(di[0],0);for(let r=1;r<fi+2;r++)t=t.add(new w(di[r],0).div(e.add(r)));let n=e.add(fi+.5);return new w(js,0).mul(n.pow(e.add(.5))).mul(n.neg().exp()).mul(t)}function Fn(i){if(i.re<.5){let r=i.mul(Math.PI).sin();return new w(Math.PI,0).div(r).log().sub(Fn(new w(1,0).sub(i)))}let e=i.sub(1),t=new w(di[0],0);for(let r=1;r<fi+2;r++)t=t.add(new w(di[r],0).div(e.add(r)));let n=e.add(fi+.5);return new w(Js,0).add(e.add(.5).mul(n.log())).sub(n).add(t.log())}var ja=new w(NaN,NaN),Ja=new w(1,0),$a=new w(0,0);var Ha="0.69.0";export{Ji as BigNumericValue,cr as DEFAULT_PRECISION,Ot as DEFAULT_TOLERANCE,re as ExactNumericValue,nr as LARGEST_SMALL_PRIME,lr as MACHINE_PRECISION,St as MACHINE_PRECISION_BITS,mr as MAX_BIGINT_DIGITS,fr as MAX_ITERATION,dr as MAX_SYMBOLIC_TERMS,$i as MachineNumericValue,F as NumericValue,C as SMALL_INTEGER,O as add,Os as airyAi,As as airyBi,Da as areCompatibleUnits,Mo as asMachineRational,Ie as besselI,se as besselJ,xs as besselK,et as besselY,ps as beta,fs as bigBeta,wa as bigCorrelation,va as bigCovariance,hn as bigDigamma,as as bigGamma,us as bigGammaln,ka as bigInterquartileRange,pa as bigKurtosis,hs as bigLambertW,la as bigMean,Hi as bigMedian,Ia as bigMode,ls as bigPolygamma,Ma as bigPopulationCovariance,ha as bigPopulationStandardDeviation,Wr as bigPopulationVariance,Dt as bigPrimeFactors,Qr as bigQuartiles,ba as bigSkewness,fa as bigStandardDeviation,pn as bigTrigamma,Xr as bigVariance,ds as bigZeta,L as bigint,Je as bigintCanonicalInteger,Ft as bigintFactorial,me as bigintGcd,ki as bigintLcm,Co as bigintValue,Yr as bignumFactorial2,nn as bignumGcd,Gr as bignumLcm,Q as canonicalInteger,vr as cantorEnumerateComplexNumbers,Er as cantorEnumerateIntegers,Mr as cantorEnumerateNaturalNumbers,Tr as cantorEnumeratePositiveRationals,Ir as cantorEnumerateRationals,br as centeredDiff8thOrder,gr as chop,An as complexGamma,Fn as complexGammaln,Aa as convertCompoundUnit,ts as convertUnit,Ba as correlation,Ta as covariance,jr as determinant,ot as digamma,Ki as dimensionsEqual,Eo as div,rt as erf,ss as erfInv,nt as erfc,vi as extrapolate,Nr as factorial,pr as factorial2,Sa as findNamedUnit,Zs as fresnelC,qs as fresnelS,Vt as fromDigits,be as gamma,Ae as gammaln,G as gcd,pe as getExpressionDimension,ge as getExpressionScale,Wi as getUnitDimension,es as getUnitScale,xa as interquartileRange,ea as interval,ia as intervalContains,ta as intervalSubset,fe as inverse,Pi as isBigRational,Ra as isDimensionless,ti as isInMachineRange,z as isInteger,S as isMachineRational,vo as isNeg,Di as isNegativeOne,Ri as isOne,Pe as isPositive,ao as isPrime,Rt as isPrimeBigint,yo as isRational,k as isZero,Na as kurtosis,bs as lambertW,xi as lcm,Bi as limit,To as machineDenominator,Io as machineNumerator,ca as mean,Xi as median,sr as modPow,ya as mode,oa as monteCarloEstimate,x as mul,$ as neg,hr as nextDown,At as nextUp,_ as numberToExpression,P as numberToString,Oa as parseUnitDSL,Ns as polygamma,Ea as populationCovariance,da as populationStandardDeviation,Hr as populationVariance,Bo as pow,Ei as primeFactors,Kr as quartiles,Si as rationalAsFloat,Ct as rationalGcd,xo as rationalize,ko as reduceRationalSquareRoot,Br as reducedInteger,ke as reducedRational,Do as roundMeasurementForDisplay,$e as roundToDecimalPlace,xr as roundToSignificant,Ls as sinc,ga as skewness,wo as sqrt,ma as standardDeviation,ut as trigamma,$r as variance,Ha as version,yn as zeta};
|
|
6
|
+
`||(a==="+"?r++:a==="-"?s++:a==="i"||a==="I"?(r+s===0&&Ee(),n[o+1]!==" "&&!isNaN(Number(n[o+1]))?(t.im+=parseFloat((s%2?"-":"")+n[o+1]),o++):t.im+=parseFloat((s%2?"-":"")+"1"),r=s=0):((r+s===0||isNaN(Number(a)))&&Ee(),n[o+1]==="i"||n[o+1]==="I"?(t.im+=parseFloat((s%2?"-":"")+a),o++):t.re+=parseFloat((s%2?"-":"")+a),r=s=0))}r+s>0&&Ee();break;case"number":t.im=0,t.re=i;break;default:Ee()}return isNaN(t.re)||isNaN(t.im),t},w=class i{constructor(e,t){this.re=0,this.im=0;var n=Us(e,t);this.re=n.re,this.im=n.im}sign(){var e=this.abs();return new i(this.re/e,this.im/e)}add(e,t){var n=new i(e,t);return this.isInfinite()&&n.isInfinite()?i.NAN:this.isInfinite()||n.isInfinite()?i.INFINITY:new i(this.re+n.re,this.im+n.im)}sub(e,t){var n=new i(e,t);return this.isInfinite()&&n.isInfinite()?i.NAN:this.isInfinite()||n.isInfinite()?i.INFINITY:new i(this.re-n.re,this.im-n.im)}mul(e,t){var n=new i(e,t);return this.isInfinite()&&n.isZero()||this.isZero()&&n.isInfinite()?i.NAN:this.isInfinite()||n.isInfinite()?i.INFINITY:n.im===0&&this.im===0?new i(this.re*n.re,0):new i(this.re*n.re-this.im*n.im,this.re*n.im+this.im*n.re)}div(e,t){var n=new i(e,t);if(this.isZero()&&n.isZero()||this.isInfinite()&&n.isInfinite())return i.NAN;if(this.isInfinite()||n.isZero())return i.INFINITY;if(this.isZero()||n.isInfinite())return i.ZERO;e=this.re,t=this.im;var r=n.re,s=n.im,o,a;return s===0?new i(e/r,t/r):Math.abs(r)<Math.abs(s)?(a=r/s,o=r*a+s,new i((e*a+t)/o,(t*a-e)/o)):(a=s/r,o=s*a+r,new i((e+t*a)/o,(t-e*a)/o))}pow(e,t){var n=new i(e,t);if(e=this.re,t=this.im,n.isZero())return i.ONE;if(n.im===0){if(t===0&&e>0)return new i(Math.pow(e,n.re),0);if(e===0)switch((n.re%4+4)%4){case 0:return new i(Math.pow(t,n.re),0);case 1:return new i(0,Math.pow(t,n.re));case 2:return new i(-Math.pow(t,n.re),0);case 3:return new i(0,-Math.pow(t,n.re))}}if(e===0&&t===0&&n.re>0&&n.im>=0)return i.ZERO;var r=Math.atan2(t,e),s=lt(e,t);return e=Math.exp(n.re*s-n.im*r),t=n.im*s+n.re*r,new i(e*Math.cos(t),e*Math.sin(t))}sqrt(){var e=this.re,t=this.im,n=this.abs(),r,s;if(e>=0){if(t===0)return new i(Math.sqrt(e),0);r=.5*Math.sqrt(2*(n+e))}else r=Math.abs(t)/Math.sqrt(2*(n-e));return e<=0?s=.5*Math.sqrt(2*(n-e)):s=Math.abs(t)/Math.sqrt(2*(n+e)),new i(r,t<0?-s:s)}exp(){var e=Math.exp(this.re);return this.im,new i(e*Math.cos(this.im),e*Math.sin(this.im))}expm1(){var e=this.re,t=this.im;return new i(Math.expm1(e)*Math.cos(t)+Gs(t),Math.exp(e)*Math.sin(t))}log(){var e=this.re,t=this.im;return t===0&&e>0,new i(lt(e,t),Math.atan2(t,e))}abs(){return Ys(this.re,this.im)}arg(){return Math.atan2(this.im,this.re)}sin(){var e=this.re,t=this.im;return new i(Math.sin(e)*R(t),Math.cos(e)*U(t))}cos(){var e=this.re,t=this.im;return new i(Math.cos(e)*R(t),-Math.sin(e)*U(t))}tan(){var e=2*this.re,t=2*this.im,n=Math.cos(e)+R(t);return new i(Math.sin(e)/n,U(t)/n)}cot(){var e=2*this.re,t=2*this.im,n=Math.cos(e)-R(t);return new i(-Math.sin(e)/n,U(t)/n)}sec(){var e=this.re,t=this.im,n=.5*R(2*t)+.5*Math.cos(2*e);return new i(Math.cos(e)*R(t)/n,Math.sin(e)*U(t)/n)}csc(){var e=this.re,t=this.im,n=.5*R(2*t)-.5*Math.cos(2*e);return new i(Math.sin(e)*R(t)/n,-Math.cos(e)*U(t)/n)}asin(){var e=this.re,t=this.im,n=new i(t*t-e*e+1,-2*e*t).sqrt(),r=new i(n.re-t,n.im+e).log();return new i(r.im,-r.re)}acos(){var e=this.re,t=this.im,n=new i(t*t-e*e+1,-2*e*t).sqrt(),r=new i(n.re-t,n.im+e).log();return new i(Math.PI/2-r.im,r.re)}atan(){var e=this.re,t=this.im;if(e===0){if(t===1)return new i(0,1/0);if(t===-1)return new i(0,-1/0)}var n=e*e+(1-t)*(1-t),r=new i((1-t*t-e*e)/n,-2*e/n).log();return new i(-.5*r.im,.5*r.re)}acot(){var e=this.re,t=this.im;if(t===0)return new i(Math.atan2(1,e),0);var n=e*e+t*t;return n!==0?new i(e/n,-t/n).atan():new i(e!==0?e/0:0,t!==0?-t/0:0).atan()}asec(){var e=this.re,t=this.im;if(e===0&&t===0)return new i(0,1/0);var n=e*e+t*t;return n!==0?new i(e/n,-t/n).acos():new i(e!==0?e/0:0,t!==0?-t/0:0).acos()}acsc(){var e=this.re,t=this.im;if(e===0&&t===0)return new i(Math.PI/2,1/0);var n=e*e+t*t;return n!==0?new i(e/n,-t/n).asin():new i(e!==0?e/0:0,t!==0?-t/0:0).asin()}sinh(){var e=this.re,t=this.im;return new i(U(e)*Math.cos(t),R(e)*Math.sin(t))}cosh(){var e=this.re,t=this.im;return new i(R(e)*Math.cos(t),U(e)*Math.sin(t))}tanh(){var e=2*this.re,t=2*this.im,n=R(e)+Math.cos(t);return new i(U(e)/n,Math.sin(t)/n)}coth(){var e=2*this.re,t=2*this.im,n=R(e)-Math.cos(t);return new i(U(e)/n,-Math.sin(t)/n)}csch(){var e=this.re,t=this.im,n=Math.cos(2*t)-R(2*e);return new i(-2*U(e)*Math.cos(t)/n,2*R(e)*Math.sin(t)/n)}sech(){var e=this.re,t=this.im,n=Math.cos(2*t)+R(2*e);return new i(2*R(e)*Math.cos(t)/n,-2*U(e)*Math.sin(t)/n)}asinh(){var e=this.im;this.im=-this.re,this.re=e;var t=this.asin();return this.re=-this.im,this.im=e,e=t.re,t.re=-t.im,t.im=e,t}acosh(){var e=this.acos();if(e.im<=0){var t=e.re;e.re=-e.im,e.im=t}else{var t=e.im;e.im=-e.re,e.re=t}return e}atanh(){var e=this.re,t=this.im,n=e>1&&t===0,r=1-e,s=1+e,o=r*r+t*t,a=o!==0?new i((s*r-t*t)/o,(t*r+s*t)/o):new i(e!==-1?e/0:0,t!==0?t/0:0),c=a.re;return a.re=lt(a.re,a.im)/2,a.im=Math.atan2(a.im,c)/2,n&&(a.im=-a.im),a}acoth(){var e=this.re,t=this.im;if(e===0&&t===0)return new i(0,Math.PI/2);var n=e*e+t*t;return n!==0?new i(e/n,-t/n).atanh():new i(e!==0?e/0:0,t!==0?-t/0:0).atanh()}acsch(){var e=this.re,t=this.im;if(t===0)return new i(e!==0?Math.log(e+Math.sqrt(e*e+1)):1/0,0);var n=e*e+t*t;return n!==0?new i(e/n,-t/n).asinh():new i(e!==0?e/0:0,t!==0?-t/0:0).asinh()}asech(){var e=this.re,t=this.im;if(this.isZero())return i.INFINITY;var n=e*e+t*t;return n!==0?new i(e/n,-t/n).acosh():new i(e!==0?e/0:0,t!==0?-t/0:0).acosh()}inverse(){if(this.isZero())return i.INFINITY;if(this.isInfinite())return i.ZERO;var e=this.re,t=this.im,n=e*e+t*t;return new i(e/n,-t/n)}conjugate(){return new i(this.re,-this.im)}neg(){return new i(-this.re,-this.im)}ceil(e){return e=Math.pow(10,e||0),new i(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)}floor(e){return e=Math.pow(10,e||0),new i(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)}round(e){return e=Math.pow(10,e||0),new i(Math.round(this.re*e)/e,Math.round(this.im*e)/e)}equals(e,t){var n=new i(e,t);return Math.abs(n.re-this.re)<=i.EPSILON&&Math.abs(n.im-this.im)<=i.EPSILON}clone(){return new i(this.re,this.im)}toString(){var e=this.re,t=this.im,n="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(e)<i.EPSILON&&(e=0),Math.abs(t)<i.EPSILON&&(t=0),t===0?n+e:(e!==0?(n+=e,n+=" ",t<0?(t=-t,n+="-"):n+="+",n+=" "):t<0&&(t=-t,n+="-"),t!==1&&(n+=t),n+"i"))}toVector(){return[this.re,this.im]}valueOf(){return this.im===0?this.re:null}isNaN(){return isNaN(this.re)||isNaN(this.im)}isZero(){return this.im===0&&this.re===0}isFinite(){return isFinite(this.re)&&isFinite(this.im)}isInfinite(){return!(this.isNaN()||this.isFinite())}};w.ZERO=new w(0,0);w.ONE=new w(1,0);w.I=new w(0,1);w.PI=new w(Math.PI,0);w.E=new w(Math.E,0);w.INFINITY=new w(1/0,1/0);w.NAN=new w(NaN,NaN);w.EPSILON=1e-15;var fi=7,di=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23],js=Math.sqrt(2*Math.PI),Js=.5*Math.log(2*Math.PI);function An(i){if(i.re<.5){let r=i.mul(Math.PI).sin();return new w(Math.PI,0).div(r.mul(An(new w(1,0).sub(i))))}let e=i.sub(1),t=new w(di[0],0);for(let r=1;r<fi+2;r++)t=t.add(new w(di[r],0).div(e.add(r)));let n=e.add(fi+.5);return new w(js,0).mul(n.pow(e.add(.5))).mul(n.neg().exp()).mul(t)}function Fn(i){if(i.re<.5){let r=i.mul(Math.PI).sin();return new w(Math.PI,0).div(r).log().sub(Fn(new w(1,0).sub(i)))}let e=i.sub(1),t=new w(di[0],0);for(let r=1;r<fi+2;r++)t=t.add(new w(di[r],0).div(e.add(r)));let n=e.add(fi+.5);return new w(Js,0).add(e.add(.5).mul(n.log())).sub(n).add(t.log())}var ja=new w(NaN,NaN),Ja=new w(1,0),$a=new w(0,0);var Ha="0.69.1";export{Ji as BigNumericValue,cr as DEFAULT_PRECISION,Ot as DEFAULT_TOLERANCE,re as ExactNumericValue,nr as LARGEST_SMALL_PRIME,lr as MACHINE_PRECISION,St as MACHINE_PRECISION_BITS,mr as MAX_BIGINT_DIGITS,fr as MAX_ITERATION,dr as MAX_SYMBOLIC_TERMS,$i as MachineNumericValue,F as NumericValue,C as SMALL_INTEGER,O as add,Os as airyAi,As as airyBi,Da as areCompatibleUnits,Mo as asMachineRational,Ie as besselI,se as besselJ,xs as besselK,et as besselY,ps as beta,fs as bigBeta,wa as bigCorrelation,va as bigCovariance,hn as bigDigamma,as as bigGamma,us as bigGammaln,ka as bigInterquartileRange,pa as bigKurtosis,hs as bigLambertW,la as bigMean,Hi as bigMedian,Ia as bigMode,ls as bigPolygamma,Ma as bigPopulationCovariance,ha as bigPopulationStandardDeviation,Wr as bigPopulationVariance,Dt as bigPrimeFactors,Qr as bigQuartiles,ba as bigSkewness,fa as bigStandardDeviation,pn as bigTrigamma,Xr as bigVariance,ds as bigZeta,L as bigint,Je as bigintCanonicalInteger,Ft as bigintFactorial,me as bigintGcd,ki as bigintLcm,Co as bigintValue,Yr as bignumFactorial2,nn as bignumGcd,Gr as bignumLcm,Q as canonicalInteger,vr as cantorEnumerateComplexNumbers,Er as cantorEnumerateIntegers,Mr as cantorEnumerateNaturalNumbers,Tr as cantorEnumeratePositiveRationals,Ir as cantorEnumerateRationals,br as centeredDiff8thOrder,gr as chop,An as complexGamma,Fn as complexGammaln,Aa as convertCompoundUnit,ts as convertUnit,Ba as correlation,Ta as covariance,jr as determinant,ot as digamma,Ki as dimensionsEqual,Eo as div,rt as erf,ss as erfInv,nt as erfc,vi as extrapolate,Nr as factorial,pr as factorial2,Sa as findNamedUnit,Zs as fresnelC,qs as fresnelS,Vt as fromDigits,be as gamma,Ae as gammaln,G as gcd,pe as getExpressionDimension,ge as getExpressionScale,Wi as getUnitDimension,es as getUnitScale,xa as interquartileRange,ea as interval,ia as intervalContains,ta as intervalSubset,fe as inverse,Pi as isBigRational,Ra as isDimensionless,ti as isInMachineRange,z as isInteger,S as isMachineRational,vo as isNeg,Di as isNegativeOne,Ri as isOne,Pe as isPositive,ao as isPrime,Rt as isPrimeBigint,yo as isRational,k as isZero,Na as kurtosis,bs as lambertW,xi as lcm,Bi as limit,To as machineDenominator,Io as machineNumerator,ca as mean,Xi as median,sr as modPow,ya as mode,oa as monteCarloEstimate,x as mul,$ as neg,hr as nextDown,At as nextUp,_ as numberToExpression,P as numberToString,Oa as parseUnitDSL,Ns as polygamma,Ea as populationCovariance,da as populationStandardDeviation,Hr as populationVariance,Bo as pow,Ei as primeFactors,Kr as quartiles,Si as rationalAsFloat,Ct as rationalGcd,xo as rationalize,ko as reduceRationalSquareRoot,Br as reducedInteger,ke as reducedRational,Do as roundMeasurementForDisplay,$e as roundToDecimalPlace,xr as roundToSignificant,Ls as sinc,ga as skewness,wo as sqrt,ma as standardDeviation,ut as trigamma,$r as variance,Ha as version,yn as zeta};
|
|
7
7
|
/*! Bundled license information:
|
|
8
8
|
|
|
9
9
|
complex-esm/dist/src/complex.js:
|