| 44 | // ===== Fill Green function Tensor Loop |
| 45 | |
| 46 | static void GfFillLoop(benchmark::State &state) { |
| 47 | long n_iw = state.range(0); |
| 48 | |
| 49 | auto iw_mesh_large = mesh::imfreq{1.0, Fermion, 2 * n_iw}; |
| 50 | auto M = gf<mesh::prod<imfreq, imfreq>, scalar_valued>{{iw_mesh_large, iw_mesh_large}}; |
| 51 | |
| 52 | auto iw_mesh = mesh::imfreq{1.0, Fermion, n_iw}; |
| 53 | auto iW_mesh = mesh::imfreq{1.0, Boson, n_iw}; |
| 54 | auto M4 = gf<prod<imfreq, imfreq, imfreq>, scalar_valued>{{iW_mesh, iw_mesh, iw_mesh}}; |
| 55 | |
| 56 | for (auto _ : state) |
| 57 | for (auto iW : iW_mesh) |
| 58 | for (auto iw1 : iw_mesh) |
| 59 | for (auto iw2 : iw_mesh) M4[iW, iw1, iw2] += M[iw1, iW + iw1] * M[iW + iw2, iw2]; |
| 60 | |
| 61 | state.SetBytesProcessed(int64_t(state.iterations()) * 8 * n_iw * n_iw * n_iw * sizeof(scalar_t)); |
| 62 | } |
| 63 | BENCHMARK(GfFillLoop)->RangeMultiplier(2)->Range(1 << 6, 1 << 8); //->Complexity(); |
| 64 | |
| 65 | // ===== Fill Green function Tensor Clefs |
nothing calls this directly
no outgoing calls
no test coverage detected