std::set<T>
compute_set_union(const std::set<T> &set, const MPI_Comm &comm);
+
#ifndef DOXYGEN
// declaration for an internal function that lives in mpi.templates.h
namespace internal
const ArrayView<T> & output);
}
+
+
// Since these depend on N they must live in the header file
template <typename T, unsigned int N>
void
ArrayView<T>(sums, N));
}
+
+
template <typename T, unsigned int N>
void
max(const T (&values)[N], const MPI_Comm &mpi_communicator, T (&maxima)[N])
ArrayView<T>(maxima, N));
}
+
+
template <typename T, unsigned int N>
void
min(const T (&values)[N], const MPI_Comm &mpi_communicator, T (&minima)[N])
ArrayView<T>(minima, N));
}
+
+
template <typename T, unsigned int N>
void
logical_or(const T (&values)[N],
ArrayView<T>(results, N));
}
+
+
template <typename T>
std::map<unsigned int, T>
some_to_some(const MPI_Comm & comm,
# endif
}
+
+
template <typename T>
std::vector<T>
gather(const MPI_Comm & comm,