Functions
mmwavelib_vecmul.c File Reference

Routines to multiply(element-wise) complex vectors. More...

#include <stdint.h>
#include <c6x.h>
#include "mmwavelib_vecutils.h"

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

Detailed Description

Routines to multiply(element-wise) complex vectors.


Copyright 2018, Texas Instruments Incorporated