Function Naming

Function names in Intel® Integrated Performance Primitives software package are structured in order to simplify their identification and use. 

Understanding Intel IPP naming conventions can save you a lot of time and effort in figuring out what the purpose of a specific function is and in many cases you can derive this basic information straight from the function's self-explanatory name.

For example, the function called ippsDivC_32f is a signal processing (s) function that is used to divide (Div) vector elements by a constant value (C) and operates on 32f (_32f) data,
or the function ippmAdd_vv_32f_3x1 is a small matrices processing (m) function that adds (Add) one vector to another vector (_vv), where the size of vectors is 3 x 1 (_3x1) and the data is in 32f (_32f).

Intel IPP function names include a number of fields that indicate the function domain, operation, data type, and execution mode. Each field can only span over a fixed number of pre-defined values. In this sense the Intel IPP function names are "flat" since they carry a lot of information that alternatively can be put in the function body and branched there. Flat function names help reduce overhead costs when calling a function: you are calling a particular function to perform a specific operation on a known type of data in a certain mode. On the other hand, including all this information in the function body will require more overhead since it is necessary to first find answers to all these questions and take the appropriate branch before the function can actually execute. 

In a sense, the Intel IPP function names help ensure there are no "hidden libraries": you are calling only the code you need rather than calling code that contains part of code that answers your specific task. Function naming in Intel IPP thus minimizes overhead costs and footprint.