TRIQS/TRIQS 4.0.0
Researching Interacting Quantum Systems
Loading...
Searching...
No Matches
functions.hpp
Go to the documentation of this file.
1// Copyright (c) 2020 Simons Foundation
2//
3// This program is free software: you can redistribute it and/or modify
4// it under the terms of the GNU General Public License as published by
5// the Free Software Foundation, either version 3 of the License, or
6// (at your option) any later version.
7//
8// This program is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11// GNU General Public License for more details.
12//
13// You may obtain a copy of the License at
14// https://www.gnu.org/licenses/gpl-3.0.txt
15//
16// Authors: Michel Ferrero, Olivier Parcollet
17
22
23#pragma once
24
25#include "./block_gf.hpp"
26
27namespace triqs::gfs {
28
33
44 template <typename V, typename T, typename L, int A> auto fourier(block_gf<V, T, L, A> const &g) {
45 return make_lazy_transform([](auto &&x) { return fourier(x); }, g);
46 }
47
49 template <typename V, typename T, typename L, int A> auto fourier(block_gf<V, T, L, A> &g) {
50 return make_lazy_transform([](auto &&x) { return fourier(x); }, g);
51 }
52
54 template <typename V, typename T, typename L, int A, bool C> auto fourier(block_gf_view<V, T, L, A, C> g) {
55 return make_lazy_transform([](auto &&x) { return fourier(x); }, g);
56 }
57
59
60} // namespace triqs::gfs
Provides the block Green's function container.
A non-owning view of a block Green's function.
The owning block Green's function container.
Definition block_gf.hpp:259
auto fourier(block_gf< V, T, L, A > const &g)
Lazily apply the Fourier transform block by block to a block Green's function.
Definition functions.hpp:44