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.

Name

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 >

where

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

Descriptors

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

s

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.

ippsqAddCQ15_16s_s

Sf

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.

ippsqMulCQ31_32s_RmSfs

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

有关编译器优化的更完整信息,请参阅优化通知