mqt-qcec

MQT QCEC - A tool for Quantum Circuit Equivalence Checking

MIT License

Downloads
17.7K
Stars
86

Bot releases are hidden (Show)

mqt-qcec - QCEC 2.2.1 Release: Bugfixes and better Logging

Published by burgholzer over 1 year ago

This small release improves/fixes the internal equivalence checking flow logic for inferring a final result from the results of all individual checkers (fixes #240).
It also features more useful logging messages in some corner cases and issues a warning if the compilation flow verification scheme is used, but the circuits under consideration contain no measurements.

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.2.0...v2.2.1

mqt-qcec - QCEC 2.2.0 Release: Python and Bugfix Updates

Published by burgholzer over 1 year ago

This release drops support for Python 3.7 (in accordance with its deprecation in Qiskit).
Furthermore, it contains some internal usability updates and resolves a couple of outstanding issues.

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.1.3...v2.2.0

mqt-qcec - QCEC 2.1.3 Release: Internal Library Improvements

Published by burgholzer almost 2 years ago

This release brings some quality of life improvements to the internals of the QCEC library.
First of all, it updates the core/intermediate-representation library (QFR) to its latest version, which is now much more independent from the underlying DD package thanks to cda-tum/qfr#244. The core library itself has seen quite some internal updates and code quality fixes.
Secondly, this PR adds better templating to the DD-related functions that allows for better IDE/autocompletion support.
Last but not least, it updates the CMake structure of the project based on cda-tum/dd_package/pull/125 as well as cda-tum/qfr/pull/246 to include more warnings, a simpler structure, unified compilation options and much more.

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.1.2...v2.1.3

mqt-qcec - QCEC 2.1.2 Release: Better Python Typing and MQT Branding

Published by burgholzer almost 2 years ago

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.1.1...v2.1.2

mqt-qcec - QCEC 2.1.1 Release: ZX-Checker Bugfix

Published by burgholzer almost 2 years ago

This tiny release fixes a bug in the ZX-checker that led to false positives (fix by @pehamTom in https://github.com/cda-tum/qcec/pull/201).

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.1.0...v2.1.1

mqt-qcec - QCEC 2.1.0 Release: More Wheels, Fewer Requirements, and Python 3.11

Published by burgholzer almost 2 years ago

This release brings lots of CI/CD improvements to QCEC. Most importantly, with this release QCEC offers binary wheels for all platforms that Qiskit offers them. Furthermore, it drops the superfluous retworkx requirement from QCEC.

Additions

Removals

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.0.0...v2.1.0

mqt-qcec - QCEC 2.1.0 Release Candidate 4

Published by burgholzer almost 2 years ago

Should be good now.

mqt-qcec - QCEC 2.1.0 Release Candidate 3

Published by burgholzer almost 2 years ago

Another try for publishing.

mqt-qcec - QCEC 2.1.0 Release Candidate 2

Published by burgholzer almost 2 years ago

As expected, this might take a few tries.

mqt-qcec - QCEC 2.1.0 Release Candidate 1

Published by burgholzer almost 2 years ago

This is a pre-release to test the new Cirrus CI infrastructure for publishing Apple Silicon and Linux ARM wheels.

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.0.0...v2.1.0-rc1

mqt-qcec - QCEC 2.0.0

Published by burgholzer almost 2 years ago

Long time in the making, but now it's finally here: QCEC 2.0.0 πŸ₯³

What's Changed

This major release refactors and improves many aspects of QCEC in order to make it more scalable, efficient, and extendable.
At the same time, lots of effort has gone into ensuring proper code quality and providing informative documentation.

✨ New Features

  • Automated Equivalence Checking Flow (including parallelization 🧡) envisioned in

    Lukas Burgholzer and Robert Wille. Advanced equivalence checking for quantum circuits. IEEE Transactions on CAD of Integrated Circuits and Systems, 2021. (arXiv:2004.08420)

  • Automated generation of compilation flow profiles as good oracles for equivalence checking based on

    Lukas Burgholzer, Rudy Raymond, and Robert Wille. Verifying results of the IBM Qiskit quantum circuit compilation flow. In International Conference on Quantum Computing and Engineering. 2020. (arXiv:2009.02376)

  • ZX-Calculus Equivalence Checker based on

    Tom Peham, Lukas Burgholzer, and Robert Wille. Equivalence checking of quantum circuits with the ZX-calculus. Journal of Emerging and Selected Topics in Circuits and Systems, 2022. (arXiv:2208.12820)

  • Equivalence Checking of Parameterized Quantum Circuits based on

    Tom Peham, Lukas Burgholzer, and Robert Wille. Equivalence checking of parameterized quantum circuits: Verifying the compilation of variational quantum algorithms. In Asia and South Pacific Design Automation Conference. 2023. (arXiv:2210.12166)

β™Ώ Accessibility

  • βš™οΈ Push-button solution for equivalence checking of quantum circuits
  • 🐧/🍎/🏁 pre-built Python wheels for Linux, macOS (incl. Apple Silicon), and Windows
  • 🐍 Python 3.7 to 3.11 support
  • βš›οΈ Seamless integration with Qiskit

🎨 Code Quality

  • πŸ—ƒοΈ follow the LLVM coding standards for C++
  • 🐍 follows best practices for developing Python projects and packages from the popular Scikit-HEP project
  • πŸ§ͺ extensive unit tests for C++ and Python
  • πŸͺ pre-commit checks

πŸ“ Project documentation hosted at ReadTheDocs.

  • πŸš€ Quickstart and User Guide
  • πŸ§‘β€πŸ’» Development Guide
  • πŸ‘₯ Contributing Guide
  • πŸ“„ API documentation

New Contributors

Full Changelog: https://github.com/cda-tum/qcec/compare/v1.10.5...v2.0.0

mqt-qcec - QCEC 2.0: Release Candidate 9

Published by burgholzer about 2 years ago

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.0.0-rc8...V2.0.0-rc9

mqt-qcec - QCEC 2.0: Release Candidate 8

Published by burgholzer about 2 years ago

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.0.0-rc7...v2.0.0-rc8

mqt-qcec - QCEC 2.0 Release Candidate 7

Published by burgholzer about 2 years ago

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.0.0-rc6...v2.0.0-rc7

mqt-qcec - QCEC 2.0 Release Candidate 6

Published by burgholzer about 2 years ago

This release mostly concerns the internal library and contains almost no user facing changes (besides some bugfixes πŸ›).

It significantly improves the code quality and its assurance. To this end,

  • the project now follows and enforces (most of) LLVM's code format style and coding guidelines for the C++ part, including consistent naming schemes and source code width limits
  • several improvements reported by the SonarLint tool and various clang-tidy checks have been incorporated
  • similar to the C++ workflow which has been quite well monitored, the Python side of the project now adopts the best practices from https://scikit-hep.org/developer in order to maintain a consistent and high quality

All these changes ensure that future contributions to QCEC can follow predefined guidelines and rules, whether it's for developing the core C++ library or the Python package.

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.0.0-rc5...v2.0.0-rc6

mqt-qcec - QCEC 2.0 Release Candidate 5

Published by burgholzer over 2 years ago

This release marks the addition of the first equivalence checker not based on decision diagrams to QCEC: the ZX checker.
It tries to use the rules of the ZX-Calculus to reduce the ZX-Diagram corresponding to the circuit $G^{\prime -1}\cdot G$ to the identity diagram.
Performance-wise, it represent a complementary alternative to all existing checkers and is employed per default when invoking QCEC.

Furthermore, this release makes qiskit-terra a project dependency (in order to ease integration) and provides easy configuration files for CLion users.

What's Changed

New Contributors

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.0.0-rc4...v2.0.0-rc5

mqt-qcec - QCEC 2.0 Release Candidate 4

Published by burgholzer over 2 years ago

This is a quick release to incorporate a fix from the QFR library (cda-tum/qfr#133).
Furthermore it brings some documentation updates for developers.

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.0.0-rc3...v2.0.0-rc4

mqt-qcec - QCEC 2.0 Release Candidate 3

Published by burgholzer over 2 years ago

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.0.0-rc2...v2.0.0-rc3

mqt-qcec - QCEC 2.0 Release Candidate 2

Published by burgholzer over 2 years ago

What's Changed

Full Changelog: https://github.com/cda-tum/qcec/compare/v2.0.0-rc1...v2.0.0-rc2

mqt-qcec - QCEC 2.0 Release Candidate

Published by burgholzer over 2 years ago

This release refactors many aspects of QCEC in order to make it more scaleable, efficient, and extendable.
The resulting equivalence checking flow now more closely resembles a parallel version of the flow proposed in the "Advanced Equivalence Checking for Quantum Circuits" paper.
Furthermore, this release adds project documentation to the QCEC project which is hosted at ReadTheDocs.

With this release, the rewrite is 99% complete and quite well documented as well as tested. It will undergo some more testing until the final v2.0 will be released.