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.
Sqr
Performs element by element squaring of the vector.
Syntax
IppStatus ippsSqr_32f_A24 (const Ipp32f* pSrc, Ipp32f* pDst, Ipp32s len);
IppStatus ippsSqr_64f_A53 (const Ipp64f* 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 performs element by element squaring of the vector pSrc, and stores the result in the corresponding element of pDst.
For single precision data:
function flavor ippsSqr_32f_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 ippsSqr_64f_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] = (pSrc[n])2, 0 ≤ n < len.
Return Values
| ippStsNoErr | Indicates no error. | 
| ippStsNullPtrErr | Indicates an error when pSrc 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 ippsSqr.
IppStatus ippsSqr_32f_A24_sample(void) {
	const Ipp32f x[4] = {+4.885, -0.543, -3.809, -4.953};
	Ipp32f  y[4];
	IppStatus st = ippsSqr_32f_A24( x, y, 4 );
	
	printf(" ippsSqr_32f_A24:\n");
	printf(" x = %+.3f %+.3f %+.3f %+.3f \n", x[0], x[1], x[2], x[3]);
	printf(" y = %+.3f %+.3f %+.3f %+.3f \n", y[0], y[1], y[2], y[3]);
	return st;
} 
   Output:
ippsSqr_32f_A24: x = +4.885 -0.543 -3.809 -4.953 y = +23.863 +0.295 +14.508 +24.532