Быстрый обратный квадрат двойного в C / C ++

Недавно я профилировал программу, в которой точка доступа определенно

double d = somevalue();
double d2=d*d;
double c = 1.0/d2   // HOT SPOT

Значение d2 не используется после, потому что мне нужно только значение c. Некоторое время назад я читал о методе быстрого обратного квадратного корня Кармака, это явно не тот случай, но мне интересно, могут ли подобные алгоритмы помочь мне вычислить 1 / x ^ 2.

Мне нужна довольно точная точность, я проверил, что моя программа не дает правильных результатов с опцией gcc -ffast-math. (G ++ - 4.5)

Ответы на вопрос(3)

Ваш ответ на вопрос