Name | Synopsis | Description | Parameters | Return Values | Attributes | See Also
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);
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:
ATTRIBUTE TYPE |
ATTRIBUTE VALUE |
---|---|
Interface Stability |
Committed |
MT-Level |
MT-Safe |
Name | Synopsis | Description | Parameters | Return Values | Attributes | See Also