------------------------------------------------------------------- Tue Apr 26 05:35:43 UTC 2022 - Steve Kowalik - No longer skip Python 3.10, dask is now available. ------------------------------------------------------------------- Fri Feb 4 22:23:56 UTC 2022 - Ben Greiner - Update to 0.18.0: * Python module for the La Budde method of computing characteristic polynomials. #304 * Permanent algorithms are implemented in Python using Numba just-in-time compilation. #300 * Hafnian algorithms are implemented in Python using Numba just-in-time compilation. #311 * Documentation is updated to include the characteristic polynomials and decompositions modules. #312 * Makes modules reachable via the global namespace, instead of requiring importing the modules explicitly. #312 import thewalrus as tw tw.samples.generate_torontonian_sample * The Walrus is no longer dependent on C++, and all C++-related code and documentation is removed. Instead, all code has been ported to Python using just-in-time compilation to improve performance. #311 - Release 0.17.0 * Python installation no longer requires repoze.lru. #293 * Multidimensional Hermite polynomials are now implemented in Numba, hence reducing the C++ dependencies of The Walrus. #295 * Updates missing figures in the "Basics of Hafnians and Loop Hafnians" documentation. #288 ------------------------------------------------------------------- Wed Oct 27 08:01:52 UTC 2021 - Guillaume GARDET - Update to version 0.16.2: * Bug fixes * hermite_multidimensional_numba can now handle a cutoff of type np.ndarray with shape=[]. #283 - Version 0.16.1: * Improvements * Faster implementation of hermite_multidimensional_numba and hermite_multidimensional_numba_grad. #280 * Bug fixes * Updates the samples.generate_torontonian_sample function to ensure probabilities are normalized. #250 * Pins Numba to version <0.54 to avoid binary imcompatibilities with the 1.21 release of NumPy. #250 - Version 0.16.0: * New features * Adds the function hafnian_sparse to compute sparse loop hafnians (pure Python implementation). #245 * The symplectic.squeezing function is now generalized to multiple modes of single mode squeezing. #249 * Adds a function symplectic.passive_transformation which allows for Gaussian states to be transformed by arbitrary non-unitary, non-square linear optical transformations. #249 * The torontonian_sample_state function now can sample displaced Gaussian states. #248 * Adds the function hafnian_banded to calculate the hafnian of a banded matrix. #246 * Adds the functions hermite_multidimensional_numba and grad_hermite_multidimensional_numba to calculate renormalized multidimensional Hermite polynomials and its gradients using numba. #251 * Adds the functions mzgate and grad_mzgate to calculate the Fock representation of the Mach-Zehnder gate and its gradients. #257 * Adds the ability to calculate n-body photon number distributions using the function n_body_marginals. #253 * Adds the ability to calculate cumulants and arbitrary expectation values of products of powers of photon numbers with the functions photon_number_cumulant and photon_number_moment respectively. #264 * Adds support for calculating the permanent using the BBFG algorithm and changes this to the default method for calculating permanents. #267 * Adds the ability to calculate click cumulants in threshold detection with the function click_cumulant. #264 * Improvements * Speeds up the calculation of photon number variances/covariances. #244 * Updates documentation for the the tor function. #265 * Numba methods for multidimensional hermite can now detect dtype automatically. #271 * Bug fixes * Corrects bug in the function photon_number_covar that gave incorrect results when the covariance between two modes with finite displacements was calculated. #264 * Fixes a bug in setup.py that would cause the build to fail when using miniforge for M1 macs. #273 * Updates the samples.generate_hafnian_sample function to renormalizing probabilities. #250 * Breaking changes * Torontonians and approximations to the hafnian for non-negative matrices are no longer calculated in C++ using the Eigen software library. Instead, they are now calculated in pure Python using Numba. These changes have the nice result of making The Walrus compilable from source using only a C++ compiler. #262 #259. - Version 0.15.1 * Bug fixes * Builds The Walrus binaries against an older version of NumPy, to avoid a breaking ABI change in NumPy 1.20. #240 - Version 0.15.0 * New features * Adds the function random_banded_interferometer to generate unitary matrices with a given bandwidth. #208 * Adds the function tvd_cutoff_bounds to calculate bounds in the total variation distance between a Fock-truncated and an ideal GBS distribution. #210 * Adds function for calculating threshold detection probabilities for Gaussian states with displacement. #220 * Adds new functions total_photon_number_distribution and characteristic_function to study properties of the total photon number distribution of a k identical lossy squeezers. #230 * Adds new functions xxpp_to_xpxp and xpxp_to_xxpp in the symplectic module to swap the ordering of the quadrature operators in vectors and matrices. #237 * Improvements * The hafnians and loop hafnians of diagonal matrices are now calculated in polynomial time. #212 * Refactors setup.py to avoid issues with CFLAGS. #229 * The fidelity function in quantum/gaussian_checks.py is rewritten to add clarity. #226 * Simplifies logic of normal_ordered_expectation by removing mutually cancelling np.conj. #228 * Bug fixes * Removes unnecessary np.real_if_close statements in quantum/fock_tensors.py causing the probabilities to not be normalized. #215 * Fixes the prefactor in pure_state_amplitude. #231 ------------------------------------------------------------------- Mon Feb 8 14:35:31 UTC 2021 - andy great - Disable build for python 3.6 because numpy does not support it. ------------------------------------------------------------------- Thu Nov 26 07:51:50 UTC 2020 - andy great - Update to version 0.14.0. * New features * Adds the function find_classical_subsystem that tries to find a subset of the modes with a classical covariance matrix. * Adds the functions mean_number_of_clicks and variance_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. * Adds the module decompositions with the function williamson to find the Williamson decomposition of an even-size positive-semidefinite matrix. * 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. * Improvements * Introduces a new faster and significantly more accurate algorithm to calculate power traces allowing to speed up the calculation of loop hafnians * The quantum module has been refactored and organized into sub-modules. Several functions have been renamed, while the old names are being deprecated. * Adds support for C++14 * pytest-randomly is added to the test suite to improve testing and avoid stochastically failing tests. * Modifies the function input_validation to use np.allclose for checking the symmetry of the input matrices. * Modifies the function _hafnian to calculate efficiently loop hafnians of diagonal matrices. * Breaking changes * Removes the redundant function normal_ordered_complex_cov. * Renames the function mean_number_of_clicks to be mean_number_of_click_graph. ------------------------------------------------------------------- Thu Sep 24 21:14:01 UTC 2020 - Matej Cepl - Actually manually adding "-fopenmp" to CFLAGS allows us to use even the standard SUSE CFLAGS (workaround found in the same bug). ------------------------------------------------------------------- Mon Sep 21 15:08:09 UTC 2020 - Matej Cepl - Standard OpenSUSE CFLAGS break the build (gh#XanaduAI/thewalrus#198). ------------------------------------------------------------------- Thu Sep 17 19:35:47 UTC 2020 - andy great - Fix spec file typo. ------------------------------------------------------------------- Fri Sep 11 20:38:18 UTC 2020 - andy great - Update to version 0.13.0. * Adds a new algorithm for hafnians of matrices with low rank. * Adds a function to calculate the fidelity between two Gaussian quantum states. * Adds a new module, thewalrus.random, to generate random unitary, symplectic and covariance matrices. * Adds new functions normal_ordered_expectation, photon_number_expectation and photon_number_squared_expectation in thewalrus.quantum to calculate expectation values of products of normal ordered expressions and number operators and their squares. * Adds the function hafnian_sample_graph_rank_one in thewalrus.samples to sample from rank-one adjacency matrices. * Adds parallelization support using Dask for quantum.probabilities. * Removes support for Python 3.5. * Changes in the interface and speed ups in the functions in the thewalrus.fock_gradients module. * Improves documentation of the multidimensional Hermite polynomials. * Improves speed of fock_tensor when the symplectic matrix passed is also orthogonal. * Fixes Numba decorated functions not rendering properly in the documentation. * Solves the issue with quantum and samples not being rendered in the documentation or the TOC. * Fix bug where quantum and samples were not showing up in the documentation. * The functions in thewalrus.fock_gradients are now separated into functions for the gradients and the gates. Moreover, they are renamed, for instance Dgate becomes displacement and its gradient is now grad_displacement. ------------------------------------------------------------------- Wed Aug 5 16:12:15 UTC 2020 - andy great - Use pytest for %check ------------------------------------------------------------------- Sun Aug 2 10:05:38 UTC 2020 - andy great - Initial package release.