mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 05:54:32 +00:00 
			
		
		
		
	Extra lattice unaries
This commit is contained in:
		@@ -3,51 +3,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Grid {
 | 
					namespace Grid {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
  //  avoid copy back routines for mult, mac, sub, add
 | 
					 | 
				
			||||||
  //////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
  template<class obj> Lattice<obj> sqrt(const Lattice<obj> &rhs){
 | 
					 | 
				
			||||||
    Lattice<obj> ret(rhs._grid);
 | 
					 | 
				
			||||||
    ret.checkerboard = rhs.checkerboard;
 | 
					 | 
				
			||||||
    conformable(ret,rhs);
 | 
					 | 
				
			||||||
PARALLEL_FOR_LOOP
 | 
					 | 
				
			||||||
    for(int ss=0;ss<rhs._grid->oSites();ss++){
 | 
					 | 
				
			||||||
      ret._odata[ss]=sqrt(rhs._odata[ss]);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return ret;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  template<class obj> Lattice<obj> rsqrt(const Lattice<obj> &rhs){
 | 
					 | 
				
			||||||
    Lattice<obj> ret(rhs._grid);
 | 
					 | 
				
			||||||
    ret.checkerboard = rhs.checkerboard;
 | 
					 | 
				
			||||||
    conformable(ret,rhs);
 | 
					 | 
				
			||||||
PARALLEL_FOR_LOOP
 | 
					 | 
				
			||||||
    for(int ss=0;ss<rhs._grid->oSites();ss++){
 | 
					 | 
				
			||||||
      ret._odata[ss]=rsqrt(rhs._odata[ss]);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return ret;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  template<class obj> Lattice<obj> sin(const Lattice<obj> &rhs){
 | 
					 | 
				
			||||||
    Lattice<obj> ret(rhs._grid);
 | 
					 | 
				
			||||||
    ret.checkerboard = rhs.checkerboard;
 | 
					 | 
				
			||||||
    conformable(ret,rhs);
 | 
					 | 
				
			||||||
PARALLEL_FOR_LOOP
 | 
					 | 
				
			||||||
    for(int ss=0;ss<rhs._grid->oSites();ss++){
 | 
					 | 
				
			||||||
      ret._odata[ss]=sin(rhs._odata[ss]);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return ret;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  template<class obj> Lattice<obj> cos(const Lattice<obj> &rhs){
 | 
					 | 
				
			||||||
    Lattice<obj> ret(rhs._grid);
 | 
					 | 
				
			||||||
    ret.checkerboard = rhs.checkerboard;
 | 
					 | 
				
			||||||
    conformable(ret,rhs);
 | 
					 | 
				
			||||||
PARALLEL_FOR_LOOP
 | 
					 | 
				
			||||||
    for(int ss=0;ss<rhs._grid->oSites();ss++){
 | 
					 | 
				
			||||||
      ret._odata[ss]=cos(rhs._odata[ss]);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return ret;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  template<class obj> Lattice<obj> pow(const Lattice<obj> &rhs,RealD y){
 | 
					  template<class obj> Lattice<obj> pow(const Lattice<obj> &rhs,RealD y){
 | 
				
			||||||
    Lattice<obj> ret(rhs._grid);
 | 
					    Lattice<obj> ret(rhs._grid);
 | 
				
			||||||
    ret.checkerboard = rhs.checkerboard;
 | 
					    ret.checkerboard = rhs.checkerboard;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user