//#define TRIQS_ARRAYS_ENFORCE_BOUNDCHECK #include #include #include namespace tql= triqs::clef; // namespace tqa= triqs::arrays; // using tqa::range; using triqs::arrays::make_shape; using triqs::gf::Fermion; using triqs::gf::imfreq; using triqs::gf::imtime; using triqs::gf::make_gf; using triqs::arrays::range; #define TEST(X) std::cout << BOOST_PP_STRINGIZE((X)) << " ---> "<< (X) < om_; double beta =1; int N=10000; double E=1; auto Gw1 = make_gf (beta, Fermion, make_shape(1,1), N); Gw1(om_) << 1/(om_-E); // for(auto const& w:Gw1.mesh()){ // std::cout<<"w="<(w)<<", Gw1=" << Gw1(w)(0,0)< (beta, Fermion, make_shape(1,1), N); inverse_fourier_impl( Gt1, Gw1, triqs::gf::matrix_valued() ); // for(auto const& t:Gt1.mesh()){ // std::cout<<"t="< (beta, Fermion, make_shape(1,1), N); fourier_impl(Gw1b, Gt1, triqs::gf::matrix_valued()); for(auto const& w:Gw1.mesh()){ // std::cout<<"w="<(w)<<",Gw1b=" << Gw1b(w)(0,0)<0?-1:0)+1/(1+exp(E*beta)) ); if ( std::abs(Gt1(t)(0,0)) > precision) TRIQS_RUNTIME_ERROR<<" fourier_matsubara error : t="< (beta, Fermion, make_shape(1,1)); Gw2() = lazy_fourier(Gt1); }