Я хотел бы вычислить синус и косинус значения вместе (например, чтобы создать матрицу вращения). Конечно, я мог бы вычислить их отдельно один за другим, например a = cos(x); b = sin(x);, но мне интересно, есть ли более быстрый способ, когда нужны оба значения.
Изменить:
Подводя итог ответам на данный момент:
[*]Влад сказал, что есть asm-команда FSINCOS вычисляет оба из них (почти за то же время, что и вызов только FSIN)
[*]Как Чи заметил, что эта оптимизация иногда уже выполняется компилятором (при использовании флагов оптимизации).
[*]caf указал Оказывается, функции sincos и sincosf, вероятно, доступны и могут быть вызваны напрямую, просто включив math.h
[*]
tanascius подход к использованию справочной таблицы вызывает споры. (Однако на моем компьютере и в тестовом сценарии он работает в 3 раза быстрее, чем sincos, с почти такой же точностью для 32-битных чисел с плавающей запятой.)
[*]
Джоэл Гудвин рассказал об интересном методе чрезвычайно быстрой аппроксимации с довольно хорошей точностью (для меня это даже быстрее, чем поиск по таблице)
Подробнее здесь: https://stackoverflow.com/questions/268 ... s-together
Какой самый быстрый способ вычислить sin и cos вместе? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как gcc может оптимизировать отдельные вызовы sin(x) и cos(x) в отдельные sincos?
Anonymous » » в форуме C++ - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как gcc может оптимизировать отдельные вызовы sin(x) и cos(x) в отдельные sincos?
Anonymous » » в форуме C++ - 0 Ответы
- 34 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как gcc может оптимизировать отдельные вызовы sin(x) и cos(x) в отдельные sincos?
Anonymous » » в форуме C++ - 0 Ответы
- 31 Просмотры
-
Последнее сообщение Anonymous
-