]> git.treefish.org Git - phys/heatbath.git/blobdiff - sim-1mr-.hpp
...
[phys/heatbath.git] / sim-1mr-.hpp
index 00e15beed03479c6404a7a18b6ac96a70f18f66c..75c41d97183fd1f9d1f0185b81550cb41d15f93a 100644 (file)
@@ -45,6 +45,7 @@ void sim::updatePhi (const int& x)
 {
   const double theta = gsl_rng_uniform(rangsl) * 2*M_PI;
   complex<double> V=0;
 {
   const double theta = gsl_rng_uniform(rangsl) * 2*M_PI;
   complex<double> V=0;
+  const double oldarg = arg(conf[x].phi);
 
   for (int nu=0; nu<4; nu++)
     V += conf[ (*nb)[x*4+nu] ].phi;
 
   for (int nu=0; nu<4; nu++)
     V += conf[ (*nb)[x*4+nu] ].phi;
@@ -53,8 +54,6 @@ void sim::updatePhi (const int& x)
                        - 1./M * norm(V)
                        + 2 * real( conf[x].phi * conj(V) ) );
 
                        - 1./M * norm(V)
                        + 2 * real( conf[x].phi * conj(V) ) );
 
-  double oldarg = arg(conf[x].phi);
-
   conf[x].phi = sqrt(std::log( 1./(1-r) )) / sqrt(M)
     * polar(1.0, oldarg)
     + V / M;
   conf[x].phi = sqrt(std::log( 1./(1-r) )) / sqrt(M)
     * polar(1.0, oldarg)
     + V / M;