The code: /* sqrt() implementation: based on open source QUAKE3 code (magic sqrt implementation) by John Carmack. Returns sqrt of X. */
static double mcf_sqrt (double x) { #define MAGIC_CONST1 0x1fbcf800 #define MAGIC_CONST2 0x5f3759df union { int intPart; float floatPart; } convertor, convertor2; gcc_assert (x >= 0); convertor.floatPart = x; convertor2.floatPart = x; convertor.intPart = MAGIC_CONST1 + (convertor.intPart >> 1); convertor2.intPart = MAGIC_CONST2 - (convertor2.intPart >> 1); return 0.5f * (convertor.floatPart + (x * convertor2.floatPart)); } Read here: http://en.wikipedia.org/wiki/Fast_inverse_square_root http://www.beyond3d.com/content/articles/8/ -- Summary: comment about sqrt() implementation wrong: it is not from Carmack Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ich at az2000 dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45272