The Texas Instruments IQmath and Qmath Libraries are a collection of highly optimized and high-precision mathematical functions for C programmers to seamlessly port a floating-point algorithm into fixed-point code on MSP430 and MSP432 devices. These routines are typically used in computationally intensive real-time applications where optimal execution speed, high accuracy and ultra low energy are critical. By using the IQmath and Qmath libraries, it is possible to achieve execution speeds considerably faster and energy consumption considerably lower than equivalent code written using floating-point math.
The Qmath library provides functions for use with 16-bit fixed point data types. These functions have been optimized for all devices and can efficiently be used with or without a hardware multiplier. The functions provide up to 16 bits of accuracy to satisfy the majority of applications on MSP430 devices.
The IQmath library provides the same functions as the Qmath library with 32-bit data types and higher accuracy. These functions are provided for when an application requires accuracy comparable or greater than the equivalent floating point math functions.
The following tool chains are officially supported:The IQmathLib supports the following devices with software and hardware multiply libraries:
Device | Software multiply support | MPY32 multiply support |
---|---|---|
MSP430F1xxx | Yes | No |
MSP430F2xxx | Yes | No |
MSP430G2xxx | Yes | No |
MSP430F4xxx | Yes | Yes |
MSP430F5xxx | Yes | Yes |
MSP430F6xxx | Yes | Yes |
MSP430FR5xxx | Yes | Yes |
MSP430FR6xxx | Yes | Yes |
MSP432P4xxx | n/a |
This release addresses several bugs found in previous versions of the libraries. The type and function names remain unchanged and this release does not break compatibility with any previous releases.
All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, alpha/EA, beta, etc.). Pre-releases are denoted with a suffix (e.g. 6.30.00.00-eng or 6.30.00.10-beta).
This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.
To support multiple side-by-side installations of the product, the product version is encoded in the top level directory (e.g. IQMATHLIB_01_00_00_00).
Subsequent releases of patch upgrades will be identified by the patch number, ex. 1.0.1.05 with directory IQMATHLIB_01_00_01_05. Typically, these patches only include critical bug fixes.