#ifndef GRID_LATTICE_UNARY_H #define GRID_LATTICE_UNARY_H namespace Grid { ////////////////////////////////////////////////////////////////////////////////////////////////////// // avoid copy back routines for mult, mac, sub, add ////////////////////////////////////////////////////////////////////////////////////////////////////// template Lattice sqrt(const Lattice &rhs){ Lattice ret(rhs._grid); ret.checkerboard = rhs.checkerboard; conformable(ret,rhs); PARALLEL_FOR_LOOP for(int ss=0;ssoSites();ss++){ ret._odata[ss]=sqrt(rhs._odata[ss]); } return ret; } template Lattice rsqrt(const Lattice &rhs){ Lattice ret(rhs._grid); ret.checkerboard = rhs.checkerboard; conformable(ret,rhs); PARALLEL_FOR_LOOP for(int ss=0;ssoSites();ss++){ ret._odata[ss]=rsqrt(rhs._odata[ss]); } return ret; } } #endif