]> git.treefish.org Git - phys/heatbath.git/commitdiff
...
authorAlexander Schmidt <alex@treefish.org>
Mon, 25 Nov 2013 13:39:34 +0000 (14:39 +0100)
committerAlexander Schmidt <alex@treefish.org>
Mon, 25 Nov 2013 13:39:34 +0000 (14:39 +0100)
sim-1mr-.hpp
sim-r-.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;
index 24f7ca473f888f06b633e02866d9b39e17d36c62..f16d97ec20ddd69f3936de15db7b8f7021e2a10f 100644 (file)
@@ -45,13 +45,12 @@ void sim::updatePhi (const int& x)
 {
   const double r = gsl_rng_uniform(rangsl);
   const double theta = gsl_rng_uniform(rangsl) * 2*M_PI;
 {
   const double r = gsl_rng_uniform(rangsl);
   const double theta = gsl_rng_uniform(rangsl) * 2*M_PI;
+  const double oldarg = arg(conf[x].phi);
   complex<double> V=0;
 
   for (int nu=0; nu<4; nu++)
     V += conf[ (*nb)[x*4+nu] ].phi;
 
   complex<double> V=0;
 
   for (int nu=0; nu<4; nu++)
     V += conf[ (*nb)[x*4+nu] ].phi;
 
-  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;