26#include <triqs/utility/timer.hpp>
28#include "../qmc_data.hpp"
31namespace triqs_cthyb {
37 using M_block_t = block_gf<prod<imfreq, imfreq>, matrix_valued>;
38 using M_t = M_block_t::g_t;
39 using M_mesh_t = M_block_t::g_t::mesh_t;
41 using M_arr_t = array<std::complex<double>, 4>;
42 using M_block_arr_t = std::vector<M_arr_t>;
45 template <G2_channel Channel>
class measure_G2_iw_base {
48 measure_G2_iw_base(std::optional<G2_iw_t> &G2_iw_opt, qmc_data
const &data,
49 G2_measures_t
const &G2_measures);
50 void accumulate_G2(mc_weight_t s);
51 void collect_results(mpi::communicator
const &c);
55 G2_iw_t::view_type G2_iw;
56 mc_weight_t average_sign;
58 G2_measures_t G2_measures;
63 triqs::utility::timer timer_M;
64 triqs::utility::timer timer_G2;