c9a9492fcf76bb22e00bacac814221f90e7c8229
Merge-Checker / build_and_test (pull_request) Failing after 28m10s
- 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.
Introduction
This matrix math library is focused on embedded development and avoids any heap memory allocation unless you explicitly ask for it. It uses templates to pre-allocate matrices on the stack.
Building
- Initialize the repositiory with the command:
cmake -S . -B build -G Ninja
- Go into the build folder and run
ninja - That's it. You can test out the build by running
./unit-tests/matrix-tests
Languages
C++
89%
Python
10.1%
CMake
0.9%