title: "Computational material for Fuchs extremal problem" instructions: |- # Exact computations for the Fuchs extremal problem The programs in this directory use the Python standard library only. They were run with Python 3.12.14. Python 3.10 or newer is sufficient. No numerical linear algebra package, arbitrary-precision floating-point package, or external solver is required. Run the commands below from this `supplement` directory. All coefficient lists are in ascending order, so `[1, 2, 1]` denotes `1 + 2*z + z**2`. ## Normalization Write ``` J_lambda(P) = integral |1-exp(i*theta)|^(2*lambda) |P(exp(i*theta))|^2 dtheta / (2*pi) c0(lambda) = Gamma(2*lambda+1) / Gamma(lambda+1)^2 ``` The exact lattice objective stored as `normalized_best` or `normalized_minimum` is `J_lambda(P)/c0(lambda)`. For a rational parameter, the normalized Fourier coefficients are rational: ``` r_0 = 1 r_(j+1) = -r_j * (lambda-j)/(lambda+j+1) ``` Every equality comparison, branch bound, and candidate ordering in the lattice and product searches uses exact integer or rational arithmetic. The field `integral_over_2pi_display` is a floating-point decimal presentation of `J_lambda(P)`; it is never used in a search decision. ## Reproducing the computations First run the small independent checks: ```bash python validate_enumeration.py --output results/enumeration_validation.json ``` This makes 97 checks: a separate Cartesian-product search for small degrees; the proved formulas on the first two parameter intervals; all minimizers at lambda=1 in the checked degrees; and the handling of a deliberately interrupted search. The arithmetic constructions and the critical parameter have separate verification programs: ```bash python verify_pte.py python verify_pell.py python critical_point.py --output results/critical_point.json ``` `verify_pte.py` reads `pte_pairs.json`. It checks the displayed PTE pairs, disjointness and cardinalities, all required moments, the exact vanishing order, monicity and degrees of the quotient polynomials, and the nonpalindromic example. It also checks the size-twelve witness for the upper bound at parameter eleven, the explicitly displayed pure products, and the rational inequalities used in the uniform product-exclusion intervals. The pure-product lower bounds from Maltby and Cipu are cited mathematical inputs; the program verifies their displayed attaining products and the interval estimates derived from those inputs. `verify_pell.py` checks the first six nontrivial Pell pairs, including their parity, disjoint supports, vanishing moments through order three, the exact fourth-moment formula, and the increasing separations of the displayed clusters. It also checks the first two monic quotients and the rational limiting energy factor at `alpha=1/4`. These checks use integer and rational arithmetic. The infinite-family construction and its limit are proved analytically in the paper. `critical_point.py` approximates the unique minimum on the third interval. It uses 90-digit `Decimal` arithmetic, recurrence to arguments at least 100, and 20 Bernoulli terms for the digamma and log-gamma expansions. The JSON output records analytic truncation bounds and numerical endpoint evaluations. This is not directed-rounding interval arithmetic, and ordinary arithmetic rounding is not propagated as an interval enclosure; the printed digits and bracket are numerical approximations. Existence and uniqueness of the critical parameter follow from the paper's analytic monotonicity proof. This program locates that unique critical point and evaluates the corresponding extremal value. Reproduce the complete product-family searches on the noninteger quarter-grid with the following commands: ```bash python exact_products.py --degree 34 --parameters 1/4,1/2,3/4,5/4,3/2,7/4,9/4,5/2,11/4,13/4,7/2,15/4,17/4,9/2,19/4,21/4,11/2,23/4 --output results/products_n34.json --csv results/products_n34.csv python exact_products.py --degree 80 --parameters 1/4,1/2,3/4,5/4,3/2,7/4,9/4,5/2,11/4,13/4,7/2,15/4,17/4,9/2,19/4,21/4,11/2,23/4 --output results/products_n80.json --csv results/products_n80.csv ``` Reproduce the full-lattice searches: ```bash python run_computations.py ``` The default run includes every noninteger quarter-grid parameter above 3 at degree 34, two additional analytic cross-checks at that degree, the degree-61 nonproduct witness, and the six degree-80 parameters reported in the paper. The common node limit is 10,000,000; the lambda=17/4, degree-80 case has a separate limit of 100,000,000. These limits reproduce the completion statuses in the supplied data. The longest completed case in the reference run visited 34,239,539 nodes and took about 289 seconds. Elapsed times depend on the machine and on concurrent work. A selected portion can be rerun, for example: ```bash python run_computations.py --degrees 34 --parameters 13/4,7/2,15/4 python run_computations.py --degrees 61 --parameters 17/4 python run_computations.py --degrees 80 --parameters 17/4 ``` Then build and verify the combined tables and the nonproduct comparison: ```bash python run_computations.py --summarize-only python degree34_quarter_grid.py python verify_nonproduct_witness.py python verify_results.py ``` `degree34_quarter_grid.py` produces all 24 rows for `lambda = 1/4, 1/2, ..., 6`. Rows up to 3 use the finite-degree analytic theorems, integer rows use explicit PTE witnesses and the integer lower bound, and the nine remaining noninteger rows require completed exact lattice searches. The program checks each reported polynomial value again in rational arithmetic. ## Exact lattice algorithm For degree `n`, write `P(z) = z**n + sum(a_j*z**j, j