int ilogb(double x) { if (x == 0) return FP_ILOGB0; if (x.isNaN) return FP_ILOGBNAN; if (x.isInfinite) return 0x7fffffff; List<int> e = [0]; frexp(x, e); return e[0] - 1; }