Я пишу код, в котором основным узким местом по времени является использование функции мощности (очевидно, w_pow.c из glibc). Я называю это в основном вычислением мощности 2.

b=a**2

Быстрее бы написать:

a*a 

Вместо ** 2? Или лучше другую библиотеку?

Благодарность

1
Laetis 6 Окт 2020 в 11:02

1 ответ

Лучший ответ

Для компиляторов многих языков компиляторов, включая Фортран, вполне обычным явлением является преобразование одного в другой, в зависимости от того, какой из них быстрее.

Вычисление a^2 как умножения a*a выполняется быстрее на обычных процессорах, но компилятор сделает это за вас, когда вы напишете a**2. Об этих деталях не нужно беспокоиться.

Вы можете попробовать это на https://godbolt.org/z/5Ebde4. Удобно, пример по умолчанию для Fortran на godbolt.org - это квадратная функция, поэтому вы можете очень легко сравнить сборку для x**2 и x*x и включить оптимизацию (скажем, -O3).

2
Vladimir F 6 Окт 2020 в 09:42