Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 02:26
· 15 commits to main since this release
3a32180

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

cvx-quadprog

Conda Recipe

A conda-forge recipe was generated with grayskull and uploaded as the conda-recipe workflow artifact.