73                                const valarray<Field_F>& sq2)
 
   77   valarray<dcomplex> mcorr(Lt);
 
   82   double norm = 0.5 / Lvol * Lt;
 
   93   for (
int t = 0; t < mcorr.size(); ++t) {
 
   95                  t, -norm * real(mcorr[t]), -norm * imag(mcorr[t]));
 
  108   for (
int t = 0; t < mcorr.size(); ++t) {
 
  110                  t, norm * real(mcorr[t]), norm * imag(mcorr[t]));
 
  121   for (
int t = 0; t < mcorr.size(); ++t) {
 
  123                  t, norm * real(mcorr[Lt - 1 - t]), norm * imag(mcorr[Lt - 1 - t]));
 
  136   for (
int t = 0; t < mcorr.size(); ++t) {
 
  138                  t, norm * real(mcorr[Lt - 1 - t]), norm * imag(mcorr[Lt - 1 - t]));
 
  144   double result = real(mcorr[1]);
 
  154                                      const valarray<Field_F>& sq1,
 
  155                                      const valarray<Field_F>& sq2)
 
  166   assert(meson.size() == Lt);
 
  170   gm_src  = qn_src.
mult(gm5);
 
  171   gm_sink = gm5.
mult(qn_sink);
 
  174   valarray<dcomplex> corr_local(Nt);
 
  175   valarray<double>   corr_r(Nd), corr_i(Nd);
 
  176   valarray<int>      s2(Nd);
 
  178   Field corrF(2, Nvol, 2);
 
  180   corr_local = dcomplex(0.0);
 
  182   for (
int c0 = 0; c0 < Nc; ++c0) {
 
  183     for (
int d0 = 0; d0 < Nd; ++d0) {
 
  184       int d1 = gm_src.index(d0);
 
  187       for (
int t = 0; t < Nt; ++t) {
 
  190         for (
int z = 0; z < Nz; ++z) {
 
  191           for (
int y = 0; y < Ny; ++y) {
 
  192             for (
int x = 0; x < Nx; ++x) {
 
  193               int site = index.
site(x, y, z, t);
 
  195               for (
int s0 = 0; s0 < Nd; ++s0) {
 
  196                 int s1 = gm_sink.index(s0);
 
  199                 for (
int c1 = 0; c1 < Nc; ++c1) {
 
  200                   corr_r[s0] += sq1[c0 + Nc * d0].cmp_r(c1, s1, site)
 
  201                                 * sq2[c0 + Nc * d1].cmp_r(c1, s0, site)
 
  202                                 + sq1[c0 + Nc * d0].cmp_i(c1, s1, site)
 
  203                                 * sq2[c0 + Nc * d1].cmp_i(c1, s0, site);
 
  205                   corr_i[s0] += sq1[c0 + Nc * d0].cmp_r(c1, s1, site)
 
  206                                 * sq2[c0 + Nc * d1].cmp_i(c1, s0, site)
 
  207                                 - sq1[c0 + Nc * d0].cmp_i(c1, s1, site)
 
  208                                 * sq2[c0 + Nc * d1].cmp_r(c1, s0, site);
 
  214         for (
int s0 = 0; s0 < Nd; ++s0) {
 
  215           dcomplex gmf = gm_src.value(d0) * gm_sink.value(s0);
 
  217           dcomplex corr = cmplx(corr_r[s0], corr_i[s0]);
 
  218           corr_local[t] += gmf * corr;
 
  226   valarray<dcomplex> corr_tmp(Lt);
 
  229   for (
int t = 0; t < Lt; ++t) {
 
  230     corr_tmp[t] = cmplx(0.0, 0.0);
 
  232   for (
int t = 0; t < Nt; ++t) {
 
  233     int t2 = t + ipet * Nt;
 
  235     corr_tmp[t2] = corr_local[t];
 
  237   for (
int t = 0; t < Lt; ++t) {
 
  238     double crr = real(corr_tmp[t]);
 
  239     double cri = imag(corr_tmp[t]);
 
  242     meson[t] = cmplx(crr, cri);
 
  249   double result = real(meson[1]);
 
Bridge::VerboseLevel m_vl
 
int site(const int &x, const int &y, const int &z, const int &t) const 
 
void general(const char *format,...)
 
GammaMatrix get_GM(GMspecies spec)
 
double fAfP(const std::valarray< Field_F > &sq1, const std::valarray< Field_F > &sq2)
 
Container of Field-type object. 
 
static int ipe(const int dir)
logical coordinate of current proc. 
 
double meson_corr(std::valarray< dcomplex > &meson, const GammaMatrix &gm_sink, const GammaMatrix &gm_src, const std::valarray< Field_F > &sq1, const std::valarray< Field_F > &sq2)
 
GammaMatrix mult(GammaMatrix) const 
 
static int reduce_sum(int count, double *recv_buf, double *send_buf, int pattern=0)
make a global sum of an array of double over the communicator. pattern specifies the dimensions to be...
 
static const std::string class_name