export uniform int width() { return programCount; } export void f_v(uniform float RET[]) { int errors = 0; foreach (i = 0 ... 65535) { unsigned int16 h = i; float f = half_to_float(i); h = float_to_half(f); int mismatches = (!isnan(f) && i != h); if (any(mismatches != 0)) print("mismatch: orig int16 % -> float % -> half %\n", i, f, h); errors += reduce_add(mismatches); } RET[programIndex] = errors; } export void result(uniform float RET[]) { RET[programIndex] = 0; }