code: def as_native_dtype(
      dtype_in: Union[jnp.dtype, str, bool, int, float, np.dtype],
  ) -> jnp.dtype:
      if dtype_in is int:
          return ivy.default_int_dtype(as_native=True)
      if dtype_in is float:
          return ivy.default_float_dtype(as_native=True)
      if dtype_in is complex:
          return ivy.default_complex_dtype(as_native=True)
      if dtype_in is bool:
          return jnp.dtype("bool")
      if isinstance(dtype_in, np.dtype):
          dtype_in = dtype_in.name
      if not isinstance(dtype_in, str):
          return dtype_in
      if dtype_in in char_rep_dtype_dict:
          return as_native_dtype(char_rep_dtype_dict[dtype_in])
      if dtype_in in native_dtype_dict.values():
          return native_dtype_dict[ivy.Dtype(dtype_in)]
      else:
          raise ivy.utils.exceptions.IvyException(
              f"Cannot convert to Jax dtype. {dtype_in} is not supported by Jax."
          )
  
imports: import numpy
  import jax.numpy
  from typing import Optional, Union, Sequence, List
  import ivy
  from ivy.functional.backends.jax import JaxArray
  from ivy.functional.ivy.data_type import _handle_nestable_dtype_info
label_desc: Use image node_id 8 for calling a global function with example usage: as_native_dtype(dtype_in) and returns: ivy, ivy, ivy, jnp, dtype_in, as_native_dtype, native_dtype_dict