ac4bef88fc101b2b6b5a8f215260790bb90ba254
- Snapshot bidiagonal block before solving (W overwrite corrupted Ublock) - Wide-matrix QL row extent fix (rowsQL = n when transposed) - Vt output copy bound j<columns (was OOB write clobbering caller sigma) - Rank-deficient blocks: residual singular values sigma_i = ||B*v_i|| instead of sqrt(eigs of B*B) (condition-number squaring); Gram-Schmidt orthonormalization of U columns with rank-deficiency completion - JacobiEigenSymmetric: return signed eigenvalues (removed fabsf) - Fix 28 WithinRel(0.0f,.) matcher misuse -> WithinAbs in matrix-tests - New unit tests: SolveBidiagonalBlock2x2 (7 scipy-referenced cases), JacobiEigenSymmetric (3 cases), DeflateBidiagonal/BidiagonalIsDiagonal
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%