mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 05:54:32 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			139 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
* - BinaryWriter, TextWriter etc...
 | 
						|
  - protocol buffers? replace xml
 | 
						|
 | 
						|
* Stencil operator support                           -----Initial thoughts, trial implementation DONE.
 | 
						|
                                                     -----some simple tests that Stencil matches Cshift.
 | 
						|
                                                     -----do all permute in comms phase, so that copy permute
 | 
						|
						     -----cases move into a buffer.
 | 
						|
						     -----allow transform in/out buffers spproj
 | 
						|
 | 
						|
 | 
						|
* CovariantShift support                             -----Use a class to store gauge field? (parallel transport?)
 | 
						|
 | 
						|
* Consider switch std::vector to boost arrays or something lighter weight
 | 
						|
  boost::multi_array<type, 3> A()...    to replace multi1d, multi2d etc..
 | 
						|
 | 
						|
* TensorRemove is a hack, come up with a long term rationalised approach to Complex vs. Scalar<Scalar<Scalar<Complex > > >
 | 
						|
  QDP forces use of "toDouble" to get back to non tensor scalar. This role is presently taken TensorRemove, but I
 | 
						|
  want to introduce a syntax that does not require this.
 | 
						|
 | 
						|
* norm2l is a hack. figure out syntax error and make this norm2. c.f. tests/Grid_gamma.cc
 | 
						|
 | 
						|
*  std::vector replacement;
 | 
						|
 | 
						|
  Had to change "reserve" back to "resize" on std::vector in Lattice class.
 | 
						|
 | 
						|
  This forces the constructor call on EVERY element of the array with negative
 | 
						|
  performance effects on temporaries.
 | 
						|
  
 | 
						|
  The reversion was required because copy constructur has to work.
 | 
						|
 | 
						|
  CONCLUSION: I must implement a similar to vector without construction/fill on
 | 
						|
  resize. Find out if valarray or alternative works differently prior to 
 | 
						|
  doing this since there may still be something I can use..
 | 
						|
 | 
						|
* Flavour matrices?
 | 
						|
 | 
						|
* Make the Tensor types and Complex etc... play more nicely.
 | 
						|
 | 
						|
* Pauli, SU subgroup, etc.. 
 | 
						|
 | 
						|
* Fourspin, two spin project
 | 
						|
 | 
						|
* su3 exponentiation & log etc.. [Jamie's code?]
 | 
						|
  TaProj
 | 
						|
 | 
						|
* Parallel MPI2 IO
 | 
						|
 | 
						|
* rb4d support.
 | 
						|
 | 
						|
* Check for missing functionality                    - partially audited against QDP++ layout
 | 
						|
 | 
						|
* Optimise the extract/merge SIMD routines; Azusa??
 | 
						|
 - I have collated into single location at least.
 | 
						|
 - Need to use _mm_*insert/extract routines.
 | 
						|
 | 
						|
* Conformable test in Cshift routines.
 | 
						|
 | 
						|
 | 
						|
AUDITS:
 | 
						|
 | 
						|
* FIXME audit
 | 
						|
* const audit
 | 
						|
* Replace vset with a call to merge.; 
 | 
						|
* care in Gmerge,Gextract over vset .
 | 
						|
* extract / merge extra implementation removal      
 | 
						|
* Test infrastructure
 | 
						|
 | 
						|
   // TODO
 | 
						|
   //
 | 
						|
   // Base class to share common code between vRealF, VComplexF etc...
 | 
						|
  //
 | 
						|
   // Unary functions
 | 
						|
   // cos,sin, tan, acos, asin, cosh, acosh, tanh, sinh, // Scalar<vReal> only arg
 | 
						|
   // exp, log, sqrt, fabs
 | 
						|
   //
 | 
						|
  // transposeColor, transposeSpin,
 | 
						|
   // adjColor, adjSpin,
 | 
						|
   //
 | 
						|
  // copyMask.
 | 
						|
   //
 | 
						|
   // localMaxAbs
 | 
						|
   //
 | 
						|
   // Fourier transform equivalent.
 | 
						|
 | 
						|
* LinearOperator
 | 
						|
 | 
						|
  LinearSolver
 | 
						|
 | 
						|
  Polynomial etc...
 | 
						|
 | 
						|
======================================================================================================
 | 
						|
 | 
						|
FUNCTIONALITY:
 | 
						|
* Dirac Gamma/Dirac structures ---- DONE
 | 
						|
* Conditional execution, where etc...                -----DONE, simple test
 | 
						|
* Integer relational support                         -----DONE
 | 
						|
* Coordinate information, integers etc...            -----DONE
 | 
						|
* Integer type padding/union to vector.              -----DONE 
 | 
						|
* LatticeCoordinate[mu]                              -----DONE
 | 
						|
* expose traceIndex, peekIndex, transposeIndex etc at the Lattice Level -- DONE
 | 
						|
* TraceColor, TraceSpin.                             ----- DONE (traceIndex<1>,traceIndex<2>, transposeIndex<1>,transposeIndex<2>)
 | 
						|
                                                     ----- Implement mapping between traceColour and traceSpin and traceIndex<1/2>.
 | 
						|
* How to do U[mu] ... lorentz part of type structure or not. more like chroma if not. -- DONE
 | 
						|
 | 
						|
* subdirs lib, tests ??                              ----- DONE
 | 
						|
  - lib/math        
 | 
						|
  - lib/cartesian
 | 
						|
  - lib/cshift
 | 
						|
  - lib/stencil
 | 
						|
  - lib/communicator
 | 
						|
  - lib/algorithms
 | 
						|
  - lib/qcd
 | 
						|
 future
 | 
						|
  - lib/io/   -- GridLog, GridIn, GridErr, GridDebug, GridMessage
 | 
						|
  - lib/qcd/actions
 | 
						|
  - lib/qcd/measurements
 | 
						|
 | 
						|
* Subset support, slice sums etc...                  -----DONE
 | 
						|
  sliceSum(orthog)
 | 
						|
  sum
 | 
						|
  innerProduct
 | 
						|
  norm2
 | 
						|
 | 
						|
* Subgrid Transferral                                -----DONE
 | 
						|
  subBlock (coarseLattice,fineLattice)
 | 
						|
  projectBlockBasis  
 | 
						|
  promoteBlockBasis
 | 
						|
 | 
						|
* random number generation                           ----- DONE
 | 
						|
 | 
						|
* Broadcast, reduction tests. innerProduct, localInnerProduct --- DONE
 | 
						|
 | 
						|
* I/O support
 | 
						|
* NERSC Lattice loading, plaquette test             ------- DONE single node 
 | 
						|
 | 
						|
 | 
						|
* Controling std::cout                              ------- DONE
 | 
						|
 |