Skip to content
Snippets Groups Projects
Select Git revision
  • 6920811046b7f6fff5e27947c55e53ae8776cff7
  • master default protected
2 results

fmpi_reduce_generic.h

Blame
  • 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