mirror of
https://github.com/paboyle/Grid.git
synced 2026-08-24 19:39:35 +01:00
Lex gauge actions.
This commit is contained in:
@@ -60,8 +60,10 @@ NAMESPACE_BEGIN(Grid);
|
|||||||
typedef typename Impl::SiteField SiteField; \
|
typedef typename Impl::SiteField SiteField; \
|
||||||
typedef typename Impl::Field Field;
|
typedef typename Impl::Field Field;
|
||||||
|
|
||||||
// hardcodes the exponential approximation in the template
|
// Order of the exponential approximation
|
||||||
template <class S, int Nrepresentation = Nc, int Nexp = 12, class Group = SU<Nc> > class GaugeImplTypes {
|
const int NexpDefault = 12;
|
||||||
|
|
||||||
|
template <class S, int Nrepresentation = Nc, int Nexp = NexpDefault, class Group = SU<Nc> > class GaugeImplTypes {
|
||||||
public:
|
public:
|
||||||
typedef S Simd;
|
typedef S Simd;
|
||||||
typedef typename Simd::scalar_type scalar_type;
|
typedef typename Simd::scalar_type scalar_type;
|
||||||
@@ -188,14 +190,29 @@ typedef GaugeImplTypes<vComplex, Nc> GimplTypesR;
|
|||||||
typedef GaugeImplTypes<vComplexF, Nc> GimplTypesF;
|
typedef GaugeImplTypes<vComplexF, Nc> GimplTypesF;
|
||||||
typedef GaugeImplTypes<vComplexD, Nc> GimplTypesD;
|
typedef GaugeImplTypes<vComplexD, Nc> GimplTypesD;
|
||||||
|
|
||||||
typedef GaugeImplTypes<vComplex, Nc, 12, Sp<Nc> > SpGimplTypesR;
|
typedef GaugeImplTypes<vComplex, Nc, NexpDefault, Sp<Nc> > SpGimplTypesR;
|
||||||
typedef GaugeImplTypes<vComplexF, Nc, 12, Sp<Nc> > SpGimplTypesF;
|
typedef GaugeImplTypes<vComplexF, Nc, NexpDefault, Sp<Nc> > SpGimplTypesF;
|
||||||
typedef GaugeImplTypes<vComplexD, Nc, 12, Sp<Nc> > SpGimplTypesD;
|
typedef GaugeImplTypes<vComplexD, Nc, NexpDefault, Sp<Nc> > SpGimplTypesD;
|
||||||
|
|
||||||
typedef GaugeImplTypes<vComplex, SU<Nc>::AdjointDimension> GimplAdjointTypesR;
|
typedef GaugeImplTypes<vComplex, SU<Nc>::AdjointDimension> GimplAdjointTypesR;
|
||||||
typedef GaugeImplTypes<vComplexF, SU<Nc>::AdjointDimension> GimplAdjointTypesF;
|
typedef GaugeImplTypes<vComplexF, SU<Nc>::AdjointDimension> GimplAdjointTypesF;
|
||||||
typedef GaugeImplTypes<vComplexD, SU<Nc>::AdjointDimension> GimplAdjointTypesD;
|
typedef GaugeImplTypes<vComplexD, SU<Nc>::AdjointDimension> GimplAdjointTypesD;
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Lexicographic gauge implementation types
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
typedef GaugeImplTypes<sComplexF, Nc> lexGimplTypesF;
|
||||||
|
typedef GaugeImplTypes<sComplexD, Nc> lexGimplTypesD;
|
||||||
|
|
||||||
|
typedef GaugeImplTypes<sComplexF, Nc, NexpDefault, Sp<Nc> > lexSpGimplTypesF;
|
||||||
|
typedef GaugeImplTypes<sComplexD, Nc, NexpDefault, Sp<Nc> > lexSpGimplTypesD;
|
||||||
|
|
||||||
|
typedef GaugeImplTypes<sComplexF, SU<Nc>::AdjointDimension> lexGimplAdjointTypesF;
|
||||||
|
typedef GaugeImplTypes<sComplexD, SU<Nc>::AdjointDimension> lexGimplAdjointTypesD;
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// End lexicographic gauge implementation types
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -197,6 +197,24 @@ typedef PeriodicGaugeImpl<SpGimplTypesR> SpPeriodicGimplR; // Real.. whichever p
|
|||||||
typedef PeriodicGaugeImpl<SpGimplTypesF> SpPeriodicGimplF; // Float
|
typedef PeriodicGaugeImpl<SpGimplTypesF> SpPeriodicGimplF; // Float
|
||||||
typedef PeriodicGaugeImpl<SpGimplTypesD> SpPeriodicGimplD; // Double
|
typedef PeriodicGaugeImpl<SpGimplTypesD> SpPeriodicGimplD; // Double
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Lexicographic gauge implementations
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
typedef PeriodicGaugeImpl<lexGimplTypesF> lexPeriodicGimplF;
|
||||||
|
typedef PeriodicGaugeImpl<lexGimplTypesD> lexPeriodicGimplD;
|
||||||
|
|
||||||
|
typedef PeriodicGaugeImpl<lexGimplAdjointTypesF> lexPeriodicGimplAdjF;
|
||||||
|
typedef PeriodicGaugeImpl<lexGimplAdjointTypesD> lexPeriodicGimplAdjD;
|
||||||
|
|
||||||
|
typedef ConjugateGaugeImpl<lexGimplTypesF> lexConjugateGimplF;
|
||||||
|
typedef ConjugateGaugeImpl<lexGimplTypesD> lexConjugateGimplD;
|
||||||
|
|
||||||
|
typedef PeriodicGaugeImpl<lexSpGimplTypesF> lexSpPeriodicGimplF;
|
||||||
|
typedef PeriodicGaugeImpl<lexSpGimplTypesD> lexSpPeriodicGimplD;
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// End lexicographic gauge implementations
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
NAMESPACE_END(Grid);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user