- src/QR.hpp / src/QR.cpp: fully templated QR::EigenQR (N >= 2), no heap
allocation (3*N^2 float working buffers on stack). Givens tridiagonalization
(bottom-up) + implicit Wilkinson-shifted QR with bulge chasing, relative
deflation, exact-zero peeling, closed-form 2x2 termination.
- Matrix::EigenQR now delegates to QR::EigenQR (old unshifted body removed);
eigenvalues sorted descending, eigenvectors in columns of the output.
- unit-tests/qr-build-blocks-tests.cpp: 8 building-block test cases
(215 assertions) with scipy/numpy references.
- unit-tests/qr-reference-values.py: numpy/scipy reference generator mirroring
every building block and the full pipeline (eigh, n=3..8).
- CMake: new 'qr' static library; Matrix links against it;
qr-build-blocks-tests target enabled.