Как приблизиться к sqrt(float32bit x)
, если я знаю, что x<=1
?Быстрое приближение square_root (x) с известным 0 <= x <= 1
Должны быть некоторые приемы для использования диапазона x<=1
.
Результат возврата не обязательно должен быть точным, максимальная погрешность может быть <0.001
.
(0.001
это просто магическое число, вы можете изменить его.)
Я не против языка, но я предпочитаю C++, в CPU (не GPU).
Я думаю, что явная формула лучше, чем таблица поиска.
Он полезен для частиц в моей 3D-игре (VS 2015 + Ogre3D + Bullet), и я не могу найти подсказки об этом.
Я сомневаюсь, что причиной бури-нисходящего ветра является то, что это похоже на задание/интервью?
... или решение уже хорошо известно?
Проверьте [быстрый обратный квадратный корень] (https://en.wikipedia.org/wiki/Fast_inverse_square_root). –
@ Mark Ransom Зависит от платформы? – javaLover
@ javaLover Нет эффективной, стандартно-совместимой реализации этого трюка, но она достаточно переносима. –