cc [ flag... ] file... –lmlib [ library... ] #include <mlib.h> mlib_status mlib_VectorDotProd_U8_Sat(mlib_d64 *z, const mlib_u8 *x, const mlib_u8 *y, mlib_s32 n);
mlib_status mlib_VectorDotProd_U8C_Sat(mlib_d64 *z, const mlib_u8 *x, const mlib_u8 *y, mlib_s32 n);
mlib_status mlib_VectorDotProd_S8_Sat(mlib_d64 *z, const mlib_s8 *x, const mlib_s8 *y, mlib_s32 n);
mlib_status mlib_VectorDotProd_S8C_Sat(mlib_d64 *z, const mlib_s8 *x, const mlib_s8 *y, mlib_s32 n);
mlib_status mlib_VectorDotProd_S16_Sat(mlib_d64 *z, const mlib_s16 *x,const mlib_s16 *y, mlib_s32 n);
mlib_status mlib_VectorDotProd_S16C_Sat(mlib_d64 *z, const mlib_s16 *x, const mlib_s16 *y, mlib_s32 n);
mlib_status mlib_VectorDotProd_S32_Sat(mlib_d64 *z, const mlib_s32 *x, const mlib_s32 *y, mlib_s32 n);
mlib_status mlib_VectorDotProd_S32C_Sat(mlib_d64 *z, const mlib_s32 *x, const mlib_s32 *y, mlib_s32 n);
Each of these functions computes the dot product of two vectors, defined by the following equation:
Z = X . Y*
where Y* is the conjugate of the Y vector.
For real data, the following equation is used:
n-1 z[0] = SUM (x[i]*y[i]) i=0
For complex data, the following equation is used:
n-1 z[0] = SUM (x[2*i]*y[2*i] + x[2*i + 1]*y[2*i + 1]) i=0 n-1 z[1] = SUM (x[2*i + 1]*y[2*i] - x[2*i]*y[2*i + 1]) i=0
Each of the functions takes the following arguments:
Pointer to the dot product of the two vectors.
Pointer to the first element of the first source vector.
Pointer to the first element of the second source vector.
Number of elements in the vectors.
Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:
|