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 printPauliStr
as"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
install
process 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
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:
- Luc Jaulmes in #616
- James Richings in #623