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.