Skip to main content

simplify_paulis

Overloads

NameDescription
simplify_paulis(const Operator input) -> ComplexOperatorSumSimplifies 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) -> ComplexOperatorSumSimplifies 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) -> ComplexOperatorSumSimplifies 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) -> ComplexOperatorSumSimplifies 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)