Spec-Zone.ru › GNU Fortran 5

8.2.28 _gfortran_caf_co_reduce — Общее коллективное сокращение

Описание:
Вычисляет для каждого элемента массива переменной a значение сокращения для этого элемента в текущей команде; если result_image имеет значение 0, результат будет сохранен на всех изображениях, в противном случае — только на указанном изображении. opr — это чистая функция, выполняющая математически коммутативную и ассоциативную операцию.

Значения opr_flags обозначают следующее; значения объединяются по битовому ИЛИ. GFC_CAF_BYREF (1) если результат должен быть возвращён по значению; GFC_CAF_HIDDENLEN (2) требуется ли указывать длины результата и аргумента как скрытые аргументы; GFC_CAF_ARG_VALUE (4) требуют ли аргументы передачи по значению, GFC_CAF_ARG_DESC (8) требуют ли аргументы передачи по описателю.

Синтаксис:
void _gfortran_caf_co_reduce (gfc_descriptor_t *a, void * (*opr) (void *, void *), int opr_flags, int result_image, int *stat, char *errmsg, int a_len, int errmsg_len)
Аргументы:
opr Указатель на функцию сокращения.
opr_flags Флаги, относящиеся к функции сокращения
a intent(inout) И описатель массива с данными, которые должны быть распространены (на source_image) или получены (другие изображения).
result_image Идентификатор изображения, на которое должно быть скопировано уменьшенное значение; если ноль, оно должно быть скопировано на все изображения.
stat intent(out) Сохраняет статус STAT= и может быть NULL.
errmsg intent(out) При возникновении ошибки здесь будет установлено сообщение об ошибке; может быть NULL
a_len Длина строки аргумента a.
errmsg_len Размер буфера errmsg.
ПРИМЕЧАНИЯ
Если result_image отлично от нуля, значение на всех изображениях, кроме указанного, становится неопределённым; следовательно, библиотека может использовать это. Для символьных аргументов результат передаётся как первый аргумент, за которым следует длина строки результата, затем идут два строковых аргумента, за которыми следуют два скрытых аргумента. При связывании с C скрытых аргументов нет, и передача осуществляется по ссылке, и либо передаётся только один символ, либо описатель массива.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gfortran/_005fgfortran_005fcaf_005fco_005freduce.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API