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

ConsolidateBlocks.name()

Return the name of the pass.

ConsolidateBlocks.run(dag)

Run the ConsolidateBlocks pass on dag.