Cynopolis c9a9492fcf
Merge-Checker / build_and_test (pull_request) Failing after 28m10s
Add QR eigen library: implicit Wilkinson-shifted QR for symmetric matrices
- 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.
2026-08-25 14:02:56 -04:00
2025-05-21 17:46:49 -04:00
2025-06-30 14:52:48 -04:00

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

  1. Initialize the repositiory with the command:
cmake -S . -B build -G Ninja
  1. Go into the build folder and run ninja
  2. That's it. You can test out the build by running ./unit-tests/matrix-tests
S
Description
A light weight C++ object for 3d math operations on embedded platforms
Readme
1.4 MiB
Languages
C++ 89%
Python 10.1%
CMake 0.9%