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

Rename Quantomatic links to zxcalc. #255

Merged
merged 1 commit into from
Jul 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This release includes breaking changes!
Major new features are support for W-spiders and Z-boxes, which are generators used in certain extensions of the ZX-calculus, such as in [this paper](https://arxiv.org/abs/2302.12135) which served as the motivation.
It also adds more formal support for symbolic phases through the addition of a `Poly` class that can represented polynomial expressions containing Boolean and continuous variables.

These features were implemented to support the development of [ZXLive](https://github.com/Quantomatic/zxlive), a new graphical proof assistant for ZX-diagrams.
These features were implemented to support the development of [ZXLive](https://github.com/zxcalc/zxlive), a new graphical proof assistant for ZX-diagrams.

This release includes some changes that are not backwards compatible. The most important of which is changing how inputs and outputs are stored in the json format. This means that json files produced by `Graph.to_json()` are not parsible by older versions, and older versions are no longer parsible by this newer version.
In addition, the gate `CX` has been renamed to `XCX` to make it more clear that it is in fact not an alternative name for the `CNOT` gate. Finally, the `FSim` gate now takes as first arguments the control and target, and only then the angles, in order to be consistent with the other gate definitions.
Expand Down Expand Up @@ -81,14 +81,14 @@ The way that the D3 library is loaded is also changed, meaning that the D3 visua

## [0.7.0] - 2022-02-19

This release adds several new features: support for evaluating ZX-diagrams as tensor networks using the hypergraph contraction methods of [quimb](https://quimb.readthedocs.io/en/latest/index.html), basic support for interacting with the Rust port of PyZX [quizx](https://github.com/Quantomatic/quizx), support for 'hybrid' ZX-diagrams that contain classical wires and measurements, as well as several heuristics for trying to optimise the CNOT count of a circuit that is to be extracted from a ZX-diagram.
This release adds several new features: support for evaluating ZX-diagrams as tensor networks using the hypergraph contraction methods of [quimb](https://quimb.readthedocs.io/en/latest/index.html), basic support for interacting with the Rust port of PyZX [quizx](https://github.com/zxcalc/quizx), support for 'hybrid' ZX-diagrams that contain classical wires and measurements, as well as several heuristics for trying to optimise the CNOT count of a circuit that is to be extracted from a ZX-diagram.

There is one small breaking change, which is that `Graph.inputs` and `Graph.outputs` are now methods that return a list, instead of being lists themselves.

### Added
- Added support for evaluating ZX-diagrams as tensor networks in [quimb](https://quimb.readthedocs.io/en/latest/index.html) (courtesy of
Paul Tirlisan).
- Added [quizx](https://github.com/Quantomatic/quizx) backend for the `Graph` class.
- Added [quizx](https://github.com/zxcalc/quizx) backend for the `Graph` class.
- `Graph` vertices can now carry a `ground` generator. This makes it possible to represent measurements and classical control in the diagrams. See the accompanying [paper](https://arxiv.org/abs/2109.06071) (courtesy of ABorgna).
- Added `extract.lookahead_extract` that uses heuristics to extract circuit with less CNOT gates (courtesy of VladMoldoveanu).
- Added `local_search` submodule for doing simulated annealing on rewrites of a ZX-diagram to try to get it to be extracted with less CNOTS (courtesy of Ryan Krueger).
Expand Down
2 changes: 1 addition & 1 deletion doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@

<div class="admonition note">
This page was generated from
<a class="reference external" href="https://github.com/Quantomatic/pyzx/tree/v{{ env.config.release|e }}/doc/{{ docname|e }}">{{ docname|e }}</a>
<a class="reference external" href="https://github.com/zxcalc/pyzx/tree/v{{ env.config.release|e }}/doc/{{ docname|e }}">{{ docname|e }}</a>
[<a href="{{ env.docname.split('/')|last|e + '.ipynb' }}" class="reference download internal" download>download</a>].
</div>
"""
8 changes: 4 additions & 4 deletions doc/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,21 +32,21 @@ A bunch of things! Below I list just the things related to quantum computing whe
- Using this same rewrite strategy, all the Clifford measurements in a measurement-based quantum computation can be `removed <https://arxiv.org/abs/2003.01664>`_.
- Using this same rewrite strategy, we can optimise the `T-count <https://arxiv.org/abs/1903.10477>`_ of a circuit.
- Using ZX-diagrams, `several <https://arxiv.org/abs/1812.01238>`_ surface code `constructions <https://arxiv.org/abs/1905.08916>`_ have `succesfully <https://arxiv.org/abs/1912.11503>`_ been `optimised <https://arxiv.org/abs/2206.12780>`_.
- Using ZX-diagrams, the simulation technique of `stabilizer decompositions <https://quantum-journal.org/papers/q-2019-09-02-181/>`_ can be `interleaved with diagrammatic simplifications <https://arxiv.org/abs/2109.01076>`_ to speed these up by a `considerable amount <https://arxiv.org/abs/2202.09202>`_. These techniques are implemented in a Rust port of PyZX: `quizx <https://github.com/Quantomatic/quizx>`_.
- Using ZX-diagrams, the simulation technique of `stabilizer decompositions <https://quantum-journal.org/papers/q-2019-09-02-181/>`_ can be `interleaved with diagrammatic simplifications <https://arxiv.org/abs/2109.01076>`_ to speed these up by a `considerable amount <https://arxiv.org/abs/2202.09202>`_. These techniques are implemented in a Rust port of PyZX: `quizx <https://github.com/zxcalc/quizx>`_.



Where do I go to ask questions about PyZX and the ZX-calculus?
------------------------------------------------------------------

Check out the `ZX-calculus Discord channel <https://discord.gg/6shbsEQ3FC>`_. Otherwise you could go to the `Quantum Computing Stack Exchange <https://quantumcomputing.stackexchange.com/>`_ and tag your question with ``zx-calculus``. If you have a feature request or something you think might be a bug, feel free to create an `issue on Github <https://github.com/Quantomatic/pyzx/issues>`_.
Check out the `ZX-calculus Discord channel <https://discord.gg/6shbsEQ3FC>`_. Otherwise you could go to the `Quantum Computing Stack Exchange <https://quantumcomputing.stackexchange.com/>`_ and tag your question with ``zx-calculus``. If you have a feature request or something you think might be a bug, feel free to create an `issue on Github <https://github.com/zxcalc/pyzx/issues>`_.



I don't like Python. Can I do ZX-calculus things in different languages?
------------------------------------------------------------------------------

Some of the functionality of PyZX has been ported to the `ZXCalculus.jl <https://juliapackages.com/p/zxcalculus>`_ Julia package. A port to the Rust language, `quizx <https://github.com/Quantomatic/quizx>`_, is also available. These packages have the benefit of being a lot faster, but the drawback of been less feature-rich, for instance having less capabilities of visualising the results.
Some of the functionality of PyZX has been ported to the `ZXCalculus.jl <https://juliapackages.com/p/zxcalculus>`_ Julia package. A port to the Rust language, `quizx <https://github.com/zxcalc/quizx>`_, is also available. These packages have the benefit of being a lot faster, but the drawback of been less feature-rich, for instance having less capabilities of visualising the results.


What are some things people have done with PyZX?
Expand Down Expand Up @@ -83,4 +83,4 @@ PyZX was originally built to optimize T-count. It is not so good at optimizing t

PyZX also doesn't implement any of the tricks to optimally compile one and two-qubit circuits, such as using the Euler Decomposition to combine adjacent single-qubit rotations, or the KAK decomposition to reduce every two-qubit circuit to have at most three CNOTs.

PyZX is quite fast, but it is still written in Python, and as such has its limits. If you have a circuit with tens of thousands of gates it should run quickly enough, but if you go to millions of gates, it will start to lag. If speed is your concern, check out `quizx <https://github.com/Quantomatic/quizx>`_.
PyZX is quite fast, but it is still written in Python, and as such has its limits. If you have a circuit with tens of thousands of gates it should run quickly enough, but if you go to millions of gates, it will start to lag. If speed is your concern, check out `quizx <https://github.com/zxcalc/quizx>`_.
2 changes: 1 addition & 1 deletion doc/gettingstarted.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ PyZX can be installed as a package using pip::

pip install pyzx

If you wish to use the demo notebooks or benchmark circuits, then the repository can be cloned from `Github <https://github.com/Quantomatic/pyzx>`_.
If you wish to use the demo notebooks or benchmark circuits, then the repository can be cloned from `Github <https://github.com/zxcalc/pyzx>`_.

The best way to get started if you have cloned the repository is to run the `Getting Started notebook <notebooks/gettingstarted.ipynb>`_ in Jupyter. This page contains the same general information as that notebook.

Expand Down
4 changes: 2 additions & 2 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## PyZX

[![Unitary Fund](https://img.shields.io/badge/Supported%20By-UNITARY%20FUND-brightgreen.svg?style=for-the-badge)](http://unitary.fund)
[![CQC Support](https://github.com/Quantomatic/pyzx/raw/master/images/cqc-banner-small.png)](https://cambridgequantum.com/)
[![CQC Support](https://github.com/zxcalc/pyzx/raw/master/images/cqc-banner-small.png)](https://cambridgequantum.com/)
[![PyPI version](https://badge.fury.io/py/pyzx.svg)](https://badge.fury.io/py/pyzx)

PyZX (pronounce as *Pisics*) is a **Py**thon tool implementing the theory of **ZX**-calculus for the creation, visualisation, and automated rewriting of large-scale quantum circuits. Please watch [this 2-minute video](https://www.youtube.com/watch?v=iC-KVdB8pf0) for a short introduction.
Expand Down Expand Up @@ -79,4 +79,4 @@ If you wish to cite PyZX in an academic work, please cite the [accompanying pape
</pre>

Here's a plane that says PYZX:
![PYZX](https://github.com/Quantomatic/pyzx/raw/master/images/F-PYZX.jpg)
![PYZX](https://github.com/zxcalc/pyzx/raw/master/images/F-PYZX.jpg)
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
author="Quantomatic",
author_email="[email protected]",
version="0.8.0",
url="https://github.com/Quantomatic/pyzx.git",
url="https://github.com/zxcalc/pyzx.git",
description="Library for quantum circuit rewriting and optimisation using the ZX-calculus",
long_description=README,
long_description_content_type="text/markdown",
Expand Down
Loading