Header menu logo Encodings

JordanWigner Module

The Jordan-Wigner fermion-to-qubit encoding (1928).

Maps fermionic operators to qubit Pauli operators by inserting a chain of Z operators to track the parity of all preceding modes: cⱼ → Xⱼ ⊗ Zⱼ₋₁ ⊗ ... ⊗ Z₀ dⱼ → Yⱼ ⊗ Zⱼ₋₁ ⊗ ... ⊗ Z₀ where cⱼ = a†ⱼ + aⱼ and dⱼ = i(a†ⱼ − aⱼ) are Majorana operators. The Z-chain grows linearly with mode index j, giving O(n) worst-case weight. For O(log n) alternatives, see BravyiKitaev and TreeEncoding. Reference: P. Jordan and E. Wigner, "Über das Paulische Äquivalenzverbot," Z. Phys. 47, 631 (1928).

Functions and values

Function or value Description

jordanWignerTerms op j n

Full Usage: jordanWignerTerms op j n

Parameters:
    op : LadderOperatorUnit - The ladder operator (Raise, Lower, or Identity).
    j : uint32 - The qubit/mode index for this operator.
    n : uint32 - The total number of qubits in the register.

Returns: PauliRegisterSequence A sequence of Pauli register terms representing the encoded operator.

Compute the Jordan-Wigner encoding of a single ladder operator.

For creation (Raise) and annihilation (Lower) operators, produces X and Y terms with Z-chains on all preceding qubits. The coefficients encode the ±½ and ±i/2 factors from the Majorana decomposition. Returns empty sequence for Identity or if j >= n.

op : LadderOperatorUnit

The ladder operator (Raise, Lower, or Identity).

j : uint32

The qubit/mode index for this operator.

n : uint32

The total number of qubits in the register.

Returns: PauliRegisterSequence

A sequence of Pauli register terms representing the encoded operator.

Example

Encode a†₀ in a 2-qubit register:

 jordanWignerTerms Raise 0u 2u
 // X term: "XI" with coefficient  0.5
 // Y term: "YI" with coefficient -0.5i

Type something to start searching.