23 assert(Nvol == v1.
nvol());
24 assert(Nvol == v2.
nvol());
28 valarray<int> gmindex(Nd);
29 valarray<double> corr_r(Nd), corr_i(Nd);
31 for (
int i = 0; i < Nd; ++i) {
32 gmindex[i] = gm.
index(i);
37 for (
int z = 0; z < Nz; ++z) {
38 for (
int y = 0; y < Ny; ++y) {
39 for (
int x = 0; x < Nx; ++x) {
40 int site = index.
site(x, y, z, time);
42 for (
int s0 = 0; s0 < Nd; ++s0) {
45 for (
int c1 = 0; c1 < Nc; ++c1) {
46 corr_r[s0] += v1.
cmp_r(c1, s1, site) * v2.
cmp_r(c1, s0, site)
47 + v1.
cmp_i(c1, s1, site) * v2.
cmp_i(c1, s0, site);
49 corr_i[s0] += v1.
cmp_r(c1, s1, site) * v2.
cmp_i(c1, s0, site)
50 - v1.
cmp_i(c1, s1, site) * v2.
cmp_r(c1, s0, site);
57 corr = cmplx(0.0, 0.0);
58 for (
int s0 = 0; s0 < Nd; ++s0) {
59 corr += gm.
value(s0) * cmplx(corr_r[s0], corr_i[s0]);
78 assert(Nvol == v1.
nvol());
79 assert(Nvol == v2.
nvol());
80 assert(Nvol == v3.
nvol());
84 valarray<int> gmindex(Nd);
85 valarray<double> cr(Nd), ci(Nd);
87 for (
int i = 0; i < Nd; ++i) {
88 gmindex[i] = gm.
index(i);
93 for (
int z = 0; z < Nz; ++z) {
94 for (
int y = 0; y < Ny; ++y) {
95 for (
int x = 0; x < Nx; ++x) {
96 int site = index.
site(x, y, z, time);
98 for (
int d1 = 0; d1 < Nd; ++d1) {
159 corr = cmplx(0.0, 0.0);
160 for (
int s0 = 0; s0 < Nd; ++s0) {
161 corr += gm.
value(s0) * cmplx(cr[s0], ci[s0]);
double cmp_i(const int cc, const int s, const int site, const int e=0) const
int site(const int &x, const int &y, const int &z, const int &t) const
void contract_at_t(dcomplex &corr, const GammaMatrix &gm, const Field_F &f1, const Field_F &f2, int time)
contraction for meson at a given time t.
Wilson-type fermion field.
dcomplex value(int row) const
double cmp_r(const int cc, const int s, const int site, const int e=0) const