#define TRIQS_ARRAYS_ENFORCE_BOUNDCHECK #include using namespace triqs::gfs; using namespace triqs::arrays; #define TEST(X) std::cout << BOOST_PP_STRINGIZE((X)) << " ---> "<< (X) <{0,10,99,full_bins}; auto G = gf> { {m,m}, {2,2}}; auto G2 = G; auto gg = gf { {m}, {2,2}}; triqs::clef::placeholder<0> t_; triqs::clef::placeholder<1> tp_; array A(2,2); A(t_,tp_) << t_ - 3*tp_; std::cout <>( {gf_mesh(beta, Fermion, n_im_freq), gf_mesh(beta, Fermion, n_im_freq)}, {2,2}); auto zz = G_w_wn2(t_,tp_); //std::cout << std::get<0>(zz.childs).data() << std::endl ; auto yy = eval ( zz, t_=2, tp_=3); //std::cout << yy.indexmap()<< std::endl ; std::cout << yy << std::endl ; //std::cout << eval ( zz, t_=2, tp_=3)<< std::endl ; //std::cout << eval ( G_w_wn2(t_,tp_), t_=2, tp_=3)<< std::endl ; //std::cout << eval ( G(t_,tp_), t_=2, tp_=1.2)<< std::endl ; //G(t_,tp_) << t_ - 3*tp_; //G2(t_,tp_) << t_ + 3*tp_; //G2(t_,tp_) << 2* G(t_,tp_); TEST( G(1,1) ); TEST( G[G.mesh()(1,1) ]); TEST( G.on_mesh(1,1)); //G2(t_,tp_) << G(tp_,t_); TEST( G(2,1) ); TEST( G2(1,2) ); TEST( G(1,2) ); TEST( G2(2,1) ); //TEST( G2(2,1,3) ); // should not compile } TRIQS_CATCH_AND_ABORT; }