code: def kaiser_window(
      window_length: int,
      periodic: bool = True,
      beta: float = 12.0,
      *,
      dtype: Optional[jnp.dtype] = None,
      out: Optional[JaxArray] = None,
  ) -> JaxArray:
      if window_length < 2:
          return jnp.ones([window_length], dtype=dtype)
      if periodic is False:
          return jnp.kaiser(M=window_length, beta=beta).astype(dtype)
      else:
          return jnp.kaiser(M=window_length + 1, beta=beta)[:-1].astype(
              dtype
          )
  
file_path: ivy/ivy/functional/backends/jax/experimental/creation.py
imports: from typing import Optional, Tuple
  import math
  import jax
  import jax.numpy
  import jaxlib.xla_extension
  from ivy.functional.backends.jax import JaxArray
  import ivy
label_desc: Use image node_id 3 for calling a global function with example usage: kaiser_window(window_length, periodic, beta) and returns: jnp, jnp, jnp