Mul
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 whenpSrc1,pSrc2orpDstpointer isNULL.
- ippStsSizeErr
- Indicates an error whenlenis 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 results:
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