MLX
Loading...
Searching...
No Matches
bf16.h File Reference
#include <metal_stdlib>
#include "mlx/backend/metal/kernels/bf16_math.h"

Go to the source code of this file.

Classes

struct  _MLX_BFloat16
 
struct  _MLX_BFloat16::bits_to_bfloat_struct
 
struct  metal::_numeric_limits_impl< bfloat16_t >
 

Namespaces

namespace  metal
 

Macros

#define bfloat_binop_base(__op__, __operator__, otype, atype, btype, ctype)
 
#define bfloat_binop_helper(__op__, __operator__, otype, itype, ctype)
 
#define bfloat_binop(_op_, _operator_)
 
#define bfloat_compop(__op__, __operator__)
 
#define bfloat_inplace_op_helper(__op__, __operator__, itype, addr_space)
 
#define bfloat_inplace_op_addr_space_helper(__op__, __operator__, itype)
 
#define bfloat_inplace_op(itype)
 
#define bfloat_inplace_op_helper(__op__, __operator__, addr_space)
 
#define bfloat_inplace_op_addr_space_helper(__op__, __operator__)
 

Typedefs

typedef struct _MLX_BFloat16 bfloat16_t
 

Functions

constexpr METAL_FUNC uint16_t float_to_bfloat_bits (float x)
 
constexpr METAL_FUNC float bfloat_bits_to_float (uint16_t x)
 
constexpr METAL_FUNC _MLX_BFloat16 operator- (_MLX_BFloat16 x)
 
