| 
| template<typename T , enable_if_t< is_metal_atomic< T >, bool >  = true>  | 
| METAL_FUNC T  | mlx_atomic_load_explicit (device mlx_atomic< T > *object, size_t offset) | 
|   | 
| template<typename T , enable_if_t< is_metal_atomic< T >, bool >  = true>  | 
| METAL_FUNC void  | mlx_atomic_store_explicit (device mlx_atomic< T > *object, T val, size_t offset) | 
|   | 
| template<typename T , enable_if_t< is_metal_atomic< T >, bool >  = true>  | 
| METAL_FUNC void  | mlx_atomic_fetch_and_explicit (device mlx_atomic< T > *object, T val, size_t offset) | 
|   | 
| template<typename T , enable_if_t< is_metal_atomic< T >, bool >  = true>  | 
| METAL_FUNC void  | mlx_atomic_fetch_or_explicit (device mlx_atomic< T > *object, T val, size_t offset) | 
|   | 
| template<typename T , enable_if_t< is_metal_atomic< T >, bool >  = true>  | 
| METAL_FUNC void  | mlx_atomic_fetch_min_explicit (device mlx_atomic< T > *object, T val, size_t offset) | 
|   | 
| template<typename T , enable_if_t< is_metal_atomic< T >, bool >  = true>  | 
| METAL_FUNC void  | mlx_atomic_fetch_max_explicit (device mlx_atomic< T > *object, T val, size_t offset) | 
|   | 
| template<typename T , enable_if_t< is_metal_atomic< T >, bool >  = true>  | 
| METAL_FUNC void  | mlx_atomic_fetch_add_explicit (device mlx_atomic< T > *object, T val, size_t offset) | 
|   | 
| template<typename T , enable_if_t< is_metal_atomic< T >, bool >  = true>  | 
| METAL_FUNC void  | mlx_atomic_fetch_mul_explicit (device mlx_atomic< T > *object, T val, size_t offset) | 
|   | 
| template<typename T , enable_if_t< is_metal_atomic< T >, bool >  = true>  | 
| METAL_FUNC bool  | mlx_atomic_compare_exchange_weak_explicit (device mlx_atomic< T > *object, thread T *expected, T val, size_t offset) | 
|   | 
| template<>  | 
| METAL_FUNC void  | mlx_atomic_fetch_min_explicit< float > (device mlx_atomic< float > *object, float val, size_t offset) | 
|   | 
| template<>  | 
| METAL_FUNC void  | mlx_atomic_fetch_max_explicit< float > (device mlx_atomic< float > *object, float val, size_t offset) | 
|   | 
| template<typename T , enable_if_t<!is_metal_atomic< T >, bool >  = true>  | 
| METAL_FUNC bool  | mlx_atomic_compare_exchange_weak_explicit (device mlx_atomic< T > *object, thread uint *expected, uint val, size_t offset) | 
|   |