32 explicit inline operator double() {
36 explicit inline operator int()
const {
41 return float() <= (float)other;
45 return float() >= (float)other;
48 return float() == (float)other;
51 return float() != (float)other;
59 static uint32_t
as_uint(
const float x) {
return *(uint *)&x; }
62 static float as_float(
const uint32_t x) {
return *(
float *)&x; }
70 const uint32_t e = (x & 0x7C00) >> 10;
71 const uint32_t m = (x & 0x03FF) << 13;
75 return as_float((x & 0x8000) << 16 | (e != 0) * ((e + 112) << 23 | m) |
76 ((e == 0) & (m != 0)) *
90 const uint32_t e = (b & 0x7F800000) >> 23;
91 const uint32_t m = b & 0x007FFFFF;
94 return (b & 0x80000000) >> 16 |
95 (e > 112) * ((((e - 112) << 10) & 0x7C00) | m >> 13) |
96 ((e < 113) & (e > 101)) *
97 ((((0x007FF000 + m) >> (125 - e)) + 1) >> 1) |
103 return (
float)one + (float)two;
106 return (
float)one - (float)two;
109 return (
float)one * (float)two;
112 return (
float)one / (float)two;
Definition InitializerList.h:7
float floor(float16 arg)
Definition float16.h:127
float fabs(float16 arg)
Definition float16.h:128