IT-словарь › Программирование › Быстрый обратный квадратный корень

Быстрый обратный квадратный корень

Программирование Svenska → Обновлено: 2026-10-26

Битовый трюк, приближающий 1/√x: число с плавающей запятой читается как целое, вычитается из магической константы, и результат дорабатывается одним шагом Ньютона.

Игры постоянно нормализуют векторы — для освещения, отражений и физики, — а каждая нормализация требует 1/√x. На процессорах 1990-х медленными были и деление, и квадратный корень. Функция Q_rsqrt в Quake III Arena (1999) трактует биты числа IEEE 754 как целое: поле порядка при сдвиге вправо примерно вдвое уменьшает логарифм. Вычитание результата из 0x5F3759DF даёт грубую оценку, а одна итерация Ньютона — Рафсона снижает погрешность меньше чем до процента.

Известность трюк получил лишь в 2005 году, когда id Software открыла исходники — вместе с ныне легендарным комментарием // what the fuck?. Позже его происхождение проследили через 3dfx до Грега Уолша из Ardent Computer. В год выхода игры в x86 с SSE появилась инструкция rsqrtss, так что сегодня этот приём — скорее музейный экспонат.

← Назад к словарю