WHAT: The @compile_workload (src/SparseWithDenseRowColMatrices.jl:37-53) exercises only A*b, factorize(A), F\b, refactor!(F, nonzeros(...)) — all LU/Woodbury. It never touches qr, QR refactor!/ldiv!, adjoint/transpose matvec (A'*u), or lstsq/SparseWithDenseRowColLeastSquares. WHY IT MATTERS: The entire new feature surface — the point of this work — pays full first-call compilation latency, directly undercutting the new features' UX. PrecompileTools is already set up, so extending is cheap. FIX: In the existing for T in (Float64, ComplexF64) loop add Fq = qr(A); Fq \ b; refactor!(Fq, A); Fq' \ b; A' * b; lstsq(A2, b) (small well-posed A2, guard the lstsq call). Keep it small (current workload uses n=12, r=2). EFFORT: S.
Priority: medium. Filed from an automated next-steps audit of the QR/lstsq work (see PR #6).
WHAT: The
@compile_workload(src/SparseWithDenseRowColMatrices.jl:37-53) exercises onlyA*b,factorize(A),F\b,refactor!(F, nonzeros(...))— all LU/Woodbury. It never touchesqr, QRrefactor!/ldiv!, adjoint/transpose matvec (A'*u), orlstsq/SparseWithDenseRowColLeastSquares. WHY IT MATTERS: The entire new feature surface — the point of this work — pays full first-call compilation latency, directly undercutting the new features' UX. PrecompileTools is already set up, so extending is cheap. FIX: In the existingfor T in (Float64, ComplexF64)loop addFq = qr(A); Fq \ b; refactor!(Fq, A); Fq' \ b; A' * b; lstsq(A2, b)(small well-posed A2, guard the lstsq call). Keep it small (current workload uses n=12, r=2). EFFORT: S.Priority: medium. Filed from an automated next-steps audit of the QR/lstsq work (see PR #6).