Есть ли преимущество в производительности для определения чисел в качестве параметров в FORTRAN - PullRequest
0 голосов
/ 12 декабря 2018

Я экспериментирую с написанием векторизованных подпрограмм FORTRAN, которые будут включены в решатель конечных элементов Abaqus.Некоторые учебные материалы определяют постоянные числа, которые используются в формулах в качестве параметров в начале кода, например:

parameter ( zero = 0.d0, one = 1.d0, two = 2.d0, third = 1.d0 / 3.d0, half = 0.5d0, op5 = 1.5d0)

Таким образом, вместо записи 0.5 * a можно написать half * a.Есть ли в этом преимущество в производительности?

РЕДАКТИРОВАТЬ : Я выкопал глубже и нашел это на странице 11 (слайд A3.22) этого файла :

Назначения PARAMETER дают точные определения констант с плавающей точкой на любой платформе.

1 Ответ

0 голосов
/ 12 декабря 2018

Нет, разницы в производительности вообще нет.Сгенерированный код будет точно таким же.Вероятно, он используется только для того, чтобы сделать эти числа более удобными или (предположительно) читабельными.

НО вы должны быть осторожны.Просто 0,5 - это число (по умолчанию) с одинарной точностью.Вы должны использовать способ, используемый в определении константы.0.5d0 - это двойная точность, а константа поможет вам не забыть d0.В форматах двоичных чисел 0,5 в любом случае точно презентабельно, но, например, одна треть - нет.

...