Skip to main contentIBM Quantum Documentation

TwoQubitWeylDecomposition

qiskit.synthesis.TwoQubitWeylDecomposition(unitary_matrix, *, fidelity=0.999999999, _unpickling=False)

GitHub(opens in a new tab)

Bases: object(opens in a new tab)

Two-qubit Weyl decomposition.

Decompose two-qubit unitary

U=(K1lK1r)e(iaXX+ibYY+icZZ)(K2lK2r)U = ({K_1}^l \otimes {K_1}^r) e^{(i a XX + i b YY + i c ZZ)} ({K_2}^l \otimes {K_2}^r)

where

UU(4), K1l,K1r,K2l,K2rSU(2)U \in U(4),~ {K_1}^l, {K_1}^r, {K_2}^l, {K_2}^r \in SU(2)

and we stay in the “Weyl Chamber”

π/4abc\pi /4 \geq a \geq b \geq |c|

This is an abstract factory class that instantiates itself as specialized subclasses based on the fidelity, such that the approximation error from specialization has an average gate fidelity at least as high as requested. The specialized subclasses have unique canonical representations thus avoiding problems of numerical stability.

Passing non-None fidelity to specializations is treated as an assertion, raising QiskitError if forcing the specialization is more approximate than asserted.

References

  1. Cross, A. W., Bishop, L. S., Sheldon, S., Nation, P. D. & Gambetta, J. M., Validating quantum computers using randomized model circuits, arXiv:1811.12926 [quant-ph](opens in a new tab)
  2. B. Kraus, J. I. Cirac, Optimal Creation of Entanglement Using a Two-Qubit Gate, arXiv:0011050 [quant-ph](opens in a new tab)
  3. B. Drury, P. J. Love, Constructive Quantum Shannon Decomposition from Cartan Involutions, arXiv:0806.4015 [quant-ph](opens in a new tab)

Parameters

  • unitary_matrix (ndarray(opens in a new tab)) – The unitary to decompose.
  • fidelity – The target fidelity of the decomposed operation.

Attributes

a

float

b

float

c

float

global_phase

float

K1l

ndarray

K2l

ndarray

K1r

ndarray

K2r

ndarray

unitary_matrix

ndarray

requested_fidelity

float | None

calculated_fidelity

float


Methods

actual_fidelity

actual_fidelity(**kwargs)

GitHub(opens in a new tab)

Calculates the actual fidelity of the decomposed circuit to the input unitary.

Return type

float(opens in a new tab)

circuit

circuit(*, euler_basis=None, simplify=False, atol=1e-12)

GitHub(opens in a new tab)

Returns Weyl decomposition in circuit form.

Return type

QuantumCircuit

from_bytes

classmethod from_bytes(bytes_in, *, requested_fidelity, **kwargs)

GitHub(opens in a new tab)

specialize

specialize()

GitHub(opens in a new tab)

Make changes to the decomposition to comply with any specialization.

Was this page helpful?
Report a bug or request content on GitHub.