1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-06-18 15:57:05 +01:00

First pass at continued fraction; solver and even odd decomposition tests pass.

Have to make ContFrac class virtual and derive end non-abstract actions for the particular
cases.
This commit is contained in:
Peter Boyle
2015-06-04 00:00:45 +01:00
parent e68d087010
commit 802e94e9ca
15 changed files with 490 additions and 48 deletions

View File

@ -21,20 +21,8 @@ namespace Grid {
virtual void MooeeInv (const LatticeFermion &in, LatticeFermion &out);
virtual void MooeeInvDag (const LatticeFermion &in, LatticeFermion &out);
private:
Approx::zolotarev_data *zdata;
// Cont frac
RealD mass;
RealD R;
RealD scale;
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;
// virtual void Instantiatable(void)=0;
virtual void Instantiatable(void) {};
// Constructors
ContinuedFractionFermion5D(LatticeGaugeField &_Umu,
@ -44,6 +32,24 @@ namespace Grid {
GridRedBlackCartesian &FourDimRedBlackGrid,
RealD _mass,RealD M5);
protected:
void SetCoefficientsTanh(Approx::zolotarev_data *zdata,RealD b,RealD c);
void SetCoefficientsZolotarev(RealD zolo_hi,Approx::zolotarev_data *zdata,RealD b,RealD c);
Approx::zolotarev_data *zdata;
// Cont frac
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;
};