Repository navigation
[0.2.0] - 2026-10-28
sceua now requires Python 3.13 or later. A run stops when neither the best value nor the population median improves for max_tolerant_iter iterations, or when every parameter's spread falls below x_tolerance of its bound range; x_tolerance is now that fraction (default 1e-4), and the tolerance argument is gone, so drop it from calls and rescale any absolute x_tolerance you set. minimize() honors max_evals, rejects budgets below the population size and x0 points outside the bounds, evaluates every moved point before it competes, and ranks NaN objective values below any number, with success=False when every evaluation returns NaN. Result is exported for type annotations.
Added
- Add Result to the public API to be used for type checking on the user side. (e5f37db)
Changed
- Name the parameter-convergence check (fb8804d)
- Apply the new hooks' formatting (71a831c)
- Require Python 3.13 and move tooling to dependency groups (breaking) (14760a4)
- Satisfy ruff's full rule set in the solver (415da54)
Fixed
- Remove tolerance, whose margin never changed a stop (breaking) (2463cad)
- Keep progress statistics finite near the float limit (96d8f18)
- Stop on population progress with scale-free tolerances (breaking) (e355afa)
- Let finite candidates replace NaN values in complex evolution (78b3c0d)
- Honor max_evals and reject budgets below the population size (0e07773)
- Let a finite value replace a NaN best and flag all-NaN runs (a03bacb)
- Skip evolution for single-point complexes (be7b4cb)
- Store objective values as floats (f1623d6)
- Stop the HYMOD test model from creating runoff without rain (bbc8175)
- Detect lost dimensions in bound-scaled units (d5369e4)
- Evaluate PCA-moved points and never move the best one (6230b0c)
- List the best point once in the first complex (3d403a4)
- Reject x0 points outside the bounds (a340e9d)
- Cast x0 to float so offspring are not truncated (af2c9cc)
- Skip PCA recovery for one-dimensional problems (f7fe8b3)