.. _Operator_Functions: ######### Functions ######### The class is equipped with two types of :ref:`Constructors` that refer to the cases if it uses the number-conserving :ref:`Basis class` or the **not** number-conserving :ref:`State class`. Arbitrary terms in form of local tensor products can be added with :ref:`add_operator(...)` in :ref:`Input Functions`. The function :ref:`define_operator(...)` allows to create arbitrary matrices acting on the local Hilbert space of dimension :math:`Q`. A few :ref:`default operators` are included. Full access to the :ref:`states` forming the basis of the operator -- independent of the used template class **T** -- are listed in :ref:`State Handling`. The functions :ref:`get_index(state)`, :ref:`get_state(index)`, and :ref:`increment(state)` provide full access to the basis states. The function :ref:`apply(state)` is used to generate the matrix representation of this operator. Finally, the operator can represented in different matrix formats using the functions in :ref:`Matrix Formats`. We provide native **cpp** container but also frontends for different linear algebra libraries like :ref:`Eigen` and :ref:`Petsc`. .. toctree:: :maxdepth: 1 :titlesonly: Functions/Miscellaneous.rst Functions/Input.rst Functions/State_Handling.rst Functions/Frontends.rst