gf and views

Synopsis:

template<typename Variable, typename Target=matrix_valued, typename Opt=void> class gf;
template<typename Variable, typename Target=matrix_valued, typename Opt=void> class gf_view;
template<typename Variable, typename Target=matrix_valued, typename Opt=void> class gf_const_view;

Hereafter, we describe the containers, the views. Properties specific to each specializations are described in a specific page, linked in the table below.

Template parameters

Template parameter Accepted type Access in the class Meaning
Variable Cf table below variable_t The domain of definition of the Green function
Target Cf Table below target_t The target space of the function
Opt void option_t Currently unused

The various specializations of the container and its views are decribed in in the specializations page.

The Variable template parameter can take the following values:

Variable Meaning
imfreq Imaginary Matsubara frequency
imtime Imaginary Matsubara time
refreq Real frequency
retime Real time
legendre Legendre polynomial representation
block_index Block Green function
cartesian_product<Gs…> Cartesian product of gf<Gs> … functions.

The Target template parameter can take the following values:

Target Meaning
scalar_valued The function is scalar valued (double, complex…).
matrix_valued [default] The function is matrix valued.
tensor_valued<R> The function is tensor valued with rank

Member types

Member type Definitions
view_type The corresponding view type
regular_type The corresponding regular type i.e. the container itself
mesh_t The mesh
target_shape_t Type storing the information to construct the target space, Depends on the specialisation (a shape for matrix_valued gf, empty for a scalar valued, … Cf Specialisations)
data_t Type of the data array
singularity_t Type of the singularity (tail, nothing…)
symmetry_t Symmetry (unused at this stage).

Member functions

Member function Meaning
(constructor)  
(destructor)  
operator () Evaluation on a point of the domain
operator [] Access to the value on the mesh
mesh Access to the mesh
singularity Access to the singularity
symmetry Access to the symmetry
data Direct view of the data [Advanced]
operator = Assigns values to the container
operator +=,-=,*=,/= compound assignment operators

Non-member functions

Member function Meaning
swap Swap of 2 containers
operator<< Writing to stream
reinterpret_scalar_valued_gf_as_matrix_valued Reinterpret a scalar_valued gf as a 1x1 matrix_valued view