# OneQubitEulerDecomposer

class qiskit.synthesis.OneQubitEulerDecomposer(basis='U3', use_dag=False)

GitHub

Bases: object

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.

BasisEuler Angle BasisDecomposition 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)$
‘XZX’$X(\phi) Z(\theta) X(\lambda)$$e^{i\gamma} R_X(\phi).R_Z(\theta).R_X(\lambda)$
‘U3’$Z(\phi) Y(\theta) Z(\lambda)$$e^{i\gamma} U_3(\theta,\phi,\lambda)$
‘U321’$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} R_Z(\phi+\pi).\sqrt{X}.$ $R_Z(\theta+\pi).\sqrt{X}.R_Z(\lambda)$
‘ZSXX’$Z(\phi) Y(\theta) Z(\lambda)$$e^{i\gamma} R_Z(\phi+\pi).\sqrt{X}.R_Z(\theta+\pi).\sqrt{X}.R_Z(\lambda)$ or $e^{i\gamma} R_Z(\phi+\pi).X.R_Z(\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)$

### __call__

__call__(unitary, simplify=True, atol=1e-12)

GitHub

Decompose single qubit gate into a circuit.

Parameters

• unitary (Operator |Gate | np.ndarray) – 1-qubit unitary matrix
• simplify (bool) – reduce gate count in decomposition [Default: True].
• atol (float) – absolute tolerance for checking angles when simplifying returned circuit [Default: 1e-12].

Returns

the decomposed single-qubit gate circuit

Return type

QuantumCircuit

Raises

QiskitError – if input is invalid or synthesis fails.

Initialize decomposer

Supported bases are: 'U', 'PSX', 'ZSXX', 'ZSX', 'U321', 'U3', 'U1X', 'RR', 'ZYZ', 'ZXZ', 'XYX', 'XZX'.

Parameters

Raises

QiskitError – If input basis is not recognized.

## Attributes

### basis

The decomposition basis.

## Methods

### angles

angles(unitary)

GitHub

Return the Euler angles for input array.

Parameters

unitary (ndarray) – $2\times2$ unitary matrix.

Returns

(theta, phi, lambda).

Return type

tuple

### angles_and_phase

angles_and_phase(unitary)

GitHub

Return the Euler angles and phase for input array.

Parameters

unitary (ndarray) – $2\times2$

Returns

(theta, phi, lambda, phase).

Return type

tuple

### build_circuit

build_circuit(gates, global_phase)

GitHub

Return the circuit or dag object from a list of gates.

Return type