Add blocked right-side application for HouseholderSequence
Summary
Add blocked (BLAS-3) path for applyThisOnTheRight in HouseholderSequence, matching the existing blocked applyThisOnTheLeft. Also resolve two FIXMEs in BlockHouseholder.h.
Changes
-
apply_block_householder_on_the_right()— new function using compact WY representation:A -= A V T V^* -
Blocked
applyThisOnTheRight— uses the new function whenm_length >= BlockSizeanddst.rows() > 1, falling back to scalar path for small cases -
FIXME in
make_block_householder_triangular_factor— replaced manual scalar loop with.eval()on triangular product -
FIXME in
apply_block_householder_on_the_left— same pattern, explicit.eval()instead of in-place workaround -
Include order —
BlockHouseholder.hnow included beforeHouseholderSequence.h(no dependency in the other direction)
Testing
- All 9
householdertests pass - All
qr,qr_colpivoting,qr_fullpivoting,schur_real,schur_complex,eigensolver_selfadjointtests pass (62/62)
Closes #3057