Быстрый обратный квадратный корень: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Содержимое удалено Содержимое добавлено
Mercury (обсуждение | вклад) |
Mercury (обсуждение | вклад) |
||
Строка 262:
При желании можно перебалансировать погрешность, умножив коэффициенты 1,5 и 0,5 на 1,0009, чтобы метод давал симметрично ±0,09 % — так поступили<ref name="i76" /> в игре [[Interstate ’76]], которая также делает итерацию метода Ньютона.
Константа Уолша 0x5F3759DF ↔{{efn|Здесь стрелка ↔ означает объяснённую выше биекцию двоичного представления целого числа и двоичного представления числа с плавающей запятой в формате [[IEEE 754]].}} 1,4324301·2<sup>63</sup> оказалась очень хорошей. Крис Ломонт и Мэттью Робертсон незначительно уменьшили<ref name="lomont">{{Cite web |url=http://www.lomont.org/Math/Papers/2003/InvSqrt.pdf |title=Архивированная копия |access-date=2019-08-25 |archive-date=2009-02-06 |archive-url=https://web.archive.org/web/20090206040806/http://lomont.org/Math/Papers/2003/InvSqrt.pdf |deadlink=no }}</ref><ref name="robertson" /> предельную относительную погрешность, отыскав перебором константу{{efn|name=aa|1=Неинтуитивное округление ''c''=1,432450084… до 1,4324500 на самом деле двойное: сначала к ближайшему двоичному (0x3FB75A86 ≈ 1,432450056), а потом к самому круглому десятичному — единица младшего разряда равняется 1,19·10<sup>−7</sup>, и 1,19·10<sup>−7</sup> / 2 &
Чех Ян Ка́длец [[двоичный поиск|двоичным поиском]], а затем перебором в окрестности найденного улучшил алгоритм<ref name="kadlec">{{Cite web |url=http://rrrola.wz.cz/inv_sqrt.html |title=Řrřlog :: Improving the fast inverse square root<!-- Заголовок добавлен ботом --> |access-date=2023-04-08 |archive-date=2023-04-08 |archive-url=https://web.archive.org/web/20230408222901/http://rrrola.wz.cz/inv_sqrt.html |deadlink=no }}</ref>. Его метод даёт в 1,3 раза меньшую симметричную погрешность — не ±0,09 %, а ±0,065.
|