Skip to content

Releases: munich-quantum-toolkit/core

Version 1.7.1 Release

21 Oct 11:54
cf7d866
Compare
Choose a tag to compare

This release adds minor improvements from #16, #18, and #20:

  • ✨ added the possibility to dump a tensor network representation of a given QuantumComputation
  • ✨ the Qiskit QuantumCircuit import now natively supports ancillary registers and c3x/c4x gates.
  • ⚡ actually enables -march=native -mtune=native for source builds via pip
  • 🚨 fixed some compiler warnings in the bindings code
  • ⬆️ updated all external submodules to their most recent version
  • ⚡ setup.py now runs on as many threads as available
  • 🍎 added pre-built wheels for Apple silicon
  • 🚀 added Python 3.10 wheels
  • 💚 cleaned up the CI script
  • 📝 updated documentation

Version 1.7.0 Release

30 Aug 12:03
3bcde38
Compare
Choose a tag to compare

This release adds the improvements from #14 and #15

  • ✨ improved QASM parser to handle mcphase gates and to ignore definitions of gates that are inherently known to the parser
  • 🐛 addresses a compilation error when changing the dd::Qubit type (munich-quantum-toolkit/qcec#7)
  • 📹 updates the visualization to (optionally) use polar coordinates
  • ⚡ incorporates lots of minor performance and stability improvements from the DD package repository

Version 1.6.0 Release

17 Jun 09:16
b3a727a
Compare
Choose a tag to compare
  • QuantumComputations can be cloned now
  • Shortcuts to most operations for easier usage

Version 1.5.0 Release

14 Jun 12:39
821bbee
Compare
Choose a tag to compare

The JKQ QFR Python bindings unnecessarily used JSON as an intermediate layer between C++ and Python.
This Release refactors the bindings to directly use Python objects for that purpose.
Overall, this should result in a marginal performance increase.
Furthermore, the underlying CI pipeline is modified to test the codebase more rigorously.

Version 1.4.2 Release

31 May 14:45
a75d600
Compare
Choose a tag to compare

This minor release enables the new sorted buckets feature of the DDPackage submodule which should increase performance across the board.

Version 1.4.1 Release

07 May 10:04
3f08dde
Compare
Choose a tag to compare

This release adds the essential functionality to the JKQ QFR library to support hybrid Schrödinger-Feynman simulation.
The main change is that operations now support a start qubit for generating DDs not starting from 0, which is needed for splitting the circuit horizontally.

For details on the exact changes, see the corresponding pull request (#6).

Version 1.4.0 Release

27 Apr 17:08
1e1c3ad
Compare
Choose a tag to compare

This release marks the update to the new JKQ DD Package version released recently, which increases the performance of practically all decision diagram-related routines. For example, using the JKQ QFR Python library to construct a functional representation of

  • the Quantum Fourier Transform is now ~20% faster when using the sequential strategy, and ~30% faster when using the recursive strategy
  • Grover's algorithm is now ~40% faster on average (up to 80% or more for larger instances) when using the sequential strategy, and ~25% faster when using the recursive strategy

✨ separation of matrix and vector DDs
✨ dynamic qubit numbers for DD package
✨ introduce Definitions.hpp containing the most used definitions/constants
⚡ improved garbage collection
⚡ improved hashing
⚡ improved memory allocation
🔥 removed line parameter
🎨 unsigned short to dd::Qubit for qubits, unsigned short to dd::QubitCount for numbers of qubits, std::size_t mostly everywhere else for consistency
♻️ controls are no longer a vector but a set
♻️ Measurement operations now hold separate vectors for qubits and classical registers
♻️ moved DD generation routines (e.g. for SWAP) to DD Package
🐛 fix bug where permutation was not correctly accounted for in recursive functionality construction
🐛 fix bug where reference counting was not done correctly when recursively building the functionality of Grover's algorithm
🐛 fix reference counting bug in reduceAncillary and reduceGarbage methods

Version 1.3.1 Release

16 Apr 08:53
95ac7b3
Compare
Choose a tag to compare

This release acts as a tag for the last version of the JKQ QFR repository that uses the old JKQ DD Package.
Future releases will use JKQ DD Package version 2.0 and higher.

Version 1.3.0 Release

17 Mar 13:33
d3c642d
Compare
Choose a tag to compare

This release introduces the JKQ QFR Python package jkq.qfr for efficiently constructing functional representations of quantum circuits based on methods proposed in [1].

[1] L. Burgholzer, R. Raymond, I. Sengupta, and R. Wille. "Efficient Construction of Functional Representations for Quantum Algorithms". arXiv:2103.08281, 2021

In order to start using it, install the package using

pip install jkq.qfr

Then, in Python, the functionality of a given circuit (provided, e.g., as Qiskit QuantumCircuit) can be constructed with:

from jkq import qfr
from qiskit import QuantumCircuit

# create your quantum circuit
qc = <...>

# construct the functionality of the circuit
results = qfr.construct(qc)

# print the results
print(results)

See the README for more details.