115 lines
5.9 KiB
Plaintext
115 lines
5.9 KiB
Plaintext
---
|
||
title: OneQubitEulerDecomposer
|
||
description: API reference for qiskit.quantum_info.OneQubitEulerDecomposer
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.quantum_info.OneQubitEulerDecomposer
|
||
---
|
||
|
||
<span id="qiskit-quantum-info-onequbiteulerdecomposer" />
|
||
|
||
# qiskit.quantum\_info.OneQubitEulerDecomposer
|
||
|
||
<Class id="qiskit.quantum_info.OneQubitEulerDecomposer" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.16/qiskit/quantum_info/synthesis/one_qubit_decompose.py" signature="OneQubitEulerDecomposer(basis='U3')" modifiers="class">
|
||
A class for decomposing 1-qubit unitaries into Euler angle rotations.
|
||
|
||
The resulting decomposition is parameterized by 3 Euler rotation angle parameters $(\theta, \phi, \lambda)$, and a phase parameter $\gamma$. The value of the parameters for an input unitary depends on the decomposition basis. Allowed bases and the resulting circuits are shown in the following table. Note that for the non-Euler bases (U3, U1X, RR), the ZYZ euler parameters are used.
|
||
|
||
| Basis | Euler Angle Basis | Decomposition Circuit |
|
||
| ----- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
|
||
| ‘ZYZ’ | $Z(\phi) Y(\theta) Z(\lambda)$ | $e^{i\gamma} R_Z(\phi).R_Y(\theta).R_Z(\lambda)$ |
|
||
| ‘ZXZ’ | $Z(\phi) X(\theta) Z(\lambda)$ | $e^{i\gamma} R_Z(\phi).R_X(\theta).R_Z(\lambda)$ |
|
||
| ‘XYX’ | $X(\phi) Y(\theta) X(\lambda)$ | $e^{i\gamma} R_X(\phi).R_Y(\theta).R_X(\lambda)$ |
|
||
| ‘U3’ | $Z(\phi) Y(\theta) Z(\lambda)$ | $e^{i\gamma} U_3(\theta,\phi,\lambda)$ |
|
||
| ‘U’ | $Z(\phi) Y(\theta) Z(\lambda)$ | $e^{i\gamma} U_3(\theta,\phi,\lambda)$ |
|
||
| ‘PSX’ | $Z(\phi) Y(\theta) Z(\lambda)$ | $e^{i\gamma} U_1(\phi+\pi).R_X\left(\frac{\pi}{2}\right).$ $U_1(\theta+\pi).R_X\left(\frac{\pi}{2}\right).U_1(\lambda)$ |
|
||
| ‘ZSX’ | $Z(\phi) Y(\theta) Z(\lambda)$ | $e^{i\gamma} U_1(\phi+\pi).R_X\left(\frac{\pi}{2}\right).$ $R_Z(\theta+\pi).S_X\left(\frac{\pi}{2}\right).U_1(\lambda)$ |
|
||
| ‘U1X’ | $Z(\phi) Y(\theta) Z(\lambda)$ | $e^{i\gamma} U_1(\phi+\pi).R_X\left(\frac{\pi}{2}\right).$ $U_1(\theta+\pi).R_X\left(\frac{\pi}{2}\right).U_1(\lambda)$ |
|
||
| ‘RR’ | $Z(\phi) Y(\theta) Z(\lambda)$ | $e^{i\gamma} R\left(-\pi,\frac{\phi-\lambda+\pi}{2}\right).$ $R\left(\theta+\pi,\frac{\pi}{2}-\lambda\right)$ |
|
||
|
||
Initialize decomposer
|
||
|
||
Supported bases are: ‘U’, ‘PSX’, ‘ZSX’, ‘U3’, ‘U1X’, ‘RR’, ‘ZYZ’, ‘ZXZ’, ‘XYX’.
|
||
|
||
**Parameters**
|
||
|
||
**basis** (*str*) – the decomposition basis \[Default: ‘U3’]
|
||
|
||
**Raises**
|
||
|
||
**QiskitError** – If input basis is not recognized.
|
||
|
||
### \_\_init\_\_
|
||
|
||
<Function id="qiskit.quantum_info.OneQubitEulerDecomposer.__init__" signature="__init__(basis='U3')">
|
||
Initialize decomposer
|
||
|
||
Supported bases are: ‘U’, ‘PSX’, ‘ZSX’, ‘U3’, ‘U1X’, ‘RR’, ‘ZYZ’, ‘ZXZ’, ‘XYX’.
|
||
|
||
**Parameters**
|
||
|
||
**basis** (*str*) – the decomposition basis \[Default: ‘U3’]
|
||
|
||
**Raises**
|
||
|
||
**QiskitError** – If input basis is not recognized.
|
||
</Function>
|
||
|
||
## Methods
|
||
|
||
| | |
|
||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
|
||
| [`__init__`](#qiskit.quantum_info.OneQubitEulerDecomposer.__init__ "qiskit.quantum_info.OneQubitEulerDecomposer.__init__")(\[basis]) | Initialize decomposer |
|
||
| [`angles`](#qiskit.quantum_info.OneQubitEulerDecomposer.angles "qiskit.quantum_info.OneQubitEulerDecomposer.angles")(unitary) | Return the Euler angles for input array. |
|
||
| [`angles_and_phase`](#qiskit.quantum_info.OneQubitEulerDecomposer.angles_and_phase "qiskit.quantum_info.OneQubitEulerDecomposer.angles_and_phase")(unitary) | Return the Euler angles and phase for input array. |
|
||
|
||
## Attributes
|
||
|
||
| | |
|
||
| ----------------------------------------------------------------------------------------------------------------- | ------------------------ |
|
||
| [`basis`](#qiskit.quantum_info.OneQubitEulerDecomposer.basis "qiskit.quantum_info.OneQubitEulerDecomposer.basis") | The decomposition basis. |
|
||
|
||
### angles
|
||
|
||
<Function id="qiskit.quantum_info.OneQubitEulerDecomposer.angles" signature="angles(unitary)">
|
||
Return the Euler angles for input array.
|
||
|
||
**Parameters**
|
||
|
||
**unitary** (*np.ndarray*) – 2x2 unitary matrix.
|
||
|
||
**Returns**
|
||
|
||
(theta, phi, lambda).
|
||
|
||
**Return type**
|
||
|
||
tuple
|
||
</Function>
|
||
|
||
### angles\_and\_phase
|
||
|
||
<Function id="qiskit.quantum_info.OneQubitEulerDecomposer.angles_and_phase" signature="angles_and_phase(unitary)">
|
||
Return the Euler angles and phase for input array.
|
||
|
||
**Parameters**
|
||
|
||
**unitary** (*np.ndarray*) – 2x2 unitary matrix.
|
||
|
||
**Returns**
|
||
|
||
(theta, phi, lambda, phase).
|
||
|
||
**Return type**
|
||
|
||
tuple
|
||
</Function>
|
||
|
||
### basis
|
||
|
||
<Attribute id="qiskit.quantum_info.OneQubitEulerDecomposer.basis">
|
||
The decomposition basis.
|
||
</Attribute>
|
||
</Class>
|
||
|