27#include <mpi/communicator.hpp>
33namespace triqs::mc_tools {
45 concept DoubleOrComplex = std::same_as<T, double> || std::same_as<T, std::complex<double>>;
58 template <
typename T,
typename MCSignType>
60 { x.attempt() } -> std::convertible_to<MCSignType>;
61 { x.accept() } -> std::convertible_to<MCSignType>;
76 template <
typename T,
typename MCSignType>
77 concept MCMeasure =
requires(T x, mpi::communicator comm) {
78 { x.accumulate(std::declval<MCSignType>()) };
79 { x.collect_results(comm) };