code: def fft(seq, dps=None):
      r"""
      Performs the Discrete Fourier Transform (**DFT**) in the complex domain.
  
      The sequence is automatically padded to the right with zeros, as the
      *radix-2 FFT* requires the number of sample points to be a power of 2.
  
      This method should be used with default arguments only for short sequences
      as the complexity of expressions increases with the size of the sequence.
  
      Parameters
      ==========
  
      seq : iterable
          The sequence on which **DFT** is to be applied.
      dps : Integer
          Specifies the number of decimal digits for precision.
  
      Examples
      ========
  
      >>> from sympy import fft, ifft
  
      >>> fft([1, 2, 3, 4])
      [10, -2 - 2*I, -2, -2 + 2*I]
      >>> ifft(_)
      [1, 2, 3, 4]
  
      >>> ifft([1, 2, 3, 4])
      [5/2, -1/2 + I/2, -1/2, -1/2 - I/2]
      >>> fft(_)
      [1, 2, 3, 4]
  
      >>> ifft([1, 7, 3, 4], dps=15)
      [3.75, -0.5 - 0.75*I, -1.75, -0.5 + 0.75*I]
      >>> fft(_)
      [1.0, 7.0, 3.0, 4.0]
  
      References
      ==========
  
      .. [1] https://en.wikipedia.org/wiki/Cooley%E2%80%93Tukey_FFT_algorithm
      .. [2] https://mathworld.wolfram.com/FastFourierTransform.html
  
      """
  
      return _fourier_transform(seq, dps=dps)
  
file_path: sympy/sympy/discrete/transforms.py
imports: from sympy.core import S, Symbol, sympify
  from sympy.core.function import expand_mul
  from sympy.core.numbers import pi, I
  from sympy.functions.elementary.trigonometric import sin, cos
  from sympy.ntheory import isprime, primitive_root
  from sympy.utilities.iterables import ibin, iterable
  from sympy.utilities.misc import as_int
label_desc: Use image node_id 2 for calling a global function with example usage: fft(seq, dps) and returns: _fourier_transform