44 auto sh = gl.data().shape();
46 array<dcomplex, 3> t{sh};
49 for (
int p = 0; p < order; p++)
50 for (
auto l : gl.mesh())
60 nda::vector<double> t(gl.
data().shape()[0]);
61 for (
int i = 0; i < t.size(); ++i) {
66 nda::array<dcomplex, 2> corr(disc.shape());
68 for (
auto l : gl.
mesh()) corr += t(l.index()) * gl[l];
70 for (
auto l : gl.
mesh()) gl.
data()(l.index(), range::all, range::all) += (disc - corr) * t(l.index()) / norm;
A read-only, non-owning view of a Green's function.
A mutable, non-owning view of a Green's function.
data_t & data() &
Get the data array view.
mesh_t const & mesh() const
Get the mesh of the Green's function.
Provides common type aliases, forward declarations and internal helpers for the Green's function cont...
Provides the triqs::gfs::gf_const_view container, a read-only non-owning view of a Green's function.
Provides a mutable non-owning view of a Green's function.
Provides functions specific to Legendre-basis Green's functions.
void enforce_discontinuity(gf_view< mesh::legendre > gl, nda::array_const_view< double, 2 > disc)
Enforce a prescribed jump at for a Legendre Green's function.
double legendre_t(int l, int p)
Get the quantity from Eq.(E8) in the paper https://doi.org/10.1103/PhysRevB.84.075145.
Provides a mesh type for Legendre polynomials as basis functions.
Provides Legendre polynomials and related functions.