qrunch.quantum.operators.pauli.sums
Efficient representation of a Pauli sum.
Functions
Convert the input to a tuple of Hermitian Pauli Sums. |
Classes
Class for efficiently describing an anti-hermitian Pauli sum. |
|
Class for efficiently describing a hermitian Pauli sum. |
- class AntiHermitianPauliSum
Bases:
objectClass for efficiently describing an anti-hermitian Pauli sum.
i.e. expressions of the form:
\[0.7j * X(1) * Y(1) * X(2) * Z(5) + 0.2j * X(2) * Y(3) * X(5) * Z(7) + ...\]- __init__(pauli_string_coefficient_map: dict[PauliString, complex]) None
Initialize an AntiHermitianPauliSum, from Pauli strings and corresponding coefficients.
- Parameters:
pauli_string_coefficient_map (dict[PauliString, complex]) – Pauli strings and coefficients in the pauli sum.
- Return type:
None
- classmethod from_expression(expression: Expression[PauliOperators] | int | float | complex) AntiHermitianPauliSum
Initialize an AntiHermitianPauliSum, from a Pauli expression.
The expression must be an anti-Hermitian Pauli sum to not fail validation.
- Parameters:
expression (Expression[PauliOperators] | int | float | complex) – Expression to create the anti-Hermitian Pauli sum from.
- Return type:
- indices() tuple[int, ...]
Get indices of the. operator.
- Return type:
tuple[int, …]
- string_coefficient_pairs() Iterator[tuple[PauliString, complex]]
Iterate through the terms and coefficients in the Pauli sum.
- Return type:
Iterator[tuple[PauliString, complex]]
- property terms_as_int: dict[tuple[int, int, int], complex]
Representation of where each pauli string is represented as a tuple of three integers.
This representation is useful in low-level code for speed, and putting it here allows for only computing this representation once.
- class HermitianPauliSum
Bases:
objectClass for efficiently describing a hermitian Pauli sum.
i.e. expressions of the form:
\[0.7 * X(1) * Y(1) * X(2) * Z(5) + 0.2 * X(2) * Y(3) * X(5) * Z(7) + ...\]- __init__(pauli_string_coefficient_map: dict[PauliString, float]) None
Initialize a HermitianPauliSum, from Pauli strings and corresponding coefficients.
- Parameters:
pauli_string_coefficient_map (dict[PauliString, float]) – Pauli strings and coefficients in the pauli sum.
- Return type:
None
- constant() float
Return the constant term in the Pauli sum.
- Return type:
float
- classmethod from_expression(expression: Expression[PauliOperators] | int | float | complex, tolerance: float = 1e-12) HermitianPauliSum
Initialize a HermitianPauliSum, from a Pauli expression.
The expression must be a hermitian Pauli sum to not fail validation.
- Parameters:
expression (Expression[PauliOperators] | int | float | complex) – Expression to create the hermitian Pauli sum from.
tolerance (float) – Ignores all terms with a coefficient below this value. Defaults to 1e-12.
- Return type:
- string_coefficient_pairs() Iterator[tuple[PauliString, float]]
Iterate through the terms and coefficients in the Pauli sum.
- Return type:
Iterator[tuple[PauliString, float]]
- property terms_as_int: dict[tuple[int, int, int], float]
Representation of where each pauli string is represented as a tuple of three integers.
This representation is useful in low-level code for speed, and putting it here allows for only computing this representation once.
- convert_to_tuple_of_hermitian_pauli_sums(input_to_convert: Sequence[int | float | complex | Expression[PauliOperators]] | int | float | complex | Expression[PauliOperators] | Sequence[HermitianPauliSum] | HermitianPauliSum) tuple[HermitianPauliSum, ...]
Convert the input to a tuple of Hermitian Pauli Sums.
- Parameters:
input_to_convert (Sequence[int | float | complex | Expression[PauliOperators]] | int | float | complex | Expression[PauliOperators] | Sequence[HermitianPauliSum] | HermitianPauliSum)
- Return type:
tuple[HermitianPauliSum, …]