pyzx
pyzx copied to clipboard
Document features that currently have no documentation
Over the years, several additional features have been merged into PyZX that have never had documentation written for them. These include:
- CNOT circuit routing, as implemented in the
pyzx.routing
subfolder by @Aerylia. - The handling of mixed classical-quantum circuits, as implemented by @ABorgna.
- Simplification of diagrams using genetic algorithms, as implemented in the
pyzx.local_search
subfolder by Ryan Krueger.
For unitaryHACK, it would be great if someone were to document one or more of these features.
Hey @jvdwetering I hope you are doing well. We as a team of three have been exploring this field of ZX calculus from the past few months. We are so thrilled after seeing a project related to this on unitary hack. We really want to take this on and write the documentation. Can you please let me know I and my team members can be allocated to this issue? Thank you so much!!
Hi @Qubit1718,
Anyone can contribute to this issue during unitaryHACK, taking place 3-17 June. There is not formal allocation process, just be the first to have an accepted PR and win the bounty. See https://unitaryhack.dev and/or contact the unitaryHACK team if you have a question about the rules.
Best,
Aleks
Hi Aleks,
Thank you so much for the information about the Unitary Hack and its process.
Can you please let me know any more information about this PR that you feel we should know in order to start our work? Any tips or suggestions will be constructive.
Best and Kind Regards,
Sai Nandan Morapakula
Hi Sai,
The first two of the features I've mentioned have an associated paper, while the last has a Master thesis about it: https://arxiv.org/abs/1904.00633 https://arxiv.org/abs/2109.06071 (I can't access the thesis now, but I can get it for you if you want it).
I don't know the ins-and-outs of these features either, so your best bet would probaby be to see if @Aerylia or @ABorgna are available for help/discussions. You could also pop in on the ZX-calculus Discord where they are semi-active. I can also see if Ryan Krueger is happy to help (you can also look at the demos/LocalSearch.ipynb file for this feature).
As a starting point, you might want to create a demo Jupyter Notebook using the feature, then based on that you might want to write the Spinx documentation. If you want, you can also consider implementing #59 and also updating the other documentation.
As John said, I'm available for discussing the quantum-classical part on discord or by email if you need :)
Hi @jvdwetering
That's a lot of information and I would like to go with one at a time. I will definitely reach out to you when I need the master thesis as you mentioned above. I will start working on this. Thank you so much once again!!
Thanks, @ABorgna for your support. I am currently going through the paper John mentioned above to get a better picture of what's happening in the Routing folder. I will text you in discord or drop a mail once done :))
I'm very busy these weeks, but I'll do what I can to help. Feel free to ask any questions
Hi @jvdwetering, if it's still available I'd be interested in writing documentation for PyZX's handling of mixed classical-quantum circuit simplification (by @ABorgna)
Yup, that's still available :)
Great! I'll get started with the paper
PR #156 is going to add a bunch of OpenQASM standard library gates. It would be nice for them to be documented in a notebook showing the circuits/zx-diagrams and (when applicable) the matrices. (Also, PR #152 will add nbsphinx support to the docs.)
@ABorgna Where can I find more info on how mixed classical-quantum circuits are handled in PyZX?
PR #156 is going to add a bunch of OpenQASM standard library gates. It would be nice for them to be documented in a notebook showing the circuits/zx-diagrams and (when applicable) the matrices.
Just a follow-up note that this was done in #197 (the notebook is here).