Hi,all:

I am using 5775K to do some study,and I find that the code below cost me about 200ms,especially calculate the sum of square and the function sqrt ,how can I do to improve calculation speed? Thank you!!!#5775k

void calc_magnitude_doppler( fft_value_t* inAddr, magnitude_t* outAddr){

fft_value_t real, img;

uint64_t quad;

double sqroot;

uint16_t x, y;

uint32_t MAX,MIN;

for(y=0; y<FFT_NUM_SAMPLES; y++){

// Do it for one chirp

for(x=0;x<FFT_NUM_CHIRPS;x++){

// Pointer to values

real = *(inAddr + (x * FFT_NUM_SAMPLES * 2));

img = *(inAddr + (x * FFT_NUM_SAMPLES * 2) + 1);

// Calculate magnitude

**quad = (uint64_t)((int64_t)real*real + (int64_t)img*img);****sqroot = sqrt((double)quad);**

//sqroot = (double)new_sqrt((float)quad);

// Save Value

*(outAddr) = (magnitude_t)sqroot;

// Adjust pointer

outAddr++;

}

// Adjust Pointer

inAddr+=2;

}

}

You can make a poly fit or look table of sqrt function instead of directly executing it.