18#include <kassert/kassert.hpp>
21#include "kamping/communicator.hpp"
36 template <
typename...>
37 typename DefaultContainerType,
38 template <
typename,
template <
typename...>
typename>
40template <
typename Value>
47 static_assert(!std::is_pointer_v<Value>,
"Comparing pointers from different machines does not make sense.");
59 if (
a.equal &&
b.equal &&
a.value ==
b.value) {
60 return ValueEqual{a.value, true};
76 this->mpi_communicator()
bool is_same_on_all_ranks(Value const &value) const
Checks if all ranks provide the same value to this collective.
Definition is_same_on_all_ranks.hpp:41
STL-compatible allocator for requesting memory using the builtin MPI allocator.
Definition allocator.hpp:32
internal::OperationBuilder< Op, Commutative > op(Op &&op, Commutative commute=ops::internal::undefined_commutative_tag{})
Passes a reduction operation to ther underlying call. Accepts function objects, lambdas,...
Definition named_parameters.hpp:1155
Utility that maps C++ types to types that can be understood by MPI.
Definitions for builtin MPI operations.
Factory methods for buffer wrappers.
constexpr internal::commutative_tag commutative
global tag for commutativity
Definition mpi_ops.hpp:197