@cortex-js/compute-engine 0.86.1 → 0.86.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/dist/esm-min/chunks/{chunk-RF2RDYMF.js → chunk-7WM7O5R7.js} +30 -30
- package/dist/esm-min/chunks/{chunk-JBEE4TIQ.js → chunk-S6GEG7AN.js} +1 -1
- package/dist/esm-min/compile.js +14 -14
- package/dist/esm-min/compute-engine.js +2 -2
- package/dist/esm-min/core.js +14 -14
- package/dist/esm-min/cortex.js +3 -3
- package/dist/esm-min/identities.js +2 -2
- package/dist/esm-min/integration-rules.js +3 -3
- package/dist/esm-min/interval.js +2 -2
- package/dist/esm-min/latex-syntax.js +2 -2
- package/dist/esm-min/math-json.js +2 -2
- package/dist/esm-min/numerics.js +2 -2
- package/dist/types/big-decimal/big-decimal.d.ts +1 -1
- package/dist/types/big-decimal/index.d.ts +1 -1
- package/dist/types/big-decimal/transcendentals.d.ts +1 -1
- 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/debug.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/styled-text.d.ts +1 -1
- package/dist/types/common/terminal.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 +1 -1
- 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 +1 -1
- package/dist/types/common/type/types.d.ts +1 -1
- package/dist/types/common/type/utils.d.ts +1 -1
- package/dist/types/common/utils.d.ts +1 -1
- package/dist/types/compile.d.ts +1 -1
- package/dist/types/compute-engine/assume.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
- 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/conditional-value.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/function-literal.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 +1 -1
- 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-dispatch.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/modular-arithmetic.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 +1 -1
- package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/rule-index.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
- 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-congruence.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-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 +1 -1
- package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
- package/dist/types/compute-engine/collection-utils.d.ts +1 -1
- package/dist/types/compute-engine/compilation/angular-unit.d.ts +1 -1
- package/dist/types/compute-engine/compilation/base-compiler.d.ts +18 -1
- package/dist/types/compute-engine/compilation/compile-expression.d.ts +1 -1
- package/dist/types/compute-engine/compilation/constant-folding.d.ts +1 -1
- package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/types.d.ts +1 -1
- package/dist/types/compute-engine/compilation/wgsl-target.d.ts +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +1 -1
- package/dist/types/compute-engine/engine-declarations.d.ts +1 -1
- package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +1 -1
- package/dist/types/compute-engine/engine-extension-contracts.d.ts +1 -1
- package/dist/types/compute-engine/engine-library-bootstrap.d.ts +1 -1
- package/dist/types/compute-engine/engine-numeric-configuration.d.ts +1 -1
- 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 +1 -1
- package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
- package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +1 -1
- package/dist/types/compute-engine/free-functions.d.ts +1 -1
- package/dist/types/compute-engine/function-properties/index.d.ts +1 -1
- package/dist/types/compute-engine/function-utils.d.ts +1 -1
- package/dist/types/compute-engine/fungrim/loader.d.ts +1 -1
- package/dist/types/compute-engine/fungrim/types.d.ts +1 -1
- package/dist/types/compute-engine/global-types.d.ts +1 -1
- package/dist/types/compute-engine/index.d.ts +1 -1
- package/dist/types/compute-engine/interpret-oeis.d.ts +1 -1
- package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
- package/dist/types/compute-engine/interval/elementary.d.ts +1 -1
- package/dist/types/compute-engine/interval/index.d.ts +1 -1
- package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
- package/dist/types/compute-engine/interval/types.d.ts +1 -1
- package/dist/types/compute-engine/interval/util.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/default-dictionary.d.ts +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/types.d.ts +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/types/compute-engine/library/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/library/units.d.ts +1 -1
- package/dist/types/compute-engine/library/utils.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
- 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/gauss-kronrod.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 +1 -1
- 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 +1 -1
- package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
- package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
- 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 +1 -1
- package/dist/types/compute-engine/rubi/compile.d.ts +1 -1
- package/dist/types/compute-engine/rubi/driver.d.ts +1 -1
- package/dist/types/compute-engine/rubi/explain-trace.d.ts +1 -1
- 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 +1 -1
- package/dist/types/compute-engine/rubi/rubi-utils.d.ts +1 -1
- package/dist/types/compute-engine/rubi/types.d.ts +1 -1
- package/dist/types/compute-engine/sequence.d.ts +1 -1
- 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 +1 -1
- package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/interpret.d.ts +1 -1
- 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/recurrences.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/solver-utils.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 +1 -1
- package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
- package/dist/types/compute-engine/types-definitions.d.ts +1 -1
- package/dist/types/compute-engine/types-engine.d.ts +1 -1
- package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-expression.d.ts +1 -1
- package/dist/types/compute-engine/types-kernel-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types.d.ts +1 -1
- package/dist/types/compute-engine.d.ts +1 -1
- package/dist/types/core.d.ts +1 -1
- package/dist/types/cortex/characters.d.ts +1 -1
- package/dist/types/cortex/diagnostics.d.ts +1 -1
- package/dist/types/cortex/execute-cortex.d.ts +1 -1
- package/dist/types/cortex/formatter.d.ts +1 -1
- package/dist/types/cortex/lexer.d.ts +1 -1
- package/dist/types/cortex/operators.d.ts +1 -1
- package/dist/types/cortex/parse-cortex.d.ts +1 -1
- package/dist/types/cortex/parser.d.ts +1 -1
- package/dist/types/cortex/reserved-words.d.ts +1 -1
- package/dist/types/cortex/serialize-cortex.d.ts +1 -1
- package/dist/types/cortex/tokens.d.ts +1 -1
- package/dist/types/cortex.d.ts +2 -2
- package/dist/types/identities.d.ts +1 -1
- package/dist/types/integration-rules.d.ts +1 -1
- package/dist/types/interval.d.ts +1 -1
- package/dist/types/latex-syntax.d.ts +2 -2
- 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 +2 -2
- package/dist/types/numerics.d.ts +1 -1
- package/dist/umd-min/compile.cjs +14 -14
- package/dist/umd-min/compute-engine.cjs +14 -14
- package/dist/umd-min/core.cjs +14 -14
- package/dist/umd-min/cortex.cjs +15 -15
- package/dist/umd-min/identities.cjs +2 -2
- package/dist/umd-min/integration-rules.cjs +2 -2
- package/dist/umd-min/interval.cjs +2 -2
- package/dist/umd-min/latex-syntax.cjs +2 -2
- package/dist/umd-min/math-json.cjs +2 -2
- package/dist/umd-min/numerics.cjs +2 -2
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** MathJSON 0.86.
|
|
1
|
+
/** MathJSON 0.86.2 */
|
|
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:()=>s,mapArgs:()=>J,operand:()=>b,operator:()=>u,stringValue:()=>f,symbol:()=>d,version:()=>k});function N(n){return n!==null&&typeof n=="object"&&"num"in n}function s(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 u(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:s(n)?n.sym:null}function c(n){let t=u(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(u(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):s(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var k="0.86.
|
|
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:()=>s,mapArgs:()=>J,operand:()=>b,operator:()=>u,stringValue:()=>f,symbol:()=>d,version:()=>k});function N(n){return n!==null&&typeof n=="object"&&"num"in n}function s(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 u(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:s(n)?n.sym:null}function c(n){let t=u(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(u(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):s(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var k="0.86.2";return S(F);})();
|
|
4
4
|
Object.assign(exports, MathJson); Object.defineProperty(exports, '__esModule', { value: true });}));
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/** Numerics 0.86.
|
|
1
|
+
/** Numerics 0.86.2 */
|
|
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.Numerics = {}));})(this, (function (exports) { 'use strict';
|
|
3
3
|
"use strict";var Numerics=(()=>{var _i=Object.defineProperty;var Ar=Object.getOwnPropertyDescriptor;var Fr=Object.getOwnPropertyNames;var Or=Object.prototype.hasOwnProperty;var Cr=(i,e)=>{for(var t in e)_i(i,t,{get:e[t],enumerable:!0})},_r=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Fr(e))!Or.call(i,r)&&r!==t&&_i(i,r,{get:()=>e[r],enumerable:!(n=Ar(e,r))||n.enumerable});return i};var Vr=i=>_r(_i({},"__esModule",{value:!0}),i);var iu={};Cr(iu,{BigNumericValue:()=>pi,DEFAULT_PRECISION:()=>Xt,DEFAULT_TOLERANCE:()=>Wi,ExactNumericValue:()=>ie,LARGEST_SMALL_PRIME:()=>$t,MACHINE_PRECISION:()=>Wt,MACHINE_PRECISION_BITS:()=>Xi,MAX_BIGINT_DIGITS:()=>Qt,MAX_ITERATION:()=>Kt,MAX_SYMBOLIC_TERMS:()=>zt,MachineNumericValue:()=>Ni,NumericValue:()=>A,SMALL_INTEGER:()=>C,add:()=>D,airyAi:()=>vr,airyBi:()=>Er,areCompatibleUnits:()=>go,asMachineRational:()=>gs,besselI:()=>he,besselJ:()=>te,besselK:()=>pr,besselY:()=>Pi,beta:()=>mr,bigBeta:()=>or,bigCorrelation:()=>mo,bigCovariance:()=>uo,bigDigamma:()=>Tt,bigGamma:()=>tr,bigGammaln:()=>ir,bigInterquartileRange:()=>ho,bigKurtosis:()=>io,bigLambertW:()=>cr,bigMean:()=>Xs,bigMedian:()=>bi,bigMode:()=>so,bigPolygamma:()=>sr,bigPopulationCovariance:()=>co,bigPopulationStandardDeviation:()=>zs,bigPopulationVariance:()=>qn,bigPrimeFactors:()=>Hi,bigQuartiles:()=>Ln,bigSkewness:()=>no,bigStandardDeviation:()=>Qs,bigTrigamma:()=>vt,bigVariance:()=>_n,bigZeta:()=>ur,bigint:()=>q,bigintCanonicalInteger:()=>ae,bigintFactorial:()=>zi,bigintGcd:()=>ue,bigintLcm:()=>ti,bigintValue:()=>xs,bignumFactorial2:()=>Sn,bignumGcd:()=>pt,bignumLcm:()=>Dn,cancelUnitFactors:()=>To,canonicalInteger:()=>J,cantorEnumerateComplexNumbers:()=>an,cantorEnumerateIntegers:()=>cn,cantorEnumerateNaturalNumbers:()=>ln,cantorEnumeratePositiveRationals:()=>un,cantorEnumerateRationals:()=>on,centeredDiff8thOrder:()=>sn,chop:()=>rn,complexGamma:()=>wt,complexGammaln:()=>xt,convertCompoundUnit:()=>Bo,convertUnit:()=>jn,correlation:()=>lo,covariance:()=>oo,determinant:()=>On,digamma:()=>Si,dimensionsEqual:()=>vi,div:()=>Ns,erf:()=>Di,erfInv:()=>er,erfc:()=>Ri,extrapolate:()=>Ke,factorial:()=>tn,factorial2:()=>nn,findNamedUnit:()=>yo,flattenUnitFactors:()=>Io,fresnelC:()=>Dr,fresnelS:()=>Rr,fromDigits:()=>tt,gamma:()=>fe,gammaln:()=>Le,gcd:()=>Z,getExpressionDimension:()=>le,getExpressionScale:()=>me,getUnitDimension:()=>Ze,getUnitScale:()=>qe,interquartileRange:()=>fo,interval:()=>Us,intervalContains:()=>Ys,intervalSubset:()=>js,inverse:()=>ce,isBigRational:()=>Se,isDimensionless:()=>po,isInMachineRange:()=>Ce,isInteger:()=>z,isMachineRational:()=>R,isNeg:()=>ps,isNegativeOne:()=>ri,isOne:()=>ni,isPositive:()=>Ie,isPrime:()=>os,isPrimeBigint:()=>Ji,isRational:()=>fs,isZero:()=>k,kurtosis:()=>eo,lambertW:()=>dr,lcm:()=>ii,limit:()=>ei,machineDenominator:()=>hs,machineNumerator:()=>ds,mean:()=>Hs,median:()=>gi,modPow:()=>Ht,mode:()=>ro,monteCarloEstimate:()=>$s,mul:()=>x,neg:()=>H,nextDown:()=>en,nextUp:()=>Qi,numberToExpression:()=>_,numberToString:()=>P,parseUnitDSL:()=>Mo,polygamma:()=>lr,populationCovariance:()=>ao,populationStandardDeviation:()=>Ks,populationVariance:()=>Vn,pow:()=>bs,primeFactors:()=>ze,quartiles:()=>Zn,rationalAsFloat:()=>si,rationalGcd:()=>et,rationalize:()=>Ts,reduceRationalRoot:()=>Es,reduceRationalSquareRoot:()=>vs,reducedInteger:()=>mn,reducedRational:()=>$,reducedRationalFromDecimal:()=>Is,roundMeasurementForDisplay:()=>Bs,roundToDecimalPlace:()=>Ae,roundToSignificant:()=>dn,sinc:()=>Sr,skewness:()=>to,sqrt:()=>ys,standardDeviation:()=>Ws,trigamma:()=>Ai,unitExpressionFromFactors:()=>vo,variance:()=>Cn,version:()=>eu,zeta:()=>Fi});var A=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 kt=new Map,qr=1e5;function M(i){if(i<=qr){let e=kt.get(i);return e===void 0&&(e=10n**BigInt(i),kt.set(i,e)),e}return 10n**BigInt(i)}function W(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 Rt(i,e,t){return i*e>>BigInt(t)}function Dt(i,e,t){return(i<<BigInt(t))/e}function Je(i,e){if(i===0n)return 0n;if(i<0n)throw new RangeError("fpsqrt: negative input");let t=i<<BigInt(e),n;if(e<Zr){n=qi(t);let u;do u=n,n=(n+t/n)/2n;while(G(n-u)>1n)}else n=Zi(t,W(t));let r=(n+t/n)/2n,s=G(n*n-t);return G(r*r-t)<s?r:n}function qi(i){let e=W(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 St=1024,Zr=640;function Zi(i,e){if(e<St){let s=qi(i),o;do o=s,s=(s+i/s)/2n;while(G(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=Zi(i>>BigInt(t),e-t)<<BigInt(t>>1),r;do r=n,n=(n+i/n)/2n;while(G(n-r)>1n);for(;n*n>i;)n-=1n;for(;(n+1n)*(n+1n)<=i;)n+=1n;return n}function G(i){return i<0n?-i:i}function be(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 Lr=.7;function Li(i,e){if(i===0n)return 1n<<BigInt(e);let t=Math.round(Lr*Math.sqrt(e)),n=t+8,r=e+n,s=BigInt(r),o=1n<<s,u=BigInt(n),c=i<<u,l=c<0n,m=l?-c:c,f=Math.max(0,W(m)-r+t);m>>=BigInt(f),c=l?-m:m;let d=o,h=c;d+=h;for(let p=2;h=(h*c>>s)/BigInt(p),h!==0n;p++)d+=h;for(let p=0;p<f;p++)d=d*d>>s;return d+(1n<<u-1n)>>u}var Gr=4e4;function Gi(i,e){let t=1n<<BigInt(e);if(i<=0n)throw new RangeError("fpln: input must be positive");return i===t?0n:e>=Gr?jr(i,e):Ur(i,e)}function Ur(i,e){let t=BigInt(e),n=1n<<t,r=52,s=e-r,o;if(s>0){let p=Number(i>>BigInt(s))/2**r;o=BigInt(Math.round(Math.log(p)*2**r))<<BigInt(s)}else{let p=Number(i)/Number(n);o=BigInt(Math.round(Math.log(p)*Number(n)))}let u=i*Li(-o,e)>>t,l=(u-n<<t)/(u+n),m=l<0n?-l:l,f=m*m>>t,d=m,h=m;for(let p=3n;d=d*f>>t,d!==0n;p+=2n)h+=d/p;return o+(l<0n?-2n:2n)*h}var re=null;function Yr(i){if(re!==null){if(re.bits===i)return re.value;if(re.bits>i)return re.value>>BigInt(re.bits-i)}let e=Math.ceil(i*$e)+12,t;if(e<=Pt.length){let n=Pt.slice(0,e);t=(BigInt(n)<<BigInt(i))/M(n.length)}else t=Qr(i);return re={bits:i,value:t},t}function jr(i,e){let t=BigInt(e),n=W(i)-e,r=Math.max(2,Math.ceil(e/2+4-n)),s=i<<BigInt(r-2),o=1n<<t,u=s;for(;G(o-u)>1n;){let l=o+u>>1n;u=Pe(o*u),o=l}return je(e)*s/(2n*o)-BigInt(r)*Yr(e)}var ge="314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635",$e=Math.log10(2),Pt="693147180559945309417232121458176568075500134360255254120680009493393621969694715605863326996418687542001481020570685733685520235758130557032670751635075961930727570828371435190307038623891673471123350115364497955239120475172681574932065155524734139525882950453007095326366642654104239157814952043740430385500801944170641671518644712839968171784546957026271631064546150257207402481637773389638550695260668341137273873722928956493547025762652098859693201965058554764703306793654432547632744951250406069438147104689946506220167720424524529612687946546193165174681392672504103802546259656869144192871608293803172714367782654877566485085674077648451464439940461422603193096735402574446070308096085047486638523138181676751438667476647890881437141985494231519973548803751658612753529166100071053558249879414729509293113897155998205654392871700072180857610252368892132449713893203784393530887748259701715591070882368362758984258918535302436342143670611892367891923723146723217205340164925687274778234453534764811494186423867767744060695626573796008670762571991847340226514628379048830620330611446300737194890027436439650025809365194430411911506080948793067865158870900605203468429736193841289652556539686022194122924207574321757489097706752687115817051137009158942665478595964890653058460258668382940022833005382074005677053046787001841624044188332327983863490015631218895606505531512721993983320307514084260914790012651682434438935724727882054862715527418772430024897945401961872339808608316648114909306675193393128904316413706813977764981769748689038877899912965036192707108892641052309247839173735012298424204995689359922066022046549415106139187885744245577510206837030866619480896412186807790208181588580001688115973056186676199187395200766719214592236720602539595436541655311295175989940056000366513567569051245926825743946483168332624901803824240824231452306140963805700702551387702681785163069025513703234053802145019015374029509942262995779647427138157363801729873940704242179972266962979939312706935747240493386530879758721699645129446491883771156701678598804981838896784134938314014073166472765327635919233511233389338709513209059272185471328975470797891384445466676192702885533423429899321803769154973340267546758873236778342916191810430116091695265547859732891763545556742863877463987101912431754255888301206779210280341206879759143081283307230300883494705792496591005860012341561757413272465943",Jr=13591409n,$r=545140134n,Hr=10939058860032000n,Xr=47.11;function Ye(i,e){if(e-i===1){let l,m;if(i===0)l=1n,m=1n;else{l=BigInt(6*i-5)*BigInt(2*i-1)*BigInt(6*i-1);let d=BigInt(i);m=d*d*d*Hr}let f=l*(Jr+$r*BigInt(i));return i&1&&(f=-f),[l,m,f]}let t=i+e>>1,[n,r,s]=Ye(i,t),[o,u,c]=Ye(t,e);return[n*o,r*u,u*s+n*c]}function At(i){return Math.max(2,Math.floor(i/Xr)+3)}function Wr(i){let[,e,t]=Ye(0,At(i)),n=1n<<BigInt(i),r=Pe(10005n*n*n);return e*426880n*r/t}function Ft(i){let[,e,t]=Ye(0,At(Math.ceil(i/$e))),n=M(i),r=Pe(10005n*n*n);return e*426880n*r/t}function Vi(i,e){if(e-i===1){let l=i===0?1n:BigInt(2*i-1),m=i===0?1n:9n*BigInt(2*i+1);return[l,m,l]}let t=i+e>>1,[n,r,s]=Vi(i,t),[o,u,c]=Vi(t,e);return[n*o,r*u,u*s+n*c]}function Qr(i){let e=Math.max(2,Math.ceil(i/3.169925)+5),[,t,n]=Vi(0,e);return(n<<BigInt(i+1))/(3n*t)}function Pe(i){if(i<0n)throw new RangeError("bigintSqrt: negative input");if(i===0n)return 0n;let e=W(i);if(e>=St)return Zi(i,e);let t=qi(i),n;do n=t,t=(t+i/t)/2n;while(G(t-n)>1n);for(;t*t>i;)t-=1n;for(;(t+1n)*(t+1n)<=i;)t+=1n;return t}var se=null;function je(i){if(se!==null){if(se.bits===i)return se.value;if(se.bits>i)return se.value>>BigInt(se.bits-i)}let e=Kr(i);return se={bits:i,value:e},e}function Kr(i){let e=Math.ceil(i*$e)+12;if(e+1<=ge.length){let t=ge.slice(0,e+1);return(BigInt(t)<<BigInt(i))/M(t.length-1)}return Wr(i)}function He(i,e){let t=BigInt(e),n=1n<<t;if(i===0n)return[0n,n];let r=je(e),s=2n*r,o=r/2n,u,c=G(i);if(c>n<<30n){let v=W(c)-e+64,V=e+v,X=i<<BigInt(v),ee=2n*je(V),j=X%ee;j<0n&&(j+=ee),u=j>>BigInt(v)}else u=i%s;u<0n&&(u+=s);let l=1n,m=1n;u>3n*o?(u=s-u,l=-1n):u>r?(u=u-r,l=-1n,m=-1n):u>o&&(u=r-u,m=-1n);let f=Math.round(e*$e),d=Math.min(18,Math.max(2,Math.ceil(.87*Math.sqrt(f)))),h=0,p=n>>BigInt(d);for(;u>p;)u=u/2n,h++;let N=u,g=n,I=u,T=n,b=u*u,E=2n*t;for(let v=2;;v+=2){if(T=(T*b>>E)/(BigInt(v)*BigInt(v-1)),T===0n){I=(I*b>>E)/(BigInt(v+1)*BigInt(v)),I!==0n&&(v%4===2?(g-=T,N-=I):(g+=T,N+=I));break}if(I=(I*b>>E)/(BigInt(v+1)*BigInt(v)),v%4===2?(g-=T,N-=I):(g+=T,N+=I),I===0n)break}for(let v=0;v<h;v++){let V=2n*N*g>>t,X=(2n*g*g>>t)-n;N=V,g=X}return[l*N,m*g]}function ke(i,e){if(i===0n)return 0n;if(i<0n)return-ke(-i,e);let t=BigInt(e),n=1n<<t,s=je(e)/2n;if(i>n){let h=(n<<t)/i;return s-ke(h,e)}let o=4n*n/10n,u=0,c=i;for(;c>o;){let h=c*c,p=(n<<t)+h>>t,N=Je(p,e);c=(c<<t)/(n+N),u++}let l=c,m=c,f=c*c,d=2n*t;for(let h=3;m=m*f>>d,m!==0n;h+=2)h%4===3?l-=m/BigInt(h):l+=m/BigInt(h);for(let h=0;h<u;h++)l=2n*l;return l}var Ui=NaN,a=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<=ge.length)i._piFullPrecision===null&&(i._piFullPrecision=new i(ge[0]+"."+ge.slice(1))),n=i._piFullPrecision.toPrecision(t);else{let r=t+4;n=B(Ft(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=is(e);return i._eulerGammaCache=t,i._eulerGammaCachePrecision=e,t}significand;exponent;_digits;digitCount(){return this._digits??(this._digits=be(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]=Xe(e,0);return}if(typeof e=="number"){[this.significand,this.exponent]=ts(e);return}[this.significand,this.exponent]=qt(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 Ui;let h=this.exponent;if(Number.isNaN(h))return Ui;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 p=this.significand*M(h),N=BigInt(e);return p<N?-1:p>N?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 Ui;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(),u=e.digitCount(),c=o+t,l=u+n;if(c!==l){let h=r>0n?1:-1;return c>l?h:-h}let m=r,f=s,d=Math.abs(t-n);if(d>1e3){let h=o,p=u,N=Math.max(h,p)+1;h<N&&(m=m*M(N-h)),p<N&&(f=f*M(N-p))}else t<n?f=f*M(d):m=m*M(d);return m<f?-1:m>f?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 u=s*o,c=n+r,l=this.digitCount()+e.digitCount()-1,f=(u<0n?-u:u)>=M(l)?l+1:l;return f<=t?B(u,c):Ot(u,c).roundToPrecKnownDigits(t,f)}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,m=this.digitCount(),f=e.digitCount(),d=c+l+Math.max(0,f-m),h=M(d),p=r*h/s,N=t-n-d,g=p<0n?-p:p,I=m+d-f,T=g>=M(I)?I+1:I;return Ot(p,N).roundToPrecKnownDigits(c,T)}if(t!==t||n!==n)return i.NAN;let o=!Number.isFinite(t),u=!Number.isFinite(n);if(o&&u)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 u=s<0n!=o<0n,c=s<0n?-s:s,l=o<0n?-o:o,m=i.precision,d=m+10+Math.max(0,e.digitCount()-this.digitCount()),h=c*M(d),p=h/l,N=h%l!==0n,g=n-r-d,I=this.digitCount()+d-e.digitCount(),T=p>=M(I)?I+1:I,b=u?t==="floor":t==="ceiling",[E,v]=Ct(p,N,g,m,b,T);return B(u?-E:E,v)}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,u=Math.floor(o/2),c=t+n-u;s+2*c<0&&(c=Math.ceil(-s/2)+1);let l=s+2*c,m=l>=0?r*M(l):r/M(-l),f=Pe(m),d=f*f!==m,[h,p]=Ct(f,d,-c,t,e==="ceiling");return B(h,p)}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),u=s/o;return this.sub(B(u,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 u=e.toBigInt();if(u===0n)return B(1n,0);if(!this.isFinite())return u>0n?this.significand<0n&&u%2n!==0n?i.NEGATIVE_INFINITY:i.POSITIVE_INFINITY:B(0n,0);if(this.isZero())return u>0n?B(0n,0):i.POSITIVE_INFINITY;if(u<0n)return this.pow(e.neg()).inv();let c=this.significand<0n?-this.significand:this.significand,l=this.digitCount(),m=l>15?l-15:0,f=m>0?Number(c/10n**BigInt(m)):Number(c),d=Math.log10(f)+m+this.exponent,h=Number(u)*d;if(h>9e15)return this.significand<0n&&u%2n!==0n?i.NEGATIVE_INFINITY:i.POSITIVE_INFINITY;if(h<-9e15)return B(0n,0);let p=i.precision,N=u.toString(2).length,g=Math.min(2*N+5,100),I=p+g,T=B(1n,0),b=this,E=u;for(;E>0n;)E&1n&&(T=T.mulToPrecision(b,I)),E>>=1n,E>0n&&(b=b.mulToPrecision(b,I));return T.toPrecision(p)}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 u=es(this,o+s);return e.mul(u).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 u=o-n;return`${s}0.${"0".repeat(u)}${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,u;if(s>=0)u=r===0n,o=u?"0":r.toString()+"0".repeat(s);else{let f=M(-s),d=r/f,h=r%f,p=f/2n,N;h>p?N=d+1n:h<p||f%2n!==0n||d%2n===0n?N=d:N=d+1n,u=N===0n,o=N.toString()}let c=n&&!u?"-":"";if(t===0)return`${c}${o}`;if(o.length<=t){let f=o.padStart(t,"0");return`${c}0.${f}`}let l=o.slice(0,o.length-t),m=o.slice(o.length-t);return`${c}${l}.${m}`}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,u=n-o*s,c=s/2n;(u>c||u===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}},zr=8,Re=[];function es(i,e){let t=i.significand,n=i.exponent;for(let s=Re.length-1;s>=0;s--){let o=Re[s];if(o.prec===e&&o.exp===n&&o.sig===t)return o.ln}let r=i.ln();return Re.push({sig:t,exp:n,prec:e,ln:r}),Re.length>zr&&Re.shift(),r}function is(i){let e=i+20+Math.ceil(Math.log10(i+10)),t=a.precision;a.precision=e;try{let n=Math.ceil(e*Math.LN10/4)+5,r=new a(n),s=r.mul(r),o=a.ONE,u=a.ONE,c=a.ZERO,l=a.ZERO,m=a.ONE.div(new a(10).pow(e)),f=6*n+100;for(let d=1;d<=f;d++){let h=new a(d).mul(d);if(o=o.mul(s).div(h).toPrecision(e),l=l.add(a.ONE.div(d)).toPrecision(e),u=u.add(o).toPrecision(e),c=c.add(o.mul(l)).toPrecision(e),d>n&&o.lt(u.mul(m)))break}return c.div(u).sub(r.ln()).toPrecision(i)}finally{a.precision=t}}function B(i,e){let[t,n]=Xe(i,e),r=Object.create(a.prototype);return r.significand=t,r.exponent=n,r}function Ot(i,e){let t=Object.create(a.prototype);return t.significand=i,t.exponent=e,t}function Ct(i,e,t,n,r,s){if(i===0n)return[r&&e?1n:0n,t];let o=s??be(i);if(o<=n)return[r&&e?i+1n:i,t];let u=o-n,c=M(u),l=i/c,m=e||i%c!==0n;return r&&m&&(l+=1n),[l,t+u]}var _t=1000000000n,Vt=1000n;function Xe(i,e){if(i===0n)return[0n,0];if((i&1n)!==0n)return[i,e];if(i%10n!==0n)return[i,e];for(;i%_t===0n;)i/=_t,e+=9;for(;i%Vt===0n;)i/=Vt,e+=3;for(;i%10n===0n;)i/=10n,e+=1;return[i,e]}function ts(i){return Number.isNaN(i)?[0n,NaN]:i===1/0?[1n,1/0]:i===-1/0?[-1n,1/0]:Number.isInteger(i)?Xe(BigInt(i),0):qt(i.toString())}function qt(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,u;s===-1?(o=e,u=""):(o=e.slice(0,s),u=e.slice(s+1)),o=o.replace(/^0+/,"")||"0";let c=o+u;if(c.length===0||!/^\d+$/.test(c))return[0n,NaN];let l=BigInt(c);r&&(l=-l);let m=-u.length;return Xe(l,m+t)}var ns=Math.log2(10),Gt=Math.log10(2),rs=16,ji=1e6;function Q(i,e){let t=Math.ceil(e*ns)+rs,n=BigInt(t);return i.exponent>=0?[i.significand*M(i.exponent)<<n,t]:[(i.significand<<n)/M(-i.exponent),t]}function K(i,e,t){if(i===0n)return a.ZERO;let n=i<0n,r=n?-i:i,s=BigInt(e),o=W(r)-e,u=Math.floor(o*Gt),c=t+4-u,l,m;if(c>=0)l=r*M(c)+(1n<<s-1n)>>s,m=-c;else{let d=M(-c)<<s;l=(r+d/2n)/d,m=-c}if(l===0n)return a.ZERO;let f=be(l);if(f>t){let d=f-t,h=M(d),p=h/2n,N=l%h;l=l/h,N>=p&&(l+=1n),m+=d}return B(n?-l:l,m)}function F(i){return i.exponent+i.digitCount()-1}function Yi(i,e){if(i===0n)return 0;let t=i<0n?-i:i,n=e*Gt-(be(t)-1);return n>0?Math.ceil(n):0}var Ut=5,Zt=BigInt(Number.MAX_SAFE_INTEGER),oe=null;function Yt(i){if(oe!==null){if(oe.bits===i)return oe.value;if(oe.bits>i)return oe.value>>BigInt(oe.bits-i)}let e=Gi(10n<<BigInt(i),i);return oe={bits:i,value:e},e}a.prototype.sqrt=function(){if(this.isNaN())return a.NAN;if(this.isZero())return a.ZERO;if(!this.isFinite())return this.significand>0n?a.POSITIVE_INFINITY:a.NAN;if(this.significand<0n)return a.NAN;let i=a.precision,e=i+10,t=F(this),n=Math.floor(t/2),r=B(this.significand,this.exponent-2*n),[s,o]=Q(r,e),u=Je(s,o),c=K(u,o,i);return B(c.significand,c.exponent+n)};a.prototype.cbrt=function(){if(this.isNaN())return a.NAN;if(this.isZero())return a.ZERO;if(!this.isFinite())return this.significand>0n?a.POSITIVE_INFINITY:a.NEGATIVE_INFINITY;if(this.significand<0n)return this.neg().cbrt().neg();let i=a.precision,e=i+10,t=F(this),n=Math.floor(t/3),r=B(this.significand,this.exponent-3*n),[s,o]=Q(r,e),u=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=Lt(u)}else c=Lt(u);let m;do{m=c;let d=c*c;if(d===0n){c=1n;break}c=(2n*c+u/d)/3n}while(G(c-m)>1n);{let d=(2n*c+u/(c*c))/3n,h=G(c*c*c-u);G(d*d*d-u)<h&&(c=d)}let f=K(c,o,i);return B(f.significand,f.exponent+n)};a.sqrt=function(i){return i.sqrt()};a.cbrt=function(i){return i.cbrt()};a.prototype.exp=function(){if(this.isNaN())return a.NAN;if(!this.isFinite())return this.significand>0n?a.POSITIVE_INFINITY:a.ZERO;if(this.isZero())return a.ONE;if(F(this)>=17)return this.significand>0n?a.POSITIVE_INFINITY:a.ZERO;let i=a.precision,e=Math.max(0,this.exponent+this.digitCount()),t=i+20+e,[n,r]=Q(this,t),s=Yt(r),o=n/s,u=n-o*s;if(u<0n&&(o-=1n,u+=s),o>Zt||o<-Zt)return o>0n?a.POSITIVE_INFINITY:a.ZERO;let c=K(Li(u,r),r,i),l=c.exponent+Number(o);return Number.isSafeInteger(l)?B(c.significand,l):o>0n?a.POSITIVE_INFINITY:a.ZERO};a.prototype.ln=function(){if(this.isNaN())return a.NAN;if(!this.isFinite())return this.significand>0n?a.POSITIVE_INFINITY:a.NAN;if(this.isZero())return a.NEGATIVE_INFINITY;if(this.significand<0n)return a.NAN;if(this.eq(1))return a.ZERO;let i=a.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(a.ONE);if(!d.isZero()){let h=F(d);h<0&&(o=-h)}}let u=i+20+s+o,[c,l]=Q(r,u),m=Yt(l),f=Gi(c,l)+BigInt(n)*m;return K(f,l,i)};a.prototype.log=function(i){let e=i instanceof a?i:new a(i),t=a.precision;a.precision=t+10;try{return this.ln().div(e.ln()).toPrecision(t)}finally{a.precision=t}};a.exp=function(i){return i.exp()};a.ln=function(i){return i.ln()};a.log10=function(i){return i.log(10)};a.log2=function(i){return i.log(2)};a.prototype.sin=function(){if(this.isNaN())return a.NAN;if(!this.isFinite())return a.NAN;if(this.isZero())return a.ZERO;let i=a.precision,e=F(this);if(e<0&&-2*e>=i+4)return this.toPrecision(i);let t=i+15+(e<0?-e:0);if(e+t+30>ji)return a.NAN;let[n,r]=Q(this,t),[s]=He(n,r);return K(s,r,i)};a.prototype.cos=function(){if(this.isNaN())return a.NAN;if(!this.isFinite())return a.NAN;if(this.isZero())return a.ONE;let i=a.precision,e=F(this),t=0;for(let n=0;;n++){let r=i+15+t;if(e+r+30>ji)return a.NAN;let[s,o]=Q(this,r),[,u]=He(s,o);if(u===0n){if(n>=3)return a.ZERO;t+=i+30;continue}let c=Yi(u,o);if(c<=t+Ut||n>=3)return K(u,o,i);t=c+5}};a.prototype.tan=function(){if(this.isNaN())return a.NAN;if(!this.isFinite())return a.NAN;if(this.isZero())return a.ZERO;let i=a.precision,e=F(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>ji)return a.NAN;let[o,u]=Q(this,s),[c,l]=He(o,u);if(l===0n){if(r>=3)return c>0n?a.POSITIVE_INFINITY:a.NEGATIVE_INFINITY;n+=i+30;continue}let m=Math.max(c===0n?0:Yi(c,u),Yi(l,u));if(m<=n+Ut||r>=3){let f=(c<<BigInt(u))/l;return K(f,u,i)}n=m+5}};a.prototype.atan=function(){if(this.isNaN())return a.NAN;if(this.isZero())return a.ZERO;if(!this.isFinite()){let o=a.PI.div(a.TWO);return this.significand>0n?o:o.neg()}let i=a.precision,e=F(this);if(e<0&&-2*e>=i+4)return this.toPrecision(i);let t=i+15+(e<0?-e:0),[n,r]=Q(this,t),s=ke(n,r);return K(s,r,i)};a.prototype.asin=function(){if(this.isNaN())return a.NAN;if(!this.isFinite())return a.NAN;if(this.isZero())return a.ZERO;let i=this.abs(),e=a.ONE;if(i.gt(e))return a.NAN;if(i.eq(e)){let h=a.PI.div(a.TWO);return this.significand>0n?h:h.neg()}let t=a.precision,n=F(this);if(n<0&&-2*n>=t+4)return this.toPrecision(t);let r=t+20+(n<0?-n:0),[s,o]=Q(this,r),u=1n<<BigInt(o),c=Rt(s,s,o),l=u-c,m=Je(l,o),f=Dt(s,m,o),d=ke(f,o);return K(d,o,t)};a.prototype.acos=function(){if(this.isNaN())return a.NAN;if(!this.isFinite())return a.NAN;if(this.abs().gt(a.ONE))return a.NAN;if(this.eq(1))return a.ZERO;if(this.eq(-1))return a.PI;let e=a.precision,t=a.precision;a.precision=e+10;try{let n=a.TWO;if(this.significand>=0n){let s=a.ONE.sub(this).mulToPrecision(a.HALF,e+10).sqrt();return n.mulToPrecision(s.asin(),e)}let r=a.ONE.add(this).mulToPrecision(a.HALF,e+10).sqrt();return a.PI.sub(n.mul(r.asin())).toPrecision(e)}finally{a.precision=t}};a.sin=function(i){return i.sin()};a.cos=function(i){return i.cos()};a.tan=function(i){return i.tan()};a.asin=function(i){return i.asin()};a.acos=function(i){return i.acos()};a.atan=function(i){return i.atan()};a.atan2=function(i,e){let t=i instanceof a?i:new a(i);if(t.isNaN()||e.isNaN())return a.NAN;let n=a.PI,r=n.div(a.TWO);if(e.isZero())return t.isZero()?a.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)};a.prototype.sinh=function(){if(this.isNaN())return a.NAN;if(this.isZero())return a.ZERO;if(!this.isFinite())return this.significand>0n?a.POSITIVE_INFINITY:a.NEGATIVE_INFINITY;let i=a.precision,e=F(this);if(e<0){if(-2*e>=i+4)return this.toPrecision(i);let r=a.precision;a.precision=i-e+5;try{let s=this.exp();return s.sub(s.inv()).mulToPrecision(a.HALF,i)}finally{a.precision=r}}if(Math.abs(this.toNumber())>1.16*(i+3)){let r=this.abs().exp().div(a.TWO);return this.significand>0n?r:r.neg()}let t=this.exp(),n=t.inv();return t.sub(n).div(a.TWO)};a.prototype.cosh=function(){if(this.isNaN())return a.NAN;if(this.isZero())return a.ONE;if(!this.isFinite())return a.POSITIVE_INFINITY;let i=a.precision;if(Math.abs(this.toNumber())>1.16*(i+3))return this.abs().exp().div(a.TWO);let e=this.exp(),t=e.inv();return e.add(t).div(a.TWO)};a.prototype.tanh=function(){if(this.isNaN())return a.NAN;if(this.isZero())return a.ZERO;if(!this.isFinite())return this.significand>0n?a.ONE:a.NEGATIVE_ONE;let i=a.precision,e=F(this);if(e<0){if(-2*e>=i+4)return this.toPrecision(i);let n=a.precision;a.precision=i-e+5;try{let r=this.mul(a.TWO).exp();return r.sub(a.ONE).div(r.add(a.ONE)).toPrecision(i)}finally{a.precision=n}}if(Math.abs(this.toNumber())>1.16*(i+3))return this.significand>0n?a.ONE:a.NEGATIVE_ONE;let t=this.mul(a.TWO).exp();return t.sub(a.ONE).div(t.add(a.ONE))};a.sinh=function(i){return i.sinh()};a.cosh=function(i){return i.cosh()};a.tanh=function(i){return i.tanh()};a.prototype.expm1=function(){if(this.isNaN())return a.NAN;if(!this.isFinite())return this.significand>0n?a.POSITIVE_INFINITY:a.NEGATIVE_ONE;if(this.isZero())return a.ZERO;let i=a.precision,e=F(this);if(e<0&&-e>=i+2)return this.toPrecision(i);if(e<0){let t=a.precision;a.precision=i-e+5;try{return this.exp().sub(a.ONE).toPrecision(i)}finally{a.precision=t}}return this.exp().sub(a.ONE)};a.prototype.log1p=function(){if(this.isNaN())return a.NAN;if(!this.isFinite())return this.significand>0n?a.POSITIVE_INFINITY:a.NAN;if(this.isZero())return a.ZERO;let i=a.ONE.add(this);if(i.isZero())return a.NEGATIVE_INFINITY;if(i.significand<0n)return a.NAN;let e=a.precision,t=F(this);if(t<0&&-t>=e+2)return this.toPrecision(e);if(t<0){let n=a.precision;a.precision=e-t+5;try{return a.ONE.add(this).ln().toPrecision(e)}finally{a.precision=n}}return a.ONE.add(this).ln()};a.prototype.asinh=function(){if(this.isNaN())return a.NAN;if(this.isZero())return a.ZERO;if(!this.isFinite())return this.significand>0n?a.POSITIVE_INFINITY:a.NEGATIVE_INFINITY;let i=this.significand<0n,e=this.abs(),t=a.precision,n=F(this);if(n<0&&-2*n>=t+4)return this.toPrecision(t);let r=()=>e.add(e.mul(e).add(a.ONE).sqrt()).ln(),s;if(n<0){let o=a.precision;a.precision=t-n+5;try{s=r().toPrecision(t)}finally{a.precision=o}}else s=r();return i?s.neg():s};a.prototype.acosh=function(){if(this.isNaN())return a.NAN;if(!this.isFinite())return this.significand>0n?a.POSITIVE_INFINITY:a.NAN;if(this.lt(a.ONE))return a.NAN;if(this.eq(1))return a.ZERO;let i=this.sub(a.ONE).div(a.TWO).sqrt();return a.TWO.mul(i.asinh())};a.prototype.atanh=function(){if(this.isNaN())return a.NAN;if(!this.isFinite())return a.NAN;if(this.isZero())return a.ZERO;let i=this.abs();if(i.eq(1))return this.significand>0n?a.POSITIVE_INFINITY:a.NEGATIVE_INFINITY;if(i.gt(a.ONE))return a.NAN;let e=a.precision,t=F(this);if(-2*t>=e+4)return this.toPrecision(e);let n=a.precision;a.precision=e-t+5;try{return a.ONE.add(this).div(a.ONE.sub(this)).ln().mulToPrecision(a.HALF,e)}finally{a.precision=n}};a.prototype.nthRoot=function(i){if(this.isNaN()||!Number.isInteger(i)||i===0)return a.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 a.ZERO;if(!this.isFinite())return this.significand>0n?a.POSITIVE_INFINITY:i%2===0?a.NAN:a.NEGATIVE_INFINITY;if(this.significand<0n)return i%2===0?a.NAN:this.neg().nthRoot(i).neg();let e=a.precision,t=a.precision;a.precision=e+8;try{return a.exp(this.ln().div(new a(i))).toPrecision(e)}finally{a.precision=t}};a.asinh=function(i){return i.asinh()};a.acosh=function(i){return i.acosh()};a.atanh=function(i){return i.atanh()};a.expm1=function(i){return i.expm1()};a.log1p=function(i){return i.log1p()};a.nthRoot=function(i,e){return i.nthRoot(e)};function Lt(i){let e=W(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 u=BigInt(Math.round(r))<<BigInt(s);return u>0n?u:1n}var De=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 O(i){if(i!==void 0&&Date.now()>=i)throw new De({cause:"timeout",message:"Timeout exceeded"})}var We;function ye(){return We}function Qe(i,e){let t=We;We=i;try{return e()}finally{We=t}}function Ke(i,e,t={}){let{contract:n=.125,step:r=1,power:s=1,atol:o=1e-16,rtol:u=o>0?0:Math.sqrt(Number.EPSILON),maxeval:c=1e6,breaktol:l=2,deadline:m=ye()}=t;return isFinite(e)?Qe(m,()=>{let f=r,d=Math.pow(1/n,s),h=i(e+f),p=[h],N=1/0,g=1;for(;g<c;){O(m),g+=1,f*=n,p.push(i(e+f));let I=d,T=1/0;for(let b=p.length-2;b>=0;b--){let E=p[b];p[b]=p[b+1]+(p[b+1]-p[b])/(I-1);let v=Math.abs(p[b]-E);T=Math.min(T,v),v<N&&(h=p[b],N=v),I*=d}if(T>l*N||!isFinite(T)||N<=Math.max(u*Math.abs(h),o))break}return[h,N]}):Ke(f=>i(1/f),1/e,{rtol:u,atol:o,maxeval:c,contract:Math.abs(n)>1?1/n:n,step:1/r,power:s,deadline:m})}function q(i){if(typeof i=="bigint")return i;if(typeof i=="number")return Number.isInteger(i)?BigInt(i):null;if(i instanceof a||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||r>1e6)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 ss=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]),$t=7919;function ze(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;$i(BigInt(i),s);for(let[o,u]of s){let c=Number(o);e[c]=(e[c]??0)+u}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 os(i){return!Number.isInteger(i)||!Number.isFinite(i)||i<=1?!1:Ji(BigInt(i))}var us=1n<<32n,jt=[2n,3n,5n,7n,11n,13n,17n,19n,23n,29n,31n,37n];function Ji(i){if(i<2n)return!1;if(i<=$t)return ss.has(Number(i));if(i<us){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 as(i)}function Ht(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 as(i){for(let n of jt)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 jt){let r=Ht(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 Jt(i,e){for(;e!==0n;){let t=i%e;i=e,e=t}return i}function cs(i){let e=128n;for(let t=1n;;t++){let n=2n,r=2n,s=2n,o=1n,u=1n,c=1n;for(;u===1n;){n=r;for(let l=0n;l<c;l++)r=(r*r+t)%i;for(let l=0n;l<c&&u===1n;l+=e){s=r;let m=c-l<e?c-l:e;for(let f=0n;f<m;f++)r=(r*r+t)%i,o=o*(n>r?n-r:r-n)%i;u=Jt(o,i)}c<<=1n}if(u===i)for(u=1n;u===1n;)s=(s*s+t)%i,u=Jt(n>s?n-s:s-n,i);if(u!==i)return u}}function $i(i,e){for(;i!==1n;){if(Ji(i)){e.set(i,(e.get(i)??0)+1);return}let t=cs(i);$i(t,e),i/=t}}var ls=[BigInt(4),BigInt(2),BigInt(4),BigInt(2),BigInt(4),BigInt(6),BigInt(2),BigInt(6)];function Hi(i){if(i<Number.MAX_SAFE_INTEGER){let f=ze(Number(i)),d=new Map;for(let h of Object.keys(f))d.set(q(h),f[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 u="",c=0,l=BigInt(65536);for(;o*o<=e&&o<=l;)e%o===BigInt(0)?(u||(u=o.toString()),t.set(u,(t.get(u)??0)+1),e=e/o):(o=o+ls[c],u="",c=c<7?c+1:0);let m=new Map;for(let[f,d]of t)m.set(q(f),d);return e!==BigInt(1)&&$i(e,m),m}var Xt=21,Xi=53,Wt=Math.floor(Math.log10(Math.pow(2,Xi))),Wi=1e-10,C=1e6,Qt=1024,Kt=1e4,zt=200;function Qi(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 en(i){return-Qi(-i)}function Ki(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 J(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=ze(i),n=BigInt(1),r=BigInt(1);for(let s of Object.keys(t)){let o=BigInt(parseInt(s)),u=BigInt(e);n=n*o**(BigInt(t[Number(s)])/u),r=r*o**(BigInt(t[Number(s)])%u)}return[Number(n),Number(r)]}function Z(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 ii(i,e){if(i===0||e===0)return 0;let t=BigInt(i)*BigInt(e)/BigInt(Z(i,e));return t<0n&&(t=-t),Number(t)}function tn(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 nn(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 rn(i,e=Wi){return typeof i=="number"&&Math.abs(i)<=e?0:i}function sn(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 ms(i,e,t,n){let o=!Number.isFinite(e),u=p=>o?1/p:e+p,c=(p,N,g)=>{let I=.01*Math.max(1,Math.abs(g));for(let T=1;T<=5;T++){O(n);let b=i(u(p*Math.pow(N/p,T/6)));if(!Number.isFinite(b)||Math.abs(b-g)>I)return!1}return!0},l=o?1/t:t,m=0,f=!1,d=NaN,h=NaN;for(let p=1;p<=60;p++){O(n);let N=i(u(l));if(!Number.isFinite(N))return p-1;let g=Math.abs(N);if(p===1){m=g,d=g,h=l,l*=.125;continue}if(Math.abs(g-d)<=1e-10*Math.max(1,g))return c(h,l,N)?1/0:0;if(f&&m>1e-6&&g<1e-8*m)return p-1;g>m&&(f=!0,m=g),d=g,h=l,l*=.125}return 1/0}function ei(i,e,t=1,n){if(n??=ye(),t===0){let c=ei(i,e,-1,n),l=ei(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=ms(i,e,r,n);if(s===0)return NaN;let[o,u]=Ke(i,e,{step:r,deadline:n,...Number.isFinite(s)?{maxeval:s}:{}});return Number.isFinite(o)&&u>1e-6*Math.max(1,Math.abs(o))?NaN:o}function*on(){yield[0,1];for(let i=1;;i++)for(let e=0;e<=i;e++){let t=i-e;t!==0&&Z(e,t)===1&&(yield[e,t],yield[-e,t])}}function*un(){yield[0,1];for(let i=1;;i++)for(let e=0;e<=i;e++){let t=i-e;t!==0&&Z(e,t)===1&&(yield[e,t])}}function*an(){yield[0,0];for(let i=1;;i++)for(let e=0;e<=i;e++){let t=i-e;if(t===0||Z(e,t)!==1)continue;let n=e/t;for(let r=0;r<=i;r++){let s=i-r;if(s===0||Z(r,s)!==1)continue;let o=r/s;yield[n,o],yield[-n,o],yield[n,-o],yield[-n,-o]}}}function*cn(){yield 0;for(let i=1;;i++)yield i,yield-i}function*ln(){for(let i=0;;i++)yield i}function ue(i,e){for(;e!==BigInt(0);)[i,e]=[e,i%e];return i<0?-i:i}function ti(i,e){return i*e/ue(i,e)}function ae(i,e){let t=Hi(i),n=BigInt(1),r=BigInt(1),s=BigInt(e);for(let[o,u]of t){let c=q(u);n=n*o**(c/s),r=r*o**(c%s)}return[n,r]}function mn(i){return i>=Number.MIN_SAFE_INTEGER&&i<=Number.MAX_SAFE_INTEGER?Number(i):i}function*zi(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*zi(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 fs(i){return i!==null&&Array.isArray(i)}function R(i){return i!==null&&Array.isArray(i)&&typeof i[0]=="number"}function Se(i){return i!==null&&Array.isArray(i)&&typeof i[0]=="bigint"}function k(i){return i[0]==0}function Ie(i){return i[0]>0}function ni(i){return i[0]==i[1]}function ri(i){return i[0]===-i[1]}function z(i){return i[1]==1}function ds(i){return Number(i[0])}function hs(i){return Number(i[1])}function si(i){return Number(i[0])/Number(i[1])}function ps(i){return i[0]<0}function Ns(i,e){return x(i,ce(e))}function D(i,e){if(typeof i[0]=="number"&&!Number.isFinite(i[0]))return i;let t=e;if(t===null)return i;if(Se(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(Se(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(R(i)&&(!Number.isFinite(i[0])||!Number.isFinite(i[1])))return[NaN,1];if(R(e)&&(!Number.isFinite(e[0])||!Number.isFinite(e[1])))return[NaN,1];if(R(i)&&R(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 R(i)?[BigInt(i[0])*e[0],BigInt(i[1])*e[1]]:R(e)?[BigInt(e[0])*i[0],BigInt(e[1])*i[1]]:[i[0]*e[0],i[1]*e[1]]}function H(i){return[-i[0],i[1]]}function ce(i){return i[0]<0?[-i[1],-i[0]]:[i[1],i[0]]}function gs(i){return[Number(i[0]),Number(i[1])]}function bs(i,e){if(Number.isInteger(e),e===0)return[1,1];if(e<0&&(i=ce(i),e=-e),e===1)return i;let t=BigInt(e);return[BigInt(i[0])**t,BigInt(i[1])**t]}function ys(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 et(i,e){return R(i)&&R(e)?i[1]===1&&e[1]===1?[Z(i[0],e[0]),1]:[Z(i[0],e[0]),ii(i[1],e[1])]:i[1]===1&&e[1]===1?[ue(BigInt(i[0]),BigInt(e[0])),BigInt(1)]:[ue(BigInt(i[0]),BigInt(e[0])),ti(BigInt(i[1]),BigInt(e[1]))]}function $(i){if(R(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=Z(i[0],i[1]);return r<=1?i:[i[0]/r,i[1]/r]}i[1]<0&&(i=[-i[0],-i[1]]);let e=ue(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 Is(i,e){if(!Number.isFinite(i))return null;for(let t=1;t<=1e6;t*=10){let n=i*t;if(Number.isInteger(n))return!Number.isSafeInteger(n)||!Number.isSafeInteger(e*t)?null:$([n,e*t])}return null}function Ts(i,e){if(!Number.isFinite(i)||i%1===0)return i;let n=1e-15,r=e!==void 0&&e>0?e:0,s=i,o=Math.floor(i),u=1,c=0,l=o,m=1;if(r>0&&Math.abs(l/m-s)<=r)return[l,m];for(;i-o>n*m*m;){i=1/(i-o),o=Math.floor(i);let f=u;u=l;let d=c;if(c=m,l=f+o*u,m=d+o*c,r>0&&Math.abs(l/m-s)<=r)return[l,m]}return[l,m]}function vs(i){if(Se(i)){let[u,c]=i,[l,m]=ae(u,2),[f,d]=ae(c,2);return[$([l,f*d]),m*d]}let[e,t]=i,[n,r]=J(e,2),[s,o]=J(t,2);return[$([n,s*o]),r*o]}function Es(i,e){if(Se(i)){let[c,l]=i,[m,f]=ae(c,e),[d,h]=ae(l,e);return[$([m,d]),$([f,h])]}let[t,n]=i,[r,s]=J(t,e),[o,u]=J(n,e);return[$([r,o]),$([s,u])]}function fn(i){return!!(typeof i=="number"||it(i)||typeof i=="string"&&Ms(i))}function it(i){return i!==null&&typeof i=="object"&&"num"in i}function Ms(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 dn(i,e){return typeof i=="number"?Number.isFinite(i)?parseFloat(i.toPrecision(e)):i:i.toPrecision(e)}function Ae(i,e){return i.toFixed(e)}function Bs(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:Ae(i,c),error:Ae(e,c)}}let n=t==="auto"?2:t.significant,r=dn(e,n),s=parseInt(r.toExponential().split("e")[1],10),o=n-1-s;if(o>0)return{value:Ae(i,o),error:Ae(r,o)};let u=Math.pow(10,-o);return{value:String(Math.round(i/u)*u),error:String(Math.round(r/u)*u)}}function ws(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 tt(i,e){if(i=i.trim(),i.length===0)return[NaN,""];if(i.startsWith("+"))return tt(i.slice(1),e);if(i.startsWith("-")){let[r,s]=tt(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 ws(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 xs(i){if(typeof i=="number")return Number.isInteger(i)?BigInt(i):null;if(i==null||!fn(i))return null;let e=it(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:q(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 oi=["number","finite_number","complex","finite_complex","imaginary","real","finite_real","rational","finite_rational","integer","finite_integer","non_finite_number"],nt=["indexed_collection","list","tuple"],ui=[...nt,"collection","set","record","dictionary"],ai=["scalar",...oi,"boolean","string"],rt=["value","color",...ui,...ai],st=["expression","symbol","function",...rt],ot=["any","unknown","nothing","never","error",...st],hn=new Set(oi),pn=new Set(ui),Nn=new Set(ai),Te=new Set(ot);function gn(i){return typeof i=="string"?Te.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==="broadcastable"||i.kind==="symbol"||i.kind==="expression"||i.kind==="numeric"||i.kind==="collection"||i.kind==="indexed_collection"||i.kind==="reference"}var ci=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===`
|
|
4
4
|
`?(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 li=class{lexer;typeResolver;current;allowTrailing;_end=0;constructor(e,t){this.allowTrailing=t?.allowTrailing??!1,this.lexer=new ci(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(`
|
|
5
5
|
`)[e.line-1]||r,u=e.column,c=" ".repeat(Math.max(0,u-1))+"^",l=["","Invalid type",`| ${o}`,`| ${c}`,"|",`| ${t}`];n&&l.push(`| ${n}`),l.push("");let m=new Error(l.join(`
|
|
6
6
|
`));throw m.position=e.position,m.rawMessage=t,m}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.parseBroadcastableType()||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})}}parseBroadcastableType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="broadcastable"){this.advance();let e=this.createNode("primitive",{name:"any"});if(this.match("<")){let t=this.parseUnionType();t&&(e=t),this.expect(">")}return this.createNode("broadcastable",{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(Te.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 bn(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"broadcastable":return e.visitBroadcastableType(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 ut=class{typeResolver;constructor(e){this.typeResolver=e??{forward:()=>{},resolve:()=>{},get names(){return[]}}}buildType(e){return bn(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),u={kind:"signature",args:t.length>0?t:void 0,result:o};return n.length>0&&(u.optArgs=n),r&&(u.variadicArg=r,u.variadicMin=s),u}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}}visitBroadcastableType(e){return{kind:"broadcastable",elements:this.buildType(e.elementType)}}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 yn(i,e){return new ut(e).buildType(i)}var mi=new Map,ks=2048;function In(i){if(i===null||typeof i!="object"||Object.isFrozen(i))return i;Object.freeze(i);for(let e of Object.values(i))In(e);return i}function at(i,e){if(i===void 0)return;if(gn(i))return i;if(typeof i!="string")return;let t=e===void 0;if(t){let n=mi.get(i);if(n!==void 0)return n}try{let r=new li(i,{typeResolver:e}).parseType(),s=yn(r,e);return t&&(mi.size>=ks&&mi.clear(),mi.set(i,In(s))),s}catch(n){throw new Error(`Failed to parse type "${i}": ${n instanceof Error?n.message:String(n)}`)}}var Tn={number:oi,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:ot,unknown:[],nothing:[],never:[],error:[],value:rt,scalar:ai,collection:ui,indexed_collection:nt,list:[],set:[],tuple:[],record:[],dictionary:[],function:[],symbol:[],boolean:[],string:[],color:[],expression:st},Fe=(()=>{let i={},e=t=>{if(i[t])return i[t];let n=new Set([t]);i[t]=n;for(let r of Tn[t])if(r!==t)for(let s of e(r))n.add(s);return n};for(let t of Object.keys(Tn))e(t);return i})();function ve(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:Fe[e].has(i)}function vn(i,e){if(i===e)return[i];let t=Fe[i],n=Fe[e];if(t.has(e))return[e];if(n.has(i))return[i];let r=i<e?`${i}|${e}`:`${e}|${i}`,s=En.get(r);if(s)return s;let o=[];for(let c of t)n.has(c)&&o.push(c);let u=o.filter(c=>!o.some(l=>l!==c&&Fe[l].has(c)));return En.set(r,u),u}var En=new Map;function Ps(i){return i.lower!==void 0&&i.upper!==void 0&&Number.isFinite(i.lower)&&Number.isFinite(i.upper)}function Rs(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 Ds={finite_number:"number",finite_complex:"complex",finite_real:"real",finite_rational:"rational",finite_integer:"integer"};function Ss(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=Ds[t];n&&(e??=[]).push(n)}return e?[...i,...e]:i}function As(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(y(i,e)||y(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 vn(i,e).length===0;if(typeof i=="object"&&i.kind==="numeric"&&typeof e=="object"&&e.kind==="numeric"){if(vn(i.type,e.type).length===0)return!0;let r=i.lower??-1/0,s=i.upper??1/0,o=e.lower??-1/0,u=e.upper??1/0;return s<o||u<r}let t=Oe(i),n=Oe(e);if(t!==n){let r=t?e:i;if(!lt(r)&&!mt(r)&&!Oe(r))return!0}return!1}function y(i,e){if(typeof i=="string"&&!Te.has(i)&&(i=at(i)),typeof e=="string"&&!Te.has(e)&&(e=at(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 ve(i,e);if(i.kind==="broadcastable")return y(i.elements,e)&&y({kind:"indexed_collection",elements:i.elements},e);if(i.kind==="value")return typeof i.value=="boolean"?e==="boolean":typeof i.value=="number"?Number.isInteger(i.value)?ve("integer",e):ve("real",e):typeof i.value=="boolean"?ve("boolean",e):typeof i.value=="string"?ve("string",e):!1;if(i.kind==="union")return i.types.every(t=>y(t,e));if(i.kind==="intersection")return i.types.some(t=>y(t,e));if(i.kind==="negation")return!1;if(i.kind==="numeric"){let t=Ps(i)?Rs(i.type):i.type;return!!y(t,e)}return e==="number"?Oe(i):e==="symbol"?ct(i):e==="expression"?Os(i):e==="function"?kn(i):e==="scalar"?lt(i):e==="value"?mt(i):e==="indexed_collection"?xn(i):e==="collection"?wn(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=Ss(e.types),n=r=>y(r.elements,e)&&y({kind:"indexed_collection",elements:r.elements},e);return typeof i!="string"&&i.kind==="broadcastable"?n(i):typeof i!="string"&&i.kind==="union"?i.types.every(r=>typeof r!="string"&&r.kind==="broadcastable"?n(r):t.some(s=>y(r,s))):t.some(r=>y(i,r))}if(e.kind==="negation")return typeof i!="string"&&i.kind==="negation"?y(e.type,i.type):As(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"?ct(i):i.operator===e.operator;if(i.kind==="symbol")return e.operator==="Symbol"}if(e.kind==="broadcastable"){if(typeof i!="string"&&i.kind==="broadcastable")return y(i.elements,e.elements);if(typeof i!="string"&&i.kind==="union")return i.types.every(n=>y(n,e));if(y(i,e.elements))return!0;let t=Fs(i);return t!==void 0?y(t,e.elements):!1}if(typeof i!="string"&&i.kind==="broadcastable")return y(i.elements,e)&&y({kind:"indexed_collection",elements:i.elements},e);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 y(i,e.def)}if(i.kind==="union")return i.types.some(t=>y(t,e));if(i.kind==="intersection"&&e.kind==="intersection")return e.types.every(t=>i.types.some(n=>y(n,t)));if(i.kind==="intersection")return i.types.every(t=>y(t,e));if(e.kind==="intersection")return e.types.every(t=>y(i,t));if(i.kind==="signature"&&e.kind==="signature"){if(!y(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(!y(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(!y(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||!y(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(!y(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(!y(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(!y(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)||!y(i.elements[t],e.elements[t]))return!1;return!0}if(i.kind==="dictionary"&&e.kind==="dictionary")return y(i.values,e.values);if(e.kind==="indexed_collection")return i.kind==="indexed_collection"||i.kind==="list"?y(i.elements,e.elements):i.kind==="tuple"?i.elements.every(t=>y(t.type,e.elements)):!1;if(e.kind==="collection"){if(i.kind==="collection"||i.kind==="indexed_collection"||i.kind==="list")return y(i.elements,e.elements);if(i.kind==="tuple")return i.elements.every(t=>y(t.type,e.elements));if(i.kind==="set")return y(i.elements,e.elements);if(i.kind==="dictionary")return y({kind:"tuple",elements:[{type:"string"},{type:i.values}]},e.elements);if(i.kind==="record")return y({kind:"tuple",elements:[{type:"string"},{type:qs(...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(!y(n.type,r.type)||r.name!==void 0&&n.name!==r.name)return!1}return!0}if(e.kind==="list"&&i.kind==="list"){if(!y(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!(!ve(t,e.type)||i.value<(e.lower??-1/0)||i.value>(e.upper??1/0))}if(i.kind==="numeric"&&e.kind==="numeric")return!(!y(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!!y(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 y("boolean",e);if(typeof i.value=="number")return Number.isInteger(i.value)?y("integer",e):y("real",e);if(typeof i.value=="string")return y("string",e)}return!1}function Oe(i){return typeof i=="string"?hn.has(i):i.kind==="value"?typeof i.value=="number":i.kind==="numeric"}function lt(i){return Oe(i)?!0:typeof i=="string"?Nn.has(i):i.kind==="value"?["string","boolean","number"].includes(typeof i.value):!1}function wn(i){return xn(i)?!0:typeof i=="string"?pn.has(i):["collection","set","record","dictionary"].includes(i.kind)}function xn(i){return typeof i=="string"?!1:["indexed_collection","list","tuple"].includes(i.kind)}function Fs(i){if(typeof i=="string")return i==="indexed_collection"||i==="list"?"any":void 0;if(i.kind==="indexed_collection")return i.elements;if(i.kind==="list"){let e=i.dimensions;return e&&e.length>1?{kind:"list",elements:i.elements,dimensions:e.slice(1)}:i.elements}}function mt(i){return lt(i)||wn(i)}function kn(i){return i==="function"||typeof i!="string"&&i.kind==="signature"}function Os(i){return typeof i=="string"&&["expression","symbol","function"].includes(i)||mt(i)||kn(i)||ct(i)?!0:typeof i=="string"?!1:i.kind==="expression"}function ct(i){return i==="symbol"?!0:typeof i=="string"?!1:i.kind==="symbol"?!0:i.kind==="expression"?i.operator==="Symbol":!1}function Cs(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(y(i,e))return e;if(y(e,i))return i;let t=Zs(i,e);return _s.has(t)?Vs(i,e):t}var _s=new Set(["scalar","value","function","expression","collection","indexed_collection","list","set","tuple","record","dictionary","map","any"]);function Vs(i,e){let t=[],n=new Set,r=s=>{if(typeof s=="object"&&s.kind==="union"){for(let u of s.types)r(u);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 qs(...i){return i.length===0?"nothing":i.length===1?i[0]:i.reduce((e,t)=>Cs(e,t))}var Mn=["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"],Bn=new Map;function Zs(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=Bn.get(t);if(n===void 0){n="any";for(let r of Mn){let s=Fe[r];if(s.has(i)&&s.has(e)){n=r;break}}Bn.set(t,n)}return n}for(let t of Mn)if(y(i,t)&&y(e,t))return t;return"any"}var ft=Object.freeze([0,1]),ie=class i extends A{rational;radical;im=0;imRational=ft;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:ht(this.rational,this.radical),ht(this.imRational,this.imRadical)]:ht(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=dt(this.imRational,this.imRadical),t=e==="1"?"i":e==="-1"?"-i":`${e}i`;if(k(this.rational))return t;let n=dt(this.rational,this.radical);return t.startsWith("-")?`(${n} - ${t.slice(1)})`:`(${n} + ${t})`}return dt(this.rational,this.radical)}get sign(){return k(this.rational)?0:Ie(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 R(e)?new a(e[0]).div(e[1]):new a(e[0]).div(new a(e[1]));let n=a.precision,r=Math.max(n,25);a.precision=r+10;try{return(R(e)?new a(e[0]).div(e[1]):new a(e[0]).div(new a(e[1]))).mulToPrecision(new a(t).sqrt(),r)}finally{a.precision=n}}get numerator(){return this.im!==0?this:this.rational[1]==1?this:this.clone({rational:R(this.rational)?[this.rational[0],1]:[this.rational[0],BigInt(1)],radical:this.radical})}get denominator(){return this.im!==0?this.clone(1):R(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(){let e=this;if(Number.isInteger(this.radical)&&this.radical>0&&Number.isFinite(this.radical),(this.imRational!==ft||this.imRadical!==1)&&this._normalizeIm(),isNaN(this.radical)){e.rational=[NaN,1],e.radical=1,this.im!==0&&this._clearIm();return}let[t,n]=this.rational;if(n==0){e.rational=[NaN,1],e.radical=1,this.im!==0&&this._clearIm();return}if(this.radical===0||t===0){e.rational=[0,1],e.radical=1;return}if(this.radical>=4){let[r,s]=J(this.radical,2);r!==1&&(e.rational=x(this.rational,[r,1])),e.radical=s}e.rational=$(this.rational),this.im!==0&&(!Number.isFinite(this.rational[0])||this.radical===1&&this.imRadical)}_clearIm(){let e=this;e.imRational=ft,e.imRadical=1,e.im=0}_normalizeIm(){let e=this;Number.isInteger(this.imRadical)&&this.imRadical>=0&&Number.isFinite(this.imRadical);let[t,n]=this.imRational;if(isNaN(this.imRadical)||n==0||typeof t=="number"&&!Number.isFinite(t)){e.rational=[NaN,1],e.radical=1,this._clearIm();return}if(this.imRadical===0||t===0){this._clearIm();return}if(this.imRadical>=4){let[r,s]=J(this.imRadical,2);r!==1&&(e.imRational=x(this.imRational,[r,1])),e.imRadical=s}e.imRational=$(this.imRational),e.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:Ie(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:H(this.rational),radical:this.radical}):this.clone({rational:k(this.rational)?this.rational:H(this.rational),radical:this.radical,imRational:H(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:H(x([BigInt(s),BigInt(1)],ce([BigInt(r)*BigInt(this.imRadical),BigInt(1)]))),imRadical:this.imRadical})}let e=this.rational,t=this.imRational,n=ce(D(x(e,e),x(t,t)));return this.clone({rational:x(e,n),imRational:H(x(t,n)),imRadical:1})}return this.clone({rational:x([BigInt(this.rational[1]),BigInt(1)],ce([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:D(this.rational,[e,1])}):this.factory(this.bignumRe).add(e):Number.isInteger(e)&&this.radical===1&&this.imRadical===1?this.clone({rational:D(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:D(this.rational,e.rational),radical:this.radical}):this.factory(this.bignumRe).add(e);let t=fi({rat:this.rational,rad:this.radical},{rat:e.rational,rad:e.radical});if(t!==null){let n=fi({rat:this.imRational,rad:this.imRadical},{rat:e.imRational,rad:e.imRadical});if(n!==null&&Pn(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 a)return this.factory(e).mul(this);if(e.im!==0&&!(e instanceof i)){let m=this._liftComplex(e);if(m===null)return e.mul(this);e=m}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 m=BigInt(this.radical)*BigInt(e.radical);return m>BigInt(C)?this.factory(this.bignumRe).mul(e):this.clone({rational:x(this.rational,e.rational),radical:Number(m)})}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=di(t,r),u=di(n,s),c=di(t,s),l=di(n,r);if(o!==null&&u!==null&&c!==null&&l!==null){let m=fi(o,Ls(u)),f=fi(c,l);if(m!==null&&f!==null&&Pn(m,f))return this.clone({rational:m.rat,radical:m.rad,imRational:f.rat,imRadical:f.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 A){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=Rn(t,e);if(r!==null){let s=Rn(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:D(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(D(e,n.rational),r)}).sqrt();if(s instanceof i&&s.im===0&&s.radical===1){let o=this.clone({rational:x(D(n.rational,H(e)),r)}).sqrt();if(o instanceof i&&o.im===0&&o.radical===1)return this.clone({rational:s.rational,imRational:Ie(t)?o.rational:H(o.rational),imRadical:1})}}}return this._toFloat().sqrt()}if(this.radical===1)if(R(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=et(this.rational,e.rational),n=Z(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:Ie(n)?n:H(n),radical:this.imRadical})}let e=this.rational,t=this.imRational;return this.clone({rational:D(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=f=>f.isExact||f.im!==0&&Number.isInteger(f.re)&&Number.isInteger(f.im);if(e.some(f=>!n(f))){if(e.length===2)return[e[0].add(e[1])];let f=t(0);for(let d of e)f=f.add(d);return[f]}let r=[0,1],s=[],o=[0,1],u=[],c=(f,d,h)=>{let p=f.findIndex(N=>N.radical===h);p===-1?f.push({multiple:d,radical:h}):f[p].multiple=D(f[p].multiple,d)};for(let f of e){if(f.isNaN)return[new i(NaN,t)];if(!f.isZero)if(f instanceof i){let d=f.rational;f.radical===1?o=D(o,d):k(d)||c(u,d,f.radical),f.im!==0&&(f.imRadical===1?r=D(r,f.imRational):c(s,f.imRational,f.imRadical))}else{y(f.type,"integer")||Number.isInteger(f.re)&&Number.isInteger(f.im),f.im!==0&&(r=D(r,[f.im,1]));let d=f.bignumRe!==void 0?BigInt(f.bignumRe.toFixed(0)):BigInt(f.re);o=D(o,[d,BigInt(1)])}}if(!(!k(r)||s.length>0)){if(k(o)&&u.length===0)return[new i(0,t)];let f=[];return u.length===0?f.push(new i({rational:o},t)):(u.push({multiple:o,radical:1}),f.push(...u.map(d=>new i({rational:d.multiple,radical:d.radical},t)))),f}let m=[];(!k(o)||!k(r))&&m.push(new i({rational:o,imRational:r},t));for(let f of u)k(f.multiple)||m.push(new i({rational:f.multiple,radical:f.radical},t));for(let f of s)k(f.multiple)||m.push(new i({rational:[0,1],imRational:f.multiple,imRadical:f.radical},t));return m.length===0?[new i(0,t)]:m}};function fi(i,e){return k(i.rat)?e:k(e.rat)?i:i.rad===e.rad?{rat:D(i.rat,e.rat),rad:i.rad}:null}function di(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]=J(r,2);s!==1&&(n=x(n,[s,1])),r=o}return{rat:n,rad:r}}function Ls(i){return k(i.rat)?i:{rat:H(i.rat),rad:i.rad}}function Pn(i,e){return k(e.rat)||k(i.rat)?!0:i.rad===1&&e.rad===1}function dt(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 ni(i)?n(e):ri(i)?`-${n(e)}`:i[0]==1?`${n(e)}/${P(i[1])}`:i[0]==-1?`-${n(e)}/${P(i[1])}`:`${t(i)}${n(e)}`}function ht(i,e){let t=n=>z(n)?_(n[0]):["Rational",_(n[0]),_(n[1])];return e===1?t(i):ni(i)?["Sqrt",e]:ri(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 Rn(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 pt(i,e){for(i.isInteger()&&e.isInteger();!e.isZero();)[i,e]=[e,i.mod(e)];return i.abs()}function Dn(i,e){return i.mul(e).div(pt(i,e)).abs()}function*Sn(i){if(!i.isInteger()||i.isNegative())return a.NAN;if(i.lt(1))return a.ONE;let e=i;for(;i.gt(2);)i=i.sub(2),e=e.mul(i),yield e;return e}function Ce(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 a(i.toNumber()))}var pi=class i extends A{decimal;constructor(e){if(super(),typeof e=="number")this.decimal=new a(e),this.im=0;else if(e instanceof a)this.decimal=e,this.im=0;else{let t=e.re instanceof a?e.re:new a(e.re??0);this.decimal=t,this.im=e.im??0}this.decimal.isNaN()?this.im=NaN:isNaN(this.im)&&(this.decimal=a.NAN)}get type(){return this.isNaN?"number":this.isComplexInfinity?"complex":this.im!==0?!this.decimal.isFinite()||!Number.isFinite(this.im)?"complex":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(q(this.decimal))}toJSON(){return this.isNaN?"NaN":this.isPositiveInfinity?"PositiveInfinity":this.isNegativeInfinity?"NegativeInfinity":this.isComplexInfinity?"ComplexInfinity":this.im===0?Ce(this.decimal)?this.decimal.toNumber():{num:hi(this.decimal)}:Ce(this.decimal)?["Complex",_(this.decimal.toNumber()),_(this.im)]:["Complex",{num:hi(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 hi(this.decimal.toPrecision(a.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`,`(${hi(this.decimal)} ${e})`}clone(e){return new i(e)}_makeExact(e){return new ie(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 a(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 A&&(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 a?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 a)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,u=e.bignumRe??new a(e.re),c=u.mul(u).add(s*s);return this.clone({re:this.decimal.mul(u).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 A){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 m=this.decimal,f=this.im,d=m.mul(m).add(new a(f).mul(f)).sqrt().ln(),h=a.atan2(f,m),p=d.mul(c).sub(h.mul(l)),N=h.mul(c).add(d.mul(l)),g=p.exp();return this.clone({re:g.mulToPrecision(N.cos(),a.precision),im:Ee(g.mul(N.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 a(n).mul(n)).sqrt(),s=a.atan2(n,t),o=r.pow(e),u=s.mul(e);return this.clone({re:o.mulToPrecision(u.cos(),a.precision),im:Ee(o.mul(u.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 a(n).mul(n)).sqrt(),s=a.atan2(n,t),o=r.ln().div(e).exp(),u=s.div(e);return this.clone({re:o.mulToPrecision(u.cos(),a.precision),im:Ee(o.mul(u.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 a(t).mul(t)).sqrt(),r=e.add(n).div(2),s=n.sub(e).div(2),o=r.isNegative()?a.ZERO:r.sqrt(),u=Ee(Math.sign(t)*(s.isNegative()?0:s.sqrt().toNumber()));return this.clone({re:o,im:u})}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 a(e.bignumRe):new a(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 a(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 a(n).mul(n)).sqrt(),s=a.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=Ee(Math.cos(this.im))===0?a.ZERO:new a(this.im).cos();return this.clone({re:e.mulToPrecision(t,a.precision),im:Ee(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(q(this.decimal.floor()))}ceil(){return this.isNaN||this.im!==0?this._makeExact(NaN):this.decimal.isInteger()?this:this._makeExact(q(this.decimal.ceil()))}round(){return this.isNaN||this.im!==0?this._makeExact(NaN):this.decimal.isInteger()?this:this._makeExact(q(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 hi(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 Ee(i){return Math.abs(i)<=1e-14?0:i}var Ni=class i extends A{decimal;constructor(e){if(super(),typeof e=="number")this.decimal=e,this.im=0;else if(e instanceof a)this.decimal=e.toNumber(),this.im=0;else{let t=e.re===void 0?0:e.re instanceof a?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 ie(e,t=>this.clone(t))}get type(){return this.isNaN?"number":this.isComplexInfinity?"complex":this.im!==0?!Number.isFinite(this.decimal)||!Number.isFinite(this.im)?"complex":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 a?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 A&&(e.isPositiveInfinity||e.isNegativeInfinity||e.isComplexInfinity||e.isNaN)?this._makeExact(NaN):this;if(e instanceof a&&(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 a?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 A){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 m=this.decimal,f=this.im,d=.5*Math.log(m*m+f*f),h=Math.atan2(f,m),p=c*d-l*h,N=c*h+l*d,g=Math.exp(p);return this.clone({re:An(g*Math.cos(N)),im:An(g*Math.sin(N))})}}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,u=s*e;return this.clone({re:o*Math.cos(u),im:o*Math.sin(u)})}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(-Ki(-this.decimal,e)):this.clone(Ki(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),u=s/e;return this.clone({re:o*Math.cos(u),im:o*Math.sin(u)})}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 u=e===void 0?1:Math.log(e);return this.clone({re:Math.log(-this.decimal)/u,im:Math.PI/u})}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 An(i){return Math.abs(i)<=1e-14?0:i}function Fn(i){return i?._kind==="number"}function Gs(i){return i?._kind==="symbol"}function _e(i,e){return(i?._kind==="function"||i?._kind==="tensor")&&(e===void 0||i.operator===e)}function Us(i){if(_e(i,"Interval")){let e=i.op1,t=i.op2,n=!1,r=!1;_e(e,"Open")?(n=!0,e=e.op1):_e(e,"Closed")&&(e=e.op1),_e(t,"Open")?(r=!0,t=t.op1):_e(t,"Closed")&&(t=t.op1);let s=e.N(),o=t.N();return!Fn(s)||!Fn(o)?void 0:{start:s.re,openStart:n,end:o.re,openEnd:r}}if(Gs(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 Ys(i,e){return!((i.openStart?e<=i.start:e<i.start)||(i.openEnd?e>=i.end:e>i.end))}function js(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 On(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 u=0;for(let c=0;c<e;c++)c!==r&&(t[s][u]=i[o][c],u++);s++}n=n+Math.pow(-1,r)*i[0][r]*On(t)}return n}function Js(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,u=Math.max(0,-(n-(r-1)));return{estimate:Number(i.toFixed(u)),error:o}}function $s(i,e,t,n=1e5,r){r??=ye();let s;e===-1/0&&t===1/0?s=()=>{let g=Math.random(),I=Math.tan(Math.PI*(g-.5));return i(I)*Math.PI*(1+I*I)}:e===-1/0?s=()=>{let g=Math.random();return i(t+Math.log(g))/g}:t===1/0?s=()=>{let g=Math.random();return i(e-Math.log(g))/g}:s=()=>i(e+Math.random()*(t-e));let o=0,u=0,c=0;Qe(r,()=>{for(let g=0;g<n;g++){if((g&63)===0&&r!==void 0&&Date.now()>=r){g===0&&O(r);break}let I;try{I=s()}catch(T){if(T instanceof De&&c>0)break;throw T}o+=I,u+=I*I,c++}});let l=o/c,m=(u-c*l*l)/(c-1),f=Math.sqrt(m/c),d=isFinite(e)&&isFinite(t)?t-e:1,h=l*d,p=f*d;return Js(h,p)}function Hs(i){let e=0,t=0;for(let n of i)e+=n,t++;return t===0?NaN:e/t}function Xs(i){let e=a.ZERO,t=0;for(let n of i)e=e.add(n),t++;return t===0?a.NAN:e.div(new a(t))}function gi(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 bi(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(a.TWO):e[t]}function Cn(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 _n(i){let e=a.ZERO,t=a.ZERO,n=0;for(let r of i)e=e.add(r),t=t.add(r.mul(r)),n++;return n===0?a.NAN:t.sub(e.mul(e).div(new a(n))).div(new a(n-1))}function Vn(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 qn(i){let e=a.ZERO,t=a.ZERO,n=0;for(let r of i)e=e.add(r),t=t.add(r.mul(r)),n++;return n===0?a.NAN:t.sub(e.mul(e).div(new a(n))).div(new a(n))}function Ws(i){return Math.sqrt(Cn(i))}function Qs(i){return _n(i).sqrt()}function Ks(i){return Math.sqrt(Vn(i))}function zs(i){return qn(i).sqrt()}function eo(i){let e=0,t=0,n=0,r=0,s=0;for(let m of i){let f=m;if(!Number.isFinite(f))return NaN;e+=f,t+=f*f,n+=f*f*f,r+=f*f*f*f,s++}if(s===0)return NaN;let o=s,u=e/o,c=(t-e*e/o)/o;return(r-4*u*n+6*u*u*t-4*u*u*u*e+o*u*u*u*u)/o/(c*c)}function io(i){let e=a.ZERO,t=a.ZERO,n=a.ZERO,r=a.ZERO,s=0;for(let l of i){let m=l;if(!m.isFinite())return a.NAN;e=e.add(m),t=t.add(m.mul(m)),n=n.add(m.mul(m).mul(m)),r=r.add(m.mul(m).mul(m).mul(m)),s++}if(s===0)return a.NAN;let o=e.div(s),u=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(u.mul(u))}function to(i){let e=0,t=0,n=0,r=0;for(let l of i){let m=l;if(!Number.isFinite(m))return NaN;e+=m,t+=m*m,n+=m*m*m,r++}if(r===0)return NaN;let s=r,o=e/s,u=(t-e*e/s)/s;return(n-3*o*t+3*o*o*e-s*o*o*o)/s/Math.pow(u,3/2)}function no(i){let e=a.ZERO,t=a.ZERO,n=a.ZERO,r=0;for(let c of i){let l=c;if(!l.isFinite())return a.NAN;e=e.add(l),t=t.add(l.mul(l)),n=n.add(l.mul(l).mul(l)),r++}if(r===0)return a.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 ro(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 so(i){let e={};for(let r of i)e[r.toString()]=(e[r.toString()]??0)+1;let t=0,n=a.NAN;for(let r in e){let s=e[r];s>t&&(t=s,n=new a(r))}return n}function Zn(i){let e=[...i].sort((c,l)=>c-l),t=e.length,n=Math.floor(t/2),r=n+t%2,s=gi(e.slice(0,n)),o=gi(e),u=gi(e.slice(r));return[s,o,u]}function Ln(i){let e=[...i].sort((c,l)=>c.cmp(l)),t=e.length,n=Math.floor(t/2),r=n+t%2,s=bi(e.slice(0,n)),o=bi(e),u=bi(e.slice(r));return[s,o,u]}function Gn(i,e,t){let n=[...i],r=[...e],s=n.length;if(s!==r.length||s<2)return NaN;let o=0,u=0,c=0;for(let l=0;l<s;l++)o+=n[l],u+=r[l],c+=n[l]*r[l];return(c-o*u/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 a.NAN;let o=a.ZERO,u=a.ZERO,c=a.ZERO;for(let l=0;l<s;l++)o=o.add(n[l]),u=u.add(r[l]),c=c.add(n[l].mul(r[l]));return c.sub(o.mul(u).div(new a(s))).div(new a(t?s:s-1))}function oo(i,e){return Gn(i,e,!1)}function uo(i,e){return Un(i,e,!1)}function ao(i,e){return Gn(i,e,!0)}function co(i,e){return Un(i,e,!0)}function lo(i,e){let t=[...i],n=[...e],r=t.length;if(r!==n.length||r<2)return NaN;let s=0,o=0,u=0,c=0,l=0;for(let p=0;p<r;p++)s+=t[p],o+=n[p],u+=t[p]*n[p],c+=t[p]*t[p],l+=n[p]*n[p];let m=u-s*o/r,f=c-s*s/r,d=l-o*o/r,h=Math.sqrt(f*d);return h===0?NaN:m/h}function mo(i,e){let t=[...i],n=[...e],r=t.length;if(r!==n.length||r<2)return a.NAN;let s=a.ZERO,o=a.ZERO,u=a.ZERO,c=a.ZERO,l=a.ZERO;for(let N=0;N<r;N++)s=s.add(t[N]),o=o.add(n[N]),u=u.add(t[N].mul(n[N])),c=c.add(t[N].mul(t[N])),l=l.add(n[N].mul(n[N]));let m=new a(r),f=u.sub(s.mul(o).div(m)),d=c.sub(s.mul(s).div(m)),h=l.sub(o.mul(o).div(m)),p=d.mul(h).sqrt();return p.isZero()?a.NAN:f.div(p)}function fo(i){let[e,,t]=Zn(i);return t-e}function ho(i){let[e,,t]=Ln(i);return t.sub(e)}var yi={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},Yn=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"]),Ii={m:{dimension:[1,0,0,0,0,0,0,0],scale:1},kg:{dimension:[0,1,0,0,0,0,0,0],scale:1},g:{dimension:[0,1,0,0,0,0,0,0],scale:.001},s:{dimension:[0,0,1,0,0,0,0,0],scale:1},A:{dimension:[0,0,0,1,0,0,0,0],scale:1},K:{dimension:[0,0,0,0,1,0,0,0],scale:1},mol:{dimension:[0,0,0,0,0,1,0,0],scale:1},cd:{dimension:[0,0,0,0,0,0,1,0],scale:1},Hz:{dimension:[0,0,-1,0,0,0,0,0],scale:1},N:{dimension:[1,1,-2,0,0,0,0,0],scale:1},Pa:{dimension:[-1,1,-2,0,0,0,0,0],scale:1},J:{dimension:[2,1,-2,0,0,0,0,0],scale:1},W:{dimension:[2,1,-3,0,0,0,0,0],scale:1},C:{dimension:[0,0,1,1,0,0,0,0],scale:1},V:{dimension:[2,1,-3,-1,0,0,0,0],scale:1},F:{dimension:[-2,-1,4,2,0,0,0,0],scale:1},ohm:{dimension:[2,1,-3,-2,0,0,0,0],scale:1},S:{dimension:[-2,-1,3,2,0,0,0,0],scale:1},Wb:{dimension:[2,1,-2,-1,0,0,0,0],scale:1},T:{dimension:[0,1,-2,-1,0,0,0,0],scale:1},H:{dimension:[2,1,-2,-2,0,0,0,0],scale:1},lm:{dimension:[0,0,0,0,0,0,1,0],scale:1},lx:{dimension:[-2,0,0,0,0,0,1,0],scale:1},Bq:{dimension:[0,0,-1,0,0,0,0,0],scale:1},Gy:{dimension:[2,0,-2,0,0,0,0,0],scale:1},Sv:{dimension:[2,0,-2,0,0,0,0,0],scale:1},kat:{dimension:[0,0,-1,0,0,1,0,0],scale:1},degC:{dimension:[0,0,0,0,1,0,0,0],scale:1,offset:273.15},degF:{dimension:[0,0,0,0,1,0,0,0],scale:5/9,offset:459.67},min:{dimension:[0,0,1,0,0,0,0,0],scale:60},h:{dimension:[0,0,1,0,0,0,0,0],scale:3600},d:{dimension:[0,0,1,0,0,0,0,0],scale:86400},wk:{dimension:[0,0,1,0,0,0,0,0],scale:604800},ha:{dimension:[2,0,0,0,0,0,0,0],scale:1e4},L:{dimension:[3,0,0,0,0,0,0,0],scale:.001},t:{dimension:[0,1,0,0,0,0,0,0],scale:1e3},eV:{dimension:[2,1,-2,0,0,0,0,0],scale:1602176634e-28},Da:{dimension:[0,1,0,0,0,0,0,0],scale:16605390666e-37},au:{dimension:[1,0,0,0,0,0,0,0],scale:149597870700},deg:{dimension:[0,0,0,0,0,0,0,0],scale:Math.PI/180},rad:{dimension:[0,0,0,0,0,0,0,0],scale:1},grad:{dimension:[0,0,0,0,0,0,0,0],scale:Math.PI/200},turn:{dimension:[0,0,0,0,0,0,0,0],scale:2*Math.PI},arcmin:{dimension:[0,0,0,0,0,0,0,0],scale:Math.PI/10800},arcsec:{dimension:[0,0,0,0,0,0,0,0],scale:Math.PI/648e3},percent:{dimension:[0,0,0,0,0,0,0,0],scale:.01},ppm:{dimension:[0,0,0,0,0,0,0,0],scale:1e-6},dB:{dimension:[0,0,0,0,0,0,0,0],scale:1},Np:{dimension:[0,0,0,0,0,0,0,0],scale:1},in:{dimension:[1,0,0,0,0,0,0,0],scale:.0254},ft:{dimension:[1,0,0,0,0,0,0,0],scale:.3048},yd:{dimension:[1,0,0,0,0,0,0,0],scale:.9144},mi:{dimension:[1,0,0,0,0,0,0,0],scale:1609.344},lb:{dimension:[0,1,0,0,0,0,0,0],scale:.45359237},oz:{dimension:[0,1,0,0,0,0,0,0],scale:.028349523125},gal:{dimension:[3,0,0,0,0,0,0,0],scale:.003785411784},qt:{dimension:[3,0,0,0,0,0,0,0],scale:.000946352946},pt:{dimension:[3,0,0,0,0,0,0,0],scale:.000473176473},cup:{dimension:[3,0,0,0,0,0,0,0],scale:.0002365882365},atm:{dimension:[-1,1,-2,0,0,0,0,0],scale:101325},bar:{dimension:[-1,1,-2,0,0,0,0,0],scale:1e5},cal:{dimension:[2,1,-2,0,0,0,0,0],scale:4.184},kWh:{dimension:[2,1,-2,0,0,0,0,0],scale:36e5},\u00C5:{dimension:[1,0,0,0,0,0,0,0],scale:1e-10},USD:{dimension:[0,0,0,0,0,0,0,1],scale:1},cent:{dimension:[0,0,0,0,0,0,0,1],scale:.01}};function vi(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]&&i[7]===e[7]}function po(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===0&&i[4]===0&&i[5]===0&&i[6]===0&&i[7]===0}function No(i){if(i.length>2){let e=i.slice(0,2),t=i.slice(2);if(yi[e]!==void 0&&Yn.has(t)){let n=Ii[t];if(n)return{prefixScale:yi[e],baseEntry:n}}}if(i.length>1){let e=i.slice(0,1),t=i.slice(1);if(yi[e]!==void 0&&Yn.has(t)){let n=Ii[t];if(n)return{prefixScale:yi[e],baseEntry:n}}}return null}function Ti(i){let e=Ii[i];if(e)return e;let t=No(i);return t?{dimension:t.baseEntry.dimension,scale:t.prefixScale*t.baseEntry.scale}:null}function Ze(i){let e=Ti(i);return e?e.dimension:null}function qe(i){let e=Ti(i);return e?e.scale:null}function go(i,e){let t=Ze(i),n=Ze(e);return!t||!n?!1:vi(t,n)}var bo=new Map(["N","J","W","Pa","Hz","C","V","F","ohm","S","Wb","T","H","lm","lx","Gy","kat"].map(i=>[Ii[i].dimension.join(","),i]));function yo(i){return bo.get(i.join(","))??null}function jn(i,e,t){let n=Ti(e),r=Ti(t);if(!n||!r||!vi(n.dimension,r.dimension))return null;let s=n.offset??0,o=r.offset??0;return(i+s)*n.scale/r.scale-o}function le(i){if(typeof i=="string")return Ze(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,0];for(let n=1;n<i.length;n++){let r=le(i[n]);if(!r)return null;for(let s=0;s<8;s++)t[s]+=r[s]}return t}if(e==="Divide"){if(i.length!==3)return null;let t=le(i[1]),n=le(i[2]);return!t||!n?null:t.map((r,s)=>r-n[s])}if(e==="Power"){if(i.length!==3)return null;let t=le(i[1]),n=i[2];return!t||typeof n!="number"?null:t.map(r=>r*n)}return null}function me(i){if(typeof i=="string")return qe(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=me(i[n]);if(r===null)return null;t*=r}return t}if(e==="Divide"){if(i.length!==3)return null;let t=me(i[1]),n=me(i[2]);return t===null||n===null||n===0?null:t/n}if(e==="Power"){if(i.length!==3)return null;let t=me(i[1]),n=i[2];return t===null||typeof n!="number"?null:Math.pow(t,n)}return null}function Io(i){let e=new Map;function t(n,r){if(typeof n=="string")return e.set(n,(e.get(n)??0)+r),!0;if(!Array.isArray(n)||n.length<2)return!1;let s=n[0];if(s==="Multiply"){for(let o=1;o<n.length;o++)if(!t(n[o],r))return!1;return!0}if(s==="Divide")return n.length!==3?!1:t(n[1],r)&&t(n[2],-r);if(s==="Power"){if(n.length!==3)return!1;let o=n[2];return typeof o!="number"?!1:t(n[1],r*o)}return!1}return t(i,1)?e:null}function To(i){let e=new Map;for(let[r,s]of i)s!==0&&e.set(r,s);let t=new Map;for(let r of e.keys()){let s=Ze(r);if(!s)return null;let o=s.join(","),u=t.get(o);u?u.push(r):t.set(o,[r])}let n=1;for(let r of t.values()){if(r.length<2)continue;let s=!1,o=!1;for(let l of r){let m=e.get(l);m>0?s=!0:m<0&&(o=!0)}if(!s||!o)continue;let u=r[0],c=qe(u);if(c===null)return null;for(let l of r){let m=qe(l);if(m===null)return null;m>c&&(c=m,u=l)}for(let l of r){if(l===u)continue;let m=e.get(l),f=qe(l);n*=(f/c)**m,e.set(u,e.get(u)+m),e.delete(l)}e.get(u)===0&&e.delete(u)}return{factors:e,magnitudeScale:n}}function vo(i){let e=[],t=[],n=[];for(let[o,u]of i)u!==0&&(u>0?e.push(u===1?o:["Power",o,u]):(t.push(-u===1?o:["Power",o,-u]),n.push(["Power",o,u])));if(e.length===0&&t.length===0)return null;if(e.length===0)return n.length===1?n[0]:["Multiply",...n];let r=e.length===1?e[0]:["Multiply",...e];if(t.length===0)return r;let s=t.length===1?t[0]:["Multiply",...t];return["Divide",r,s]}function Eo(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 Ve(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 Ve(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=Ve(r),u=Ve(s);return!o||!u?null:["Divide",o,u]}if(t.length>0){let r=[],s=0;for(let u of t)r.push(i.slice(s,u).trim()),s=u+1;r.push(i.slice(s).trim());let o=r.filter(u=>u.length>0).map(u=>Ve(u));return o.some(u=>u===null)?null:o.length===1?o[0]:["Multiply",...o]}return i[0]==="("?null:Eo(i)}function Mo(i){return i=i.trim(),i.length===0?null:/[/*^()]/.test(i)?Ve(i):i}function Bo(i,e,t){if(typeof e=="string"&&typeof t=="string")return jn(i,e,t);let n=le(e),r=le(t);if(!n||!r||!vi(n,r))return null;let s=me(e),o=me(t);return s===null||o===null||o===0?null:i*s/o}var Bi=7,wi=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23];function Le(i){if(i<0)return NaN;if(i===1||i===2)return 0;let e=i-1,t=wi[0];for(let r=1;r<Bi+2;r++)t+=wi[r]/(e+r);let n=e+Bi+.5;return .5*Math.log(2*Math.PI)+(e+.5)*Math.log(n)-n+Math.log(t)}var wo=171.6243769563027;function Jn(i){i-=1;let e=wi[0];for(let n=1;n<Bi+2;n++)e+=wi[n]/(i+n);let t=i+Bi+.5;return Math.sqrt(2*Math.PI)*Math.pow(t,i+.5)*Math.exp(-t)*e}function xi(i,e){if(e<=0)return 1;if(e===1)return i;let t=e>>>1;return xi(i,t)*xi(i+t,e-t)}function fe(i){if(i<.5)return Math.PI/(Math.sin(Math.PI*i)*fe(1-i));if(i>wo)return 1/0;if(Number.isInteger(i))return xi(1,i-1);if(i>=2){let e=Math.floor(i)-1,t=i-e;return Jn(t)*xi(t,e)}return Jn(i)}function xo(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 er(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=xo(t),r=Math.sqrt(Math.PI)/2,s=1-t,o=t>.9;for(let u=0;u<5;u++){let c=o?s-Ri(n):Di(n)-t;n-=c*r*Math.exp(n*n)}return e*n}function Ri(i){if(Number.isNaN(i))return NaN;if(!Number.isFinite(i))return i>0?0:2;if(i<0)return 2-Ri(-i);if(i<2)return 1-Di(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 u=n*r;if(t*=u,Math.abs(u-1)<1e-17)break}return Math.exp(-i*i)/(Math.sqrt(Math.PI)*t)}function Di(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 pe(i,e){let t=a.precision;a.precision=t+i;try{return e().toPrecision(t)}finally{a.precision=t}}var Ne=24,Nt=2e4,ko=500;function ir(i,e){return e.isFinite()?pe(Ne,()=>It(i,e)):a.NAN}function It(i,e){if(!e.isFinite())return a.NAN;if(e.lt(a.HALF)){let b=a.PI,E=b.mul(e).sin().abs();return E.isZero()?a.NAN:b.ln().sub(E.ln()).sub(It(i,a.ONE.sub(e)))}if(e.isInteger()&&e.isPositive()){let b=e.toNumber();if(b<=1)return a.ZERO;if(b<=Nt){let E=1n,v=0;for(let V=2;V<b;V++)(++v&4095)===0&&O(i._deadline),E*=BigInt(V);return new a(E.toString()).ln()}}let t=e.sub(a.HALF);if(t.isInteger()&&!t.isNegative()){let b=t.toNumber();if(b===0)return a.PI.ln().div(a.TWO);if(b<=Nt){let E=0,v=1n;for(let L=2;L<=2*b;L++)(++E&4095)===0&&O(i._deadline),v*=BigInt(L);let V=1n;for(let L=2;L<=b;L++)(++E&4095)===0&&O(i._deadline),V*=BigInt(L);let X=4n**BigInt(b);return new a(v.toString()).ln().add(a.PI.ln().div(a.TWO)).sub(new a(X.toString()).ln()).sub(new a(V.toString()).ln())}}let n=a.precision,r=10,s=Math.ceil(n),o=e.toNumber(),u=Math.max(0,Math.ceil(s-o)),c=a.ONE,l=e;for(let b=0;b<u;b++)c=c.mulToPrecision(l,n),l=l.add(a.ONE);let m=u>0?c.ln():a.ZERO,f=Math.max(20,Math.ceil(.6*n)+20),d=Ge(i,f),h=l.sub(a.HALF).mul(l.ln()).sub(l).add(a.PI.mul(a.TWO).ln().div(a.TWO)),p=a.ONE.div(l),N=p.mulToPrecision(p,n),g=p,I=new a(10).pow(-(n+r)),T=Math.min(f,d.length);for(let b=0;b<T;b++){let E=2*(b+1),[v,V]=d[b],X=BigInt(E)*BigInt(E-1),ee=new a(v.toString()).div(new a((V*X).toString())).mulToPrecision(g,n);if(b>0&&ee.abs().lt(I))break;h=h.add(ee),g=g.mulToPrecision(N,n)}return h.sub(m)}function tr(i,e){if(e.isInteger()&&e.isPositive()){let t=e.toNumber();if(t<=Nt){let n=1n,r=0;for(let s=2;s<t;s++)(++r&4095)===0&&O(i._deadline),n*=BigInt(s);return new a(n.toString())}}return pe(Ne,()=>Me(i,e))}function Me(i,e){if(e.lt(a.HALF)){let t=a.PI,n=t.mul(e).sin();return n.isZero()?a.NAN:t.div(n.mul(Me(i,a.ONE.sub(e))))}return It(i,e).exp()}function $n(i,e){for(;e!==0n;){let t=e;e=i%e,i=t}return i}function Mi(i){return i<0n?-i:i}function Po(i,e){let t=[[1n,1n],[-1n,2n]];for(let r=2;r<=2*i;r++){if((r&255)===0&&O(e),r%2===1){t.push([0n,1n]);continue}let s=BigInt(r+1),o=0n,u=1n,c=1n;for(let d=0;d<r;d++){d>0&&(c=c*(s-BigInt(d)+1n)/BigInt(d));let[h,p]=t[d];if(h!==0n&&(o=o*p+c*h*u,u=u*p,d%8===7)){let N=$n(Mi(o),u);o/=N,u/=N}}let l=-o,m=s*u,f=$n(Mi(l),Mi(m));l/=f,m/=f,m<0n&&(l=-l,m=-m),t.push([l,m])}let n=[];for(let r=1;r<=i;r++)n.push(t[2*r]);return n}var Hn=new WeakMap;function Ge(i,e){let t=Hn.get(i);if(t&&t.length>=e)return t;let n=e+Math.min(64,Math.ceil(e/2)),r=Po(n,i._deadline);return Hn.set(i,r),r}function Tt(i,e){return e.isFinite()?pe(Ne,()=>nr(i,e)):a.NAN}function nr(i,e){if(e.isNegative()){if(e.isInteger())return a.NAN;let h=a.PI,p=h.mul(e),N=p.cos().div(p.sin());return nr(i,a.ONE.sub(e)).sub(h.mul(N))}if(e.isZero())return a.NAN;let t=a.precision,n=10,r=Math.max(7,Math.ceil(t)),s=new a(0),o=e;for(;o.lt(r);)s=s.sub(a.ONE.div(o)),o=o.add(a.ONE);let u=Math.max(20,Math.ceil(.6*t)+20),c=Ge(i,u);s=s.add(o.ln()).sub(a.ONE.div(o.mul(2)));let l=o.mulToPrecision(o,t),m=l,f=new a(10).pow(-(t+n)),d=Math.min(u,c.length);for(let h=0;h<d;h++){let[p,N]=c[h],g=BigInt(2*(h+1)),I=new a(p.toString()).div(new a((N*g).toString()).mul(l));if(h>0&&I.abs().lt(f))break;s=s.sub(I),l=l.mulToPrecision(m,t)}return s}function vt(i,e){return e.isFinite()?pe(Ne,()=>rr(i,e)):a.NAN}function rr(i,e){if(e.isNegative()){if(e.isInteger())return a.NAN;let h=a.PI,p=h.mul(e).sin();return h.mul(h).div(p.mul(p)).sub(rr(i,a.ONE.sub(e)))}if(e.isZero())return a.NAN;let t=a.precision,n=10,r=Math.max(7,Math.ceil(t)),s=new a(0),o=e;for(;o.lt(r);)s=s.add(a.ONE.div(o.mul(o))),o=o.add(a.ONE);let u=Math.max(20,Math.ceil(.6*t)+20),c=Ge(i,u);s=s.add(a.ONE.div(o)),s=s.add(a.ONE.div(o.mul(o).mul(2)));let l=o.mul(o).mulToPrecision(o,t),m=o.mulToPrecision(o,t),f=new a(10).pow(-(t+n)),d=Math.min(u,c.length);for(let h=0;h<d;h++){let[p,N]=c[h],g=new a(p.toString()).div(new a(N.toString()).mul(l));if(h>0&&g.abs().lt(f))break;s=s.add(g),l=l.mulToPrecision(m,t)}return s}function sr(i,e,t){let n=e.toNumber();return!Number.isInteger(n)||n<0?a.NAN:n===0?Tt(i,t):n===1?vt(i,t):!t.isFinite()||t.isZero()?a.NAN:pe(Ne,()=>Ro(i,n,t))}function Ro(i,e,t){let n=b=>{let E=a.ONE;for(let v=2;v<=b;v++)E=E.mul(v);return E},r=a.precision,s=10,o=Math.max(7,Math.ceil(r)),u=t,c=new a(0);if(u.isNegative()&&u.isInteger())return a.NAN;let l=e%2===0?-1:1,m=n(e);for(;u.lt(o);)c=c.add(new a(l).mul(m).div(u.pow(e+1))),u=u.add(a.ONE);let f=Math.max(20,Math.ceil(.6*r)+20),d=Ge(i,f),h=e%2===0?-1:1;c=c.add(new a(h).mul(n(e-1)).div(u.pow(e))),c=c.add(new a(h).mul(m).div(u.pow(e+1).mul(2)));let p=1n;for(let b=2;b<=e-1;b++)p*=BigInt(b);let N=u.pow(e+2).toPrecision(r),g=u.mulToPrecision(u,r),I=new a(10).pow(-(r+s)),T=Math.min(f,d.length);for(let b=0;b<T;b++){let E=2*(b+1),[v,V]=d[b],X=p;for(let j=0;j<E;j++)X*=BigInt(e+j);let L=1n;for(let j=2;j<=E;j++)L*=BigInt(j);let ee=new a((BigInt(h)*v*X).toString()).div(new a((V*L).toString()).mul(N));if(b>0&&ee.abs().lt(I))break;c=c.add(ee),N=N.mulToPrecision(g,r)}return c}function or(i,e,t){return pe(Ne,()=>Me(i,e).mul(Me(i,t)).div(Me(i,e.add(t))))}function ur(i,e){return e.isFinite()?e.eq(1)?new a(1/0):pe(Ne,()=>ar(i,e)):a.NAN}function ar(i,e){let t=a.PI;if(e.isZero())return a.HALF.neg();if(e.isInteger()&&e.isPositive()){let d=e.toNumber();if(d%2===0&&d>=2&&d<=ko){let h=d/2,p=Ge(i,h),[N,g]=p[h-1],I=new a(Mi(N).toString()).div(new a(g.toString())),T=t.mul(2),b=a.ONE,E=0;for(let v=2;v<=d;v++)(++E&4095)===0&&O(i._deadline),b=b.mul(v);return I.mul(T.pow(d)).div(b.mul(2))}}if(e.isNegative()&&e.isInteger()&&e.mod(a.TWO).isZero())return a.ZERO;if(e.isNegative())return new a(2).pow(e).mul(t.pow(e.sub(1))).mul(t.mul(e).div(2).sin()).mul(Me(i,a.ONE.sub(e))).mul(ar(i,a.ONE.sub(e)));let n=a.precision;if(e.gt((n+10)*3.33))return a.ONE;let r=Math.max(22,Math.ceil(1.32*n)+3),o=new a(3).add(new a(8).sqrt()).pow(r),u=o.add(a.ONE.div(o)).div(2),c=a.NEGATIVE_ONE,l=u.neg(),m=a.ZERO;for(let d=0;d<r;d++)(d&255)===0&&O(i._deadline),l=c.sub(l),m=m.add(l.div(new a(d+1).pow(e))),c=c.mul(new a(d+r).mul(d-r)).div(new a(d).add(a.HALF).mul(d+1));return m.div(u).div(a.ONE.sub(new a(2).pow(a.ONE.sub(e))))}function Xn(i,e,t){for(let n=0;n<100;n++){let r=i.exp(),o=i.mul(r).sub(e),u=r.mul(i.add(1)),c=r.mul(i.add(2)),l=o.div(u.sub(o.mul(c).div(u.mul(2))));if(i=i.sub(l),l.abs().lt(t.mul(i.abs().add(1))))break}return i.toPrecision(a.precision)}function cr(i,e,t=0){if(!e.isFinite())return e;let r=a.ONE.div(a.ONE.exp()).neg(),s=new a(10).pow(-a.precision),o=new a(10).pow(-15);if(t===0){if(e.isZero())return new a(0);if(e.sub(r).abs().lt(o))return a.NEGATIVE_ONE;if(e.lt(r))return a.NAN;let u,c=e.toNumber();if(c<0){let l=Math.sqrt(2*(Math.E*c+1));u=new a(-1+l-l*l/3+11/72*l*l*l)}else if(c<=1)u=new a(c*(1-c*(1-1.5*c)));else if(c<100){let l=Math.log(c);u=new a(l-Math.log(l))}else{let l=e.ln(),m=l.ln();u=l.sub(m).add(m.div(l))}return Xn(u,e,s)}if(t===-1){if(e.sub(r).abs().lt(o))return a.NEGATIVE_ONE;if(e.lt(r)||e.gte(0))return a.NAN;let u,c=e.toNumber();if(c<-.27){let l=Math.sqrt(2*(Math.E*c+1));u=new a(-1-l-l*l/3-11/72*l*l*l)}else{let l=Math.log(-c);u=new a(l-Math.log(-l))}return Xn(u,e,s)}return a.NAN}var ki=.5772156649015329,ne=[1/6,-1/30,1/42,-1/30,5/66,-691/2730,7/6,-3617/510,43867/798,-174611/330];function Si(i){if(!isFinite(i))return NaN;if(i<0)return Number.isInteger(i)?NaN:Si(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<ne.length;r++)e-=ne[r]/(2*(r+1)*n),n*=t*t;return e}function Ai(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)-Ai(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<ne.length;r++)e+=ne[r]/n,n*=t*t;return e}function lr(i,e){if(!Number.isInteger(i)||i<0)return NaN;if(i===0)return Si(e);if(i===1)return Ai(e);if(!isFinite(e)||e===0)return NaN;if(e<0&&Number.isInteger(e))return NaN;let t=0,n=e,r=gt(i),s=i%2===0?-1:1,o=i+10;for(;n<o;)t+=s*r/Math.pow(n,i+1),n+=1;let u=i%2===0?-1:1;t+=u*gt(i-1)/Math.pow(n,i),t+=u*r/(2*Math.pow(n,i+1));let c=r*(i+1)/(2*Math.pow(n,i+2)),l=1/0;for(let m=1;m<=ne.length;m++){let f=ne[m-1]*c;if(Math.abs(f)>=l)break;t+=u*f,l=Math.abs(f);let d=2*m;c*=(d+i)*(d+i+1)/((d+1)*(d+2)*n*n)}return t}function gt(i){if(i<=1)return 1;let e=1;for(let t=2;t<=i;t++)e*=t;return e}function mr(i,e){return i>100||e>100||i+e>100?Math.exp(Le(i)+Le(e)-Le(i+e)):fe(i)*fe(e)/fe(i+e)}function Fi(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<=ne.length)return-ne[s/2-1]/s}if(i<0)return Math.pow(2,i)*Math.pow(Math.PI,i-1)*Math.sin(Math.PI*i/2)*fe(1-i)*Fi(1-i);if(i>=12){let s=1;for(let o=2;o<=128;o++){let u=Math.pow(o,-i);if(s+=u,u<s*1e-18)break}return s}let[e,t]=Do(),n=0,r=0;for(let s=0;s<fr;s++){let u=(s%2===0?e[s]:-e[s])*Math.pow(s+1,-i)-r,c=n+u;r=c-n-u,n=c}return n/t/-Math.expm1((1-i)*Math.LN2)}var fr=28,Ei=null;function Do(){if(Ei)return Ei;let i=fr,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),u=[];for(let c=0;c<i;c++)u.push(Number(s-r[c])/o);return Ei=[u,Number(s)/o],Ei}function Wn(i,e){for(let t=0;t<30;t++){let n=Math.exp(i),s=i*n-e,o=n*(i+1),u=n*(i+2),c=s/(o-s*u/(2*o));if(i-=c,Math.abs(c)<1e-15*(1+Math.abs(i)))break}return i}function dr(i,e=0){if(!isFinite(i))return i;let t=1/Math.E;if(e===0){if(i===0)return 0;if(i<-t)return NaN;if(Math.abs(i+t)<1e-15)return-1;let n;if(i<0){let r=Math.sqrt(2*(Math.E*i+1));n=-1+r-r*r/3+11/72*r*r*r}else if(i<=1)n=i*(1-i*(1-1.5*i));else if(i<100){let r=Math.log(i);n=r-Math.log(r)}else{let r=Math.log(i),s=Math.log(r);n=r-s+s/r}return Wn(n,i)}if(e===-1){if(i<-t||i>=0)return NaN;if(Math.abs(i+t)<1e-15)return-1;let n;if(i<-.27){let r=Math.sqrt(2*(Math.E*i+1));n=-1-r-r*r/3-11/72*r*r*r}else{let r=Math.log(-i);n=r-Math.log(-r)}return Wn(n,i)}return NaN}function te(i,e){return!isFinite(e)||!Number.isInteger(i)?NaN:e===0?i===0?1:0:i<0?(i=-i,i%2===0?te(i,e):-te(i,e)):e<0?i%2===0?te(i,-e):-te(i,-e):e>25+i*i/2?Ao(i,e):e<5+i?So(i,e):Fo(i,e)}function So(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 hr(i,e){let t=4*i*i,n=1,r=0,s=1,o=8*e;for(let u=1;u<=20;u++){s*=t-(2*u-1)*(2*u-1);let c=gt(u)*Math.pow(o,u),l=s/c;if(u%2===1?r+=(u%4===1?1:-1)*l:n+=(u%4===2?-1:1)*l,Math.abs(l)<1e-15)break}return[n,r]}function Ao(i,e){let t=e-(i/2+.25)*Math.PI,[n,r]=hr(i,e);return Math.sqrt(2/(Math.PI*e))*(n*Math.cos(t)-r*Math.sin(t))}function Fo(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 u=1/o;return s[i]*u}function Pi(i,e){if(!isFinite(e)||!Number.isInteger(i))return NaN;if(e<=0)return NaN;if(i<0)return i=-i,i%2===0?Pi(i,e):-Pi(i,e);if(e>12+i*i/4)return _o(i,e);let t=Oo(e);if(i===0)return t;let n=Co(e);if(i===1)return n;let r=t,s=n;for(let o=1;o<i;o++){let u=2*o/e*s-r;r=s,s=u}return s}function Oo(i){let e=i/2,t=e*e,n=te(0,i),r=0,s=1,o=0;for(let u=1;u<=60&&(o+=1/u,s*=-t/(u*u),r-=s*o,!(Math.abs(s*o)<Math.abs(r)*1e-16));u++);return 2/Math.PI*(n*(Math.log(e)+ki)+r)}function Co(i){let e=i/2,t=e*e,n=te(1,i),r=0,s=1,o=1;for(let u=0;u<=60;u++){u>0&&(o*=u,s*=t);let c=o*(u+1),l=0;for(let N=1;N<=u;N++)l+=1/N;let m=l+1/(u+1),f=-ki+l,d=-ki+m,p=(u%2===0?1:-1)*(f+d)*s/(o*c);if(r+=p,u>3&&Math.abs(p)<1e-16*Math.abs(r))break}return-2/(Math.PI*i)+2/Math.PI*Math.log(e)*n-e/Math.PI*r}function _o(i,e){let t=e-(i/2+.25)*Math.PI,[n,r]=hr(i,e);return Math.sqrt(2/(Math.PI*e))*(n*Math.sin(t)+r*Math.cos(t))}function he(i,e){return!isFinite(e)||!Number.isInteger(i)?NaN:e===0?i===0?1:0:(i<0&&(i=-i),e<0?i%2===0?he(i,-e):-he(i,-e):e>20&&e>=i*i?qo(i,e):Vo(i,e))}function Vo(i,e){let t=e/2,n=e*e/4,r=1;for(let u=1;u<=i;u++)r/=u;let s=r,o=0;for(let u=1;u<=500;u++){r*=n/(u*(i+u));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 qo(i,e){let t=4*i*i,n=1,r=1,s=1/0;for(let o=1;o<=40;o++){let u=t-(2*o-1)*(2*o-1);if(n*=-u/(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 pr(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=Qn(0,e),i===0)return t;n=Qn(1,e)}else if(e>=1.5){if([t,n]=Zo(e),i===0)return t}else{if(t=Nr(e),i===0)return t;n=Lo(e)}if(i===1)return n;let r=t,s=n;for(let o=1;o<i;o++){let u=2*o/e*s+r;r=s,s=u}return s}function Zo(i){let t=2*(1+i),n=1/t,r=n,s=n,o=0,u=1,c=-.25,l=.25,m=.25,f=1+m*s,d=0,h=0;for(let g=2;g<=1e4;g++){c-=2*(g-1),l=-c*l/g;let I=(o-t*u)/c;o=u,u=I,m+=l*I,t+=2,n=1/(t+c*n),s=(t*n-1)*s;let T=s-h,b=r+T;h=b-r-T,r=b;let E=m*s;if(T=E-d,b=f+T,d=b-f-T,f=b,Math.abs(E)<1e-18*Math.abs(f))break}r=.25*r;let p=Math.sqrt(Math.PI/(2*i))*Math.exp(-i)/f,N=p*(i+.5-r)/i;return[p,N]}function Nr(i){let e=i/2,t=e*e,n=he(0,i),r=0,s=1,o=0;for(let u=1;u<=60&&(o+=1/u,s*=t/(u*u),r+=s*o,!(Math.abs(s*o)<Math.abs(r)*1e-16&&u>3));u++);return-(Math.log(e)+ki)*n+r}function Lo(i){let e=he(0,i),t=he(1,i),n=Nr(i);return(1/i-t*n)/e}function Qn(i,e){let t=4*i*i,n=1,r=1,s=1/0;for(let o=1;o<=40;o++){let u=t-(2*o-1)*(2*o-1);if(n*=u/(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 Kn=134217729;function zn(i,e){let t=i+e,n=t-i;return[t,i-(t-n)+(e-n)]}function Be(i,e){let t=i+e;return[t,e-(t-i)]}function Ue(i,e){let t=i*e,n=Kn*i,r=n-(n-i),s=i-r,o=Kn*e,u=o-(o-e),c=e-u;return[t,r*u-t+r*c+s*u+s*c]}function we(i,e){let[t,n]=zn(i[0],e[0]),[r,s]=zn(i[1],e[1]),[o,u]=Be(t,n+r);return Be(o,u+s)}function gr(i){return[-i[0],-i[1]]}function de(i,e){let[t,n]=Ue(i[0],e[0]);return Be(t,n+i[0]*e[1]+i[1]*e[0])}function bt(i,e){let[t,n]=Ue(i[0],e);return Be(t,n+i[1]*e)}function yt(i,e){let t=i[0]/e,[n,r]=Ue(t,e),s=we(i,[-n,-r]);return Be(t,(s[0]+s[1])/e)}function Go(i){let e=Math.sqrt(i),[t,n]=Ue(e,e);return Be(e,(i-t-n)/(2*e))}var br=[.3550280538878172,205233632436212e-31],yr=[.2588194037928068,-2522243111610832e-32],Uo=[1.7320508075688772,10035084221806903e-32],Yo=[.7853981633974483,3061616997868383e-32];function Ir(i){let e=bt(Ue(i,i),i),t=[1,0],n=[i,0],r=[1,0],s=[i,0];for(let o=1;o<=200;o++){let u=3*o;if(r=yt(de(r,e),(u-1)*u),s=yt(de(s,e),u*(u+1)),t=we(t,r),n=we(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 Et(i){let e=bt(Go(i),i);return yt(bt(e,2),3)}function Mt(i){return(6*i-5)*(6*i-3)*(6*i-1)/(216*i*(2*i-1))}function Tr(i){let e=Et(i),t=e[0],n=we(e,gr(Yo)),r=Math.cos(n[0]),s=Math.sin(n[0]),o=r-s*n[1],u=s+r*n[1],c=1,l=0,m=1,f=1/0;for(let h=1;h<=60;h++){m*=Mt(h)/t;let p=Math.abs(m);if(p>=f)break;f=p;let N=h%4===0||h%4===1?m:-m;if(h%2===0?c+=N:l+=N,p<1e-18)break}let d=1/(Math.sqrt(Math.PI)*Math.pow(i,.25));return[c,l,o,u,d]}function vr(i){if(!isFinite(i))return NaN;if(i>9){let n=Et(i),r=n[0];if(!Number.isFinite(r))return 0;let s=1,o=1,u=1/0;for(let l=1;l<=60&&(o*=Mt(l)/r,!(o>=u||(s+=l%2===0?o:-o,u=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,u]=Tr(-i);return u*(s*n+o*r)}let[e,t]=Ir(i);return we(de(br,e),gr(de(yr,t)))[0]}function Er(i){if(!isFinite(i))return NaN;if(i>9){let n=Et(i),r=n[0];if(!Number.isFinite(r))return 1/0;let s=1,o=1,u=1/0;for(let l=1;l<=60&&(o*=Mt(l)/r,!(o>=u||(s+=o,u=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,u]=Tr(-i);return u*(-o*n+s*r)}let[e,t]=Ir(i);return de(Uo,we(de(br,e),de(yr,t)))[0]}var jo=[-2991.8191940101983,708840.0452577386,-6297414862058625e-8,25489088057337637e-7,-4429795180596978e-5,3180162978765678e-4],Jo=[1,281.3762688899943,45584.78108065326,5173438887700964e-9,4193202458981112e-7,22441179564534092e-6,607366389490085e-3],$o=[-49884311457357354e-24,9504280628298596e-21,-.0006451914356839651,.018884331939670384,-.20552590095501388,1],Ho=[399982968972496e-26,9154392157746574e-25,12500186247959882e-23,12226278902417902e-21,.0008680295429417843,.04121420907221998,1],Mr=[.4215435550436775,.1434079197807589,.011522095507358577,.000345017939782574,46361374928786735e-22,3055689837902576e-23,10230451416490724e-26,17201074326816183e-29,13428327623306275e-32,3763297112699879e-35],Br=[1,.7515863983533789,.11688892585919138,.0064405152650885865,.00015593440916415301,18462756734893055e-22,11269922476399903e-24,36014002958937136e-27,5887545336215784e-29,45200143407412973e-33,12544323709001127e-36],wr=[.5044420736433832,.1971028335255234,.018764858409257526,.0006840793809153931,11513882611188428e-21,9828524436884223e-23,44534441586175015e-26,10826804113902088e-28,1375554606332618e-30,8363544356306774e-34,18695871016278324e-38],xr=[1,1.4749575992512833,.33774898912002,.02536037414203388,.0008146791071843061,12754507566772912e-21,10431458965757199e-23,46068072851523205e-26,11027321506624028e-28,13879653125957886e-31,8391588162831187e-34,18695871016278324e-38];function U(i,e){let t=e[0];for(let n=1;n<e.length;n++)t=t*i+e[n];return t}var kr=6e15;function Pr(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 Rr(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*U(n,jo)/U(n,Jo)}if(i<kr){let t=i*i,n=Math.PI*t,r=1/(n*n),s=1-r*U(r,Mr)/U(r,Br),o=1/n*U(r,wr)/U(r,xr),u=Pr(i),c=Math.cos(u),l=Math.sin(u);return e*(.5-(s*c+o*l)/(Math.PI*i))}return e*.5}function Dr(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*U(n,$o)/U(n,Ho)}if(i<kr){let t=i*i,n=Math.PI*t,r=1/(n*n),s=1-r*U(r,Mr)/U(r,Br),o=1/n*U(r,wr)/U(r,xr),u=Pr(i),c=Math.cos(u),l=Math.sin(u);return e*(.5+(s*l-o*c)/(Math.PI*i))}return e*.5}function Sr(i){return i===0?1:Math.sin(i)/i}var S=Math.cosh||function(i){return Math.abs(i)<1e-9?1-i:(Math.exp(i)+Math.exp(-i))*.5},Y=Math.sinh||function(i){return Math.abs(i)<1e-9?i:(Math.exp(i)-Math.exp(-i))*.5},Xo=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)},Wo=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))},xe=function(){throw SyntaxError("Invalid Param")};function Bt(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 Qo=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]):xe();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&&xe();for(var o=0;o<n.length;o++){var u=n[o];u===" "||u===" "||u===`
|
|
7
|
-
`||(u==="+"?r++:u==="-"?s++:u==="i"||u==="I"?(r+s===0&&xe(),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(u)))&&xe(),n[o+1]==="i"||n[o+1]==="I"?(t.im+=parseFloat((s%2?"-":"")+u),o++):t.re+=parseFloat((s%2?"-":"")+u),r=s=0))}r+s>0&&xe();break;case"number":t.im=0,t.re=i;break;default:xe()}return isNaN(t.re)||isNaN(t.im),t},w=class i{constructor(e,t){this.re=0,this.im=0;var n=Qo(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,u;return s===0?new i(e/r,t/r):Math.abs(r)<Math.abs(s)?(u=r/s,o=r*u+s,new i((e*u+t)/o,(t*u-e)/o)):(u=s/r,o=s*u+r,new i((e+t*u)/o,(t-e*u)/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=Bt(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)+Xo(t),Math.exp(e)*Math.sin(t))}log(){var e=this.re,t=this.im;return t===0&&e>0,new i(Bt(e,t),Math.atan2(t,e))}abs(){return Wo(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)*S(t),Math.cos(e)*Y(t))}cos(){var e=this.re,t=this.im;return new i(Math.cos(e)*S(t),-Math.sin(e)*Y(t))}tan(){var e=2*this.re,t=2*this.im,n=Math.cos(e)+S(t);return new i(Math.sin(e)/n,Y(t)/n)}cot(){var e=2*this.re,t=2*this.im,n=Math.cos(e)-S(t);return new i(-Math.sin(e)/n,Y(t)/n)}sec(){var e=this.re,t=this.im,n=.5*S(2*t)+.5*Math.cos(2*e);return new i(Math.cos(e)*S(t)/n,Math.sin(e)*Y(t)/n)}csc(){var e=this.re,t=this.im,n=.5*S(2*t)-.5*Math.cos(2*e);return new i(Math.sin(e)*S(t)/n,-Math.cos(e)*Y(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(Y(e)*Math.cos(t),S(e)*Math.sin(t))}cosh(){var e=this.re,t=this.im;return new i(S(e)*Math.cos(t),Y(e)*Math.sin(t))}tanh(){var e=2*this.re,t=2*this.im,n=S(e)+Math.cos(t);return new i(Y(e)/n,Math.sin(t)/n)}coth(){var e=2*this.re,t=2*this.im,n=S(e)-Math.cos(t);return new i(Y(e)/n,-Math.sin(t)/n)}csch(){var e=this.re,t=this.im,n=Math.cos(2*t)-S(2*e);return new i(-2*Y(e)*Math.cos(t)/n,2*S(e)*Math.sin(t)/n)}sech(){var e=this.re,t=this.im,n=Math.cos(2*t)+S(2*e);return new i(2*S(e)*Math.cos(t)/n,-2*Y(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,u=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=u.re;return u.re=Bt(u.re,u.im)/2,u.im=Math.atan2(u.im,c)/2,n&&(u.im=-u.im),u}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 Oi=7,Ci=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23],Ko=Math.sqrt(2*Math.PI),zo=.5*Math.log(2*Math.PI);function wt(i){if(i.re<.5){let r=i.mul(Math.PI).sin();return new w(Math.PI,0).div(r.mul(wt(new w(1,0).sub(i))))}let e=i.sub(1),t=new w(Ci[0],0);for(let r=1;r<Oi+2;r++)t=t.add(new w(Ci[r],0).div(e.add(r)));let n=e.add(Oi+.5);return new w(Ko,0).mul(n.pow(e.add(.5))).mul(n.neg().exp()).mul(t)}function xt(i){if(i.re<.5){let r=i.mul(Math.PI).sin();return new w(Math.PI,0).div(r).log().sub(xt(new w(1,0).sub(i)))}let e=i.sub(1),t=new w(Ci[0],0);for(let r=1;r<Oi+2;r++)t=t.add(new w(Ci[r],0).div(e.add(r)));let n=e.add(Oi+.5);return new w(zo,0).add(e.add(.5).mul(n.log())).sub(n).add(t.log())}var pc=new w(NaN,NaN),Nc=new w(1,0),gc=new w(0,0);var bc=Math.sqrt(Math.PI);var eu="0.86.
|
|
7
|
+
`||(u==="+"?r++:u==="-"?s++:u==="i"||u==="I"?(r+s===0&&xe(),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(u)))&&xe(),n[o+1]==="i"||n[o+1]==="I"?(t.im+=parseFloat((s%2?"-":"")+u),o++):t.re+=parseFloat((s%2?"-":"")+u),r=s=0))}r+s>0&&xe();break;case"number":t.im=0,t.re=i;break;default:xe()}return isNaN(t.re)||isNaN(t.im),t},w=class i{constructor(e,t){this.re=0,this.im=0;var n=Qo(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,u;return s===0?new i(e/r,t/r):Math.abs(r)<Math.abs(s)?(u=r/s,o=r*u+s,new i((e*u+t)/o,(t*u-e)/o)):(u=s/r,o=s*u+r,new i((e+t*u)/o,(t-e*u)/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=Bt(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)+Xo(t),Math.exp(e)*Math.sin(t))}log(){var e=this.re,t=this.im;return t===0&&e>0,new i(Bt(e,t),Math.atan2(t,e))}abs(){return Wo(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)*S(t),Math.cos(e)*Y(t))}cos(){var e=this.re,t=this.im;return new i(Math.cos(e)*S(t),-Math.sin(e)*Y(t))}tan(){var e=2*this.re,t=2*this.im,n=Math.cos(e)+S(t);return new i(Math.sin(e)/n,Y(t)/n)}cot(){var e=2*this.re,t=2*this.im,n=Math.cos(e)-S(t);return new i(-Math.sin(e)/n,Y(t)/n)}sec(){var e=this.re,t=this.im,n=.5*S(2*t)+.5*Math.cos(2*e);return new i(Math.cos(e)*S(t)/n,Math.sin(e)*Y(t)/n)}csc(){var e=this.re,t=this.im,n=.5*S(2*t)-.5*Math.cos(2*e);return new i(Math.sin(e)*S(t)/n,-Math.cos(e)*Y(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(Y(e)*Math.cos(t),S(e)*Math.sin(t))}cosh(){var e=this.re,t=this.im;return new i(S(e)*Math.cos(t),Y(e)*Math.sin(t))}tanh(){var e=2*this.re,t=2*this.im,n=S(e)+Math.cos(t);return new i(Y(e)/n,Math.sin(t)/n)}coth(){var e=2*this.re,t=2*this.im,n=S(e)-Math.cos(t);return new i(Y(e)/n,-Math.sin(t)/n)}csch(){var e=this.re,t=this.im,n=Math.cos(2*t)-S(2*e);return new i(-2*Y(e)*Math.cos(t)/n,2*S(e)*Math.sin(t)/n)}sech(){var e=this.re,t=this.im,n=Math.cos(2*t)+S(2*e);return new i(2*S(e)*Math.cos(t)/n,-2*Y(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,u=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=u.re;return u.re=Bt(u.re,u.im)/2,u.im=Math.atan2(u.im,c)/2,n&&(u.im=-u.im),u}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 Oi=7,Ci=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23],Ko=Math.sqrt(2*Math.PI),zo=.5*Math.log(2*Math.PI);function wt(i){if(i.re<.5){let r=i.mul(Math.PI).sin();return new w(Math.PI,0).div(r.mul(wt(new w(1,0).sub(i))))}let e=i.sub(1),t=new w(Ci[0],0);for(let r=1;r<Oi+2;r++)t=t.add(new w(Ci[r],0).div(e.add(r)));let n=e.add(Oi+.5);return new w(Ko,0).mul(n.pow(e.add(.5))).mul(n.neg().exp()).mul(t)}function xt(i){if(i.re<.5){let r=i.mul(Math.PI).sin();return new w(Math.PI,0).div(r).log().sub(xt(new w(1,0).sub(i)))}let e=i.sub(1),t=new w(Ci[0],0);for(let r=1;r<Oi+2;r++)t=t.add(new w(Ci[r],0).div(e.add(r)));let n=e.add(Oi+.5);return new w(zo,0).add(e.add(.5).mul(n.log())).sub(n).add(t.log())}var pc=new w(NaN,NaN),Nc=new w(1,0),gc=new w(0,0);var bc=Math.sqrt(Math.PI);var eu="0.86.2";return Vr(iu);})();
|
|
8
8
|
/*! Bundled license information:
|
|
9
9
|
|
|
10
10
|
complex-esm/dist/src/complex.js:
|
package/package.json
CHANGED