simplify_paulis
Overloads
| Name | Description |
|---|---|
simplify_paulis(const Operator input) -> ComplexOperatorSum | Simplifies any Operator containing Pauli operators according to Pauli algebra rules. Handles single Pauli operators, products, and sums by converting to OperatorSum format. |
simplify_paulis(const ComplexOperatorSum input) -> ComplexOperatorSum | Simplifies a sum of products of Pauli operators in an OperatorSum according to Pauli algebra rules with complex coefficients. Applies commutation relations: X*Y = iZ, Y*Z = iX, Z*X = iY, and P*P = I for any Pauli operator P. Handles multi-site operators and automatically combines like terms. |
simplify_paulis(const RealOperatorSum input) -> ComplexOperatorSum | Simplifies a sum of products of Pauli operators in an OperatorSum with real coefficients. Automatically converts to complex coefficients since Pauli products can introduce imaginary phases. |
simplify_paulis(const OperatorProduct input) -> ComplexOperatorSum | Simplifies a single product of Pauli operators according to Pauli algebra rules. Converts the OperatorProduct to an OperatorSum and applies Pauli multiplication. |
simplify_paulis(const Operator input) -> ComplexOperatorSum
Simplifies any Operator containing Pauli operators according to Pauli algebra rules. Handles single Pauli operators, products, and sums by converting to OperatorSum format.
Parameters
- input: Any Operator (single Pauli, product, or sum) containing Pauli operators to simplify.
Returns
New OperatorSum with complex coefficients containing the simplified result.
Example
// Simplify single Pauli operator
var op = X(0)
simplify_paulis(op) // Returns (1+0i)*X(0)
// Works with any operator type
var prod = Y(1) * Z(1)
simplify_paulis(prod) // Returns (0+1i)*X(1)
simplify_paulis(const ComplexOperatorSum input) -> ComplexOperatorSum
Simplifies a sum of products of Pauli operators in an OperatorSum according to Pauli algebra rules with complex coefficients. Applies commutation relations: X*Y = iZ, Y*Z = iX, Z*X = iY, and P*P = I for any Pauli operator P. Handles multi-site operators and automatically combines like terms.
Parameters
- input: OperatorSum with complex coefficients containing Pauli operator chains (products of X, Y, Z, I operators).
Returns
New OperatorSum with simplified Pauli chains, where products are reduced using Pauli multiplication rules.
Example
// Simplify a ComplexOperatorSum with Pauli products
var sum_ops = X(0) * Y(0) + Y(1) * Z(1) + Z(2) * X(2)
simplify_paulis(sum_ops)
// Returns (0+1i)*Z(0) + (0+1i)*X(1) + (0+1i)*Y(2)
// Simplify sum with mixed terms
var mixed_sum = X(0) + Y(1) * Z(0) * X(0) * Z(1) * Z(1)
simplify_paulis(mixed_sum)
// Returns (1+0i)*X(0) + (0+1i)*(Y(0)*Y(1))
simplify_paulis(const RealOperatorSum input) -> ComplexOperatorSum
Simplifies a sum of products of Pauli operators in an OperatorSum with real coefficients. Automatically converts to complex coefficients since Pauli products can introduce imaginary phases.
Parameters
- input: OperatorSum with real coefficients containing Pauli operator chains (products of X, Y, Z, I operators).
Returns
New OperatorSum with complex coefficients and simplified Pauli chains
Example
// Simplify a RealOperatorSum
var real_sum = 2.0 * X(0) * Z(0) + 1.5 * Y(1) * Y(1) // Real coefficients
simplify_paulis(real_sum) // Returns (0-2i)*Y(0) + (1.5+0i)*ID()
simplify_paulis(const OperatorProduct input) -> ComplexOperatorSum
Simplifies a single product of Pauli operators according to Pauli algebra rules. Converts the OperatorProduct to an OperatorSum and applies Pauli multiplication.
Parameters
- input: OperatorProduct containing a chain of Pauli operators (X, Y, Z, I) to multiply.
Returns
New OperatorSum with complex coefficients containing the simplified Pauli product.
Example
// Simplify a product chain
var product = X(0) * Y(0) * Z(0)
simplify_paulis(product) // Returns (0+1i)*I (identity)