Skip to main contentIBM Quantum Documentation
This page is from the dev version of Qiskit SDK. Go to the stable version

TwoQubitWeylDecomposition

class qiskit.synthesis.TwoQubitWeylDecomposition(unitary_matrix, fidelity=0.999999999, *, _specialization=None)

GitHub

Bases: object

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 class avoids some problems of numerical instability near high-symmetry loci within the Weyl chamber. If there is a high-symmetry gate “nearby” (in terms of the requested average gate fidelity), then it return a canonicalized decomposition of that high-symmetry gate.

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]
  2. B. Kraus, J. I. Cirac, Optimal Creation of Entanglement Using a Two-Qubit Gate, arXiv:0011050 [quant-ph]
  3. B. Drury, P. J. Love, Constructive Quantum Shannon Decomposition from Cartan Involutions, arXiv:0806.4015 [quant-ph]

Attributes

Parameters

  • unitary_matrix (ndarray) –
  • fidelity (float | None) –
  • _specialization (two_qubit_decompose.Specialization | None) –

a

Type: float

b

Type: float

c

Type: float

global_phase

Type: float

K1l

Type: ndarray

K2l

Type: ndarray

K1r

Type: ndarray

K2r

Type: ndarray

unitary_matrix

Type: ndarray

requested_fidelity

Type: float | None

calculated_fidelity

Type: float


Methods

actual_fidelity

actual_fidelity(**kwargs)

GitHub

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

Return type

float

circuit

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

GitHub

Returns Weyl decomposition in circuit form.

Parameters

  • euler_basis (str | None) –
  • simplify (bool) –
  • atol (float) –

Return type

QuantumCircuit

from_bytes

classmethod from_bytes(bytes_in, *, requested_fidelity, _specialization=None, **kwargs)

GitHub

Decode bytes into TwoQubitWeylDecomposition.

Parameters

  • bytes_in (bytes) –
  • requested_fidelity (float) –
  • _specialization (two_qubit_decompose.Specialization | None) –

Return type

TwoQubitWeylDecomposition

specialize

specialize()

GitHub

Make changes to the decomposition to comply with any specializations.

This method will always raise a NotImplementedError because there are no specializations to comply with in the current implementation.

Deprecated since version 1.1.0

The method qiskit.synthesis.two_qubit.two_qubit_decompose.TwoQubitWeylDecomposition.specialize() is deprecated as of Qiskit 1.1.0. It will be removed in the 2.0.0 release.

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