Version 0.7.0
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) andlibwalrus::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
toinclude
, C++ tests have been moved into their own top-level directorytests
, and thehafnian/lib
subpackage has been removed in favour of a top-levelthewalrus/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
Contributors
This release contains contributions from (in alphabetical order):
Brajesh Gupt, Josh Izaac, Nicolas Quesada