5 #include "util/u_math.h"
6 #include "util/u_half.h"
9 main(int argc
, char **argv
)
12 unsigned roundtrip_fails
= 0;
14 for(i
= 0; i
< 1 << 16; ++i
)
16 uint16_t h
= (uint16_t) i
;
20 f
.f
= util_half_to_float(h
);
21 rh
= util_float_to_half(f
.f
);
23 if (h
!= rh
&& !(util_is_half_nan(h
) && util_is_half_nan(rh
))) {
24 printf("Roundtrip failed: %x -> %x = %f -> %x\n", h
, f
.ui
, f
.f
, rh
);
30 printf("Failure! %u/65536 half floats failed a conversion to float and back.\n", roundtrip_fails
);