Dec. 2nd, 2006

kibirov: (Default)
Сайт киноцентра в Гранд-ривере не перестаёт радовать новшествами.
Который день на месте афиши висит вот это:



Примечательно, что фильмов заявлено целых два, и можно потыкать по ссылочкам - хочешь, узнай про фильм 777, хочешь - про 888...
Серьёзная, видать, компания этот "Матодор" (через О, ей-богу!), раз полагает, что даже отходы творческой мысли её веб-дизайнеров могут служить лицом приличного заведения...

1/sqrt(x)

Dec. 2nd, 2006 10:40 am
kibirov: (Default)
Код на С для вычисления сабжа:

float InvSqrt(float x)
{
float xhalf = 0.5f*x;
int i = *(int*)&x; // get bits for floating value
i = 0x5f3759df - (i>>1); // gives initial guess
x = *(float*)&i; // convert bits back to float
x = x*(1.5f-xhalf*x*x); // Newton step, repeating increases accuracy
return x;
}

Авва рассказал про статью (pdf), в которой этот код исследуется как некая невесть откуда взявшаяся данность, а в комментах там есть ссылка на историю поиска авторов этой великолепной миниатюры.
Читается как офигенский детектив - какой там к чёрту код да Винчи ;))

В двух словах: обратный квадратный корень - такая штука, которая должна быстро и в больших количествах вычисляться, допустим, при построении 3d-изображений для игр типа третьего дума.
Приведённый код вычисляет эту замысловатую функцию в два приёма, причём выполняя простейшие операции с целыми числами.
В итоге армия оболтусов, даже не знающих, что такое квадратный корень, может до потери пульса резаться в красивые три дэ шутеры и вообще ощущать себя богами виртуального пространства :)
Хотя боги - вот они... пять строчек, чёрт побери! :)

Кстати, Ева - это ещё и к вопросу о том, зачем программистам высшая математика :) Посмотри, посмотри материалы по ссылочкам, хотя бы просто для ознакомления ;)

Profile

kibirov: (Default)
kibirov

December 2011

S M T W T F S
     12 3
4 5 6 7 8 9 10
11 12 13 14 15 1617
18 19 20 21 22 23 24
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 23rd, 2025 11:04 am
Powered by Dreamwidth Studios