mimiqcircuits.operations.gates.standard.deprecated¶
Deprecated gates (U1, U2, U3).
Classes
|
Single qubit generic unitary gate \({U_1}\). |
|
Single qubit generic unitary gate \({U_2}\). |
|
Single qubit generic unitary gate \({U_3}\). |
- class mimiqcircuits.operations.gates.standard.deprecated.GateU1(lmbda)[source]¶
Bases:
GateSingle qubit generic unitary gate \({U_1}\).
Equivalent to
GateP()Matrix representation:
\[\begin{split}\operatorname{U1}(\lambda) = \begin{pmatrix} 1 & 0 \\ 0 & e^{i\lambda} \end{pmatrix}\end{split}\]- Parameters:
lambda (float) – Euler angle 3 in radians.
Examples
>>> from mimiqcircuits import * >>> from symengine import * >>> lmbda = Symbol('lambda') >>> GateU1(lmbda) U1(lambda) >>> GateU1(lmbda).matrix() [1.0, 0] [0, exp(I*lambda)] >>> c = Circuit().push(GateU1(lmbda), 0) >>> c 1-qubit circuit with 1 instruction: └── U1(lambda) @ q[0] >>> GateU1(lmbda).power(2), GateU1(lmbda).inverse() (U1(2*lambda), U1(-lambda)) >>> GateU1(lmbda).decompose() 1-qubit circuit with 1 instruction: └── U(0, 0, lambda, 0.0) @ q[0]
- inverse()[source]¶
Raise an error, as non-unitary operators cannot be inverted.
This method is not implemented for non-unitary operators and will raise a NotImplementedError if called.
- Raises:
NotImplementedError – If the method is called.
- class mimiqcircuits.operations.gates.standard.deprecated.GateU2(phi, lmbda)[source]¶
Bases:
GateSingle qubit generic unitary gate \({U_2}\).
Matrix representation:
\[\begin{split}\operatorname{U2}(\phi,\lambda) = \frac{1}{\sqrt{2}}e^{-(\phi+\lambda)/2}\begin{pmatrix} 1 & -e^{i\lambda} \\ e^{i\phi} & e^{i(\phi+\lambda)} \end{pmatrix}\end{split}\]- Parameters:
phi – Euler angle in radians.
lambda – Euler angle in radians.
Examples
>>> from mimiqcircuits import * >>> from symengine import * >>> phi, lmbda = symbols('phi lambda') >>> GateU2(phi, lmbda) U2(phi, lambda) >>> GateU2(phi, lmbda).matrix() [0.707106781186548, -0.707106781186548*exp(I*lambda)] [0.707106781186548*exp(I*phi), 0.707106781186548*exp(I*(lambda + phi))] >>> c = Circuit().push(GateU2(phi, lmbda), 0) >>> c 1-qubit circuit with 1 instruction: └── U2(phi, lambda) @ q[0] >>> GateU2(phi, lmbda).power(2), GateU2(phi, lmbda).inverse() (U2(phi, lambda)**2, U2(-lambda - pi, -phi + pi)) >>> GateU2(phi, lmbda).decompose() 1-qubit circuit with 1 instruction: └── U((1/2)*pi, phi, lambda, 0.0) @ q[0]
- inverse()[source]¶
Raise an error, as non-unitary operators cannot be inverted.
This method is not implemented for non-unitary operators and will raise a NotImplementedError if called.
- Raises:
NotImplementedError – If the method is called.
- class mimiqcircuits.operations.gates.standard.deprecated.GateU3(theta, phi, lmbda)[source]¶
Bases:
GateSingle qubit generic unitary gate \({U_3}\).
This gate is equivalent to
GateU()up to a global phase, \(\operatorname{U3}(\theta,\phi,\lambda) = e^{-i(\phi + \lambda + \theta)/2} \operatorname{U}(\theta,\phi,\lambda)\)Matrix representation:
\[\begin{split}\operatorname{U3}(\theta,\phi,\lambda) = \frac{1}{2}e^{-i(\phi + \lambda + \theta)/2} \begin{pmatrix} 1 + e^{i\theta} & -i e^{i\lambda}(1 - e^{i\theta}) \\ i e^{i\phi}(1 - e^{i\theta}) & e^{i(\phi + \lambda)}(1 + e^{i\theta}) \end{pmatrix}\end{split}\]- Parameters:
theta – Euler angle 1 in radians.
phi – Euler angle 2 in radians.
lambda – Euler angle 3 in radians.
Examples
>>> from mimiqcircuits import * >>> from symengine import * >>> theta, phi, lmbda = symbols('theta phi lambda') >>> GateU3(theta, phi, lmbda) U3(theta, phi, lambda) >>> GateU3(theta, phi, lmbda).matrix() [1.0*cos((1/2)*theta), -exp(I*lambda)*sin((1/2)*theta)] [exp(I*phi)*sin((1/2)*theta), exp(I*(lambda + phi))*cos((1/2)*theta)] >>> c = Circuit().push(GateU3(theta, phi, lmbda), 0) >>> GateU3(theta, phi, lmbda).power(2), GateU3(theta, phi, lmbda).inverse() (U3(theta, phi, lambda)**2, U3(-theta, -lambda, -phi)) >>> GateU3(theta, phi, lmbda).decompose() 1-qubit circuit with 1 instruction: └── U(theta, phi, lambda, 0.0) @ q[0]
- inverse()[source]¶
Raise an error, as non-unitary operators cannot be inverted.
This method is not implemented for non-unitary operators and will raise a NotImplementedError if called.
- Raises:
NotImplementedError – If the method is called.