UniformlyRyRevision
QuICT.qcda.synthesis.unitary_decomposition.uniformly_ry_revision.UniformlyRyRevision ¶
Bases: object
This part is mainly copied from uniformly_rotation.py Here we demand a CZ gate at the edge of the decomposition, therefore the recursion process is slightly revised.
If qubit_num > 2, synthesized gates would have 2 cz gates at rightmost place. If qubit_num == 2, there would be only 1 cz gate.
References
Decompositions of general quantum gates
http://arxiv.org/abs/quant-ph/0504100v1 Fig4 a)
Source code in QuICT/qcda/synthesis/unitary_decomposition/uniformly_ry_revision.py
execute ¶
uniformlyRyGate
Parameters:
-
angle_list(List[float]) –the angles of Ry Gates
Returns:
-
CompositeGate(CompositeGate) –the synthesis gate list
Source code in QuICT/qcda/synthesis/unitary_decomposition/uniformly_ry_revision.py
uniformly_rotation_cz ¶
uniformly_rotation_cz(low: int, high: int, angles: List[float], is_cz_left: bool = False) -> CompositeGate
synthesis uniformlyRy gate, bits range [low, high)
Parameters:
-
low(int) –the left range low
-
high(int) –the right range high
-
angles(List[float]) –the list of angle y
-
is_cz_left(bool, default:False) –is cx/cz left decomposition
Returns:
-
CompositeGate(CompositeGate) –the synthesis gate list