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

prod<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