Skip to main content
IBM Quantum Platform
이 페이지는 Qiskit SDK의 이전 버전입니다. 최신 버전으로 이동

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 (U3U3, U1XU1X, RRRR), the ZYZZYZ Euler parameters are used.

Basis
Euler Angle Basis
Decomposition Circuit
‘ZYZ’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγRZ(ϕ).RY(θ).RZ(λ)e^{i\gamma} R_Z(\phi).R_Y(\theta).R_Z(\lambda)
‘ZXZ’Z(ϕ)X(θ)Z(λ)Z(\phi) X(\theta) Z(\lambda)eiγRZ(ϕ).RX(θ).RZ(λ)e^{i\gamma} R_Z(\phi).R_X(\theta).R_Z(\lambda)
‘XYX’X(ϕ)Y(θ)X(λ)X(\phi) Y(\theta) X(\lambda)eiγRX(ϕ).RY(θ).RX(λ)e^{i\gamma} R_X(\phi).R_Y(\theta).R_X(\lambda)
‘XZX’X(ϕ)Z(θ)X(λ)X(\phi) Z(\theta) X(\lambda)eiγRX(ϕ).RZ(θ).RX(λ)e^{i\gamma} R_X(\phi).R_Z(\theta).R_X(\lambda)
‘U3’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγU3(θ,ϕ,λ)e^{i\gamma} U_3(\theta,\phi,\lambda)
‘U321’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγU3(θ,ϕ,λ)e^{i\gamma} U_3(\theta,\phi,\lambda)
‘U’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγU3(θ,ϕ,λ)e^{i\gamma} U_3(\theta,\phi,\lambda)
‘PSX’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγU1(ϕ+π).RX(π2).e^{i\gamma} U_1(\phi+\pi).R_X\left(\frac{\pi}{2}\right). U1(θ+π).RX(π2).U1(λ)U_1(\theta+\pi).R_X\left(\frac{\pi}{2}\right).U_1(\lambda)
‘ZSX’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγRZ(ϕ+π).X.e^{i\gamma} R_Z(\phi+\pi).\sqrt{X}. RZ(θ+π).X.RZ(λ)R_Z(\theta+\pi).\sqrt{X}.R_Z(\lambda)
‘ZSXX’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγRZ(ϕ+π).X.RZ(θ+π).X.RZ(λ)e^{i\gamma} R_Z(\phi+\pi).\sqrt{X}.R_Z(\theta+\pi).\sqrt{X}.R_Z(\lambda) or eiγRZ(ϕ+π).X.RZ(λ)e^{i\gamma} R_Z(\phi+\pi).X.R_Z(\lambda)
‘U1X’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγU1(ϕ+π).RX(π2).e^{i\gamma} U_1(\phi+\pi).R_X\left(\frac{\pi}{2}\right). U1(θ+π).RX(π2).U1(λ)U_1(\theta+\pi).R_X\left(\frac{\pi}{2}\right).U_1(\lambda)
‘RR’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγR(π,ϕλ+π2).e^{i\gamma} R\left(-\pi,\frac{\phi-\lambda+\pi}{2}\right). R(θ+π,π2λ)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

  • 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.

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×22\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×22\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

QuantumCircuit | DAGCircuit

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.