3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-27 14:53:39 +01:00
dft_tools/doc/reference/c++/gf/gf_call.rst
2013-10-22 21:29:40 +02:00

64 lines
1.6 KiB
ReStructuredText

.. highlight:: c
.. _gf_call:
Operator()
==================================
**Synopsis** ::
value_type const & operator()(mesh_t::domain_t::point_t) const (1)
view_type operator()() const (2)
ClefExpression operator()(ClefExpression) const (3)
The operator () is in charge of evaluating the Green function on its domain,
by any means (e.g. interpolation) that the specialization define.
For example, g(t) for a Green function in time would return some interpolation of
the value of g between the closest mesh point.
Hence, this operator is only const : it would make no sense to modify g(t).
(to modify the Green function, cf operator []).
However, the Clef automatic assignment method (cf...) *is* written
with the () operator, in order have a better syntax for multivariable function.
It would be more logical to use [], but a strange, old and extremely inconvenient limitation of C++
forbids to overload [] for multiple variables...
NB : This is valid for both the container (e.g. gf), and the view (e.g. gf_view).
.. _gf_element_access:
(1) Evaluation
---------------------------------
Evaluation at one point of the domain.
NB : Specialization may provide other overloads.
.. _gf_making_view:
(2) Building a view
---------------------------------
The special case (2) (no argument) returns a complete view of the object
(equivalent to view_type(* this)).
.. _gf_lazy:
(3) Interaction with clef expressions
-------------------------------------------------
* gf and gf_view can be used with the triqs::clef library