2015-04-23 20:42:30 +01:00
|
|
|
* - BinaryWriter, TextWriter etc...
|
2015-04-25 14:33:02 +01:00
|
|
|
- use protocol buffers? replace xmlReader/Writer ec..
|
|
|
|
- Binary use htonll, htonl
|
2015-04-18 18:36:48 +01:00
|
|
|
|
2015-05-05 22:09:22 +01:00
|
|
|
* Stencil -- DONE
|
2015-04-27 13:45:07 +01:00
|
|
|
|
2015-04-26 15:51:09 +01:00
|
|
|
* Reduce implemention is poor
|
|
|
|
* Bug in SeedFixedIntegers gives same output on each site.
|
|
|
|
* Bug in RNG with complex numbers ; only filling real values; need helper function -- DONE
|
|
|
|
|
2015-04-23 20:42:30 +01:00
|
|
|
* 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
|
2015-04-18 22:16:31 +01:00
|
|
|
|
2015-04-18 18:36:48 +01:00
|
|
|
|
2015-04-23 20:42:30 +01:00
|
|
|
* CovariantShift support -----Use a class to store gauge field? (parallel transport?)
|
2015-04-18 18:36:48 +01:00
|
|
|
|
2015-04-26 15:51:09 +01:00
|
|
|
* Strong test for norm2, conj and all primitive types.
|
2015-04-25 13:04:26 +01:00
|
|
|
|
2015-04-23 11:04:59 +01:00
|
|
|
* Consider switch std::vector to boost arrays or something lighter weight
|
2015-04-18 18:36:48 +01:00
|
|
|
boost::multi_array<type, 3> A()... to replace multi1d, multi2d etc..
|
|
|
|
|
2015-04-25 12:54:06 +01:00
|
|
|
|
2015-04-25 14:33:02 +01:00
|
|
|
* norm2l is a hack. figure out syntax error and make this norm2 c.f. tests/Grid_gamma.cc
|
2015-04-25 12:54:06 +01:00
|
|
|
|
2015-04-25 14:33:02 +01:00
|
|
|
**** std::vector replacement;
|
2015-04-25 12:54:06 +01:00
|
|
|
|
|
|
|
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..
|
|
|
|
|
2015-04-18 18:36:48 +01:00
|
|
|
|
2015-04-23 20:42:30 +01:00
|
|
|
* Make the Tensor types and Complex etc... play more nicely.
|
2015-04-26 15:51:09 +01:00
|
|
|
|
|
|
|
- TensorRemove is a hack, come up with a long term rationalised approach to Complex vs. Scalar<Scalar<Scalar<Complex > > >
|
2015-04-25 13:04:26 +01:00
|
|
|
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.
|
2015-04-23 20:42:30 +01:00
|
|
|
|
2015-04-26 15:51:09 +01:00
|
|
|
- Reductions that contract indices on a site should always demote the tensor structure.
|
|
|
|
norm2(), innerProduct.
|
|
|
|
|
|
|
|
- Result of Sum(), SliceSum // spatial sums
|
|
|
|
trace, traceIndex etc.. do not.
|
|
|
|
|
|
|
|
- problem arises because "trace" returns Lattice<TComplex> moving everything down to Scalar,
|
|
|
|
and then Sum and SliceSum to not remove the Scalars. This would be fixed if we
|
|
|
|
template specialize the scalar scalar scalar sum and SliceSum, on the basis of being
|
|
|
|
pure scalar.
|
2015-04-19 14:55:16 +01:00
|
|
|
|
2015-04-25 13:04:26 +01:00
|
|
|
* Optimise the extract/merge SIMD routines; Azusa??
|
|
|
|
- I have collated into single location at least.
|
|
|
|
- Need to use _mm_*insert/extract routines.
|
|
|
|
|
2015-04-18 18:36:48 +01:00
|
|
|
|
2015-04-25 13:04:26 +01:00
|
|
|
* Conformable test in Cshift routines.
|
|
|
|
|
|
|
|
|
|
|
|
* Flavour matrices?
|
|
|
|
* Pauli, SU subgroup, etc..
|
2015-04-23 20:42:30 +01:00
|
|
|
* su3 exponentiation & log etc.. [Jamie's code?]
|
2015-04-25 13:04:26 +01:00
|
|
|
* TaProj
|
2015-04-18 18:36:48 +01:00
|
|
|
|
|
|
|
|
2015-04-25 13:04:26 +01:00
|
|
|
* Fourspin, two spin project --- DONE
|
2015-04-18 18:36:48 +01:00
|
|
|
|
|
|
|
|
2015-04-25 13:04:26 +01:00
|
|
|
* Parallel MPI2 IO
|
|
|
|
|
|
|
|
* rb4d support for 5th dimension in Mobius.
|
2015-04-18 18:36:48 +01:00
|
|
|
|
2015-04-25 13:04:26 +01:00
|
|
|
* Check for missing functionality - partially audited against QDP++ layout
|
|
|
|
|
|
|
|
Algorithms
|
|
|
|
* LinearOperator
|
|
|
|
* LinearSolver
|
|
|
|
* Polynomial
|
|
|
|
* Eigen
|
|
|
|
* Pcg
|
|
|
|
* fPcg
|
|
|
|
* MCR
|
2015-04-25 14:33:02 +01:00
|
|
|
* HDCG
|
2015-04-25 13:04:26 +01:00
|
|
|
* etc..
|
2015-04-18 18:36:48 +01:00
|
|
|
|
2015-04-14 22:40:40 +01:00
|
|
|
AUDITS:
|
2015-04-18 14:36:01 +01:00
|
|
|
|
2015-04-06 06:30:48 +01:00
|
|
|
* FIXME audit
|
2015-04-14 22:40:40 +01:00
|
|
|
* const audit
|
2015-04-10 04:24:01 +01:00
|
|
|
* Replace vset with a call to merge.;
|
2015-04-14 20:25:51 +01:00
|
|
|
* care in Gmerge,Gextract over vset .
|
2015-04-14 20:22:04 +01:00
|
|
|
* extract / merge extra implementation removal
|
2015-04-16 14:48:21 +01:00
|
|
|
* Test infrastructure
|
2015-04-18 14:36:01 +01:00
|
|
|
|
2015-04-23 20:42:30 +01:00
|
|
|
// TODO
|
|
|
|
//
|
|
|
|
// Base class to share common code between vRealF, VComplexF etc...
|
2015-04-25 13:04:26 +01:00
|
|
|
//
|
2015-04-23 20:42:30 +01:00
|
|
|
// Unary functions
|
|
|
|
// cos,sin, tan, acos, asin, cosh, acosh, tanh, sinh, // Scalar<vReal> only arg
|
|
|
|
// exp, log, sqrt, fabs
|
|
|
|
//
|
2015-04-25 13:04:26 +01:00
|
|
|
// transposeColor, transposeSpin,
|
2015-04-23 20:42:30 +01:00
|
|
|
// adjColor, adjSpin,
|
|
|
|
//
|
2015-04-25 13:04:26 +01:00
|
|
|
// copyMask.
|
2015-04-23 20:42:30 +01:00
|
|
|
//
|
|
|
|
// localMaxAbs
|
|
|
|
//
|
|
|
|
// Fourier transform equivalent.
|
|
|
|
|
|
|
|
|
|
|
|
======================================================================================================
|
|
|
|
|
|
|
|
FUNCTIONALITY:
|
2015-04-24 22:56:37 +01:00
|
|
|
* Dirac Gamma/Dirac structures ---- DONE
|
2015-04-23 20:42:30 +01:00
|
|
|
* 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
|
|
|
|
|
2015-04-25 13:04:26 +01:00
|
|
|
* Twospin/Fourspin/Gamma/Proj/Recon ----- DONE
|
|
|
|
|
2015-04-23 20:42:30 +01:00
|
|
|
* 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
|
|
|
|
|