code: def eig(
      x: Union[ivy.Array, ivy.NativeArray],
      /,
      *,
      out: Optional[ivy.Array] = None,
  ) -> Tuple[Union[ivy.Array, ivy.NativeArray]]:
      """Return an eigendecomposition x = QLQᵀ of a symmetric matrix (or a stack
      of symmetric matrices) ``x``, where ``Q`` is an orthogonal matrix (or a
      stack of matrices) and ``L`` is a vector (or a stack of vectors).
  
      .. note::
         The function ``eig`` currently behaves like ``eigh``, as
         it requires complex number support, once complex numbers are supported,
         x does not need to be a complex Hermitian or real symmetric matrix.
  
  
      Parameters
      ----------
      x
          input array having shape ``(..., M, M)`` and whose innermost two dimensions form
          square matrices. Must have a floating-point data type.
  
      Returns
      -------
      ret
          a namedtuple (``eigenvalues``, ``eigenvectors``) whose
  
          -   first element must have the field name ``eigenvalues`` (corresponding to
              ``L`` above) and must be an array consisting of computed eigenvalues. The
              array containing the eigenvalues must have shape ``(..., M)``.
          -   second element have have the field name ``eigenvectors`` (corresponding to
              ``Q`` above) and must be an array where the columns of the inner most
              matrices contain the computed eigenvectors. These matrices must be
              orthogonal. The array containing the eigenvectors must have shape
              ``(..., M, M)``.
  
          -   Each returned array must have the same floating-point data type as ``x``.
  
      .. note::
         Eigenvalue sort order is left unspecified and is thus implementation-dependent.
      """
      return current_backend(x).eig(x, out=out)
  
imports: from typing import Union, Optional, Tuple, Literal, List, Sequence
  import ivy
  from ivy.utils.backend import current_backend
  from ivy.func_wrapper import handle_array_function, to_native_arrays_and_back, handle_out_argument, handle_nestable, handle_array_like_without_promotion, handle_device, handle_backend_invalid
  from ivy.utils.exceptions import handle_exceptions
label_desc: Use image node_id 5 for calling a global function with example usage: eig() and returns: current_backend