# Why are there such different UGate and U3Gate implementations in the Qiskit documentation?

The documentation for the new version Qiskit 0.20.0 states that:

• UGate is "Implemented using two X90 pulses on IBM Quantum systems:

$$U(θ,ϕ,λ)=RZ(ϕ−π/2)RX(π/2)RZ(π−θ)RX(π/2)RZ(λ−π/2)$$"

• U3Gate is "Implemented using two X90 pulses on IBM Quantum systems:

$$U3(θ,ϕ,λ)=RZ(ϕ)RX(−π/2)RZ(θ)RX(π/2)RZ(λ)$$"

It looks like only the latter matches the known rotation sequence for U3: $$z$$-rotation ($$\lambda$$), $$y$$-rotation ($$\theta$$), $$z$$-rotation ($$\varphi$$)

Although their presentation matrices completely coincide: $$\mathrm{U3}= \mathrm{U}= \begin{pmatrix} \cos(\theta/2) & -\mathrm{e}^{i\lambda}\sin(\theta/2) \\ \mathrm{e}^{i\phi}\sin(\theta/2) & \mathrm{e}^{i(\phi+\lambda)}\cos(\theta/2) \end{pmatrix}.$$

Is this an inaccuracy in the documentation or am I missing something and these gates are actually different?

Just in case, the aforementioned difference stated in the documentation refers to the hardware (not software) implementation of these gates on IBM Q systems.

If you look at the source code then you will see that the UGate is defined as an alias for the U3Gate. As to why do they need this alias, I do not know for sure. But if I were to hazard a guess, then it would be because in most quantum computing literature, $$U$$ is used to refer to an arbitrary unitary gate/operator. Since in qiskit U3Gate is the most generic single qubit unitary gate, it makes sense to identify it with $$U$$ from quantum computing literature.