#ifndef WOLFF_MEASUREMENTS_H #define WOLFF_MEASUREMENTS_H #include "system.hpp" namespace wolff { template class measurement { public: virtual void pre_cluster(N_t, N_t, const system&, v_t, const R_t&) = 0; virtual void plain_bond_visited(const system&, v_t, const X_t&, v_t, double) = 0; virtual void plain_site_transformed(const system&, v_t, const X_t&) = 0; #ifndef WOLFF_NO_FIELD virtual void ghost_bond_visited(const system&, v_t, const X_t&, const X_t&, double) = 0; virtual void ghost_site_transformed(const system&, const R_t&) = 0; #endif virtual void post_cluster(N_t, N_t, const system&) = 0; }; } #endif