code: def mutual_info(wires0, wires1, log_base=None):
      r"""Mutual information between the subsystems prior to measurement:
  
      .. math::
  
          I(A, B) = S(\rho^A) + S(\rho^B) - S(\rho^{AB})
  
      where :math:`S` is the von Neumann entropy.
  
      The mutual information is a measure of correlation between two subsystems.
      More specifically, it quantifies the amount of information obtained about
      one system by measuring the other system.
  
      Args:
          wires0 (Sequence[int] or int): the wires of the first subsystem
          wires1 (Sequence[int] or int): the wires of the second subsystem
          log_base (float): Base for the logarithm.
  
      Returns:
          MutualInfoMP: measurement process instance
  
      **Example:**
  
      .. code-block:: python3
  
          dev = qml.device("default.qubit", wires=2)
  
          @qml.qnode(dev)
          def circuit_mutual(x):
              qml.IsingXX(x, wires=[0, 1])
              return qml.mutual_info(wires0=[0], wires1=[1])
  
      Executing this QNode:
  
      >>> circuit_mutual(np.pi/2)
      1.3862943611198906
  
      It is also possible to get the gradient of the previous QNode:
  
      >>> param = np.array(np.pi/4, requires_grad=True)
      >>> qml.grad(circuit_mutual)(param)
      tensor(1.24645048, requires_grad=True)
  
      .. note::
  
          Calculating the derivative of :func:`~.mutual_info` is currently supported when
          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`
      """
      wires0 = qml.wires.Wires(wires0)
      wires1 = qml.wires.Wires(wires1)
  
      # the subsystems cannot overlap
      if [wire for wire in wires0 if wire in wires1]:
          raise qml.QuantumFunctionError(
              "Subsystems for computing mutual information must not overlap."
          )
      return MutualInfoMP(wires=(wires0, wires1), log_base=log_base)
  
file_path: pennylane/pennylane/measurements/mutual_info.py
imports: from copy import copy
  from typing import Sequence, Optional
  import pennylane
  from pennylane.wires import Wires
  from .measurements import MutualInfo, StateMeasurement
label_desc: Use image node_id 1 for calling a global function with example usage: mutual_info(wires0, wires1, log_base) and returns: MutualInfoMP