parameters: (x, n=None, axis=-1, overwrite_x=False)
return_statement: return swapaxes(tmp, axis, -1)
docstring: Return discrete inverse Fourier transform of real or complex sequence.
  
      The returned complex array contains ``y(0), y(1),..., y(n-1)`` where
  
      ``y(j) = (x * exp(2*pi*sqrt(-1)*j*np.arange(n)/n)).mean()``.
  
      Parameters
      ----------
      x : array_like
          Transformed data to invert.
      n : int, optional
          Length of the inverse Fourier transform.  If ``n < x.shape[axis]``,
          `x` is truncated.  If ``n > x.shape[axis]``, `x` is zero-padded.
          The default results in ``n = x.shape[axis]``.
      axis : int, optional
          Axis along which the ifft's are computed; the default is over the
          last axis (i.e., ``axis=-1``).
      overwrite_x : bool, optional
          If True, the contents of `x` can be destroyed; the default is False.
  
      Returns
      -------
      ifft : ndarray of floats
          The inverse discrete Fourier transform.
  
      See Also
      --------
      fft : Forward FFT
  
      Notes
      -----
      Both single and double precision routines are implemented.  Half precision
      inputs will be converted to single precision.  Non floating-point inputs
      will be converted to double precision.  Long-double precision inputs are
      not supported.
  
      This function is most efficient when `n` is a power of two, and least
      efficient when `n` is prime.
  
      If the data type of `x` is real, a "real IFFT" algorithm is automatically
      used, which roughly halves the computation time.
  
      Examples
      --------
      >>> from scipy.fftpack import fft, ifft
      >>> import numpy as np
      >>> x = np.arange(5)
      >>> np.allclose(ifft(fft(x)), x, atol=1e-15)  # within numerical accuracy.
      True
docstring_summary: Return discrete inverse Fourier transform of real or complex sequence.
docstring_tokens: Return discrete inverse Fourier transform of real or complex sequence .
function: def ifft(x, n=None, axis=-1, overwrite_x=False):
      """
      Return discrete inverse Fourier transform of real or complex sequence.
  
      The returned complex array contains ``y(0), y(1),..., y(n-1)`` where
  
      ``y(j) = (x * exp(2*pi*sqrt(-1)*j*np.arange(n)/n)).mean()``.
  
      Parameters
      ----------
      x : array_like
          Transformed data to invert.
      n : int, optional
          Length of the inverse Fourier transform.  If ``n < x.shape[axis]``,
          `x` is truncated.  If ``n > x.shape[axis]``, `x` is zero-padded.
          The default results in ``n = x.shape[axis]``.
      axis : int, optional
          Axis along which the ifft's are computed; the default is over the
          last axis (i.e., ``axis=-1``).
      overwrite_x : bool, optional
          If True, the contents of `x` can be destroyed; the default is False.
  
      Returns
      -------
      ifft : ndarray of floats
          The inverse discrete Fourier transform.
  
      See Also
      --------
      fft : Forward FFT
  
      Notes
      -----
      Both single and double precision routines are implemented.  Half precision
      inputs will be converted to single precision.  Non floating-point inputs
      will be converted to double precision.  Long-double precision inputs are
      not supported.
  
      This function is most efficient when `n` is a power of two, and least
      efficient when `n` is prime.
  
      If the data type of `x` is real, a "real IFFT" algorithm is automatically
      used, which roughly halves the computation time.
  
      Examples
      --------
      >>> from scipy.fftpack import fft, ifft
      >>> import numpy as np
      >>> x = np.arange(5)
      >>> np.allclose(ifft(fft(x)), x, atol=1e-15)  # within numerical accuracy.
      True
  
      """
      tmp = _asfarray(x)
  
      try:
          work_function = _DTYPE_TO_FFT[tmp.dtype]
      except KeyError:
          raise ValueError("type %s is not supported" % tmp.dtype)
  
      if not (istype(tmp, numpy.complex64) or istype(tmp, numpy.complex128)):
          overwrite_x = 1
  
      overwrite_x = overwrite_x or _datacopied(tmp, x)
  
      if n is None:
          n = tmp.shape[axis]
      elif n != tmp.shape[axis]:
          tmp, copy_made = _fix_shape(tmp,n,axis)
          overwrite_x = overwrite_x or copy_made
  
      if n < 1:
          raise ValueError("Invalid number of FFT data points "
                           "(%d) specified." % n)
  
      if axis == -1 or axis == len(tmp.shape) - 1:
          return work_function(tmp,n,-1,1,overwrite_x)
  
      tmp = swapaxes(tmp, axis, -1)
      tmp = work_function(tmp,n,-1,1,overwrite_x)
      return swapaxes(tmp, axis, -1)
function_tokens: def ifft ( x , n = None , axis = - 1 , overwrite_x = False ) : tmp = _asfarray ( x ) try : work_function = _DTYPE_TO_FFT [ tmp . dtype ] except KeyError : raise ValueError ( "type %s is not supported" % tmp . dtype ) if not ( istype ( tmp , numpy . complex64 ) or istype ( tmp , numpy . complex128 ) ) : overwrite_x = 1 overwrite_x = overwrite_x or _datacopied ( tmp , x ) if n is None : n = tmp . shape [ axis ] elif n != tmp . shape [ axis ] : tmp , copy_made = _fix_shape ( tmp , n , axis ) overwrite_x = overwrite_x or copy_made if n < 1 : raise ValueError ( "Invalid number of FFT data points " "(%d) specified." % n ) if axis == - 1 or axis == len ( tmp . shape ) - 1 : return work_function ( tmp , n , - 1 , 1 , overwrite_x ) tmp = swapaxes ( tmp , axis , - 1 ) tmp = work_function ( tmp , n , - 1 , 1 , overwrite_x ) return swapaxes ( tmp , axis , - 1 )