triqs::hilbert_space::state
#include <triqs/hilbert_space/state.hpp>
template<typename HilbertSpace, typename ScalarType, bool BasedOnMap> class state
Many-body state as a list of amplitudes in a basis of Fock states
The amplitudes can either be stored using a map (only non-vanishing elements are stored) or in a nda::vector. In order to make this class model [[statevector_concept]] free function [[make_zero_state]] is defined. Specializations on BasedOnMap provide different extensions of the concept, and are documented separately:
state, map-based storage
state, vector-based storage
Function [[project]] can be used to project a state from one Hilbert space to another Hilbert space/subspace.
Template parameters
HilbertSpace: Hilbert space type, one of [[hilbert_space]] and [[sub_hilbert_space]]
ScalarType: Amplitude type, normally double or std::complex<double>
BasedOnMap: Use the implementation based on a map