MQT QCEC - A tool for Quantum Circuit Equivalence Checking
MIT License
Bot releases are hidden (Show)
Published by burgholzer over 2 years ago
This release marks the transition from the JKQ
framework to the Munich Quantum Toolkit (MQT).
49f5923
to 2ab280b
by @dependabot in https://github.com/cda-tum/qcec/pull/21
2ab280b
to e961baf
by @dependabot in https://github.com/cda-tum/qcec/pull/23
e961baf
to 166177c
by @dependabot in https://github.com/cda-tum/qcec/pull/24
166177c
to 34b5811
by @dependabot in https://github.com/cda-tum/qcec/pull/25
34b5811
to dca7f1f
by @dependabot in https://github.com/cda-tum/qcec/pull/26
dca7f1f
to 69ccc42
by @dependabot in https://github.com/cda-tum/qcec/pull/27
69ccc42
to 2c7ceb3
by @dependabot in https://github.com/cda-tum/qcec/pull/28
2c7ceb3
to 6bb07d6
by @dependabot in https://github.com/cda-tum/qcec/pull/29
Full Changelog: https://github.com/cda-tum/qcec/compare/v1.10.4...v1.10.5
Published by burgholzer almost 3 years ago
06da5bc
to 49f5923
by @dependabot in https://github.com/iic-jku/qcec/pull/17
Full Changelog: https://github.com/iic-jku/qcec/compare/v1.10.3...v1.10.4
Published by burgholzer almost 3 years ago
This release adds the improvements from #12, #13, and #14:
pyproject.toml
x86_64
and arm64
architectures). This allows to effectively build universal2
wheels for Python 3.8 onwards and eventually makes the wheels work on M1-based MacsPublished by burgholzer almost 3 years ago
This small bugfix release adds:
Published by burgholzer almost 3 years ago
This release adds a couple of minor new features and fixes. In particular:
QuantumCircuit
objects-march=native -mtune=native
is actually enabled for source builds via pipPublished by burgholzer about 3 years ago
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.
Published by burgholzer over 3 years ago
This minor release enables the new sorted buckets feature of the DDPackage submodule which should increase performance across the board.
Published by burgholzer over 3 years ago
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
Published by burgholzer over 3 years ago
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.
Published by burgholzer over 3 years ago
Major refactoring for future developments
from jkq.qcec import *
config = Configuration()
<...> # set configuration options
results = verify(circ1, circ2, config)
config.method
) can now be configured:
reference
G_I_Gp
(default)simulation
config.strategy
) are available for the method:
naive
proportional
(default)lookahead
compilationflow
config.stimuli_type
) are available for the simulation-based method:
classical
(default)localquantum
globalquantum
verify()
now returns a Results
instance instead of internally storing the resultresults.json()
) or CSV information (results.csv()
) is laid off to the results
object of the equivalence checkPublished by burgholzer over 3 years ago
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:
Published by burgholzer over 3 years ago
This minor release includes many small under-the-hood improvements from iic-jku/dd_package@14730c6.
Published by burgholzer over 3 years ago
This small release adds the capability to extract I/O mapping information from Qiskit QuantumCircuit
objects.
As a result, the verification of a circuit compiled with IBM Qiskit becomes even easier:
from jkq import qcec
from qiskit import QuantumCircuit, transpile
# create your quantum circuit
qc = <...>
# append measurements to save output permutation
qc.measure_all()
# transpile circuit to appropriate backend using some optimization level
qc_trans = transpile(qc, backend=<...>, optimization_level=<0 | 1 | 2 | 3>)
# verify the compilation result
qcec.verify(qc, qc_trans, method=qcec.Method.compilationflow, statistics=True)
Published by burgholzer almost 4 years ago
This release adds support for directly using Qiskit QuantumCircuit
objects (as well as corresponding .pickle
files) as input to the verification tool.
Many of Qiskit's operations are natively supported and directly translated to our Quantum Functionality Representation (QFR).
Any non-native operation is decomposed using Qiskit's definition of the operation until only native operations remain.
A release that allows to incorporate compilation information (e.g., logical to physical qubit mapping) is planned for the future.
Due to these changes, the interface of the qcec.verify
function has changed: the parameters file1
/file2
are now suitably called circ1
/circ2
.
This release also fixes a small issue where the naive
and lookahead
method could not be set correctly.
Published by burgholzer almost 4 years ago
This minor release provides a functioning sdist
for Python distribution.
Published by burgholzer almost 4 years ago
Minor release
Published by burgholzer almost 4 years ago
v1.6 introduces random stimuli generation methods for the verification of quantum circuits.
It also adds the option of persisting the state vector used for verification methods based on simulation.
Published by burgholzer about 4 years ago
v1.5 adds JKQ QCEC to PyPI---allowing user to install the tool by calling
pip install jkq.qcec
and use it to verify quantum circuits in Python with
from jkq import qcec
qcec.verify([...])
Additionally, configuration options now also include optimization passes applied before equivalence checking:
Published by burgholzer about 4 years ago
v1.5 adds JKQ QCEC to PyPI---allowing user to install the tool by calling
pip install jkq.qcec
and use it to verify quantum circuits in Python with
from jkq import qcec
qcec.verify([...])
This beta release tests the CI/CD functionality for automatically building and deploying to PyPI.