Visible to Intel only — GUID: GUID-B912F903-0870-4DD2-BFC4-0878DCD11B57
Visible to Intel only — GUID: GUID-B912F903-0870-4DD2-BFC4-0878DCD11B57
Mul
Performs element by element multiplication of two vectors.
Syntax
IppStatus ippsMul_32f_A24 (const Ipp32f* pSrc1, const Ipp32f* pSrc2, Ipp32f* pDst, Ipp32s len);
IppStatus ippsMul_64f_A53 (const Ipp64f* pSrc1, const Ipp64f* pSrc2, Ipp64f* pDst, Ipp32s len);
IppStatus ippsMul_32fc_A11 (const Ipp32fc* pSrc1, const Ipp32fc* pSrc2, Ipp32fc* pDst, Ipp32s len);
IppStatus ippsMul_32fc_A21 (const Ipp32fc* pSrc1, const Ipp32fc* pSrc2, Ipp32fc* pDst, Ipp32s len);
IppStatus ippsMul_32fc_A24 (const Ipp32fc* pSrc1, const Ipp32fc* pSrc2, Ipp32fc* pDst, Ipp32s len);
IppStatus ippsMul_64fc_A26 (const Ipp64fc* pSrc1, const Ipp64fc* pSrc2, Ipp64fc* pDst, Ipp32s len);
IppStatus ippsMul_64fc_A50 (const Ipp64fc* pSrc1, const Ipp64fc* pSrc2, Ipp64fc* pDst, Ipp32s len);
IppStatus ippsMul_64fc_A53 (const Ipp64fc* pSrc1, const Ipp64fc* pSrc2, Ipp64fc* pDst, Ipp32s len);
Include Files
ippvm.h
Domain Dependencies
Headers: ippcore.h
Libraries: ippcore.lib
Parameters
pSrc1 |
Pointer to the first source vector. |
pSrc2 |
Pointer to the second source vector. |
pDst |
Pointer to the destination vector. |
len |
Number of elements in the vectors. |
Description
This function performs element by element multiplication of the vectors pSrc1 and pSrc2, and stores the result in the corresponding element of the vector pDst.
For single precision data:
function flavor ippsMul_32fc_A11 guarantees 11 correctly rounded bits of significand, or at least 3 exact decimal digits;
function flavor ippsMul_32fc_A21 guarantees 21 correctly rounded bits of significand, or 4 ulps, or about 6 exact decimal digits;
function flavors ippsMul_32f_A24 and ippsMul_32fc_A24 guarantee 24 correctly rounded bits of significand, including the implied bit, with the maximum guaranteed error within 1 ulp.
For double precision data:
function flavor ippsMul_64fc_A26 guarantees 26 correctly rounded bits of significand, or 6.7E+7 ulps, or approximately 8 exact decimal digits;
function flavor ippsMul_64fc_A50 guarantees 50 correctly rounded bits of significand, or 4 ulps, or approximately 15 exact decimal digits;
function flavors ippsMul_64f_A53 and ippsMul_64fc_A53 guarantee 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]) x (pSrc2[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 ippsMul.
IppStatus ippsMul_32f_A24_sample(void) { const Ipp32f x1[4] = {+4.885, -0.543, -3.809, -4.953}; const Ipp32f x2[4] = {-0.543, -3.809, -4.953, +4.885}; Ipp32f y[4]; IppStatus st = ippsMul_32f_A24( x1, x2, y, 4 ); printf(" ippsMul_32f_A24:\n"); printf(" x1 = %+.3f %+.3f %+.3f %+.3f \n", x1[0], x1[1], x1[2], x1[3]); printf(" x2 = %+.3f %+.3f %+.3f %+.3f \n", x2[0], x2[1], x2[2], x2[3]); printf(" y = %+.3f %+.3f %+.3f %+.3f \n", y[0], y[1], y[2], y[3]); return st; }
Output:
ippsMul_32f_A24: x1 = +4.885 -0.543 -3.809 -4.953 x2 = -0.543 -3.809 -4.953 +4.885 y = -2.653 +2.068 +18.866 -24.195