Skip to content

v4.1.0

Latest
Compare
Choose a tag to compare
@TysonRayJones TysonRayJones released this 28 May 02:19
· 2 commits to main since this release
2d1a6fb

Overview

This minor release (#622) adds some convenience functions to control QuEST's reporter functions, patches a critical segmentation fault in simulation above 32 qubits, patches the build's installation process and some minor reporter issues, and improves the documentation.

New features

Two new Debug > Reporting functions customise the outputs of functions like reportPauliStr() and reportPauliStrSum():

Patches

  • #623 patched a critical bug in the amplitude-enumeration logic which caused a segmentation fault for simulations of over 32 qubits (believed to cause #618).
  • 15a08ae removed superfluous re-validation of user input inside Trotter circuits.
  • 5e449fe patched a seg-fault when calling setMaxNumReportedItems(1,1) (though insignificant bug #588 remains).
  • fb2527e patched reportScalar() which previously ignored the number of sig-figs set with setMaxNumReportedSigFigs().
  • c92ebb3 patched invalid-input error messages that interrupt reports which do not end in a trailing newline (by now always printing a newline before the error message).
  • #624 restored C++17 compatibility of the source (by removing non-standard designated initialisers), which is now targeted by the build (though unit tests still require C++20).
  • #601 and #616 patched the build's install process which previously required users to gratuitously re-specify preprocessor macros (like COMPILE_MPI) when including the pre-installed QuEST header.
  • 420e11d ensures that changes to the devel branch will trigger CI tests (as intended).

Other changes

  • Examples have been restructured, and a new example using QuEST to perform real-time Hamiltonian simulation (dynamics.c(pp)) was added.
  • CI now runs Windows tests first since they are the most error-prone.
  • CI now runs all isolated examples (in addition to merely compiling them), testing for link-time issues (see e9fa519).
  • CI now compiles and runs all files in the new automated examples folder, offering external contributors a quick and easy way to platform-agnostically test their PR (in lieu of preparing a unit test)(see e9fa519).
  • Code-coverage reporting in PRs (using LCOV) was disabled since it did not capture accelerated backend coverage.
  • Many functions received new documentation (although the war continues).
  • Several custom Doxygen tags were renamed (see #621)

New contributors

This release contained patches from new contributors: