Skip to content

Version 0.7.0

Compare
Choose a tag to compare
@josh146 josh146 released this 07 Aug 07:09
· 908 commits to master since this release
94cd39b

New features

  • Hafnian library has been renamed to The Walrus, and the low-level libhafnian C++ library renamed to libwalrus. #34

  • Added a seed function thewalrus.samples.seed, in order to make the sampling algorithms deterministic for testing purposes. #29

  • Added support for the batched hafnian; hafnian_batched (in Python) and libwalrus::hermite_multidimensional_cpp (in C++). This is a newly added algorithm that allows a batch of photon number statistics to be computed for a given quantum Gaussian state. #21

  • Adds the ability to sample from Gaussian states with finite means. #25

Improvements

  • Permanent Fortran code was ported to C++, with improvements including support for quadruple precision and summation using the fsum algorithm. #20

  • Reorganization of the repository structure; C++ source code folder has been renamed from src to include, C++ tests have been moved into their own top-level directory tests, and the hafnian/lib subpackage has been removed in favour of a top-level thewalrus/libwalrus.so module. #34

  • Added additional references to the bibliography #30

  • Adds documentation related to permanents, sampling states with nonzero displacement, sampling of classical states, and multidimensional Hermite polynomials and batched hafnians. #27

  • Simplifies the hafnian sampling functions #25

  • Test improvements, including replacing custom tolerance checks with np.allclose(). #23

Bug fixes

  • Minor typos corrected in the documentation. #33 #28 #34

Contributors

This release contains contributions from (in alphabetical order):

Brajesh Gupt, Josh Izaac, Nicolas Quesada