code: def where(
      condition: Union[tf.Tensor, tf.Variable],
      x1: Union[tf.Tensor, tf.Variable],
      x2: Union[tf.Tensor, tf.Variable],
      /,
      *,
      out: Optional[Union[tf.Tensor, tf.Variable]] = None,
  ) -> Union[tf.Tensor, tf.Variable]:
      x1, x2 = ivy.promote_types_of_inputs(x1, x2)
      return tf.cast(
          tf.experimental.numpy.where(condition, x1, x2), x1.dtype
      )
  
file_path: ivy/ivy/functional/backends/tensorflow/searching.py
imports: from numbers import Number
  from typing import Optional, Union, Tuple
  import tensorflow
  import ivy
  from ivy.func_wrapper import with_unsupported_dtypes
  from .None import backend_version
label_desc: Use image node_id 4 for calling a global function with example usage: where() and returns: tf