24#define LATTICE_VIEW_STRICT
94 this->cpu_ptr = (
void *)this->
_odata;
119#define autoView(l_v,l,mode) \
120 auto l_v = l.View(mode); \
121 ViewCloser<decltype(l_v)> _autoView##l_v(l_v);
132template <
typename T>
using is_lattice = std::is_base_of<LatticeBase, T>;
133template <
typename T>
using is_lattice_expr = std::is_base_of<LatticeExpressionBase,T >;
139template <
typename Op,
typename _T1>
149template <
typename Op,
typename _T1,
typename _T2>
161template <
typename Op,
typename _T1,
typename _T2,
typename _T3>
#define accelerator_inline
void accelerator_inline conformable(GridBase *lhs, GridBase *rhs)
std::is_base_of< LatticeExpressionBase, T > is_lattice_expr
ViewMapBase< T, std::is_base_of< LatticeBase, T >::value > ViewMap
std::is_base_of< LatticeBase, T > is_lattice
#define NAMESPACE_BEGIN(A)
accelerator_inline vobj coalescedRead(const vobj &__restrict__ vec, int lane=0)
vobj * getHostPointer(void) const
accelerator_inline LatticeAccelerator()
accelerator_inline int Checkerboard(void) const
accelerator_inline ViewAdvise Advise(void) const
accelerator_inline ViewAdvise & Advise(void)
accelerator_inline uint64_t oSites(void) const
accelerator_inline int & Checkerboard(void)
GridBase * getGrid(void) const
accelerator_inline void Conformable(GridBase *&grid) const
LatticeBinaryExpression(Op _op, const _T1 &_arg1, const _T2 &_arg2)
LatticeTrinaryExpression(Op _op, const _T1 &_arg1, const _T2 &_arg2, const _T3 &_arg3)
LatticeUnaryExpression(Op _op, const _T1 &_arg1)
accelerator_inline uint64_t begin(void) const
accelerator_inline uint64_t end(void) const
accelerator_inline vobj & operator[](size_t i) const
LatticeView(const LatticeAccelerator< vobj > &refer_to_me, ViewMode mode)
LatticeView(const LatticeAccelerator< vobj > &refer_to_me)
accelerator_inline const vobj & operator()(size_t i) const
LatticeView(const LatticeView< vobj > &refer_to_me)=default
void ViewOpen(ViewMode mode)
accelerator_inline uint64_t size(void) const
static void * ViewOpen(void *CpuPtr, size_t bytes, ViewMode mode, ViewAdvise hint)
static void ViewClose(void *CpuPtr, ViewMode mode)
LatticeView< typename T::vector_object > Type