Как вычисляют квадратный корень в Quake 3
прикольна... ктож это изначально всетаки придумал?
вообще, имхо, ничего удивительного нет. ну, естественно, что обходясь более грубым приближением, получается считать быстрее. чего такого?
ну такого то, что пара операций с волшебным числом и всегда получаем 1/корень из X с точностью до 3 знака, независимо от X
и что тут необычного?
В новинку, наверное, воспринимается метод разложения степенной функции в ряд тейлора
причем лучше профессора
ну подогнали опытным путем константу под лучшую точность
причем лучше профессораДык там же написано - профессор долго пытался найти Нужное Число аналитически, потом забил и написал перебор, который ему нашёл даже более правильное число, чем было в оригинале. Подозреваю, что Кармак заморачивался намного меньше и написал перебор сразу.
Собственно, видна разница в подходах у учёного-теоретика и нормального ИТ-специалиста: последний точно знает, что думать должен компьютер! =)
ИТ-специалист с таким подходом "зависнет" на втором измерении
Не, ну понятно что человеку думать тоже нужно. Грамотный перебор написать - это не сабак потравить.
Дык там же написано - профессор долго пытался найти Нужное Число аналитически, потом забил и написал перебор, который ему нашёл даже более правильное число, чем было в оригинале. Подозреваю, что Кармак заморачивался намного меньше и написал перебор сразу.Вообще-то, вроде бы Кармак даже близко не автор этого кода.
http://www.beyond3d.com/content/articles/8/
http://www.beyond3d.com/content/articles/15/
Ardent's Titan graphics minicomputer was having a hard time reaching its performance claims, and Greg initially engineered the fast 1/sqrt(x) as a means to speed up software running on the computer that couldn't utilise the vector hardware. At the time, Greg was working with Cleve Moler, MathWorks founder and author of MatLab, at Ardent. It's from working with Cleve that Greg got the initial seed of the idea to write the function. Cleve at the time was investigating using N-R iteration for approximation, and Greg also wrote 1/cuberoot(x) for the Titan in the same period using similar (but more complex) methods.Молер, кстати, как раз таки профессор, гыгы
Так вот откуда овербонсы взялись!
Так вот откуда овербонсы взялись!неа
кстати интересно узнать, откуда=)
Оставить комментарий
vook
На ЧМ-ах такого почему-то не рассказывают...http://www.codemaestro.com/reviews/review00000105.html