Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

krein-strings

Verification code and data for the Krein research programme: inverse spectral analysis of discrete Krein–Stieltjes strings.

Each paper of the programme lives in its own directory and carries its own manifest naming, script by script, which statement of the paper that script certifies. Shared tools and cached data sit at the top level, so every paper uses the same routines rather than a private copy.

Contents

satz1/      An Exact Derivative Calculus for Discrete Krein Strings
            paper (.tex/.pdf), manifest, all verification scripts,
            run logs in satz1/logs/
run_all.sh  runs and checks every script (see below)
lib/        chain_lab.py    RKPW reconstruction of Jacobi data
            string_lab.py   Jacobi data -> string (l, m)
data/       zeros_cache_1500.json    ordinates 1..1500, 45 digits
            zprime_cache_1500.json   the corresponding |zeta'(rho)|

The two cached lists are inputs to one numerical benchmark. Nothing in the mathematics of the papers depends on them; see Scope below.

Requirements and use

Python 3.8 or later. The exact certification scripts need only sympy and the standard library. The one benchmark additionally needs mpmath and numpy (≥ 1.17, for default_rng).

pip install sympy mpmath numpy
./run_all.sh          # all exact certificates, about 3 minutes
./run_all.sh --full   # plus the numerical benchmark, about 10 minutes

run_all.sh runs every script and checks its output against the expected result; it exits with 0 only if all checks pass. Output goes to runlogs/. Individual scripts can also be run directly, from any working directory: paths are resolved relative to the repository, not to the shell.

For the exact scripts the standard is that every reported difference is exactly zero in rational arithmetic — not small. The benchmark instead reproduces the numbers printed in §5 of the paper: its gradient figures run in mpmath and match exactly, while the Hessian deviation is partly assembled in double precision, so its last digit may vary with the numpy/BLAS build (the effect §5 describes).

On systems with glibc older than 2.28 (e.g. CentOS 7), install numpy with pip install --only-binary=:all: numpy; current numpy wheels require a newer glibc, and without the flag pip attempts a source build.

satz1/satz1_checks_MANIFEST.md is the authoritative map from script to certified statement, including expected output and runtime. Logs of a complete run in a fresh environment are in satz1/logs/.

Citing

The paper is archived on Zenodo under 10.5281/zenodo.22847188; that identifier resolves to the current version. Please cite the paper rather than this repository.

Scope

The formal results are statements about finite positive discrete measures on the half-line with distinct positive nodes. They use no hypothesis about the distribution of the Riemann zeros, and no claim concerning the Riemann Hypothesis is made or implied anywhere in this repository. One numerical benchmark consumes a concrete list of ordinates purely as a reproducible supply of distinct positive numbers; the definitions and proofs do not contain that list, and nothing is offered as evidence for or against any conjecture about it.

License

The code — all scripts in satz1/, the tools in lib/, and run_all.sh — is released under the MIT License; see LICENSE.

The paper (satz1/*.tex, satz1/*.pdf) and the cached data in data/ are released under the Creative Commons Attribution 4.0 International License (CC BY 4.0), matching the Zenodo record.

About

Verification code for "An Exact Derivative Calculus for Discrete Krein Strings": exact rational certificates and a reproducible numerical benchmark.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages