TRIQS/nda 1.3.0
Multi-dimensional array library for C++
Loading...
Searching...
No Matches
reduce.hpp File Reference
#include "./utils.hpp"
#include "../basic_functions.hpp"
#include "../concepts.hpp"
#include "../declarations.hpp"
#include "../exceptions.hpp"
#include "../macros.hpp"
#include "../map.hpp"
#include "../traits.hpp"
#include <mpi.h>
#include <mpi/mpi.hpp>
#include <array>
#include <cmath>
#include <cstddef>
#include <span>
#include <type_traits>
#include <utility>

Detailed Description

Provides an MPI reduce function for nda::basic_array or nda::basic_array_view types.

Definition in file reduce.hpp.

Go to the source code of this file.

Classes

struct  mpi::lazy< mpi::tag::reduce, A >
 Specialization of the mpi::lazy class for nda::Array types and the mpi::tag::reduce tag. More...
 

Functions

template<typename A >
requires (is_regular_or_view_v<A>)
auto nda::lazy_mpi_reduce (A &&a, mpi::communicator comm={}, int root=0, bool all=false, MPI_Op op=MPI_SUM)
 Implementation of a lazy MPI reduce for nda::basic_array or nda::basic_array_view types.
 
template<typename A >
requires (is_regular_or_view_v<A>)
auto nda::mpi_reduce (A const &a, mpi::communicator comm={}, int root=0, bool all=false, MPI_Op op=MPI_SUM)
 Implementation of an MPI reduce for nda::basic_array or nda::basic_array_view types.
 
template<typename A1 , typename A2 >
requires (is_regular_or_view_v<A1> && is_regular_or_view_v<A2>)
void nda::mpi_reduce_capi (A1 const &a_in, A2 &&a_out, mpi::communicator comm={}, int root=0, bool all=false, MPI_Op op=MPI_SUM)
 Implementation of an MPI reduce for nda::basic_array or nda::basic_array_view types using a C-style API.
 
template<typename A >
requires (is_regular_or_view_v<A>)
void nda::mpi_reduce_in_place (A &&a, mpi::communicator comm={}, int root=0, bool all=false, MPI_Op op=MPI_SUM)
 Implementation of an in-place MPI reduce for nda::basic_array or nda::basic_array_view types.