16 #ifdef USE_PARAMETERS_FACTORY
30 bool init = Smear::Factory::Register(
"APE_SF", create_object);
46 #ifdef USE_PARAMETERS_FACTORY
59 const string str_vlevel = params.
get_string(
"verbose_level");
65 valarray<double> phi, phipr;
73 vout.
crucial(
m_vl,
"Smear_APE_SF: fetch error, input parameter not found.\n");
84 double *phi,
double *phipr)
103 for (
int mu = 0; mu <
m_Ndim; ++mu) {
104 for (
int nu = 0; nu <
m_Ndim; ++nu) {
109 for (
int i = 0; i < 3; ++i) {
121 for (
int mu = 0; mu <
m_Ndim; ++mu) {
135 assert(rho.size() == m_Ndim *
m_Ndim);
139 for (
int mu = 0; mu <
m_Ndim; ++mu) {
140 for (
int nu = 0; nu <
m_Ndim; ++nu) {
145 for (
int i = 0; i < 3; ++i) {
157 assert(U.
nvol() == Nvol);
159 assert(Usmear.
nvol() == Nvol);
162 Field_G c_tmp(Nvol, 1), u_tmp(Nvol, 1), u_tmp2(Nvol, 1);
171 for (
int mu = 0; mu <
m_Ndim; ++mu) {
175 for (
int nu = 0; nu <
m_Ndim; ++nu) {
177 double rho =
m_rho[mu + m_Ndim * nu];
178 u_tmp2 = staple.
upper(U, mu, nu);
181 u_tmp2 = staple.
lower(U, mu, nu);
186 double rho0 =
m_rho[mu + m_Ndim * mu];