Releases: cda-tum/mqt-qcec
Version 1.10.3 Release
This release adds the improvements from #12, #13, and #14:
- ✨ adds the opt-in functionality for verifying dynamic circuits via translating such circuits to static ones.
- ✨ add reorder operations pass to pre-processing
- ✨ add functionality to compare the resulting DD to the identity with a given threshold
- ✨ introduce new optimization that tries to cancel identical operations in the alternating strategy whenever possible
- 🏗️ switch to PEP 517
pyproject.toml
- 🐛 🍎: deploying under macOS now produces fat binaries (i.e., for
x86_64
andarm64
architectures). This allows to effectively builduniversal2
wheels for Python 3.8 onwards and eventually makes the wheels work on M1-based Macs
Version 1.10.2 Bugfix Release
This small bugfix release adds:
- 🐛 a fix for a bug regarding RZ gates (see cda-tum/dd_package#25)
- 🐧 musllinux wheels
Version 1.10.1 Release
This release adds a couple of minor new features and fixes. In particular:
- ✨/🐛 ancillary registers and c3x/c4x gates are now supported in Qiskit
QuantumCircuit
objects - ⚡
-march=native -mtune=native
is actually enabled for source builds via pip - ⚡ setup.py now runs on as many threads as available
- 🚀 added Python 3.10 wheels
- 📝 updated documentation
Version 1.10.0 Release
A lot of (mostly minor) updates have happened since the last QCEC release. This minor release brings QCEC up-to-date. For a detailed list of changes, see (#8).
With this release, we additionally provide Python wheels for Apple Silicon.
Version 1.9.1 Release
This minor release enables the new sorted buckets feature of the DDPackage submodule which should increase performance across the board.
Version 1.9.0 Release
This release adapts the QCEC library to work with the new JKQ DD Package version released recently.
Performance of all decision diagram-based routines is expected to improve (especially those based on simulation).
✨ dynamic DD package size
✨ separate VectorDD and MatrixDD classes
⚡ improved garbage collection
⚡ improved memory allocation
⚡ improved hashing
🔥 removed line
🔥 validInstance removed as such errors are now captured at the QFR level
Version 1.8.1 Release
This release acts as a tag for the last version of the JKQ QCEC repository that uses the old JKQ DD Package.
Future releases will use JKQ DD Package version 2.0 and higher.
Version 1.8.0 Release
Major refactoring for future developments
- Python bindings now expose more of the underlying library (Configuration, Results, etc.):
from jkq.qcec import *
config = Configuration()
<...> # set configuration options
results = verify(circ1, circ2, config)
- In analogy to the research, the following methods (
config.method
) can now be configured:reference
G_I_Gp
(default)simulation
- The following strategies (
config.strategy
) are available for themethod:
naive
proportional
(default)lookahead
compilationflow
- The following types of stimuli (
config.stimuli_type
) are available for the simulation-based method:classical
(default)localquantum
globalquantum
verify()
now returns aResults
instance instead of internally storing the result- Printing of JSON (
results.json()
) or CSV information (results.csv()
) is laid off to theresults
object of the equivalence check - Runtime information is split into preprocessing and verification time
- Single-qubit gate fusion and SWAP reconstruction are enabled per default
- Statistics are included in the results per default
Version 1.7.3 Release
This minor release fixes a major issue with the deployed Python wheels that could cause (binary) incompatibilities with certain machines.
It also adds many under-the-hood changes/improvements to the underlying CMake project structure:
- CMake minimum version raised to 3.13
- C++ standard raised to C++17
- Submodules are no longer handled in CMake
- Library installation options have been removed
Version 1.7.2 Release
This minor release includes many small under-the-hood improvements from cda-tum/dd_package@14730c6.