7.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-12.1.0/gfortran/_005fgfortran_005fcaf_005fco_005freduce.html