Sub
Sub
Performs element by element subtraction of one vector from another.
Syntax
IppStatus ippsSub_32f_A24 (const Ipp32f*
pSrc1
, const Ipp32f*
pSrc2
, Ipp32f*
pDst
, Ipp32s
len
);
IppStatus ippsSub_64f_A53 (const Ipp64f*
pSrc1
, const Ipp64f*
pSrc2
, Ipp64f*
pDst
, Ipp32s
len
);
IppStatus ippsSub_32fc_A24 (const Ipp32fc*
pSrc1
, const Ipp32fc*
pSrc2
, Ipp32fc*
pDst
, Ipp32s
len
);
IppStatus ippsSub_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 subtraction of the vector
pSrc2
from the vector pSrc1
, and stores the result in the corresponding element of the vector pDst
.For single precision data:
function flavors
ippsSub_32f_A24
and ippsSub_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 flavors
ippsSub_64f_A53
and ippsSub_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]) - (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
ippsSub
.IppStatus ippsSub_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 = ippsSub_32f_A24( x1, x2, y, 4 );
printf(" ippsSub_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:
ippsSub_32f_A24:
x1 = +4.885 -0.543 -3.809 -4.953
x2 = -0.543 -3.809 -4.953 +4.885
y = +5.428 +3.266 +1.144 -9.838