Показать сообщение отдельно
Старый 21.07.2007, 21:55   #4
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
Re: ATAN2 своими руками

в коде PAX'a:

atn1=32*x*x + 9*y*y;
atn=32*(x*y)/atn1;
(итого 6 умножений и одно деление)
плюс 4 условия (на 4 угла)

в моем:

одно деление и 7 условий (на 16 углов)


ИМХО тест не нужен ибо преимущество очевидно...

конечно можно себе представить ситуацию, когда все условия будут неправильно предсказаны предсказателем перехода и соот-но неправильно загружены в кеш, на что уйдут дополнительные такты, а механизм умножения представлен операционным усилителем и за один такт будет происходит ЦАП-Умножение-АЦП, то в этом случае мой механизм может конечно и проиграть, что на мой взгляд маловероятно...


PS Условия считал с точки зрения процессора при выполнении кода...

(Offline)
 
Ответить с цитированием