Telegram Group & Telegram Channel
25 лет тому назад мир впервые увидел Quake III Arena!
и при чем тут Быстрый обратный квадратный корень

19 сентября 1999 года мир впервые увидел Quake III Arena — игру, где виртуальные воины сражались в трёхмерных аренах. Но мало кто знал, что под капотом этой легенды скрывался алгоритм, навсегда изменивший представление о скорости вычислений.

В тот день в исходном коде id Software появилась функция с комментарием «зловещий хакинг чисел с плавающей запятой». Её авторы даже не подозревали, что их трюк станет легендой программирования:
i = 0x5f3759df - (i >> 1); // какого чёрта?


Этот код — сердце Fast Inverse Square Root, алгоритма для быстрого вычисления обратного квадратного корня. В эпоху, когда процессоры едва справлялись с 3D-графикой, он позволял рассчитывать освещение и траектории в десятки раз быстрее стандартных методов. Но как он работал? И почему до сих пор о нём говорят?

Тайна «магического числа»
В 2005 году исходный код Quake III стал открытым. Сообщество ахнуло: функция Q_rsqrt использовала битовые операции и загадочную константу 0x5f3759df. Программисты ломали голову: как преобразование целого числа в float может дать приближение обратного квадратного корня?

Объяснение звучало как магия:
1️⃣ Число с плавающей запятой разбирали на биты.
2️⃣ Сдвигали их вправо (делили на 2) и вычитали из «магического» числа.
3️⃣ Собирали обратно в float.

«Это как взять логарифм, умножить его на -0.5 и снова получить число», — шутили математики. Но за кулисами скрывался гениальный трюк: битовое представление float интерпретировали как целое число, что позволяло аппроксимировать результат через экспоненту и мантиссу.

Грег Уолш, создатель алгоритма, позже признался:
«Мы искали способ убрать деление. Оказалось, всё решила пара битовых операций и метод Ньютона».


«Касательная, которая спасла Quake»
Первое приближение было грубым. Чтобы уточнить его, разработчики использовали метод Ньютона-Рафсона — итерационную формулу:

y = y * (1.5 - (x * 0.5 * y * y));

Всего один шаг — и погрешность сокращалась с 2% до 0.001%. Этого хватало, чтобы рендерить 60 кадров в секунду на Pentium III.
«Пол, посмотри! Мы заменили сотни операций тремя строчками кода»
— возможно, так воскликнул программист id Software, запуская тесты.

В 1999 году алгоритм казался чудом. Но к 2020-м годам всё изменилось. Современные процессоры обзавелись инструкциями вроде rsqrtss, которые вычисляют обратный квадратный корень за такт. Тесты показали: на Intel Core i9 Fast Inverse Square Root в 4 раза медленнее аппаратной реализации.

Зачем тогда о нём помнить?
1️⃣ Гениальная простота. Алгоритм учит думать «вне рамок» — использовать биты как данные и как инструкции.
2️⃣ Исторический код. Без него игры вроде Quake III не смогли бы работать на слабых PC 90-х.
3️⃣ Вдохновение. Даже сегодня разработчики встраивают этот метод в микроконтроллеры без FPU.

Его алгоритм стал мостом между эпохами. В 1999-м он позволил железу выжать максимум, а сегодня напоминает: иногда гениальность кроется в одной строчке кода. Пусть даже с комментарием «какого чёрта?».

#АйтишныеБайки #IT #история #Quake
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍73



group-telegram.com/BalticAnalyst/350
Create:
Last Update:

25 лет тому назад мир впервые увидел Quake III Arena!
и при чем тут Быстрый обратный квадратный корень

19 сентября 1999 года мир впервые увидел Quake III Arena — игру, где виртуальные воины сражались в трёхмерных аренах. Но мало кто знал, что под капотом этой легенды скрывался алгоритм, навсегда изменивший представление о скорости вычислений.

В тот день в исходном коде id Software появилась функция с комментарием «зловещий хакинг чисел с плавающей запятой». Её авторы даже не подозревали, что их трюк станет легендой программирования:

i = 0x5f3759df - (i >> 1); // какого чёрта?


Этот код — сердце Fast Inverse Square Root, алгоритма для быстрого вычисления обратного квадратного корня. В эпоху, когда процессоры едва справлялись с 3D-графикой, он позволял рассчитывать освещение и траектории в десятки раз быстрее стандартных методов. Но как он работал? И почему до сих пор о нём говорят?

