/* Public domain. */ typedef int SItype __attribute__ ((mode (SI))); typedef unsigned int USItype __attribute__ ((mode (SI))); typedef float DFtype __attribute__ ((mode (DF))); DFtype __floatunsidf (USItype u) { SItype s = (SItype) u; DFtype r = (DFtype) s; if (s < 0) r += (DFtype)2.0 * (DFtype) ((USItype) 1 << (sizeof (USItype) * __CHAR_BIT__ - 1)); return r; }