New features
-
Adds the function
find_classical_subsystem
that tries to find a subset of the modes with a classical covariance matrix. #193 -
Adds the functions
mean_number_of_clicks
andvariance_number_of_clicks
that calculate the first and second statistical moments of the total number of clicks in a Gaussian state centered at the origin. #195 -
Adds the module
decompositions
with the functionwilliamson
to find the Williamson decomposition of an even-size positive-semidefinite matrix. #200 -
Adds the
loop_hafnian_quad
function to the Python interface for converting double precision matrices into quad precision, doing the calculations in quad precision, and then return the result as a double. #201
Improvements
-
Introduces a new faster and significantly more accurate algorithm to calculate power traces allowing to speed up the calculation of loop hafnians #199
-
The
quantum
module has been refactored and organized into sub-modules. Several functions have been renamed, while the old names are being deprecated. #197 -
Adds support for C++14 #202
-
pytest-randomly
is added to the test suite to improve testing and avoid stochastically failing tests. #205 -
Modifies the function
input_validation
to usenp.allclose
for checking the symmetry of the input matrices. #206 -
Modifies the function
_hafnian
to calculate efficiently loop hafnians of diagonal matrices. #206
Breaking changes
-
Removes the redundant function
normal_ordered_complex_cov
. #194 -
Renames the function
mean_number_of_clicks
to bemean_number_of_click_graph
. #195
Contributors
This release contains contributions from (in alphabetical order):
Theodor Isacsson, Nicolas Quesada, Trevor Vincent