Functions
mmwavelib_vecutils.h File Reference

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...
 

Detailed Description

Header file for vector utility mmwavelib library routines.


Copyright 2018, Texas Instruments Incorporated