Commit 49782ca
exp: Padé denominator solve through GESVFactorization
Benchmarks of the four candidate solve paths on identical per-cell
matrices (n = 5..250, scales 0.3/4.0, best-of-N with preallocated caches,
Julia 1.12, OpenBLAS single-threaded) showed LinearSolve's
GESVFactorization (v4.3) is the only variant at parity with the raw
LAPACK.gesv! this code historically used, in every cell: -1.8% to +2.3%
end-to-end, versus up to +5% for a pinned LUFactorization and up to +4.5%
for the default algorithm choice (whose safety fallback adds an O(n^2)
backup copy per refactorization). GESVFactorization reproduces the gesv!
results bit-for-bit and keeps the same per-call allocation bytes; on a
singular denominator it returns a Failure retcode, which this code turns
back into the historical SingularException (the default algorithm's QR
fallback resolved it silently instead).
Requires LinearSolve 4.3 for GESVFactorization.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYp371jx6LurezUDhKcYRh1 parent 7f486f5 commit 49782ca
2 files changed
Lines changed: 12 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
27 | | - | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
40 | | - | |
| 41 | + | |
41 | 42 | | |
42 | 43 | | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
| 44 | + | |
| 45 | + | |
47 | 46 | | |
48 | 47 | | |
49 | 48 | | |
| |||
0 commit comments