mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-10-31 03:54:33 +00:00 
			
		
		
		
	Refactoring header layout
This commit is contained in:
		
							
								
								
									
										52
									
								
								lib/Grid.h
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								lib/Grid.h
									
									
									
									
									
								
							| @@ -38,52 +38,10 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef GRID_H | #ifndef GRID_H | ||||||
| #define GRID_H | #define GRID_H | ||||||
|  |  | ||||||
| /////////////////// | #include <Grid/GridCore.h> | ||||||
| // Std C++ dependencies | #include <Grid/GridQCDcore.h> | ||||||
| /////////////////// | #include <Grid/qcd/action/Actions.h> | ||||||
| #include <cassert> | #include <Grid/qcd/smearing/Smearing.h> | ||||||
| #include <complex> | #include <Grid/qcd/hmc/HMC_aggregate.h> | ||||||
| #include <vector> |  | ||||||
| #include <iostream> |  | ||||||
| #include <iomanip> |  | ||||||
| #include <random> |  | ||||||
| #include <functional> |  | ||||||
| #include <stdio.h> |  | ||||||
| #include <stdlib.h> |  | ||||||
| #include <stdio.h> |  | ||||||
| #include <signal.h> |  | ||||||
| #include <ctime> |  | ||||||
| #include <sys/time.h> |  | ||||||
| #include <chrono> |  | ||||||
|  |  | ||||||
| /////////////////// |  | ||||||
| // Grid headers |  | ||||||
| /////////////////// |  | ||||||
| #include <Grid/serialisation/Serialisation.h> |  | ||||||
| #include "Config.h" |  | ||||||
| #include <Grid/Timer.h> |  | ||||||
| #include <Grid/PerfCount.h> |  | ||||||
| #include <Grid/Log.h> |  | ||||||
| #include <Grid/AlignedAllocator.h> |  | ||||||
| #include <Grid/Simd.h> |  | ||||||
| #include <Grid/Threads.h> |  | ||||||
| #include <Grid/Lexicographic.h> |  | ||||||
| #include <Grid/Init.h> |  | ||||||
| #include <Grid/Communicator.h>  |  | ||||||
| #include <Grid/Cartesian.h>     |  | ||||||
| #include <Grid/Tensors.h>       |  | ||||||
| #include <Grid/Lattice.h>       |  | ||||||
| #include <Grid/Cshift.h>        |  | ||||||
| #include <Grid/Stencil.h>       |  | ||||||
| #include <Grid/Algorithms.h>    |  | ||||||
| #include <Grid/parallelIO/BinaryIO.h> |  | ||||||
| #include <Grid/FFT.h> |  | ||||||
|  |  | ||||||
| #include <Grid/qcd/QCD.h> |  | ||||||
| #include <Grid/parallelIO/NerscIO.h> |  | ||||||
| #include <Grid/qcd/hmc/NerscCheckpointer.h> |  | ||||||
| #include <Grid/qcd/hmc/HmcRunner.h> |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|   | |||||||
							
								
								
									
										81
									
								
								lib/GridCore.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								lib/GridCore.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,81 @@ | |||||||
|  |     /************************************************************************************* | ||||||
|  |  | ||||||
|  |     Grid physics library, www.github.com/paboyle/Grid  | ||||||
|  |  | ||||||
|  |     Source file: ./lib/Grid.h | ||||||
|  |  | ||||||
|  |     Copyright (C) 2015 | ||||||
|  |  | ||||||
|  | Author: Peter Boyle <paboyle@ph.ed.ac.uk> | ||||||
|  | Author: azusayamaguchi <ayamaguc@YAMAKAZE.local> | ||||||
|  | Author: paboyle <paboyle@ph.ed.ac.uk> | ||||||
|  |  | ||||||
|  |     This program is free software; you can redistribute it and/or modify | ||||||
|  |     it under the terms of the GNU General Public License as published by | ||||||
|  |     the Free Software Foundation; either version 2 of the License, or | ||||||
|  |     (at your option) any later version. | ||||||
|  |  | ||||||
|  |     This program is distributed in the hope that it will be useful, | ||||||
|  |     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |     GNU General Public License for more details. | ||||||
|  |  | ||||||
|  |     You should have received a copy of the GNU General Public License along | ||||||
|  |     with this program; if not, write to the Free Software Foundation, Inc., | ||||||
|  |     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 */ | ||||||
|  | // | ||||||
|  | //  Grid.h | ||||||
|  | //  simd | ||||||
|  | // | ||||||
|  | //  Created by Peter Boyle on 09/05/2014. | ||||||
|  | //  Copyright (c) 2014 University of Edinburgh. All rights reserved. | ||||||
|  | // | ||||||
|  |  | ||||||
|  | #ifndef GRID_BASE_H | ||||||
|  | #define GRID_BASE_H | ||||||
|  |  | ||||||
|  | /////////////////// | ||||||
|  | // Std C++ dependencies | ||||||
|  | /////////////////// | ||||||
|  | #include <cassert> | ||||||
|  | #include <complex> | ||||||
|  | #include <vector> | ||||||
|  | #include <iostream> | ||||||
|  | #include <iomanip> | ||||||
|  | #include <random> | ||||||
|  | #include <functional> | ||||||
|  | #include <stdio.h> | ||||||
|  | #include <stdlib.h> | ||||||
|  | #include <stdio.h> | ||||||
|  | #include <signal.h> | ||||||
|  | #include <ctime> | ||||||
|  | #include <sys/time.h> | ||||||
|  | #include <chrono> | ||||||
|  |  | ||||||
|  | /////////////////// | ||||||
|  | // Grid headers | ||||||
|  | /////////////////// | ||||||
|  | #include "Config.h" | ||||||
|  |  | ||||||
|  | #include <Grid/serialisation/Serialisation.h> | ||||||
|  | #include <Grid/perfmon/Timer.h> | ||||||
|  | #include <Grid/perfmon/PerfCount.h> | ||||||
|  | #include <Grid/log/Log.h> | ||||||
|  | #include <Grid/allocator/AlignedAllocator.h> | ||||||
|  | #include <Grid/simd/Simd.h> | ||||||
|  | #include <Grid/threads/Threads.h> | ||||||
|  | #include <Grid/util/Util.h> | ||||||
|  | #include <Grid/communicator/Communicator.h>  | ||||||
|  | #include <Grid/cartesian/Cartesian.h>     | ||||||
|  | #include <Grid/tensors/Tensors.h>       | ||||||
|  | #include <Grid/lattice/Lattice.h>       | ||||||
|  | #include <Grid/cshift/Cshift.h>        | ||||||
|  | #include <Grid/stencil/Stencil.h>       | ||||||
|  | #include <Grid/parallelIO/BinaryIO.h> | ||||||
|  | #include <Grid/algorithms/Algorithms.h>    | ||||||
|  |  | ||||||
|  | #endif | ||||||
| @@ -2,12 +2,12 @@ | |||||||
| 
 | 
 | ||||||
|     Grid physics library, www.github.com/paboyle/Grid  |     Grid physics library, www.github.com/paboyle/Grid  | ||||||
| 
 | 
 | ||||||
|     Source file: ./lib/qcd/hmc/HMC.cc |     Source file: ./lib/Grid.h | ||||||
| 
 | 
 | ||||||
|     Copyright (C) 2015 |     Copyright (C) 2015 | ||||||
| 
 | 
 | ||||||
| Author: Peter Boyle <paboyle@ph.ed.ac.uk> | Author: Peter Boyle <paboyle@ph.ed.ac.uk> | ||||||
| Author: neo <cossu@post.kek.jp> | Author: azusayamaguchi <ayamaguc@YAMAKAZE.local> | ||||||
| Author: paboyle <paboyle@ph.ed.ac.uk> | Author: paboyle <paboyle@ph.ed.ac.uk> | ||||||
| 
 | 
 | ||||||
|     This program is free software; you can redistribute it and/or modify |     This program is free software; you can redistribute it and/or modify | ||||||
| @@ -27,10 +27,17 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> |  | ||||||
| 
 | 
 | ||||||
| namespace Grid{ | #ifndef GRID_QCD_CORE_H | ||||||
|   namespace QCD{ | #define GRID_QCD_CORE_H | ||||||
| 
 | 
 | ||||||
|   } | /////////////////////////
 | ||||||
| } | // Core Grid QCD headers
 | ||||||
|  | /////////////////////////
 | ||||||
|  | #include <Grid/GridCore.h> | ||||||
|  | #include <Grid/qcd/QCD.h> | ||||||
|  | #include <Grid/qcd/spin/Spin.h> | ||||||
|  | #include <Grid/qcd/utils/Utils.h> | ||||||
|  | #include <Grid/qcd/representations/Representations.h> | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
										
											Binary file not shown.
										
									
								
							| @@ -1,154 +0,0 @@ | |||||||
