* - 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..

* How to define simple matrix operations, such as flavour matrices?

* Make the Tensor types and Complex etc... play more nicely.

* Dirac, Pauli, SU subgroup, etc.. * Gamma/Dirac structures

* 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.

* QDP++ regression suite and comparative benchmark

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:
* 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