Я пишу код, в котором основным узким местом по времени является использование функции мощности (очевидно, w_pow.c из glibc). Я называю это в основном вычислением мощности 2.
b=a**2
Быстрее бы написать:
a*a
Вместо ** 2? Или лучше другую библиотеку?
Благодарность
1 ответ
Для компиляторов многих языков компиляторов, включая Фортран, вполне обычным явлением является преобразование одного в другой, в зависимости от того, какой из них быстрее.
Вычисление a^2
как умножения a*a
выполняется быстрее на обычных процессорах, но компилятор сделает это за вас, когда вы напишете a**2
. Об этих деталях не нужно беспокоиться.
Вы можете попробовать это на https://godbolt.org/z/5Ebde4. Удобно, пример по умолчанию для Fortran на godbolt.org - это квадратная функция, поэтому вы можете очень легко сравнить сборку для x**2
и x*x
и включить оптимизацию (скажем, -O3
).
Похожие вопросы
Новые вопросы
fortran
Fortran — это процедурный императивный язык программирования общего назначения, который особенно подходит для числовых вычислений и научных вычислений. С 2003 года стандартный Фортран также поддерживает объектно-ориентированное программирование. Fortran 2008 представил комассивы для параллельного программирования SPMD. Этот тег следует применять ко всем вопросам о языке Fortran; другие специальные теги могут быть добавлены для компиляторов, версий языка и конкретных аспектов использования.