diff --git a/lib/qcd/Grid_qcd_2spinor.h b/lib/qcd/Grid_qcd_2spinor.h index fe6a1da8..97de13cf 100644 --- a/lib/qcd/Grid_qcd_2spinor.h +++ b/lib/qcd/Grid_qcd_2spinor.h @@ -41,7 +41,8 @@ namespace QCD { * 0 -i 0 0 * -i 0 0 0 */ - template inline void + + template strong_inline void spProjXp (iVector &hspin,const iVector &fspin) { // To fail is not to err (Cryptic clue: suggest to Google SFINAE ;) ) @@ -49,7 +50,7 @@ namespace QCD { hspin(0)=fspin(0)+timesI(fspin(3)); hspin(1)=fspin(1)+timesI(fspin(2)); } - template inline void spProjXm (iVector &hspin,const iVector &fspin) + template strong_inline void spProjXm (iVector &hspin,const iVector &fspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; hspin(0)=fspin(0)-timesI(fspin(3)); @@ -60,13 +61,13 @@ namespace QCD { // 0 0 1 0 [1] +- [2] // 0 1 0 0 // -1 0 0 0 - template inline void spProjYp (iVector &hspin,const iVector &fspin) + template strong_inline void spProjYp (iVector &hspin,const iVector &fspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; hspin(0)=fspin(0)-fspin(3); hspin(1)=fspin(1)+fspin(2); } - template inline void spProjYm (iVector &hspin,const iVector &fspin) + template strong_inline void spProjYm (iVector &hspin,const iVector &fspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; hspin(0)=fspin(0)+fspin(3); @@ -78,13 +79,13 @@ namespace QCD { * -i 0 0 0 * 0 i 0 0 */ - template inline void spProjZp (iVector &hspin,const iVector &fspin) + template strong_inline void spProjZp (iVector &hspin,const iVector &fspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; hspin(0)=fspin(0)+timesI(fspin(2)); hspin(1)=fspin(1)-timesI(fspin(3)); } - template inline void spProjZm (iVector &hspin,const iVector &fspin) + template strong_inline void spProjZm (iVector &hspin,const iVector &fspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; hspin(0)=fspin(0)-timesI(fspin(2)); @@ -96,13 +97,13 @@ namespace QCD { * 1 0 0 0 * 0 1 0 0 */ - template inline void spProjTp (iVector &hspin,const iVector &fspin) + template strong_inline void spProjTp (iVector &hspin,const iVector &fspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; hspin(0)=fspin(0)+fspin(2); hspin(1)=fspin(1)+fspin(3); } - template inline void spProjTm (iVector &hspin,const iVector &fspin) + template strong_inline void spProjTm (iVector &hspin,const iVector &fspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; hspin(0)=fspin(0)-fspin(2); @@ -115,21 +116,21 @@ namespace QCD { * 0 0 0 -1 */ - template inline void spProj5p (iVector &hspin,const iVector &fspin) + template strong_inline void spProj5p (iVector &hspin,const iVector &fspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; hspin(0)=fspin(0); hspin(1)=fspin(1); } - template inline void spProj5m (iVector &hspin,const iVector &fspin) + template strong_inline void spProj5m (iVector &hspin,const iVector &fspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; hspin(0)=fspin(2); hspin(1)=fspin(3); } - // template inline void fspProj5p (iVector &rfspin,const iVector &fspin) - template inline void spProj5p (iVector &rfspin,const iVector &fspin) + // template strong_inline void fspProj5p (iVector &rfspin,const iVector &fspin) + template strong_inline void spProj5p (iVector &rfspin,const iVector &fspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; rfspin(0)=fspin(0); @@ -137,8 +138,8 @@ namespace QCD { rfspin(2)=zero; rfspin(3)=zero; } - // template inline void fspProj5m (iVector &rfspin,const iVector &fspin) - template inline void spProj5m (iVector &rfspin,const iVector &fspin) + // template strong_inline void fspProj5m (iVector &rfspin,const iVector &fspin) + template strong_inline void spProj5m (iVector &rfspin,const iVector &fspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; rfspin(0)=zero; @@ -156,7 +157,7 @@ namespace QCD { * 0 -i 0 0 -i[1]+-[2] == -i ([0]+-i[3]) = -i (1) * -i 0 0 0 -i[0]+-[3] == -i ([1]+-i[2]) = -i (0) */ - template inline void spReconXp (iVector &fspin,const iVector &hspin) + template strong_inline void spReconXp (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)=hspin(0); @@ -164,7 +165,7 @@ namespace QCD { fspin(2)=timesMinusI(hspin(1)); fspin(3)=timesMinusI(hspin(0)); } - template inline void spReconXm (iVector &fspin,const iVector &hspin) + template strong_inline void spReconXm (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)=hspin(0); @@ -172,7 +173,7 @@ namespace QCD { fspin(2)=timesI(hspin(1)); fspin(3)=timesI(hspin(0)); } - template inline void accumReconXp (iVector &fspin,const iVector &hspin) + template strong_inline void accumReconXp (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)+=hspin(0); @@ -180,7 +181,7 @@ namespace QCD { fspin(2)-=timesI(hspin(1)); fspin(3)-=timesI(hspin(0)); } - template inline void accumReconXm (iVector &fspin,const iVector &hspin) + template strong_inline void accumReconXm (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)+=hspin(0); @@ -194,7 +195,7 @@ namespace QCD { // 0 1 0 0 == 1(1) // -1 0 0 0 ==-1(0) - template inline void spReconYp (iVector &fspin,const iVector &hspin) + template strong_inline void spReconYp (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)=hspin(0); @@ -202,7 +203,7 @@ namespace QCD { fspin(2)= hspin(1); fspin(3)=-hspin(0);//Unary minus? } - template inline void spReconYm (iVector &fspin,const iVector &hspin) + template strong_inline void spReconYm (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)=hspin(0); @@ -210,7 +211,7 @@ namespace QCD { fspin(2)=-hspin(1); fspin(3)= hspin(0); } - template inline void accumReconYp (iVector &fspin,const iVector &hspin) + template strong_inline void accumReconYp (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)+=hspin(0); @@ -218,7 +219,7 @@ namespace QCD { fspin(2)+=hspin(1); fspin(3)-=hspin(0); } - template inline void accumReconYm (iVector &fspin,const iVector &hspin) + template strong_inline void accumReconYm (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)+=hspin(0); @@ -233,7 +234,7 @@ namespace QCD { * -i 0 0 0 => -i (0) * 0 i 0 0 => i (1) */ - template inline void spReconZp (iVector &fspin,const iVector &hspin) + template strong_inline void spReconZp (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)=hspin(0); @@ -241,7 +242,7 @@ namespace QCD { fspin(2)=timesMinusI(hspin(0)); fspin(3)=timesI(hspin(1)); } - template inline void spReconZm (iVector &fspin,const iVector &hspin) + template strong_inline void spReconZm (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)=hspin(0); @@ -249,7 +250,7 @@ namespace QCD { fspin(2)= timesI(hspin(0)); fspin(3)=timesMinusI(hspin(1)); } - template inline void accumReconZp (iVector &fspin,const iVector &hspin) + template strong_inline void accumReconZp (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)+=hspin(0); @@ -257,7 +258,7 @@ namespace QCD { fspin(2)-=timesI(hspin(0)); fspin(3)+=timesI(hspin(1)); } - template inline void accumReconZm (iVector &fspin,const iVector &hspin) + template strong_inline void accumReconZm (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)+=hspin(0); @@ -271,7 +272,7 @@ namespace QCD { * 1 0 0 0 => (0) * 0 1 0 0 => (1) */ - template inline void spReconTp (iVector &fspin,const iVector &hspin) + template strong_inline void spReconTp (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)=hspin(0); @@ -279,7 +280,7 @@ namespace QCD { fspin(2)=hspin(0); fspin(3)=hspin(1); } - template inline void spReconTm (iVector &fspin,const iVector &hspin) + template strong_inline void spReconTm (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)=hspin(0); @@ -287,7 +288,7 @@ namespace QCD { fspin(2)=-hspin(0); fspin(3)=-hspin(1); } - template inline void accumReconTp (iVector &fspin,const iVector &hspin) + template strong_inline void accumReconTp (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)+=hspin(0); @@ -295,7 +296,7 @@ namespace QCD { fspin(2)+=hspin(0); fspin(3)+=hspin(1); } - template inline void accumReconTm (iVector &fspin,const iVector &hspin) + template strong_inline void accumReconTm (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)+=hspin(0); @@ -309,7 +310,7 @@ namespace QCD { * 0 0 -1 0 * 0 0 0 -1 */ - template inline void spRecon5p (iVector &fspin,const iVector &hspin) + template strong_inline void spRecon5p (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)=hspin(0)+hspin(0); // add is lower latency than mul @@ -317,7 +318,7 @@ namespace QCD { fspin(2)=zero; fspin(3)=zero; } - template inline void spRecon5m (iVector &fspin,const iVector &hspin) + template strong_inline void spRecon5m (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)=zero; @@ -325,13 +326,13 @@ namespace QCD { fspin(2)=hspin(0)+hspin(0); fspin(3)=hspin(1)+hspin(1); } - template inline void accumRecon5p (iVector &fspin,const iVector &hspin) + template strong_inline void accumRecon5p (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(0)+=hspin(0)+hspin(0); fspin(1)+=hspin(1)+hspin(1); } - template inline void accumRecon5m (iVector &fspin,const iVector &hspin) + template strong_inline void accumRecon5m (iVector &fspin,const iVector &hspin) { typename std::enable_if,SpinIndex>::value,iVector >::type *SFINAE; fspin(2)+=hspin(0)+hspin(0); @@ -345,19 +346,19 @@ namespace QCD { ////////// // Xp ////////// - template inline void spProjXp (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProjXp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProjXp(hspin._internal,fspin._internal); } - template inline void spProjXp (iVector &hspin,iVector &fspin) + template strong_inline void spProjXp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spProjXp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProjXp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spReconXp (iScalar &hspin,const iScalar &fspin) + template strong_inline void spReconXp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spReconXp(hspin._internal,fspin._internal); } - template inline void spReconXp (iVector &hspin,iVector &fspin) + template strong_inline void spReconXp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spReconXp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spReconXp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void accumReconXp (iScalar &hspin,const iScalar &fspin) + template strong_inline void accumReconXp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; accumReconXp(hspin._internal,fspin._internal); } - template inline void accumReconXp (iVector &hspin,iVector &fspin) + template strong_inline void accumReconXp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void accumReconXp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void accumReconXp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spProjXm (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProjXm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProjXm(hspin._internal,fspin._internal); } - template inline void spProjXm (iVector &hspin,iVector &fspin) + template strong_inline void spProjXm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spProjXm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProjXm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spReconXm (iScalar &hspin,const iScalar &fspin) + template strong_inline void spReconXm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spReconXm(hspin._internal,fspin._internal); } - template inline void spReconXm (iVector &hspin,iVector &fspin) + template strong_inline void spReconXm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spReconXm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spReconXm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void accumReconXm (iScalar &hspin,const iScalar &fspin) + template strong_inline void accumReconXm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; accumReconXm(hspin._internal,fspin._internal); } - template inline void accumReconXm (iVector &hspin,iVector &fspin) + template strong_inline void accumReconXm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void accumReconXm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void accumReconXm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spProjYp (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProjYp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProjYp(hspin._internal,fspin._internal); } - template inline void spProjYp (iVector &hspin,iVector &fspin) + template strong_inline void spProjYp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spProjYp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProjYp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spReconYp (iScalar &hspin,const iScalar &fspin) + template strong_inline void spReconYp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spReconYp(hspin._internal,fspin._internal); } - template inline void spReconYp (iVector &hspin,iVector &fspin) + template strong_inline void spReconYp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spReconYp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spReconYp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void accumReconYp (iScalar &hspin,const iScalar &fspin) + template strong_inline void accumReconYp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; accumReconYp(hspin._internal,fspin._internal); } - template inline void accumReconYp (iVector &hspin,iVector &fspin) + template strong_inline void accumReconYp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void accumReconYp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void accumReconYp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spProjYm (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProjYm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProjYm(hspin._internal,fspin._internal); } - template inline void spProjYm (iVector &hspin,iVector &fspin) + template strong_inline void spProjYm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spProjYm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProjYm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spReconYm (iScalar &hspin,const iScalar &fspin) + template strong_inline void spReconYm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spReconYm(hspin._internal,fspin._internal); } - template inline void spReconYm (iVector &hspin,iVector &fspin) + template strong_inline void spReconYm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spReconYm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spReconYm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void accumReconYm (iScalar &hspin,const iScalar &fspin) + template strong_inline void accumReconYm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; accumReconYm(hspin._internal,fspin._internal); } - template inline void accumReconYm (iVector &hspin,iVector &fspin) + template strong_inline void accumReconYm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void accumReconYm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void accumReconYm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spProjZp (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProjZp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProjZp(hspin._internal,fspin._internal); } - template inline void spProjZp (iVector &hspin,iVector &fspin) + template strong_inline void spProjZp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spProjZp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProjZp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spReconZp (iScalar &hspin,const iScalar &fspin) + template strong_inline void spReconZp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spReconZp(hspin._internal,fspin._internal); } - template inline void spReconZp (iVector &hspin,iVector &fspin) + template strong_inline void spReconZp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spReconZp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spReconZp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void accumReconZp (iScalar &hspin,const iScalar &fspin) + template strong_inline void accumReconZp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; accumReconZp(hspin._internal,fspin._internal); } - template inline void accumReconZp (iVector &hspin,iVector &fspin) + template strong_inline void accumReconZp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void accumReconZp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void accumReconZp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spProjZm (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProjZm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProjZm(hspin._internal,fspin._internal); } - template inline void spProjZm (iVector &hspin,iVector &fspin) + template strong_inline void spProjZm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spProjZm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProjZm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spReconZm (iScalar &hspin,const iScalar &fspin) + template strong_inline void spReconZm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spReconZm(hspin._internal,fspin._internal); } - template inline void spReconZm (iVector &hspin,iVector &fspin) + template strong_inline void spReconZm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spReconZm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spReconZm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void accumReconZm (iScalar &hspin,const iScalar &fspin) + template strong_inline void accumReconZm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; accumReconZm(hspin._internal,fspin._internal); } - template inline void accumReconZm (iVector &hspin,iVector &fspin) + template strong_inline void accumReconZm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void accumReconZm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void accumReconZm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spProjTp (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProjTp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProjTp(hspin._internal,fspin._internal); } - template inline void spProjTp (iVector &hspin,iVector &fspin) + template strong_inline void spProjTp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spProjTp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProjTp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spReconTp (iScalar &hspin,const iScalar &fspin) + template strong_inline void spReconTp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spReconTp(hspin._internal,fspin._internal); } - template inline void spReconTp (iVector &hspin,iVector &fspin) + template strong_inline void spReconTp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spReconTp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spReconTp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void accumReconTp (iScalar &hspin,const iScalar &fspin) + template strong_inline void accumReconTp (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; accumReconTp(hspin._internal,fspin._internal); } - template inline void accumReconTp (iVector &hspin,iVector &fspin) + template strong_inline void accumReconTp (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void accumReconTp (iMatrix &hspin,iMatrix &fspin) + template strong_inline void accumReconTp (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spProjTm (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProjTm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProjTm(hspin._internal,fspin._internal); } - template inline void spProjTm (iVector &hspin,iVector &fspin) + template strong_inline void spProjTm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spProjTm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProjTm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spReconTm (iScalar &hspin,const iScalar &fspin) + template strong_inline void spReconTm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spReconTm(hspin._internal,fspin._internal); } - template inline void spReconTm (iVector &hspin,iVector &fspin) + template strong_inline void spReconTm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spReconTm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spReconTm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void accumReconTm (iScalar &hspin,const iScalar &fspin) + template strong_inline void accumReconTm (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; accumReconTm(hspin._internal,fspin._internal); } - template inline void accumReconTm (iVector &hspin,iVector &fspin) + template strong_inline void accumReconTm (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void accumReconTm (iMatrix &hspin,iMatrix &fspin) + template strong_inline void accumReconTm (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spProj5p (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProj5p (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProj5p(hspin._internal,fspin._internal); } - template inline void spProj5p (iVector &hspin,iVector &fspin) + template strong_inline void spProj5p (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spProj5p (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProj5p (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spRecon5p (iScalar &hspin,const iScalar &fspin) + template strong_inline void spRecon5p (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spRecon5p(hspin._internal,fspin._internal); } - template inline void spRecon5p (iVector &hspin,iVector &fspin) + template strong_inline void spRecon5p (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spRecon5p (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spRecon5p (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void accumRecon5p (iScalar &hspin,const iScalar &fspin) + template strong_inline void accumRecon5p (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; accumRecon5p(hspin._internal,fspin._internal); } - template inline void accumRecon5p (iVector &hspin,iVector &fspin) + template strong_inline void accumRecon5p (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void accumRecon5p (iMatrix &hspin,iMatrix &fspin) + template strong_inline void accumRecon5p (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void fspProj5p (iScalar &hspin,const iScalar &fspin) - template inline void spProj5p (iScalar &hspin,const iScalar &fspin) + // template strong_inline void fspProj5p (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProj5p (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProj5p(hspin._internal,fspin._internal); } - // template inline void fspProj5p (iVector &hspin,iVector &fspin) - template inline void spProj5p (iVector &hspin,iVector &fspin) + // template strong_inline void fspProj5p (iVector &hspin,iVector &fspin) + template strong_inline void spProj5p (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void fspProj5p (iMatrix &hspin,iMatrix &fspin) - template inline void spProj5p (iMatrix &hspin,iMatrix &fspin) + // template strong_inline void fspProj5p (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProj5p (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spProj5m (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProj5m (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProj5m(hspin._internal,fspin._internal); } - template inline void spProj5m (iVector &hspin,iVector &fspin) + template strong_inline void spProj5m (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spProj5m (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProj5m (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void spRecon5m (iScalar &hspin,const iScalar &fspin) + template strong_inline void spRecon5m (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spRecon5m(hspin._internal,fspin._internal); } - template inline void spRecon5m (iVector &hspin,iVector &fspin) + template strong_inline void spRecon5m (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void spRecon5m (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spRecon5m (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void accumRecon5m (iScalar &hspin,const iScalar &fspin) + template strong_inline void accumRecon5m (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; accumRecon5m(hspin._internal,fspin._internal); } - template inline void accumRecon5m (iVector &hspin,iVector &fspin) + template strong_inline void accumRecon5m (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void accumRecon5m (iMatrix &hspin,iMatrix &fspin) + template strong_inline void accumRecon5m (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i inline void fspProj5m (iScalar &hspin,const iScalar &fspin) - template inline void spProj5m (iScalar &hspin,const iScalar &fspin) + // template strong_inline void fspProj5m (iScalar &hspin,const iScalar &fspin) + template strong_inline void spProj5m (iScalar &hspin,const iScalar &fspin) { typename std::enable_if,SpinIndex>::notvalue,iScalar >::type *temp; spProj5m(hspin._internal,fspin._internal); } - // template inline void fspProj5m (iVector &hspin,iVector &fspin) - template inline void spProj5m (iVector &hspin,iVector &fspin) + // template strong_inline void fspProj5m (iVector &hspin,iVector &fspin) + template strong_inline void spProj5m (iVector &hspin,iVector &fspin) { typename std::enable_if,SpinIndex>::notvalue,iVector >::type *temp; for(int i=0;i inline void fspProj5m (iMatrix &hspin,iMatrix &fspin) - template inline void spProj5m (iMatrix &hspin,iMatrix &fspin) + // template strong_inline void fspProj5m (iMatrix &hspin,iMatrix &fspin) + template strong_inline void spProj5m (iMatrix &hspin,iMatrix &fspin) { typename std::enable_if,SpinIndex>::notvalue,iMatrix >::type *temp; for(int i=0;i