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

Implement graphical fourier transform and inverse #92

Open
akissinger opened this issue May 18, 2022 · 5 comments
Open

Implement graphical fourier transform and inverse #92

akissinger opened this issue May 18, 2022 · 5 comments
Labels
enhancement New feature or request unitaryhack-bounty An issue with an associated bounty from unitaryHACK

Comments

@akissinger
Copy link
Member

Implement the graphical Fourier transform, and its inverse. This would allow converting back and forth between ZX and ZH diagrams.

See the paper: Graphical Fourier Theory and the Cost of Quantum Addition.

A subtle point when working with ZH diagrams in pyzx: the pyzx Graph data structure does not support parallel edges. However, sometimes parallel edges are unavoidable between H-boxes. As a result, some care should be taken in how rewrites involving H-boxes are implemented to work around this (e.g. by introducing an identity-spider on one of the edges).

@akissinger akissinger added enhancement New feature or request unitaryhack-bounty An issue with an associated bounty from unitaryHACK labels May 18, 2022
@AryanJ13
Copy link

AryanJ13 commented Jun 2, 2022

Hello, I would love to work on this.
Can you please share some guide or sample for me to look into and prep

@jvdwetering
Copy link
Collaborator

Hoi Aryan, how familiar are you with ZX/ZH? If you are not that familiar with it, this might not be the best issue to start with it.
If you want to work on this, you could first read (parts of) https://arxiv.org/abs/2012.13966, specifically Section 8, specifically Section 8.4.

You could either start by implementing just the decomposition of the 3-ary H-box, or immediately try to do the general case.

@nickdgardner
Copy link

Hi, is this issue still open for contributors? I'd be interested in implement this to get a better feel for how ZX/ZH relate. I have basic familiarity with both.

@jvdwetering
Copy link
Collaborator

I believe someone started on this a long time ago, and showed me showed progress. But I haven't heard from this in months, and it is not pushed, so go for it!

@nickdgardner
Copy link

Ok cool! Looking forward to working on this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request unitaryhack-bounty An issue with an associated bounty from unitaryHACK
Projects
None yet
Development

No branches or pull requests

4 participants