|     /************************************************************************************* |  | ||||||
|  |  | ||||||
|     Grid physics library, www.github.com/paboyle/Grid  |  | ||||||
|  |  | ||||||
|     Source file: ./lib/Old/Tensor_peek.h |  | ||||||
|  |  | ||||||
|     Copyright (C) 2015 |  | ||||||
|  |  | ||||||
| Author: Peter Boyle <paboyle@ph.ed.ac.uk> |  | ||||||
|  |  | ||||||
|     This program is free software; you can redistribute it and/or modify |  | ||||||
|     it under the terms of the GNU General Public License as published by |  | ||||||
|     the Free Software Foundation; either version 2 of the License, or |  | ||||||
|     (at your option) any later version. |  | ||||||
|  |  | ||||||
|     This program is distributed in the hope that it will be useful, |  | ||||||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
|     GNU General Public License for more details. |  | ||||||
|  |  | ||||||
|     You should have received a copy of the GNU General Public License along |  | ||||||
|     with this program; if not, write to the Free Software Foundation, Inc., |  | ||||||
|     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 */ |  | ||||||
| #ifndef GRID_MATH_PEEK_H |  | ||||||
| #define GRID_MATH_PEEK_H |  | ||||||
| namespace Grid { |  | ||||||
|  |  | ||||||
| ////////////////////////////////////////////////////////////////////////////// |  | ||||||
| // Peek on a specific index; returns a scalar in that index, tensor inherits rest |  | ||||||
| ////////////////////////////////////////////////////////////////////////////// |  | ||||||
| // If we hit the right index, return scalar with no further recursion |  | ||||||
|  |  | ||||||
| //template<int Level> inline ComplexF peekIndex(const ComplexF arg) { return arg;} |  | ||||||
| //template<int Level> inline ComplexD peekIndex(const ComplexD arg) { return arg;} |  | ||||||
| //template<int Level> inline RealF peekIndex(const RealF arg) { return arg;} |  | ||||||
| //template<int Level> inline RealD peekIndex(const RealD arg) { return arg;} |  | ||||||
| #if 0 |  | ||||||
| // Scalar peek, no indices |  | ||||||
| template<int Level,class vtype,typename std::enable_if< iScalar<vtype>::TensorLevel == Level >::type * =nullptr> inline  |  | ||||||
|   auto peekIndex(const iScalar<vtype> &arg) ->  iScalar<vtype>  |  | ||||||
| { |  | ||||||
|   return arg; |  | ||||||
| } |  | ||||||
| // Vector peek, one index |  | ||||||
| template<int Level,class vtype,int N,typename std::enable_if< iScalar<vtype>::TensorLevel == Level >::type * =nullptr> inline  |  | ||||||
|   auto peekIndex(const iVector<vtype,N> &arg,int i) -> iScalar<vtype> // Index matches |  | ||||||
| { |  | ||||||
|   iScalar<vtype> ret;                              // return scalar |  | ||||||
|   ret._internal = arg._internal[i]; |  | ||||||
|   return ret; |  | ||||||
| } |  | ||||||
| // Matrix peek, two indices |  | ||||||
| template<int Level,class vtype,int N,typename std::enable_if< iScalar<vtype>::TensorLevel == Level >::type * =nullptr> inline  |  | ||||||
|   auto peekIndex(const iMatrix<vtype,N> &arg,int i,int j) ->  iScalar<vtype> |  | ||||||
| { |  | ||||||
|   iScalar<vtype> ret;                              // return scalar |  | ||||||
|   ret._internal = arg._internal[i][j]; |  | ||||||
|   return ret; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| ///////////// |  | ||||||
| // No match peek for scalar,vector,matrix must forward on either 0,1,2 args. Must have 9 routines with notvalue |  | ||||||
| ///////////// |  | ||||||
| // scalar |  | ||||||
| template<int Level,class vtype,typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   auto peekIndex(const iScalar<vtype> &arg) -> iScalar<decltype(peekIndex<Level>(arg._internal))> |  | ||||||
| { |  | ||||||
|   iScalar<decltype(peekIndex<Level>(arg._internal))> ret; |  | ||||||
|   ret._internal= peekIndex<Level>(arg._internal); |  | ||||||
|   return ret; |  | ||||||
| } |  | ||||||
| template<int Level,class vtype, typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   auto peekIndex(const iScalar<vtype> &arg,int i) ->  iScalar<decltype(peekIndex<Level>(arg._internal,i))>  |  | ||||||
| { |  | ||||||
|   iScalar<decltype(peekIndex<Level>(arg._internal,i))> ret; |  | ||||||
|   ret._internal=peekIndex<Level>(arg._internal,i); |  | ||||||
|   return ret; |  | ||||||
| } |  | ||||||
| template<int Level,class vtype, typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   auto peekIndex(const iScalar<vtype> &arg,int i,int j) ->  iScalar<decltype(peekIndex<Level>(arg._internal,i,j))> |  | ||||||
| { |  | ||||||
|   iScalar<decltype(peekIndex<Level>(arg._internal,i,j))> ret; |  | ||||||
|   ret._internal=peekIndex<Level>(arg._internal,i,j); |  | ||||||
|   return ret; |  | ||||||
| } |  | ||||||
| // vector |  | ||||||
| template<int Level,class vtype,int N, typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
| auto peekIndex(const iVector<vtype,N> &arg) ->   iVector<decltype(peekIndex<Level>(arg._internal[0])),N> |  | ||||||
| { |  | ||||||
|   iVector<decltype(peekIndex<Level>(arg._internal[0])),N> ret; |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|     ret._internal[ii]=peekIndex<Level>(arg._internal[ii]); |  | ||||||
|   } |  | ||||||
|   return ret; |  | ||||||
| } |  | ||||||
| template<int Level,class vtype,int N, typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   auto peekIndex(const iVector<vtype,N> &arg,int i) ->  iVector<decltype(peekIndex<Level>(arg._internal[0],i)),N> |  | ||||||
| { |  | ||||||
|   iVector<decltype(peekIndex<Level>(arg._internal[0],i)),N> ret; |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|     ret._internal[ii]=peekIndex<Level>(arg._internal[ii],i); |  | ||||||
|   } |  | ||||||
|   return ret; |  | ||||||
| } |  | ||||||
| template<int Level,class vtype,int N, typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   auto peekIndex(const iVector<vtype,N> &arg,int i,int j) ->  iVector<decltype(peekIndex<Level>(arg._internal[0],i,j)),N>  |  | ||||||
| { |  | ||||||
|   iVector<decltype(peekIndex<Level>(arg._internal[0],i,j)),N> ret; |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|     ret._internal[ii]=peekIndex<Level>(arg._internal[ii],i,j); |  | ||||||
|   } |  | ||||||
|   return ret; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // matrix |  | ||||||
| template<int Level,class vtype,int N, typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
| auto peekIndex(const iMatrix<vtype,N> &arg) ->   iMatrix<decltype(peekIndex<Level>(arg._internal[0][0])),N>  |  | ||||||
| { |  | ||||||
|   iMatrix<decltype(peekIndex<Level>(arg._internal[0][0])),N> ret; |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|   for(int jj=0;jj<N;jj++){ |  | ||||||
|     ret._internal[ii][jj]=peekIndex<Level>(arg._internal[ii][jj]);// Could avoid this because peeking a scalar is dumb |  | ||||||
|   }} |  | ||||||
|   return ret; |  | ||||||
| } |  | ||||||
| template<int Level,class vtype,int N, typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   auto peekIndex(const iMatrix<vtype,N> &arg,int i) ->   iMatrix<decltype(peekIndex<Level>(arg._internal[0][0],i)),N> |  | ||||||
| { |  | ||||||
|   iMatrix<decltype(peekIndex<Level>(arg._internal[0][0],i)),N> ret; |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|   for(int jj=0;jj<N;jj++){ |  | ||||||
|     ret._internal[ii][jj]=peekIndex<Level>(arg._internal[ii][jj],i); |  | ||||||
|   }} |  | ||||||
|   return ret; |  | ||||||
| } |  | ||||||
| template<int Level,class vtype,int N, typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   auto peekIndex(const iMatrix<vtype,N> &arg,int i,int j) ->   iMatrix<decltype(peekIndex<Level>(arg._internal[0][0],i,j)),N> |  | ||||||
| { |  | ||||||
|   iMatrix<decltype(peekIndex<Level>(arg._internal[0][0],i,j)),N> ret; |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|   for(int jj=0;jj<N;jj++){ |  | ||||||
|     ret._internal[ii][jj]=peekIndex<Level>(arg._internal[ii][jj],i,j); |  | ||||||
|   }} |  | ||||||
|   return ret; |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|  |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| @@ -1,127 +0,0 @@ | |||||||
|     /************************************************************************************* |  | ||||||
|  |  | ||||||
|     Grid physics library, www.github.com/paboyle/Grid  |  | ||||||
|  |  | ||||||
|     Source file: ./lib/Old/Tensor_poke.h |  | ||||||
|  |  | ||||||
|     Copyright (C) 2015 |  | ||||||
|  |  | ||||||
| Author: Peter Boyle <paboyle@ph.ed.ac.uk> |  | ||||||
|  |  | ||||||
|     This program is free software; you can redistribute it and/or modify |  | ||||||
|     it under the terms of the GNU General Public License as published by |  | ||||||
|     the Free Software Foundation; either version 2 of the License, or |  | ||||||
|     (at your option) any later version. |  | ||||||
|  |  | ||||||
|     This program is distributed in the hope that it will be useful, |  | ||||||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
|     GNU General Public License for more details. |  | ||||||
|  |  | ||||||
|     You should have received a copy of the GNU General Public License along |  | ||||||
|     with this program; if not, write to the Free Software Foundation, Inc., |  | ||||||
|     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 */ |  | ||||||
| #ifndef GRID_MATH_POKE_H |  | ||||||
| #define GRID_MATH_POKE_H |  | ||||||
| namespace Grid { |  | ||||||
|  |  | ||||||
| ////////////////////////////////////////////////////////////////////////////// |  | ||||||
| // Poke a specific index;  |  | ||||||
| ////////////////////////////////////////////////////////////////////////////// |  | ||||||
| #if 0 |  | ||||||
| // Scalar poke |  | ||||||
| template<int Level,class vtype,typename std::enable_if< iScalar<vtype>::TensorLevel == Level >::type * =nullptr> inline  |  | ||||||
|   void pokeIndex(iScalar<vtype> &ret, const iScalar<vtype> &arg) |  | ||||||
| { |  | ||||||
|   ret._internal = arg._internal; |  | ||||||
| } |  | ||||||
| // Vector poke, one index |  | ||||||
| template<int Level,class vtype,int N,typename std::enable_if< iScalar<vtype>::TensorLevel == Level >::type * =nullptr> inline  |  | ||||||
|   void pokeIndex(iVector<vtype,N> &ret, const iScalar<vtype> &arg,int i) |  | ||||||
| { |  | ||||||
|   ret._internal[i] = arg._internal; |  | ||||||
| } |  | ||||||
| //Matrix poke, two indices |  | ||||||
| template<int Level,class vtype,int N,typename std::enable_if< iScalar<vtype>::TensorLevel == Level >::type * =nullptr> inline  |  | ||||||
|   void pokeIndex(iMatrix<vtype,N> &ret, const iScalar<vtype> &arg,int i,int j) |  | ||||||
| { |  | ||||||
|   ret._internal[i][j] = arg._internal; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| ///////////// |  | ||||||
| // No match poke for scalar,vector,matrix must forward on either 0,1,2 args. Must have 9 routines with notvalue |  | ||||||
| ///////////// |  | ||||||
| // scalar |  | ||||||
| template<int Level,class vtype,typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
| void pokeIndex(iScalar<vtype> &ret, const iScalar<decltype(peekIndex<Level>(ret._internal))>  &arg) |  | ||||||
| { |  | ||||||
|   pokeIndex<Level>(ret._internal,arg._internal); |  | ||||||
| } |  | ||||||
| template<int Level,class vtype,typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   void pokeIndex(iScalar<vtype> &ret, const iScalar<decltype(peekIndex<Level>(ret._internal,0))> &arg, int i) |  | ||||||
| 		  |  | ||||||
| { |  | ||||||
|   pokeIndex<Level>(ret._internal,arg._internal,i); |  | ||||||
| } |  | ||||||
| template<int Level,class vtype,typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   void pokeIndex(iScalar<vtype> &ret, const iScalar<decltype(peekIndex<Level>(ret._internal,0,0))> &arg,int i,int j) |  | ||||||
| { |  | ||||||
|   pokeIndex<Level>(ret._internal,arg._internal,i,j); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Vector |  | ||||||
| template<int Level,class vtype,int N,typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   void pokeIndex(iVector<vtype,N> &ret, iVector<decltype(peekIndex<Level>(ret._internal)),N>  &arg) |  | ||||||
| { |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|     pokeIndex<Level>(ret._internal[ii],arg._internal[ii]); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| template<int Level,class vtype,int N,typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   void pokeIndex(iVector<vtype,N> &ret, const iVector<decltype(peekIndex<Level>(ret._internal,0)),N> &arg,int i) |  | ||||||
| { |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|     pokeIndex<Level>(ret._internal[ii],arg._internal[ii],i); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| template<int Level,class vtype,int N,typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   void pokeIndex(iVector<vtype,N> &ret, const iVector<decltype(peekIndex<Level>(ret._internal,0,0)),N> &arg,int i,int j) |  | ||||||
| { |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|     pokeIndex<Level>(ret._internal[ii],arg._internal[ii],i,j); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Matrix |  | ||||||
| template<int Level,class vtype,int N,typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   void pokeIndex(iMatrix<vtype,N> &ret, const iMatrix<decltype(peekIndex<Level>(ret._internal)),N> &arg)		  |  | ||||||
| { |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|   for(int jj=0;jj<N;jj++){ |  | ||||||
|     pokeIndex<Level>(ret._internal[ii][jj],arg._internal[ii][jj]); |  | ||||||
|   }} |  | ||||||
| } |  | ||||||
| template<int Level,class vtype,int N,typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   void pokeIndex(iMatrix<vtype,N> &ret, const iMatrix<decltype(peekIndex<Level>(ret._internal,0)),N> &arg,int i) |  | ||||||
| { |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|   for(int jj=0;jj<N;jj++){ |  | ||||||
|     pokeIndex<Level>(ret._internal[ii][jj],arg._internal[ii][jj],i); |  | ||||||
|   }} |  | ||||||
| } |  | ||||||
| template<int Level,class vtype,int N,typename std::enable_if< iScalar<vtype>::TensorLevel != Level >::type * =nullptr> inline  |  | ||||||
|   void pokeIndex(iMatrix<vtype,N> &ret, const iMatrix<decltype(peekIndex<Level>(ret._internal,0,0)),N> &arg, int i,int j) |  | ||||||
| { |  | ||||||
|   for(int ii=0;ii<N;ii++){ |  | ||||||
|   for(int jj=0;jj<N;jj++){ |  | ||||||
|     pokeIndex<Level>(ret._internal[ii][jj],arg._internal[ii][jj],i,j); |  | ||||||
|   }} |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| @@ -42,15 +42,14 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #include <Grid/algorithms/iterative/ConjugateResidual.h> | #include <Grid/algorithms/iterative/ConjugateResidual.h> | ||||||
| #include <Grid/algorithms/iterative/NormalEquations.h> | #include <Grid/algorithms/iterative/NormalEquations.h> | ||||||
| #include <Grid/algorithms/iterative/SchurRedBlack.h> | #include <Grid/algorithms/iterative/SchurRedBlack.h> | ||||||
| 
 |  | ||||||
| #include <Grid/algorithms/iterative/ConjugateGradientMultiShift.h> | #include <Grid/algorithms/iterative/ConjugateGradientMultiShift.h> | ||||||
| #include <Grid/algorithms/iterative/ConjugateGradientMixedPrec.h> | #include <Grid/algorithms/iterative/ConjugateGradientMixedPrec.h> | ||||||
| 
 | 
 | ||||||
| // Lanczos support
 | // Lanczos support
 | ||||||
| #include <Grid/algorithms/iterative/MatrixUtils.h> | #include <Grid/algorithms/iterative/MatrixUtils.h> | ||||||
| #include <Grid/algorithms/iterative/ImplicitlyRestartedLanczos.h> | #include <Grid/algorithms/iterative/ImplicitlyRestartedLanczos.h> | ||||||
| 
 |  | ||||||
| #include <Grid/algorithms/CoarsenedMatrix.h> | #include <Grid/algorithms/CoarsenedMatrix.h> | ||||||
|  | #include <Grid/algorithms/FFT.h> | ||||||
| 
 | 
 | ||||||
| // Eigen/lanczos
 | // Eigen/lanczos
 | ||||||
| // EigCg
 | // EigCg
 | ||||||
| @@ -25,7 +25,7 @@ Author: Azusa Yamaguchi <ayamaguc@staffmail.ed.ac.uk> | |||||||
|     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.h> | #include <Grid/GridCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
| double MultiShiftFunction::approx(double x) | double MultiShiftFunction::approx(double x) | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ | |||||||
| #include<iomanip> | #include<iomanip> | ||||||
| #include<cassert> | #include<cassert> | ||||||
|  |  | ||||||
| #include<algorithms/approx/Remez.h> | #include<Grid/algorithms/approx/Remez.h> | ||||||
|  |  | ||||||
| // Constructor | // Constructor | ||||||
| AlgRemez::AlgRemez(double lower, double upper, long precision)  | AlgRemez::AlgRemez(double lower, double upper, long precision)  | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ | |||||||
| #define INCLUDED_ALG_REMEZ_H | #define INCLUDED_ALG_REMEZ_H | ||||||
|  |  | ||||||
| #include <stddef.h> | #include <stddef.h> | ||||||
| #include <Config.h> | #include <Grid/Config.h> | ||||||
|  |  | ||||||
| #ifdef HAVE_LIBGMP | #ifdef HAVE_LIBGMP | ||||||
| #include "bigfloat.h" | #include "bigfloat.h" | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #include <Grid/Grid.h> | #include <Grid/GridCore.h> | ||||||
| 
 | 
 | ||||||
| namespace Grid { | namespace Grid { | ||||||
| 
 | 
 | ||||||
| @@ -25,7 +25,8 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h" | #include <Grid/GridCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
| /////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////// | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h" | #include <Grid/GridCore.h> | ||||||
| #include <mpi.h> | #include <mpi.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|   | |||||||
| @@ -25,8 +25,8 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h" | #include <Grid/GridCore.h> | ||||||
| //#include <mcheck.h> |  | ||||||
| #include <mpi.h> | #include <mpi.h> | ||||||
|  |  | ||||||
| #include <semaphore.h> | #include <semaphore.h> | ||||||
|   | |||||||
| @@ -25,7 +25,8 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h" | #include <Grid/GridCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
| /////////////////////////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////////////////////////// | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h" | #include <Grid/Grid.h> | ||||||
| #include <mpp/shmem.h> | #include <mpp/shmem.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ See the full license in the file "LICENSE" in the top level distribution | |||||||
| directory | directory | ||||||
| *************************************************************************************/ | *************************************************************************************/ | ||||||
| /*  END LEGAL */ | /*  END LEGAL */ | ||||||
| #include <Grid.h> | #include <Grid/GridCore.h> | ||||||
| 
 | 
 | ||||||
| #include <cxxabi.h> | #include <cxxabi.h> | ||||||
| 
 | 
 | ||||||
| @@ -26,8 +26,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     *************************************************************************************/ |     *************************************************************************************/ | ||||||
|     /*  END LEGAL */ |     /*  END LEGAL */ | ||||||
| 
 | 
 | ||||||
| #include <Grid.h> | #include <Grid/GridCore.h> | ||||||
| #include <PerfCount.h> | #include <Grid/perfmon/PerfCount.h> | ||||||
| 
 | 
 | ||||||
| namespace Grid { | namespace Grid { | ||||||
| 
 | 
 | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| #include <Grid.h> | #include <Grid/GridCore.h> | ||||||
| #include <PerfCount.h> | #include <Grid/perfmon/PerfCount.h> | ||||||
| #include <Stat.h> | #include <Grid/perfmon/Stat.h> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| namespace Grid {  | namespace Grid {  | ||||||
| @@ -29,8 +29,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     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 */ | ||||||
| #ifndef GRID_QCD_H | #ifndef GRID_QCD_BASE_H | ||||||
| #define GRID_QCD_H | #define GRID_QCD_BASE_H | ||||||
| namespace Grid{ | namespace Grid{ | ||||||
|  |  | ||||||
| namespace QCD { | namespace QCD { | ||||||
| @@ -62,7 +62,6 @@ namespace QCD { | |||||||
|     #define SpinIndex    1 |     #define SpinIndex    1 | ||||||
|     #define LorentzIndex 0 |     #define LorentzIndex 0 | ||||||
|  |  | ||||||
|    |  | ||||||
|     // Also should make these a named enum type |     // Also should make these a named enum type | ||||||
|     static const int DaggerNo=0; |     static const int DaggerNo=0; | ||||||
|     static const int DaggerYes=1; |     static const int DaggerYes=1; | ||||||
| @@ -494,26 +493,5 @@ namespace QCD { | |||||||
| } // Grid | } // Grid | ||||||
|  |  | ||||||
|  |  | ||||||
| #include <Grid/qcd/utils/SpaceTimeGrid.h> |  | ||||||
| #include <Grid/qcd/spin/Dirac.h> |  | ||||||
| #include <Grid/qcd/spin/TwoSpinor.h> |  | ||||||
| #include <Grid/qcd/utils/LinalgUtils.h> |  | ||||||
| #include <Grid/qcd/utils/CovariantCshift.h> |  | ||||||
|  |  | ||||||
| // Include representations 	 |  | ||||||
| #include <Grid/qcd/utils/SUn.h> |  | ||||||
| #include <Grid/qcd/utils/SUnAdjoint.h> |  | ||||||
| #include <Grid/qcd/utils/SUnTwoIndex.h> |  | ||||||
| #include <Grid/qcd/representations/hmc_types.h> |  | ||||||
|  |  | ||||||
| #include <Grid/qcd/action/Actions.h> |  | ||||||
|  |  | ||||||
| #include <Grid/qcd/smearing/Smearing.h> |  | ||||||
|  |  | ||||||
| #include <Grid/qcd/hmc/integrators/Integrator.h> |  | ||||||
| #include <Grid/qcd/hmc/integrators/Integrator_algorithm.h> |  | ||||||
| #include <Grid/qcd/hmc/HMC.h> |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|   | |||||||
							
								
								
									
										55
									
								
								lib/qcd/action/Action.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								lib/qcd/action/Action.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  |     /************************************************************************************* | ||||||
|  |  | ||||||
|  |     Grid physics library, www.github.com/paboyle/Grid  | ||||||
|  |  | ||||||
|  |     Source file: ./lib/qcd/action/Actions.h | ||||||
|  |  | ||||||
|  |     Copyright (C) 2015 | ||||||
|  |  | ||||||
|  | Author: Azusa Yamaguchi <ayamaguc@staffmail.ed.ac.uk> | ||||||
|  | Author: Peter Boyle <pabobyle@ph.ed.ac.uk> | ||||||
|  | Author: Peter Boyle <paboyle@ph.ed.ac.uk> | ||||||
|  | Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local> | ||||||
|  | Author: neo <cossu@post.kek.jp> | ||||||
|  | Author: paboyle <paboyle@ph.ed.ac.uk> | ||||||
|  |  | ||||||
|  |     This program is free software; you can redistribute it and/or modify | ||||||
|  |     it under the terms of the GNU General Public License as published by | ||||||
|  |     the Free Software Foundation; either version 2 of the License, or | ||||||
|  |     (at your option) any later version. | ||||||
|  |  | ||||||
|  |     This program is distributed in the hope that it will be useful, | ||||||
|  |     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |     GNU General Public License for more details. | ||||||
|  |  | ||||||
|  |     You should have received a copy of the GNU General Public License along | ||||||
|  |     with this program; if not, write to the Free Software Foundation, Inc., | ||||||
|  |     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 */ | ||||||
|  | #ifndef GRID_QCD_ACTIONS_H | ||||||
|  | #define GRID_QCD_ACTIONS_H | ||||||
|  |  | ||||||
|  | // * Linear operators             (Hermitian and non-hermitian)  .. my LinearOperator | ||||||
|  | // * System solvers               (Hermitian and non-hermitian)  .. my OperatorFunction | ||||||
|  | // * MultiShift System solvers    (Hermitian and non-hermitian)  .. my OperatorFunction | ||||||
|  |  | ||||||
|  | //////////////////////////////////////////// | ||||||
|  | // Abstract base interface | ||||||
|  | //////////////////////////////////////////// | ||||||
|  | #include <Grid/qcd/action/ActionCore.h> | ||||||
|  |  | ||||||
|  | //////////////////////////////////////////////////////////////////////// | ||||||
|  | // Fermion actions; prevent coupling fermion.cc files to other headers | ||||||
|  | //////////////////////////////////////////////////////////////////////// | ||||||
|  | #include <Grid/qcd/action/fermion/Fermion.h> | ||||||
|  |  | ||||||
|  | //////////////////////////////////////// | ||||||
|  | // Pseudo fermion combinations for HMC | ||||||
|  | //////////////////////////////////////// | ||||||
|  | #include <Grid/qcd/action/pseudofermion/PseudoFermion.h> | ||||||
|  |  | ||||||
|  | #endif | ||||||
| @@ -150,4 +150,5 @@ using ActionSet = std::vector<ActionLevel<GaugeField, R> >; | |||||||
|  |  | ||||||
| } | } | ||||||
| } | } | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|   | |||||||
							
								
								
									
										45
									
								
								lib/qcd/action/ActionCore.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								lib/qcd/action/ActionCore.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | |||||||
|  | /************************************************************************************* | ||||||
|  |  | ||||||
|  | Grid physics library, www.github.com/paboyle/Grid | ||||||
|  |  | ||||||
|  | Source file: ./lib/qcd/action/ActionCore.h | ||||||
|  |  | ||||||
|  | Copyright (C) 2015 | ||||||
|  |  | ||||||
|  | Author: Peter Boyle <paboyle@ph.ed.ac.uk> | ||||||
|  | Author: neo <cossu@post.kek.jp> | ||||||
|  |  | ||||||
|  | This program is free software; you can redistribute it and/or modify | ||||||
|  | it under the terms of the GNU General Public License as published by | ||||||
|  | the Free Software Foundation; either version 2 of the License, or | ||||||
|  | (at your option) any later version. | ||||||
|  |  | ||||||
|  | This program is distributed in the hope that it will be useful, | ||||||
|  | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | GNU General Public License for more details. | ||||||
|  |  | ||||||
|  | You should have received a copy of the GNU General Public License along | ||||||
|  | with this program; if not, write to the Free Software Foundation, Inc., | ||||||
|  | 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 */ | ||||||
|  | #ifndef QCD_ACTION_CORE | ||||||
|  | #define QCD_ACTION_CORE | ||||||
|  |  | ||||||
|  | #include <Grid/qcd/action/ActionBase.h> | ||||||
|  | #include <Grid/qcd/action/ActionParams.h> | ||||||
|  |  | ||||||
|  | //////////////////////////////////////////// | ||||||
|  | // Gauge Actions | ||||||
|  | //////////////////////////////////////////// | ||||||
|  | #include <Grid/qcd/action/gauge/Gauge.h> | ||||||
|  | //////////////////////////////////////////// | ||||||
|  | // Fermion prereqs | ||||||
|  | //////////////////////////////////////////// | ||||||
|  | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
|  | #endif | ||||||
| @@ -30,8 +30,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     /*  END LEGAL */ |     /*  END LEGAL */ | ||||||
|  |  | ||||||
| #include <Grid/Eigen/Dense> | #include <Grid/Eigen/Dense> | ||||||
| #include <Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  | #include <Grid/qcd/action/fermion/CayleyFermion5D.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
| namespace QCD { | namespace QCD { | ||||||
|   | |||||||
| @@ -29,6 +29,8 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  GRID_QCD_CAYLEY_FERMION_H | #ifndef  GRID_QCD_CAYLEY_FERMION_H | ||||||
| #define  GRID_QCD_CAYLEY_FERMION_H | #define  GRID_QCD_CAYLEY_FERMION_H | ||||||
|  |  | ||||||
|  | #include <Grid/qcd/action/fermion/WilsonFermion5D.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   namespace QCD { |   namespace QCD { | ||||||
|   | |||||||
| @@ -29,7 +29,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     *************************************************************************************/ |     *************************************************************************************/ | ||||||
|     /*  END LEGAL */ |     /*  END LEGAL */ | ||||||
|  |  | ||||||
| #include <Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  | #include <Grid/qcd/action/fermion/CayleyFermion5D.h> | ||||||
|  |  | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|   | |||||||
| @@ -30,7 +30,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     /*  END LEGAL */ |     /*  END LEGAL */ | ||||||
|  |  | ||||||
| #include <Grid/Eigen/Dense> | #include <Grid/Eigen/Dense> | ||||||
| #include <Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  | #include <Grid/qcd/action/fermion/CayleyFermion5D.h> | ||||||
|  |  | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|   | |||||||
| @@ -29,7 +29,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     *************************************************************************************/ |     *************************************************************************************/ | ||||||
|     /*  END LEGAL */ |     /*  END LEGAL */ | ||||||
|  |  | ||||||
| #include <Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  | #include <Grid/qcd/action/fermion/CayleyFermion5D.h> | ||||||
|  |  | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|   | |||||||
| @@ -30,7 +30,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     /*  END LEGAL */ |     /*  END LEGAL */ | ||||||
|  |  | ||||||
|  |  | ||||||
| #include <Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  | #include <Grid/qcd/action/fermion/CayleyFermion5D.h> | ||||||
|  |  | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|   | |||||||
| @@ -26,7 +26,8 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  | #include <Grid/qcd/action/fermion/ContinuedFractionFermion5D.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|   namespace QCD { |   namespace QCD { | ||||||
|   | |||||||
| @@ -29,6 +29,8 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  GRID_QCD_CONTINUED_FRACTION_H | #ifndef  GRID_QCD_CONTINUED_FRACTION_H | ||||||
| #define  GRID_QCD_CONTINUED_FRACTION_H | #define  GRID_QCD_CONTINUED_FRACTION_H | ||||||
|  |  | ||||||
|  | #include <Grid/qcd/action/fermion/WilsonFermion5D.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   namespace QCD { |   namespace QCD { | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  GRID_QCD_DOMAIN_WALL_FERMION_H | #ifndef  GRID_QCD_DOMAIN_WALL_FERMION_H | ||||||
| #define  GRID_QCD_DOMAIN_WALL_FERMION_H | #define  GRID_QCD_DOMAIN_WALL_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2,16 +2,11 @@ | |||||||
| 
 | 
 | ||||||
|     Grid physics library, www.github.com/paboyle/Grid  |     Grid physics library, www.github.com/paboyle/Grid  | ||||||
| 
 | 
 | ||||||
|     Source file: ./lib/qcd/action/Actions.h |     Source file: ./lib/qcd/action/fermion/Fermion_base_aggregate.h | ||||||
| 
 | 
 | ||||||
|     Copyright (C) 2015 |     Copyright (C) 2015 | ||||||
| 
 | 
 | ||||||
| Author: Azusa Yamaguchi <ayamaguc@staffmail.ed.ac.uk> |  | ||||||
| Author: Peter Boyle <pabobyle@ph.ed.ac.uk> | Author: Peter Boyle <pabobyle@ph.ed.ac.uk> | ||||||
| Author: Peter Boyle <paboyle@ph.ed.ac.uk> |  | ||||||
| Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local> |  | ||||||
| Author: neo <cossu@post.kek.jp> |  | ||||||
| Author: paboyle <paboyle@ph.ed.ac.uk> |  | ||||||
| 
 | 
 | ||||||
|     This program is free software; you can redistribute it and/or modify |     This program is free software; you can redistribute it and/or modify | ||||||
|     it under the terms of the GNU General Public License as published by |     it under the terms of the GNU General Public License as published by | ||||||
| @@ -30,67 +25,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     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 */ | ||||||
| #ifndef GRID_QCD_ACTIONS_H | #ifndef  GRID_QCD_FERMION_ACTIONS_H | ||||||
| #define GRID_QCD_ACTIONS_H | #define  GRID_QCD_FERMION_ACTIONS_H | ||||||
| 
 |  | ||||||
| // * Linear operators             (Hermitian and non-hermitian)  .. my LinearOperator
 |  | ||||||
| // * System solvers               (Hermitian and non-hermitian)  .. my OperatorFunction
 |  | ||||||
| // * MultiShift System solvers    (Hermitian and non-hermitian)  .. my OperatorFunction
 |  | ||||||
| 
 |  | ||||||
| ////////////////////////////////////////////
 |  | ||||||
| // Abstract base interface
 |  | ||||||
| ////////////////////////////////////////////
 |  | ||||||
| #include <Grid/qcd/action/ActionBase.h> |  | ||||||
| #include <Grid/qcd/action/ActionParams.h> |  | ||||||
| 
 |  | ||||||
| ////////////////////////////////////////////
 |  | ||||||
| // Utility functions
 |  | ||||||
| ////////////////////////////////////////////
 |  | ||||||
| #include <Grid/qcd/action/gauge/GaugeImpl.h> |  | ||||||
| #include <Grid/qcd/utils/WilsonLoops.h> |  | ||||||
| 
 |  | ||||||
| #include <Grid/qcd/action/fermion/WilsonCompressor.h>     //used by all wilson type fermions |  | ||||||
| #include <Grid/qcd/action/fermion/FermionOperatorImpl.h> |  | ||||||
| #include <Grid/qcd/action/fermion/FermionOperator.h> |  | ||||||
| #include <Grid/qcd/action/fermion/WilsonKernels.h>        //used by all wilson type fermions |  | ||||||
| 
 |  | ||||||
| ////////////////////////////////////////////
 |  | ||||||
| // Gauge Actions
 |  | ||||||
| ////////////////////////////////////////////
 |  | ||||||
| #include <Grid/qcd/action/gauge/WilsonGaugeAction.h> |  | ||||||
| #include <Grid/qcd/action/gauge/PlaqPlusRectangleAction.h> |  | ||||||
| 
 |  | ||||||
| namespace Grid { |  | ||||||
| namespace QCD { |  | ||||||
| 
 |  | ||||||
| typedef WilsonGaugeAction<PeriodicGimplR>          WilsonGaugeActionR; |  | ||||||
| typedef WilsonGaugeAction<PeriodicGimplF>          WilsonGaugeActionF; |  | ||||||
| typedef WilsonGaugeAction<PeriodicGimplD>          WilsonGaugeActionD; |  | ||||||
| typedef PlaqPlusRectangleAction<PeriodicGimplR>    PlaqPlusRectangleActionR; |  | ||||||
| typedef PlaqPlusRectangleAction<PeriodicGimplF>    PlaqPlusRectangleActionF; |  | ||||||
| typedef PlaqPlusRectangleAction<PeriodicGimplD>    PlaqPlusRectangleActionD; |  | ||||||
| typedef IwasakiGaugeAction<PeriodicGimplR>         IwasakiGaugeActionR; |  | ||||||
| typedef IwasakiGaugeAction<PeriodicGimplF>         IwasakiGaugeActionF; |  | ||||||
| typedef IwasakiGaugeAction<PeriodicGimplD>         IwasakiGaugeActionD; |  | ||||||
| typedef SymanzikGaugeAction<PeriodicGimplR>        SymanzikGaugeActionR; |  | ||||||
| typedef SymanzikGaugeAction<PeriodicGimplF>        SymanzikGaugeActionF; |  | ||||||
| typedef SymanzikGaugeAction<PeriodicGimplD>        SymanzikGaugeActionD; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| typedef WilsonGaugeAction<ConjugateGimplR>          ConjugateWilsonGaugeActionR; |  | ||||||
| typedef WilsonGaugeAction<ConjugateGimplF>          ConjugateWilsonGaugeActionF; |  | ||||||
| typedef WilsonGaugeAction<ConjugateGimplD>          ConjugateWilsonGaugeActionD; |  | ||||||
| typedef PlaqPlusRectangleAction<ConjugateGimplR>    ConjugatePlaqPlusRectangleActionR; |  | ||||||
| typedef PlaqPlusRectangleAction<ConjugateGimplF>    ConjugatePlaqPlusRectangleActionF; |  | ||||||
| typedef PlaqPlusRectangleAction<ConjugateGimplD>    ConjugatePlaqPlusRectangleActionD; |  | ||||||
| typedef IwasakiGaugeAction<ConjugateGimplR>         ConjugateIwasakiGaugeActionR; |  | ||||||
| typedef IwasakiGaugeAction<ConjugateGimplF>         ConjugateIwasakiGaugeActionF; |  | ||||||
| typedef IwasakiGaugeAction<ConjugateGimplD>         ConjugateIwasakiGaugeActionD; |  | ||||||
| typedef SymanzikGaugeAction<ConjugateGimplR>        ConjugateSymanzikGaugeActionR; |  | ||||||
| typedef SymanzikGaugeAction<ConjugateGimplF>        ConjugateSymanzikGaugeActionF; |  | ||||||
| typedef SymanzikGaugeAction<ConjugateGimplD>        ConjugateSymanzikGaugeActionD; |  | ||||||
| 
 |  | ||||||
| }} |  | ||||||
| 
 | 
 | ||||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||||
| // Explicit explicit template instantiation is still required in the .cc files
 | // Explicit explicit template instantiation is still required in the .cc files
 | ||||||
| @@ -107,36 +43,6 @@ typedef SymanzikGaugeAction<ConjugateGimplD>        ConjugateSymanzikGaugeAction | |||||||
| // for EVERY .cc file. This define centralises the list and restores global push of impl cases
 | // for EVERY .cc file. This define centralises the list and restores global push of impl cases
 | ||||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| #define FermOp4dVecTemplateInstantiate(A) \ |  | ||||||
|   template class A<WilsonImplF>;		\ |  | ||||||
|   template class A<WilsonImplD>;		\ |  | ||||||
|   template class A<ZWilsonImplF>;		\ |  | ||||||
|   template class A<ZWilsonImplD>;		\ |  | ||||||
|   template class A<GparityWilsonImplF>;		\ |  | ||||||
|   template class A<GparityWilsonImplD>;		 |  | ||||||
| 
 |  | ||||||
| #define AdjointFermOpTemplateInstantiate(A) \ |  | ||||||
|   template class A<WilsonAdjImplF>; \ |  | ||||||
|   template class A<WilsonAdjImplD>;  |  | ||||||
| 
 |  | ||||||
| #define TwoIndexFermOpTemplateInstantiate(A) \ |  | ||||||
|   template class A<WilsonTwoIndexSymmetricImplF>; \ |  | ||||||
|   template class A<WilsonTwoIndexSymmetricImplD>;  |  | ||||||
| 
 |  | ||||||
| #define FermOp5dVecTemplateInstantiate(A) \ |  | ||||||
|   template class A<DomainWallVec5dImplF>;	\ |  | ||||||
|   template class A<DomainWallVec5dImplD>;	\ |  | ||||||
|   template class A<ZDomainWallVec5dImplF>;	\ |  | ||||||
|   template class A<ZDomainWallVec5dImplD>;	 |  | ||||||
| 
 |  | ||||||
| #define FermOpTemplateInstantiate(A) \ |  | ||||||
|  FermOp4dVecTemplateInstantiate(A) \ |  | ||||||
|  FermOp5dVecTemplateInstantiate(A)  |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| #define GparityFermOpTemplateInstantiate(A)  |  | ||||||
| 
 |  | ||||||
| ////////////////////////////////////////////
 | ////////////////////////////////////////////
 | ||||||
| // Fermion operators / actions
 | // Fermion operators / actions
 | ||||||
| ////////////////////////////////////////////
 | ////////////////////////////////////////////
 | ||||||
| @@ -144,9 +50,7 @@ typedef SymanzikGaugeAction<ConjugateGimplD>        ConjugateSymanzikGaugeAction | |||||||
| #include <Grid/qcd/action/fermion/WilsonFermion.h>       // 4d wilson like | #include <Grid/qcd/action/fermion/WilsonFermion.h>       // 4d wilson like | ||||||
| #include <Grid/qcd/action/fermion/WilsonTMFermion.h>       // 4d wilson like | #include <Grid/qcd/action/fermion/WilsonTMFermion.h>       // 4d wilson like | ||||||
| #include <Grid/qcd/action/fermion/WilsonFermion5D.h>     // 5d base used by all 5d overlap types | #include <Grid/qcd/action/fermion/WilsonFermion5D.h>     // 5d base used by all 5d overlap types | ||||||
| 
 |  | ||||||
| //#include <Grid/qcd/action/fermion/CloverFermion.h>
 | //#include <Grid/qcd/action/fermion/CloverFermion.h>
 | ||||||
| 
 |  | ||||||
| #include <Grid/qcd/action/fermion/CayleyFermion5D.h>     // Cayley types | #include <Grid/qcd/action/fermion/CayleyFermion5D.h>     // Cayley types | ||||||
| #include <Grid/qcd/action/fermion/DomainWallFermion.h> | #include <Grid/qcd/action/fermion/DomainWallFermion.h> | ||||||
| #include <Grid/qcd/action/fermion/DomainWallFermion.h> | #include <Grid/qcd/action/fermion/DomainWallFermion.h> | ||||||
| @@ -157,14 +61,16 @@ typedef SymanzikGaugeAction<ConjugateGimplD>        ConjugateSymanzikGaugeAction | |||||||
| #include <Grid/qcd/action/fermion/ShamirZolotarevFermion.h> | #include <Grid/qcd/action/fermion/ShamirZolotarevFermion.h> | ||||||
| #include <Grid/qcd/action/fermion/OverlapWilsonCayleyTanhFermion.h> | #include <Grid/qcd/action/fermion/OverlapWilsonCayleyTanhFermion.h> | ||||||
| #include <Grid/qcd/action/fermion/OverlapWilsonCayleyZolotarevFermion.h> | #include <Grid/qcd/action/fermion/OverlapWilsonCayleyZolotarevFermion.h> | ||||||
| 
 |  | ||||||
| #include <Grid/qcd/action/fermion/ContinuedFractionFermion5D.h>               // Continued fraction | #include <Grid/qcd/action/fermion/ContinuedFractionFermion5D.h>               // Continued fraction | ||||||
| #include <Grid/qcd/action/fermion/OverlapWilsonContfracTanhFermion.h> | #include <Grid/qcd/action/fermion/OverlapWilsonContfracTanhFermion.h> | ||||||
| #include <Grid/qcd/action/fermion/OverlapWilsonContfracZolotarevFermion.h> | #include <Grid/qcd/action/fermion/OverlapWilsonContfracZolotarevFermion.h> | ||||||
| 
 |  | ||||||
| #include <Grid/qcd/action/fermion/PartialFractionFermion5D.h>                 // Partial fraction | #include <Grid/qcd/action/fermion/PartialFractionFermion5D.h>                 // Partial fraction | ||||||
| #include <Grid/qcd/action/fermion/OverlapWilsonPartialFractionTanhFermion.h> | #include <Grid/qcd/action/fermion/OverlapWilsonPartialFractionTanhFermion.h> | ||||||
| #include <Grid/qcd/action/fermion/OverlapWilsonPartialFractionZolotarevFermion.h> | #include <Grid/qcd/action/fermion/OverlapWilsonPartialFractionZolotarevFermion.h> | ||||||
|  | ///////////////////////////////////////////////////////////////////////////////
 | ||||||
|  | // G5 herm -- this has to live in QCD since dirac matrix is not in the broader sector of code
 | ||||||
|  | ///////////////////////////////////////////////////////////////////////////////
 | ||||||
|  | #include <Grid/qcd/action/fermion/g5HermitianLinop.h> | ||||||
| 
 | 
 | ||||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||||
| // More maintainable to maintain the following typedef list centrally, as more "impl" targets
 | // More maintainable to maintain the following typedef list centrally, as more "impl" targets
 | ||||||
| @@ -271,24 +177,5 @@ typedef MobiusFermion<GparityWilsonImplD> GparityMobiusFermionD; | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|   }} |   }} | ||||||
| ///////////////////////////////////////////////////////////////////////////////
 |  | ||||||
| // G5 herm -- this has to live in QCD since dirac matrix is not in the broader sector of code
 |  | ||||||
| ///////////////////////////////////////////////////////////////////////////////
 |  | ||||||
| #include <Grid/qcd/action/fermion/g5HermitianLinop.h> |  | ||||||
| 
 |  | ||||||
| ////////////////////////////////////////
 |  | ||||||
| // Pseudo fermion combinations for HMC
 |  | ||||||
| ////////////////////////////////////////
 |  | ||||||
| #include <Grid/qcd/action/pseudofermion/EvenOddSchurDifferentiable.h> |  | ||||||
| 
 |  | ||||||
| #include <Grid/qcd/action/pseudofermion/TwoFlavour.h> |  | ||||||
| #include <Grid/qcd/action/pseudofermion/TwoFlavourRatio.h> |  | ||||||
| #include <Grid/qcd/action/pseudofermion/TwoFlavourEvenOdd.h> |  | ||||||
| #include <Grid/qcd/action/pseudofermion/TwoFlavourEvenOddRatio.h> |  | ||||||
| 
 |  | ||||||
| #include <Grid/qcd/action/pseudofermion/OneFlavourRational.h> |  | ||||||
| #include <Grid/qcd/action/pseudofermion/OneFlavourRationalRatio.h> |  | ||||||
| #include <Grid/qcd/action/pseudofermion/OneFlavourEvenOddRational.h> |  | ||||||
| #include <Grid/qcd/action/pseudofermion/OneFlavourEvenOddRationalRatio.h> |  | ||||||
| 
 | 
 | ||||||
| #endif | #endif | ||||||
							
								
								
									
										71
									
								
								lib/qcd/action/fermion/FermionCore.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								lib/qcd/action/fermion/FermionCore.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | |||||||
|  |     /************************************************************************************* | ||||||
|  |  | ||||||
|  |     Grid physics library, www.github.com/paboyle/Grid  | ||||||
|  |  | ||||||
|  |     Source file: ./lib/qcd/action/fermion/Fermion_base_aggregate.h | ||||||
|  |  | ||||||
|  |     Copyright (C) 2015 | ||||||
|  |  | ||||||
|  | Author: Peter Boyle <pabobyle@ph.ed.ac.uk> | ||||||
|  |  | ||||||
|  |     This program is free software; you can redistribute it and/or modify | ||||||
|  |     it under the terms of the GNU General Public License as published by | ||||||
|  |     the Free Software Foundation; either version 2 of the License, or | ||||||
|  |     (at your option) any later version. | ||||||
|  |  | ||||||
|  |     This program is distributed in the hope that it will be useful, | ||||||
|  |     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |     GNU General Public License for more details. | ||||||
|  |  | ||||||
|  |     You should have received a copy of the GNU General Public License along | ||||||
|  |     with this program; if not, write to the Free Software Foundation, Inc., | ||||||
|  |     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 */ | ||||||
|  | #ifndef  GRID_QCD_FERMION_CORE_H | ||||||
|  | #define  GRID_QCD_FERMION_CORE_H | ||||||
|  |  | ||||||
|  | #include <Grid/GridCore.h> | ||||||
|  | #include <Grid/GridQCDcore.h> | ||||||
|  | #include <Grid/qcd/action/ActionCore.h> | ||||||
|  |  | ||||||
|  | //////////////////////////////////////////// | ||||||
|  | // Fermion prereqs | ||||||
|  | //////////////////////////////////////////// | ||||||
|  | #include <Grid/qcd/action/fermion/WilsonCompressor.h>     //used by all wilson type fermions | ||||||
|  | #include <Grid/qcd/action/fermion/FermionOperatorImpl.h> | ||||||
|  | #include <Grid/qcd/action/fermion/FermionOperator.h> | ||||||
|  | #include <Grid/qcd/action/fermion/WilsonKernels.h>        //used by all wilson type fermions | ||||||
|  |  | ||||||
|  | #define FermOp4dVecTemplateInstantiate(A) \ | ||||||
|  |   template class A<WilsonImplF>;		\ | ||||||
|  |   template class A<WilsonImplD>;		\ | ||||||
|  |   template class A<ZWilsonImplF>;		\ | ||||||
|  |   template class A<ZWilsonImplD>;		\ | ||||||
|  |   template class A<GparityWilsonImplF>;		\ | ||||||
|  |   template class A<GparityWilsonImplD>;		 | ||||||
|  |  | ||||||
|  | #define AdjointFermOpTemplateInstantiate(A) \ | ||||||
|  |   template class A<WilsonAdjImplF>; \ | ||||||
|  |   template class A<WilsonAdjImplD>;  | ||||||
|  |  | ||||||
|  | #define TwoIndexFermOpTemplateInstantiate(A) \ | ||||||
|  |   template class A<WilsonTwoIndexSymmetricImplF>; \ | ||||||
|  |   template class A<WilsonTwoIndexSymmetricImplD>;  | ||||||
|  |  | ||||||
|  | #define FermOp5dVecTemplateInstantiate(A) \ | ||||||
|  |   template class A<DomainWallVec5dImplF>;	\ | ||||||
|  |   template class A<DomainWallVec5dImplD>;	\ | ||||||
|  |   template class A<ZDomainWallVec5dImplF>;	\ | ||||||
|  |   template class A<ZDomainWallVec5dImplD>;	 | ||||||
|  |  | ||||||
|  | #define FermOpTemplateInstantiate(A) \ | ||||||
|  |  FermOp4dVecTemplateInstantiate(A) \ | ||||||
|  |  FermOp5dVecTemplateInstantiate(A)  | ||||||
|  |  | ||||||
|  | #define GparityFermOpTemplateInstantiate(A)  | ||||||
|  |  | ||||||
|  | #endif | ||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  GRID_QCD_MOBIUS_FERMION_H | #ifndef  GRID_QCD_MOBIUS_FERMION_H | ||||||
| #define  GRID_QCD_MOBIUS_FERMION_H | #define  GRID_QCD_MOBIUS_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  GRID_QCD_MOBIUS_ZOLOTAREV_FERMION_H | #ifndef  GRID_QCD_MOBIUS_ZOLOTAREV_FERMION_H | ||||||
| #define  GRID_QCD_MOBIUS_ZOLOTAREV_FERMION_H | #define  GRID_QCD_MOBIUS_ZOLOTAREV_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef OVERLAP_WILSON_CAYLEY_TANH_FERMION_H | #ifndef OVERLAP_WILSON_CAYLEY_TANH_FERMION_H | ||||||
| #define OVERLAP_WILSON_CAYLEY_TANH_FERMION_H | #define OVERLAP_WILSON_CAYLEY_TANH_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  OVERLAP_WILSON_CAYLEY_ZOLOTAREV_FERMION_H | #ifndef  OVERLAP_WILSON_CAYLEY_ZOLOTAREV_FERMION_H | ||||||
| #define  OVERLAP_WILSON_CAYLEY_ZOLOTAREV_FERMION_H | #define  OVERLAP_WILSON_CAYLEY_ZOLOTAREV_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef OVERLAP_WILSON_CONTFRAC_TANH_FERMION_H | #ifndef OVERLAP_WILSON_CONTFRAC_TANH_FERMION_H | ||||||
| #define OVERLAP_WILSON_CONTFRAC_TANH_FERMION_H | #define OVERLAP_WILSON_CONTFRAC_TANH_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef OVERLAP_WILSON_CONTFRAC_ZOLOTAREV_FERMION_H | #ifndef OVERLAP_WILSON_CONTFRAC_ZOLOTAREV_FERMION_H | ||||||
| #define OVERLAP_WILSON_CONTFRAC_ZOLOTAREV_FERMION_H | #define OVERLAP_WILSON_CONTFRAC_ZOLOTAREV_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef OVERLAP_WILSON_PARTFRAC_TANH_FERMION_H | #ifndef OVERLAP_WILSON_PARTFRAC_TANH_FERMION_H | ||||||
| #define OVERLAP_WILSON_PARTFRAC_TANH_FERMION_H | #define OVERLAP_WILSON_PARTFRAC_TANH_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef OVERLAP_WILSON_PARTFRAC_ZOLOTAREV_FERMION_H | #ifndef OVERLAP_WILSON_PARTFRAC_ZOLOTAREV_FERMION_H | ||||||
| #define OVERLAP_WILSON_PARTFRAC_ZOLOTAREV_FERMION_H | #define OVERLAP_WILSON_PARTFRAC_ZOLOTAREV_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -26,7 +26,8 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  | #include <Grid/qcd/action/fermion/PartialFractionFermion5D.h> | ||||||
| namespace Grid { | namespace Grid { | ||||||
|   namespace QCD { |   namespace QCD { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,6 +29,8 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  GRID_QCD_PARTIAL_FRACTION_H | #ifndef  GRID_QCD_PARTIAL_FRACTION_H | ||||||
| #define  GRID_QCD_PARTIAL_FRACTION_H | #define  GRID_QCD_PARTIAL_FRACTION_H | ||||||
|  |  | ||||||
|  | #include <Grid/qcd/action/fermion/WilsonFermion5D.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   namespace QCD { |   namespace QCD { | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  GRID_QCD_SCALED_SHAMIR_FERMION_H | #ifndef  GRID_QCD_SCALED_SHAMIR_FERMION_H | ||||||
| #define  GRID_QCD_SCALED_SHAMIR_FERMION_H | #define  GRID_QCD_SCALED_SHAMIR_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  GRID_QCD_SHAMIR_ZOLOTAREV_FERMION_H | #ifndef  GRID_QCD_SHAMIR_ZOLOTAREV_FERMION_H | ||||||
| #define  GRID_QCD_SHAMIR_ZOLOTAREV_FERMION_H | #define  GRID_QCD_SHAMIR_ZOLOTAREV_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,15 +29,14 @@ See the full license in the file "LICENSE" in the top level distribution | |||||||
| directory | directory | ||||||
| *************************************************************************************/ | *************************************************************************************/ | ||||||
| /*  END LEGAL */ | /*  END LEGAL */ | ||||||
| #include <Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  | #include <Grid/qcd/action/fermion/WilsonFermion.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
| namespace QCD { | namespace QCD { | ||||||
|  |  | ||||||
| const std::vector<int> WilsonFermionStatic::directions({0, 1, 2, 3, 0, 1, 2, | const std::vector<int> WilsonFermionStatic::directions({0, 1, 2, 3, 0, 1, 2, 3}); | ||||||
|                                                         3}); | const std::vector<int> WilsonFermionStatic::displacements({1, 1, 1, 1, -1, -1, -1, -1}); | ||||||
| const std::vector<int> WilsonFermionStatic::displacements({1, 1, 1, 1, -1, -1, |  | ||||||
|                                                            -1, -1}); |  | ||||||
| int WilsonFermionStatic::HandOptDslash; | int WilsonFermionStatic::HandOptDslash; | ||||||
|  |  | ||||||
| ///////////////////////////////// | ///////////////////////////////// | ||||||
| @@ -52,10 +51,8 @@ WilsonFermion<Impl>::WilsonFermion(GaugeField &_Umu, GridCartesian &Fgrid, | |||||||
|       _grid(&Fgrid), |       _grid(&Fgrid), | ||||||
|       _cbgrid(&Hgrid), |       _cbgrid(&Hgrid), | ||||||
|       Stencil(&Fgrid, npoint, Even, directions, displacements), |       Stencil(&Fgrid, npoint, Even, directions, displacements), | ||||||
|       StencilEven(&Hgrid, npoint, Even, directions, |       StencilEven(&Hgrid, npoint, Even, directions,displacements),  // source is Even | ||||||
|                   displacements),  // source is Even |       StencilOdd(&Hgrid, npoint, Odd, directions,displacements),  // source is Odd | ||||||
|       StencilOdd(&Hgrid, npoint, Odd, directions, |  | ||||||
|                  displacements),  // source is Odd |  | ||||||
|       mass(_mass), |       mass(_mass), | ||||||
|       Lebesgue(_grid), |       Lebesgue(_grid), | ||||||
|       LebesgueEvenOdd(_cbgrid), |       LebesgueEvenOdd(_cbgrid), | ||||||
| @@ -113,86 +110,85 @@ void WilsonFermion<Impl>::MeooeDag(const FermionField &in, FermionField &out) { | |||||||
|   } |   } | ||||||
| } | } | ||||||
|    |    | ||||||
|   template <class Impl> | template <class Impl> | ||||||
|   void WilsonFermion<Impl>::Mooee(const FermionField &in, FermionField &out) { | void WilsonFermion<Impl>::Mooee(const FermionField &in, FermionField &out) { | ||||||
|     out.checkerboard = in.checkerboard; |   out.checkerboard = in.checkerboard; | ||||||
|     typename FermionField::scalar_type scal(4.0 + mass); |   typename FermionField::scalar_type scal(4.0 + mass); | ||||||
|     out = scal * in; |   out = scal * in; | ||||||
|   } | } | ||||||
|  |  | ||||||
|   template <class Impl> | template <class Impl> | ||||||
|   void WilsonFermion<Impl>::MooeeDag(const FermionField &in, FermionField &out) { | void WilsonFermion<Impl>::MooeeDag(const FermionField &in, FermionField &out) { | ||||||
|     out.checkerboard = in.checkerboard; |   out.checkerboard = in.checkerboard; | ||||||
|     Mooee(in, out); |   Mooee(in, out); | ||||||
|   } | } | ||||||
|  |  | ||||||
|   template<class Impl> | template<class Impl> | ||||||
|   void WilsonFermion<Impl>::MooeeInv(const FermionField &in, FermionField &out) { | void WilsonFermion<Impl>::MooeeInv(const FermionField &in, FermionField &out) { | ||||||
|     out.checkerboard = in.checkerboard; |   out.checkerboard = in.checkerboard; | ||||||
|     out = (1.0/(4.0+mass))*in; |   out = (1.0/(4.0+mass))*in; | ||||||
|  | } | ||||||
|  |    | ||||||
|  | template<class Impl> | ||||||
|  | void WilsonFermion<Impl>::MooeeInvDag(const FermionField &in, FermionField &out) { | ||||||
|  |   out.checkerboard = in.checkerboard; | ||||||
|  |   MooeeInv(in,out); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | template<class Impl> | ||||||
|  | void WilsonFermion<Impl>::MomentumSpacePropagator(FermionField &out, const FermionField &in,RealD _m)  | ||||||
|  | {   | ||||||
|  |   typedef typename FermionField::vector_type vector_type; | ||||||
|  |   typedef typename FermionField::scalar_type ScalComplex; | ||||||
|  |   typedef Lattice<iSinglet<vector_type> > LatComplex; | ||||||
|  |    | ||||||
|  |   // what type LatticeComplex  | ||||||
|  |   conformable(_grid,out._grid); | ||||||
|  |    | ||||||
|  |   Gamma::GammaMatrix Gmu [] = { | ||||||
|  |     Gamma::GammaX, | ||||||
|  |     Gamma::GammaY, | ||||||
|  |     Gamma::GammaZ, | ||||||
|  |     Gamma::GammaT | ||||||
|  |   }; | ||||||
|  |    | ||||||
|  |   std::vector<int> latt_size   = _grid->_fdimensions; | ||||||
|  |    | ||||||
|  |   FermionField   num  (_grid); num  = zero; | ||||||
|  |   LatComplex    wilson(_grid); wilson= zero; | ||||||
|  |   LatComplex     one  (_grid); one = ScalComplex(1.0,0.0); | ||||||
|  |    | ||||||
|  |   LatComplex denom(_grid); denom= zero; | ||||||
|  |   LatComplex kmu(_grid);  | ||||||
|  |   ScalComplex ci(0.0,1.0); | ||||||
|  |   // momphase = n * 2pi / L | ||||||
|  |   for(int mu=0;mu<Nd;mu++) { | ||||||
|  |      | ||||||
|  |     LatticeCoordinate(kmu,mu); | ||||||
|  |      | ||||||
|  |     RealD TwoPiL =  M_PI * 2.0/ latt_size[mu]; | ||||||
|  |      | ||||||
|  |     kmu = TwoPiL * kmu; | ||||||
|  |      | ||||||
|  |     wilson = wilson + 2.0*sin(kmu*0.5)*sin(kmu*0.5); // Wilson term | ||||||
|  |      | ||||||
|  |     num = num - sin(kmu)*ci*(Gamma(Gmu[mu])*in);    // derivative term | ||||||
|  |      | ||||||
|  |     denom=denom + sin(kmu)*sin(kmu); | ||||||
|   } |   } | ||||||
|    |    | ||||||
|   template<class Impl> |   wilson = wilson + _m;     // 2 sin^2 k/2 + m | ||||||
|   void WilsonFermion<Impl>::MooeeInvDag(const FermionField &in, FermionField &out) { |    | ||||||
|     out.checkerboard = in.checkerboard; |   num   = num + wilson*in;     // -i gmu sin k + 2 sin^2 k/2 + m | ||||||
|     MooeeInv(in,out); |    | ||||||
|   } |   denom= denom+wilson*wilson; // sin^2 k + (2 sin^2 k/2 + m)^2 | ||||||
|  |    | ||||||
|   template<class Impl> |   denom= one/denom; | ||||||
|   void WilsonFermion<Impl>::MomentumSpacePropagator(FermionField &out, const FermionField &in,RealD _m) { |    | ||||||
|  |   out = num*denom; // [ -i gmu sin k + 2 sin^2 k/2 + m] / [ sin^2 k + (2 sin^2 k/2 + m)^2 ] | ||||||
|     // what type LatticeComplex  |    | ||||||
|     conformable(_grid,out._grid); | } | ||||||
|  |    | ||||||
|     typedef typename FermionField::vector_type vector_type; |  | ||||||
|     typedef typename FermionField::scalar_type ScalComplex; |  | ||||||
|  |  | ||||||
|     typedef Lattice<iSinglet<vector_type> > LatComplex; |  | ||||||
|  |  | ||||||
|     Gamma::GammaMatrix Gmu [] = { |  | ||||||
|       Gamma::GammaX, |  | ||||||
|       Gamma::GammaY, |  | ||||||
|       Gamma::GammaZ, |  | ||||||
|       Gamma::GammaT |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     std::vector<int> latt_size   = _grid->_fdimensions; |  | ||||||
|  |  | ||||||
|     FermionField   num  (_grid); num  = zero; |  | ||||||
|     LatComplex    wilson(_grid); wilson= zero; |  | ||||||
|     LatComplex     one  (_grid); one = ScalComplex(1.0,0.0); |  | ||||||
|  |  | ||||||
|     LatComplex denom(_grid); denom= zero; |  | ||||||
|     LatComplex kmu(_grid);  |  | ||||||
|     ScalComplex ci(0.0,1.0); |  | ||||||
|     // momphase = n * 2pi / L |  | ||||||
|     for(int mu=0;mu<Nd;mu++) { |  | ||||||
|  |  | ||||||
|       LatticeCoordinate(kmu,mu); |  | ||||||
|  |  | ||||||
|       RealD TwoPiL =  M_PI * 2.0/ latt_size[mu]; |  | ||||||
|  |  | ||||||
|       kmu = TwoPiL * kmu; |  | ||||||
|  |  | ||||||
|       wilson = wilson + 2.0*sin(kmu*0.5)*sin(kmu*0.5); // Wilson term |  | ||||||
|  |  | ||||||
|       num = num - sin(kmu)*ci*(Gamma(Gmu[mu])*in);    // derivative term |  | ||||||
|  |  | ||||||
|       denom=denom + sin(kmu)*sin(kmu); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     wilson = wilson + _m;     // 2 sin^2 k/2 + m |  | ||||||
|  |  | ||||||
|     num   = num + wilson*in;     // -i gmu sin k + 2 sin^2 k/2 + m |  | ||||||
|  |  | ||||||
|     denom= denom+wilson*wilson; // sin^2 k + (2 sin^2 k/2 + m)^2 |  | ||||||
|  |  | ||||||
|     denom= one/denom; |  | ||||||
|  |  | ||||||
|     out = num*denom; // [ -i gmu sin k + 2 sin^2 k/2 + m] / [ sin^2 k + (2 sin^2 k/2 + m)^2 ] |  | ||||||
|  |  | ||||||
|   } |  | ||||||
|   |  | ||||||
|  |  | ||||||
| /////////////////////////////////// | /////////////////////////////////// | ||||||
| // Internal | // Internal | ||||||
| @@ -223,8 +219,7 @@ void WilsonFermion<Impl>::DerivInternal(StencilImpl &st, DoubledGaugeField &U, | |||||||
|     // Call the single hop |     // Call the single hop | ||||||
|     //////////////////////// |     //////////////////////// | ||||||
|     parallel_for (int sss = 0; sss < B._grid->oSites(); sss++) { |     parallel_for (int sss = 0; sss < B._grid->oSites(); sss++) { | ||||||
|       Kernels::DhopDir(st, U, st.CommBuf(), sss, sss, B, Btilde, mu, |       Kernels::DhopDir(st, U, st.CommBuf(), sss, sss, B, Btilde, mu, gamma); | ||||||
|                                gamma); |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     ////////////////////////////////////////////////// |     ////////////////////////////////////////////////// | ||||||
| @@ -275,8 +270,7 @@ void WilsonFermion<Impl>::DhopDerivEO(GaugeField &mat, const FermionField &U, | |||||||
| } | } | ||||||
|  |  | ||||||
| template <class Impl> | template <class Impl> | ||||||
| void WilsonFermion<Impl>::Dhop(const FermionField &in, FermionField &out, | void WilsonFermion<Impl>::Dhop(const FermionField &in, FermionField &out, int dag) { | ||||||
|                                int dag) { |  | ||||||
|   conformable(in._grid, _grid);  // verifies full grid |   conformable(in._grid, _grid);  // verifies full grid | ||||||
|   conformable(in._grid, out._grid); |   conformable(in._grid, out._grid); | ||||||
|  |  | ||||||
| @@ -286,8 +280,7 @@ void WilsonFermion<Impl>::Dhop(const FermionField &in, FermionField &out, | |||||||
| } | } | ||||||
|  |  | ||||||
| template <class Impl> | template <class Impl> | ||||||
| void WilsonFermion<Impl>::DhopOE(const FermionField &in, FermionField &out, | void WilsonFermion<Impl>::DhopOE(const FermionField &in, FermionField &out, int dag) { | ||||||
|                                  int dag) { |  | ||||||
|   conformable(in._grid, _cbgrid);    // verifies half grid |   conformable(in._grid, _cbgrid);    // verifies half grid | ||||||
|   conformable(in._grid, out._grid);  // drops the cb check |   conformable(in._grid, out._grid);  // drops the cb check | ||||||
|  |  | ||||||
| @@ -298,8 +291,7 @@ void WilsonFermion<Impl>::DhopOE(const FermionField &in, FermionField &out, | |||||||
| } | } | ||||||
|  |  | ||||||
| template <class Impl> | template <class Impl> | ||||||
| void WilsonFermion<Impl>::DhopEO(const FermionField &in, FermionField &out, | void WilsonFermion<Impl>::DhopEO(const FermionField &in, FermionField &out,int dag) { | ||||||
|                                  int dag) { |  | ||||||
|   conformable(in._grid, _cbgrid);    // verifies half grid |   conformable(in._grid, _cbgrid);    // verifies half grid | ||||||
|   conformable(in._grid, out._grid);  // drops the cb check |   conformable(in._grid, out._grid);  // drops the cb check | ||||||
|  |  | ||||||
| @@ -310,14 +302,12 @@ void WilsonFermion<Impl>::DhopEO(const FermionField &in, FermionField &out, | |||||||
| } | } | ||||||
|  |  | ||||||
| template <class Impl> | template <class Impl> | ||||||
| void WilsonFermion<Impl>::Mdir(const FermionField &in, FermionField &out, | void WilsonFermion<Impl>::Mdir(const FermionField &in, FermionField &out, int dir, int disp) { | ||||||
|                                int dir, int disp) { |  | ||||||
|   DhopDir(in, out, dir, disp); |   DhopDir(in, out, dir, disp); | ||||||
| } | } | ||||||
|  |  | ||||||
| template <class Impl> | template <class Impl> | ||||||
| void WilsonFermion<Impl>::DhopDir(const FermionField &in, FermionField &out, | void WilsonFermion<Impl>::DhopDir(const FermionField &in, FermionField &out, int dir, int disp) { | ||||||
|                                   int dir, int disp) { |  | ||||||
|   int skip = (disp == 1) ? 0 : 1; |   int skip = (disp == 1) ? 0 : 1; | ||||||
|   int dirdisp = dir + skip * 4; |   int dirdisp = dir + skip * 4; | ||||||
|   int gamma = dir + (1 - skip) * 4; |   int gamma = dir + (1 - skip) * 4; | ||||||
| @@ -326,8 +316,7 @@ void WilsonFermion<Impl>::DhopDir(const FermionField &in, FermionField &out, | |||||||
| }; | }; | ||||||
|  |  | ||||||
| template <class Impl> | template <class Impl> | ||||||
| void WilsonFermion<Impl>::DhopDirDisp(const FermionField &in, FermionField &out, | void WilsonFermion<Impl>::DhopDirDisp(const FermionField &in, FermionField &out,int dirdisp, int gamma, int dag) { | ||||||
|                                       int dirdisp, int gamma, int dag) { |  | ||||||
|   Compressor compressor(dag); |   Compressor compressor(dag); | ||||||
|  |  | ||||||
|   Stencil.HaloExchange(in, compressor); |   Stencil.HaloExchange(in, compressor); | ||||||
|   | |||||||
| @@ -29,8 +29,9 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
| #include <PerfCount.h> | #include <Grid/qcd/action/fermion/WilsonFermion5D.h> | ||||||
|  | #include <Grid/perfmon/PerfCount.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
| namespace QCD { | namespace QCD { | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  GRID_QCD_WILSON_FERMION_5D_H | #ifndef  GRID_QCD_WILSON_FERMION_5D_H | ||||||
| #define  GRID_QCD_WILSON_FERMION_5D_H | #define  GRID_QCD_WILSON_FERMION_5D_H | ||||||
|  |  | ||||||
| #include <Grid/Stat.h> | #include <Grid/perfmon/Stat.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
| namespace QCD { | namespace QCD { | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ See the full license in the file "LICENSE" in the top level distribution | |||||||
| directory | directory | ||||||
| *************************************************************************************/ | *************************************************************************************/ | ||||||
| /*  END LEGAL */ | /*  END LEGAL */ | ||||||
| #include <Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
| namespace Grid { | namespace Grid { | ||||||
| namespace QCD { | namespace QCD { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ Author: Guido Cossu <guido.cossu@ed.ac.uk> | |||||||
| *************************************************************************************/ | *************************************************************************************/ | ||||||
| /*  END LEGAL */ | /*  END LEGAL */ | ||||||
|  |  | ||||||
| #include <Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| #define REGISTER | #define REGISTER | ||||||
|  |  | ||||||
|   | |||||||
| @@ -25,7 +25,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  | #include <Grid/qcd/action/fermion/WilsonTMFermion.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
| namespace QCD { | namespace QCD { | ||||||
|   | |||||||
| @@ -28,7 +28,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  GRID_QCD_WILSON_TM_FERMION_H | #ifndef  GRID_QCD_WILSON_TM_FERMION_H | ||||||
| #define  GRID_QCD_WILSON_TM_FERMION_H | #define  GRID_QCD_WILSON_TM_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  | #include <Grid/qcd/action/fermion/WilsonFermion.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
| #ifndef  GRID_QCD_ZMOBIUS_FERMION_H | #ifndef  GRID_QCD_ZMOBIUS_FERMION_H | ||||||
| #define  GRID_QCD_ZMOBIUS_FERMION_H | #define  GRID_QCD_ZMOBIUS_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/Grid.h> | #include <Grid/qcd/action/fermion/FermionCore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										70
									
								
								lib/qcd/action/gauge/Gauge.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								lib/qcd/action/gauge/Gauge.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | |||||||
|  | /************************************************************************************* | ||||||
|  |  | ||||||
|  | Grid physics library, www.github.com/paboyle/Grid | ||||||
|  |  | ||||||
|  | Source file: ./lib/qcd/action/gauge/Gauge_aggregate.h | ||||||
|  |  | ||||||
|  | Copyright (C) 2015 | ||||||
|  |  | ||||||
|  | Author: paboyle <paboyle@ph.ed.ac.uk> | ||||||
|  |  | ||||||
|  | This program is free software; you can redistribute it and/or modify | ||||||
|  | it under the terms of the GNU General Public License as published by | ||||||
|  | the Free Software Foundation; either version 2 of the License, or | ||||||
|  | (at your option) any later version. | ||||||
|  |  | ||||||
|  | This program is distributed in the hope that it will be useful, | ||||||
|  | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | GNU General Public License for more details. | ||||||
|  |  | ||||||
|  | You should have received a copy of the GNU General Public License along | ||||||
|  | with this program; if not, write to the Free Software Foundation, Inc., | ||||||
|  | 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 */ | ||||||
|  | #ifndef GRID_QCD_GAUGE_AGGREGATE_H | ||||||
|  | #define GRID_QCD_GAUGE_AGGREGATE_H | ||||||
|  |  | ||||||
|  | #include <Grid/qcd/action/gauge/GaugeImpl.h> | ||||||
|  | #include <Grid/qcd/utils/WilsonLoops.h> | ||||||
|  | #include <Grid/qcd/action/gauge/WilsonGaugeAction.h> | ||||||
|  | #include <Grid/qcd/action/gauge/PlaqPlusRectangleAction.h> | ||||||
|  |  | ||||||
|  | namespace Grid { | ||||||
|  | namespace QCD { | ||||||
|  |  | ||||||
|  | typedef WilsonGaugeAction<PeriodicGimplR>          WilsonGaugeActionR; | ||||||
|  | typedef WilsonGaugeAction<PeriodicGimplF>          WilsonGaugeActionF; | ||||||
|  | typedef WilsonGaugeAction<PeriodicGimplD>          WilsonGaugeActionD; | ||||||
|  | typedef PlaqPlusRectangleAction<PeriodicGimplR>    PlaqPlusRectangleActionR; | ||||||
|  | typedef PlaqPlusRectangleAction<PeriodicGimplF>    PlaqPlusRectangleActionF; | ||||||
|  | typedef PlaqPlusRectangleAction<PeriodicGimplD>    PlaqPlusRectangleActionD; | ||||||
|  | typedef IwasakiGaugeAction<PeriodicGimplR>         IwasakiGaugeActionR; | ||||||
|  | typedef IwasakiGaugeAction<PeriodicGimplF>         IwasakiGaugeActionF; | ||||||
|  | typedef IwasakiGaugeAction<PeriodicGimplD>         IwasakiGaugeActionD; | ||||||
|  | typedef SymanzikGaugeAction<PeriodicGimplR>        SymanzikGaugeActionR; | ||||||
|  | typedef SymanzikGaugeAction<PeriodicGimplF>        SymanzikGaugeActionF; | ||||||
|  | typedef SymanzikGaugeAction<PeriodicGimplD>        SymanzikGaugeActionD; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | typedef WilsonGaugeAction<ConjugateGimplR>          ConjugateWilsonGaugeActionR; | ||||||
|  | typedef WilsonGaugeAction<ConjugateGimplF>          ConjugateWilsonGaugeActionF; | ||||||
|  | typedef WilsonGaugeAction<ConjugateGimplD>          ConjugateWilsonGaugeActionD; | ||||||
|  | typedef PlaqPlusRectangleAction<ConjugateGimplR>    ConjugatePlaqPlusRectangleActionR; | ||||||
|  | typedef PlaqPlusRectangleAction<ConjugateGimplF>    ConjugatePlaqPlusRectangleActionF; | ||||||
|  | typedef PlaqPlusRectangleAction<ConjugateGimplD>    ConjugatePlaqPlusRectangleActionD; | ||||||
|  | typedef IwasakiGaugeAction<ConjugateGimplR>         ConjugateIwasakiGaugeActionR; | ||||||
|  | typedef IwasakiGaugeAction<ConjugateGimplF>         ConjugateIwasakiGaugeActionF; | ||||||
|  | typedef IwasakiGaugeAction<ConjugateGimplD>         ConjugateIwasakiGaugeActionD; | ||||||
|  | typedef SymanzikGaugeAction<ConjugateGimplR>        ConjugateSymanzikGaugeActionR; | ||||||
|  | typedef SymanzikGaugeAction<ConjugateGimplF>        ConjugateSymanzikGaugeActionF; | ||||||
|  | typedef SymanzikGaugeAction<ConjugateGimplD>        ConjugateSymanzikGaugeActionD; | ||||||
|  |  | ||||||
|  | }} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #endif | ||||||
							
								
								
									
										42
									
								
								lib/qcd/action/pseudofermion/PseudoFermion.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								lib/qcd/action/pseudofermion/PseudoFermion.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | |||||||
|  | /************************************************************************************* | ||||||
|  |  | ||||||
|  | Grid physics library, www.github.com/paboyle/Grid | ||||||
|  |  | ||||||
|  | Source file: ./lib/qcd/action/pseudofermion/PseudoFermion_aggregate.h | ||||||
|  |  | ||||||
|  | Copyright (C) 2015 | ||||||
|  |  | ||||||
|  | Author: Peter Boyle <paboyle@ph.ed.ac.uk> | ||||||
|  |  | ||||||
|  | This program is free software; you can redistribute it and/or modify | ||||||
|  | it under the terms of the GNU General Public License as published by | ||||||
|  | the Free Software Foundation; either version 2 of the License, or | ||||||
|  | (at your option) any later version. | ||||||
|  |  | ||||||
|  | This program is distributed in the hope that it will be useful, | ||||||
|  | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | GNU General Public License for more details. | ||||||
|  |  | ||||||
|  | You should have received a copy of the GNU General Public License along | ||||||
|  | with this program; if not, write to the Free Software Foundation, Inc., | ||||||
|  | 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 */ | ||||||
|  | #ifndef QCD_PSEUDOFERMION_AGGREGATE_H | ||||||
|  | #define QCD_PSEUDOFERMION_AGGREGATE_H | ||||||
|  |  | ||||||
|  | #include <Grid/qcd/action/pseudofermion/EvenOddSchurDifferentiable.h> | ||||||
|  | #include <Grid/qcd/action/pseudofermion/TwoFlavour.h> | ||||||
|  | #include <Grid/qcd/action/pseudofermion/TwoFlavourRatio.h> | ||||||
|  | #include <Grid/qcd/action/pseudofermion/TwoFlavourEvenOdd.h> | ||||||
|  | #include <Grid/qcd/action/pseudofermion/TwoFlavourEvenOddRatio.h> | ||||||
|  | #include <Grid/qcd/action/pseudofermion/OneFlavourRational.h> | ||||||
|  | #include <Grid/qcd/action/pseudofermion/OneFlavourRationalRatio.h> | ||||||
|  | #include <Grid/qcd/action/pseudofermion/OneFlavourEvenOddRational.h> | ||||||
|  | #include <Grid/qcd/action/pseudofermion/OneFlavourEvenOddRationalRatio.h> | ||||||
|  |  | ||||||
|  | #endif | ||||||
| @@ -42,6 +42,9 @@ directory | |||||||
|  |  | ||||||
| #include <string> | #include <string> | ||||||
|  |  | ||||||
|  | #include <Grid/qcd/hmc/integrators/Integrator.h> | ||||||
|  | #include <Grid/qcd/hmc/integrators/Integrator_algorithm.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
| namespace QCD { | namespace QCD { | ||||||
|  |  | ||||||
| @@ -230,7 +233,12 @@ class HybridMonteCarlo { | |||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  |  | ||||||
| }  // QCD | }  // QCD | ||||||
| }  // Grid | }  // Grid | ||||||
|  |  | ||||||
|  | #include <Grid/parallelIO/NerscIO.h> | ||||||
|  | #include <Grid/qcd/hmc/NerscCheckpointer.h> | ||||||
|  | #include <Grid/qcd/hmc/HmcRunner.h> | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|   | |||||||
							
								
								
									
										42
									
								
								lib/qcd/hmc/HMC_aggregate.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								lib/qcd/hmc/HMC_aggregate.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | |||||||
|  | /************************************************************************************* | ||||||
|  |  | ||||||
|  | Grid physics library, www.github.com/paboyle/Grid | ||||||
|  |  | ||||||
|  | Source file: ./lib/qcd/hmc/HMC.h | ||||||
|  |  | ||||||
|  | Copyright (C) 2015 | ||||||
|  |  | ||||||
|  | Author: Peter Boyle <paboyle@ph.ed.ac.uk> | ||||||
|  |  | ||||||
|  | This program is free software; you can redistribute it and/or modify | ||||||
|  | it under the terms of the GNU General Public License as published by | ||||||
|  | the Free Software Foundation; either version 2 of the License, or | ||||||
|  | (at your option) any later version. | ||||||
|  |  | ||||||
|  | This program is distributed in the hope that it will be useful, | ||||||
|  | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | GNU General Public License for more details. | ||||||
|  |  | ||||||
|  | You should have received a copy of the GNU General Public License along | ||||||
|  | with this program; if not, write to the Free Software Foundation, Inc., | ||||||
|  | 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 */ | ||||||
|  | //-------------------------------------------------------------------- | ||||||
|  | //-------------------------------------------------------------------- | ||||||
|  | #ifndef HMC_AGGREGATE_INCLUDED | ||||||
|  | #define HMC_AGGREGATE_INCLUDED | ||||||
|  |  | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
|  | #include <Grid/qcd/hmc/HMC.h> | ||||||
|  | // annoying location; should move this ? | ||||||
|  | #include <Grid/parallelIO/NerscIO.h> | ||||||
|  | #include <Grid/qcd/hmc/NerscCheckpointer.h> | ||||||
|  | #include <Grid/qcd/hmc/HmcRunner.h> | ||||||
|  |  | ||||||
|  | #endif | ||||||
							
								
								
									
										9
									
								
								lib/qcd/representations/Representations.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								lib/qcd/representations/Representations.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | #ifndef REPRESENTATIONS_H | ||||||
|  | #define REPRESENTATIONS_H | ||||||
|  |  | ||||||
|  | #include <Grid/qcd/representations/adjoint.h> | ||||||
|  | #include <Grid/qcd/representations/two_index.h> | ||||||
|  | #include <Grid/qcd/representations/fundamental.h> | ||||||
|  | #include <Grid/qcd/representations/hmc_types.h> | ||||||
|  |  | ||||||
|  | #endif | ||||||
| @@ -112,4 +112,4 @@ typedef AdjointRep<Nc> AdjointRepresentation; | |||||||
| } | } | ||||||
| } | } | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -25,7 +25,8 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> | #include <Grid/GridCore.h> | ||||||
|  | #include <Grid/GridQCDcore.h> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								lib/qcd/spin/Spin.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								lib/qcd/spin/Spin.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #ifndef QCD_SPIN_H | ||||||
|  | #define QCD_SPIN_H | ||||||
|  | #include <Grid/qcd/spin/Dirac.h> | ||||||
|  | #include <Grid/qcd/spin/TwoSpinor.h> | ||||||
|  | #endif | ||||||
| @@ -179,4 +179,4 @@ typedef SU_Adjoint<Nc> AdjointMatrices; | |||||||
| } | } | ||||||
| } | } | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -25,7 +25,8 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> | #include <Grid/GridCore.h> | ||||||
|  | #include <Grid/GridQCDcore.h> | ||||||
|  |  | ||||||
| namespace Grid {  | namespace Grid {  | ||||||
|   namespace QCD { |   namespace QCD { | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								lib/qcd/utils/Utils.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								lib/qcd/utils/Utils.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | #ifndef QCD_UTILS_H | ||||||
|  | #define QCD_UTILS_H | ||||||
|  | #include <Grid/qcd/utils/SpaceTimeGrid.h> | ||||||
|  | #include <Grid/qcd/utils/LinalgUtils.h> | ||||||
|  | #include <Grid/qcd/utils/CovariantCshift.h> | ||||||
|  | #include <Grid/qcd/utils/SUn.h> | ||||||
|  | #include <Grid/qcd/utils/SUnAdjoint.h> | ||||||
|  | #include <Grid/qcd/utils/SUnTwoIndex.h> | ||||||
|  | #endif | ||||||
| @@ -26,7 +26,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> |  | ||||||
|  | #include <Grid/GridCore.h> | ||||||
|  |  | ||||||
| using namespace Grid; | using namespace Grid; | ||||||
| using namespace std; | using namespace std; | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> | #include <Grid/GridCore.h> | ||||||
|  |  | ||||||
| using namespace Grid; | using namespace Grid; | ||||||
| using namespace std; | using namespace std; | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> | #include <Grid/GridCore.h> | ||||||
|  |  | ||||||
| using namespace Grid; | using namespace Grid; | ||||||
| using namespace std; | using namespace std; | ||||||
|   | |||||||
| @@ -172,8 +172,8 @@ namespace Grid { | |||||||
| 
 | 
 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| #include "simd/Grid_vector_types.h" | #include <Grid/simd/Grid_vector_types.h> | ||||||
| #include "simd/Grid_vector_unops.h" | #include <Grid/simd/Grid_vector_unops.h> | ||||||
| 
 | 
 | ||||||
| namespace Grid { | namespace Grid { | ||||||
|   // Default precision
 |   // Default precision
 | ||||||
| @@ -26,7 +26,7 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
|     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.h> | #include <Grid/GridCore.h> | ||||||
| #include <algorithm> | #include <algorithm> | ||||||
|  |  | ||||||
| namespace Grid { | namespace Grid { | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ | |||||||
|      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.h" | #include <Grid/GridCore.h> | ||||||
| 
 | 
 | ||||||
| namespace Grid { | namespace Grid { | ||||||
| 
 | 
 | ||||||
| @@ -41,12 +41,13 @@ Author: paboyle <paboyle@ph.ed.ac.uk> | |||||||
| #include <signal.h> | #include <signal.h> | ||||||
| #include <iostream> | #include <iostream> | ||||||
| #include <iterator> | #include <iterator> | ||||||
| #include <Grid.h> |  | ||||||
| #include <algorithm> | #include <algorithm> | ||||||
| #include <iterator> | #include <iterator> | ||||||
| #include <cstdlib> | #include <cstdlib> | ||||||
| #include <memory> | #include <memory> | ||||||
| 
 | 
 | ||||||
|  | #include <Grid/Grid.h> | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| #include <fenv.h> | #include <fenv.h> | ||||||
| #ifdef __APPLE__ | #ifdef __APPLE__ | ||||||
							
								
								
									
										5
									
								
								lib/util/Util.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								lib/util/Util.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | #ifndef GRID_UTIL_H | ||||||
|  | #define GRID_UTIL_H | ||||||
|  | #include <Grid/util/Lexicographic.h> | ||||||
|  | #include <Grid/util/Init.h> | ||||||
|  | #endif | ||||||
		Reference in New Issue
	
	Block a user