8.2.36 _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, size_t errmsg_len) - Аргументы:
-
a intent(inout) Описатель массива с данными для обработки. На целевом изображении(ях) результат перезаписывает старое содержимое. opr intent(in) Указатель на функцию редукции opr_flags intent(in) Флаги, относящиеся к функции редукции result_image intent(in) Идентификатор изображения, на которое должно быть скопировано уменьшенное значение; если ноль, оно должно быть скопировано на все изображения. stat intent(out) Сохраняет статус STAT= и может быть NULL. errmsg intent(out) При возникновении ошибки это будет установлено на сообщение об ошибке; может быть NULL. a_len intent(in) длина строки аргумента a errmsg_len intent(in) размер буфера errmsg - ПРИМЕЧАНИЯ
-
Если result_image не равно нулю, данные в описателе массива a на всех изображениях, кроме указанного, становятся неопределёнными; следовательно, библиотека может воспользоваться этим.
Для символьных аргументов результат передаётся как первый аргумент, за которым следует длина строки результата, затем идут два строковых аргумента, за которыми следуют два скрытых аргумента длины строки. С привязкой 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-8.4.0/gfortran/_005fgfortran_005fcaf_005fco_005freduce.html