#include CPS_START_NAMESPACE //------------------------------------------------------------------ // // alg_pot2.h // // Header file for the AlgPot2 class. // // AlgPot2 is derived from Alg and it measures the potential // into different propagation directions // //------------------------------------------------------------------ #ifndef INCLUDED_ALG_POT2_H #define INCLUDED_ALG_POT2_H CPS_END_NAMESPACE #include // for exponential function #include #include #include #include // for PathOrderedProduct CPS_START_NAMESPACE const Float le=log(exp(1.)); class AlgPot2 : public Alg { private: char *cname; PotArg *alg_pot_arg; // The argument structure for the potential Float norm_fac; // normalization factor for colour and local volume Float xiB2; // bare anisotropy squared // for the purpose of the (anisotropic) heat bath all // temporal links were multiplied by the bare anisotropy // in this manner the update could be done using // the isotropic code --> we have to convert the temporal links back // aniso_factor = xi0^{-2* (number of temporal links) } static Float power(Float x, Float y) {return exp(y * log(x)/le );} // define x^y through x^y = exp [y* ln(x)] and ln(x) = log(x)/log(e) public: AlgPot2(Lattice & latt, CommonArg *c_arg, PotArg *arg); virtual ~AlgPot2(); void run(void); // historical junk -- uncommented by manke for v4.1.0 // Float Wzx[100]; // Float Wzt[100]; }; #endif CPS_END_NAMESPACE