Skip to content
C library for fixed point matrix, quaternion and vector calculations
C
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
FUNCTIONS.rst
LICENSE
Makefile
README.rst
fixarray.c
fixarray.h
fixmatrix.c
fixmatrix.h
fixmatrix_unittests.c
fixquat.c
fixquat.h
fixquat_unittests.c
fixstring.c
fixstring.h
fixvector2d.c
fixvector2d.h
fixvector3d.c
fixvector3d.h
fixvector3d_unittests.c
unittests.h

README.rst

http://kapsi.fi/~jpa/stuff/pix/fixmatrixlogo.png

Fixed point matrix library

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.

You can’t perform that action at this time.