zxcalc / pyzx

Python library for quantum circuit rewriting and optimisation using the ZX-calculus
Apache License 2.0
364 stars 109 forks source link

Document features that currently have no documentation #89

Open jvdwetering opened 2 years ago

jvdwetering commented 2 years ago

Over the years, several additional features have been merged into PyZX that have never had documentation written for them. These include:

For unitaryHACK, it would be great if someone were to document one or more of these features.

Qubit1718 commented 2 years ago

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!!

akissinger commented 2 years ago

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

Qubit1718 commented 2 years ago

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

jvdwetering commented 2 years ago

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.

ABorgna commented 2 years ago

As John said, I'm available for discussing the quantum-classical part on discord or by email if you need :)

Qubit1718 commented 2 years ago

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 :))

Aerylia commented 2 years ago

I'm very busy these weeks, but I'll do what I can to help. Feel free to ask any questions

nickdgardner commented 1 year ago

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)

jvdwetering commented 1 year ago

Yup, that's still available :)

nickdgardner commented 1 year ago

Great! I'll get started with the paper

dlyongemallo commented 9 months ago

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.)

dlyongemallo commented 6 months ago

@ABorgna Where can I find more info on how mixed classical-quantum circuits are handled in PyZX?

dlyongemallo commented 3 months ago

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).