Skip to content

v0.4.4

Choose a tag to compare

@acgetchell acgetchell released this 13 Jul 05:04
· 83 commits to main since this release
Immutable release. Only release title and notes can be modified.
03a6dc7

⚠️ 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 OrAbort across exact and comparison benchmarks while preserving contextual panic behavior.
    • Centralize Clippy policy in Cargo.toml for consistent local and CI checks.
    • Keep unreachable_pub enforced while allowing intentional crate-visible helpers.
    • Enable CodeRabbit's request-changes review workflow.

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 DeterminantWithErrorBound for 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

Maintenance

  • Update setuptools requirement in the dependencies group 6a6c339

    Updates the requirements on setuptools to permit the latest version.

    Updates setuptools to 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.