Select Git revision
fmpi_reduce_generic.h
fmpi_reduce_generic.h 1.99 KiB
// SPDX-License-Identifier: 0BSD
/*!
* @file
* @license{
* BSD Zero Clause License
*
* Copyright (c) 2022 by Raphael Bach
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
* }
*/
/*==============================================================================
GUARD
==============================================================================*/
#ifndef FMPI_REDUCE_IMPL_H_20211218005919
#define FMPI_REDUCE_IMPL_H_20211218005919
/*==============================================================================
INCLUDE
==============================================================================*/
// C Standard Library
#include <stddef.h> // size_t
// Internal
#include "fmpi_generic.h"
/*==============================================================================
MACRO
==============================================================================*/
struct fmpi_ctx;
#define FMPI_REDUCE_PROD_TYPES \
FMPI_TYPE_REAL
#define FMPI_REDUCE_DECLARATION(T) \
T fmpi_local_reduce_prod_##T( \
const struct fmpi_ctx * ctx, const T * array, size_t length \
); \
T fmpi_reduce_prod_##T(const struct fmpi_ctx * ctx, const T * array)
FMPI_DECLARE_FUNCS(FMPI_REDUCE_DECLARATION, FMPI_REDUCE_PROD_TYPES);
/*==============================================================================
GUARD
==============================================================================*/
#endif // FMPI_REDUCE_IMPL_H_20211218005919