Transpiler Passes

This module provides various transpiler passes for the stages explained in qiskit_bosons.transpiler.

Optimization Passes

These passes provide different kinds of optimization of BosonicDAGCircuit instances.

B2BSynthesis([config, apply, filter])

A transpilation pass breaking gates down into smaller ones in bosonic space.

B2BSynthesisConfig

The dictionary type used to configure the B2BSynthesis.methods.

MergeEvolutions([atol])

A transpilation pass merging consecutive Evolution gates of the same operator.

RelabelModes(permutation)

A transpilation pass to relabel the bosonic modes.

Layouting Passes

These passes are designed to help configuring the global B2QLayout setting for the transpilation process. This setting needs to be placed in the b2q_layout field of the property_set, from where it will be read during the Synthesis Passes.

CustomB2QLayout(layout)

Sets the user-provided B2QLayout in the transpiler.

OccupationB2QLayout(spec)

Maps bosonic modes to the qubits a LevelSpec assigns them.

Synthesis Passes

The main logic for mapping a BosonicDAGCircuit to a DAGCircuit is implemented by a single synthesis pass, namely the B2QSynthesis. It is conceptually similar to Qiskit’s HighLevelSynthesis because it simply iterates over the BosonicDAGCircuit instructions and delegates the mapping to qubit-based instructions to Transpiler Pass Synthesis (B2Q) for each of the encountered types of BosonicGate.

B2QSynthesis([config])

A transpilation pass to map boson-based circuit instructions to qubit-based ones.

B2QSynthesisConfig

The dictionary type used to configure the B2QSynthesis.methods.