Container Dictionary

The approach is similar to the Lookup-Tables and simply stores all states in a dictionary. The index of each state, \(\vert\Psi_i\rangle\), in the subsystem can be accessed directly via: \(\textbf{i} = \textbf{map} \left[\vert\Psi_i\rangle\right]\). The memory usage is reduced compared to the Lookup-Tables in the case of small particle numbers making this approach superior to the tables. There is no constraint on the length of the subsystem.

Data members

std::map<State, uint64_t> danceq::internal::ContainerDict::map

Dictionary for lookup.

The index of each state truncated to the subsystem, \(\vert\Psi_i\rangle\), can be accessed by its instance: \(\textbf{i} = \textbf{map} \left[\vert\Psi_i\rangle\right]\). The comparison is done on integer level using the data array of the State class.

const uint64_t danceq::internal::ContainerDict::L

Length of subsystem.

const uint64_t danceq::internal::ContainerDict::n_max

Length of subsystem.

std::vector<State> danceq::internal::ContainerDict::maximal_state_per_n

Defines the maximal state per allowed particle number.

Maximal state per allowed particle number \(n_P\in[0,\textbf{n_max}]\) in form of IntType defined by the state class.

std::vector<State> danceq::internal::ContainerDict::minimal_state_per_n

Defines the minimal state per allowed particle number.

Minimal state per allowed particle number \(n_P\in[0,\textbf{n_max}]\) in form of IntType defined by the state class.