44     if ((
m_Nx % 2) != 0) {
 
   50     if ((
m_Ny % 2) != 0) {
 
   62     for (
int t = 0; t < 
m_Nt; ++t) {
 
   63       for (
int z = 0; z < 
m_Nz; ++z) {
 
   64         for (
int y = 0; y < 
m_Ny; ++y) {
 
   68           m_Leo[y + m_Ny * (z + m_Nz * t)] = (y2 + z2 + t2) % 2;
 
   80     } 
else if (
m_repr == 
"Chiral") {
 
  115     buf_size[0] = 
sizeof(double) * 
m_Nvc * 2 * (
m_Ny / 2) * m_Nz * 
m_Nt;
 
  116     buf_size[1] = 
sizeof(double) * 
m_Nvc * 2 * 
m_Nx2 * m_Nz * m_Nt;
 
  134     for (
int imu = 0; imu < 
m_Ndim; ++imu) {
 
  194     const string str_vlevel = params.
get_string(
"verbose_level");
 
  218     const std::vector<int> bc)
 
  223     for (
int mu = 0; mu < 
m_Ndim; ++mu) {
 
  229     assert(bc.size() == 
m_Ndim);
 
  235     for (
int mu = 0; mu < 
m_Ndim; ++mu) {
 
  240     for (
int idir = 0; idir < 
m_Ndim; ++idir) {
 
  267     double flop_site, flop;
 
  270       flop_site = 
static_cast<double>(
 
  272     } 
else if (
m_repr == 
"Chiral") {
 
  273       flop_site = 
static_cast<double>(
 
  280     flop = flop_site * 
static_cast<double>(Lvol / 2);
 
  377     assert(f.
nex() == 1);
 
  433                            const Field& f, 
const int ieo)
 
  461                               const Field& f, 
const int ieo)
 
  475                                const Field& f, 
const int ieo)
 
  485     (this->*
m_gm5)(w, f);
 
  500     const double *v1 = f.
ptr(0);
 
  501     double       *v2 = w.
ptr(0);
 
  507     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  509     for (
int i = is; i < is + ns; ++i) {
 
  519     const double *v1 = f.
ptr(0);
 
  520     double       *v2 = w.
ptr(0);
 
  526     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  528     for (
int i = is; i < is + ns; ++i) {
 
  537     double *wp = w.
ptr(0);
 
  543     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  545     for (
int i = is; i < is + ns; ++i) {
 
  554     double *wp = w.
ptr(0);
 
  560     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  562     for (
int i = is; i < is + ns; ++i) {
 
  582     double *wp = w.
ptr(0);
 
  588     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  590     for (
int i = is; i < is + ns; ++i) {
 
  599     double *wp = w.
ptr(0);
 
  605     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  607     for (
int i = is; i < is + ns; ++i) {
 
  615                                const Field& f, 
const int ieo)
 
  617     const double *v1 = f.
ptr(0);
 
  618     double       *v2 = w.
ptr(0);
 
  624     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  626     for (
int i = is; i < is + ns; ++i) {
 
  640     for (
int i = is; i < is + ns; ++i) {
 
  644     for (
int i = is; i < is + ns; ++i) {
 
  652                                const Field& f, 
const int ieo)
 
  654     const double *v1 = f.
ptr(0);
 
  655     double       *v2 = w.
ptr(0);
 
  661     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  663     for (
int i = is; i < is + ns; ++i) {
 
  678     for (
int i = is; i < is + ns; ++i) {
 
  682     for (
int i = is; i < is + ns; ++i) {
 
  690                                const Field& f, 
const int ieo)
 
  692     const double *v1 = f.
ptr(0);
 
  693     double       *v2 = w.
ptr(0);
 
  699     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  701     for (
int i = is; i < is + ns; ++i) {
 
  716     for (
int i = is; i < is + ns; ++i) {
 
  720     for (
int i = is; i < is + ns; ++i) {
 
  728                                const Field& f, 
const int ieo)
 
  730     const double *v1 = f.
ptr(0);
 
  731     double       *v2 = w.
ptr(0);
 
  737     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  739     for (
int i = is; i < is + ns; ++i) {
 
  754     for (
int i = is; i < is + ns; ++i) {
 
  758     for (
int i = is; i < is + ns; ++i) {
 
  766                                const Field& f, 
const int ieo)
 
  768     const double *v1 = f.
ptr(0);
 
  769     double       *v2 = w.
ptr(0);
 
  775     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  777     for (
int i = is; i < is + ns; ++i) {
 
  792     for (
int i = is; i < is + ns; ++i) {
 
  796     for (
int i = is; i < is + ns; ++i) {
 
  804                                const Field& f, 
const int ieo)
 
  806     const double *v1 = f.
ptr(0);
 
  807     double       *v2 = w.
ptr(0);
 
  813     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  815     for (
int i = is; i < is + ns; ++i) {
 
  830     for (
int i = is; i < is + ns; ++i) {
 
  834     for (
int i = is; i < is + ns; ++i) {
 
  842                                      const Field& f, 
const int ieo)
 
  844     const double *v1 = f.
ptr(0);
 
  845     double       *v2 = w.
ptr(0);
 
  851     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  853     for (
int i = is; i < is + ns; ++i) {
 
  867     for (
int i = is; i < is + ns; ++i) {
 
  871     for (
int i = is; i < is + ns; ++i) {
 
  879                                      const Field& f, 
const int ieo)
 
  881     const double *v1 = f.
ptr(0);
 
  882     double       *v2 = w.
ptr(0);
 
  888     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  890     for (
int i = is; i < is + ns; ++i) {
 
  904     for (
int i = is; i < is + ns; ++i) {
 
  908     for (
int i = is; i < is + ns; ++i) {
 
  916                                       const Field& f, 
const int ieo)
 
  918     const double *v1 = f.
ptr(0);
 
  919     double       *v2 = w.
ptr(0);
 
  925     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  927     for (
int i = is; i < is + ns; ++i) {
 
  942     for (
int i = is; i < is + ns; ++i) {
 
  946     for (
int i = is; i < is + ns; ++i) {
 
  954                                       const Field& f, 
const int ieo)
 
  956     const double *v1 = f.
ptr(0);
 
  957     double       *v2 = w.
ptr(0);
 
  963     int ns = 
m_Ntask * (ith + 1) / nth - is;
 
  965     for (
int i = is; i < is + ns; ++i) {
 
  980     for (
int i = is; i < is + ns; ++i) {
 
  984     for (
int i = is; i < is + ns; ++i) {
 
std::vector< Channel * > m_fw_send
 
void scal(Field &x, const double a)
scal(x, a): x = a * x 
 
void prePropD(Field &, Field &, const Field &)
 
void mult_tm1_chiral_thread(int, double *, const double *, int)
 
double * vcp1_xp
arrays for data transfer. 
 
void detailed(const char *format,...)
 
void mult_tm1_dirac_thread(int, double *, const double *, int)
 
std::vector< double > m_boundary2
b.c. for each node. 
 
static int get_num_threads()
returns available number of threads. 
 
const double * ptr(const int jin, const int site, const int jex) const 
 
void set(const int jin, const int site, const int jex, double v)
 
void DDdag(Field &v, const Field &f)
 
std::vector< int > m_boundary
boundary condition. 
 
void gm5_self_chiral(Field &)
 
void mult_yp2_thread(int, double *, const double *, int)
 
void Meo_gm5(Field &, const Field &, const int ieo)
 
void general(const char *format,...)
 
static Bridge::VerboseLevel Vlevel()
 
Container of Field-type object. 
 
int fetch_double(const string &key, double &value) const 
 
static const std::string class_name
 
void Mdageo(Field &, const Field &, const int ieo)
 
void set_config(Field *U)
setting pointer to the gauge configuration. 
 
static Channel * recv_init(int count, int idir, int ipm)
 
void Ddag(Field &v, const Field &f)
 
void(Fopr_Wilson_eo::* m_gm5)(Field &, const Field &)
 
void mult_xp(Field &, const Field &, const int ieo)
 
void mult_tp2_dirac_thread(int, double *, const double *, int)
 
void(Fopr_Wilson_eo::* m_gm5_self)(Field &)
 
void init(const std::string)
 
void mult_ypb_thread(int, double *, const double *, int)
 
static int ipe(const int dir)
logical coordinate of current proc. 
 
void mult_tp_chiral(Field &, const Field &, const int ieo)
 
void mult_zm(Field &, const Field &, const int ieo)
 
void copy(Field &y, const Field &x)
copy(y, x): y = x 
 
void postPropD(Field &, const Field &, const Field &)
 
void gm5_chiral_thread(int, double *, const double *)
 
void convertField(Field &eo, const Field &lex)
 
void mult_yp1_thread(int, double *, const double *, int)
 
void Meo(Field &, const Field &, const int ieo)
 
void mult_tm2_chiral_thread(int, double *, const double *, int)
 
void mult_tm_chiral(Field &, const Field &, const int ieo)
 
void scal_impl(Field &, double)
 
void H(Field &v, const Field &f)
 
static int get_thread_id()
returns thread id. 
 
void gm5_chiral(Field &, const Field &)
 
void mult_ym2_thread(int, double *, const double *, int)
 
Wilson-type fermion field. 
 
double flop_count()
retuns number of floating point operations of Meo. 
 
void gm5_dirac(Field &, const Field &)
 
void scal_thread(int, double *, double)
 
void mult_xm1_thread(int, double *, const double *, int)
 
void mult_zp2_thread(int, double *, const double *, int)
 
void mult_tp1_dirac_thread(int, double *, const double *, int)
 
void gm5_dirac_thread(int, double *, const double *)
 
void D(Field &v, const Field &f)
 
void mult_tm_dirac(Field &, const Field &, const int ieo)
 
void MeoMoe(Field &, const Field &)
 
void mult_xp2_thread(int, double *, const double *, int)
 
void mult_zp1_thread(int, double *, const double *, int)
 
Bridge::VerboseLevel m_vl
 
void mult_tpb_dirac_thread(int, double *, const double *, int)
 
void mult_zp(Field &, const Field &, const int ieo)
 
void mult_zmb_thread(int, double *, const double *, int)
 
void reset(const int Nin, const int Nvol, const int Nex, const element_type cmpl=COMPLEX)
 
void mult_tp1_chiral_thread(int, double *, const double *, int)
 
static void sync_barrier_all()
barrier among all the threads and nodes. 
 
std::string m_repr
Dirac matrix representation. 
 
void mult_zpb_thread(int, double *, const double *, int)
 
void mult_tm2_dirac_thread(int, double *, const double *, int)
 
void mult_xmb_thread(int, double *, const double *, int)
 
void aypx(const double a, Field &y, const Field &x)
aypx(y, a, x): y := a * y + x 
 
static int exchange(int count, double *recv_buf, double *send_buf, int idir, int ipm, int tag)
receive array of double from upstream specified by idir and ipm, and send array to downstream...
 
void(Fopr_Wilson_eo::* m_mult_tm)(Field &, const Field &, const int ieo)
 
void mult_tpb_chiral_thread(int, double *, const double *, int)
 
Field_G * m_U
dummy: pointing m_Ueo. 
 
void paranoiac(const char *format,...)
 
void mult_ym(Field &, const Field &, const int ieo)
 
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y 
 
void set_parameters(const Parameters ¶ms)
 
void DdagD(Field &v, const Field &f)
 
void crucial(const char *format,...)
 
std::vector< Channel * > m_bw_recv
 
void mult_tp2_chiral_thread(int, double *, const double *, int)
 
double m_kappa
hopping parameter. 
 
void mult_ymb_thread(int, double *, const double *, int)
 
void clear_thread(int, double *)
 
void prePropDag(Field &, Field &, const Field &)
 
void mult_yp(Field &, const Field &, const int ieo)
 
void gm5p(const int mu, Field &, const Field &v)
gamma_5 (1 - gamma_mu) v(x + mu) used in force calculation. 
 
void mult_tmb_dirac_thread(int, double *, const double *, int)
 
void reverseField(Field &lex, const Field &eo)
 
void mult_gm5(Field &, const Field &)
gamma_5 multiplication. [31 Mar 2017 H.Matsufuru] 
 
static Channel * send_init(int count, int idir, int ipm)
 
void mult_ym1_thread(int, double *, const double *, int)
 
static int sync()
synchronize within small world. 
 
void mult_xm2_thread(int, double *, const double *, int)
 
void mult_zm2_thread(int, double *, const double *, int)
 
void mult_tp_dirac(Field &, const Field &, const int ieo)
 
void mult_xpb_thread(int, double *, const double *, int)
 
string get_string(const string &key) const 
 
int fetch_int_vector(const string &key, vector< int > &value) const 
 
void postPropDag(Field &, const Field &, const Field &)
 
void mult_zm1_thread(int, double *, const double *, int)
 
std::vector< Channel * > m_fw_recv
 
void mult_xm(Field &, const Field &, const int ieo)
 
void mult_tmb_chiral_thread(int, double *, const double *, int)
 
void mult_xp1_thread(int, double *, const double *, int)
 
static VerboseLevel set_verbose_level(const std::string &str)
 
std::vector< Channel * > m_bw_send
 
void gm5_self_dirac(Field &)
 
void(Fopr_Wilson_eo::* m_mult_tp)(Field &, const Field &, const int ieo)