3 int64_t fsqrt64(int64_t a
, unsigned int fracbits
)
5 int64_t b
= a
/2 + (1 << fracbits
); /* initial approximation */
7 const unsigned int iterations
= 3; /* very rough approximation */
9 for (n
= 0; n
< iterations
; ++n
)
10 b
= (b
+ (((int64_t)(a
) << fracbits
)/b
))/2;