Skip to content

v0.7.0

Choose a tag to compare

@MSRudolph MSRudolph released this 04 Feb 21:36
· 12 commits to main since this release
e93d27c

New Features

  • VectorPauliSum propagation which is natively multi-threaded in propagation.
  • An experimental PauliPropagationCUDA extension that allows PauliRotation gates to execute on the GPU.
  • Schrödinger picture propagation for some gates, including PauliRotation, CliffordGate, and PauliNoise.
  • ImaginaryPauliRotation gates in the Schrödinger picture.

Design changes

  • Large chunks of the propagation code was migrated into PauliPropagation.PropagationBase in preparation for moving it into its own PropagationBase.jl repo.
  • Introduced AbstractTermSum and AbstractPauliSum as abstract types with uniting behavior. Useful defaults available for Dict and Vector storage.
  • Introduced propagation caches and the abstract type AbstractPropagationCache. These wrap evolving AbstractTermSum objects with optional additional objects necessary for efficient propagation.

Breaking Changes

Breaking changes do not affect high-level users. Only users defining custom gates and propagation subroutines.

  • The argument order and argument types of applymergetruncate!() and applytoall!() was changed for to receive propagation caches and the optional parameter as last argument.
  • applyandadd!() was removed.
  • Merging functions mergeandempty!() and below and truncation functions checktruncationsonall!() and below where simplified and reworked into merge!() and truncate!().