qat.spd.pauli_tableau.PauliTableau
- class qat.spd.pauli_tableau.PauliTableau(nqbits, obs=None, pauli_string=None, qbits=None, tableau=None, phase=None)
Pauli tableau class used to represent and manipulate linear combinations of Pauli operators. It is the core data structure used for Heisenberg-picture evolution of observables.
Each Pauli row is encoded using packed Z and X bits in a 2D array. Optionally, each row can also carry a complex coefficient and a phase of the form \(i^q\).
This class is used to represent both the observable being evolved and the Pauli operations applied to it.
Conventions
Bits are packed into 64-bit integers (as np.uint64), first storing Z bits, then X bits.
Phases are stored as integers q corresponding to powers of \(i\), so that the total phase is \(i^q\).
- param nqbits:
Number of qubits in the system.
- type nqbits:
int
- param obs:
Observable to be stored as a Pauli tableau.
- type obs:
qat.core.Observable
, optional- param pauli_string:
List of Pauli words (e.g., [“IX”, “YY”, “ZZ”]).
- type pauli_string:
list of str, optional
- param qbits:
Qubit indices corresponding to each Pauli string. Used in conjunction with pauli_string.
- type qbits:
list of int, optional
- param tableau:
Array of packed Z/X bits representing Pauli rows.
- type tableau:
np.ndarray, optional
- param phase:
Array of integer phases for each Pauli row.
- type phase:
np.ndarray, optional
- nqbits
Number of qubits.
- Type:
int
- tableau
2D array of packed Z and X bits, one row per Pauli term. Each element is a np.uint64.
- Type:
np.ndarray
- phase
Integer phases of Pauli rows, stored as np.int32. Each entry represents the power of \(i\) (e.g., 1 means \(i^1\)).
- Type:
np.ndarray
- coeffs
Coefficients of the Pauli rows (complex amplitudes), stored as np.complex128. Set if initialized from an observable.
- Type:
np.ndarray, optional
- split
Internal constant to determine the boundary between Z and X bits in the packed tableau array.
- Type:
int
Notes
If obs is provided, the tableau is initialized from it and coefficients are set. If pauli_string is provided, it overrides obs, and coefficients are not set. If none of the inputs are provided, the tableau defaults to the identity operator.