16 #ifdef USE_PARAMETERS_FACTORY
30 bool init = ForceSmear::Factory::Register(
"APE", create_object);
45 #ifdef USE_PARAMETERS_FACTORY
58 const string str_vlevel = params.
get_string(
"verbose_level");
69 vout.
crucial(
m_vl,
"ForceSmear_APE: fetch error, input parameter not found.\n");
90 for (
int mu = 0; mu <
m_Ndim; ++mu) {
91 for (
int nu = 0; nu <
m_Ndim; ++nu) {
103 for (
int mu = 0; mu <
m_Ndim; ++mu) {
109 assert(rho.size() == m_Ndim *
m_Ndim);
113 for (
int mu = 0; mu <
m_Ndim; ++mu) {
114 for (
int nu = 0; nu <
m_Ndim; ++nu) {
127 m_rho.resize(m_Ndim * m_Ndim);
131 for (
int mu = 0; mu <
m_Ndim; ++mu) {
132 for (
int nu = 0; nu <
m_Ndim; ++nu) {
144 int NinG = 2 * Nc * Nc;
146 assert(Sigmap.
nin() == NinG);
155 for (
int mu = 0; mu <
m_Ndim; ++mu) {
156 m_U[mu].setpart_ex(0, U, mu);
160 for (
int mu = 0; mu <
m_Ndim; ++mu) {
162 for (
int nu = 0; nu <
m_Ndim; ++nu) {
163 if (nu == mu)
continue;
164 double rho =
m_rho[mu + m_Ndim * nu];
169 sigmap_tmp.setpart_ex(0, Sigmap, mu);
171 double alpha =
m_rho[mu + m_Ndim * mu];
173 alpha, sigmap_tmp, C,
m_U[mu]);
174 Sigma.setpart_ex(mu, Xi, 0);
178 for (
int mu = 0; mu <
m_Ndim; ++mu) {
179 for (
int nu = 0; nu <
m_Ndim; ++nu) {
180 if (nu == mu)
continue;
181 double rho =
m_rho[mu + m_Ndim * nu];
184 Sigma.addpart_ex(mu, sigma_tmp, 0, rho);
209 vt2.mult_Field_Gdn(0, vt1, 0, vt3, 0);
214 vt2.mult_Field_Gdn(0, vt1, 0, vt3, 0);
223 vt2.mult_Field_Gdd(0, vt1, 0, V_mu, 0);
251 v1.mult_Field_Gnn(0, u_mu, 0, v2, 0);