code: def eig(
      x: Union[tf.Tensor, tf.Variable],
      /,
      *,
      out: Optional[Union[tf.Tensor, tf.Variable]] = None,
  ) -> Tuple[Union[tf.Tensor, tf.Variable]]:
      result_tuple = NamedTuple(
          "eig",
          [
              ("eigenvalues", Union[tf.Tensor, tf.Variable]),
              ("eigenvectors", Union[tf.Tensor, tf.Variable]),
          ],
      )
      eigenvalues, eigenvectors = tf.linalg.eig(x)
      return result_tuple(eigenvalues, eigenvectors)
  
imports: from typing import Union, Optional, Tuple, Literal, List, NamedTuple, Sequence
  from collections import namedtuple
  import tensorflow
  from tensorflow.python.framework.dtypes import DType
  import ivy
  from ivy import inf
  from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes
  from .None import backend_version
label_desc: Use image node_id 5 for calling a global function with example usage: eig() and returns: result_tuple