rockbox/apps/plugins/fft/math.c

14 lines
335 B
C
Raw Normal View History

#include "math.h"
int64_t fsqrt64(int64_t a, unsigned int fracbits)
{
int64_t b = a/2 + (1 << fracbits); /* initial approximation */
unsigned int n;
const unsigned int iterations = 3; /* very rough approximation */
for (n = 0; n < iterations; ++n)
b = (b + (((int64_t)(a) << fracbits)/b))/2;
return b;
}