code: def hfft(a, n=None, axis=-1, norm=None):
      """Compute the FFT of a signal that has Hermitian symmetry.
  
      Args:
          a (cupy.ndarray): Array to be transform.
          n (None or int): Length of the transformed axis of the output. For
              ``n`` output points, ``n//2+1`` input points are necessary. If
              ``n`` is not given, it is determined from the length of the input
              along the axis specified by ``axis``.
          axis (int): Axis over which to compute the FFT.
          norm (``"backward"``, ``"ortho"``, or ``"forward"``): Optional keyword
              to specify the normalization mode. Default is ``None``, which is
              an alias of ``"backward"``.
  
      Returns:
          cupy.ndarray:
              The transformed array which shape is specified by ``n`` and type
              will convert to complex if the input is other. If ``n`` is not
              given, the length of the transformed axis is ``2*(m-1)`` where `m`
              is the length of the transformed axis of the input.
  
      .. seealso:: :func:`numpy.fft.hfft`
      """
      return irfft(a.conj(), n, axis, _swap_direction(norm))
  
imports: import functools
  import math
  import numpy
  import cupy
  from cupy.fft import config
  from cupy.fft._cache import get_plan_cache
label_desc: Use image node_id 29 for calling a global function with example usage: hfft(a, n, axis, norm) and returns: irfft