About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
XXDecomposer
class qiskit.synthesis.XXDecomposer(basis_fidelity=1.0, euler_basis='U', embodiments=None, backup_optimizer=None)
Bases: object
A class for optimal decomposition of 2-qubit unitaries into 2-qubit basis gates of XX
type (i.e., each locally equivalent to for a possibly varying ).
Parameters
- basis_fidelity (dict |float) – available strengths and fidelity of each. Can be either (1) a dictionary mapping
XX
angle values to fidelity at that angle; or (2) a single floatf
, interpreted as{pi: f, pi/2: f/2, pi/3: f/3}
. - euler_basis (str) – Basis string provided to
OneQubitEulerDecomposer
for 1Q synthesis. Defaults to"U"
. - embodiments (dict[float, QuantumCircuit] | None) – A dictionary mapping interaction strengths alpha to native circuits which embody the gate . Strengths are taken so that represents the class of a full
CXGate
. - backup_optimizer (Callable[..., QuantumCircuit] | None) – If supplied, defers synthesis to this callable when
XXDecomposer
has no efficient decomposition of its own. Useful for special cases involving 2 or 3 applications of , in which case standard synthesis methods provide lower 1Q gate count.
Note
If embodiments
is not passed, or if an entry is missing, it will be populated as needed using the method _default_embodiment
.
__call__
__call__(unitary, basis_fidelity=None, approximate=True, use_dag=False)
Fashions a circuit which (perhaps approximately) models the special unitary operation unitary
, using the circuit templates supplied at initialization as embodiments
. The routine uses basis_fidelity
to select the optimal circuit template, including when performing exact synthesis; the contents of basis_fidelity
is a dictionary mapping interaction strengths (scaled so that corresponds to ) to circuit fidelities.
Parameters
- unitary (Operator or ndarray) – unitary to synthesize.
- basis_fidelity (dict orfloat) – Fidelity of basis gates. Can be either (1) a dictionary mapping
XX
angle values to fidelity at that angle; or (2) a single floatf
, interpreted as{pi: f, pi/2: f/2, pi/3: f/3}
. If given, overrides the basis_fidelity given at init. - approximate (bool) – Approximates if basis fidelities are less than 1.0 .
- use_dag (bool) – If true a
DAGCircuit
is returned instead of aQuantumCircuit
when this class is called.
Returns
Synthesized circuit.
Return type
Methods
num_basis_gates
num_basis_gates(unitary)
Counts the number of gates that would be emitted during re-synthesis.
Note
This method is used by ConsolidateBlocks
.
Was this page helpful?
Report a bug or request content on GitHub.