.. Generated automatically by cpp2rst .. highlight:: c .. role:: red .. role:: green .. role:: param .. _triqs__hilbert_space__imperative_operator: triqs::hilbert_space::imperative_operator ========================================= *#include * .. rst-class:: cppsynopsis template class :red:`imperative_operator` This class is the imperative version of the [[many_body_operator]] It is created from a `many_body_operator` object, and is used to act on a [[state]]. There is an optimization option `UseMap` (useful when `HilbertType = sub_hilbert_space`), which allows the user to give a map describing the connections between Hilbert subspaces generated by this operator. Template parameters ------------------- * **HilbertType**: Hilbert space type, one of [[hilbert_space]] and [[sub_hilbert_space]] * **ScalarType**: Type of operator's coefficients, normally `double` or `std::complex` * **UseMap**: Use a user-provided connection map on construction .. warning:: `HilbertType = sub_hilbert_space` implies that the operator generates only one-to-one connections between the used subspaces. If this not the case, one has to use `HilbertType = hilbert_space`. Member functions ---------------- .. table:: :widths: 40 60 +---------------------------------------------------------------------------------+--+ | :ref:`(constructor) ` | | +---------------------------------------------------------------------------------+--+ | :ref:`is_empty ` | | +---------------------------------------------------------------------------------+--+ | :ref:`update_coeffs ` | | +---------------------------------------------------------------------------------+--+ | :ref:`operator() ` | | +---------------------------------------------------------------------------------+--+ .. toctree:: :hidden: imperative_operator/constructor imperative_operator/is_empty imperative_operator/update_coeffs imperative_operator/operator()