---
title: TwoQubitWeylDecomposition (v2.0)
description: API reference for qiskit.synthesis.TwoQubitWeylDecomposition in qiskit v2.0
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/2.0/qiskit.synthesis.TwoQubitWeylDecomposition
---

# TwoQubitWeylDecomposition

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

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.0/qiskit/synthesis/two_qubit/two_qubit_decompose.py#L105-L265)

Bases: [`object`](https://docs.python.org/3/library/functions.html#object)

Two-qubit Weyl decomposition.

Decompose two-qubit unitary

$$
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

$$
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”

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

## Attributes

**Parameters**

- **unitary\_matrix** ([*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray)) –
- **fidelity** ([*float*](https://docs.python.org/3/library/functions.html#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](https://github.com/Qiskit/qiskit/tree/stable/2.0/qiskit/synthesis/two_qubit/two_qubit_decompose.py#L212-L216)

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

**Return type**

[float](https://docs.python.org/3/library/functions.html#float)

### circuit

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

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.0/qiskit/synthesis/two_qubit/two_qubit_decompose.py#L203-L210)

Returns Weyl decomposition in circuit form.

**Parameters**

- **euler\_basis** ([*str*](https://docs.python.org/3/library/stdtypes.html#str) *| None*) –
- **simplify** ([*bool*](https://docs.python.org/3/library/functions.html#bool)) –
- **atol** ([*float*](https://docs.python.org/3/library/functions.html#float)) –

**Return type**

[QuantumCircuit](/docs/api/qiskit/2.0/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")

### from\_bytes

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

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.0/qiskit/synthesis/two_qubit/two_qubit_decompose.py#L244-L259)

Decode bytes into [`TwoQubitWeylDecomposition`](#qiskit.synthesis.TwoQubitWeylDecomposition "qiskit.synthesis.TwoQubitWeylDecomposition").

**Parameters**

- **bytes\_in** ([*bytes*](https://docs.python.org/3/library/stdtypes.html#bytes)) –
- **requested\_fidelity** ([*float*](https://docs.python.org/3/library/functions.html#float)) –
- **\_specialization** (*two\_qubit\_decompose.Specialization | None*) –

**Return type**

[TwoQubitWeylDecomposition](#qiskit.synthesis.TwoQubitWeylDecomposition "qiskit.synthesis.TwoQubitWeylDecomposition")

### specialize

`specialize()`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.0/qiskit/synthesis/two_qubit/two_qubit_decompose.py#L194-L201)

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.
