OneQubitEulerDecomposer#

class qiskit.quantum_info.OneQubitEulerDecomposer(basis='U3', use_dag=False)[ソース]#

ベースクラス: 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.

Table 14 Supported circuit bases#

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)\)

『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)\)

Initialize decomposer

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

パラメータ:
  • basis (str) – the decomposition basis [Default: 『U3』]

  • use_dag (bool) – If true the output from calls to the decomposer will be a DAGCircuit object instead of QuantumCircuit.

例外:

QiskitError – If input basis is not recognized.

Attributes

basis#

The decomposition basis.

Methods

angles(unitary)[ソース]#

Return the Euler angles for input array.

パラメータ:

unitary (np.ndarray) – 2x2 unitary matrix.

戻り値:

(theta, phi, lambda).

戻り値の型:

tuple

angles_and_phase(unitary)[ソース]#

Return the Euler angles and phase for input array.

パラメータ:

unitary (np.ndarray) – 2x2 unitary matrix.

戻り値:

(theta, phi, lambda, phase).

戻り値の型:

tuple

build_circuit(gates, global_phase)[ソース]#

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