#include #include using namespace std; using namespace Grid; using namespace Grid::QCD; //template class is_pod< iScalar > //{ // //}; int main (int argc, char ** argv) { Grid_init(&argc,&argv); std::vector latt_size; std::vector simd_layout; std::vector mpi_layout; GridParseLayout(argv,argc,mpi_layout,simd_layout,latt_size); GridCartesian Grid(latt_size,simd_layout,mpi_layout); GridParallelRNG pRNG(&Grid); pRNG.SeedRandomDevice(); GridSerialRNG sRNG; sRNG.SeedRandomDevice(); SpinMatrix ident; ident=zero; SpinMatrix rnd ; random(sRNG,rnd); SpinMatrix ll; ll=zero; SpinMatrix rr; rr=zero; SpinMatrix result; SpinVector lv; random(sRNG,lv); SpinVector rv; random(sRNG,rv); // std::cout << " Is pod " << std::is_pod::value << std::endl; // std::cout << " Is pod double " << std::is_pod::value << std::endl; // std::cout << " Is pod ComplexF " << std::is_pod::value << std::endl; // std::cout << " Is triv double " << std::has_trivial_default_constructor::value << std::endl; // std::cout << " Is triv ComplexF " << std::has_trivial_default_constructor::value << std::endl; // std::cout << " Is pod Scalar " << std::is_pod >::value << std::endl; // std::cout << " Is pod Scalar " << std::is_pod >::value << std::endl; // std::cout << " Is pod Scalar " << std::is_pod >::value << std::endl; // std::cout << " Is pod Scalar " << std::is_pod >::value << std::endl; // std::cout << " Is pod Scalar " << std::is_pod >::value << std::endl; // std::cout << " Is pod Scalar " << std::is_pod >::value << std::endl; // std::cout << " Is triv Scalar " < >::value << std::endl; // std::cout << " Is triv Scalar "< >::value << std::endl; std::complex c(1.0); for(int a=0;a