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.