Как приблизить sqrt(float32bit x)
если я знаю что x<=1
?
Там должны быть некоторые хитрости, чтобы использовать диапазон x<=1
,
Возвращаемый результат не должен быть точным, максимальная ошибка может быть <0.001
,
(0.001
это просто магическое число, вы можете изменить его.)
Я не против языка, но я предпочитаю C ++, в CPU (а не в GPU).
Я думаю, что явная формула лучше, чем поиск по таблице.
Это полезно для частиц в моей 3D-игре (VS 2015 + Ogre3D + Bullet), и я не могу найти никакой подсказки об этом.
Я сомневаюсь, что причина отрицательного шторма в том, что это похоже на задание / интервью?
… или решение уже известно?
Квадратные корни обычно вычисляются через FSQRT который становится все быстрее. Это единственная инструкция, которую вы практически не можете выполнить. Например, быстрый обратный квадратный корень не поможет, если вы не сможете напрямую использовать его результат. Если вам придется снова его инвертировать, то только для этого FDIV потребуется примерно столько же времени, сколько для FSQRT.
Других решений пока нет …