Skip to content

Commit

Permalink
qinfo module deprecations and removals (#5911)
Browse files Browse the repository at this point in the history
**Context:**

As part of our v0.39 deprecation cycle, `qinfo` will be deprecated. All
PRs for deprecating each function can be merged to here,

**Description of the Change:**

Deprecates `qinfo`. Specifically:

- [x] deprecate `qinfo.mutual_info`:
#5917
- [x] deprecate `qinfo.reduced_dm`:
#5915
- [x] deprecate `qinfo.purity`:
#5916
- [x] deprecate `qinfo.vn_entropy`:
#5912
- [x] deprecate `qinfo.vn_entanglement_entropy`
#5914
- [x] deprecate `qinfo.fidelity`:
#5915
- [x] deprecate `qinfo.relative_entropy`:
#5915
- [x] deprecate `qinfo.trace_distance`
- [x] remove `qinfo.classical_fisher`
- [x] remove `qinfo.quantum_fisher`

**Benefits:**

Desired UI and less redundancies.

**Possible Drawbacks:**

None

**Related GitHub Issues:**

[sc-67217] [sc-67216] [sc-66716] [sc-66715] [sc-66714] [sc-66713]
[sc-67664] [sc-67665] [sc-67663] [sc-67446]

---------

Co-authored-by: Mudit Pandey <mudit.pandey@xanadu.ai>
Co-authored-by: Astral Cai <astral.cai@xanadu.ai>
Co-authored-by: Ahmed Darwish <exclass9.24@gmail.com>
Co-authored-by: Cristian Emiliano Godinez Ramirez <57567043+EmilianoG-byte@users.noreply.github.com>
Co-authored-by: Ali Asadi <10773383+maliasadi@users.noreply.github.com>
Co-authored-by: albi3ro <chrissie.c.l@gmail.com>
Co-authored-by: Christina Lee <christina@xanadu.ai>
Co-authored-by: ringo-but-quantum <github-ringo-but-quantum@xanadu.ai>
Co-authored-by: David Wierichs <david.wierichs@xanadu.ai>
Co-authored-by: Thomas R. Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: Korbinian Kottmann <43949391+Qottmann@users.noreply.github.com>
Co-authored-by: Tonmoy Bhattacharya <ultraton_16@yahoo.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Vincent Michaud-Rioux <vincent.michaud-rioux@xanadu.ai>
Co-authored-by: Matthew Silverman <matthews@xanadu.ai>
Co-authored-by: Guillermo Alonso-Linaje <65235481+KetpuntoG@users.noreply.github.com>
Co-authored-by: Utkarsh <utkarshazad98@gmail.com>
Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com>
Co-authored-by: Romain Moyard <rmoyard@gmail.com>
Co-authored-by: Diksha Dhawan <40900030+ddhawan11@users.noreply.github.com>
Co-authored-by: soranjh <soran.jahangiri@gmail.com>
Co-authored-by: Jorge J. Martínez de Lejarza <61199780+gmlejarza@users.noreply.github.com>
Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>
Co-authored-by: Alex Preciado <alex.preciado@xanadu.ai>
Co-authored-by: Mikhail Andrenkov <mikhail@xanadu.ai>
Co-authored-by: Jack Brown <jack@xanadu.ai>
Co-authored-by: Austin Huang <65315367+austingmhuang@users.noreply.github.com>
Co-authored-by: Pietropaolo Frisoni <pietropaolo.frisoni@xanadu.ai>
Co-authored-by: Justin Pickering <79890410+justinpickering@users.noreply.github.com>
Co-authored-by: lillian542 <38584660+lillian542@users.noreply.github.com>
Co-authored-by: Will <wmaxwell90@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Lee James O'Riordan <mlxd@users.noreply.github.com>
Co-authored-by: Pietropaolo Frisoni <pietropfrisoni@gmail.com>
  • Loading branch information
1 parent 02f7efa commit 1d28c69
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 6 deletions.
8 changes: 6 additions & 2 deletions doc/code/qml_qinfo.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,12 @@ qml.qinfo
Overview
--------

.. warning::
The `qinfo` module is deprecated and scheduled to be removed in v0.40.
.. warning::

The ``qinfo`` module is deprecated and scheduled to be removed in v0.40. Most quantum information transforms
are available as measurement processes (see the :mod:`~pennylane.measurements` module for more details).
Additionally, the transforms are also available as standalone functions in the :mod:`~pennylane.math` and
:mod:`~pennylane.gradients` modules.

This module provides a collection of methods to return quantum information quantities from :class:`~.QNode`
returning :func:`~pennylane.state`.
Expand Down
14 changes: 13 additions & 1 deletion doc/development/deprecations.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,18 @@ deprecations are listed below.
Pending deprecations
--------------------

* The ``qml.qinfo`` module has been deprecated. Please see the respective functions in the ``qml.math`` and ``qml.measurements``
modules instead.

- Deprecated in v0.39
- Will be removed in v0.40

* ``Device``, ``QubitDevice``, and ``QutritDevice`` will no longer be imported top level in v0.40. They instead
we be available as ``qml.devices.LegacyDevice``, ``qml.devices.QubitDevice``, and ``qml.devices.QutritDevice``
respectively.

- Deprecated top level access in v0.39
- Top level access removed in v0.40
- Top level access will be removed in v0.40

* `QNode.gradient_fn` is deprecated. Please use `QNode.diff_method` instead. `QNode.get_gradient_fn` can also be used to
process the diff method.
Expand Down Expand Up @@ -83,6 +89,12 @@ Other deprecations
Completed deprecation cycles
----------------------------

* The functions ``qml.qinfo.classical_fisher`` and ``qml.qinfo.quantum_fisher`` have been removed and migrated to the ``qml.gradients``
module. Therefore, ``qml.gradients.classical_fisher`` and ``qml.gradients.quantum_fisher`` should be used instead.

- Deprecated in v0.38
- Removed in v0.39

* All of the legacy devices (any with the name ``default.qubit.{autograd,torch,tf,jax,legacy}``) are removed. Use ``default.qubit`` instead,
as it supports backpropagation for the many backends the legacy devices support.

Expand Down
4 changes: 4 additions & 0 deletions doc/releases/changelog-dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,10 @@

<h3>Deprecations 👋</h3>

* The `qml.qinfo` module has been deprecated. Please see the respective functions in the `qml.math` and
`qml.measurements` modules instead.
[(#5911)](https://github.com/PennyLaneAI/pennylane/pull/5911)

* The ``QubitStateVector`` template is deprecated.
Instead, use ``StatePrep``.
[(#6172)](https://github.com/PennyLaneAI/pennylane/pull/6172)
Expand Down
2 changes: 1 addition & 1 deletion pennylane/measurements/mutual_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def circuit_mutual(x):
using the classical backpropagation differentiation method (``diff_method="backprop"``)
with a compatible device and finite differences (``diff_method="finite-diff"``).
.. seealso:: :func:`~.vn_entropy`, :func:`pennylane.qinfo.transforms.mutual_info` and :func:`pennylane.math.mutual_info`
.. seealso:: :func:`~pennylane.vn_entropy`, :func:`pennylane.math.mutual_info`
"""
wires0 = qml.wires.Wires(wires0)
wires1 = qml.wires.Wires(wires1)
Expand Down
2 changes: 1 addition & 1 deletion pennylane/measurements/purity.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def circuit_purity(p):
>>> circuit_purity(0.1)
array(0.7048)
.. seealso:: :func:`pennylane.qinfo.transforms.purity` and :func:`pennylane.math.purity`
.. seealso:: :func:`pennylane.math.purity`
"""
wires = Wires(wires)
return PurityMP(wires=wires)
Expand Down
2 changes: 1 addition & 1 deletion pennylane/measurements/vn_entropy.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def circuit_entropy(x):
using the classical backpropagation differentiation method (``diff_method="backprop"``)
with a compatible device and finite differences (``diff_method="finite-diff"``).
.. seealso:: :func:`pennylane.qinfo.transforms.vn_entropy` and :func:`pennylane.math.vn_entropy`
.. seealso:: :func:`pennylane.math.vn_entropy`
"""
wires = Wires(wires)
return VnEntropyMP(wires=wires, log_base=log_base)
Expand Down

0 comments on commit 1d28c69

Please sign in to comment.