UniformRotation¶
This module implements the uniform rotation gate defined by Möttönen et. al. (10.1103/PhysRevLett.93.130502).
There are many convenience functions also being monkey patched.
Convenience function to get a list of numbers from 0 to 2**number_qubits - 1 :param number_qubits: exponent :return: list of numbers |
|
Cyclic Gray Code of number :param number: input number :return: Gray Code |
|
The matrix for the angle computation :param row: row number (one based!) :param col: column number (one based!) :return: matrix entry |
|
Compute the rotational angles from alpha :param alpha: the input uniform rotation angles :return: the single qubit rotation angles |
|
Calculates pairwise consecutive pairs of an iterable s -> (s0,s1), (s1,s2), (s2, s3), . |
|
Uniform rotation gate (Möttönen). |
|
Apply a generic uniform rotation with rotation gate. |
|
Apply the dagger (inverse) of a generic uniform rotation with rotation gate. |
|
Apply a uniform rotation around z. |
|
Apply dagger (inverse) of a uniform rotation around z. |
|
Apply a uniform rotation around y. |
|
Apply the dagger (inverse) of a uniform rotation around y. |
|
Multi-Controlled X-Gate (via Möttönen). |
Here are the details:
binary_codes¶
gray_code¶
matrix_M_entry¶
compute_theta¶
pairwise¶
UniformRotationGate¶
uni_rot¶
-
dc_qiskit_algorithms.UniformRotation.
uni_rot
(self, rotation_gate, alpha, control_qubits, tgt)[source]¶ Apply a generic uniform rotation with rotation gate. :param self: either a composite gate or a circuit :param rotation_gate: A single qubit rotation gate :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
uni_rot_dg¶
-
dc_qiskit_algorithms.UniformRotation.
uni_rot_dg
(self, rotation_gate, alpha, control_qubits, tgt)[source]¶ Apply the dagger (inverse) of a generic uniform rotation with rotation gate. :param self: either a composite gate or a circuit :param rotation_gate: A single qubit rotation gate :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
unirz¶
-
dc_qiskit_algorithms.UniformRotation.
unirz
(self, alpha, control_qubits, tgt)[source]¶ Apply a uniform rotation around z. :param self: either a composite gate or a circuit :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
unirz_dg¶
-
dc_qiskit_algorithms.UniformRotation.
unirz_dg
(self, alpha, control_qubits, tgt)[source]¶ Apply dagger (inverse) of a uniform rotation around z. :param self: either a composite gate or a circuit :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
uniry¶
-
dc_qiskit_algorithms.UniformRotation.
uniry
(self, alpha, control_qubits, tgt)[source]¶ Apply a uniform rotation around y. :param self: either a composite gate or a circuit :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
uniry_dg¶
-
dc_qiskit_algorithms.UniformRotation.
uniry_dg
(self, alpha, control_qubits, tgt)[source]¶ Apply the dagger (inverse) of a uniform rotation around y. :param self: either a composite gate or a circuit :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
MultiControlledXGate¶
ccx¶
ccx_dg¶
-
dc_qiskit_algorithms.UniformRotation.
binary_codes
(number_qubits)[source]¶ Convenience function to get a list of numbers from 0 to 2**number_qubits - 1 :param number_qubits: exponent :return: list of numbers
-
dc_qiskit_algorithms.UniformRotation.
gray_code
(number)[source]¶ Cyclic Gray Code of number :param number: input number :return: Gray Code
-
dc_qiskit_algorithms.UniformRotation.
matrix_M_entry
(row, col)[source]¶ The matrix for the angle computation :param row: row number (one based!) :param col: column number (one based!) :return: matrix entry
-
dc_qiskit_algorithms.UniformRotation.
compute_theta
(alpha)[source]¶ Compute the rotational angles from alpha :param alpha: the input uniform rotation angles :return: the single qubit rotation angles
-
dc_qiskit_algorithms.UniformRotation.
pairwise
(iterable)[source]¶ Calculates pairwise consecutive pairs of an iterable s -> (s0,s1), (s1,s2), (s2, s3), … :param iterable: any iterable :return: an iterable of tuples
-
class
dc_qiskit_algorithms.UniformRotation.
UniformRotationGate
(gate, alpha)[source]¶ Uniform rotation gate (Möttönen).
-
dc_qiskit_algorithms.UniformRotation.
uni_rot
(self, rotation_gate, alpha, control_qubits, tgt)[source]¶ Apply a generic uniform rotation with rotation gate. :param self: either a composite gate or a circuit :param rotation_gate: A single qubit rotation gate :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
-
dc_qiskit_algorithms.UniformRotation.
uni_rot_dg
(self, rotation_gate, alpha, control_qubits, tgt)[source]¶ Apply the dagger (inverse) of a generic uniform rotation with rotation gate. :param self: either a composite gate or a circuit :param rotation_gate: A single qubit rotation gate :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
-
dc_qiskit_algorithms.UniformRotation.
unirz
(self, alpha, control_qubits, tgt)[source]¶ Apply a uniform rotation around z. :param self: either a composite gate or a circuit :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
-
dc_qiskit_algorithms.UniformRotation.
unirz_dg
(self, alpha, control_qubits, tgt)[source]¶ Apply dagger (inverse) of a uniform rotation around z. :param self: either a composite gate or a circuit :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
-
dc_qiskit_algorithms.UniformRotation.
uniry
(self, alpha, control_qubits, tgt)[source]¶ Apply a uniform rotation around y. :param self: either a composite gate or a circuit :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
-
dc_qiskit_algorithms.UniformRotation.
uniry_dg
(self, alpha, control_qubits, tgt)[source]¶ Apply the dagger (inverse) of a uniform rotation around y. :param self: either a composite gate or a circuit :param alpha: conditional rotation angles :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
-
dc_qiskit_algorithms.UniformRotation.
cnry
(self, theta, control_qubits, tgt)[source]¶ Apply a multiple controlled y rotation on the target qubit. :param self: either a composite gate or a circuit :param theta: rotation angle :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
-
dc_qiskit_algorithms.UniformRotation.
cnry_dg
(self, theta, control_qubits, tgt)[source]¶ Apply the dagger (inverse) of a multiple controlled y rotation on the target qubit. :param self: either a composite gate or a circuit :param theta: rotation angle :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
-
class
dc_qiskit_algorithms.UniformRotation.
MultiControlledXGate
(conditional_case, control_qubits)[source]¶ Multi-Controlled X-Gate (via Möttönen).
-
dc_qiskit_algorithms.UniformRotation.
ccx_uni_rot
(self, conditional_case, control_qubits, tgt)[source]¶ Apply a multi-controlled X gate depending on conditional binary representation :param self: either a composite gate or a circuit :param conditional_case: the controlled case (1 or 0) in binary :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit
-
dc_qiskit_algorithms.UniformRotation.
ccx_uni_rot_dg
(self, conditional_case, control_qubits, tgt)[source]¶ Apply the dagger (inverse) a multi-controlled X gate depending on conditional binary representation :param self: either a composite gate or a circuit :param conditional_case: the controlled case (1 or 0) in binary :param control_qubits: control qubits :param tgt: target :return: applied composite gate or circuit