qoqo.operations.ControlledRotateXY
- class qoqo.operations.ControlledRotateXY
Implements the controlled RotateXY operation.
The unitary matrix representation is:
\[\begin{split}U = /begin{pmatrix} 1 & 0 & 0 & 0 \\\\ 0 & 1 & 0 & 0 \\\\ 0 & 0 & \cos(\frac{\theta}{2}) & -i e^{-i \phi} \sin(\frac{\theta}{2}) \\\\ 0 & 0 & -i e^{-i \phi} \sin(\frac{\theta}{2}) & \cos(\frac{\theta}{2}) \end{pmatrix}\end{split}\]- Parameters:
control (int) – The index of the most significant qubit in the unitary representation. Here, the qubit that controls the application of the Rotatex Operation on the target qubit.
target (int) –
theta (CalculatorFloat) – The angle $theta$ of the rotation.
phi (CalculatorFloat) – The rotation axis, in spherical coordinates \(\phi_{sph}\) gives the angle in the x-y plane.
- __init__()
Methods
__init__
()control
()Returns control qubit of the two-qubit operation
hqslang
()Returns hqslang name of Operation
List all involved Qubits
Returns true if operation contains symbolic parameters
phi
()Returns value of attribute phi
powercf
(power)Returns Rotated gate raised to power
remap_qubits
(mapping)Remap qubits
substitute_parameters
(substitution_parameters)Substitutes internal symbolic parameters with float values
tags
()Returns tags identifying the Operation
target
()Returns target qubit of the two-qubit operation
theta
()Returns angle of rotation
Return unitary matrix of gate.
- control()
Returns control qubit of the two-qubit operation
- hqslang()
Returns hqslang name of Operation
- Returns:
The name
- Return type:
str
- involved_qubits()
List all involved Qubits
- Returns:
The involved qubits as a set or ‘ALL’ if all qubits are involved
- Return type:
Union[set[int], str]
- is_parametrized()
Returns true if operation contains symbolic parameters
- Returns:
bool
- phi()
Returns value of attribute phi
- powercf(power)
Returns Rotated gate raised to power
- Parameters:
power (CalculatorFloat) – exponent of the power operation.
- Returns:
gate raised to the power of power
- Return type:
Self
- remap_qubits(mapping)
Remap qubits
- Parameters:
mapping (dict[int, int]) – The mapping
- Returns:
The operation with the remapped qubits
- Return type:
Operation
- Raises:
RuntimeError – Qubit remapping failed
- substitute_parameters(substitution_parameters)
Substitutes internal symbolic parameters with float values
Only available when all symbolic expressions can be evaluated to float with the provided parameters.
- Parameters:
substitution_parameters (dict[str, float]) – The substituted free parameters
- Returns:
The operation with the parameters substituted
- Return type:
Operation
- Raises:
RuntimeError – Parameter Substitution failed
- tags()
Returns tags identifying the Operation
- Returns:
The tags identifying the operation
- Return type:
list[str]
- target()
Returns target qubit of the two-qubit operation
- theta()
Returns angle of rotation
- unitary_matrix()
Return unitary matrix of gate.
- Returns:
np.ndarray
- Raises:
ValueError – Error symbolic operation cannot return float unitary matrix