61 }
else if (m_mode ==
"Ddag") {
64 }
else if (m_mode ==
"DdagD") {
67 }
else if (m_mode ==
"DDdag") {
70 }
else if (m_mode ==
"H") {
93 for (
int mu = 0; mu <
m_Ndim; ++mu) {
99 assert(bc.size() ==
m_Ndim);
105 for (
int mu = 0; mu <
m_Ndim; ++mu) {
106 m_boundary[mu] = bc[mu];
118 for (
int mu = 0; mu <
m_Ndim; ++mu) {
123 axpy(v, -m_kappa, w);
136 for (
int mu = 0; mu <
m_Ndim; ++mu) {
151 assert(v.
nex() == f.
nex());
152 assert(v.
nin() == f.
nin());
164 assert(ipm == 1 || ipm == -1);
173 }
else if (ipm == -1) {
219 for (
int ex = 0; ex < f.
nex(); ++ex) {
221 shift.backward(trf, f, m_boundary[mu], mu);
234 for (
int ex = 0; ex < f.
nex(); ++ex) {
236 shift.forward(trf2, trf, m_boundary[mu], mu);
255 int flop_per_site = Nc * Nd * 2 * 8 * (4 * Nc - 1);
257 flop_per_site += Nc * Nd * 2 * (4 * 3 + 4 * 2);
258 flop_per_site += Nc * Nd * 2 * 8;
259 flop_per_site += Nc * Nd * 2 * 2;
261 double flop =
static_cast<double>(flop_per_site) *
262 static_cast<double>(Lvol);
264 if ((m_mode ==
"DdagD") || (m_mode ==
"DDdag")) {
void scal(Field &x, const double a)
scal(x, a): x = a * x
std::vector< GammaMatrix > m_GM
gamma matrices.
void mult_Field_Gd(Field_F &y, const int ex, const Field_G &u, int ex1, const Field_F &x, int ex2)
void set_parameters(const double kappa, const std::vector< int > bc)
std::vector< int > m_boundary
boundary condition.
void proj_chiral(Field &w, const int ex1, const Field &v, const int ex2, const int ipm)
void set(const int jin, const int site, const int jex, double v)
void general(const char *format,...)
GammaMatrix get_GM(GMspecies spec)
static Bridge::VerboseLevel Vlevel()
Container of Field-type object.
void D_ex(Field &v, const int ex1, const Field &f, const int ex2)
void D(Field &v, const Field &f)
void(Fopr_Wilson::Fopr_Wilson_impl::* m_mult_dag)(Field &, const Field &)
void mult_up(int mu, Field &w, const Field &v)
adding the hopping to nearest neighbor site in mu-th direction.
void H(Field &w, const Field &f)
void addpart_ex(int ex, const Field &w, int exw)
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 DdagD(Field &w, const Field &f)
const Field_G * m_U
gauge configuration.
std::string get_mode() const
void(Fopr_Wilson::Fopr_Wilson_impl::* m_mult)(Field &, const Field &)
void DDdag(Field &w, const Field &f)
Bridge::VerboseLevel m_vl
void mult_dn(int mu, Field &w, const Field &v)
Bridge::VerboseLevel m_vl
Set of Gamma Matrices: basis class.
static const std::string class_name
static const std::string class_name
void mult_Field_Gn(Field_F &y, const int ex, const Field_G &u, int ex1, const Field_F &x, int ex2)
const Field_F mult_gm5p(int mu, const Field_F &w)
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
void crucial(const char *format,...)
void set_mode(std::string mode)
void mult_GM(Field_F &y, const GammaMatrix &gm, const Field_F &x)
gamma matrix multiplication
void mult_gm5(Field &w, const Field &v)
void mult_up(int mu, Field &, const Field &)
void mult_gm5(Field &v, const Field &f)
void mult_undef(Field &, const Field &f)
void setpart_ex(int ex, const Field &w, int exw)
void mult_dn(int mu, Field &, const Field &)
void Ddag(Field &w, const Field &f)
void init(std::string repr)