code: def float_power(
      x1: Union[tf.Tensor, tf.Variable, float, list, tuple],
      x2: Union[tf.Tensor, tf.Variable, float, list, tuple],
      /,
      *,
      out: Optional[Union[tf.Tensor, tf.Variable]] = None,
  ) -> Union[tf.Tensor, tf.Variable]:
      x1, x2 = ivy.promote_types_of_inputs(x1, x2)
      if ivy.any(ivy.is_complex_dtype(x1)) or ivy.any(
          ivy.is_complex_dtype(x2)
      ):
          out_dtype = tf.complex128
      else:
          out_dtype = tf.float64
      return tf.cast(
          tf.experimental.numpy.float_power(x1, x2), out_dtype
      )
  
imports: import operator
  from typing import Union, Optional, Tuple, List, Sequence
  from numbers import Number
  import tensorflow
  from tensorflow.python.ops.numpy_ops import np_math_ops
  import ivy
  from ivy import promote_types_of_inputs
  from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes
  from ..None import backend_version
label_desc: Use image node_id 6 for calling a global function with example usage: float_power() and returns: tf