Spec-Zone.ru › GNU Fortran 10

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

Spec-Zone.ru

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