37 U[d2].start_gather(d1,
ALL);
38 U[d1].start_gather(d2, par);
42 onsites(opp_parity(par)) {
43 lower[X] = U[d2][X].dagger() * U[d1][X] * U[d2][X + d1];
50 staples[X] = U[d2][X] * U[d1][X + d2] * U[d2][X + d1].dagger() + lower[X - d2];
55 staples[X] += U[d2][X] * U[d1][X + d2] * U[d2][X + d1].dagger() + lower[X - d2];
62using plaqw_t = std::array<std::array<Field<T>, NDIM>, NDIM>;
85 const plaqw_t<hila::arithmetic_type<T>> &plaqw,
Parity par =
ALL) {
94 U[d2].start_gather(d1,
ALL);
95 U[d1].start_gather(d2, par);
99 onsites(opp_parity(par)) {
100 lower[X] = plaqw[d1][d2][X] * U[d2][X].dagger() * U[d1][X] * U[d2][X + d1];
107 staples[X] = plaqw[d1][d2][X] * U[d2][X] * U[d1][X + d2] * U[d2][X + d1].dagger() + lower[X - d2];
112 staples[X] += plaqw[d1][d2][X] * U[d2][X] * U[d1][X + d2] * U[d2][X + d1].dagger() + lower[X - d2];
The field class implements the standard methods for accessing Fields. Hilapp replaces the parity acce...
Parity
Parity enum with values EVEN, ODD, ALL; refers to parity of the site. Parity of site (x,...
#define foralldir(d)
Macro to loop over (all) Direction(s)
Direction
Enumerator for direction that assigns integer to direction to be interpreted as unit vector.
constexpr Parity ALL
bit pattern: 011
void staplesum(const GaugeField< T > &U, Field< T > &staples, Direction d1, Parity par=ALL)
Sum the staples of link matrices to direction dir.