ConsolidateBlocks¶

class ConsolidateBlocks(*args, **kwargs)[source]

Replace each block of consecutive gates by a single Unitary node.

Pass to consolidate sequences of uninterrupted gates acting on the same qubits into a Unitary node, to be resynthesized later, to a potentially more optimal subcircuit.

Notes

This pass assumes that the ‘blocks_list’ property that it reads is given such that blocks are in topological order. The blocks are collected by a previous pass, such as Collect2qBlocks.

ConsolidateBlocks initializer.

Parameters
• kak_basis_gate (Gate) – Basis gate for KAK decomposition.

• force_consolidate (bool) – Force block consolidation

• basis_gates (List(str)) – Basis gates from which to choose a KAK gate.

Attributes

 ConsolidateBlocks.is_analysis_pass Check if the pass is an analysis pass. ConsolidateBlocks.is_transformation_pass Check if the pass is a transformation pass.

Methods

 Return the name of the pass. Run the ConsolidateBlocks pass on dag.