mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 14:04:32 +00:00 
			
		
		
		
	Shaken out stencil to the point where I think wilson dslash is correct.
Need to audit code carefully, consolidate between stencil and cshift, and then benchmark and optimise.
This commit is contained in:
		@@ -163,6 +163,7 @@ namespace Grid {
 | 
			
		||||
	// all subtypes; may not be a good assumption, but could
 | 
			
		||||
	// add the vector width as a template param for BG/Q for example
 | 
			
		||||
	////////////////////////////////////////////////////////////////////
 | 
			
		||||
	/*
 | 
			
		||||
	friend inline void permute(vComplexD &y,vComplexD b,int perm)
 | 
			
		||||
	{
 | 
			
		||||
	  Gpermute<vComplexD>(y,b,perm);
 | 
			
		||||
@@ -183,6 +184,7 @@ namespace Grid {
 | 
			
		||||
	{
 | 
			
		||||
	  Gextract<vComplexD,ComplexD>(y,extracted);
 | 
			
		||||
	}
 | 
			
		||||
	*/
 | 
			
		||||
 | 
			
		||||
        ///////////////////////
 | 
			
		||||
        // Splat
 | 
			
		||||
 
 | 
			
		||||
@@ -412,6 +412,7 @@ friend inline void vstore(const vComplexF &ret, ComplexF *a){
 | 
			
		||||
      {
 | 
			
		||||
	Gpermute<vComplexF>(y,b,perm);
 | 
			
		||||
      }
 | 
			
		||||
      /*
 | 
			
		||||
      friend inline void merge(vComplexF &y,std::vector<ComplexF *> &extracted)
 | 
			
		||||
      {
 | 
			
		||||
	Gmerge<vComplexF,ComplexF >(y,extracted);
 | 
			
		||||
@@ -428,7 +429,7 @@ friend inline void vstore(const vComplexF &ret, ComplexF *a){
 | 
			
		||||
      {
 | 
			
		||||
	Gextract<vComplexF,ComplexF>(y,extracted);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      */
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -221,6 +221,7 @@ namespace Grid {
 | 
			
		||||
      {
 | 
			
		||||
	Gpermute<vInteger>(y,b,perm);
 | 
			
		||||
      }
 | 
			
		||||
      /*
 | 
			
		||||
      friend inline void merge(vInteger &y,std::vector<Integer *> &extracted)
 | 
			
		||||
      {
 | 
			
		||||
	Gmerge<vInteger,Integer>(y,extracted);
 | 
			
		||||
@@ -237,7 +238,7 @@ namespace Grid {
 | 
			
		||||
      {
 | 
			
		||||
	Gextract<vInteger,Integer>(y,extracted);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      */
 | 
			
		||||
 | 
			
		||||
    public:
 | 
			
		||||
        static inline int Nsimd(void) { return sizeof(ivec)/sizeof(Integer);}
 | 
			
		||||
 
 | 
			
		||||
@@ -105,6 +105,7 @@ namespace Grid {
 | 
			
		||||
	// all subtypes; may not be a good assumption, but could
 | 
			
		||||
	// add the vector width as a template param for BG/Q for example
 | 
			
		||||
	////////////////////////////////////////////////////////////////////
 | 
			
		||||
	/*
 | 
			
		||||
	friend inline void permute(vRealD &y,vRealD b,int perm)
 | 
			
		||||
	{
 | 
			
		||||
	  Gpermute<vRealD>(y,b,perm);
 | 
			
		||||
@@ -125,7 +126,7 @@ namespace Grid {
 | 
			
		||||
	{
 | 
			
		||||
	  Gextract<vRealD,RealD>(y,extracted);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	*/
 | 
			
		||||
        
 | 
			
		||||
        friend inline void vsplat(vRealD &ret,double a){
 | 
			
		||||
#if defined (AVX1)|| defined (AVX2)
 | 
			
		||||
 
 | 
			
		||||
@@ -127,6 +127,7 @@ namespace Grid {
 | 
			
		||||
	// all subtypes; may not be a good assumption, but could
 | 
			
		||||
	// add the vector width as a template param for BG/Q for example
 | 
			
		||||
	////////////////////////////////////////////////////////////////////
 | 
			
		||||
	/*
 | 
			
		||||
	friend inline void permute(vRealF &y,vRealF b,int perm)
 | 
			
		||||
	{
 | 
			
		||||
	  Gpermute<vRealF>(y,b,perm);
 | 
			
		||||
@@ -147,7 +148,7 @@ namespace Grid {
 | 
			
		||||
	{
 | 
			
		||||
	  Gextract<vRealF,RealF>(y,extracted);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	*/
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
        /////////////////////////////////////////////////////
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user