Qutip

Latest version: v5.0.4

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

Scan your dependencies

Page 3 of 6

4.7.2

This is a bugfix release for QuTiP 4.7.X. It adds support for numpy 1.25 and scipy 1.11.

**Bug Fixes**
- Fix setting of sso.m_ops in heterodyne smesolver and passing through of sc_ops to photocurrent solver. (2081 by Bogdan Reznychenko and Simon Cross)
- Update calls to SciPy eigvalsh and eigsh to pass the range of eigenvalues to return using `subset_by_index=`. (2081 by Simon Cross)
- Fixed bug where some matrices were wrongly found to be hermitian. (2082 by AGaliciaMartinez)

**Miscellaneous**
- Fixed typo in stochastic.py (2049, by eltociear)
- `ptrace` always return density matrix (2185, issue by udevd)
- `mesolve` can support mixed callable and `Qobj` for `e_ops` (2184 issue by balopat)

4.7.1

This is a bugfix release for QuTiP 4.7.X. In addition to the minor fixes listed below, the release adds builds for Python 3.11 and support for packaging 22.0.

Features
--------
- Improve qutip import times by setting logger names explicitly. (1980 by Pieter Eendebak)

Bug Fixes
---------
- Change floquet_master_equation_rates(...) to use an adaptive number of time steps scaled by the number of sidebands, kmax. (1961 by Christian Staufenbiel)
- Change fidelity(A, B) to use the reduced fidelity formula for pure states which is more numerically efficient and accurate. (1964 by Pierre Guilmin)
- Change `brmesolve` to raise an exception when ode integration is not successful. (1966 by Eric Giguère)
- Backport fix for IPython helper Bloch._repr_svg_ from dev.major. Previously the print_figure function returned bytes, but since ipython/ipython5452 (in 2014) it returns a Unicode string. This fix updates QuTiP's helper to match. (1970 by Asier Galicia)
- Fix correlation for case where only the collapse operators are time dependent. (1979 by Eric Giguère)
- Fix the hinton visualization method to plot the matrix instead of its transpose. (2011 by Pierre Guilmin)
- Fix the hinton visualization method to take into account all the matrix coefficients to set the squares scale, instead of only the diagonal coefficients. (2012 Pierre Guilmin)
- Fix parsing of package versions in setup.py to support packaging 22.0. (2037 by Simon Cross)
- Add back .qu suffix to objects saved with qsave and loaded with qload. The suffix was accidentally removed in QuTiP 4.7.0. (2038 by Simon Cross)
- Add a default max_step to processors. (2040 by Boxi Li)

Documentation
-------------
- Add towncrier for managing the changelog. (1927 by Trent Fridey)
- Update the version of numpy used to build documentation to 1.22.0. (1940 via dependabot)
- Clarify returned objects from bloch_redfield_tensor(). (1950 by Christian Staufenbiel)
- Update Floquet Markov solver docs. (1958 by Christian Staufenbiel)
- Update the roadmap and ideas to show completed work as of August 2022. (1967 by Simon Cross)

Miscellaneous
-------------
- Return TypeError instead of Exception for type error in sesolve argument. (1942 by Pieter Eendebak)
- Add towncrier draft build of changelog to CI tests. (1946 by Simon Cross)
- Add Python 3.11 to builds. (2041 by Simon Cross)
- Simplify version parsing by using packaging.version.Version. (2043 by Simon Cross)
- Update builds to use cibuildwheel 2.11, and to build with manylinux2014 on Python 3.8 and 3.9, since numpy and SciPy no longer support manylinux2010 on those versions of Python. (2047 by Simon Cross)

4.7.0

This release sees the addition of two new solvers -- `qutip.krylovsolve` based on the Krylov subspace approximation and `qutip.nonmarkov.heom` that reimplements the BoFiN HEOM solver.

Bloch sphere rendering gained support for drawing arcs and lines on the sphere, and for setting the transparency of rendered points and vectors, Hinton plots gained support for specifying a coloring style, and matrix histograms gained better default colors and more flexible styling options.

Other significant improvements include better scaling of the Floquet solver, support for passing `Path` objects when saving and loading files, support for passing callable functions as `e_ops` to `mesolve` and `sesolve`, and faster state number enumeration and Husimi Q functions.

Import bugfixes include some bugs affecting plotting with matplotlib 3.5 and fixing support for qutrits (and other non-qubit) quantum circuits.

The many other small improvements, bug fixes, documentation enhancements, and behind the scenese development changes are included in the list below.

QuTiP 4.7.X will be the last series of releases for QuTiP 4. Patch releases will continue for the 4.7.X series but the main development effort will move to QuTiP 5.

The many, many contributors who filed issues, submitted or reviewed pull requests, and improved the documentation for this release are listed next to their contributions below. Thank you to all of you.

Improvements

- **MAJOR** Added krylovsolve as a new solver based on krylov subspace approximation. ([1739](https://github.com/qutip/qutip/pull/1739) by Emiliano Fortes)
- **MAJOR** Imported BoFiN HEOM (https://github.com/tehruhn/bofin/) into QuTiP and replaced the HEOM solver with a compatibility wrapper around BoFiN bosonic solver. ([#1601](https://github.com/qutip/qutip/pull/1601), [#1726](https://github.com/qutip/qutip/pull/1726), and [#1724](https://github.com/qutip/qutip/pull/1724) by Simon Cross, Tarun Raheja and Neill Lambert)
- **MAJOR** Added support for plotting lines and arcs on the Bloch sphere. ([1690](https://github.com/qutip/qutip/pull/1690) by Gaurav Saxena, Asier Galicia and Simon Cross)
- Added transparency parameter to the add_point, add_vector and add_states methods in the Bloch and Bloch3d classes. ([1837](https://github.com/qutip/qutip/pull/1837) by Xavier Spronken)
- Support ``Path`` objects in ``qutip.fileio``. ([1813](https://github.com/qutip/qutip/pull/1813) by Adrià Labay)
- Improved the weighting in steadystate solver, so that the default weight matches the documented behaviour and the dense solver applies the weights in the same manner as the sparse solver. ([1275](https://github.com/qutip/qutip/pull/1275) and [#1802](https://github.com/qutip/qutip/pull/1802) by NS2 Group at LPS and Simon Cross)
- Added a ``color_style`` option to the ``hinton`` plotting function. ([1595](https://github.com/qutip/qutip/pull/1595) by Cassandra Granade)
- Improved the scaling of ``floquet_master_equation_rates`` and ``floquet_master_equation_tensor`` and fixed transposition and basis change errors in ``floquet_master_equation_tensor`` and ``floquet_markov_mesolve``. ([1248](https://github.com/qutip/qutip/pull/1248) by Camille Le Calonnec, Jake Lishman and Eric Giguère)
- Removed ``linspace_with`` and ``view_methods`` from ``qutip.utilities``. For the former it is far better to use ``numpy.linspace`` and for the later Python's in-built ``help`` function or other tools. ([1680](https://github.com/qutip/qutip/pull/1680) by Eric Giguère)
- Added support for passing callable functions as ``e_ops`` to ``mesolve`` and ``sesolve``. ([1655](https://github.com/qutip/qutip/pull/1655) by Marek Narożniak)
- Added the function ``steadystate_floquet``, which returns the "effective" steadystate of a periodic driven system. ([1660](https://github.com/qutip/qutip/pull/1660) by Alberto Mercurio)
- Improved mcsolve memory efficiency by not storing final states when they are not needed. ([1669](https://github.com/qutip/qutip/pull/1669) by Eric Giguère)
- Improved the default colors and styling of matrix_histogram and provided additional styling options. ([1573](https://github.com/qutip/qutip/pull/1573) and [#1628](https://github.com/qutip/qutip/pull/1628) by Mahdi Aslani)
- Sped up ``state_number_enumerate``, ``state_number_index``, ``state_index_number``, and added some error checking. ``enr_state_dictionaries`` now returns a list for ``idx2state``. ([1604](https://github.com/qutip/qutip/pull/1604) by Johannes Feist)
- Added new Husimi Q algorithms, improving the speed for density matrices, and giving a near order-of-magnitude improvement when calculating the Q function for many different states, using the new ``qutip.QFunc`` class, instead of the ``qutip.qfunc`` function. ([934](https://github.com/qutip/qutip/pull/934) and [#1583](https://github.com/qutip/qutip/pull/1583) by Daniel Weigand and Jake Lishman)
- Updated licence holders with regards to new governance model, and remove extraneous licensing information from source files. ([1579](https://github.com/qutip/qutip/pull/1579) by Jake Lishman)
- Removed the vendored copy of LaTeX's qcircuit package which is GPL licensed. We now rely on the package being installed by user. It is installed by default with TexLive. ([1580](https://github.com/qutip/qutip/pull/1580) by Jake Lishman)
- The signatures of rand_ket and rand_ket_haar were changed to allow N (the size of the random ket) to be determined automatically when dims are specified. ([1509](https://github.com/qutip/qutip/pull/1509) by Purva Thakre)

Bug Fixes

- Fix circuit index used when plotting circuits with non-reversed states. ([1847](https://github.com/qutip/qutip/pull/1847) by Christian Staufenbiel)
- Changed implementation of ``qutip.orbital`` to use ``scipy.special.spy_harm`` to remove bugs in angle interpretation. ([1844](https://github.com/qutip/qutip/pull/1844) by Christian Staufenbiel)
- Fixed ``QobjEvo.tidyup`` to use ``settings.auto_tidyup_atol`` when removing small elements in sparse matrices. ([1832](https://github.com/qutip/qutip/pull/1832) by Eric Giguère)
- Ensured that tidyup's default tolerance is read from settings at each call. ([1830](https://github.com/qutip/qutip/pull/1830) by Eric Giguère)
- Fixed ``scipy.sparse`` deprecation warnings raised by ``qutip.fast_csr_matrix``. ([1827](https://github.com/qutip/qutip/pull/1827) by Simon Cross)
- Fixed rendering of vectors on the Bloch sphere when using matplotlib 3.5 and above. ([1818](https://github.com/qutip/qutip/pull/1818) by Simon Cross)
- Fixed the displaying of ``Lattice1d`` instances and their unit cells. Previously calling them raised exceptions in simple cases. ([1819](https://github.com/qutip/qutip/pull/1819), [#1697](https://github.com/qutip/qutip/pull/1697) and [#1702](https://github.com/qutip/qutip/pull/1702) by Simon Cross and Saumya Biswas)
- Fixed the displaying of the title for ``hinton`` and ``matrix_histogram`` plots when a title is given. Previously the supplied title was not displayed. ([1707](https://github.com/qutip/qutip/pull/1707) by Vladimir Vargas-Calderón)
- Removed an incorrect check on the initial state dimensions in the ``QubitCircuit`` constructor. This allows, for example, the construction of qutrit circuits. ([1807](https://github.com/qutip/qutip/pull/1807) by Boxi Li)
- Fixed the checking of ``method`` and ``offset`` parameters in ``coherent`` and ``coherent_dm``. ([1469](https://github.com/qutip/qutip/pull/1469) and [#1741](https://github.com/qutip/qutip/pull/1741) by Joseph Fox-Rabinovitz and Simon Cross)
- Removed the Hamiltonian saved in the ``sesolve`` solver results. ([1689](https://github.com/qutip/qutip/pull/1689) by Eric Giguère)
- Fixed a bug in rand_herm with ``pos_def=True`` and ``density>0.5`` where the diagonal was incorrectly filled. ([1562](https://github.com/qutip/qutip/pull/1562) by Eric Giguère)

Documentation Improvements

- Added contributors image to the documentation. ([1828](https://github.com/qutip/qutip/pull/1828) by Leonard Assis)
- Fixed the Theory of Quantum Information bibliography link. ([1840](https://github.com/qutip/qutip/pull/1840) by Anto Luketina)
- Fixed minor grammar errors in the dynamics guide. ([1822](https://github.com/qutip/qutip/pull/1822) by Victor Omole)
- Fixed many small documentation typos. ([1569](https://github.com/qutip/qutip/pull/1569) by Ashish Panigrahi)
- Added Pulser to the list of libraries that use QuTiP. ([1570](https://github.com/qutip/qutip/pull/1570) by Ashish Panigrahi)
- Corrected typo in the states and operators guide. ([1567](https://github.com/qutip/qutip/pull/1567) by Laurent Ajdnik)
- Converted http links to https. ([1555](https://github.com/qutip/qutip/pull/1555) by Jake Lishamn)

Developer Changes

- Add GitHub actions test run on windows-latest. ([1853](https://github.com/qutip/qutip/pull/1853) and [#1855](https://github.com/qutip/qutip/pull/1855) by Simon Cross)
- Bumped the version of pillow used to build documentation from 9.0.0 to 9.0.1. ([1835](https://github.com/qutip/qutip/pull/1835) by dependabot)
- Migrated the ``qutip.superop_reps`` tests to pytest. ([1825](https://github.com/qutip/qutip/pull/1825) by Felipe Bivort Haiek)
- Migrated the ``qutip.steadystates`` tests to pytest. ([1679](https://github.com/qutip/qutip/pull/1679) by Eric Giguère)
- Changed the README.md CI badge to the GitHub Actions badge. ([1581](https://github.com/qutip/qutip/pull/1581) by Jake Lishman)
- Updated CodeClimate configuration to treat our Python source files as Python 3. ([1577](https://github.com/qutip/qutip/pull/1577) by Jake Lishman)
- Reduced cyclomatic complexity in ``qutip._mkl``. ([1576](https://github.com/qutip/qutip/pull/1576) by Jake Lishman)
- Fixed PEP8 warnings in ``qutip.control``, ``qutip.mcsolve``, ``qutip.random_objects``, and ``qutip.stochastic``. ([1575](https://github.com/qutip/qutip/pull/1575) by Jake Lishman)
- Bumped the version of urllib3 used to build documentation from 1.26.4 to 1.26.5. ([1563](https://github.com/qutip/qutip/pull/1563) by dependabot)
- Moved tests to GitHub Actions. ([1551](https://github.com/qutip/qutip/pull/1551) by Jake Lishman)
- The GitHub contributing guidelines were re-added and updated to point to the more complete guidelines in the documentation. ([1549](https://github.com/qutip/qutip/pull/1549) by Jake Lishman)
- The release documentation was reworked after the initial 4.6.1 to match the actual release process. ([1544](https://github.com/qutip/qutip/pull/1544) by Jake Lishman)

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**)

Page 3 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.