latticesurgery-com / lattice-surgery-compiler

Lattice surgery quantum error correction compiler
https://latticesurgery.com
GNU Lesser General Public License v2.1
46 stars 6 forks source link

Update pyzx requirement from <0.6.5,>=0.6.4 to >=0.6.4,<0.7.1 #261

Closed dependabot[bot] closed 2 years ago

dependabot[bot] commented 2 years ago

Updates the requirements on pyzx to permit the latest version.

Release notes

Sourced from pyzx's releases.

v0.7.0

[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, basic support for interacting with the Rust port of PyZX 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 (courtesy of Paul Tirlisan).
  • Added 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 (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).
  • Added new rewrite rule for ZH-diagrams hsimplify.par_hbox_intro_simp() that can remove some H-boxes.
  • Added several new rewrite rules to basicrules and mbqc.
  • QASM parser: added support for controlled-Hadamard and controlled-Z phase gates.
  • QC parser: added support for SWAP gates (courtesy of wdomitrz).
  • Added Graph.set_inputs() and Graph.set_outputs() to set a list of vertices to be the inputs/outputs of a diagram.
  • Added Graph.num_inputs() and Graph.num_outputs() to get the number of inputs and outputs of a diagram.

Changed

  • Graph.inputs is now a method that returns a list of inputs, instead of Graph.inputs being a list itself. The same for Graph.outputs.

Fixed

  • Several incorrect scalars were fixed in ZH-diagram rewrite rules.
Changelog

Sourced from pyzx's changelog.

[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, basic support for interacting with the Rust port of PyZX 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 (courtesy of Paul Tirlisan).
  • Added 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 (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).
  • Added new rewrite rule for ZH-diagrams hsimplify.par_hbox_intro_simp() that can remove some H-boxes.
  • Added several new rewrite rules to basicrules and mbqc.
  • QASM parser: added support for controlled-Hadamard and controlled-Z phase gates.
  • QC parser: added support for SWAP gates (courtesy of wdomitrz).
  • Added Graph.set_inputs() and Graph.set_outputs() to set a list of vertices to be the inputs/outputs of a diagram.
  • Added Graph.num_inputs() and Graph.num_outputs() to get the number of inputs and outputs of a diagram.

Changed

  • Graph.inputs is now a method that returns a list of inputs, instead of Graph.inputs being a list itself. The same for Graph.outputs.

Fixed

  • Several incorrect scalars were fixed in ZH-diagram rewrite rules.

[0.6.4] - 2021-01-27

The main feature added is support for copying and pasting inside the editor. This release should also hopefully fix the issue where users of the PyPI version can't use zx.draw and the editor.

Added

  • Added functionality to copy and paste parts of a diagram in the editor.
  • qasm files can now include u1/u2/u3 gates.
  • Method BaseGraph.merge() to merge two graphs in place.
  • Method BaseGraph.subgraph_from_vertices() to get the induced subgraph from a set of vertices.

Changed

  • tikz_to_graph() is now a bit more versatile in what it accepts as valid phases.
  • matrix_to_latex() is slightly more intelligent about parsing numbers.
  • Changed colours in editor to match those of zx.draw.

Fixed

  • Decomposing a Hadamard into Euler angles gave wrong scalar.
  • Added d3.v5.min.js to the manifest, which hopefully prevents the issue where people using the PyPI version can't see graphs drawn with d3.

[0.6.3] - 2020-12-2

Added

  • Added settings.drawing_auto_hbox to toggle the default value of auto_hbox when using zx.draw().

... (truncated)

Commits
  • 2bbb8de Bump version number
  • 8504035 Updated changelog
  • 3001747 Merge pull request #83 from paultirlisan/master
  • bc2c786 removed Literal
  • 56f42df minor fixes
  • b3b38a8 added pyzx sheet 5
  • 3ced240 Fixed some comments in Quimb Benchmark.
  • 625fc0f Fixed scalar bug in to_quimb_tensor method.
  • ff14067 Normalize dense circuits, add plot with optimal strategy on dense circuits an...
  • b6969c6 Improve code for Quimb Benchmark.
  • Additional commits viewable in compare view


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
codecov[bot] commented 2 years ago

Codecov Report

Merging #261 (1cbd21e) into dev (fc0eafa) will not change coverage. The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##              dev     #261   +/-   ##
=======================================
  Coverage   68.60%   68.60%           
=======================================
  Files          23       23           
  Lines        1978     1978           
=======================================
  Hits         1357     1357           
  Misses        621      621           

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update fc0eafa...1cbd21e. Read the comment docs.

alexnguyenn commented 2 years ago

@dependabot rebase

alexnguyenn commented 2 years ago

@gwwatkin does this help with what you were trying to do?

QASM parser: added support for controlled-Hadamard and controlled-Z phase gates.

https://github.com/Quantomatic/pyzx/commit/73998cb6eafda13832306edf2dd4d8ec6fe236cd

alexnguyenn commented 2 years ago

Also realized it was the issue you commented on as well: https://github.com/Quantomatic/pyzx/issues/48

gwwatkin commented 2 years ago

Yes it would make the parsing via PyZX more robust, as it would allow us to parse small QFTs with it. It's cool that they have it now.

Unfortunately we still can't use it for larger ones (>48 qubits I think) because PyZX runs into precision problems with very small angles.

Makes me think though we should offer the user the possibility of choosing their parser.

gwwatkin commented 2 years ago

I also see that they are adopting a different convention from ours