Compilation and Transformations

QuantumFlow: Translate, transform, and compile circuits.

quantumflow.transform.compile_circuit(circ: Circuit) Circuit

Compile a circuit to standard gate set (CZ, X^0.5, ZPow), simplifying circuit where possible.

quantumflow.transform.convert_HZH(dagc: DAGCircuit) None

Convert a sequence of H-ZPow-H gates to a XPow gate

quantumflow.transform.find_pattern(dagc: DAGCircuit, gateset1: Set, gateset2: Set) Generator[Tuple[Operation, Operation], None, None]

Find where a gate from gateset1 is followed by a gate from gateset2 in a DAGCircuit

quantumflow.transform.merge_hadamards(dagc: DAGCircuit) None

Merge and remove neighboring Hadamard gates

quantumflow.transform.merge_tx(dagc: DAGCircuit) None

Merge neighboring ZPow gates

quantumflow.transform.merge_ty(dagc: DAGCircuit) None

Merge neighboring ZPow gates

quantumflow.transform.merge_tz(dagc: DAGCircuit) None

Merge neighboring ZPow gates

quantumflow.transform.remove_element(dagc: DAGCircuit, elem: Operation) None

Remove a node from a DAGCircuit

quantumflow.transform.remove_identites(dagc: DAGCircuit) None

Remove identities from a DAGCircuit

quantumflow.transform.retrogress_tz(dagc: DAGCircuit) None

Commute ZPow gates as far backward in the circuit as possible