Releases: QuTech-Delft/qx-simulator
Release 0.7.4
Release 0.7.3
Added
- Documentation: GitHub pages.
- Linters:
.clang-format
and.clang-tidy
. - Integrate with libqasm 0.6.8 release:
- Add gate modifiers. Notice though that
pow
only works with integer exponents.
- Add gate modifiers. Notice though that
Changed
- Implement instructions as a hierarchy.
- Implement
GateConvertor
as aCircuitBuilder
. - Implement
BasisVector
as aboost::dynamic_bitset<uint32_t>
. - Implement
RegisterManager
as a singleton. - Change
QuantumState
by taking the measurement register out of it. - Change
Circuit::execute
to return aSimulationIterationContext
. - Change
Matrix
andDenseUnitaryMatrix
to usestd::vector
instead ofstd::array
. - Change file, functions, and variable names.
Removed
abseil
library dependency.
Release 0.7.2
Added
- Integrate with libqasm 0.6.7 release.
- Add
reset
instruction. - Make QX simulator aware of bit (register) variables.
- Update
test
andassets
workflows.
Changed
Removed
Release 0.7.1
Added
- Integrate with libqasm 0.6.6 release.
- Allow multiple qubit/bit (register) definitions and mid-circuit measurements.
Changed
- Update
conanfile.py
to requestlibqasm/0.6.6
and usetools.build.skip_test
. - Update GitHub workflows with some improvements taken from
libqasm
.
Removed
Release 0.7.0
Added
- Integrate with libqasm 0.6.3 release.
Changed
- Rename
tests
folder totest
. - Update GitHub workflows.
Removed
- cQasm 1.x support.
circuits
folder.
Release 0.6.5: Conan, ARM on Linux
Added
- Python 3.12 support
Changed
- Uses Conan
- New Github workflows
- Working ARM runners in the CI
Release 0.6.4: error messages
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
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
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
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