#ifndef _HALF_FLOAT_H_
#define _HALF_FLOAT_H_
+#include <stdbool.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
+#define FP16_ONE 0x3C00
+#define FP16_ZERO 0
+
uint16_t _mesa_float_to_half(float val);
float _mesa_half_to_float(uint16_t val);
+uint8_t _mesa_half_to_unorm8(uint16_t v);
+uint16_t _mesa_uint16_div_64k_to_half(uint16_t v);
+
+static inline bool
+_mesa_half_is_negative(uint16_t h)
+{
+ return !!(h & 0x8000);
+}
+
#ifdef __cplusplus
} /* extern C */