Header menu logo Encodings

Trotterization Module

Symbolic Trotter decomposition of Pauli Hamiltonians.

Decomposes the time evolution operator exp(−iHΔt) into a sequence of Pauli rotations exp(−iθₖPₖ), and further into elementary quantum gates using the CNOT staircase construction. All operations are purely symbolic — no matrix exponentiation or state-vector simulation is performed.

Supports first-order and second-order (symmetric) Suzuki–Trotter decompositions, along with circuit resource estimation (CNOT count, Pauli weight statistics).

Types

Type Description

CircuitStats

Circuit resource statistics for a Trotter step.

Gate

Elementary quantum gate for circuit synthesis.

PauliRotation

A single Pauli rotation exp(−iθP).

TrotterOrder

Trotter decomposition order.

TrotterStep

One complete Trotter step (a product of Pauli rotations).

Functions and values

Function or value Description

compareTrotterCosts encodings dt

Full Usage: compareTrotterCosts encodings dt

Parameters:
    encodings : (string * PauliRegisterSequence)[] - Array of (name, Hamiltonian) pairs.
    dt : float - Time step size for the comparison.

Returns: (string * CircuitStats) array

Compare CNOT costs across multiple encoded Hamiltonians.

encodings : (string * PauliRegisterSequence)[]

Array of (name, Hamiltonian) pairs.

dt : float

Time step size for the comparison.

Returns: (string * CircuitStats) array

decomposeRotation rotation

Full Usage: decomposeRotation rotation

Parameters:
Returns: Gate[]

Decompose a single Pauli rotation exp(−iθP) into elementary gates.

For weight-w Pauli string P on qubits {q₁,…,qw}:

  • Basis change: H on X positions, S†H on Y positions
  • CNOT staircase: w−1 CNOTs linking non-identity qubits
  • Rz(2θ) on the last qubit
  • Reverse CNOT staircase
  • Reverse basis change

Total: 2(w−1) CNOTs + 1 Rz + basis-change single-qubit gates.

rotation : PauliRotation
Returns: Gate[]

decomposeTrotterStep step

Full Usage: decomposeTrotterStep step

Parameters:
Returns: Gate[]

Decompose a full Trotter step into elementary gates.

step : TrotterStep
Returns: Gate[]

firstOrderTrotter dt hamiltonian

Full Usage: firstOrderTrotter dt hamiltonian

Parameters:
Returns: TrotterStep

First-order Trotter decomposition.

exp(−iHΔt) ≈ Πₖ exp(−icₖPₖΔt) where H = Σₖ cₖPₖ.

dt : float
hamiltonian : PauliRegisterSequence
Returns: TrotterStep

pauliWeight register

Full Usage: pauliWeight register

Parameters:
Returns: int

Pauli weight of a register: the number of non-identity positions.

register : PauliRegister
Returns: int

secondOrderTrotter dt hamiltonian

Full Usage: secondOrderTrotter dt hamiltonian

Parameters:
Returns: TrotterStep

Second-order (symmetric) Trotter decomposition.

Forward pass at half-angle followed by reverse pass at half-angle. The resulting step is palindromic.

dt : float
hamiltonian : PauliRegisterSequence
Returns: TrotterStep

trotterCnotCount step

Full Usage: trotterCnotCount step

Parameters:
Returns: int

Quick CNOT count from Pauli weights (no gate decomposition needed). Each weight-w rotation contributes 2(w−1) CNOTs.

step : TrotterStep
Returns: int

trotterStepStats step

Full Usage: trotterStepStats step

Parameters:
Returns: CircuitStats

Compute full circuit resource statistics for a Trotter step.

step : TrotterStep
Returns: CircuitStats

trotterize order

Full Usage: trotterize order

Parameters:
Returns: float -> PauliRegisterSequence -> TrotterStep

Trotter decomposition dispatching on order.

order : TrotterOrder
Returns: float -> PauliRegisterSequence -> TrotterStep

Type something to start searching.