Libfixmath


libfixmath is a platform-independent fixed-point math library aimed at developers wanting to perform fast non-integer math on platforms lacking a FPU. It offers developers a similar interface to the standard math.h functions for use on Q16.16 fixed-point numbers. libfixmath has no external dependencies other than stdint.h and a compiler which supports 64-bit integer arithmetic.
Conditional compilation options exist to remove the requirement for a 64-bit capable compiler as many compilers for microcontrollers and DSPs do not support 64-bit arithmetic.

History

libfixmath was developed by Ben Brewer and first released publicly as part of the Dingoo SDK. It has since been used to implement a software 3D graphics library called FGL.

Performance

For the most intensive function benchmark results show the following results:
NameTime Compared to Float
ARM Cortex-M026.3%
Marvell PXA270 @ 312 MHz58.45%
Intel T5500120%
Intel Atom N280141%

Note: These results were calculated using fixtest with caching optimizations turned off.

Licensing

libfixmath is released under the MIT License, a permissive free software licence, and is free software.