Будет ли компилятор C/C++ оптимизировать код, повторно используя результат недавно вычисленной функции?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Будет ли компилятор C/C++ оптимизировать код, повторно используя результат недавно вычисленной функции?

Сообщение Anonymous »

Предположим, у меня есть функция double F(double x), и для этого примера предположим, что вызовы F являются дорогостоящими.

Предположим, я пишу функцию f, которая вычисляет квадратный корень из F:

Код: Выделить всё

double f(double x){
return sqrt(F(x));
}
и в третьей функции sum я вычисляю сумму f и F:

Код: Выделить всё

double sum(double x){
return F(x) + f(x);
}
Поскольку я хочу свести к минимуму вызовы F, приведенный выше код неэффективен по сравнению, например, с

Код: Выделить всё

double sum_2(double x){
double y = F(x);
return y + sqrt(y);
}
Но поскольку я ленив, или глуп, или хочу сделать свой код максимально понятным, вместо этого я выбрал первое определение.

Сможет ли компилятор C/C++ оптимизировать мой код, осознав, что значение F(x) можно повторно использовать для вычисления f(x), как это делается в sum_2?

Большое спасибо.

Подробнее здесь: https://stackoverflow.com/questions/554 ... unction-re
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»