SciML / LinearSolve.jl

LinearSolve.jl: High-Performance Unified Interface for Linear Solvers in Julia. Easily switch between factorization and Krylov methods, add preconditioners, and all in one interface.
https://docs.sciml.ai/LinearSolve/stable/
Other
241 stars 52 forks source link

Support StaticArrays Properly #436

Closed avik-pal closed 8 months ago

avik-pal commented 9 months ago

Checklist

Additional context

Add any other context about the problem here.

codecov[bot] commented 9 months ago

Codecov Report

Attention: 3 lines in your changes are missing coverage. Please review.

Comparison is base (9787717) 66.17% compared to head (21559ed) 66.35%.

Files Patch % Lines
src/factorization.jl 85.71% 3 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #436 +/- ## ========================================== + Coverage 66.17% 66.35% +0.18% ========================================== Files 27 27 Lines 2019 2039 +20 ========================================== + Hits 1336 1353 +17 - Misses 683 686 +3 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

avik-pal commented 9 months ago

@ChrisRackauckas this is ready

avik-pal commented 9 months ago

To summarize what this does:

  1. changes the default for StaticArrays from GMRES to LU for square and SVD for non-square (QR(..) \ b is not defined so can't default to that)
  2. In a bunch of places <fact>! was used, for SArray that is changed to fact.
  3. For NormalCholesky the instance was being created for A, which should have been for Symmetric(A' * A) -- unfortunately A * A pre-1.10 doesn't pass JET opt tests, so testing only 1.10 and above for that.