This chapter describes Intel® IPP fixed-accuracy transcendental mathematical real and complex functions of vector arguments. These functions take an input vector as argument, compute values of the respective elementary function element-wise, and return the results in an output vector.
Function specifications comply with the common API agreement of Intel IPP, but include some new features essential to scientific arithmetic functions. The main feature is a more elaborate specification of accuracy that differs from the common definition in adding several new levels of accuracy, besides original levels introduced by single precision and double precision data formats.
Fixed-accuracy vector functions implementation supports the IEEE-754 standard in all flavors, which means that:
The choice of accuracy levels should be based on practical experience and identified application demands. Available options are specified in the function name suffix and include A11, A21, or A24 for the single precision, and A26, A50, or A53 for the double precision data format. Flavors A11, A21, A26, and A50 provide approximately 3, 6, 8, and 15 exact decimal digits, respectively. For flavors A24 and A53, the maximum guaranteed error is within 1 ulp and in most cases does not exceed 0.55 ulp.
Fixed-accuracy arithmetic functions subset of Intel IPP has the similar functionality as the respective part of the Intel® Math Kernel Library (Intel® MKL).
However, Intel IPP provides lower-level transcendental functions that have separate flavors for each mode of operations and data type and are better suitable for multimedia and signal processing in real time applications. The full list of these functions is given in the table below.
Function Short Name | Description |
---|---|
Arithmetic Functions | |
Add | Adds elements of a vector to corresponding elements of another vector. |
Sub | Subtracts elements of a vector from corresponding elements of another vector. |
Sqr | Computes square of each vector element. |
Mul | Multiplies elements of a vector by corresponding elements of another vector. |
MulByConj | Multiplies elements of a vector by conjugated corresponding elements of another vector. |
Conj | Conjugates the value of each vector element. |
Abs | Computes the absolute value of each vector element. |
Arg | Computes an agrument of vector elements. |
Power and Root Functions | |
Inv | Computes inverse value of each vector element. |
Div | Divides elements of one vector by corresponding elements of another vector. |
Sqrt | Computes square root of each vector element. |
InvSqrt | Computes inverse square root of each vector element. |
Cbrt | Computes cube root of each vector element. |
InvCbrt | Computes inverse cube root of each vector element. |
Pow2o3 | Computes the value of each vector element raised to the power of 2/3. |
Pow3o2 | Computes the value of each vector element raised to the power of 3/2. |
Pow | Raises each element of one vector to the power of corresponding element of another vector. |
Powx | Raises each element of a vector to a constant power. |
Hypot | Computes a square root of sum of two squared elements. |
Exponential and Logarithmic Functions | |
Exp | Raises e to the power of each vector element. |
Expm1 | Computes e raised to the power of each vector element and decreased by 1. |
Ln | Computes natural logarithm of each vector element. |
Log10 | Computes common logarithm of each vector element. |
Log1p | Computes natural logarithm of each vector element decreased by 1. |
Trigonometric Functions | |
Cos | Computes cosine of each vector element. |
Sin | Computes sine of each vector element. |
SinCos | Computes sine and cosine of each vector element. |
CIS | Computes complex exponent of each vector element. |
Tan | Computes tangent of each vector element. |
Acos | Computes inverse cosine of each vector element. |
Asin | Computes inverse sine of each vector element. |
Atan | Computes inverse tangent of each vector element. |
Atan2 | Computes four-quadrant inverse tangent of elements of two vectors. |
Hyperbolic Functions | |
Cosh | Computes hyperbolic cosine of each vector element. |
Sinh | Computes hyperbolic sine of each vector element. |
Tanh | Computes hyperbolic tangent of each vector element. |
Acosh | Computes inverse hyperbolic cosine of each vector element. |
Asinh | Computes inverse hyperbolic sine of each vector element. |
Atanh | Computes inverse hyperbolic tangent of each vector element. |
Special Functions | |
Erf | Computes the error function value. |
Erfc | Computes the complementary error function value. |
CdfNorm | Computes the cumulative normal distribution function values of vector elements. |
ErfInv | Computes the inverse error function value for each vector element. |
ErfcInv | Computes the inverse complementary error function value of vector elements. |
CdfNormInv | Computes the inverse cumulative normal distribution function values of vector elements. |
Rounding Functions | |
Floor | Computes integer value rounded toward minus infinity for each vector element. |
Ceil | Computes integer value rounded toward plus infinity for each vector element. |
Trunc | Computes integer value rounded toward zero for each vector element. |
Round | Computes integer value rounded to nearest for each vector element. |
NearbyInt | Computes rounded integer value in current rounding mode for each vector element. |
Rint | Computes rounded integer value in current rounding mode for each vector element with inexact result exception raised for each changed value. |
Modf | Computes truncated integer value and remaining fraction part for each vector element. |
Do not confuse fixed-accuracy arithmetic functions described here with common arithmetic functions that have similar functionality but follow different accuracy specifications.
Intel IPP fixed-accuracy arithmetic functions may return status codes of the specific warnings listed in the table below. In this case, the value returned is positive and the computation is continued.
Value | Message | |
---|---|---|
IppStsOverflow | 12 | Overflow occurred in the operation. |
IppStsUnderflow | 17 | Underflow occurred in the operation. |
IppStsSingularity | 18 | Singularity occurred in the operation. |
IppStsDomain | 19 | Argument is out of the function domain. |
See appendix A "Handling of Special Cases" for more information on function operation in cases when their arguments take on specific values that are outside the range of function definition.
All functions described in this chapter support in-place operation.
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.