Тайна «магического числа»
В 2005 году исходный код Quake III стал открытым. Сообщество ахнуло: функция Q_rsqrt использовала битовые операции и загадочную константу 0x5f3759df. Программисты ломали голову: как преобразование целого числа в float может дать приближение обратного квадратного корня?

Объяснение звучало как магия:
1️⃣ Число с плавающей запятой разбирали на биты.
2️⃣ Сдвигали их вправо (делили на 2) и вычитали из «магического» числа.
3️⃣ Собирали обратно в float.

«Это как взять логарифм, умножить его на -0.5 и снова получить число», — шутили математики. Но за кулисами скрывался гениальный трюк: битовое представление float интерпретировали как целое число, что позволяло аппроксимировать результат через экспоненту и мантиссу.

Грег Уолш, создатель алгоритма, позже признался:
«Мы искали способ убрать деление. Оказалось, всё решила пара битовых операций и метод Ньютона».


«Касательная, которая спасла Quake»
Первое приближение было грубым. Чтобы уточнить его, разработчики использовали метод Ньютона-Рафсона — итерационную формулу:

y = y * (1.5 - (x * 0.5 * y * y));

Всего один шаг — и погрешность сокращалась с 2% до 0.001%. Этого хватало, чтобы рендерить 60 кадров в секунду на Pentium III.
«Пол, посмотри! Мы заменили сотни операций тремя строчками кода»
— возможно, так воскликнул программист id Software, запуская тесты.

В 1999 году алгоритм казался чудом. Но к 2020-м годам всё изменилось. Современные процессоры обзавелись инструкциями вроде rsqrtss, которые вычисляют обратный квадратный корень за такт. Тесты показали: на Intel Core i9 Fast Inverse Square Root в 4 раза медленнее аппаратной реализации.

Зачем тогда о нём помнить?
1️⃣ Гениальная простота. Алгоритм учит думать «вне рамок» — использовать биты как данные и как инструкции.
2️⃣ Исторический код. Без него игры вроде Quake III не смогли бы работать на слабых PC 90-х.
3️⃣ Вдохновение. Даже сегодня разработчики встраивают этот метод в микроконтроллеры без FPU.

Его алгоритм стал мостом между эпохами. В 1999-м он позволил железу выжать максимум, а сегодня напоминает: иногда гениальность кроется в одной строчке кода. Пусть даже с комментарием «какого чёрта?».

#АйтишныеБайки #IT #история #Quake

BY Аналитик на Балтике | Всё о карьере в IT




Share with your friend now:
group-telegram.com/BalticAnalyst/350

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

"The argument from Telegram is, 'You should trust us because we tell you that we're trustworthy,'" Maréchal said. "It's really in the eye of the beholder whether that's something you want to buy into." On February 27th, Durov posted that Channels were becoming a source of unverified information and that the company lacks the ability to check on their veracity. He urged users to be mistrustful of the things shared on Channels, and initially threatened to block the feature in the countries involved for the length of the war, saying that he didn’t want Telegram to be used to aggravate conflict or incite ethnic hatred. He did, however, walk back this plan when it became clear that they had also become a vital communications tool for Ukrainian officials and citizens to help coordinate their resistance and evacuations. In February 2014, the Ukrainian people ousted pro-Russian president Viktor Yanukovych, prompting Russia to invade and annex the Crimean peninsula. By the start of April, Pavel Durov had given his notice, with TechCrunch saying at the time that the CEO had resisted pressure to suppress pages criticizing the Russian government. "There are a lot of things that Telegram could have been doing this whole time. And they know exactly what they are and they've chosen not to do them. That's why I don't trust them," she said. The company maintains that it cannot act against individual or group chats, which are “private amongst their participants,” but it will respond to requests in relation to sticker sets, channels and bots which are publicly available. During the invasion of Ukraine, Pavel Durov has wrestled with this issue a lot more prominently than he has before. Channels like Donbass Insider and Bellum Acta, as reported by Foreign Policy, started pumping out pro-Russian propaganda as the invasion began. So much so that the Ukrainian National Security and Defense Council issued a statement labeling which accounts are Russian-backed. Ukrainian officials, in potential violation of the Geneva Convention, have shared imagery of dead and captured Russian soldiers on the platform.
from ca


Telegram Аналитик на Балтике | Всё о карьере в IT
FROM American