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