X-Git-Url: http://git.treefish.org/~alex/phys/heatbath.git/blobdiff_plain/27831e49e1397b5f7d5c52ff7ec120b543f044ab..42525a1e9b53ed082fbacce84caf8cff6b4219bc:/sim-nonmetro.hpp diff --git a/sim-nonmetro.hpp b/sim-nonmetro.hpp index 9eb818b..064a7bb 100644 --- a/sim-nonmetro.hpp +++ b/sim-nonmetro.hpp @@ -53,18 +53,18 @@ void sim::updatePhi (const int& x) for (int nu=0; nu<4; nu++) V += conf[ (*nb)[x*4+nu] ].phi; -#if defined(ALGORITHM_AHBMHB) || defined(ALGORITHM_AHBMOR) +#if defined(ALGORITHM_AHBMHB) || defined(ALGORITHM_AHBMOR) || defined(ALGORITHM_AHBM0) Y = polar( abs(Y), gsl_rng_uniform(rangsl) * 2*M_PI ); -#elif defined(ALGORITHM_AORMHB) || defined(ALGORITHM_AORMOR) +#elif defined(ALGORITHM_AORMHB) || defined(ALGORITHM_AORMOR) || defined(ALGORITHM_AORM0) const double V2diff = pow(real(V), 2) - pow(imag(V), 2); const double Vprod = real(V)*imag(V); Y = complex ( + real(Y) * V2diff + 2 * imag(Y) * Vprod, - imag(Y) * V2diff + 2 * real(Y) * Vprod ) / norm(V); #endif -#if defined(ALGORITHM_AHBMHB) || defined(ALGORITHM_AORMHB) +#if defined(ALGORITHM_AHBMHB) || defined(ALGORITHM_AORMHB) || defined(ALGORITHM_A0MHB) Y = polar( magnYOfR( gsl_rng_uniform(rangsl) ), arg(Y) ); -#elif defined(ALGORITHM_AHBMOR) || defined(ALGORITHM_AORMOR) +#elif defined(ALGORITHM_AHBMOR) || defined(ALGORITHM_AORMOR) || defined(ALGORITHM_A0MOR) Y = polar( magnYOfR( 1 - exp(-norm(Y)) ), arg(Y) ); //!!!! #endif }