22#include "../qmc_data.hpp"
24namespace triqs_cthyb {
26 struct measure_average_sign {
29 mc_weight_t &average_sign;
32 measure_average_sign(qmc_data
const &_data, mc_weight_t &_average_sign) : data(_data), average_sign(_average_sign) {
39 void accumulate(mc_weight_t s) {
41 sign += s * data.atomic_reweighting;
42 z += std::abs(data.atomic_reweighting);
46 void collect_results(mpi::communicator
const &c) {
48 z = mpi::all_reduce(z, c);
49 sign = mpi::all_reduce(sign, c);
50 average_sign = sign / z;