![]() |
![]() |
Routines to multiply(element-wise) complex vectors. More...
Functions | |
void | mmwavelib_vecmul16x16 (int16_t *restrict x, const int16_t *restrict w, uint32_t nx) |
Function multiply two 16-bit complex vectors element by element. The math is as follows: for ( i=0; i < nx; i++) { outreal[i] = sat((inreal[i]*wreal[i]-inimag[i]*wimag[i]+0x4000)*2)/2^16; outimag[i] = sat((inreal[i]*wimag[i]+inimag[i]*wreal[i]+0x4000)*2)/2^16; }. More... | |
void | mmwavelib_vecmul16x32 (const int16_t *restrict x, int32_t *restrict w, int32_t *restrict y, uint32_t nx) |
Function performs element-wise complex multiplication on a 16bit vector and a 32bit vector. The math is as follows: for ( i=0; i < nx; i++) { yreal[i] = round(xreal[i]*wreal[i]/2^15)-round(ximag[i]*wimag[i]/2^15); yimag[i] = round(xreal[i]*wimag[i]/2^15)+round(ximag[i]*wreal[i]/2^15); }. More... | |
void | mmwavelib_vecmul16x32_anylen (const uint32_t *restrict x, int64_t *restrict w, int64_t *restrict y, uint32_t len) |
Function performs element-wise complex multiplication on a 16bit vector and a 32bit vector. The math is as follows: for ( i=0; i < nx; i++) { yreal[i] = round(xreal[i]*wreal[i]/2^15)-round(ximag[i]*wimag[i]/2^15); yimag[i] = round(xreal[i]*wimag[i]/2^15)+round(ximag[i]*wreal[i]/2^15); }. More... | |
void | mmwavelib_vecmul32x16c (const uint32_t x, int64_t *restrict w, int64_t *restrict y, uint32_t len) |
Function multiplies a 16bit complex constant to a 32bit complex vector. The math is as follows: for ( i=0; i < nx; i++) { yreal[i] = round(xreal*wreal[i]/2^15)-round(ximag*wimag[i]/2^15); yimag[i] = round(xreal*wimag[i]/2^15)+round(ximag*wreal[i]/2^15); }. More... | |
Routines to multiply(element-wise) complex vectors.