Visible to Intel only — GUID: GUID-70FBF20B-5139-45B1-943B-915514D3439C
Visible to Intel only — GUID: GUID-70FBF20B-5139-45B1-943B-915514D3439C
DotProd
Computes the dot product of two vectors.
Syntax
IppStatus ippsDotProd_32f(const Ipp32f* pSrc1, const Ipp32f* pSrc2, int len, Ipp32f* pDp);
IppStatus ippsDotProd_32fc(const Ipp32fc* pSrc1, const Ipp32fc* pSrc2, int len, Ipp32fc* pDp);
IppStatus ippsDotProd_32f32fc(const Ipp32f* pSrc1, const Ipp32fc* pSrc2, int len, Ipp32fc* pDp);
IppStatus ippsDotProd_32f64f(const Ipp32f* pSrc1, const Ipp32f* pSrc2, int len, Ipp64f* pDp);
IppStatus ippsDotProd_32fc64fc(const Ipp32fc* pSrc1, const Ipp32fc* pSrc2, int len, Ipp64fc* pDp);
IppStatus ippsDotProd_32f32fc64fc(const Ipp32f* pSrc1, const Ipp32fc* pSrc2, int len, Ipp64fc* pDp);
IppStatus ippsDotProd_64f(const Ipp64f* pSrc1, const Ipp64f* pSrc2, int len, Ipp64f* pDp);
IppStatus ippsDotProd_64fc(const Ipp64fc* pSrc1, const Ipp64fc* pSrc2, int len, Ipp64fc* pDp);
IppStatus ippsDotProd_64f64fc(const Ipp64f* pSrc1, const Ipp64fc* pSrc2, int len, Ipp64fc* pDp);
IppStatus ippsDotProd_16s64s(const Ipp16s* pSrc1, const Ipp16s* pSrc2, int len, Ipp64s* pDp);
IppStatus ippsDotProd_16sc64sc(const Ipp16sc* pSrc1, const Ipp16sc* pSrc2, int len, Ipp64sc* pDp);
IppStatus ippsDotProd_16s16sc64sc(const Ipp16s* pSrc1, const Ipp16sc* pSrc2, int len, Ipp64sc* pDp);
IppStatus ippsDotProd_16s32f(const Ipp16s* pSrc1, const Ipp16s* pSrc2, int len, Ipp32f* pDp);
IppStatus ippsDotProd_32s_Sfs(const Ipp32s* pSrc1, const Ipp32s* pSrc2, int len, Ipp32s* pDp, int scaleFactor);
IppStatus ippsDotProd_16s32s_Sfs(const Ipp16s* pSrc1, const Ipp16s* pSrc2, int len, Ipp32s* pDp, int scaleFactor);
IppStatus ippsDotProd_16s32s32s_Sfs(const Ipp16s* pSrc1, const Ipp32s* pSrc2, int len, Ipp32s* pDp, int scaleFactor);
Include Files
ipps.h
Domain Dependencies
Headers: ippcore.h, ippvm.h
Libraries: ippcore.lib, ippvm.lib
Parameters
pSrc1 |
Pointer to the first vector to compute the dot product value. |
pSrc2 |
Pointer to the second vector to compute the dot product value. |
pDp |
Pointer to the output result. |
len |
Number of elements in the vector. |
scaleFactor |
Scale factor, refer to Integer Scaling. |
Description
This function computes the dot product (scalar value) of two vectors, pSrc1 and pSrc2, and stores the result in pDp.
The computation is performed as follows:
To compute the dot product of complex data, use the function ippsConj to conjugate one of the operands. The vectors pSrc1 and pSrc2 must be of equal length.
Return Values
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when the pDp, pSrc1, or pSrc2 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 ippsDotProd_64f to verify orthogonality of the sine and cosine functions. Two vectors are orthogonal to each other when the dot product of the two vectors is zero.
void dotprod(void) { Ipp64f x[10], dp; int n; for (n = 0; n<10; ++n) x[n] = sin(IPP_2PI * n / 8); ippsDotProd_64f(x, x+2, 8, &dp); printf_64f("dp =", &dp, 1, ippStsNoErr); }
Output:
dp = 0.000000 Matlab* Analog: >> n = 0:9; x = sin(2*pi*n/8); a = x(1:8); b = x(3:10); a*b'