Qfplib: a family of floating-point libraries for ARM Cortex-M cores

Quinapalus Home :: Things Technical :: Qfplib: a family of floating-point libraries for ARM Cortex-M cores

Qfplib is a family of IEEE 754 floating-point libraries for ARM Cortex-M cores. The various members of the family target different cores and are written with different optimisation goals.

  • Qfplib-M0-tiny: targets ARM Cortex-M0, highly optimised for code size, single-precision only
  • Qfplib-M0-full: targets ARM Cortex-M0, optimised for both code size and speed, both single- and double-precision only
  • Qfplib-M3: targets ARM Cortex-M3, highly optimised for speed, single-precision only

For more detail see below.

Qfplib-M0-tiny

Qfplib-M0-tiny is a library of IEEE 754 single-precision floating-point arithmetic routines for microcontrollers based on the ARM Cortex-M0 core (ARMv6-M architecture). It should also run on Cortex-M3 and Cortex-M4 microcontrollers and will give reasonable performance, but it is not optimised for these devices.

Many Cortex-M0 microcontrollers have very little program memory available, and so the primary design goal was to minimise the code size of the library without sacrificing too much in speed or in usefulness. To that end it provides correctly rounded (to nearest, even-on-tie) addition, subtraction, multiplication and division operations, and sine, cosine, tangent, arctangent, logarithm, exponential and square root functions that give a high degree of accuracy. There are also conversion functions between floating-point values and signed or unsigned integer or fixed-point values. The library fits in 1 kbyte of program memory.

If you can afford the luxury of an additional 200 bytes in code size fast divide and square root functions (that do not guarantee correctly rounded results) are also available.

Find out more.

Qfplib-M0-full

Qfplib-M0-tiny is a library of IEEE 754 single- and double-precision floating-point arithmetic routines for microcontrollers based on the ARM Cortex-M0 core (ARMv6-M architecture). It should also run on Cortex-M3 and Cortex-M4 microcontrollers and will give reasonable performance, but it is not optimised for these devices.

The optimisation emphasis for Qfplib-M0-full is more on speed than is the case for Qfplib-M0-tiny. Nevertheless, the complete set of functions (both single- and double-precision) occupies less than 6 kbyte of code space.

The library provides correctly rounded (to nearest, even-on-tie) addition, subtraction, multiplication, division and square root operations, and sine, cosine, tangent, arctangent, logarithm and exponential that give a high degree of accuracy. There are also conversion functions between floating-point values and signed or unsigned integer or fixed-point values.

Find out more.

Qfplib-M3

Qfplib-M3 is a library of IEEE 754 single-precision floating-point arithmetic routines for microcontrollers based on the ARM Cortex-M3 core (ARMv7-M architecture). It will also run on Cortex-M4 microcontrollers but is not optimised for these devices. The optimisation goals for Qfplib-M3 are speed and accuracy, while keeping code size within reasonable bounds: the complete set of functions in Qfplib-M3 occupies a little under 12 kbyte.

Qfplib-M3 provides correctly rounded (to nearest, even-on-tie) addition, subtraction, multiplication, division and square root operations, and sine, cosine, tangent, arctangent, logarithm and exponential functions that give a very high degree of accuracy.

Find out more.

Licensing

All the Qfplib libraries are open source, licensed under version 2 of the GNU GPL. Use at your own risk. If you wish to enquire about alternative licensing please use the e-mail address on the home page.


This page most recently updated Mon 9 Nov 15:54:59 GMT 2020
Word Matcher

Options...
Type a pattern, e.g.
h???o
into the box and click ‘Go!’ to see a list of matching words. More...


Qxw screen
Qxw is a free (GPL) crossword construction program. New! Release 20200708 for both Linux and Windows. Non-Roman alphabets, batch mode, multiplex lights, answer treatments, circular and hex grids, jumbled entries, lots more besides. More...

Practical Signal Processing front cover
My book, ‘Practical Signal Processing’, is published by Cambridge University Press. You can order it directly from them, or via amazon.co.uk or amazon.com. Paperback edition now also available. Browse before you buy at Google Books. Wydanie polskie.

If you find this site useful or diverting, please consider a donation to NASS (a UK registered charity), to KickAS (in the US), or to a similar body in your own country.

Copyright ©2004–2020.
All trademarks used are hereby acknowledged.