56 for(
int d=0;d<_d;d++){
70 assert(disp == -1 || disp == 0 || disp == 1);
71 assert(
base+0 <= dir && dir <
base+4);
93 if(dir == 0 and disp == 0)
96 return (1 - disp) / 2 * 4 + dir -
base;
128 for(
int mu=0;mu<
Nd;mu++) rev[mu]= -shft[mu];
129 for(
int p=0;p<
npoint;p++){
139 this->shifts.resize(0);
140 int Nd = this->grid->
Nd();
143 for(
int s0=this->stencil_lo[dd+0];s0<=this->stencil_hi[dd+0];s0++){
144 for(
int s1=this->stencil_lo[dd+1];s1<=this->stencil_hi[dd+1];s1++){
145 for(
int s2=this->stencil_lo[dd+2];s2<=this->stencil_hi[dd+2];s2++){
146 for(
int s3=this->stencil_lo[dd+3];s3<=this->stencil_hi[dd+3];s3++){
153 if(nhops<=this->
hops) this->shifts.push_back(sft);
155 this->npoint = this->shifts.size();
156 std::cout <<
GridLogMessage <<
"NonLocalStencilGeometry has "<< this->npoint <<
" terms in stencil "<<std::endl;
165 for(
int d=0;d<grid->
Nd();d++){
166 if ( latt[d] == 1 ) {
170 }
else if ( latt[d] == 2 ) {
174 }
else if ( latt[d] > 2 ) {
AcceleratorVector< int, MaxDims > Coordinate
accelerator_inline Grid_simd< S, V > abs(const Grid_simd< S, V > &r)
GridLogger GridLogMessage(1, "Message", GridLogColours, "NORMAL")
#define NAMESPACE_BEGIN(A)
std::vector< int > displacements
std::vector< int > points_dagger
int point(int dir, int disp)
std::vector< int > directions
NearestStencilGeometry4D(GridCartesian *Coarse)
NearestStencilGeometry5D(GridCartesian *Coarse)
NextToNearestStencilGeometry4D(GridCartesian *Coarse)
NextToNearestStencilGeometry5D(GridCartesian *Coarse)
NextToNextToNextToNearestStencilGeometry4D(GridCartesian *Coarse)
NextToNextToNextToNearestStencilGeometry5D(GridCartesian *Coarse)
NonLocalStencilGeometry4D(GridCartesian *Coarse, int _hops)
virtual ~NonLocalStencilGeometry4D()
virtual int DerivedDimSkip(void)
NonLocalStencilGeometry5D(GridCartesian *Coarse, int _hops)
virtual int DerivedDimSkip(void)
virtual ~NonLocalStencilGeometry5D()
std::vector< Coordinate > shifts
virtual ~NonLocalStencilGeometry()
NonLocalStencilGeometry(GridCartesian *_coarse_grid, int _hops, int _skip)