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

  1. apply_block_householder_on_the_right() — new function using compact WY representation: A -= A V T V^*
  2. Blocked applyThisOnTheRight — uses the new function when m_length >= BlockSize and dst.rows() > 1, falling back to scalar path for small cases
  3. FIXME in make_block_householder_triangular_factor — replaced manual scalar loop with .eval() on triangular product
  4. FIXME in apply_block_householder_on_the_left — same pattern, explicit .eval() instead of in-place workaround
  5. Include orderBlockHouseholder.h now included before HouseholderSequence.h (no dependency in the other direction)

Testing

  • All 9 householder tests pass
  • All qr, qr_colpivoting, qr_fullpivoting, schur_real, schur_complex, eigensolver_selfadjoint tests pass (62/62)

Closes #3057

Merge request reports

Loading