1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-04-27 22:25:56 +01:00

Namespace, format

This commit is contained in:
paboyle 2018-01-14 23:23:26 +00:00
parent 08772d5e0c
commit 3b5d629048

View File

@ -28,21 +28,20 @@ with this program; if not, write to the Free Software Foundation, Inc.,
See the full license in the file "LICENSE" in the top level distribution directory See the full license in the file "LICENSE" in the top level distribution directory
*************************************************************************************/ *************************************************************************************/
/* END LEGAL */ /* END LEGAL */
#include <Grid/qcd/action/fermion/FermionCore.h> #include <Grid/qcd/action/fermion/FermionCore.h>
#include <Grid/qcd/action/fermion/MobiusEOFAFermion.h> #include <Grid/qcd/action/fermion/MobiusEOFAFermion.h>
namespace Grid { NAMESPACE_BEGIN(Grid);
namespace QCD {
// FIXME -- make a version of these routines with site loop outermost for cache reuse. // FIXME -- make a version of these routines with site loop outermost for cache reuse.
// Pminus fowards // Pminus fowards
// Pplus backwards // Pplus backwards
template<class Impl> template<class Impl>
void MobiusEOFAFermion<Impl>::M5D(const FermionField& psi, const FermionField& phi, 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, std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper)
{ {
Coeff_t one(1.0); Coeff_t one(1.0);
int Ls = this->Ls; int Ls = this->Ls;
for(int s=0; s<Ls; s++){ for(int s=0; s<Ls; s++){
@ -57,13 +56,13 @@ namespace QCD {
axpby_ssp_pplus(chi, one, chi, lower[s], psi, s, s-1); axpby_ssp_pplus(chi, one, chi, lower[s], psi, s, s-1);
} }
} }
} }
template<class Impl> template<class Impl>
void MobiusEOFAFermion<Impl>::M5D_shift(const FermionField& psi, const FermionField& phi, 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, FermionField& chi, std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper,
std::vector<Coeff_t>& shift_coeffs) std::vector<Coeff_t>& shift_coeffs)
{ {
Coeff_t one(1.0); Coeff_t one(1.0);
int Ls = this->Ls; int Ls = this->Ls;
for(int s=0; s<Ls; s++){ for(int s=0; s<Ls; s++){
@ -80,12 +79,12 @@ namespace QCD {
if(this->pm == 1){ axpby_ssp_pplus(chi, one, chi, shift_coeffs[s], psi, s, Ls-1); } if(this->pm == 1){ axpby_ssp_pplus(chi, one, chi, shift_coeffs[s], psi, s, Ls-1); }
else{ axpby_ssp_pminus(chi, one, chi, shift_coeffs[s], psi, s, 0); } else{ axpby_ssp_pminus(chi, one, chi, shift_coeffs[s], psi, s, 0); }
} }
} }
template<class Impl> template<class Impl>
void MobiusEOFAFermion<Impl>::M5Ddag(const FermionField& psi, const FermionField& phi, 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, std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper)
{ {
Coeff_t one(1.0); Coeff_t one(1.0);
int Ls = this->Ls; int Ls = this->Ls;
for(int s=0; s<Ls; s++){ for(int s=0; s<Ls; s++){
@ -100,13 +99,13 @@ namespace QCD {
axpby_ssp_pminus(chi, one, chi, lower[s], psi, s, s-1); axpby_ssp_pminus(chi, one, chi, lower[s], psi, s, s-1);
} }
} }
} }
template<class Impl> template<class Impl>
void MobiusEOFAFermion<Impl>::M5Ddag_shift(const FermionField& psi, const FermionField& phi, 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, FermionField& chi, std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper,
std::vector<Coeff_t>& shift_coeffs) std::vector<Coeff_t>& shift_coeffs)
{ {
Coeff_t one(1.0); Coeff_t one(1.0);
int Ls = this->Ls; int Ls = this->Ls;
for(int s=0; s<Ls; s++){ for(int s=0; s<Ls; s++){
@ -123,11 +122,11 @@ namespace QCD {
if(this->pm == 1){ axpby_ssp_pplus(chi, one, chi, shift_coeffs[s], psi, Ls-1, s); } if(this->pm == 1){ axpby_ssp_pplus(chi, one, chi, shift_coeffs[s], psi, Ls-1, s); }
else{ axpby_ssp_pminus(chi, one, chi, shift_coeffs[s], psi, 0, s); } else{ axpby_ssp_pminus(chi, one, chi, shift_coeffs[s], psi, 0, s); }
} }
} }
template<class Impl> template<class Impl>
void MobiusEOFAFermion<Impl>::MooeeInv(const FermionField& psi, FermionField& chi) void MobiusEOFAFermion<Impl>::MooeeInv(const FermionField& psi, FermionField& chi)
{ {
if(this->shift != 0.0){ MooeeInv_shift(psi,chi); return; } if(this->shift != 0.0){ MooeeInv_shift(psi,chi); return; }
Coeff_t one(1.0); Coeff_t one(1.0);
@ -156,11 +155,11 @@ namespace QCD {
for(int s=Ls-2; s>=0; s--){ for(int s=Ls-2; s>=0; s--){
axpby_ssp_pminus(chi, one, chi, -this->uee[s], chi, s, s+1); // chi[Ls] axpby_ssp_pminus(chi, one, chi, -this->uee[s], chi, s, s+1); // chi[Ls]
} }
} }
template<class Impl> template<class Impl>
void MobiusEOFAFermion<Impl>::MooeeInv_shift(const FermionField& psi, FermionField& chi) void MobiusEOFAFermion<Impl>::MooeeInv_shift(const FermionField& psi, FermionField& chi)
{ {
Coeff_t one(1.0); Coeff_t one(1.0);
Coeff_t czero(0.0); Coeff_t czero(0.0);
chi.checkerboard = psi.checkerboard; chi.checkerboard = psi.checkerboard;
@ -195,11 +194,11 @@ namespace QCD {
if(this->pm == 1){ axpby_ssp_pplus(chi, one, chi, this->MooeeInv_shift_norm[s], tmp, s, 0); } if(this->pm == 1){ axpby_ssp_pplus(chi, one, chi, this->MooeeInv_shift_norm[s], tmp, s, 0); }
else{ axpby_ssp_pminus(chi, one, chi, this->MooeeInv_shift_norm[s], tmp, s, 0); } else{ axpby_ssp_pminus(chi, one, chi, this->MooeeInv_shift_norm[s], tmp, s, 0); }
} }
} }
template<class Impl> template<class Impl>
void MobiusEOFAFermion<Impl>::MooeeInvDag(const FermionField& psi, FermionField& chi) void MobiusEOFAFermion<Impl>::MooeeInvDag(const FermionField& psi, FermionField& chi)
{ {
if(this->shift != 0.0){ MooeeInvDag_shift(psi,chi); return; } if(this->shift != 0.0){ MooeeInvDag_shift(psi,chi); return; }
Coeff_t one(1.0); Coeff_t one(1.0);
@ -228,11 +227,11 @@ namespace QCD {
for(int s=Ls-2; s>=0; s--){ for(int s=Ls-2; s>=0; s--){
axpby_ssp_pplus(chi, one, chi, -conjugate(this->lee[s]), chi, s, s+1); // chi[Ls] axpby_ssp_pplus(chi, one, chi, -conjugate(this->lee[s]), chi, s, s+1); // chi[Ls]
} }
} }
template<class Impl> template<class Impl>
void MobiusEOFAFermion<Impl>::MooeeInvDag_shift(const FermionField& psi, FermionField& chi) void MobiusEOFAFermion<Impl>::MooeeInvDag_shift(const FermionField& psi, FermionField& chi)
{ {
Coeff_t one(1.0); Coeff_t one(1.0);
Coeff_t czero(0.0); Coeff_t czero(0.0);
chi.checkerboard = psi.checkerboard; chi.checkerboard = psi.checkerboard;
@ -267,24 +266,24 @@ namespace QCD {
if(this->pm == 1){ axpby_ssp_pplus(chi, one, chi, this->MooeeInvDag_shift_norm[s], tmp, s, 0); } if(this->pm == 1){ axpby_ssp_pplus(chi, one, chi, this->MooeeInvDag_shift_norm[s], tmp, s, 0); }
else{ axpby_ssp_pminus(chi, one, chi, this->MooeeInvDag_shift_norm[s], tmp, s, 0); } else{ axpby_ssp_pminus(chi, one, chi, this->MooeeInvDag_shift_norm[s], tmp, s, 0); }
} }
} }
#ifdef MOBIUS_EOFA_DPERP_LINALG #ifdef MOBIUS_EOFA_DPERP_LINALG
INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplF); INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplF);
INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplD); INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplD);
INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplF); INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplF);
INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplD); INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplD);
INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplF); INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplF);
INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplD); INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplD);
INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplFH); INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplFH);
INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplDF); INSTANTIATE_DPERP_MOBIUS_EOFA(WilsonImplDF);
INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplFH); INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplFH);
INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplDF); INSTANTIATE_DPERP_MOBIUS_EOFA(GparityWilsonImplDF);
INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplFH); INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplFH);
INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplDF); INSTANTIATE_DPERP_MOBIUS_EOFA(ZWilsonImplDF);
#endif #endif
}} NAMESPACE_END(Grid);