- OM.phip2[ kpt * O815->comargs.lsize[1] + kpx ] = 0;
-
- for (int ixt = 0; ixt < O815->comargs.lsize[0]; ixt++)
- for (int ixx = 0; ixx < O815->comargs.lsize[1]; ixx++)
- for (int ixpt = 0; ixpt < O815->comargs.lsize[0]; ixpt++)
- for (int ixpx = 0; ixpx < O815->comargs.lsize[1]; ixpx++)
- OM.phip2[ kpt * O815->comargs.lsize[1] + kpx ] += real( conj( Sim->conf[ ixt*O815->comargs.lsize[1] + ixx ].phi )
- * Sim->conf[ ixpt*O815->comargs.lsize[1] + ixpx ].phi
- * exp ( _i_*(double)ppx*(double)(ixx-ixpx) + _i_*(double)ppt*(double)(ixt-ixpt) ) );
-
- OM.phip2[ kpt * O815->comargs.lsize[1] + kpx ] /= Sim->LSIZE2;
- }
- }
-
- for (int kpt = 0; kpt <= O815->comargs.lsize[0]; kpt++)
- for (int kpx = 0; kpx <= O815->comargs.lsize[1]; kpx++) {
- double ppt = 2.*M_PI/O815->comargs.lsize[0] * kpt;
- double ppx = 2.*M_PI/O815->comargs.lsize[1] * kpx;
+ if (!loadedobs) {
+ complex<double> phitildepp = 0;
+
+ for (int ixpt = 0; ixpt < O815->comargs.lsize[0]; ixpt++)
+ for (int ixpx = 0; ixpx < O815->comargs.lsize[1]; ixpx++)
+ phitildepp += Sim->conf[ ixpt*O815->comargs.lsize[1] + ixpx ].phi
+ * exp ( - _i_*(double)ppx*(double)ixpx - _i_*(double)ppt*(double)ixpt );
+
+ OM->phip2[ kpimode ] = norm( phitildepp) / Sim->LSIZE2;
+ }
+
+ if ( nthmeas%avgmany == 0 )
+ avgphip2[kpimode] = 0;
+
+ avgphip2[kpimode] += OM->phip2[ kpimode ];