code: def IsingZZ(phi):
      r"""Ising ZZ coupling gate
  
      .. math:: ZZ(\phi) = \begin{bmatrix}
          e^{-i \phi / 2} & 0 & 0 & 0 \\
          0 & e^{i \phi / 2} & 0 & 0 \\
          0 & 0 & e^{i \phi / 2} & 0 \\
          0 & 0 & 0 & e^{-i \phi / 2}
          \end{bmatrix}.
  
      Args:
          phi (float): rotation angle :math:`\phi`
      Returns:
          array[complex]: unitary 4x4 rotation matrix
      """
      e_m = math.exp(-1j * phi / 2)
      e = math.exp(1j * phi / 2)
      return math.array(
          [[e_m, 0, 0, 0], [0, e, 0, 0], [0, 0, e, 0], [0, 0, 0, e_m]]
      )
  
imports: import pennylane
  from pennylane import numpy
  from pennylane import math
label_desc: Use image node_id 18 for calling a global function with example usage: IsingZZ(phi) and returns: math