Libfixmatrix is a matrix computation library for microcontrollers. It is based on the libfixmath library, which uses 16.16 bit fixed point values. The main focus is processors without an FPU, such as ARM Cortex-M3. The compiled size of the library is less than 5 kB, depending on optimization settings and processor.
The library includes all basic matrix operations, such as multiplication, addition and transposition. Matrix equation solving (and matrix inversion) is implemented through QR decomposition. Also Cholesky decomposition is included. See function reference for details.
To avoid complexity and dynamic memory allocations, all matrices are allocated a buffer with constant size, specified with parameter FIXMATRIX_MAX_SIZE. This wastes some memory with matrices smaller than the maximum size, but allows more predictable memory usage.
Libfixmatrix is suited well for tasks involving small matrices (often less than 10x10): Kalman filters, transformation matrices and solving systems of linear equations.