constexpr METAL_FUNC _MLX_BFloat16 operator+ (_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC float operator+ (_MLX_BFloat16 lhs, float rhs)
 
constexpr METAL_FUNC float operator+ (float lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC float operator+ (_MLX_BFloat16 lhs, half rhs)
 
constexpr METAL_FUNC float operator+ (half lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator+ (_MLX_BFloat16 lhs, int32_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator+ (int32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator+ (_MLX_BFloat16 lhs, uint32_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator+ (uint32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator+ (_MLX_BFloat16 lhs, int64_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator+ (int64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator+ (_MLX_BFloat16 lhs, uint64_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator+ (uint64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator- (_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC float operator- (_MLX_BFloat16 lhs, float rhs)
 
constexpr METAL_FUNC float operator- (float lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC float operator- (_MLX_BFloat16 lhs, half rhs)
 
constexpr METAL_FUNC float operator- (half lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator- (_MLX_BFloat16 lhs, int32_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator- (int32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator- (_MLX_BFloat16 lhs, uint32_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator- (uint32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator- (_MLX_BFloat16 lhs, int64_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator- (int64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator- (_MLX_BFloat16 lhs, uint64_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator- (uint64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator* (_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC float operator* (_MLX_BFloat16 lhs, float rhs)
 
constexpr METAL_FUNC float operator* (float lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC float operator* (_MLX_BFloat16 lhs, half rhs)
 
constexpr METAL_FUNC float operator* (half lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator* (_MLX_BFloat16 lhs, int32_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator* (int32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator* (_MLX_BFloat16 lhs, uint32_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator* (uint32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator* (_MLX_BFloat16 lhs, int64_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator* (int64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator* (_MLX_BFloat16 lhs, uint64_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator* (uint64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator/ (_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC float operator/ (_MLX_BFloat16 lhs, float rhs)
 
constexpr METAL_FUNC float operator/ (float lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC float operator/ (_MLX_BFloat16 lhs, half rhs)
 
constexpr METAL_FUNC float operator/ (half lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator/ (_MLX_BFloat16 lhs, int32_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator/ (int32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator/ (_MLX_BFloat16 lhs, uint32_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator/ (uint32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator/ (_MLX_BFloat16 lhs, int64_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator/ (int64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator/ (_MLX_BFloat16 lhs, uint64_t rhs)
 
constexpr METAL_FUNC _MLX_BFloat16 operator/ (uint64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator> (_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator> (_MLX_BFloat16 lhs, float rhs)
 
constexpr METAL_FUNC bool operator> (float lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator> (_MLX_BFloat16 lhs, half rhs)
 
constexpr METAL_FUNC bool operator> (half lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator> (_MLX_BFloat16 lhs, int32_t rhs)
 
constexpr METAL_FUNC bool operator> (int32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator> (_MLX_BFloat16 lhs, uint32_t rhs)
 
constexpr METAL_FUNC bool operator> (uint32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator> (_MLX_BFloat16 lhs, int64_t rhs)
 
constexpr METAL_FUNC bool operator> (int64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator> (_MLX_BFloat16 lhs, uint64_t rhs)
 
constexpr METAL_FUNC bool operator> (uint64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator< (_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator< (_MLX_BFloat16 lhs, float rhs)
 
constexpr METAL_FUNC bool operator< (float lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator< (_MLX_BFloat16 lhs, half rhs)
 
constexpr METAL_FUNC bool operator< (half lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator< (_MLX_BFloat16 lhs, int32_t rhs)
 
constexpr METAL_FUNC bool operator< (int32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator< (_MLX_BFloat16 lhs, uint32_t rhs)
 
constexpr METAL_FUNC bool operator< (uint32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator< (_MLX_BFloat16 lhs, int64_t rhs)
 
constexpr METAL_FUNC bool operator< (int64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator< (_MLX_BFloat16 lhs, uint64_t rhs)
 
constexpr METAL_FUNC bool operator< (uint64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator>= (_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator>= (_MLX_BFloat16 lhs, float rhs)
 
constexpr METAL_FUNC bool operator>= (float lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator>= (_MLX_BFloat16 lhs, half rhs)
 
constexpr METAL_FUNC bool operator>= (half lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator>= (_MLX_BFloat16 lhs, int32_t rhs)
 
constexpr METAL_FUNC bool operator>= (int32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator>= (_MLX_BFloat16 lhs, uint32_t rhs)
 
constexpr METAL_FUNC bool operator>= (uint32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator>= (_MLX_BFloat16 lhs, int64_t rhs)
 
constexpr METAL_FUNC bool operator>= (int64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator>= (_MLX_BFloat16 lhs, uint64_t rhs)
 
constexpr METAL_FUNC bool operator>= (uint64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator<= (_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator<= (_MLX_BFloat16 lhs, float rhs)
 
constexpr METAL_FUNC bool operator<= (float lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator<= (_MLX_BFloat16 lhs, half rhs)
 
constexpr METAL_FUNC bool operator<= (half lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator<= (_MLX_BFloat16 lhs, int32_t rhs)
 
constexpr METAL_FUNC bool operator<= (int32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator<= (_MLX_BFloat16 lhs, uint32_t rhs)
 
constexpr METAL_FUNC bool operator<= (uint32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator<= (_MLX_BFloat16 lhs, int64_t rhs)
 
constexpr METAL_FUNC bool operator<= (int64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator<= (_MLX_BFloat16 lhs, uint64_t rhs)
 
constexpr METAL_FUNC bool operator<= (uint64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator== (_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator== (_MLX_BFloat16 lhs, float rhs)
 
constexpr METAL_FUNC bool operator== (float lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator== (_MLX_BFloat16 lhs, half rhs)
 
constexpr METAL_FUNC bool operator== (half lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator== (_MLX_BFloat16 lhs, int32_t rhs)
 
constexpr METAL_FUNC bool operator== (int32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator== (_MLX_BFloat16 lhs, uint32_t rhs)
 
constexpr METAL_FUNC bool operator== (uint32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator== (_MLX_BFloat16 lhs, int64_t rhs)
 
constexpr METAL_FUNC bool operator== (int64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator== (_MLX_BFloat16 lhs, uint64_t rhs)
 
constexpr METAL_FUNC bool operator== (uint64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator!= (_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator!= (_MLX_BFloat16 lhs, float rhs)
 
constexpr METAL_FUNC bool operator!= (float lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator!= (_MLX_BFloat16 lhs, half rhs)
 
constexpr METAL_FUNC bool operator!= (half lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator!= (_MLX_BFloat16 lhs, int32_t rhs)
 
constexpr METAL_FUNC bool operator!= (int32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator!= (_MLX_BFloat16 lhs, uint32_t rhs)
 
constexpr METAL_FUNC bool operator!= (uint32_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator!= (_MLX_BFloat16 lhs, int64_t rhs)
 
constexpr METAL_FUNC bool operator!= (int64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC bool operator!= (_MLX_BFloat16 lhs, uint64_t rhs)
 
constexpr METAL_FUNC bool operator!= (uint64_t lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator+= (device _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC device float & operator+= (device float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator+= (thread _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC thread float & operator+= (thread float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator+= (threadgroup _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC threadgroup float & operator+= (threadgroup float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator-= (device _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC device float & operator-= (device float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator-= (thread _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC thread float & operator-= (thread float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator-= (threadgroup _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC threadgroup float & operator-= (threadgroup float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator*= (device _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC device float & operator*= (device float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator*= (thread _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC thread float & operator*= (thread float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator*= (threadgroup _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC threadgroup float & operator*= (threadgroup float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator/= (device _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC device float & operator/= (device float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator/= (thread _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC thread float & operator/= (thread float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator/= (threadgroup _MLX_BFloat16 &lhs, float rhs)
 
constexpr METAL_FUNC threadgroup float & operator/= (threadgroup float &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator+= (device _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC device half & operator+= (device half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator+= (thread _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC thread half & operator+= (thread half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator+= (threadgroup _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC threadgroup half & operator+= (threadgroup half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator-= (device _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC device half & operator-= (device half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator-= (thread _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC thread half & operator-= (thread half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator-= (threadgroup _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC threadgroup half & operator-= (threadgroup half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator*= (device _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC device half & operator*= (device half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator*= (thread _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC thread half & operator*= (thread half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator*= (threadgroup _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC threadgroup half & operator*= (threadgroup half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator/= (device _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC device half & operator/= (device half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator/= (thread _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC thread half & operator/= (thread half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator/= (threadgroup _MLX_BFloat16 &lhs, half rhs)
 
constexpr METAL_FUNC threadgroup half & operator/= (threadgroup half &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator+= (device _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC device int16_t & operator+= (device int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator+= (thread _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC thread int16_t & operator+= (thread int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator+= (threadgroup _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC threadgroup int16_t & operator+= (threadgroup int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator-= (device _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC device int16_t & operator-= (device int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator-= (thread _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC thread int16_t & operator-= (thread int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator-= (threadgroup _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC threadgroup int16_t & operator-= (threadgroup int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator*= (device _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC device int16_t & operator*= (device int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator*= (thread _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC thread int16_t & operator*= (thread int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator*= (threadgroup _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC threadgroup int16_t & operator*= (threadgroup int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator/= (device _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC device int16_t & operator/= (device int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator/= (thread _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC thread int16_t & operator/= (thread int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator/= (threadgroup _MLX_BFloat16 &lhs, int16_t rhs)
 
constexpr METAL_FUNC threadgroup int16_t & operator/= (threadgroup int16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator+= (device _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC device int32_t & operator+= (device int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator+= (thread _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC thread int32_t & operator+= (thread int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator+= (threadgroup _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC threadgroup int32_t & operator+= (threadgroup int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator-= (device _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC device int32_t & operator-= (device int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator-= (thread _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC thread int32_t & operator-= (thread int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator-= (threadgroup _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC threadgroup int32_t & operator-= (threadgroup int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator*= (device _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC device int32_t & operator*= (device int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator*= (thread _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC thread int32_t & operator*= (thread int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator*= (threadgroup _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC threadgroup int32_t & operator*= (threadgroup int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator/= (device _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC device int32_t & operator/= (device int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator/= (thread _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC thread int32_t & operator/= (thread int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator/= (threadgroup _MLX_BFloat16 &lhs, int32_t rhs)
 
constexpr METAL_FUNC threadgroup int32_t & operator/= (threadgroup int32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator+= (device _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC device int64_t & operator+= (device int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator+= (thread _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC thread int64_t & operator+= (thread int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator+= (threadgroup _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC threadgroup int64_t & operator+= (threadgroup int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator-= (device _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC device int64_t & operator-= (device int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator-= (thread _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC thread int64_t & operator-= (thread int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator-= (threadgroup _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC threadgroup int64_t & operator-= (threadgroup int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator*= (device _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC device int64_t & operator*= (device int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator*= (thread _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC thread int64_t & operator*= (thread int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator*= (threadgroup _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC threadgroup int64_t & operator*= (threadgroup int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator/= (device _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC device int64_t & operator/= (device int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator/= (thread _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC thread int64_t & operator/= (thread int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator/= (threadgroup _MLX_BFloat16 &lhs, int64_t rhs)
 
constexpr METAL_FUNC threadgroup int64_t & operator/= (threadgroup int64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator+= (device _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC device uint16_t & operator+= (device uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator+= (thread _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC thread uint16_t & operator+= (thread uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator+= (threadgroup _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC threadgroup uint16_t & operator+= (threadgroup uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator-= (device _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC device uint16_t & operator-= (device uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator-= (thread _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC thread uint16_t & operator-= (thread uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator-= (threadgroup _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC threadgroup uint16_t & operator-= (threadgroup uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator*= (device _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC device uint16_t & operator*= (device uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator*= (thread _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC thread uint16_t & operator*= (thread uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator*= (threadgroup _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC threadgroup uint16_t & operator*= (threadgroup uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator/= (device _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC device uint16_t & operator/= (device uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator/= (thread _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC thread uint16_t & operator/= (thread uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator/= (threadgroup _MLX_BFloat16 &lhs, uint16_t rhs)
 
constexpr METAL_FUNC threadgroup uint16_t & operator/= (threadgroup uint16_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator+= (device _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC device uint32_t & operator+= (device uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator+= (thread _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC thread uint32_t & operator+= (thread uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator+= (threadgroup _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC threadgroup uint32_t & operator+= (threadgroup uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator-= (device _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC device uint32_t & operator-= (device uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator-= (thread _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC thread uint32_t & operator-= (thread uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator-= (threadgroup _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC threadgroup uint32_t & operator-= (threadgroup uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator*= (device _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC device uint32_t & operator*= (device uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator*= (thread _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC thread uint32_t & operator*= (thread uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator*= (threadgroup _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC threadgroup uint32_t & operator*= (threadgroup uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator/= (device _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC device uint32_t & operator/= (device uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator/= (thread _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC thread uint32_t & operator/= (thread uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator/= (threadgroup _MLX_BFloat16 &lhs, uint32_t rhs)
 
constexpr METAL_FUNC threadgroup uint32_t & operator/= (threadgroup uint32_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator+= (device _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC device uint64_t & operator+= (device uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator+= (thread _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC thread uint64_t & operator+= (thread uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator+= (threadgroup _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC threadgroup uint64_t & operator+= (threadgroup uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator-= (device _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC device uint64_t & operator-= (device uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator-= (thread _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC thread uint64_t & operator-= (thread uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator-= (threadgroup _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC threadgroup uint64_t & operator-= (threadgroup uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator*= (device _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC device uint64_t & operator*= (device uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator*= (thread _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC thread uint64_t & operator*= (thread uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator*= (threadgroup _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC threadgroup uint64_t & operator*= (threadgroup uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator/= (device _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC device uint64_t & operator/= (device uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator/= (thread _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC thread uint64_t & operator/= (thread uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator/= (threadgroup _MLX_BFloat16 &lhs, uint64_t rhs)
 
constexpr METAL_FUNC threadgroup uint64_t & operator/= (threadgroup uint64_t &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator+= (device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator+= (thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator+= (threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator-= (device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator-= (thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator-= (threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator*= (device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator*= (thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator*= (threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC device _MLX_BFloat16operator/= (device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC thread _MLX_BFloat16operator/= (thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
constexpr METAL_FUNC threadgroup _MLX_BFloat16operator/= (threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)
 
METAL_FUNC bool metal::isnan (_MLX_BFloat16 x)
 

Variables

template<typename T >
static constexpr constant bool can_convert_to_bfloat
 
template<typename T >
static constexpr constant bool can_convert_from_bfloat
 

Macro Definition Documentation

◆ bfloat_binop

#define bfloat_binop ( _op_,
_operator_ )
Value:
_op_, _operator_, _MLX_BFloat16, _MLX_BFloat16, _MLX_BFloat16, float); \
bfloat_binop_helper(_op_, _operator_, float, float, float); \
bfloat_binop_helper(_op_, _operator_, float, half, float); \
bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, int32_t, float); \
bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, uint32_t, float); \
bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, int64_t, float); \
bfloat_binop_helper(_op_, _operator_, _MLX_BFloat16, uint64_t, float);
#define bfloat_binop_base(__op__, __operator__, otype, atype, btype, ctype)
Definition bf16.h:141
Definition bf16.h:54

◆ bfloat_binop_base

#define bfloat_binop_base ( __op__,
__operator__,
otype,
atype,
btype,
ctype )
Value:
constexpr METAL_FUNC otype __operator__(atype lhs, btype rhs) { \
return static_cast<ctype>(lhs) __op__ static_cast<ctype>(rhs); \
}

◆ bfloat_binop_helper

#define bfloat_binop_helper ( __op__,
__operator__,
otype,
itype,
ctype )
Value:
constexpr METAL_FUNC otype __operator__(_MLX_BFloat16 lhs, itype rhs) { \
return static_cast<ctype>(lhs) __op__ static_cast<ctype>(rhs); \
} \
constexpr METAL_FUNC otype __operator__(itype lhs, _MLX_BFloat16 rhs) { \
return static_cast<ctype>(lhs) __op__ static_cast<ctype>(rhs); \
}

◆ bfloat_compop

#define bfloat_compop ( __op__,
__operator__ )
Value:
__op__, __operator__, bool, _MLX_BFloat16, _MLX_BFloat16, float); \
bfloat_binop_helper(__op__, __operator__, bool, float, float); \
bfloat_binop_helper(__op__, __operator__, bool, half, float); \
bfloat_binop_helper(__op__, __operator__, bool, int32_t, float); \
bfloat_binop_helper(__op__, __operator__, bool, uint32_t, float); \
bfloat_binop_helper(__op__, __operator__, bool, int64_t, float); \
bfloat_binop_helper(__op__, __operator__, bool, uint64_t, float);

◆ bfloat_inplace_op

#define bfloat_inplace_op ( itype)
Value:
bfloat_inplace_op_addr_space_helper(+, operator+=, itype); \
bfloat_inplace_op_addr_space_helper(-, operator-=, itype); \
bfloat_inplace_op_addr_space_helper(*, operator*=, itype); \
bfloat_inplace_op_addr_space_helper(/, operator/=, itype);
#define bfloat_inplace_op_addr_space_helper(__op__, __operator__, itype)
Definition bf16.h:209

◆ bfloat_inplace_op_addr_space_helper [1/2]

#define bfloat_inplace_op_addr_space_helper ( __op__,
__operator__ )
Value:
bfloat_inplace_op_helper(__op__, __operator__, device); \
bfloat_inplace_op_helper(__op__, __operator__, thread); \
bfloat_inplace_op_helper(__op__, __operator__, threadgroup);
#define bfloat_inplace_op_helper(__op__, __operator__, itype, addr_space)
Definition bf16.h:197

◆ bfloat_inplace_op_addr_space_helper [2/2]

#define bfloat_inplace_op_addr_space_helper ( __op__,
__operator__,
itype )
Value:
bfloat_inplace_op_helper(__op__, __operator__, itype, device); \
bfloat_inplace_op_helper(__op__, __operator__, itype, thread); \
bfloat_inplace_op_helper(__op__, __operator__, itype, threadgroup);

◆ bfloat_inplace_op_helper [1/2]

#define bfloat_inplace_op_helper ( __op__,
__operator__,
addr_space )
Value:
constexpr METAL_FUNC addr_space _MLX_BFloat16& __operator__( \
addr_space _MLX_BFloat16& lhs, _MLX_BFloat16 rhs) { \
lhs = static_cast<float>(lhs) __op__ static_cast<float>(rhs); \
return lhs; \
}

◆ bfloat_inplace_op_helper [2/2]

#define bfloat_inplace_op_helper ( __op__,
__operator__,
itype,
addr_space )
Value:
constexpr METAL_FUNC addr_space _MLX_BFloat16& __operator__( \
addr_space _MLX_BFloat16& lhs, itype rhs) { \
lhs = static_cast<float>(lhs) __op__ static_cast<float>(rhs); \
return lhs; \
} \
constexpr METAL_FUNC addr_space itype& __operator__( \
addr_space itype& lhs, _MLX_BFloat16 rhs) { \
lhs = static_cast<float>(lhs) __op__ static_cast<float>(rhs); \
return lhs; \
}

Typedef Documentation

◆ bfloat16_t

typedef struct _MLX_BFloat16 bfloat16_t

Function Documentation

◆ bfloat_bits_to_float()

METAL_FUNC float bfloat_bits_to_float ( uint16_t x)
constexpr

◆ float_to_bfloat_bits()

METAL_FUNC uint16_t float_to_bfloat_bits ( float x)
constexpr

◆ operator!=() [1/13]

METAL_FUNC bool operator!= ( _MLX_BFloat16 lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator!=() [2/13]

METAL_FUNC bool operator!= ( _MLX_BFloat16 lhs,
float rhs )
constexpr

◆ operator!=() [3/13]

METAL_FUNC bool operator!= ( _MLX_BFloat16 lhs,
half rhs )
constexpr

◆ operator!=() [4/13]

METAL_FUNC bool operator!= ( _MLX_BFloat16 lhs,
int32_t rhs )
constexpr

◆ operator!=() [5/13]

METAL_FUNC bool operator!= ( _MLX_BFloat16 lhs,
int64_t rhs )
constexpr

◆ operator!=() [6/13]

METAL_FUNC bool operator!= ( _MLX_BFloat16 lhs,
uint32_t rhs )
constexpr

◆ operator!=() [7/13]

METAL_FUNC bool operator!= ( _MLX_BFloat16 lhs,
uint64_t rhs )
constexpr

◆ operator!=() [8/13]

METAL_FUNC bool operator!= ( float lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator!=() [9/13]

METAL_FUNC bool operator!= ( half lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator!=() [10/13]

METAL_FUNC bool operator!= ( int32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator!=() [11/13]

METAL_FUNC bool operator!= ( int64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator!=() [12/13]

METAL_FUNC bool operator!= ( uint32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator!=() [13/13]

METAL_FUNC bool operator!= ( uint64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*() [1/13]

METAL_FUNC _MLX_BFloat16 operator* ( _MLX_BFloat16 lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*() [2/13]

METAL_FUNC float operator* ( _MLX_BFloat16 lhs,
float rhs )
constexpr

◆ operator*() [3/13]

METAL_FUNC float operator* ( _MLX_BFloat16 lhs,
half rhs )
constexpr

◆ operator*() [4/13]

METAL_FUNC _MLX_BFloat16 operator* ( _MLX_BFloat16 lhs,
int32_t rhs )
constexpr

◆ operator*() [5/13]

METAL_FUNC _MLX_BFloat16 operator* ( _MLX_BFloat16 lhs,
int64_t rhs )
constexpr

◆ operator*() [6/13]

METAL_FUNC _MLX_BFloat16 operator* ( _MLX_BFloat16 lhs,
uint32_t rhs )
constexpr

◆ operator*() [7/13]

METAL_FUNC _MLX_BFloat16 operator* ( _MLX_BFloat16 lhs,
uint64_t rhs )
constexpr

◆ operator*() [8/13]

METAL_FUNC float operator* ( float lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*() [9/13]

METAL_FUNC float operator* ( half lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*() [10/13]

METAL_FUNC _MLX_BFloat16 operator* ( int32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*() [11/13]

METAL_FUNC _MLX_BFloat16 operator* ( int64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*() [12/13]

METAL_FUNC _MLX_BFloat16 operator* ( uint32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*() [13/13]

METAL_FUNC _MLX_BFloat16 operator* ( uint64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [1/51]

METAL_FUNC device _MLX_BFloat16 & operator*= ( device _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [2/51]

METAL_FUNC device _MLX_BFloat16 & operator*= ( device _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator*=() [3/51]

METAL_FUNC device _MLX_BFloat16 & operator*= ( device _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator*=() [4/51]

METAL_FUNC device _MLX_BFloat16 & operator*= ( device _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator*=() [5/51]

METAL_FUNC device _MLX_BFloat16 & operator*= ( device _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator*=() [6/51]

METAL_FUNC device _MLX_BFloat16 & operator*= ( device _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator*=() [7/51]

METAL_FUNC device _MLX_BFloat16 & operator*= ( device _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator*=() [8/51]

METAL_FUNC device _MLX_BFloat16 & operator*= ( device _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator*=() [9/51]

METAL_FUNC device _MLX_BFloat16 & operator*= ( device _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator*=() [10/51]

METAL_FUNC device float & operator*= ( device float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [11/51]

METAL_FUNC device half & operator*= ( device half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [12/51]

METAL_FUNC device int16_t & operator*= ( device int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [13/51]

METAL_FUNC device int32_t & operator*= ( device int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [14/51]

METAL_FUNC device int64_t & operator*= ( device int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [15/51]

METAL_FUNC device uint16_t & operator*= ( device uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [16/51]

METAL_FUNC device uint32_t & operator*= ( device uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [17/51]

METAL_FUNC device uint64_t & operator*= ( device uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [18/51]

METAL_FUNC thread _MLX_BFloat16 & operator*= ( thread _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [19/51]

METAL_FUNC thread _MLX_BFloat16 & operator*= ( thread _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator*=() [20/51]

METAL_FUNC thread _MLX_BFloat16 & operator*= ( thread _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator*=() [21/51]

METAL_FUNC thread _MLX_BFloat16 & operator*= ( thread _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator*=() [22/51]

METAL_FUNC thread _MLX_BFloat16 & operator*= ( thread _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator*=() [23/51]

METAL_FUNC thread _MLX_BFloat16 & operator*= ( thread _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator*=() [24/51]

METAL_FUNC thread _MLX_BFloat16 & operator*= ( thread _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator*=() [25/51]

METAL_FUNC thread _MLX_BFloat16 & operator*= ( thread _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator*=() [26/51]

METAL_FUNC thread _MLX_BFloat16 & operator*= ( thread _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator*=() [27/51]

METAL_FUNC thread float & operator*= ( thread float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [28/51]

METAL_FUNC thread half & operator*= ( thread half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [29/51]

METAL_FUNC thread int16_t & operator*= ( thread int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [30/51]

METAL_FUNC thread int32_t & operator*= ( thread int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [31/51]

METAL_FUNC thread int64_t & operator*= ( thread int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [32/51]

METAL_FUNC thread uint16_t & operator*= ( thread uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [33/51]

METAL_FUNC thread uint32_t & operator*= ( thread uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [34/51]

METAL_FUNC thread uint64_t & operator*= ( thread uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [35/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator*= ( threadgroup _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [36/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator*= ( threadgroup _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator*=() [37/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator*= ( threadgroup _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator*=() [38/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator*= ( threadgroup _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator*=() [39/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator*= ( threadgroup _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator*=() [40/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator*= ( threadgroup _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator*=() [41/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator*= ( threadgroup _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator*=() [42/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator*= ( threadgroup _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator*=() [43/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator*= ( threadgroup _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator*=() [44/51]

METAL_FUNC threadgroup float & operator*= ( threadgroup float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [45/51]

METAL_FUNC threadgroup half & operator*= ( threadgroup half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [46/51]

METAL_FUNC threadgroup int16_t & operator*= ( threadgroup int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [47/51]

METAL_FUNC threadgroup int32_t & operator*= ( threadgroup int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [48/51]

METAL_FUNC threadgroup int64_t & operator*= ( threadgroup int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [49/51]

METAL_FUNC threadgroup uint16_t & operator*= ( threadgroup uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [50/51]

METAL_FUNC threadgroup uint32_t & operator*= ( threadgroup uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator*=() [51/51]

METAL_FUNC threadgroup uint64_t & operator*= ( threadgroup uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+() [1/13]

METAL_FUNC _MLX_BFloat16 operator+ ( _MLX_BFloat16 lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+() [2/13]

METAL_FUNC float operator+ ( _MLX_BFloat16 lhs,
float rhs )
constexpr

◆ operator+() [3/13]

METAL_FUNC float operator+ ( _MLX_BFloat16 lhs,
half rhs )
constexpr

◆ operator+() [4/13]

METAL_FUNC _MLX_BFloat16 operator+ ( _MLX_BFloat16 lhs,
int32_t rhs )
constexpr

◆ operator+() [5/13]

METAL_FUNC _MLX_BFloat16 operator+ ( _MLX_BFloat16 lhs,
int64_t rhs )
constexpr

◆ operator+() [6/13]

METAL_FUNC _MLX_BFloat16 operator+ ( _MLX_BFloat16 lhs,
uint32_t rhs )
constexpr

◆ operator+() [7/13]

METAL_FUNC _MLX_BFloat16 operator+ ( _MLX_BFloat16 lhs,
uint64_t rhs )
constexpr

◆ operator+() [8/13]

METAL_FUNC float operator+ ( float lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+() [9/13]

METAL_FUNC float operator+ ( half lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+() [10/13]

METAL_FUNC _MLX_BFloat16 operator+ ( int32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+() [11/13]

METAL_FUNC _MLX_BFloat16 operator+ ( int64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+() [12/13]

METAL_FUNC _MLX_BFloat16 operator+ ( uint32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+() [13/13]

METAL_FUNC _MLX_BFloat16 operator+ ( uint64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [1/51]

METAL_FUNC device _MLX_BFloat16 & operator+= ( device _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [2/51]

METAL_FUNC device _MLX_BFloat16 & operator+= ( device _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator+=() [3/51]

METAL_FUNC device _MLX_BFloat16 & operator+= ( device _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator+=() [4/51]

METAL_FUNC device _MLX_BFloat16 & operator+= ( device _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator+=() [5/51]

METAL_FUNC device _MLX_BFloat16 & operator+= ( device _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator+=() [6/51]

METAL_FUNC device _MLX_BFloat16 & operator+= ( device _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator+=() [7/51]

METAL_FUNC device _MLX_BFloat16 & operator+= ( device _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator+=() [8/51]

METAL_FUNC device _MLX_BFloat16 & operator+= ( device _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator+=() [9/51]

METAL_FUNC device _MLX_BFloat16 & operator+= ( device _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator+=() [10/51]

METAL_FUNC device float & operator+= ( device float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [11/51]

METAL_FUNC device half & operator+= ( device half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [12/51]

METAL_FUNC device int16_t & operator+= ( device int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [13/51]

METAL_FUNC device int32_t & operator+= ( device int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [14/51]

METAL_FUNC device int64_t & operator+= ( device int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [15/51]

METAL_FUNC device uint16_t & operator+= ( device uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [16/51]

METAL_FUNC device uint32_t & operator+= ( device uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [17/51]

METAL_FUNC device uint64_t & operator+= ( device uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [18/51]

METAL_FUNC thread _MLX_BFloat16 & operator+= ( thread _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [19/51]

METAL_FUNC thread _MLX_BFloat16 & operator+= ( thread _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator+=() [20/51]

METAL_FUNC thread _MLX_BFloat16 & operator+= ( thread _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator+=() [21/51]

METAL_FUNC thread _MLX_BFloat16 & operator+= ( thread _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator+=() [22/51]

METAL_FUNC thread _MLX_BFloat16 & operator+= ( thread _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator+=() [23/51]

METAL_FUNC thread _MLX_BFloat16 & operator+= ( thread _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator+=() [24/51]

METAL_FUNC thread _MLX_BFloat16 & operator+= ( thread _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator+=() [25/51]

METAL_FUNC thread _MLX_BFloat16 & operator+= ( thread _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator+=() [26/51]

METAL_FUNC thread _MLX_BFloat16 & operator+= ( thread _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator+=() [27/51]

METAL_FUNC thread float & operator+= ( thread float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [28/51]

METAL_FUNC thread half & operator+= ( thread half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [29/51]

METAL_FUNC thread int16_t & operator+= ( thread int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [30/51]

METAL_FUNC thread int32_t & operator+= ( thread int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [31/51]

METAL_FUNC thread int64_t & operator+= ( thread int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [32/51]

METAL_FUNC thread uint16_t & operator+= ( thread uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [33/51]

METAL_FUNC thread uint32_t & operator+= ( thread uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [34/51]

METAL_FUNC thread uint64_t & operator+= ( thread uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [35/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator+= ( threadgroup _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [36/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator+= ( threadgroup _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator+=() [37/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator+= ( threadgroup _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator+=() [38/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator+= ( threadgroup _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator+=() [39/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator+= ( threadgroup _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator+=() [40/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator+= ( threadgroup _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator+=() [41/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator+= ( threadgroup _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator+=() [42/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator+= ( threadgroup _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator+=() [43/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator+= ( threadgroup _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator+=() [44/51]

METAL_FUNC threadgroup float & operator+= ( threadgroup float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [45/51]

METAL_FUNC threadgroup half & operator+= ( threadgroup half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [46/51]

METAL_FUNC threadgroup int16_t & operator+= ( threadgroup int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [47/51]

METAL_FUNC threadgroup int32_t & operator+= ( threadgroup int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [48/51]

METAL_FUNC threadgroup int64_t & operator+= ( threadgroup int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [49/51]

METAL_FUNC threadgroup uint16_t & operator+= ( threadgroup uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [50/51]

METAL_FUNC threadgroup uint32_t & operator+= ( threadgroup uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator+=() [51/51]

METAL_FUNC threadgroup uint64_t & operator+= ( threadgroup uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-() [1/14]

METAL_FUNC _MLX_BFloat16 operator- ( _MLX_BFloat16 lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-() [2/14]

METAL_FUNC float operator- ( _MLX_BFloat16 lhs,
float rhs )
constexpr

◆ operator-() [3/14]

METAL_FUNC float operator- ( _MLX_BFloat16 lhs,
half rhs )
constexpr

◆ operator-() [4/14]

METAL_FUNC _MLX_BFloat16 operator- ( _MLX_BFloat16 lhs,
int32_t rhs )
constexpr

◆ operator-() [5/14]

METAL_FUNC _MLX_BFloat16 operator- ( _MLX_BFloat16 lhs,
int64_t rhs )
constexpr

◆ operator-() [6/14]

METAL_FUNC _MLX_BFloat16 operator- ( _MLX_BFloat16 lhs,
uint32_t rhs )
constexpr

◆ operator-() [7/14]

METAL_FUNC _MLX_BFloat16 operator- ( _MLX_BFloat16 lhs,
uint64_t rhs )
constexpr

◆ operator-() [8/14]

METAL_FUNC _MLX_BFloat16 operator- ( _MLX_BFloat16 x)
constexpr

◆ operator-() [9/14]

METAL_FUNC float operator- ( float lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-() [10/14]

METAL_FUNC float operator- ( half lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-() [11/14]

METAL_FUNC _MLX_BFloat16 operator- ( int32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-() [12/14]

METAL_FUNC _MLX_BFloat16 operator- ( int64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-() [13/14]

METAL_FUNC _MLX_BFloat16 operator- ( uint32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-() [14/14]

METAL_FUNC _MLX_BFloat16 operator- ( uint64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [1/51]

METAL_FUNC device _MLX_BFloat16 & operator-= ( device _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [2/51]

METAL_FUNC device _MLX_BFloat16 & operator-= ( device _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator-=() [3/51]

METAL_FUNC device _MLX_BFloat16 & operator-= ( device _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator-=() [4/51]

METAL_FUNC device _MLX_BFloat16 & operator-= ( device _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator-=() [5/51]

METAL_FUNC device _MLX_BFloat16 & operator-= ( device _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator-=() [6/51]

METAL_FUNC device _MLX_BFloat16 & operator-= ( device _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator-=() [7/51]

METAL_FUNC device _MLX_BFloat16 & operator-= ( device _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator-=() [8/51]

METAL_FUNC device _MLX_BFloat16 & operator-= ( device _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator-=() [9/51]

METAL_FUNC device _MLX_BFloat16 & operator-= ( device _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator-=() [10/51]

METAL_FUNC device float & operator-= ( device float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [11/51]

METAL_FUNC device half & operator-= ( device half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [12/51]

METAL_FUNC device int16_t & operator-= ( device int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [13/51]

METAL_FUNC device int32_t & operator-= ( device int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [14/51]

METAL_FUNC device int64_t & operator-= ( device int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [15/51]

METAL_FUNC device uint16_t & operator-= ( device uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [16/51]

METAL_FUNC device uint32_t & operator-= ( device uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [17/51]

METAL_FUNC device uint64_t & operator-= ( device uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [18/51]

METAL_FUNC thread _MLX_BFloat16 & operator-= ( thread _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [19/51]

METAL_FUNC thread _MLX_BFloat16 & operator-= ( thread _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator-=() [20/51]

METAL_FUNC thread _MLX_BFloat16 & operator-= ( thread _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator-=() [21/51]

METAL_FUNC thread _MLX_BFloat16 & operator-= ( thread _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator-=() [22/51]

METAL_FUNC thread _MLX_BFloat16 & operator-= ( thread _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator-=() [23/51]

METAL_FUNC thread _MLX_BFloat16 & operator-= ( thread _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator-=() [24/51]

METAL_FUNC thread _MLX_BFloat16 & operator-= ( thread _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator-=() [25/51]

METAL_FUNC thread _MLX_BFloat16 & operator-= ( thread _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator-=() [26/51]

METAL_FUNC thread _MLX_BFloat16 & operator-= ( thread _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator-=() [27/51]

METAL_FUNC thread float & operator-= ( thread float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [28/51]

METAL_FUNC thread half & operator-= ( thread half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [29/51]

METAL_FUNC thread int16_t & operator-= ( thread int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [30/51]

METAL_FUNC thread int32_t & operator-= ( thread int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [31/51]

METAL_FUNC thread int64_t & operator-= ( thread int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [32/51]

METAL_FUNC thread uint16_t & operator-= ( thread uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [33/51]

METAL_FUNC thread uint32_t & operator-= ( thread uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [34/51]

METAL_FUNC thread uint64_t & operator-= ( thread uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [35/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator-= ( threadgroup _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [36/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator-= ( threadgroup _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator-=() [37/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator-= ( threadgroup _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator-=() [38/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator-= ( threadgroup _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator-=() [39/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator-= ( threadgroup _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator-=() [40/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator-= ( threadgroup _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator-=() [41/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator-= ( threadgroup _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator-=() [42/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator-= ( threadgroup _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator-=() [43/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator-= ( threadgroup _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator-=() [44/51]

METAL_FUNC threadgroup float & operator-= ( threadgroup float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [45/51]

METAL_FUNC threadgroup half & operator-= ( threadgroup half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [46/51]

METAL_FUNC threadgroup int16_t & operator-= ( threadgroup int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [47/51]

METAL_FUNC threadgroup int32_t & operator-= ( threadgroup int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [48/51]

METAL_FUNC threadgroup int64_t & operator-= ( threadgroup int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [49/51]

METAL_FUNC threadgroup uint16_t & operator-= ( threadgroup uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [50/51]

METAL_FUNC threadgroup uint32_t & operator-= ( threadgroup uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator-=() [51/51]

METAL_FUNC threadgroup uint64_t & operator-= ( threadgroup uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/() [1/13]

METAL_FUNC _MLX_BFloat16 operator/ ( _MLX_BFloat16 lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/() [2/13]

METAL_FUNC float operator/ ( _MLX_BFloat16 lhs,
float rhs )
constexpr

◆ operator/() [3/13]

METAL_FUNC float operator/ ( _MLX_BFloat16 lhs,
half rhs )
constexpr

◆ operator/() [4/13]

METAL_FUNC _MLX_BFloat16 operator/ ( _MLX_BFloat16 lhs,
int32_t rhs )
constexpr

◆ operator/() [5/13]

METAL_FUNC _MLX_BFloat16 operator/ ( _MLX_BFloat16 lhs,
int64_t rhs )
constexpr

◆ operator/() [6/13]

METAL_FUNC _MLX_BFloat16 operator/ ( _MLX_BFloat16 lhs,
uint32_t rhs )
constexpr

◆ operator/() [7/13]

METAL_FUNC _MLX_BFloat16 operator/ ( _MLX_BFloat16 lhs,
uint64_t rhs )
constexpr

◆ operator/() [8/13]

METAL_FUNC float operator/ ( float lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/() [9/13]

METAL_FUNC float operator/ ( half lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/() [10/13]

METAL_FUNC _MLX_BFloat16 operator/ ( int32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/() [11/13]

METAL_FUNC _MLX_BFloat16 operator/ ( int64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/() [12/13]

METAL_FUNC _MLX_BFloat16 operator/ ( uint32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/() [13/13]

METAL_FUNC _MLX_BFloat16 operator/ ( uint64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [1/51]

METAL_FUNC device _MLX_BFloat16 & operator/= ( device _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [2/51]

METAL_FUNC device _MLX_BFloat16 & operator/= ( device _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator/=() [3/51]

METAL_FUNC device _MLX_BFloat16 & operator/= ( device _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator/=() [4/51]

METAL_FUNC device _MLX_BFloat16 & operator/= ( device _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator/=() [5/51]

METAL_FUNC device _MLX_BFloat16 & operator/= ( device _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator/=() [6/51]

METAL_FUNC device _MLX_BFloat16 & operator/= ( device _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator/=() [7/51]

METAL_FUNC device _MLX_BFloat16 & operator/= ( device _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator/=() [8/51]

METAL_FUNC device _MLX_BFloat16 & operator/= ( device _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator/=() [9/51]

METAL_FUNC device _MLX_BFloat16 & operator/= ( device _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator/=() [10/51]

METAL_FUNC device float & operator/= ( device float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [11/51]

METAL_FUNC device half & operator/= ( device half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [12/51]

METAL_FUNC device int16_t & operator/= ( device int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [13/51]

METAL_FUNC device int32_t & operator/= ( device int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [14/51]

METAL_FUNC device int64_t & operator/= ( device int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [15/51]

METAL_FUNC device uint16_t & operator/= ( device uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [16/51]

METAL_FUNC device uint32_t & operator/= ( device uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [17/51]

METAL_FUNC device uint64_t & operator/= ( device uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [18/51]

METAL_FUNC thread _MLX_BFloat16 & operator/= ( thread _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [19/51]

METAL_FUNC thread _MLX_BFloat16 & operator/= ( thread _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator/=() [20/51]

METAL_FUNC thread _MLX_BFloat16 & operator/= ( thread _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator/=() [21/51]

METAL_FUNC thread _MLX_BFloat16 & operator/= ( thread _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator/=() [22/51]

METAL_FUNC thread _MLX_BFloat16 & operator/= ( thread _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator/=() [23/51]

METAL_FUNC thread _MLX_BFloat16 & operator/= ( thread _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator/=() [24/51]

METAL_FUNC thread _MLX_BFloat16 & operator/= ( thread _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator/=() [25/51]

METAL_FUNC thread _MLX_BFloat16 & operator/= ( thread _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator/=() [26/51]

METAL_FUNC thread _MLX_BFloat16 & operator/= ( thread _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator/=() [27/51]

METAL_FUNC thread float & operator/= ( thread float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [28/51]

METAL_FUNC thread half & operator/= ( thread half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [29/51]

METAL_FUNC thread int16_t & operator/= ( thread int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [30/51]

METAL_FUNC thread int32_t & operator/= ( thread int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [31/51]

METAL_FUNC thread int64_t & operator/= ( thread int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [32/51]

METAL_FUNC thread uint16_t & operator/= ( thread uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [33/51]

METAL_FUNC thread uint32_t & operator/= ( thread uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [34/51]

METAL_FUNC thread uint64_t & operator/= ( thread uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [35/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator/= ( threadgroup _MLX_BFloat16 & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [36/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator/= ( threadgroup _MLX_BFloat16 & lhs,
float rhs )
constexpr

◆ operator/=() [37/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator/= ( threadgroup _MLX_BFloat16 & lhs,
half rhs )
constexpr

◆ operator/=() [38/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator/= ( threadgroup _MLX_BFloat16 & lhs,
int16_t rhs )
constexpr

◆ operator/=() [39/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator/= ( threadgroup _MLX_BFloat16 & lhs,
int32_t rhs )
constexpr

◆ operator/=() [40/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator/= ( threadgroup _MLX_BFloat16 & lhs,
int64_t rhs )
constexpr

◆ operator/=() [41/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator/= ( threadgroup _MLX_BFloat16 & lhs,
uint16_t rhs )
constexpr

◆ operator/=() [42/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator/= ( threadgroup _MLX_BFloat16 & lhs,
uint32_t rhs )
constexpr

◆ operator/=() [43/51]

METAL_FUNC threadgroup _MLX_BFloat16 & operator/= ( threadgroup _MLX_BFloat16 & lhs,
uint64_t rhs )
constexpr

◆ operator/=() [44/51]

METAL_FUNC threadgroup float & operator/= ( threadgroup float & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [45/51]

METAL_FUNC threadgroup half & operator/= ( threadgroup half & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [46/51]

METAL_FUNC threadgroup int16_t & operator/= ( threadgroup int16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [47/51]

METAL_FUNC threadgroup int32_t & operator/= ( threadgroup int32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [48/51]

METAL_FUNC threadgroup int64_t & operator/= ( threadgroup int64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [49/51]

METAL_FUNC threadgroup uint16_t & operator/= ( threadgroup uint16_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [50/51]

METAL_FUNC threadgroup uint32_t & operator/= ( threadgroup uint32_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator/=() [51/51]

METAL_FUNC threadgroup uint64_t & operator/= ( threadgroup uint64_t & lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<() [1/13]

METAL_FUNC bool operator< ( _MLX_BFloat16 lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<() [2/13]

METAL_FUNC bool operator< ( _MLX_BFloat16 lhs,
float rhs )
constexpr

◆ operator<() [3/13]

METAL_FUNC bool operator< ( _MLX_BFloat16 lhs,
half rhs )
constexpr

◆ operator<() [4/13]

METAL_FUNC bool operator< ( _MLX_BFloat16 lhs,
int32_t rhs )
constexpr

◆ operator<() [5/13]

METAL_FUNC bool operator< ( _MLX_BFloat16 lhs,
int64_t rhs )
constexpr

◆ operator<() [6/13]

METAL_FUNC bool operator< ( _MLX_BFloat16 lhs,
uint32_t rhs )
constexpr

◆ operator<() [7/13]

METAL_FUNC bool operator< ( _MLX_BFloat16 lhs,
uint64_t rhs )
constexpr

◆ operator<() [8/13]

METAL_FUNC bool operator< ( float lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<() [9/13]

METAL_FUNC bool operator< ( half lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<() [10/13]

METAL_FUNC bool operator< ( int32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<() [11/13]

METAL_FUNC bool operator< ( int64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<() [12/13]

METAL_FUNC bool operator< ( uint32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<() [13/13]

METAL_FUNC bool operator< ( uint64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<=() [1/13]

METAL_FUNC bool operator<= ( _MLX_BFloat16 lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<=() [2/13]

METAL_FUNC bool operator<= ( _MLX_BFloat16 lhs,
float rhs )
constexpr

◆ operator<=() [3/13]

METAL_FUNC bool operator<= ( _MLX_BFloat16 lhs,
half rhs )
constexpr

◆ operator<=() [4/13]

METAL_FUNC bool operator<= ( _MLX_BFloat16 lhs,
int32_t rhs )
constexpr

◆ operator<=() [5/13]

METAL_FUNC bool operator<= ( _MLX_BFloat16 lhs,
int64_t rhs )
constexpr

◆ operator<=() [6/13]

METAL_FUNC bool operator<= ( _MLX_BFloat16 lhs,
uint32_t rhs )
constexpr

◆ operator<=() [7/13]

METAL_FUNC bool operator<= ( _MLX_BFloat16 lhs,
uint64_t rhs )
constexpr

◆ operator<=() [8/13]

METAL_FUNC bool operator<= ( float lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<=() [9/13]

METAL_FUNC bool operator<= ( half lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<=() [10/13]

METAL_FUNC bool operator<= ( int32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<=() [11/13]

METAL_FUNC bool operator<= ( int64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<=() [12/13]

METAL_FUNC bool operator<= ( uint32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator<=() [13/13]

METAL_FUNC bool operator<= ( uint64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator==() [1/13]

METAL_FUNC bool operator== ( _MLX_BFloat16 lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator==() [2/13]

METAL_FUNC bool operator== ( _MLX_BFloat16 lhs,
float rhs )
constexpr

◆ operator==() [3/13]

METAL_FUNC bool operator== ( _MLX_BFloat16 lhs,
half rhs )
constexpr

◆ operator==() [4/13]

METAL_FUNC bool operator== ( _MLX_BFloat16 lhs,
int32_t rhs )
constexpr

◆ operator==() [5/13]

METAL_FUNC bool operator== ( _MLX_BFloat16 lhs,
int64_t rhs )
constexpr

◆ operator==() [6/13]

METAL_FUNC bool operator== ( _MLX_BFloat16 lhs,
uint32_t rhs )
constexpr

◆ operator==() [7/13]

METAL_FUNC bool operator== ( _MLX_BFloat16 lhs,
uint64_t rhs )
constexpr

◆ operator==() [8/13]

METAL_FUNC bool operator== ( float lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator==() [9/13]

METAL_FUNC bool operator== ( half lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator==() [10/13]

METAL_FUNC bool operator== ( int32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator==() [11/13]

METAL_FUNC bool operator== ( int64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator==() [12/13]

METAL_FUNC bool operator== ( uint32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator==() [13/13]

METAL_FUNC bool operator== ( uint64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>() [1/13]

METAL_FUNC bool operator> ( _MLX_BFloat16 lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>() [2/13]

METAL_FUNC bool operator> ( _MLX_BFloat16 lhs,
float rhs )
constexpr

◆ operator>() [3/13]

METAL_FUNC bool operator> ( _MLX_BFloat16 lhs,
half rhs )
constexpr

◆ operator>() [4/13]

METAL_FUNC bool operator> ( _MLX_BFloat16 lhs,
int32_t rhs )
constexpr

◆ operator>() [5/13]

METAL_FUNC bool operator> ( _MLX_BFloat16 lhs,
int64_t rhs )
constexpr

◆ operator>() [6/13]

METAL_FUNC bool operator> ( _MLX_BFloat16 lhs,
uint32_t rhs )
constexpr

◆ operator>() [7/13]

METAL_FUNC bool operator> ( _MLX_BFloat16 lhs,
uint64_t rhs )
constexpr

◆ operator>() [8/13]

METAL_FUNC bool operator> ( float lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>() [9/13]

METAL_FUNC bool operator> ( half lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>() [10/13]

METAL_FUNC bool operator> ( int32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>() [11/13]

METAL_FUNC bool operator> ( int64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>() [12/13]

METAL_FUNC bool operator> ( uint32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>() [13/13]

METAL_FUNC bool operator> ( uint64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>=() [1/13]

METAL_FUNC bool operator>= ( _MLX_BFloat16 lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>=() [2/13]

METAL_FUNC bool operator>= ( _MLX_BFloat16 lhs,
float rhs )
constexpr

◆ operator>=() [3/13]

METAL_FUNC bool operator>= ( _MLX_BFloat16 lhs,
half rhs )
constexpr

◆ operator>=() [4/13]

METAL_FUNC bool operator>= ( _MLX_BFloat16 lhs,
int32_t rhs )
constexpr

◆ operator>=() [5/13]

METAL_FUNC bool operator>= ( _MLX_BFloat16 lhs,
int64_t rhs )
constexpr

◆ operator>=() [6/13]

METAL_FUNC bool operator>= ( _MLX_BFloat16 lhs,
uint32_t rhs )
constexpr

◆ operator>=() [7/13]

METAL_FUNC bool operator>= ( _MLX_BFloat16 lhs,
uint64_t rhs )
constexpr

◆ operator>=() [8/13]

METAL_FUNC bool operator>= ( float lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>=() [9/13]

METAL_FUNC bool operator>= ( half lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>=() [10/13]

METAL_FUNC bool operator>= ( int32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>=() [11/13]

METAL_FUNC bool operator>= ( int64_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>=() [12/13]

METAL_FUNC bool operator>= ( uint32_t lhs,
_MLX_BFloat16 rhs )
constexpr

◆ operator>=() [13/13]

METAL_FUNC bool operator>= ( uint64_t lhs,
_MLX_BFloat16 rhs )
constexpr

Variable Documentation

◆ can_convert_from_bfloat

template<typename T >
constant bool can_convert_from_bfloat
staticconstexpr
Initial value:
=
!is_same_v<T, _MLX_BFloat16> && is_convertible_v<float, T>

◆ can_convert_to_bfloat

template<typename T >
constant bool can_convert_to_bfloat
staticconstexpr
Initial value:
=
!is_same_v<T, _MLX_BFloat16> && is_convertible_v<T, float>