В библиотеке C math.h
был sincos
функция, которая была довольно эффективной, потому что она вычисляла и синус, и косинус за время, близкое к одному вызову sin()
или же cos()
чем общее время вызова обоих.
Есть ли такая функция в стандартной библиотеке C ++?
Нет ли такой функции в стандартной библиотеке c ++?
Нет, к сожалению, нет.
В библиотеке C math.h была функция sincos
В Linux он доступен как Расширение GNU. Это не стандартно в Си тоже.
Просто используйте sin и cos отдельно и включите оптимизацию. Компиляторы Си довольно хороши в оптимизации, и они, вероятно, поймут, что вы вычисляете и синус, и косинус одной и той же переменной. Если вы хотите сделать конечно, Вы всегда можете проверить полученную сборку (для gcc используйте опцию -S) и посмотреть, что она сгенерировала.
Компилятор, вероятно, оптимизирует любые вызовы sin
или же cos
в пользу простого использования инструкций SSE для его расчета. Я не уверен, что SSE имеет sincos
код операции, но даже вычисление их отдельно происходит быстрее, чем вызов любого sincos
функция, которую компилятор не будет оптимизировать.