template<typename HilbertType, typename ScalarType, bool UseMap> class 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.
- HilbertType: Hilbert space type, one of [[hilbert_space]] and [[sub_hilbert_space]]
- ScalarType: Type of operator’s coefficients, normally double or std::complex<double>
- UseMap: Use a user-provided connection map on construction
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.