Container Lookup-Table
Using lookup-tables is the original proposal of Lin[1] which we have generalized to arbitrary \(Q\) and an arbitrary number of subsystems. The index of each state, \(\vert\Psi_i\rangle\), in the subsystem can be accessed by its integer representation: \(\textbf{i} = \textbf{table} \left[\vert\Psi_i\rangle\right]\). The maximal size of the table is \(2^{\textbf{Nbits}\cdot \textbf{L}}\) where Nbits is the number of bits (defined by the State class) to encode a local site.
Warning
The maximal length per subsystem is limited by the underlying integer type IntType of the State class. The length L has to fulfill \(\textbf{Nbits}\cdot\textbf{L} \leq \texttt{sizeof_IntType}\cdot 8\).
Data members
-
std::vector<uint64_t> danceq::internal::ContainerTable::table
Lookup-table.
The index of each state truncated to the subsystem, \(\vert\Psi_i\rangle\), can be accessed by its integer representation: \(\textbf{i} = \textbf{table} \left[\vert\Psi_i\rangle\right]\). The maximal size is \(2^{\textbf{Nbits}\cdot \textbf{L}}\) where Nbits is the number of bits (defined by the State class) to encode a local site.
-
const uint64_t danceq::internal::ContainerTable::L
Length of subsystem.
-
const uint64_t danceq::internal::ContainerTable::n_max
Maximal number of particles.
-
std::vector<typename State::integer_type> danceq::internal::ContainerTable::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<typename State::integer_type> danceq::internal::ContainerTable::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.