Qutip

Latest version: v5.0.4

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

Scan your dependencies

Page 4 of 6

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

4.5.1

Bug Fixes
-------
- Safer naming for temporary files. (by **Eric Giguère**)
- Better error message for failed string coefficient compilation. (issue raised by **nohchangsuk**)
- Fix `clebsch` function for half-integer (by **Thomas Walker**)
- Fix `randint`'s `dtype` to `uint32` for compatibility with windows. (issue raised by **BoxiLi**)
- Corrected `stochastic`'s heterodyne's m_ops (by **eliegenois**)
- Mac pool use spawn. (issue raised by **goerz**)
- Fix typos in `QobjEvo._shift`. (by **Eric Giguère**)

Improvements
-------
- Run the python 3.8 test in travis in linux. (by **Simon Cross**)
- Moved other tests to 3.8. (by **Eric Giguère**)
- Fix travis warning (by **Ivan Carvalho**)
- `husimi` / `wigner` functions adapted to accept half integer spin. (by **maij**)

Book keeping
--------
- Add Boxi Li to authors. (by **Alex Pitchford**)
- Deprecate graph function (by **Jake Lishman**)
- Skip tests that cause segfault on mac. (by **Nathan Shammah** and **Eric Giguère**)

4.5.0

++++++++++++++++++++++++++++++

Improvements
------------
- **MAJOR FEATURE**: Added `qip.noise`, a module with pulse level description of quantum circuits allowing to model various types of noise and devices (by **Boxi Li**).

- **MAJOR FEATURE**: Added `qip.lattice`, a module for the study of lattice dynamics in 1D (by **Saumya Biswas**).

- Migrated testing from Nose to PyTest (by **Tarun Raheja**).

- Optimized testing for PyTest and removed duplicated test runners (by **Jake Lishman**).

- Deprecated importing `qip` functions to the qutip namespace (by **Boxi Li**).

- Added the possibility to define non-square superoperators relevant for quantum circuits (by **Arne Grimsmo** and **Josh Combes**).

- Implicit tensor product for `qeye`, `qzero` and `basis` (by **Jake Lishman**).

- QObjEvo no longer requires Cython for string coefficient (by **Eric Giguère**).

- Added marked tests for faster tests in `testing.run()` and made faster OpenMP benchmarking in CI (by **Eric Giguère**).

- Added entropy and purity for Dicke density matrices, refactored into more general dicke_trace (by **Nathan Shammah**).

- Added option for specifying resolution in Bloch.save function (by **Tarun Raheja**).

- Added information related to the value of hbar in `wigner` and `continuous_variables` (by **Nicolas Quesada**).

- Updated requirements for `scipy 1.4` (by **Eric Giguère**).

- Added previous lead developers to the qutip.about() message (by **Nathan Shammah**).

- Added improvements to `Qobj` introducing the `inv` method and making the partial trace, `ptrace`, faster, keeping both sparse and dense methods (by **Eric Giguère**).

- Allowed general callable objects to define a time-dependent Hamiltonian (by **Eric Giguère**).

- Added feature so that `QobjEvo` no longer requires Cython for string coefficients (by **Eric Giguère**).

- Updated authors list on Github and added `my binder` link (by **Nathan Shammah**).


Bug Fixes
---------

- Fixed `PolyDataMapper` construction for `Bloch3d` (by **Sam Griffiths**).

- Fixed error checking for null matrix in essolve (by **Nathan Shammah**).

- Fixed name collision for parallel propagator (by **Nathan Shammah**).

- Fixed dimensional incongruence in `propagator` (by **Nathan Shammah**)

- Fixed bug by rewriting clebsch function based on long integer fraction (by **Eric Giguère**).

- Fixed bugs in QobjEvo's args depending on state and added solver tests using them (by **Eric Giguère**).

- Fixed bug in `sesolve` calculation of average states when summing the timeslot states (by **Alex Pitchford**).

- Fixed bug in `steadystate` solver by removing separate arguments for MKL and Scipy (by **Tarun Raheja**).

- Fixed `Bloch.add_ponts` by setting `edgecolor = None` in `plot_points` (by **Nathan Shammah**).

- Fixed error checking for null matrix in `essolve` solver affecting also `ode2es` (by **Peter Kirton**).

- Removed unnecessary shebangs in .pyx and .pxd files (by **Samesh Lakhotia**).

- Fixed `sesolve` and import of `os` in `codegen` (by **Alex Pitchford**).

- Updated `plot_fock_distribution` by removing the offset value 0.4 in the plot (by **Rajiv-B**).

4.4.1

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

- Fixed the pickling but that made solver unable to run in parallel on Windows. (Thank **lrunze** for reporting)
- Removed warning when mesolve fall back on sesolve (by **Michael Goerz**).
- Fixed dimension check and confusing documentation in random ket (by **Yariv Yanay**).
- Fixed Qobj isherm not working after using Qobj.permute. (Thank **llorz1207** for reporting)
- Correlation functions call now properly handle multiple time dependant functions. (Thank **taw181** for reporting)
- Removed mutable default values in mesolve/sesolve (by **Michael Goerz**)
- Fixed simdiag bug (Thank **Croydon-Brixton** for reporting)
- Better support of constant QobjEvo. (by **Boxi Li**)

Improvements
------------------

- QobjEvo do not need to start from 0 anymore. (by **Eric Giguere**)
- Add a quantum object purity function. (by **Nathan Shammah** and **Shahnawaz Ahmed**)
- Add step function interpolation for array time-coefficient. (by **Boxi Li**)

Page 4 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.