Skip to main contentIBM Quantum Documentation

XXDecomposer

qiskit.synthesis.XXDecomposer(basis_fidelity=1.0, euler_basis='U', embodiments=None, backup_optimizer=None)GitHub(opens in a new tab)

Bases: object(opens in a new tab)

A class for optimal decomposition of 2-qubit unitaries into 2-qubit basis gates of XX type (i.e., each locally equivalent to CAN(α,0,0)CAN(\alpha, 0, 0) for a possibly varying alphaalpha).

Parameters

  • basis_fidelity (dict(opens in a new tab) |float(opens in a new tab)) – 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 float f, interpreted as {pi: f, pi/2: f/2, pi/3: f/3}.
  • euler_basis (str(opens in a new tab)) – Basis string provided to OneQubitEulerDecomposer for 1Q synthesis. Defaults to "U".
  • embodiments (dict(opens in a new tab)[float(opens in a new tab), QuantumCircuit] | None) – A dictionary mapping interaction strengths alpha to native circuits which embody the gate CAN(α,0,0)CAN(\alpha, 0, 0). Strengths are taken so that pi/2pi/2 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 XX(π/2)XX(\pi/2), 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.


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?