v0.4.4
·
83 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
⚠️ Breaking Changes
- Make numerical invariants and errors explicit
- Require Rust 1.97.0
Added
-
[breaking] Make numerical invariants and errors explicit
668daed- add structured error reasons, locations, origins, and factorization context
- make determinant, exact-conversion, LU, and LDLT paths range-safe and mathematically explicit
- validate benchmark inputs independently and require reproducible, provenance-backed performance evidence
- centralize tool versions, adopt nextest profiles, and replace Codacy with repository-owned checks and SARIF reporting
Changed
-
Consolidate setup abort handling
b9e453e- Share
OrAbortacross exact and comparison benchmarks while preserving contextual panic behavior. - Centralize Clippy policy in Cargo.toml for consistent local and CI checks.
- Keep
unreachable_pubenforced while allowing intentional crate-visible helpers. - Enable CodeRabbit's request-changes review workflow.
- Share
Dependencies
- Bump python-multipart in the uv group across 1 directory
6bb4fb7 - Bump zizmorcore/zizmor-action from 0.5.6 to 0.5.7
4a999a6 - Bump github/codeql-action/upload-sarif
85c0a7b - Bump actions/checkout from 6.0.2 to 7.0.0
0f0f956 - Bump astral-sh/setup-uv from 8.1.0 to 8.2.0
259acaa - Bump codecov/codecov-action from 6.0.1 to 7.0.0
035807c - Bump vulnerable Python tooling dependencies
4990260
Documentation
-
Add mathematical basis and clarify numerical guarantees
31b7b1e- define the binary64, factorization, determinant-filter, exact-arithmetic, tolerance, and error contracts
- align README, API documentation, examples, and LDLT diagnostics with guarantees over stored values
- audit academic references and extend Criterion coverage for determinant error-bound paths
-
Clarify determinant and LDLT failure contracts
e257343- State the determinant sign condition without ambiguous Markdown delimiters.
- Distinguish singular zero pivots from coupled zero-pivot LDLT rejections.
- Align citation and contributor guidance with the positive-definite domain.
Fixed
-
Make v0.4.3 comparisons correctness-aware
4ac5af9- Adapt the shared benchmark harness across v0.4.3 API differences without changing measured operations
- Exclude invalid balanced-range baselines while requiring current samples and reporting unavailable comparisons
- Preserve benchmark provenance, suite-specific fallback commands, and publication rollback guarantees
- Harden Windows Git input, changelog links, and version-reference parsing across platforms
-
Harden exact arithmetic and benchmark publication
db2fad5- add
DeterminantWithErrorBoundfor paired determinant estimates and certified bounds - scale exact systems independently and round exact values directly to IEEE-754
- fail benchmark publication closed on invalid samples or mismatched provenance
- make release and changelog tooling transactional, path-safe, and Windows-portable
- align benchmark CI with pinned local tools and least-privilege publishing
- add
Maintenance
-
Update setuptools requirement in the dependencies group
6a6c339Updates the requirements on setuptools to permit the latest version.
Updates
setuptoolsto 83.0.0 -
Avoid duplicate review checks
5e15d92- Use the legacy required status while preserving automatic approvals.
- Add explicit dense D3 determinant coverage and document the D4 error bound.
-
[breaking] Require Rust 1.97.0
4033f1f- Align Cargo, the pinned toolchain, Clippy, dependency-audit triggers, and maintainer guidance with the new baseline.
- Audit Rust 1.97 integer bit helpers against exact-arithmetic hot paths and retain existing operations where alternatives do not preserve performance.
- Correct v0.4.3 citation metadata and document exact decomposition and solve scaling accurately.
Performance
-
Restore det_direct throughput for D=2..4
f6d6885- Reintroduce branch-free dense expansions for D=2 and D=3.
- Share D=4 minors while retaining guarded sparse evaluation.
- Preserve non-finite handling for mathematically inactive terms.
-
Restore small-matrix det_sign_exact throughput
b8bfa9f- Reuse proof-bearing shared minors for D4 determinant and permanent evaluation.
- Restore the dense D3 filter while preserving sparse, overflow, and underflow fallbacks.
- Require headline benchmarks to exercise the intended filter and document historical harness overhead.
-
Improve inf_norm throughput
dc28f98- Check row-sum finiteness once per completed row on the success path.
- Replay only overflowing rows to preserve the first failing matrix coordinate.
- Preserve left-to-right accumulation and const evaluation across dimensions.
-
Improve dot and norm2_sq throughput
ece54d7- Check accumulator finiteness once after the success-path reduction.
- Replay only non-finite reductions to preserve the first failing step.
- Preserve left-to-right fused accumulation and const evaluation.