![]() |
![]() |
Header file for vector utility mmwavelib library routines. More...
Functions | |
void | mmwavelib_accum16 (const uint16_t inp[restrict], uint16_t out[restrict], uint32_t len) |
Function mmwavelib_accum16 accumlates input vector to the output vector. It is the optimized implementation of the for loop: for ( idx=0; idx<len; idx++ ) { out[idx] += inp[idx];//addition saturated to 0xFFFF }. More... | |
void | mmwavelib_accum16to32 (const int16_t input[restrict], int32_t output[restrict], uint32_t len) |
Function accumlates(adds) 16-bit input vector to the 32-bit output vector. It is the optimized implementation of the for loop: for ( i = 0; i < len; i++ ) { output[i] += input[i]; }. More... | |
void | mmwavelib_vecsum (const int16_t input[restrict], int32_t output[restrict], int32_t ncplx) |
Function Name : mmwavelib_vecsum. More... | |
void | mmwavelib_vecsubc (int16_t *restrict input, int16_t *restrict output, const uint32_t subval, int32_t ncplx) |
Function Name : mmwavelib_vecsubc. More... | |
void | mmwavelib_vecsub16 (int16_t *restrict input1, int16_t *restrict input2, int16_t *restrict output, int32_t len) |
Function Name : mmwavelib_vecsub16. More... | |
void | mmwavelib_shiftright16 (int16_t input[restrict], int16_t output[restrict], uint8_t numshift, uint32_t len) |
Function shifts each signed 16-bit element in vector right by k bits. The math is as follows: for ( i=0; i < len; i++) { output[i] = input[i]>>k; }. More... | |
void | mmwavelib_shiftright32 (int32_t input[restrict], int32_t output[restrict], uint8_t numshift, uint32_t len) |
Function shifts each signed 32-bit word in vector right by k bits. The math is as follows: for ( i=0; i < len; i++) { output[i] = input[i]>>k; }. More... | |
void | mmwavelib_shiftright32to16 (int32_t input[restrict], int16_t output[restrict], uint8_t numshift, uint32_t len) |
Function shifts each signed 32-bit word in vector right by k bits, and store the lower 16bits only. The math is as follows: for ( i=0; i < len; i++) { output[i] = (int16_t)(input[i]>>k); }. More... | |
void | mmwavelib_histogram (uint16_t input[restrict], uint16_t hist[restrict], uint16_t histTemp[restrict], uint32_t inpLen, uint32_t histLen, uint8_t numshift) |
Function calculates the histogram of the right-shifted input array The math is as follows: for ( i=0; i < len; i++) { hist[input[i]>>k] ++; }. More... | |
int32_t | mmwavelib_vecsumabs (const int16_t input[], int32_t len) |
Function Name : mmwavelib_vecsumabs. More... | |
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... | |
int32_t | mmwavelib_maxpow (const int32_t *restrict input, int32_t Ncplx, float32_t *maxpow) |
Function Name : mmwavelib_maxpow. More... | |
int32_t | mmwavelib_powerAndMax (const int32_t *restrict input, int32_t Ncplx, float32_t *restrict outpowbuf, float32_t *maxpow) |
Function Name : mmwavelib_powerAndMax. More... | |
uint16_t | mmwavelib_multiPeakSearch (float32_t *x, uint16_t *peakIdxBuf, int32_t len, float32_t thresholdScale) |
Function Name : mmwavelib_multiPeakSearch. More... | |
int32_t | mmwavelib_secondPeakSearch (float32_t *x, int32_t len, int32_t maxIdx) |
Function Name : mmwavelib_secondPeakSearch. More... | |
void | mmwavelib_power_float (float32_t *restrict input, int32_t Ncplx, float32_t *restrict outpowbuf) |
Function Name : mmwavelib_power_float. More... | |
void | mmwavelib_dcRemovalFloat (uint32_t ncplx, float32_t *input, float32_t *output) |
Function Name : mmwavelib_dcRemovalFloat. More... | |
Header file for vector utility mmwavelib library routines.