View on GitHub

FPM

C++ header-only fixed-point math library

Accuracy

The images below compare the accuracy (versus the real result) of:

The accuracy of Q24.8 was not shown since it was wildly inaccurate. It’s advised to use at least 16 bits of fraction for reasonable accuracy for trigonometric operations (as in these tests).

Plotted is the relative error ((result - real) / real). Closer to 0 is better.

Trigonometry functions

The results show that fpm’s trigonometric functions have better worst-case accuracy than libfixmath, although the latter has better overall accuracy except for certain domains where it has very large error.

Inverse trigonometry functions

The results show that fpm’s inverse trigonometric functions have better accuracy then libfixmath.

Power functions

The results show that for those power functions that libfixmath supports, fpm is less accurate. However, the relative error of all power functions is well below 0.1% in the tested cases, and even less some functions.