summaryrefslogtreecommitdiff
path: root/lib/include/wolff/meas.h
blob: 4895eacc4fcb8548a3e91f0d54036a01c308bc6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

#pragma once

#include "types.h"

template <class R_t, class X_t>
class wolff_measurement {
  public:
    virtual void pre_cluster(const state_t<R_t, X_t>&, count_t, count_t, v_t, const R_t&) = 0;

    virtual void plain_bond_added(v_t, const X_t&, const X_t&, v_t, const X_t&, double) = 0;
    virtual void ghost_bond_added(v_t, const X_t&, const X_t&, double) = 0;

    virtual void plain_site_transformed(v_t, const X_t&, const X_t&) = 0;
    virtual void ghost_site_transformed(const R_t&, const R_t&) = 0;

    virtual void post_cluster(const state_t<R_t, X_t>&, count_t, count_t) = 0;
};