Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference
A newer version of this document is available. Customers should click here to go to the newest version.
Arg
Computes the argument of vector elements.
Syntax
IppStatus ippsArg_32fc_A11(const Ipp32fc* pSrc, Ipp32f* pDst, Ipp32s len);
IppStatus ippsArg_32fc_A21(const Ipp32fc* pSrc, Ipp32f* pDst, Ipp32s len);
IppStatus ippsArg_32fc_A24(const Ipp32fc* pSrc, Ipp32f* pDst, Ipp32s len);
IppStatus ippsArg_64fc_A26(const Ipp64fc* pSrc, Ipp64f* pDst, Ipp32s len);
IppStatus ippsArg_64fc_A50(const Ipp64fc* pSrc, Ipp64f* pDst, Ipp32s len);
IppStatus ippsArg_64fc_A53(const Ipp64fc* pSrc, Ipp64f* pDst, Ipp32s len);
Include Files
ippvm.h
Domain Dependencies
Headers: ippcore.h
Libraries: ippcore.lib
Parameters
| pSrc | Pointer to the source vector. | 
| pDst | Pointer to the destination vector. | 
| len | Number of elements in the vectors. | 
Description
This function computes the argument of the vector pSrc elements and stores the result in the corresponding element of the vector pDst.
For single precision data:
function flavor ippsArg_32fc_A11 guarantees 11 correctly rounded bits of significand, or at least 3 exact decimal digits;
function flavor ippsArg_32fc_A21 guarantees 21 correctly rounded bits of significand, or 4 ulps, or about 6 exact decimal digits;
function flavor ippsArg_32fc_A24 guarantees 24 correctly rounded bits of significand, including the implied bit, with the maximum guaranteed error within 1 ulp.
For double precision data:
function flavor ippsArg_64fc_A26 guarantees 26 correctly rounded bits of significand, or 6.7E+7 ulps, or approximately 8 exact decimal digits;
function flavor ippsArg_64fc_A50 guarantees 50 correctly rounded bits of significand,or 4 ulps, or approximately 15 exact decimal digits;
function flavor ippsArg_64fc_A53 guarantees 53 correctly rounded bits of significand, including the implied bit, with the maximum guaranteed error within 1 ulp.
The computation is performed as follows:
pDst[n] = φ(pSrc1[n]), 0 ≤ n < len.
Return Values
| ippStsNoErr | Indicates no error. | 
| ippStsNullPtrErr | Indicates an error when pSrc1, pSrc2 or pDst pointer is NULL. | 
| ippStsSizeErr | Indicates an error when len is less than or equal to 0. | 
Example
The example below shows how to use the function ippsArg.
IppStatus ippsArg_32fc_A24_sample(void) {
	const Ipp32fc x[2] = {{+2.885,-1.809}, {-0.543,-2.809}};
	Ipp32fc  y[2];
	IppStatus st = ippsArg_32fc_A24( x, y, 2 );
	
	printf(" ippsArg_32fc_A24:\n");
	printf(" x = %+.3f%+.3f*i   %+.3f%+.3f*i \n", x[0].re, x[0].im, x[1].re, x[1].im);
	printf(" y = %+.3f          %+.3f%       \n", y[0],             y[1]);
	return st;
} 
   Output:
ippsArg_32fc_A24: x = +2.885-1.809*i -0.543-2.809*i y = -0.560 -1.762