Go to the documentation of this file.
10 #ifndef QXS_AINDEX_LEX_QWS_DD_INCLUDED
11 #define QXS_AINDEX_LEX_QWS_DD_INCLUDED
19 #include "lib_alt_QXS/inline/define_vlen.h"
20 #include "lib_alt_QXS/inline/define_params.h"
23 template<
typename REALTYPE>
24 inline int idx(
const int in,
const int Nin,
const int ist,
25 const int Nx,
const int Ny,
const int Nxv,
26 const int Nyv_,
const int Nstv,
const int ex)
33 int ixv = ixh /
VLEND;
35 int istv = ixv + Nxv * iyzt / 2;
36 return kx +
VLEND * (in + Nin * (istv + deo * Nstv / 2 + Nstv * ex));
41 inline int idx<float>(
const int in,
const int Nin,
const int ist,
42 const int Nx,
const int Ny,
const int Nxv,
43 const int Nyv_,
const int Nstv,
const int ex)
50 int ixv = ixh /
VLENS;
52 int istv = ixv + Nxv * iyzt / 2;
53 return kx +
VLENS * (in + Nin * (istv + deo * Nstv / 2 + Nstv * ex));
57 template<
typename REALTYPE>
81 template<
typename REALTYPE, Impl impl>
84 template<
typename REALTYPE>
89 int m_Nx, m_Ny,
m_Nz, m_Nt, m_Nst;
90 int m_Nxv, m_Nyv,
m_Nzt, m_Nstv;
116 m_Ndf = 2 * m_Nc * m_Nc;
117 m_Nvcd = 2 * m_Nc * m_Nd;
118 m_Nst = m_Nx * m_Ny * m_Nz * m_Nt;
119 m_Nxv = AIndex_lex_qxs_qws_dd::set_Nxv<REALTYPE>(m_Nx);
122 m_Nstv = m_Nxv * m_Ny * m_Nzt;
128 int site(
const int x,
const int y,
const int z,
const int t)
const
129 {
return x + m_Nxv * (y + m_Ny * (z + m_Nz * t)); }
131 int idx(
const int in,
const int Nin,
const int ist,
const int ex)
const
133 return AIndex_lex_qxs_qws_dd::idx<REALTYPE>(in, Nin, ist, m_Nx, m_Ny,
134 m_Nxv, m_Nyv, m_Nstv, ex);
137 int idx_G(
const int idf,
const int ist,
const int ex)
const
138 {
return idx(idf, m_Ndf, ist, ex); }
140 int idx_Gr(
const int ic1,
const int ic2,
const int ist,
const int ex)
const
142 int idf = 2 * (ic2 + m_Nc * ic1);
143 return idx_G(idf, ist, ex);
146 int idx_Gi(
const int ic1,
const int ic2,
const int ist,
const int ex)
const
148 int idf = 1 + 2 * (ic2 + m_Nc * ic1);
149 return idx_G(idf, ist, ex);
152 int idx_SP(
const int in,
const int ist,
const int ex)
const
153 {
return idx(in, m_Nvcd, ist, ex); }
155 int idx_SPr(
const int ic,
const int id,
const int ist,
const int ex)
const
157 int in = 2 * (
id + m_Nd * ic);
158 return idx_SP(in, ist, ex);
161 int idx_SPi(
const int ic,
const int id,
const int ist,
const int ex)
const
163 int in = 1 + 2 * (
id + m_Nd * ic);
164 return idx_SP(in, ist, ex);
int idx_Gi(const int ic1, const int ic2, const int ist, const int ex) const
int idx< float >(const int in, const int Nin, const int ist, const int Nx, const int Ny, const int Nxv, const int Nyv_, const int Nstv, const int ex)
int idx_SP(const int in, const int ist, const int ex) const
int idx(const int in, const int Nin, const int ist, const int Nx, const int Ny, const int Nxv, const int Nyv_, const int Nstv, const int ex)
int set_Nxv< float >(const int Nx)
int set_Nxv(const int Nx)
void paranoiac(const char *format,...)
int idx_SPr(const int ic, const int id, const int ist, const int ex) const
int site(const int x, const int y, const int z, const int t) const
AIndex_lex_QWS_dd(int Nx, int Ny, int Nz, int Nt)
int idx_G(const int idf, const int ist, const int ex) const
int idx_Gr(const int ic1, const int ic2, const int ist, const int ex) const
int idx_SPi(const int ic, const int id, const int ist, const int ex) const
int idx(const int in, const int Nin, const int ist, const int ex) const