0x5f3759df
May. 22nd, 2010 06:35 amНачалось все с этого комикса и блестящего примера про 0x5f3759df.
В хрен знает каком году Пифагор открыл, что квадрат гипотенузы равен сумме квадратов катетов. Очень полезное, надо сказать, знание. А вот если у нас есть сумма квадратов ("катетов") и нужно найти не квадрат гипотенузы, а саму гипотенузу? Надо быстро вычислить обратный корень. В жизни не страшно если это займет на час больше, а если это надо сделать в компьютере, который должен эти корни сотни раз за секунду считать?
И тут - бинго!! На помощь приходит 0x5f3759df! Именно это (экспериментально, перебором полученное число) помогает _быстро_ вычислять квадратные корни 32-битовых чисел специальным алгоритмом.
Кому нахрен нужно это число в реальной жизни? Например, всем, кто играл в третий квейк. Именно там оно используется для графических рассчетов.
Знание, по "мощности" ненамного уступающее теореме Пифагора (а если посчитать количество раз, сколько применяли за всю историю теорему пифагора, и сколько раз вычисляются корни в квейке - то может быть и более часто используемое) и где впервые использовано - в несерьезной игрушке. Кто-то просто получил ТЗ, столкнулся с вычислительной проблемой, задумался над методами решения и... решил!
В хрен знает каком году Пифагор открыл, что квадрат гипотенузы равен сумме квадратов катетов. Очень полезное, надо сказать, знание. А вот если у нас есть сумма квадратов ("катетов") и нужно найти не квадрат гипотенузы, а саму гипотенузу? Надо быстро вычислить обратный корень. В жизни не страшно если это займет на час больше, а если это надо сделать в компьютере, который должен эти корни сотни раз за секунду считать?
И тут - бинго!! На помощь приходит 0x5f3759df! Именно это (экспериментально, перебором полученное число) помогает _быстро_ вычислять квадратные корни 32-битовых чисел специальным алгоритмом.
Кому нахрен нужно это число в реальной жизни? Например, всем, кто играл в третий квейк. Именно там оно используется для графических рассчетов.
Знание, по "мощности" ненамного уступающее теореме Пифагора (а если посчитать количество раз, сколько применяли за всю историю теорему пифагора, и сколько раз вычисляются корни в квейке - то может быть и более часто используемое) и где впервые использовано - в несерьезной игрушке. Кто-то просто получил ТЗ, столкнулся с вычислительной проблемой, задумался над методами решения и... решил!