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 скрытых аргументов нет, и передача по ссылке применяется, либо передаётся только один символ, либо описатель массива.
Предыдущий: _gfortran_caf_co_sum, Вверх: Документация по ABI функций [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gfortran/_005fgfortran_005fcaf_005fco_005freduce.html