Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Other combinations for decomposition to rotation matrices #71

Open
purva-thakre opened this issue Jul 6, 2021 · 6 comments
Open

Other combinations for decomposition to rotation matrices #71

purva-thakre opened this issue Jul 6, 2021 · 6 comments
Assignees

Comments

@purva-thakre
Copy link
Contributor

In the single qubit gate decomposition module, if the gate is supposed to decomposed to product of rotation matrices then two possibilities are ZYZ and ZXZ.

Map the angles from ZYZ to other combinations - YXY, YZY, XZX, XYX.

@purva-thakre purva-thakre self-assigned this Jul 6, 2021
@purva-thakre
Copy link
Contributor Author

Possible combinations (screenshot from page 6).

image

If instead of using _angles_for_ZYZ, want to calculate the angles for each combination individually, Appendix A of linked doc has the calculations. The only issue here is that the rotation matrices used are SO(3) but the rotation matrices of interest are SU(2). It might be easier to define a mapping function between the two groups as they are isomorphic i.e. there should exist an equivalence between their respective adjoint representations.

@BoxiLi
Copy link
Member

BoxiLi commented Oct 27, 2021

Is there a way to define only a few of them explicitly and then use unitary transformation to get the rest of them? Although unitary transformation may introduce some minor numerical error, having 12 distinct implementations seems very hard to maintain and debug.

@purva-thakre
Copy link
Contributor Author

Yeah, I have been working over the calculations. I am trying to figure out which ones need to be specified explicitly or if all can be calculated via zyz.

12 distinct implementations seems very hard to maintain and debug

Thought the same after I made my previous comment. If I use these for ABC decomposition as well then there will be 24 private functions in total !! It's better to do the calculations and create a dictionary of the angles for each combination.

@Buffoni
Copy link

Buffoni commented May 11, 2022

Hey @purva-thakre @BoxiLi , I'm interested in contributing to this package and doing a project for GSoC '22
Since this issue doesn't seem to be resolved yet could I jump in and help?

We can probably create a method _angles_for_rotation that defaults to output the angles of a zyz rotation and make the other ones available as alternative decomposition if requested by the user. It shouldn't be too difficult to do the calculations from that paper.

@purva-thakre
Copy link
Contributor Author

Hi @Buffoni ! I have worked on a working form of this. Haven't had the chance to push it yet because first I need to fix a phase error in the existing ZYZ method.

@Buffoni
Copy link

Buffoni commented May 12, 2022

Ok, I'll see how I can contribute to other issues or open a new one, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants