qrunch.quantum.error_mitigation.estimator.pauli_noise_cancellation.clifford_compiler

Module containing compilers that can convert a universal gate circuit to a Clifford circuit.

Classes

CliffordCompiler

Compiler for compiling universal gate circuits into Clifford circuits.

class CliffordCompiler

Bases: object

Compiler for compiling universal gate circuits into Clifford circuits.

compile(circuit: UniversalGateCircuit) CliffordCircuit

Compile a circuit consisting of universal gates into (near) Clifford gates.

The universal gate set used here is Rx, Ry, Rz, and CX. The Clifford gate set is CX, H, X,`Y`,`Z`,`S`, and Sdg

Parameters:

circuit (UniversalGateCircuit) – Universal gate circuit to compile.

Returns:

compiled Clifford circuit.

Return type:

CliffordCircuit

map_gates(gates: Iterable[Gate]) Iterator[Gate]

Transform gates to iterator over Clifford gates.

Parameters:

gates (Iterable[Gate]) – Iterator of gates to expand.

Yields:

Clifford gates.

Return type:

Iterator[Gate]