Skip to content

v3.6.0

Compare
Choose a tag to compare
@TysonRayJones TysonRayJones released this 07 Aug 18:01
· 30 commits to master since this release
eac4409

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 matrix Qureg.
  • Phase function SCALED_INVERSE_SHIFTED_WEIGHTED_DISTANCE recognised by applyParamNamedPhaseFunc() (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 with PRECISION=4, thanks to @Milos9304
  • Fixed overflow and other precision issues in the unit tests, thanks to @rrmeister