IVAN BESEVIC / RESEARCH

Pandrosion, the solver.

A standalone numerical engine for finding roots and least-squares stationary points. Current release: 449.

CURRENT RELEASE

Pandrosion 449

A standalone Python file with NumPy. Real or complex systems, square, overdetermined and underdetermined. No external solver or earlier release is called as a fallback.

Download Python on Zenodo ↗

File hosted on Zenodo · MIT license

REFERENCE ARCHIVE

An identifiable release.

The Zenodo DOI identifies the published release. The SHA-256 fingerprint identifies the file used for the tests presented here.

Open the Zenodo record ↗

SHA-256: 9a358497e3bdafadf4e119511d3d031a6984ee012cd402aa9caad7c0bb6b2b74

Your first calculation

Install NumPy, place the file in your project and import solve and Options.

python3 -m pip install numpy
from pandrosion_449_standalone import solve, Options

result = solve(
    lambda z: (z - 5) * (z - 7) * (z - 12),
    [8],
    Options(mode="root"),
)
print(result.x)
print(result.root_success, result.residual)
print(result.function_evaluations)

One call returns one candidate, rather than an exhaustive list of roots. The ls and auto modes can recognize least-squares stationarity with a nonzero residual. To disable the heuristic detection of complex structure, use jacobian_kind="real".

The engine

What changes in 449

A reserve protects the probe quota for candidates close to the root threshold. The early cumulative quota is 128 evaluations beyond four times the tolerance; the full quota of 320 becomes available closer to the threshold. Probes remain included in the global and local physical evaluation budgets.

On the targeted case U-2026103130/184, release 449 reaches a residual of approximately 7.45 × 10−9 in 401 evaluations, below the unchanged threshold of 10−8. Release 448 failed on this case after 5,658 evaluations.

17,970 / 17,995Successful configurations in the comparative campaign
81 testsPython tests passed for this release
100 statementsLean mathematical bundle with a defined scope

These configurations combine data known during development and a held-out set. The 25 remaining failures are retained in the report. Overall timings are comparable to release 448; this campaign does not establish universal superiority.

Read the protocol and limitations →

Verify and cite

python3 pandrosion_449_standalone.py --self-test

Watch the solver work.

Replay evaluations recorded with the original 449 file on z³ − 1. The displayed points are actual improvements in the best residual observed.

02 / SOLVE

Follow an actual
449 run.

The landscape represents |z³ − 1|. Its three minima are the known roots. Replay the best candidates observed during calls to the original solver.

z³ − 1 = 0 · one complex variable

A recorded trajectory, a landscape to explore.

3D loads when you request it. Animations respect your reduced-motion preference.

Diagrams and explanations are accessible without 3D. Three.js scenes are hosted on this website, without a visualization CDN. Three.js license.

Explore the other animations and the sphere projection →