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.

Licensing

All the Qfplib libraries are open source, licensed under version 2 of the GNU GPL. Broadly speaking, that means that they can be used freely as part of other GPLv2 projects, commercial or otherwise. However, the licence does not permit their use as part of closed-source projects. In any case, use at your own risk. If you wish to enquire about alternative licensing please use the e-mail address on the home page.

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.

The Raspberry Pi RP2040 microcontroller includes a version of this library, slightly modified to take advantage of special hardware available on that device.

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.
This page most recently updated Fri 4 Feb 16:49:53 GMT 2022
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...

You can order my book, ‘Practical Signal Processing’, directly from CUP or via Hive, Amazon UK or Amazon US.
Practical Signal Processing front cover
“Probably the best book on signal processing ever written” — review at Goodreads.
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–2022.
All trademarks used are hereby acknowledged.