v3.6.0
Overview
This release makes QuEST compatible with AMD GPUs 🎉, makes the unit tests compatible with MSVC on Windows, and adds sub-diagonal operators.
New features
- Compatibility with AMD GPUs, thanks to @bvillasen!
SubDiagonalOp
; a non-distributed structure representing a diagonal unitary (specified only through the diagonal elements) upon a subset of a qureg's qubits. This can be passed to new functions:createSubDiagonalOp()
destroySubDiagonalOp()
diagonalUnitary()
applySubDiagonalOp()
applyGateSubDiagonalOp()
- Functions for applying gates specified as non-unitary matrices. Specifically:
applyGateMatrixN()
applyMultiControlledGateMatrixN()
setQuregToPauliHamil()
for casting a Pauli Hamiltonian into a dense Z-basis matrix, stored in a density matrixQureg
.- Phase function
SCALED_INVERSE_SHIFTED_WEIGHTED_DISTANCE
recognised byapplyParamNamedPhaseFunc()
(and related functions)
Other changes
- Unit tests are now compatible with MSVC on Windows, and are automatically ran from Github Actions.
- Documentation is automatically regenerated whenever the master branch is updated.
Bug fixes
- Math functions used internally (like
cos()
) now explicitly use quad precision when compiled withPRECISION=4
, thanks to @Milos9304 - Fixed overflow and other precision issues in the unit tests, thanks to @rrmeister