v4.1.0
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():
setReportedPauliChars()specifies new output characters to replace"IXYZ".setReportedPauliStrStyle()sets whether to printPauliStras"XYIIIZ"or"Z0 Y4 X5".
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 withsetMaxNumReportedSigFigs(). - 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
installprocess which previously required users to gratuitously re-specify preprocessor macros (likeCOMPILE_MPI) when including the pre-installed QuEST header. - 420e11d ensures that changes to the
develbranch 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
isolatedexamples (in addition to merely compiling them), testing for link-time issues (see e9fa519). - CI now compiles and runs all files in the new
automatedexamples 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:
- Luc Jaulmes in #616
- James Richings in #623