19 =
"Fopr_Wilson_eo_impl";
26 void mult_Field_Gn_eo(
Field_F& w,
int ex,
27 const Field_G& U,
const int ex1,
28 const Field_F& x,
const int ex2,
32 assert(ex1 < U.
nex());
33 assert(ex2 < x.
nex());
39 for (
int site = 0, nvol = w.
nvol(); site < nvol; ++site) {
40 for (
int s = 0, nd = w.
nd(); s < nd; ++s) {
41 vec = U.
mat(site + ieo * nvol, ex1) * x.
vec(s, site, ex2);
52 void mult_Field_Gd_eo(
Field_F& w,
int ex,
58 assert(ex1 < U.
nex());
59 assert(ex2 < x.
nex());
65 for (
int site = 0, nvol = w.
nvol(); site < nvol; ++site) {
66 for (
int s = 0, nd = w.
nd(); s < nd; ++s) {
67 vec = U.
mat_dag(site + ieo * nvol, ex1) * x.
vec(s, site, ex2);
77 const std::valarray<int> bc)
82 for (
int mu = 0; mu <
m_Ndim; ++mu) {
88 assert(bc.size() ==
m_Ndim);
94 for (
int mu = 0; mu <
m_Ndim; ++mu) {
116 m_GM.resize(m_Ndim + 1);
237 assert(f.
nex() == 1);
326 const Field& f,
const int ieo)
334 for (
int mu = 0; mu <
m_Ndim; ++mu) {
348 const Field& f,
const int ieo)
362 const Field& f,
const int ieo)
391 for (
int ex = 0; ex < f.
nex(); ++ex) {
408 for (
int ex = 0; ex < f.
nex(); ++ex) {
425 for (
int ex = 0; ex < f.
nex(); ++ex) {
426 mult_Field_Gd_eo(
trf, 0, *
m_Ueo, mu, f, ex, 1 - ieo);
446 int flop_Meo = Nc * Nd * 2 * 8 * (4 * Nc - 1);
448 flop_Meo += Nc * Nd * 2 * (4 * 3 + 4 * 2);
449 flop_Meo += Nc * Nd * 2 * 8;
450 flop_Meo += Nc * Nd * 2;
452 int flop_per_site = 2 * flop_Meo + Nc * Nd * 2 * 2;
454 double flop =
static_cast<double>(flop_per_site) *
455 static_cast<double>(Lvol / 2);
void scal(Field &x, const double a)
scal(x, a): x = a * x
const Field_F Meo(const Field_F &, const int ieo)
void prePropD(Field &, Field &, const Field &)
void backward(Field &, const Field &, const int mu)
void prePropDag(Field &, Field &, const Field &)
void MeoMoe(Field &, const Field &)
void set_vec(const int s, const int site, const int e, const Vec_SU_N &F)
static const std::string class_name
void mult_gm5(Field &v, const Field &f)
const Field_F Mdageo(const Field_F &, const int ieo)
void D(Field &v, const Field &f)
void general(const char *format,...)
GammaMatrix get_GM(GMspecies spec)
void Meo_gm5(Field &, const Field &, const int ieo)
void set_parameters(const double kappa, const std::valarray< int > bc)
Container of Field-type object.
void DdagD(Field &v, const Field &f)
void copy(Field &y, const Field &x)
copy(y, x): y = x
void convertField(Field &eo, const Field &lex)
void addpart_ex(int ex, const Field &w, int exw)
void mult_gm5(Field &, const Field &)
void postPropDag(Field &, const Field &, const Field &)
Wilson-type fermion field.
void mult_GMproj2(Field_F &y, const int pm, const GammaMatrix &gm, const Field_F &x)
projection with gamma matrix: (1 gamma)
void mult_m(int mu, Field_F &, const Field_F &, const int ieo)
void mult_p(int mu, Field_F &, const Field_F &, const int ieo)
void Meo(Field &, const Field &, const int ieo)
void postPropD(Field &, const Field &, const Field &)
void DDdag(Field &v, const Field &f)
void Ddag(Field &v, const Field &f)
void reset(const int Nin, const int Nvol, const int Nex, const element_type cmpl=COMPLEX)
void Mdageo(Field &, const Field &, const int ieo)
Set of Gamma Matrices: basis class.
double m_kappa
hopping parameter.
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
void init(const std::string)
void set_config(Field *U)
void mult_GM(Field_F &y, const GammaMatrix &gm, const Field_F &x)
gamma matrix multiplication
void H(Field &v, const Field &f)
void D(Field &v, const Field &f)
void reverseField(Field &lex, const Field &eo)
std::valarray< int > m_boundary
boundary condition.
Vec_SU_N vec(const int s, const int site, const int e=0) const
Mat_SU_N mat_dag(const int site, const int mn=0) const
void Ddag(Field &v, const Field &f)
Bridge::VerboseLevel m_vl
void backward_h(Field &, const Field &, const int mu, const int ieo)
void mult_m(int mu, Field_F &, const Field_F &, const int ieo)
double flop_count()
this returns the number of floating point operations of Meo.
void mult_p(int mu, Field_F &, const Field_F &, const int ieo)
void setpart_ex(int ex, const Field &w, int exw)
Mat_SU_N mat(const int site, const int mn=0) const
std::valarray< GammaMatrix > m_GM
void forward_h(Field &, const Field &, const int mu, const int ieo)
void gm5p(const int mu, Field &, const Field &v)
gamma_5 (1 - gamma_mu) v(x + mu) used in force calculation.
const Field_F Meo_gm5(const Field_F &, const int ieo)
std::valarray< int > m_boundary