| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-07-06 | 3.2 kB | |
| v0.42.0 source code.tar.gz | 2026-07-06 | 4.4 MB | |
| v0.42.0 source code.zip | 2026-07-06 | 4.5 MB | |
| Totals: 3 Items | 8.9 MB | 0 | |
Release 0.42.0 (2026-07-06)
Breaking changes
- Encapsulate
Matrix/ComplexMatrixfields to fix a soundness hole (#101, 2874984) - Safe code could set
row/col/datadirectly and reach heap out-of-bounds reads and writes through the internal raw-pointer and BLAS paths - Fields are now private and the
matrix()/cmatrix()constructors assertdata.len() == row * col - Migration guide:
m.row->m.nrow()m.col->m.ncol()m.shape->m.layout()m.data->m.as_slice()/m.as_mut_slice()/m.into_vec()Matrix { data, row, col, shape }literal ->matrix(data, row, col, shape)
- Known follow-up:
serde/rkyvdeserialization can still bypass the constructor validation; tracked separately
Bug fixes
- Fix even-order adaptive Gauss-Kronrod rules (
G10K21/G20K41/G30K61and theirRvariants) never early-exiting (#93, febd4e2) - The Gauss-sum reconstruction assumed the odd-order node layout, so even-order rules produced a corrupted error estimate and always subdivided to
max_iter, even for constant integrands - Integrating a cubic over
[0, 1]withG10K21(1e-8, 20)drops from about 87 ms to about 70 ns
New features
MatrixTrait::shape()returning(usize, usize)(#86, #103 by @ferxades12)Matrix::trace()andComplexMatrix::trace()(#87, 523185d)ComplexMatrix::h(): Hermitian conjugate (conjugate transpose) (#87)ComplexMatrix::real()/imag(): extract the real or imaginary part as a realMatrix(#87)- New accessors on both matrix types:
nrow(),ncol(),layout(),into_vec()(#101)
CI / Lint
- Add cargo-hack feature-combinations job: every feature builds alone, plus the pairwise powerset of the pure-Rust features (#98, fcfd012)
- Add a blocking
cargo fmt --all --checkjob and format the files added after #96 (bd36784, ec37e61)