Function Naming

Function names in Intel IPP for Microcontrollers have the following general format:

ipp<data domain ><name>_< datatype>[_<descriptor>)

Data Domain

The data domain element consists of two characters that denote the group of functionality to which a given function belongs. Currently, the Intel IPP for Microcontrollers library supports the sq data domain, which includes functions for signal and data processing with fixed-point data types.


The name element indicates what function does and has the following format:

<name>=<operation>[_<modifier >]

The operation component is one ore more words, acronyms, and abbreviations that describe the core operation. The modifier component, if present, is a word or abbreviation that denotes a slight modification or variation of the given function.

Data Types

The datatype element indicates the data type used by the function in the following format:

<bit depth><bit interpretation >


bit depth = <1|8|16|32|64>

bit interpretation<u| s|f>[ c]

Here u indicates “unsigned integer”, s indicates “signed integer”, f indicates “floating point”, and c indicates “complex”.

Intel IPP for Microcontrollers library functions support the source and destination data types listed in the table below.

Data Types Supported by Intel IPP for Microcontrollers
Type Usual C Type Intel IPP-style Type DSP Type from stdint.h DSP Fixed-point Type
8u unsigned char Ipp8u uint8_t
8s signed char Ipp8s int8_t q7_t
16u unsigned short Ipp16u uint16_t
16s signed short Ipp16s int16_t q15_t
32u unsigned int Ipp32u int32_t
32s signed int Ipp32s int32_t q31_t
32f float Ipp32f float32_t
64u unsigned double Ipp64u uint64_t
64s __int64 (Windows*) or long long (Linux*) Ipp64s int64_t q63_t
64f double Ipp64f float64_t


The descriptor element further describes the operation. Descriptors are individual characters that indicate additional details of the operation.

The following descriptors are used in Intel IPP for Microcontrollers functions:

Descriptor Description Example


Result saturation. If a result exceeds the data-range limit for its data type, it saturates to the upper data-range limit. When the result is less than the lower data-range limit, it saturates to the lower data-range.



Result scaling. Before the function returns a result, it performs result scaling by multiplying the output values by 2-scaleFactor, where scaleFactor is one of the function parameters.


Rx, where x is either m or z

Result rounding:

  • If this descriptor is absent, a result is rounded to the nearest even number.
  • If the function has the Rm suffix, it performs rounding to minus.
  • If the function has the Rz suffix, it performs rounding to zero.

ippsqMagnitudeQ15Q14_16sc_Rm, ippsqRmsQ31_32s_Rz