MCPcopy Create free account
hub / github.com/TRIQS/triqs / GfFillLoop

Function GfFillLoop

benchmarks/GfFill.cpp:46–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

44// ===== Fill Green function Tensor Loop
45
46static 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}
63BENCHMARK(GfFillLoop)->RangeMultiplier(2)->Range(1 << 6, 1 << 8); //->Complexity();
64
65// ===== Fill Green function Tensor Clefs

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected