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.
Column 1 | Column 2 |
|---|---|
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.
Column 1 | Column 2 |
|---|---|
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.
Column 1 | Column 2 |
|---|---|
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. |