v0.7.0
New Features
VectorPauliSumpropagation which is natively multi-threaded in propagation.- An experimental
PauliPropagationCUDAextension that allows PauliRotation gates to execute on the GPU. - Schrödinger picture propagation for some gates, including
PauliRotation,CliffordGate, andPauliNoise. - 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
AbstractTermSumandAbstractPauliSumas abstract types with uniting behavior. Useful defaults available for Dict and Vector storage. - Introduced propagation caches and the abstract type
AbstractPropagationCache. These wrap evolvingAbstractTermSumobjects 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!()andapplytoall!()was changed for to receive propagation caches and the optional parameter as last argument. applyandadd!()was removed.- Merging functions
mergeandempty!()and below and truncation functionschecktruncationsonall!()and below where simplified and reworked intomerge!()andtruncate!().