Это код C++: [code]#include double f1(double a){ return std::cos(a); }
double f2(double a){ return std::cos(a) + std::sin(a); } [/code] скомпилируется в следующую сборку (https://godbolt.org/z/Y578h1TKx) [code]f1(double): jmp cos f2(double): sub rsp, 24 lea rdi, [rsp+8] mov rsi, rsp call sincos movsd xmm0, QWORD PTR [rsp+8] addsd xmm0, QWORD PTR [rsp] add rsp, 24 ret [/code] Означает ли это, что gcc знает стандартные функции glibc и имеет технику оптимизации для конкретных случаев их использования?
При интегрировании sin и cos с использованием Sympy результат должен быть таким же, но интегрирование cos дает значение порядка -16, которое при округлении по существу равно 0. Есть ли причина, почему он дает такое низкое значение для cos и прямой 0...
Я хотел бы вычислить синус и косинус значения вместе (например, чтобы создать матрицу вращения). Конечно, я мог бы вычислить их отдельно один за другим, например a = cos(x); b = sin(x);, но мне интересно, есть ли более быстрый способ, когда нужны...