mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 14:04:32 +00:00 
			
		
		
		
	Namespace
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
			
		||||
    /*************************************************************************************
 | 
			
		||||
/*************************************************************************************
 | 
			
		||||
 | 
			
		||||
    Grid physics library, www.github.com/paboyle/Grid 
 | 
			
		||||
 | 
			
		||||
@@ -24,48 +24,47 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk>
 | 
			
		||||
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
			
		||||
 | 
			
		||||
    See the full license in the file "LICENSE" in the top level distribution directory
 | 
			
		||||
    *************************************************************************************/
 | 
			
		||||
    /*  END LEGAL */
 | 
			
		||||
*************************************************************************************/
 | 
			
		||||
/*  END LEGAL */
 | 
			
		||||
#ifndef OVERLAP_WILSON_CONTFRAC_TANH_FERMION_H
 | 
			
		||||
#define OVERLAP_WILSON_CONTFRAC_TANH_FERMION_H
 | 
			
		||||
 | 
			
		||||
#include <Grid/qcd/action/fermion/FermionCore.h>
 | 
			
		||||
 | 
			
		||||
namespace Grid {
 | 
			
		||||
NAMESPACE_BEGIN(Grid);
 | 
			
		||||
 | 
			
		||||
  namespace QCD {
 | 
			
		||||
template<class Impl>
 | 
			
		||||
class OverlapWilsonContFracTanhFermion : public ContinuedFractionFermion5D<Impl>
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
  INHERIT_IMPL_TYPES(Impl);
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
    template<class Impl>
 | 
			
		||||
    class OverlapWilsonContFracTanhFermion : public ContinuedFractionFermion5D<Impl>
 | 
			
		||||
    {
 | 
			
		||||
    public:
 | 
			
		||||
     INHERIT_IMPL_TYPES(Impl);
 | 
			
		||||
    public:
 | 
			
		||||
 | 
			
		||||
      virtual void   Instantiatable(void){};
 | 
			
		||||
      // Constructors
 | 
			
		||||
    OverlapWilsonContFracTanhFermion(GaugeField &_Umu,
 | 
			
		||||
				     GridCartesian         &FiveDimGrid,
 | 
			
		||||
				     GridRedBlackCartesian &FiveDimRedBlackGrid,
 | 
			
		||||
				     GridCartesian         &FourDimGrid,
 | 
			
		||||
				     GridRedBlackCartesian &FourDimRedBlackGrid,
 | 
			
		||||
				     RealD _mass,RealD _M5,
 | 
			
		||||
				     RealD scale,const ImplParams &p= ImplParams()) :
 | 
			
		||||
  virtual void   Instantiatable(void){};
 | 
			
		||||
  // Constructors
 | 
			
		||||
  OverlapWilsonContFracTanhFermion(GaugeField &_Umu,
 | 
			
		||||
				   GridCartesian         &FiveDimGrid,
 | 
			
		||||
				   GridRedBlackCartesian &FiveDimRedBlackGrid,
 | 
			
		||||
				   GridCartesian         &FourDimGrid,
 | 
			
		||||
				   GridRedBlackCartesian &FourDimRedBlackGrid,
 | 
			
		||||
				   RealD _mass,RealD _M5,
 | 
			
		||||
				   RealD scale,const ImplParams &p= ImplParams()) :
 | 
			
		||||
      
 | 
			
		||||
      // b+c=scale, b-c = 0 <=> b =c = scale/2
 | 
			
		||||
      ContinuedFractionFermion5D<Impl>(_Umu,
 | 
			
		||||
				       FiveDimGrid,
 | 
			
		||||
				       FiveDimRedBlackGrid,
 | 
			
		||||
				       FourDimGrid,
 | 
			
		||||
				       FourDimRedBlackGrid,_mass,_M5,p)
 | 
			
		||||
	{
 | 
			
		||||
	  assert((this->Ls&0x1)==1); // Odd Ls required
 | 
			
		||||
	  int nrational=this->Ls-1;// Even rational order
 | 
			
		||||
	  Approx::zolotarev_data *zdata = Approx::higham(1.0,nrational);// eps is ignored for higham
 | 
			
		||||
	  this->SetCoefficientsTanh(zdata,scale);
 | 
			
		||||
	  Approx::zolotarev_free(zdata);
 | 
			
		||||
	}
 | 
			
		||||
    };
 | 
			
		||||
    // b+c=scale, b-c = 0 <=> b =c = scale/2
 | 
			
		||||
    ContinuedFractionFermion5D<Impl>(_Umu,
 | 
			
		||||
				     FiveDimGrid,
 | 
			
		||||
				     FiveDimRedBlackGrid,
 | 
			
		||||
				     FourDimGrid,
 | 
			
		||||
				     FourDimRedBlackGrid,_mass,_M5,p)
 | 
			
		||||
  {
 | 
			
		||||
    assert((this->Ls&0x1)==1); // Odd Ls required
 | 
			
		||||
    int nrational=this->Ls-1;// Even rational order
 | 
			
		||||
    Approx::zolotarev_data *zdata = Approx::higham(1.0,nrational);// eps is ignored for higham
 | 
			
		||||
    this->SetCoefficientsTanh(zdata,scale);
 | 
			
		||||
    Approx::zolotarev_free(zdata);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
NAMESPACE_END(Grid);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user