Repository navigation
t4a-faer 0.26.0, t4a-faer-traits 0.24.2 - #155
Merged
Merged
Conversation
…25.2 The minor version moves because #97 removed Par::Rayon, Par::rayon, ParShape::Rayon and ParShape::rayon. CHANGELOG.md lists the changes since faer-v0.25.2 with the migration: correctness fixes (nonsymmetric EVD #112/#144/#145, SVD #110/#108, LU ties #105, diagonal products #113, sparse LU #132, Krylov #133/#134), MaybeUninit matmul (#136), the team route (#91, #111, #104), threadteam 0.1.3, t4a-private-gemm-x86 0.1.27, MSRV 1.89 and the opt-in x86-v4. t4a-faer-traits 0.24.2 only adds rust-version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release
t4a-faer0.26.0 witht4a-faer-traits0.24.2. The maintainer approved both versions on 2026-10-29.Par::Rayon,Par::rayon,ParShape::RayonandParShape::rayonafterfaer-v0.25.2. The README says published versions follow semver, and consumers such as tenferro-rs require^0.25.0.t4a-faer-traits0.24.2:faer-traits/only gainedrust-version = "1.89.0".threadteam0.1.3 andt4a-private-gemm-x860.1.27 are the latest on crates.io.Changes since 0.25.2 (from CHANGELOG.md)
Breaking: threadteam is the only parallel route (#97)
Par::Rayon(NonZeroUsize),Par::rayon(nthreads),ParShape::Rayon(NonZeroUsize)andParShape::rayon(nthreads)are removed, together with the spindle path and the Rayon cost model.Par::SeqandPar::Teamremain. To migrate:faer::team::with_team(n, |par| { /* faer calls with par */ })replacesPar::rayon(n);threadteam::PoolandTeamonce and lendPar::Team(..)to eachcall,
par.reborrow()for successive calls (see "parallelism" inREADME.md);par.shape()(orParShape::Seq) whereParShape::rayon(n)was used.A build without the
threadteamfeature hasPar::Seqonly.New
faer::linalg::matmul::matmul_with_conj_uninitandMatUninitMut: a matrix product intoMaybeUninit<T>storage, returned as an initializedMatMut; prior contents are never read(matmul: a MaybeUninit-safe overwrite destination (upstream faer-rs#269) #136, requested upstream as [Feature] Add a MaybeUninit-safe overwrite destination for matmul sarah-quinones/faer-rs#269).
Correctness
?GEEVdoes (LAPACK validation: the nonsymmetric EVD fixtures exceed the GET22-style residual threshold (4 dtypes) #112); the eigenvector backsubstitution clamps relative to the eigenvalue, so residuals no longer grow with n (LAPACK validation: the nonsymmetric EVD fixtures exceed the GET22-style residual threshold (4 dtypes) #112); the real
Schur deflation-window sort always ends (real Schur: the deflation-window sort never terminates when a 2 x 2 swap fails #144); the 2 x 2 block solves of the real back
substitution follow
?LALN2(real EVD: eigenvectors of strongly graded matrices have GET22 residuals up to 2.6e9 #145).partial SVD carries its residual estimate through the restart (svd: a retained Ritz pair carries its residual estimate through the restart (#102) #108).
LuError::NumericSingularin both backends (sparse LU: a numerically singular matrix factors as Ok, and the solve returns NaN (upstream #339) #132).NoConvergence, and BiCGSTAB stops at the lastfinite iterate after a breakdown (matrix_free: NoConvergence reports the initial residual, not the final one (upstream #328) #133, bicgstab: a breakdown (r̃ᵀv = 0) is not detected, and x becomes NaN (upstream #327) #134).
Parallelism and performance
dispatch cost is read from threadteam (cost: read the team dispatch cost from threadteam 0.1.2; drop team_section_cost (threadteam-rs#6 stage 4) #104).
Dependencies and toolchain
threadteam0.1.3 (team route: some processes run every repetition at the 1-thread time (16T, broccoli) #107 wait fix) andt4a-private-gemm-x860.1.27 (LAPACK validation: pivoted LDL leaves invalid metadata on the prefilled-subdiagonal fixtures (4 dtypes) #113).rust-version = "1.89.0"in both crates).x86-v4) no longer needs the nightly compiler but stays opt-in: enable thex86-v4feature (
nightlyis kept as its old name).t4a-faer-traits0.24.2 only addsrust-version.Verification
cargo publish --dry-run -p t4a-faer-traits -p t4a-faerpackages and verifies both crates (cargo 1.99.1).main(b903fa1), whose CI is green.After merge
faer-v0.26.0.t4a-faer-traits0.24.2, thent4a-faer0.26.0.🤖 Generated with Claude Code