v0.3.0
Changelog
All notable changes to this project are documented in this file.
The format is based on Keep a Changelog,
and entries are generated from Conventional Commits.
[0.3.0] - 2026-08-09
New Features
- Add an opt-in check_finite flag to solve_qp
- Add Sweep, reusing one factorisation across a family of problems
- Repair the active set on a miss instead of solving from scratch
- Add an opt-in primal-dual active-set fast path
- Escalate a cycling fast path to a least-index rule instead of giving up
Bug Fixes
- Docstring the nested helper in the _mix contiguity test
- Stop reading rounding as proof of infeasibility
Documentation
- State the stability policy, and take the free complexity win
- Add a badge block and link the README title to the docs site
- Record why CodeFactor's bandit scope differs from CI's
- Cut the README from 450 lines to 265
- Correct the paper's stale counts alongside the README's
- Describe what Sweep does on a miss, and record meq as inherited
- Note that a reused solve is nearly independent of n
- Make the Sweep example in the README actually run
- Re-run every table in the README against the current code
- (paper) Re-run every number, and report the certified fast path
- Document Sweep in the API reference, and make the omission impossible
- (paper) Drop the negative-results section and repair what cited it
- Docs(paper): place the fast path in its literature, and say why it cannot promise
- Make the README's cross-tree links absolute so mkdocs builds under --strict
Performance
- Run the dual ratio test on lists while the active set is small
- Pick the sparse slack product on density and size, not density alone
Maintenance
- Close the three quality findings from #17, #18 and #19
- Get mutation testing running, and kill what it found
- Name the RNG local rng, not random
- Split solve_qp's inner loop so every block rates B or better
- Add property-based tests, and pin the defect they found
- Reject the #36 defect explicitly instead of tuning caps around it
- Name the BLAS/LAPACK wrappers instead of resolving them
- Drop the warm-start experiment, superseded by the shipped Sweep
- Stop pinning the fast-path tests to one platform's BLAS
- Add a tectonic route to the paper, and ignore the built PDF
- Split _solve.py along its responsibilities
Other Changes
- Merge pull request #20 from Jebel-Quant/quality_findings_17_18_19
- Merge pull request #23 from Jebel-Quant/quality_findings_21_22
- Merge pull request #26 from Jebel-Quant/finite_check_24
- Merge pull request #27 from Jebel-Quant/mutation_25
- Merge pull request #30 from Jebel-Quant/readme_badges
- Merge pull request #31 from Jebel-Quant/codefactor_b311_29
- Merge pull request #32 from Jebel-Quant/complexity_28
- Merge pull request #34 from Jebel-Quant/codefactor_scope_33
- Merge pull request #37 from Jebel-Quant/hypothesis_35
- Merge pull request #38 from Jebel-Quant/infeasible_36
- Merge pull request #40 from Jebel-Quant/blas_direct_import
- Cache the factorisation across a sweep of related problems
- Merge pull request #42 from Jebel-Quant/warm_start
- Merge pull request #43 from Jebel-Quant/readme_slim
- Merge pull request #44 from Jebel-Quant/sweep_docs
- Merge pull request #45 from Jebel-Quant/sweep_smalln
- Merge pull request #46 from Jebel-Quant/dual_step_scalar
- Merge branch 'main' into readme_meq
- Merge pull request #49 from Jebel-Quant/readme_meq
- Merge pull request #50 from Jebel-Quant/readme_numbers
- Merge pull request #51 from Jebel-Quant/pdas_fast_path
- Merge pull request #52 from Jebel-Quant/paper_pdas_citations
- Merge branch 'main' into pdas_least_index
- Merge pull request #53 from Jebel-Quant/pdas_least_index
- Merge branch 'main' into paper_drop_negatives
- Merge pull request #54 from Jebel-Quant/paper_drop_negatives
- Merge branch 'main' into docs_sweep_api
- Merge pull request #55 from Jebel-Quant/docs_sweep_api
- Merge pull request #58 from Jebel-Quant/docs_strict_links
- Merge branch 'main' into split_solve
- Merge pull request #59 from Jebel-Quant/split_solve
- Merge pull request #60 from Jebel-Quant/rhiza_release_v0.3.0_20260809
PyPI Package
Conda Recipe
A conda-forge recipe was generated with grayskull and uploaded as the conda-recipe workflow artifact.