code: def var(
      x: Union[tf.Tensor, tf.Variable],
      /,
      *,
      axis: Optional[Union[int, Sequence[int]]] = None,
      correction: Union[int, float] = 0.0,
      keepdims: bool = False,
      out: Optional[Union[tf.Tensor, tf.Variable]] = None,
  ) -> Union[tf.Tensor, tf.Variable]:
      if axis is None:
          axis = tuple(range(len(x.shape)))
      axis = (axis,) if isinstance(axis, int) else tuple(axis)
      size = 1
      for a in axis:
          size *= x.shape[a]
      if size - correction <= 0:
          ret = tf.math.reduce_variance(x, axis=axis, keepdims=keepdims)
          ret = tf.cast(tf.fill(ret.shape, float("nan")), ret.dtype)
          return ret
      else:
          return (
              tf.math.reduce_variance(x, axis=axis, keepdims=keepdims)
              * size
              / (size - correction)
          )
  
file_path: ivy/ivy/functional/backends/tensorflow/statistical.py
imports: import tensorflow
  from typing import Union, Optional, Sequence
  import ivy
  from ivy.func_wrapper import with_unsupported_dtypes
  from .None import backend_version
  from ivy.utils.einsum_parser import legalise_einsum_expr
label_desc: Use image node_id 8 for calling a global function with example usage: var() and returns: ret, unknown