Qutip

Latest version: v5.0.2

Safety actively analyzes 630052 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 5

4.6.3

This minor release adds support for numpy 1.22 and Python 3.10 and removes some blockers for running QuTiP on the Apple M1.

The performance of the ``enr_destroy``, ``state_number_enumerate`` and ``hadamard_transform`` functions was drastically improved (up to 70x or 200x faster in some common cases), and support for the drift Hamiltonian was added to the ``qutip.qip`` ``Processor``.

The ``qutip.hardware_info`` module was removed as part of adding support for the Apple M1. We hope the removal of this little-used module does not adversely affect many users -- it was largely unrelated to QuTiP's core functionality and its presence was a continual source of blockers to importing ``qutip`` on new or changed platforms.

A new check on the dimensions of ``Qobj``'s were added to prevent segmentation faults when invalid shape and dimension combinations were passed to Cython code.

In addition, there were many small bugfixes, documentation improvements, and improvements to our building and testing processes.


Improvements
------------
- The ``enr_destroy`` function was made ~200x faster in many simple cases. ([1593](https://github.com/qutip/qutip/pull/1593) by Johannes Feist)
- The ``state_number_enumerate`` function was made significantly faster. ([1594](https://github.com/qutip/qutip/pull/1594) by Johannes Feist)
- Added the missing drift Hamiltonian to the method run_analytically of ``Processor``. ([1603](https://github.com/qutip/qutip/pull/1603) Boxi Li)
- The ``hadamard_transform`` was made much faster, e.g., ~70x faster for N=10. ([1688](https://github.com/qutip/qutip/pull/1688) by Asier Galicia)
- Added support for computing the power of a scalar-like Qobj. ([1692](https://github.com/qutip/qutip/pull/1692) by Asier Galicia)
- Removed the ``hardware_info`` module. This module wasn't used inside QuTiP and regularly broke when new operating systems were released, and in particular prevented importing QuTiP on the Apple M1. ([1754](https://github.com/qutip/qutip/pull/1754), [#1758](https://github.com/qutip/qutip/pull/1758) by Eric Giguère)

Bug Fixes
---------
- Fixed support for calculating the propagator of a density matrix with collapse operators. QuTiP 4.6.2 introduced extra sanity checks on the dimensions of inputs to mesolve (Fix mesolve segfault with bad initial state [1459](https://github.com/qutip/qutip/pull/1459)), but the propagator function's calls to mesolve violated these checks by supplying initial states with the dimensions incorrectly set. ``propagator`` now calls mesolve with the correct dimensions set on the initial state. ([#1588](https://github.com/qutip/qutip/pull/1588) by Simon Cross)
- Fixed support for calculating the propagator for a superoperator without collapse operators. This functionality was not tested by the test suite and appears to have broken sometime during 2019. Tests have now been added and the code breakages fixed. ([1588](https://github.com/qutip/qutip/pull/1588) by Simon Cross)
- Fixed the ignoring of the random number seed passed to ``rand_dm`` in the case where ``pure`` was set to true. ([1600](https://github.com/qutip/qutip/pull/1600) by Pontus Wikståhl)
- Fixed qutip.control.optimize_pulse support for sparse eigenvector decomposition with the Qobj oper_dtype (the Qobj oper_dtype is the default for large systems). ([1621](https://github.com/qutip/qutip/pull/1621) by Simon Cross)
- Removed qutip.control.optimize_pulse support for scipy.sparse.csr_matrix and generic ndarray-like matrices. Support for these was non-functional. ([1621](https://github.com/qutip/qutip/pull/1621) by Simon Cross)
- Fixed errors in the calculation of the Husimi spin_q_function and spin_wigner functions and added tests for them. ([1632](https://github.com/qutip/qutip/pull/1632) by Mark Johnson)
- Fixed setting of OpenMP compilation flag on Linux. Previously when compiling the OpenMP functions were compiled without parallelization. ([1693](https://github.com/qutip/qutip/pull/1693) by Eric Giguère)
- Fixed tracking the state of the Bloch sphere figure and axes to prevent exceptions during rendering. ([1619](https://github.com/qutip/qutip/pull/1619) by Simon Cross)
- Fixed compatibility with numpy configuration in numpy's 1.22.0 release. ([1752](https://github.com/qutip/qutip/pull/1752) by Matthew Treinish)
- Added dims checks for e_ops passed to solvers to prevent hanging the calling process when e_ops of the wrong dimensions were passed. ([1778](https://github.com/qutip/qutip/pull/1778) by Eric Giguère)
- Added a check in Qobj constructor that the respective members of data.shape cannot be larger than what the corresponding dims could contain to prevent a segmentation fault caused by inconsistencies between dims and shapes. ([1783](https://github.com/qutip/qutip/pull/1783), [#1785](https://github.com/qutip/qutip/pull/1785), [#1784](https://github.com/qutip/qutip/pull/1784) by Lajos Palanki & Eric Giguère)

Documentation Improvements
--------------------------
- Added docs for the num_cbits parameter of the QubitCircuit class. ([1652](https://github.com/qutip/qutip/pull/1652) by Jon Crall)
- Fixed the parameters in the call to fsesolve in the Floquet guide. ([1675](https://github.com/qutip/qutip/pull/1675) by Simon Cross)
- Fixed the description of random number usage in the Monte Carlo solver guide. ([1677](https://github.com/qutip/qutip/pull/1677) by Ian Thorvaldson)
- Fixed the rendering of equation numbers in the documentation (they now appear on the right as expected, not above the equation). ([1678](https://github.com/qutip/qutip/pull/1678) by Simon Cross)
- Updated the installation requirements in the documentation to match what is specified in setup.py. ([1715](https://github.com/qutip/qutip/pull/1715) by Asier Galicia)
- Fixed a typo in the ``chi_to_choi`` documentation. Previously the documentation mixed up chi and choi. ([1731](https://github.com/qutip/qutip/pull/1731) by Pontus Wikståhl)
- Improved the documentation for the stochastic equation solvers. Added links to notebooks with examples, API doumentation and external references. ([1743](https://github.com/qutip/qutip/pull/1743) by Leonardo Assis)
- Fixed a typo in ``qutip.settings`` in the settings guide. ([1786](https://github.com/qutip/qutip/pull/1786) by Mahdi Aslani)
- Made numerous small improvements to the text of the QuTiP basics guide. ([1768](https://github.com/qutip/qutip/pull/1768) by Anna Naden)
- Made a small phrasing improvement to the README. ([1790](https://github.com/qutip/qutip/pull/1790) by Rita Abani)

Developer Changes
-----------------
- Improved test coverage of states and operators functions. ([1578](https://github.com/qutip/qutip/pull/1578) by Eric Giguère)
- Fixed test_interpolate mcsolve use ([1645](https://github.com/qutip/qutip/pull/1645) by Eric Giguère)
- Ensured figure plots are explicitly closed during tests so that the test suite passes when run headless under Xvfb. ([1648](https://github.com/qutip/qutip/pull/1648) by Simon Cross)
- Bumped the version of pillow used to build documentation from 8.2.0 to 9.0.0. ([1654](https://github.com/qutip/qutip/pull/1654), [#1760](https://github.com/qutip/qutip/pull/1760) by dependabot)
- Bumped the version of babel used to build documentation from 2.9.0 to 2.9.1. ([1695](https://github.com/qutip/qutip/pull/1695) by dependabot)
- Bumped the version of numpy used to build documentation from 1.19.5 to 1.21.0. ([1767](https://github.com/qutip/qutip/pull/1767) by dependabot)
- Bumped the version of ipython used to build documentation from 7.22.0 to 7.31.1. ([1780](https://github.com/qutip/qutip/pull/1780) by dependabot)
- Rename qutip.bib to CITATION.bib to enable GitHub's citation support. ([1662](https://github.com/qutip/qutip/pull/1662) by Ashish Panigrahi)
- Added tests for simdiags. ([1681](https://github.com/qutip/qutip/pull/1681) by Eric Giguère)
- Added support for specifying the numpy version in the CI test matrix. ([1696](https://github.com/qutip/qutip/pull/1696) by Simon Cross)
- Fixed the skipping of the dnorm metric tests if cvxpy is not installed. Previously all metrics tests were skipped by accident. ([1704](https://github.com/qutip/qutip/pull/1704) by Florian Hopfmueller)
- Added bug report, feature request and other options to the GitHub issue reporting template. ([1728](https://github.com/qutip/qutip/pull/1728) by Aryaman Kolhe)
- Updated the build process to support building on Python 3.10 by removing the build requirement for numpy < 1.20 and replacing it with a requirement on oldest-supported-numpy. ([1747](https://github.com/qutip/qutip/pull/1747) by Simon Cross)
- Updated the version of cibuildwheel used to build wheels to 2.3.0. ([1747](https://github.com/qutip/qutip/pull/1747), [#1751](https://github.com/qutip/qutip/pull/1751) by Simon Cross)
- Added project urls to linking to the source repository, issue tracker and documentation to setup.cfg. ([1779](https://github.com/qutip/qutip/pull/1779) by Simon Cross)
- Added a numpy 1.22 and Python 3.10 build to the CI test matrix. ([1777](https://github.com/qutip/qutip/pull/1777) by Simon Cross)
- Ignore deprecation warnings from SciPy 1.8.0 scipy.sparse.X imports in CI tests. ([1797](https://github.com/qutip/qutip/pull/1797) by Simon Cross)
- Add building of wheels for Python 3.10 to the cibuildwheel job. ([1796](https://github.com/qutip/qutip/pull/1796) by Simon Cross)

4.6.2

This minor release adds a function to calculate the quantum relative entropy, fixes a corner case in handling time-dependent Hamiltonians in mesolve and adds back support for a wider range of matplotlib versions when plotting or animating Bloch spheres.

It also adds a section in the README listing the papers which should be referenced while citing QuTiP.

Improvements
--------------
- Added a "Citing QuTiP" section to the README, containing a link to the QuTiP papers. (1554)
- Added entropy_relative which returns the quantum relative entropy between two density matrices. (1553)

Bug Fixes
----------

- Fixed Bloch sphere distortion when using Matplotlib >= 3.3.0. (1496)
- Removed use of integer-like floats in math.factorial since it is deprecated as of Python 3.9. (1550)
- Simplified call to ffmpeg used in the the Bloch sphere animation tutorial to work with recent versions of ffmpeg. (1557)
- Removed blitting in Bloch sphere FuncAnimation example. (1558)
- Added a version checking condition to handle specific functionalities depending on the matplotlib version. (1556)
- Fixed mesolve handling of time-dependent Hamiltonian with a custom tlist and c_ops. (1561)

Developer Changes
-------------------

- Read documentation version and release from the VERSION file.

4.6.1

This minor release fixes bugs in QIP gate definitions, fixes building from the source tarball when git is not installed and works around an MKL bug in versions of SciPy <= 1.4.

It also adds the ``[full]`` pip install target so that ``pip install qutip[full]`` installs qutip and all of its optional and developer dependencies.

Improvements
------------
- Add the ``[full]`` pip install target (by **Jake Lishman**)

Bug Fixes
---------
- Work around pointer MKL eigh bug in SciPy <= 1.4 (by **Felipe Bivort Haiek**)
- Fix berkeley, swapalpha and cz gate operations (by **Boxi Li**)
- Expose the CPHASE control gate (by **Boxi Li**)
- Fix building from the sdist when git is not installed (by **Jake Lishman**)

Developer Changes
-----------------
- Move the qutip-doc documentation into the qutip repository (by **Jake Lishman**)
- Fix warnings in documentation build (by **Jake Lishman**)
- Fix warnings in pytest runs and make pytest treat warnings as errors (by **Jake Lishman**)
- Add Simon Cross as author (by **Simon Cross**)

4.6.0

This release brings improvements for qubit circuits, including a pulse scheduler, measurement statistics, reading/writing OpenQASM and optimisations in the circuit simulations.

This is the first release to have full binary wheel releases on pip; you can now do ``pip install qutip`` on almost any machine to get a correct version of the package without needing any compilers set up. The support for Numpy 1.20 that was first added in QuTiP 4.5.3 is present in this version as well, and the same build considerations mentioned there apply here too. If building using the now-supported PEP 517 mechanisms (e.g. ``python -mbuild /path/to/qutip``), all build dependencies will be correctly satisfied.

Improvements
------------
- **MAJOR** Add saving, loading and resetting functionality to ``qutip.settings`` for easy re-configuration. (by **Eric Giguère**)
- **MAJOR** Add a quantum gate scheduler in ``qutip.qip.scheduler``, to help parallelise the operations of quantum gates. This supports two scheduling modes: as late as possible, and as soon as possible. (by **Boxi Li**)
- **MAJOR** Improved qubit circuit simulators, including OpenQASM support and performance optimisations. (by **Sidhant Saraogi**)
- **MAJOR** Add tools for quantum measurements and their statistics. (by **Simon Cross** and **Sidhant Saraogi**)
- Add support for Numpy 1.20. QuTiP should be compiled against a version of Numpy ``>= 1.16.6`` and ``< 1.20`` (note: does _not_ include 1.20 itself), but such an installation is compatible with any modern version of Numpy. Source installations from ``pip`` understand this constraint.
- Improve the error message when circuit plotting fails. (by **Boxi Li**)
- Add support for parsing M1 Mac hardware information. (by **Xiaoliang Wu**)
- Add more single-qubit gates and controlled gates. (by **Mateo Laguna** and **Martín Sande Costa**)
- Support decomposition of ``X``, ``Y`` and ``Z`` gates in circuits. (by **Boxi Li**)
- Refactor ``QubitCircuit.resolve_gate()`` (by **Martín Sande Costa**)

Bug Fixes
---------
- Fix ``dims`` in the returns from ``Qobj.eigenstates`` on superoperators. (by **Jake Lishman**)
- Calling Numpy ufuncs on ``Qobj`` will now correctly raise a ``TypeError`` rather than returning a nonsense ``ndarray``. (by **Jake Lishman**)
- Convert segfault into Python exception when creating too-large tensor products. (by **Jake Lishman**)
- Correctly set ``num_collapse`` in the output of ``mesolve``. (by **Jake Lishman**)
- Fix ``ptrace`` when all subspaces are being kept, or the subspaces are passed in order. (by **Jake Lishman**)
- Fix sorting bug in ``Bloch3d.add_points()``. (by **pschindler**)
- Fix invalid string literals in docstrings and some unclosed files. (by **Élie Gouzien**)
- Fix Hermicity tests for matrices with values that are within the tolerance of 0. (by **Jake Lishman**)
- Fix the trace norm being incorrectly reported as 0 for small matrices. (by **Jake Lishman**)
- Fix issues with ``dnorm`` when using CVXPy 1.1 with sparse matrices. (by **Felipe Bivort Haiek**)
- Fix segfaults in ``mesolve`` when passed a bad initial ``Qobj`` as the state. (by **Jake Lishman**)
- Fix sparse matrix construction in PIQS when using Scipy 1.6.1. (by **Drew Parsons**)
- Fix ``zspmv_openmp.cpp`` missing from the pip sdist. (by **Christoph Gohlke**)
- Fix correlation functions throwing away imaginary components. (by **Asier Galicia Martinez**)
- Fix ``QubitCircuit.add_circuit()`` for SWAP gate. (by **Canoming**)
- Fix the broken LaTeX image conversion. (by **Jake Lishman**)
- Fix gate resolution of the FREDKIN gate. (by **Bo Yang**)
- Fix broken formatting in docstrings. (by **Jake Lishman**)

Deprecations
------------
- ``eseries``, ``essolve`` and ``ode2es`` are all deprecated, pending removal in QuTiP 5.0. These are legacy functions and classes that have been left unmaintained for a long time, and their functionality is now better achieved with ``QobjEvo`` or ``mesolve``.

Developer Changes
-----------------
- **MAJOR** Overhaul of setup and packaging code to make it satisfy PEP 517, and move the build to a matrix on GitHub Actions in order to release binary wheels on pip for all major platforms and supported Python versions. (by **Jake Lishman**)
- Default arguments in ``Qobj`` are now ``None`` rather than mutable types. (by **Jake Lishman**)
- Fixed comsumable iterators being used to parametrise some tests, preventing the testing suite from being re-run within the same session. (by **Jake Lishman**)
- Remove unused imports, simplify some floats and remove unnecessary list conversions. (by **jakobjakobson13**)
- Improve Travis jobs matrix for specifying the testing containers. (by **Jake Lishman**)
- Fix coverage reporting on Travis. (by **Jake Lishman**)
- Added a ``pyproject.toml`` file. (by **Simon Humpohl** and **Eric Giguère**)
- Add doctests to documentation. (by **Sidhant Saraogi**)
- Fix all warnings in the documentation build. (by **Jake Lishman**)

4.5.3

This patch release adds support for Numpy 1.20, made necessary by changes to how array-like objects are handled. There are no other changes relative to version 4.5.2.

Users building from source should ensure that they _build_ against Numpy versions `>= 1.16.6` and `< 1.20` (_not_ including `1.20` itself), but after that or for those installing from `conda`, an installation will support any current Numpy version `>= 1.16.6`.

4.5.2

Bug Fixes
-------
- `zcsr_proj` does not fail with unsorted indices (by **Jake Lishman**)
- Fixed Milstein's heterodyne errors (by **Eric Giguère**)
- Removed risky code (by **Jake Lishman**)
- Fix datatype bug in lattice (by **Boxi Li**)
- eigh issues on mac with openBLAS fixed (by **Eric Giguère**)

Improvements
-------
- Faster `zcsr_inner` (by **Jake Lishman**)
- Support for Scipy 1.5 (by **Jake Lishman**)
- Better error message when installing without numpy (by **Eric Giguère**)

Book keeping
------
- Various code style improvements (by **Jake Lishman**)

Page 3 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.