qoqo.operations.GivensRotationLittleEndian

class qoqo.operations.GivensRotationLittleEndian

The Givens rotation interaction gate in little endian notation: \(e^{-\mathrm{i} \theta (X_c Y_t - Y_c X_t)}\).

Where \(X_c\) is the Pauli matrix \(\sigma^x\) acting on the control qubit and \(Y_t\) is the Pauli matrix \(\sigma^y\) acting on the target qubit.

\[\begin{split}U = \begin{pmatrix} 1 & 0 & 0 & 0 \\\\ 0 & \cos(\theta) & \sin(\theta) & 0 \\\\ 0 & -\sin(\theta) \cdot e^{i \phi} & \cos(\theta) \cdot e^{i \phi} & 0 \\\\ 0 & 0 & 0 & e^{i \phi} \end{pmatrix}\end{split}\]
Parameters:
  • control (int) – The index of the most significant qubit in the unitary representation.

  • target (int) – The index of the least significant qubit in the unitary representation.

  • theta (CalculatorFloat) – The rotation angle \(\theta\).

  • phase (CalculatorFloat) – The phase \(\phi\) of the rotation.

__init__()

Methods

__init__()

control()

Returns control qubit of the two-qubit operation

hqslang()

Returns hqslang name of Operation

involved_qubits()

List all involved Qubits

is_parametrized()

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

unitary_matrix()

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