mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-10-30 19:44:32 +00:00 
			
		
		
		
	replace std::vector with Vector
This commit is contained in:
		| @@ -197,18 +197,18 @@ template<class Impl> | ||||
| void CayleyFermion5D<Impl>::M5D   (const FermionField &psi, FermionField &chi) | ||||
| { | ||||
|   int Ls=this->Ls; | ||||
|   std::vector<Coeff_t> diag (Ls,1.0); | ||||
|   std::vector<Coeff_t> upper(Ls,-1.0); upper[Ls-1]=mass; | ||||
|   std::vector<Coeff_t> lower(Ls,-1.0); lower[0]   =mass; | ||||
|   Vector<Coeff_t> diag (Ls,1.0); | ||||
|   Vector<Coeff_t> upper(Ls,-1.0); upper[Ls-1]=mass; | ||||
|   Vector<Coeff_t> lower(Ls,-1.0); lower[0]   =mass; | ||||
|   M5D(psi,chi,chi,lower,diag,upper); | ||||
| } | ||||
| template<class Impl> | ||||
| void CayleyFermion5D<Impl>::Meooe5D    (const FermionField &psi, FermionField &Din) | ||||
| { | ||||
|   int Ls=this->Ls; | ||||
|   std::vector<Coeff_t> diag = bs; | ||||
|   std::vector<Coeff_t> upper= cs; | ||||
|   std::vector<Coeff_t> lower= cs;  | ||||
|   Vector<Coeff_t> diag = bs; | ||||
|   Vector<Coeff_t> upper= cs; | ||||
|   Vector<Coeff_t> lower= cs;  | ||||
|   upper[Ls-1]=-mass*upper[Ls-1]; | ||||
|   lower[0]   =-mass*lower[0]; | ||||
|   M5D(psi,psi,Din,lower,diag,upper); | ||||
| @@ -217,9 +217,9 @@ void CayleyFermion5D<Impl>::Meooe5D    (const FermionField &psi, FermionField &D | ||||
| template<class Impl> void CayleyFermion5D<Impl>::Meo5D     (const FermionField &psi, FermionField &chi) | ||||
| { | ||||
|   int Ls=this->Ls; | ||||
|   std::vector<Coeff_t> diag = beo; | ||||
|   std::vector<Coeff_t> upper(Ls); | ||||
|   std::vector<Coeff_t> lower(Ls); | ||||
|   Vector<Coeff_t> diag = beo; | ||||
|   Vector<Coeff_t> upper(Ls); | ||||
|   Vector<Coeff_t> lower(Ls); | ||||
|   for(int i=0;i<Ls;i++) { | ||||
|     upper[i]=-ceo[i]; | ||||
|     lower[i]=-ceo[i]; | ||||
| @@ -232,9 +232,9 @@ template<class Impl> | ||||
| void CayleyFermion5D<Impl>::Mooee       (const FermionField &psi, FermionField &chi) | ||||
| { | ||||
|   int Ls=this->Ls; | ||||
|   std::vector<Coeff_t> diag = bee; | ||||
|   std::vector<Coeff_t> upper(Ls); | ||||
|   std::vector<Coeff_t> lower(Ls); | ||||
|   Vector<Coeff_t> diag = bee; | ||||
|   Vector<Coeff_t> upper(Ls); | ||||
|   Vector<Coeff_t> lower(Ls); | ||||
|   for(int i=0;i<Ls;i++) { | ||||
|     upper[i]=-cee[i]; | ||||
|     lower[i]=-cee[i]; | ||||
| @@ -247,9 +247,9 @@ template<class Impl> | ||||
| void CayleyFermion5D<Impl>::MooeeDag    (const FermionField &psi, FermionField &chi) | ||||
| { | ||||
|   int Ls=this->Ls; | ||||
|   std::vector<Coeff_t> diag = bee; | ||||
|   std::vector<Coeff_t> upper(Ls); | ||||
|   std::vector<Coeff_t> lower(Ls); | ||||
|   Vector<Coeff_t> diag = bee; | ||||
|   Vector<Coeff_t> upper(Ls); | ||||
|   Vector<Coeff_t> lower(Ls); | ||||
|  | ||||
|   for (int s=0;s<Ls;s++){ | ||||
|     // Assemble the 5d matrix | ||||
| @@ -277,9 +277,9 @@ template<class Impl> | ||||
| void CayleyFermion5D<Impl>::M5Ddag (const FermionField &psi, FermionField &chi) | ||||
| { | ||||
|   int Ls=this->Ls; | ||||
|   std::vector<Coeff_t> diag(Ls,1.0); | ||||
|   std::vector<Coeff_t> upper(Ls,-1.0); | ||||
|   std::vector<Coeff_t> lower(Ls,-1.0); | ||||
|   Vector<Coeff_t> diag(Ls,1.0); | ||||
|   Vector<Coeff_t> upper(Ls,-1.0); | ||||
|   Vector<Coeff_t> lower(Ls,-1.0); | ||||
|   upper[Ls-1]=-mass*upper[Ls-1]; | ||||
|   lower[0]   =-mass*lower[0]; | ||||
|   M5Ddag(psi,chi,chi,lower,diag,upper); | ||||
| @@ -289,9 +289,9 @@ template<class Impl> | ||||
| void CayleyFermion5D<Impl>::MeooeDag5D    (const FermionField &psi, FermionField &Din) | ||||
| { | ||||
|   int Ls=this->Ls; | ||||
|   std::vector<Coeff_t> diag =bs; | ||||
|   std::vector<Coeff_t> upper=cs; | ||||
|   std::vector<Coeff_t> lower=cs;  | ||||
|   Vector<Coeff_t> diag =bs; | ||||
|   Vector<Coeff_t> upper=cs; | ||||
|   Vector<Coeff_t> lower=cs;  | ||||
|  | ||||
|   for (int s=0;s<Ls;s++){ | ||||
|     if ( s== 0 ) { | ||||
| @@ -428,7 +428,7 @@ void CayleyFermion5D<Impl>::MeoDeriv(GaugeField &mat,const FermionField &U,const | ||||
| template<class Impl> | ||||
| void CayleyFermion5D<Impl>::SetCoefficientsTanh(Approx::zolotarev_data *zdata,RealD b,RealD c) | ||||
| { | ||||
|   std::vector<Coeff_t> gamma(this->Ls); | ||||
|   Vector<Coeff_t> gamma(this->Ls); | ||||
|   for(int s=0;s<this->Ls;s++) gamma[s] = zdata->gamma[s]; | ||||
|   SetCoefficientsInternal(1.0,gamma,b,c); | ||||
| } | ||||
| @@ -436,13 +436,13 @@ void CayleyFermion5D<Impl>::SetCoefficientsTanh(Approx::zolotarev_data *zdata,Re | ||||
| template<class Impl> | ||||
| void CayleyFermion5D<Impl>::SetCoefficientsZolotarev(RealD zolo_hi,Approx::zolotarev_data *zdata,RealD b,RealD c) | ||||
| { | ||||
|   std::vector<Coeff_t> gamma(this->Ls); | ||||
|   Vector<Coeff_t> gamma(this->Ls); | ||||
|   for(int s=0;s<this->Ls;s++) gamma[s] = zdata->gamma[s]; | ||||
|   SetCoefficientsInternal(zolo_hi,gamma,b,c); | ||||
| } | ||||
| //Zolo | ||||
| template<class Impl> | ||||
| void CayleyFermion5D<Impl>::SetCoefficientsInternal(RealD zolo_hi,std::vector<Coeff_t> & gamma,RealD b,RealD c) | ||||
| void CayleyFermion5D<Impl>::SetCoefficientsInternal(RealD zolo_hi,Vector<Coeff_t> & gamma,RealD b,RealD c) | ||||
| { | ||||
|   int Ls=this->Ls; | ||||
|  | ||||
|   | ||||
| @@ -108,16 +108,16 @@ public: | ||||
|   void M5D(const FermionField &psi, | ||||
| 	   const FermionField &phi, | ||||
| 	   FermionField &chi, | ||||
| 	   std::vector<Coeff_t> &lower, | ||||
| 	   std::vector<Coeff_t> &diag, | ||||
| 	   std::vector<Coeff_t> &upper); | ||||
| 	   Vector<Coeff_t> &lower, | ||||
| 	   Vector<Coeff_t> &diag, | ||||
| 	   Vector<Coeff_t> &upper); | ||||
|  | ||||
|   void M5Ddag(const FermionField &psi, | ||||
| 	      const FermionField &phi, | ||||
| 	      FermionField &chi, | ||||
| 	      std::vector<Coeff_t> &lower, | ||||
| 	      std::vector<Coeff_t> &diag, | ||||
| 	      std::vector<Coeff_t> &upper); | ||||
| 	      Vector<Coeff_t> &lower, | ||||
| 	      Vector<Coeff_t> &diag, | ||||
| 	      Vector<Coeff_t> &upper); | ||||
|  | ||||
|   void MooeeInternal(const FermionField &in, FermionField &out,int dag,int inv); | ||||
|   void MooeeInternalCompute(int dag, int inv, Vector<iSinglet<Simd> > & Matp, Vector<iSinglet<Simd> > & Matm); | ||||
| @@ -149,29 +149,29 @@ public: | ||||
|   RealD mass; | ||||
|  | ||||
|       // Save arguments to SetCoefficientsInternal | ||||
|       std::vector<Coeff_t> _gamma; | ||||
|       Vector<Coeff_t> _gamma; | ||||
|       RealD                _zolo_hi; | ||||
|       RealD                _b; | ||||
|       RealD                _c; | ||||
|  | ||||
|   // Cayley form Moebius (tanh and zolotarev) | ||||
|   std::vector<Coeff_t> omega; | ||||
|   std::vector<Coeff_t> bs;    // S dependent coeffs | ||||
|   std::vector<Coeff_t> cs; | ||||
|   std::vector<Coeff_t> as; | ||||
|   Vector<Coeff_t> omega; | ||||
|   Vector<Coeff_t> bs;    // S dependent coeffs | ||||
|   Vector<Coeff_t> cs; | ||||
|   Vector<Coeff_t> as; | ||||
|   // For preconditioning Cayley form | ||||
|   std::vector<Coeff_t> bee; | ||||
|   std::vector<Coeff_t> cee; | ||||
|   std::vector<Coeff_t> aee; | ||||
|   std::vector<Coeff_t> beo; | ||||
|   std::vector<Coeff_t> ceo; | ||||
|   std::vector<Coeff_t> aeo; | ||||
|   Vector<Coeff_t> bee; | ||||
|   Vector<Coeff_t> cee; | ||||
|   Vector<Coeff_t> aee; | ||||
|   Vector<Coeff_t> beo; | ||||
|   Vector<Coeff_t> ceo; | ||||
|   Vector<Coeff_t> aeo; | ||||
|   // LDU factorisation of the eeoo matrix | ||||
|   std::vector<Coeff_t> lee; | ||||
|   std::vector<Coeff_t> leem; | ||||
|   std::vector<Coeff_t> uee; | ||||
|   std::vector<Coeff_t> ueem; | ||||
|   std::vector<Coeff_t> dee; | ||||
|   Vector<Coeff_t> lee; | ||||
|   Vector<Coeff_t> leem; | ||||
|   Vector<Coeff_t> uee; | ||||
|   Vector<Coeff_t> ueem; | ||||
|   Vector<Coeff_t> dee; | ||||
|  | ||||
|   // Matrices of 5d ee inverse params | ||||
|   Vector<iSinglet<Simd> >  MatpInv; | ||||
| @@ -203,16 +203,16 @@ public: | ||||
| protected: | ||||
|   virtual void SetCoefficientsZolotarev(RealD zolohi,Approx::zolotarev_data *zdata,RealD b,RealD c); | ||||
|   virtual void SetCoefficientsTanh(Approx::zolotarev_data *zdata,RealD b,RealD c); | ||||
|   virtual void SetCoefficientsInternal(RealD zolo_hi,std::vector<Coeff_t> & gamma,RealD b,RealD c); | ||||
|   virtual void SetCoefficientsInternal(RealD zolo_hi,Vector<Coeff_t> & gamma,RealD b,RealD c); | ||||
| }; | ||||
|  | ||||
| NAMESPACE_END(Grid); | ||||
|  | ||||
| #define INSTANTIATE_DPERP(A)						\ | ||||
|   template void CayleyFermion5D< A >::M5D(const FermionField &psi,const FermionField &phi,FermionField &chi, \ | ||||
| 					  std::vector<Coeff_t> &lower,std::vector<Coeff_t> &diag,std::vector<Coeff_t> &upper); \ | ||||
| 					  Vector<Coeff_t> &lower,Vector<Coeff_t> &diag,Vector<Coeff_t> &upper); \ | ||||
|   template void CayleyFermion5D< A >::M5Ddag(const FermionField &psi,const FermionField &phi,FermionField &chi,	\ | ||||
| 					     std::vector<Coeff_t> &lower,std::vector<Coeff_t> &diag,std::vector<Coeff_t> &upper); \ | ||||
| 					     Vector<Coeff_t> &lower,Vector<Coeff_t> &diag,Vector<Coeff_t> &upper); \ | ||||
|   template void CayleyFermion5D< A >::MooeeInv    (const FermionField &psi, FermionField &chi); \ | ||||
|   template void CayleyFermion5D< A >::MooeeInvDag (const FermionField &psi, FermionField &chi); | ||||
|  | ||||
|   | ||||
| @@ -41,9 +41,9 @@ template<class Impl> | ||||
| void CayleyFermion5D<Impl>::M5D(const FermionField &psi_i, | ||||
| 				const FermionField &phi_i,  | ||||
| 				FermionField &chi_i, | ||||
| 				std::vector<Coeff_t> &lower, | ||||
| 				std::vector<Coeff_t> &diag, | ||||
| 				std::vector<Coeff_t> &upper) | ||||
| 				Vector<Coeff_t> &lower, | ||||
| 				Vector<Coeff_t> &diag, | ||||
| 				Vector<Coeff_t> &upper) | ||||
| { | ||||
|   chi_i.Checkerboard()=psi_i.Checkerboard(); | ||||
|   GridBase *grid=psi_i.Grid(); | ||||
| @@ -87,9 +87,9 @@ template<class Impl> | ||||
| void CayleyFermion5D<Impl>::M5Ddag(const FermionField &psi_i, | ||||
| 				   const FermionField &phi_i,  | ||||
| 				   FermionField &chi_i, | ||||
| 				   std::vector<Coeff_t> &lower, | ||||
| 				   std::vector<Coeff_t> &diag, | ||||
| 				   std::vector<Coeff_t> &upper) | ||||
| 				   Vector<Coeff_t> &lower, | ||||
| 				   Vector<Coeff_t> &diag, | ||||
| 				   Vector<Coeff_t> &upper) | ||||
| { | ||||
|   chi_i.Checkerboard()=psi_i.Checkerboard(); | ||||
|   GridBase *grid=psi_i.Grid(); | ||||
|   | ||||
| @@ -41,9 +41,9 @@ template<class Impl> | ||||
| void CayleyFermion5D<Impl>::M5D(const FermionField &psi, | ||||
| 				const FermionField &phi,  | ||||
| 				FermionField &chi, | ||||
| 				std::vector<Coeff_t> &lower, | ||||
| 				std::vector<Coeff_t> &diag, | ||||
| 				std::vector<Coeff_t> &upper) | ||||
| 				Vector<Coeff_t> &lower, | ||||
| 				Vector<Coeff_t> &diag, | ||||
| 				Vector<Coeff_t> &upper) | ||||
| { | ||||
|   Coeff_t one(1.0); | ||||
|   int Ls=this->Ls; | ||||
| @@ -64,9 +64,9 @@ template<class Impl> | ||||
| void CayleyFermion5D<Impl>::M5Ddag(const FermionField &psi, | ||||
| 				   const FermionField &phi,  | ||||
| 				   FermionField &chi, | ||||
| 				   std::vector<Coeff_t> &lower, | ||||
| 				   std::vector<Coeff_t> &diag, | ||||
| 				   std::vector<Coeff_t> &upper) | ||||
| 				   Vector<Coeff_t> &lower, | ||||
| 				   Vector<Coeff_t> &diag, | ||||
| 				   Vector<Coeff_t> &upper) | ||||
| { | ||||
|   Coeff_t one(1.0); | ||||
|   int Ls=this->Ls; | ||||
|   | ||||
| @@ -54,9 +54,9 @@ template<class Impl> | ||||
| void CayleyFermion5D<Impl>::M5D(const FermionField &psi_i, | ||||
| 				const FermionField &phi_i,  | ||||
| 				FermionField &chi_i, | ||||
| 				std::vector<Coeff_t> &lower, | ||||
| 				std::vector<Coeff_t> &diag, | ||||
| 				std::vector<Coeff_t> &upper) | ||||
| 				Vector<Coeff_t> &lower, | ||||
| 				Vector<Coeff_t> &diag, | ||||
| 				Vector<Coeff_t> &upper) | ||||
| { | ||||
|   chi_i.Checkerboard()=psi_i.Checkerboard(); | ||||
|   GridBase *grid=psi_i.Grid(); | ||||
| @@ -200,9 +200,9 @@ template<class Impl> | ||||
| void CayleyFermion5D<Impl>::M5Ddag(const FermionField &psi_i, | ||||
| 				   const FermionField &phi_i,  | ||||
| 				   FermionField &chi_i, | ||||
| 				   std::vector<Coeff_t> &lower, | ||||
| 				   std::vector<Coeff_t> &diag, | ||||
| 				   std::vector<Coeff_t> &upper) | ||||
| 				   Vector<Coeff_t> &lower, | ||||
| 				   Vector<Coeff_t> &diag, | ||||
| 				   Vector<Coeff_t> &upper) | ||||
| { | ||||
|   chi_i.Checkerboard()=psi_i.Checkerboard(); | ||||
|   GridBase *grid=psi_i.Grid(); | ||||
|   | ||||
| @@ -89,12 +89,12 @@ protected: | ||||
|   RealD mass; | ||||
|   RealD R; | ||||
|   RealD ZoloHiInv; | ||||
|   std::vector<double> Beta; | ||||
|   std::vector<double> cc;; | ||||
|   std::vector<double> cc_d;; | ||||
|   std::vector<double> sqrt_cc; | ||||
|   std::vector<double> See; | ||||
|   std::vector<double> Aee; | ||||
|   Vector<double> Beta; | ||||
|   Vector<double> cc;; | ||||
|   Vector<double> cc_d;; | ||||
|   Vector<double> sqrt_cc; | ||||
|   Vector<double> See; | ||||
|   Vector<double> Aee; | ||||
|  | ||||
| }; | ||||
|  | ||||
|   | ||||
| @@ -131,9 +131,9 @@ void DomainWallEOFAFermion<Impl>::M5D(const FermionField& psi, FermionField& chi | ||||
|     else{ shiftm = -shift*(mq3-mq2); } | ||||
|   } | ||||
|  | ||||
|   std::vector<Coeff_t> diag(Ls,1.0); | ||||
|   std::vector<Coeff_t> upper(Ls,-1.0); upper[Ls-1] = mq1 + shiftm; | ||||
|   std::vector<Coeff_t> lower(Ls,-1.0); lower[0]    = mq1 + shiftp; | ||||
|   Vector<Coeff_t> diag(Ls,1.0); | ||||
|   Vector<Coeff_t> upper(Ls,-1.0); upper[Ls-1] = mq1 + shiftm; | ||||
|   Vector<Coeff_t> lower(Ls,-1.0); lower[0]    = mq1 + shiftp; | ||||
|  | ||||
| #if(0) | ||||
|   std::cout << GridLogMessage << "DomainWallEOFAFermion::M5D(FF&,FF&):" << std::endl; | ||||
| @@ -168,9 +168,9 @@ void DomainWallEOFAFermion<Impl>::M5Ddag(const FermionField& psi, FermionField& | ||||
|     else{ shiftm = -shift*(mq3-mq2); } | ||||
|   } | ||||
|  | ||||
|   std::vector<Coeff_t> diag(Ls,1.0); | ||||
|   std::vector<Coeff_t> upper(Ls,-1.0); upper[Ls-1] = mq1 + shiftp; | ||||
|   std::vector<Coeff_t> lower(Ls,-1.0); lower[0]    = mq1 + shiftm; | ||||
|   Vector<Coeff_t> diag(Ls,1.0); | ||||
|   Vector<Coeff_t> upper(Ls,-1.0); upper[Ls-1] = mq1 + shiftp; | ||||
|   Vector<Coeff_t> lower(Ls,-1.0); lower[0]    = mq1 + shiftm; | ||||
|  | ||||
| #if(0) | ||||
|   std::cout << GridLogMessage << "DomainWallEOFAFermion::M5Ddag(FF&,FF&):" << std::endl; | ||||
| @@ -194,9 +194,9 @@ void DomainWallEOFAFermion<Impl>::Mooee(const FermionField& psi, FermionField& c | ||||
| { | ||||
|   int Ls = this->Ls; | ||||
|  | ||||
|   std::vector<Coeff_t> diag = this->bee; | ||||
|   std::vector<Coeff_t> upper(Ls); | ||||
|   std::vector<Coeff_t> lower(Ls); | ||||
|   Vector<Coeff_t> diag = this->bee; | ||||
|   Vector<Coeff_t> upper(Ls); | ||||
|   Vector<Coeff_t> lower(Ls); | ||||
|  | ||||
|   for(int s=0; s<Ls; s++){ | ||||
|     upper[s] = -this->cee[s]; | ||||
| @@ -213,9 +213,9 @@ void DomainWallEOFAFermion<Impl>::MooeeDag(const FermionField& psi, FermionField | ||||
| { | ||||
|   int Ls = this->Ls; | ||||
|  | ||||
|   std::vector<Coeff_t> diag = this->bee; | ||||
|   std::vector<Coeff_t> upper(Ls); | ||||
|   std::vector<Coeff_t> lower(Ls); | ||||
|   Vector<Coeff_t> diag = this->bee; | ||||
|   Vector<Coeff_t> upper(Ls); | ||||
|   Vector<Coeff_t> lower(Ls); | ||||
|  | ||||
|   for(int s=0; s<Ls; s++){ | ||||
|     upper[s] = -this->cee[s]; | ||||
| @@ -231,7 +231,7 @@ void DomainWallEOFAFermion<Impl>::MooeeDag(const FermionField& psi, FermionField | ||||
|  | ||||
| //Zolo | ||||
| template<class Impl> | ||||
| void DomainWallEOFAFermion<Impl>::SetCoefficientsInternal(RealD zolo_hi, std::vector<Coeff_t>& gamma, RealD b, RealD c) | ||||
| void DomainWallEOFAFermion<Impl>::SetCoefficientsInternal(RealD zolo_hi, Vector<Coeff_t>& gamma, RealD b, RealD c) | ||||
| { | ||||
|   int   Ls    = this->Ls; | ||||
|   int   pm    = this->pm; | ||||
|   | ||||
| @@ -70,10 +70,10 @@ public: | ||||
|   // Instantiate different versions depending on Impl | ||||
|   ///////////////////////////////////////////////////// | ||||
|   void M5D(const FermionField& psi, const FermionField& phi, FermionField& chi, | ||||
| 	   std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); | ||||
| 	   Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper); | ||||
|  | ||||
|   void M5Ddag(const FermionField& psi, const FermionField& phi, FermionField& chi, | ||||
| 	      std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); | ||||
| 	      Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper); | ||||
|  | ||||
|   void MooeeInternal(const FermionField& in, FermionField& out, int dag, int inv); | ||||
|  | ||||
| @@ -94,16 +94,16 @@ public: | ||||
| 			RealD _M5, const ImplParams& p=ImplParams()); | ||||
|  | ||||
| protected: | ||||
|   void SetCoefficientsInternal(RealD zolo_hi, std::vector<Coeff_t>& gamma, RealD b, RealD c); | ||||
|   void SetCoefficientsInternal(RealD zolo_hi, Vector<Coeff_t>& gamma, RealD b, RealD c); | ||||
| }; | ||||
|  | ||||
| NAMESPACE_END(Grid); | ||||
|  | ||||
| #define INSTANTIATE_DPERP_DWF_EOFA(A)					\ | ||||
|   template void DomainWallEOFAFermion<A>::M5D(const FermionField& psi, const FermionField& phi, FermionField& chi, \ | ||||
| 					      std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); \ | ||||
| 					      Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper); \ | ||||
|   template void DomainWallEOFAFermion<A>::M5Ddag(const FermionField& psi, const FermionField& phi, FermionField& chi, \ | ||||
| 						 std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); \ | ||||
| 						 Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper); \ | ||||
|   template void DomainWallEOFAFermion<A>::MooeeInv(const FermionField& psi, FermionField& chi); \ | ||||
|   template void DomainWallEOFAFermion<A>::MooeeInvDag(const FermionField& psi, FermionField& chi); | ||||
|  | ||||
|   | ||||
| @@ -41,7 +41,7 @@ NAMESPACE_BEGIN(Grid); | ||||
| // Pplus  backwards.. | ||||
| template<class Impl> | ||||
| void DomainWallEOFAFermion<Impl>::M5D(const FermionField& psi_i, const FermionField& phi_i,FermionField& chi_i,  | ||||
| 				      std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper) | ||||
| 				      Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper) | ||||
| { | ||||
|   chi_i.Checkerboard() = psi_i.Checkerboard(); | ||||
|   int Ls = this->Ls; | ||||
| @@ -81,7 +81,7 @@ void DomainWallEOFAFermion<Impl>::M5D(const FermionField& psi_i, const FermionFi | ||||
|  | ||||
| template<class Impl> | ||||
| void DomainWallEOFAFermion<Impl>::M5Ddag(const FermionField& psi_i, const FermionField& phi_i, FermionField& chi_i,  | ||||
| 					 std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper) | ||||
| 					 Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper) | ||||
| { | ||||
|   chi_i.Checkerboard() = psi_i.Checkerboard(); | ||||
|   GridBase* grid = psi_i.Grid(); | ||||
| @@ -180,11 +180,11 @@ void DomainWallEOFAFermion<Impl>::MooeeInvDag(const FermionField& psi_i, Fermion | ||||
|  | ||||
|   assert(psi.Checkerboard() == psi.Checkerboard()); | ||||
|  | ||||
|   std::vector<Coeff_t> ueec(Ls); | ||||
|   std::vector<Coeff_t> deec(Ls+1); | ||||
|   std::vector<Coeff_t> leec(Ls); | ||||
|   std::vector<Coeff_t> ueemc(Ls); | ||||
|   std::vector<Coeff_t> leemc(Ls); | ||||
|   Vector<Coeff_t> ueec(Ls); | ||||
|   Vector<Coeff_t> deec(Ls+1); | ||||
|   Vector<Coeff_t> leec(Ls); | ||||
|   Vector<Coeff_t> ueemc(Ls); | ||||
|   Vector<Coeff_t> leemc(Ls); | ||||
|  | ||||
|   for(int s=0; s<ueec.size(); s++){ | ||||
|     ueec[s]  = conjugate(this->uee[s]); | ||||
|   | ||||
| @@ -40,7 +40,7 @@ NAMESPACE_BEGIN(Grid); | ||||
| // Pplus  backwards | ||||
| template<class Impl> | ||||
| void DomainWallEOFAFermion<Impl>::M5D(const FermionField& psi, const FermionField& phi, | ||||
| 				      FermionField& chi, std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper) | ||||
| 				      FermionField& chi, Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper) | ||||
| { | ||||
|   Coeff_t one(1.0); | ||||
|   int Ls = this->Ls; | ||||
| @@ -60,7 +60,7 @@ void DomainWallEOFAFermion<Impl>::M5D(const FermionField& psi, const FermionFiel | ||||
|  | ||||
| template<class Impl> | ||||
| void DomainWallEOFAFermion<Impl>::M5Ddag(const FermionField& psi, const FermionField& phi, | ||||
| 					 FermionField& chi, std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper) | ||||
| 					 FermionField& chi, Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper) | ||||
| { | ||||
|   Coeff_t one(1.0); | ||||
|   int Ls = this->Ls; | ||||
|   | ||||
| @@ -53,7 +53,7 @@ void DomainWallEOFAFermion<Impl>::MooeeInv(const FermionField& psi, FermionField | ||||
|  | ||||
| template<class Impl> | ||||
| void DomainWallEOFAFermion<Impl>::M5D(const FermionField& psi_i, const FermionField& phi_i, FermionField& chi_i,  | ||||
| 				      std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper) | ||||
| 				      Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper) | ||||
| { | ||||
|   chi_i.Checkerboard() = psi_i.Checkerboard(); | ||||
|   GridBase* grid = psi_i.Grid(); | ||||
| @@ -201,7 +201,7 @@ void DomainWallEOFAFermion<Impl>::M5D(const FermionField& psi_i, const FermionFi | ||||
|  | ||||
| template<class Impl> | ||||
| void DomainWallEOFAFermion<Impl>::M5Ddag(const FermionField& psi_i, const FermionField& phi_i,FermionField& chi_i,  | ||||
| 					 std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper) | ||||
| 					 Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper) | ||||
| { | ||||
|   chi_i.Checkerboard() = psi_i.Checkerboard(); | ||||
|   GridBase* grid = psi_i.Grid(); | ||||
|   | ||||
| @@ -197,9 +197,9 @@ void MobiusEOFAFermion<Impl>::M5D(const FermionField& psi, FermionField& chi) | ||||
| { | ||||
|   int Ls = this->Ls; | ||||
|  | ||||
|   std::vector<Coeff_t> diag(Ls,1.0); | ||||
|   std::vector<Coeff_t> upper(Ls,-1.0);  upper[Ls-1] = this->mq1; | ||||
|   std::vector<Coeff_t> lower(Ls,-1.0);  lower[0]    = this->mq1; | ||||
|   Vector<Coeff_t> diag(Ls,1.0); | ||||
|   Vector<Coeff_t> upper(Ls,-1.0);  upper[Ls-1] = this->mq1; | ||||
|   Vector<Coeff_t> lower(Ls,-1.0);  lower[0]    = this->mq1; | ||||
|  | ||||
|   // no shift term | ||||
|   if(this->shift == 0.0){ this->M5D(psi, chi, chi, lower, diag, upper); } | ||||
| @@ -213,9 +213,9 @@ void MobiusEOFAFermion<Impl>::M5Ddag(const FermionField& psi, FermionField& chi) | ||||
| { | ||||
|   int Ls = this->Ls; | ||||
|  | ||||
|   std::vector<Coeff_t> diag(Ls,1.0); | ||||
|   std::vector<Coeff_t> upper(Ls,-1.0);  upper[Ls-1] = this->mq1; | ||||
|   std::vector<Coeff_t> lower(Ls,-1.0);  lower[0]    = this->mq1; | ||||
|   Vector<Coeff_t> diag(Ls,1.0); | ||||
|   Vector<Coeff_t> upper(Ls,-1.0);  upper[Ls-1] = this->mq1; | ||||
|   Vector<Coeff_t> lower(Ls,-1.0);  lower[0]    = this->mq1; | ||||
|  | ||||
|   // no shift term | ||||
|   if(this->shift == 0.0){ this->M5Ddag(psi, chi, chi, lower, diag, upper); } | ||||
| @@ -231,9 +231,9 @@ void MobiusEOFAFermion<Impl>::Mooee(const FermionField& psi, FermionField& chi) | ||||
|   int Ls = this->Ls; | ||||
|  | ||||
|   // coefficients of Mooee | ||||
|   std::vector<Coeff_t> diag = this->bee; | ||||
|   std::vector<Coeff_t> upper(Ls); | ||||
|   std::vector<Coeff_t> lower(Ls); | ||||
|   Vector<Coeff_t> diag = this->bee; | ||||
|   Vector<Coeff_t> upper(Ls); | ||||
|   Vector<Coeff_t> lower(Ls); | ||||
|   for(int s=0; s<Ls; s++){ | ||||
|     upper[s] = -this->cee[s]; | ||||
|     lower[s] = -this->cee[s]; | ||||
| @@ -254,9 +254,9 @@ void MobiusEOFAFermion<Impl>::MooeeDag(const FermionField& psi, FermionField& ch | ||||
|   int Ls = this->Ls; | ||||
|  | ||||
|   // coefficients of MooeeDag | ||||
|   std::vector<Coeff_t> diag = this->bee; | ||||
|   std::vector<Coeff_t> upper(Ls); | ||||
|   std::vector<Coeff_t> lower(Ls); | ||||
|   Vector<Coeff_t> diag = this->bee; | ||||
|   Vector<Coeff_t> upper(Ls); | ||||
|   Vector<Coeff_t> lower(Ls); | ||||
|   for(int s=0; s<Ls; s++){ | ||||
|     if(s==0) { | ||||
|       upper[s] = -this->cee[s+1]; | ||||
| @@ -315,10 +315,10 @@ void MobiusEOFAFermion<Impl>::SetCoefficientsPrecondShiftOps() | ||||
|   // Tridiagonal solve for MooeeInvDag_shift_lc | ||||
|   { | ||||
|     Coeff_t m(0.0); | ||||
|     std::vector<Coeff_t> d = Mooee_shift; | ||||
|     std::vector<Coeff_t> u(Ls,0.0); | ||||
|     std::vector<Coeff_t> y(Ls,0.0); | ||||
|     std::vector<Coeff_t> q(Ls,0.0); | ||||
|     Vector<Coeff_t> d = Mooee_shift; | ||||
|     Vector<Coeff_t> u(Ls,0.0); | ||||
|     Vector<Coeff_t> y(Ls,0.0); | ||||
|     Vector<Coeff_t> q(Ls,0.0); | ||||
|     if(pm == 1){ u[0] = 1.0; } | ||||
|     else{ u[Ls-1] = 1.0; } | ||||
|  | ||||
|   | ||||
| @@ -42,11 +42,11 @@ public: | ||||
|  | ||||
| public: | ||||
|   // Shift operator coefficients for red-black preconditioned Mobius EOFA | ||||
|   std::vector<Coeff_t> Mooee_shift; | ||||
|   std::vector<Coeff_t> MooeeInv_shift_lc; | ||||
|   std::vector<Coeff_t> MooeeInv_shift_norm; | ||||
|   std::vector<Coeff_t> MooeeInvDag_shift_lc; | ||||
|   std::vector<Coeff_t> MooeeInvDag_shift_norm; | ||||
|   Vector<Coeff_t> Mooee_shift; | ||||
|   Vector<Coeff_t> MooeeInv_shift_lc; | ||||
|   Vector<Coeff_t> MooeeInv_shift_norm; | ||||
|   Vector<Coeff_t> MooeeInvDag_shift_lc; | ||||
|   Vector<Coeff_t> MooeeInvDag_shift_norm; | ||||
|  | ||||
|   virtual void Instantiatable(void) {}; | ||||
|  | ||||
| @@ -74,18 +74,18 @@ public: | ||||
|   // Instantiate different versions depending on Impl | ||||
|   ///////////////////////////////////////////////////// | ||||
|   void M5D(const FermionField& psi, const FermionField& phi, FermionField& chi, | ||||
| 	   std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); | ||||
| 	   Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper); | ||||
|  | ||||
|   void M5D_shift(const FermionField& psi, const FermionField& phi, FermionField& chi, | ||||
| 		 std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, | ||||
| 		 std::vector<Coeff_t>& shift_coeffs); | ||||
| 		 Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper, | ||||
| 		 Vector<Coeff_t>& shift_coeffs); | ||||
|  | ||||
|   void M5Ddag(const FermionField& psi, const FermionField& phi, FermionField& chi, | ||||
| 	      std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); | ||||
| 	      Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper); | ||||
|  | ||||
|   void M5Ddag_shift(const FermionField& psi, const FermionField& phi, FermionField& chi, | ||||
| 		    std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, | ||||
| 		    std::vector<Coeff_t>& shift_coeffs); | ||||
| 		    Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper, | ||||
| 		    Vector<Coeff_t>& shift_coeffs); | ||||
|  | ||||
|   void MooeeInternal(const FermionField& in, FermionField& out, int dag, int inv); | ||||
|  | ||||
| @@ -113,13 +113,13 @@ NAMESPACE_END(Grid); | ||||
|  | ||||
| #define INSTANTIATE_DPERP_MOBIUS_EOFA(A)				\ | ||||
|   template void MobiusEOFAFermion<A>::M5D(const FermionField& psi, const FermionField& phi, FermionField& chi, \ | ||||
| 					  std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); \ | ||||
| 					  Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper); \ | ||||
|   template void MobiusEOFAFermion<A>::M5D_shift(const FermionField& psi, const FermionField& phi, FermionField& chi, \ | ||||
| 						std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, std::vector<Coeff_t>& shift_coeffs); \ | ||||
| 						Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper, Vector<Coeff_t>& shift_coeffs); \ | ||||
|   template void MobiusEOFAFermion<A>::M5Ddag(const FermionField& psi, const FermionField& phi, FermionField& chi, \ | ||||
| 					     std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); \ | ||||
| 					     Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper); \ | ||||
|   template void MobiusEOFAFermion<A>::M5Ddag_shift(const FermionField& psi, const FermionField& phi, FermionField& chi, \ | ||||
| 						   std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, std::vector<Coeff_t>& shift_coeffs); \ | ||||
| 						   Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper, Vector<Coeff_t>& shift_coeffs); \ | ||||
|   template void MobiusEOFAFermion<A>::MooeeInv(const FermionField& psi, FermionField& chi); \ | ||||
|   template void MobiusEOFAFermion<A>::MooeeInv_shift(const FermionField& psi, FermionField& chi); \ | ||||
|   template void MobiusEOFAFermion<A>::MooeeInvDag(const FermionField& psi, FermionField& chi); \ | ||||
|   | ||||
| @@ -37,7 +37,7 @@ NAMESPACE_BEGIN(Grid); | ||||
|  | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5D(const FermionField &psi_i, const FermionField &phi_i, FermionField &chi_i, | ||||
| 				  std::vector<Coeff_t> &lower, std::vector<Coeff_t> &diag, std::vector<Coeff_t> &upper) | ||||
| 				  Vector<Coeff_t> &lower, Vector<Coeff_t> &diag, Vector<Coeff_t> &upper) | ||||
| { | ||||
|   chi_i.Checkerboard() = psi_i.Checkerboard(); | ||||
|   GridBase *grid = psi_i.Grid(); | ||||
| @@ -79,8 +79,8 @@ void MobiusEOFAFermion<Impl>::M5D(const FermionField &psi_i, const FermionField | ||||
|  | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5D_shift(const FermionField &psi_i, const FermionField &phi_i, FermionField &chi_i, | ||||
| 					std::vector<Coeff_t> &lower, std::vector<Coeff_t> &diag, std::vector<Coeff_t> &upper, | ||||
| 					std::vector<Coeff_t> &shift_coeffs) | ||||
| 					Vector<Coeff_t> &lower, Vector<Coeff_t> &diag, Vector<Coeff_t> &upper, | ||||
| 					Vector<Coeff_t> &shift_coeffs) | ||||
| { | ||||
|   chi_i.Checkerboard() = psi_i.Checkerboard(); | ||||
|   GridBase *grid = psi_i.Grid(); | ||||
| @@ -127,7 +127,7 @@ void MobiusEOFAFermion<Impl>::M5D_shift(const FermionField &psi_i, const Fermion | ||||
|  | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5Ddag(const FermionField &psi_i, const FermionField &phi_i, FermionField &chi_i, | ||||
| 				     std::vector<Coeff_t> &lower, std::vector<Coeff_t> &diag, std::vector<Coeff_t> &upper) | ||||
| 				     Vector<Coeff_t> &lower, Vector<Coeff_t> &diag, Vector<Coeff_t> &upper) | ||||
| { | ||||
|   chi_i.Checkerboard() = psi_i.Checkerboard(); | ||||
|   GridBase *grid = psi_i.Grid(); | ||||
| @@ -169,8 +169,8 @@ void MobiusEOFAFermion<Impl>::M5Ddag(const FermionField &psi_i, const FermionFie | ||||
|  | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5Ddag_shift(const FermionField &psi_i, const FermionField &phi_i, FermionField &chi_i, | ||||
| 					   std::vector<Coeff_t> &lower, std::vector<Coeff_t> &diag, std::vector<Coeff_t> &upper, | ||||
| 					   std::vector<Coeff_t> &shift_coeffs) | ||||
| 					   Vector<Coeff_t> &lower, Vector<Coeff_t> &diag, Vector<Coeff_t> &upper, | ||||
| 					   Vector<Coeff_t> &shift_coeffs) | ||||
| { | ||||
|   chi_i.Checkerboard() = psi_i.Checkerboard(); | ||||
|   GridBase *grid = psi_i.Grid(); | ||||
|   | ||||
| @@ -40,7 +40,7 @@ NAMESPACE_BEGIN(Grid); | ||||
| // Pplus  backwards | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5D(const FermionField& psi, const FermionField& phi, | ||||
| 				  FermionField& chi, std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper) | ||||
| 				  FermionField& chi, Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper) | ||||
| { | ||||
|   Coeff_t one(1.0); | ||||
|   int Ls = this->Ls; | ||||
| @@ -60,8 +60,8 @@ void MobiusEOFAFermion<Impl>::M5D(const FermionField& psi, const FermionField& p | ||||
|  | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5D_shift(const FermionField& psi, const FermionField& phi, | ||||
| 					FermionField& chi, std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, | ||||
| 					std::vector<Coeff_t>& shift_coeffs) | ||||
| 					FermionField& chi, Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper, | ||||
| 					Vector<Coeff_t>& shift_coeffs) | ||||
| { | ||||
|   Coeff_t one(1.0); | ||||
|   int Ls = this->Ls; | ||||
| @@ -83,7 +83,7 @@ void MobiusEOFAFermion<Impl>::M5D_shift(const FermionField& psi, const FermionFi | ||||
|  | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5Ddag(const FermionField& psi, const FermionField& phi, | ||||
| 				     FermionField& chi, std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper) | ||||
| 				     FermionField& chi, Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper) | ||||
| { | ||||
|   Coeff_t one(1.0); | ||||
|   int Ls = this->Ls; | ||||
| @@ -103,8 +103,8 @@ void MobiusEOFAFermion<Impl>::M5Ddag(const FermionField& psi, const FermionField | ||||
|  | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5Ddag_shift(const FermionField& psi, const FermionField& phi, | ||||
| 					   FermionField& chi, std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, | ||||
| 					   std::vector<Coeff_t>& shift_coeffs) | ||||
| 					   FermionField& chi, Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper, | ||||
| 					   Vector<Coeff_t>& shift_coeffs) | ||||
| { | ||||
|   Coeff_t one(1.0); | ||||
|   int Ls = this->Ls; | ||||
|   | ||||
| @@ -64,7 +64,7 @@ void MobiusEOFAFermion<Impl>::MooeeInvDag_shift(const FermionField& psi, Fermion | ||||
|  | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5D(const FermionField& psi_i, const FermionField& phi_i,FermionField& chi_i,  | ||||
| 				  std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper) | ||||
| 				  Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper) | ||||
| { | ||||
|   chi_i.Checkerboard() = psi_i.Checkerboard(); | ||||
|   GridBase* grid  = psi_i.Grid(); | ||||
| @@ -211,8 +211,8 @@ void MobiusEOFAFermion<Impl>::M5D(const FermionField& psi_i, const FermionField& | ||||
|  | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5D_shift(const FermionField& psi_i, const FermionField& phi_i, | ||||
| 					FermionField& chi_i, std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, | ||||
| 					std::vector<Coeff_t>& shift_coeffs) | ||||
| 					FermionField& chi_i, Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper, | ||||
| 					Vector<Coeff_t>& shift_coeffs) | ||||
| { | ||||
| #if 0 | ||||
|   auto & psi = psi_i; | ||||
| @@ -397,7 +397,7 @@ void MobiusEOFAFermion<Impl>::M5D_shift(const FermionField& psi_i, const Fermion | ||||
|  | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5Ddag(const FermionField& psi_i, const FermionField& phi_i,FermionField& chi_i,  | ||||
| 				     std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper) | ||||
| 				     Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper) | ||||
| { | ||||
|   chi_i.Checkerboard() = psi_i.Checkerboard(); | ||||
|   GridBase* grid = psi_i.Grid(); | ||||
| @@ -542,8 +542,8 @@ void MobiusEOFAFermion<Impl>::M5Ddag(const FermionField& psi_i, const FermionFie | ||||
|  | ||||
| template<class Impl> | ||||
| void MobiusEOFAFermion<Impl>::M5Ddag_shift(const FermionField& psi_i, const FermionField& phi_i, FermionField& chi_i,  | ||||
| 					   std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, | ||||
| 					   std::vector<Coeff_t>& shift_coeffs) | ||||
| 					   Vector<Coeff_t>& lower, Vector<Coeff_t>& diag, Vector<Coeff_t>& upper, | ||||
| 					   Vector<Coeff_t>& shift_coeffs) | ||||
| { | ||||
| #if 0 | ||||
|   auto & psi = psi_i; | ||||
|   | ||||
| @@ -93,8 +93,8 @@ protected: | ||||
|   RealD R; | ||||
|   RealD amax; | ||||
|   RealD scale; | ||||
|   std::vector<double> p;  | ||||
|   std::vector<double> q; | ||||
|   Vector<double> p;  | ||||
|   Vector<double> q; | ||||
|  | ||||
| }; | ||||
|  | ||||
|   | ||||
| @@ -36,7 +36,7 @@ template<class Matrix, class Field> | ||||
| class KappaSimilarityTransform { | ||||
| public: | ||||
|   INHERIT_IMPL_TYPES(Matrix); | ||||
|   std::vector<Coeff_t> kappa, kappaDag, kappaInv, kappaInvDag; | ||||
|   Vector<Coeff_t> kappa, kappaDag, kappaInv, kappaInvDag; | ||||
|  | ||||
|   KappaSimilarityTransform (Matrix &zmob) { | ||||
|     for (int i=0;i<(int)zmob.bs.size();i++) { | ||||
|   | ||||
| @@ -48,7 +48,7 @@ public: | ||||
| 		 GridCartesian         &FourDimGrid, | ||||
| 		 GridRedBlackCartesian &FourDimRedBlackGrid, | ||||
| 		 RealD _mass,RealD _M5, | ||||
| 		 std::vector<ComplexD> &gamma, RealD b,RealD c,const ImplParams &p= ImplParams()) :  | ||||
| 		 Vector<ComplexD> &gamma, RealD b,RealD c,const ImplParams &p= ImplParams()) :  | ||||
|        | ||||
|     CayleyFermion5D<Impl>(_Umu, | ||||
| 			  FiveDimGrid, | ||||
| @@ -59,7 +59,7 @@ public: | ||||
|   { | ||||
|     //    RealD eps = 1.0; | ||||
|     std::cout<<GridLogMessage << "ZMobiusFermion (b="<<b<<",c="<<c<<") with Ls= "<<this->Ls<<" gamma passed in"<<std::endl; | ||||
|     std::vector<Coeff_t> zgamma(this->Ls); | ||||
|     Vector<Coeff_t> zgamma(this->Ls); | ||||
|     for(int s=0;s<this->Ls;s++){ | ||||
|       zgamma[s] = gamma[s]; | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user