code: def blackman_window(
      size: int,
      /,
      *,
      periodic: bool = True,
      dtype: Optional[tf.DType] = None,
      out: Optional[Union[tf.Tensor, tf.Variable]] = None,
  ) -> Union[tf.Tensor, tf.Variable]:
      if size < 2:
          return tf.cast(
              tf.ones(
                  [size],
                  dtype=tf.experimental.numpy.result_type(size, 0.0),
              ),
              dtype=dtype,
          )
      if periodic:
          count = tf.experimental.numpy.arange(size) / size
      else:
          count = tf.linspace(start=0, stop=size, num=size)
      return tf.cast(
          (0.42 - 0.5 * tf.cos(2 * tf.experimental.numpy.pi * count))
          + (0.08 * tf.cos(2 * tf.experimental.numpy.pi * 2 * count)),
          dtype=dtype,
      )
  
file_path: ivy/ivy/functional/backends/tensorflow/experimental/creation.py
imports: from typing import Union, Optional, Tuple
  import tensorflow
  from ivy.func_wrapper import with_unsupported_device_and_dtypes, with_unsupported_dtypes
  from ..None import backend_version
label_desc: Use image node_id 7 for calling a global function with example usage: blackman_window() and returns: tf, tf