Современные процессоры Intel / AMD имеют инструкцию FSINCOS
для одновременного расчета функций синуса и косинуса. Если вам нужна сильная оптимизация, возможно, вам следует использовать ее.
Вот небольшой пример: http://home.broadpark.no/~alein/fsincos.html
Вот еще один пример (для MSVC): http://www.codeguru.com/forum/showthread.php?t=328669
Вот еще один пример (с gcc): http://www.allegro.cc/forums/thread/588470
Надеюсь, один из них поможет.
(Я сам не использовал эту инструкцию, извините.)
Поскольку они поддерживаются на уровне процессора, я ожидаю, что они будут намного быстрее, чем поиск таблиц.
Edit:
Википедия предполагает, что FSINCOS
было добавлено на 387 процессорах, поэтому вы вряд ли найдете процессор, который его не поддерживает.
Edit:
Документация Intel гласит, что FSINCOS
примерно в 5 раз медленнее, чем FDIV
(то есть деление с плавающей запятой).
Edit:
Обратите внимание, что не все современные компиляторы оптимизируют вычисление синуса и косинуса в вызове FSINCOS
. В частности, мой VS 2008 не делал этого таким образом.
Edit:
Ссылка на первый пример не работает, но на Wayback Machine все еще есть версия .