Skip to content

Releases: QuTech-Delft/qx-simulator

Release 0.7.1

27 May 14:24
a3c7613
Compare
Choose a tag to compare

Added

  • Integrate with libqasm 0.6.6 release.
  • Allow multiple qubit/bit (register) definitions and mid-circuit measurements.

Changed

  • Update conanfile.py to request libqasm/0.6.6 and use tools.build.skip_test.
  • Update GitHub workflows with some improvements taken from libqasm.

Removed

Release 0.7.0

17 Apr 11:34
Compare
Choose a tag to compare

Added

  • Integrate with libqasm 0.6.3 release.

Changed

  • Rename tests folder to test.
  • Update GitHub workflows.

Removed

  • cQasm 1.x support.
  • circuits folder.

Release 0.6.5: Conan, ARM on Linux

04 Dec 12:36
Compare
Choose a tag to compare

Added

  • Python 3.12 support

Changed

  • Uses Conan
  • New Github workflows
  • Working ARM runners in the CI

Release 0.6.4: error messages

21 Sep 10:57
Compare
Choose a tag to compare

Added
Meaningful error message when parsing or simulation fails

Changed
Does not crash when too many qubits asked

Release 0.6.3: bugfix and misc

21 Sep 02:06
Compare
Choose a tag to compare

Added

  • Address sanitizer CMake mode

Changed

  • Removed submodules and deps/ folder, replaced with CMake FetchContent
  • C++23
  • gtest instead of doctest
  • Various fixes to Github actions
  • Fixed bug in bitset due to bool automatic casting to 32 bits
  • Documentation formatting fixes
  • Doc chapter about internals

Removed

0.6.2: depolarizing channel error model, constant seeds

27 Feb 12:31
Compare
Choose a tag to compare

Added

depolarizing_channel error model and docs
ability to pass constant seed for deterministic simulation
RandomTest doing Kolmogorov-Smirnov statistical test to match random numbers with their ideal probability distribution

Changed

fixed docs
source files use .hpp/.cpp extensions
random number distributions (integer min/max and real 0-1) are done in-house for portability and consistency of results

Removed

nothing

0.6.1 beta: ARM compat, classical not and more controlled gates, integers in "results" and new Python API

10 Feb 10:34
Compare
Choose a tag to compare

Added
Linux arm64 Python wheel and Linux arm64 test workflow (GCC-Release)
"classical not" gate is back
"state" section in JSON now contains a new entry "norm" which is the square of the modulus of the complex number
C++ integration test
All gates can be controlled (including prep, measure). This is not new but was accidentally removed in 0.6.0.
New Python API execute_string and execute_file without having to create qxelarator.QX() and returning user-friendly Python type
Changed
Fixed README
"results" section in JSON contains integers instead of floats (those integers being the number of occurences)
In relation to previous point, "results" only relates to measurement register averaging, and no longer to quantum state when doing a single shot. For that, use the "state" section in the JSON.
Output float precision is 8 decimals instead of 6
Removed
Most Python tests - already covered in C++ integration test, and they didn't check much anyway

Version 0.6.0: performance improvement, modern C++20 and matrices

23 Jan 15:58
Compare
Choose a tag to compare

Almost a complete rewrite. No functional change except:

  • error models don't work anymore :( they will come better and stronger later on
  • classical not gate doesn't work anymore :( it's just an omission, will be fixed soon
  • get_measurement_outcome and get_state don't exist anymore :( they've been superseeded by json output
  • it's faster and using a single core \o/ and less memory on average

Added

  • Ability to easily implement any quantum gate by simply giving an arbitrary unitary matrix in Gates.h
  • Performance speedup using a single thread
  • Some proper linear algebra primitives using template metaprogramming
  • Abseil-cpp dependency for flat_hash_map
  • Ability to compile the simulator with an set maximum number of qubits - in the future this will
    be using templates as well to switch data structures based on the input quantum circuit

Changed

  • Quantum state is stored as a sparse array implemented using a flat_hash_map from Abseil-cpp
  • C++20 in place of C++14,
  • Code style: camel case

Removed

  • OpenMP and multithreading.
  • SSE, AVX and other intrinsics.
  • get_measurement_outcome and get_state methods. Now accessible via JSON output.

Release 0.5.5: output state complex amplitudes and set_string

12 Jan 16:05
Compare
Choose a tag to compare

Added:

  • set_string method to parse a cqasm string directly instead of a cqasm file

Changed:

  • Fixed issue #118: quantum state is always displayed, as well as measurement register averaging

Release 0.5.4: 2 bugfixes and some cleanups

06 Jan 13:17
Compare
Choose a tag to compare

Added

  • Tests for measure gate

Changed

  • Fixed issues #91 and #114
  • As part of #114, switch to sequential/simple measure gate

Removed

  • QFT implementation (never instantiated, so no functional change)
  • qx-server no longer exists, together with the network libraries
  • "Microcode" generation functions (never used either)
  • Parallel gates in gate.h (they were executed sequentially)
  • Some non-needed and/or obsolete code