double significand(double x) { if (x == 0 || x.isNaN || x.isInfinite) return x; return scalbn(x, -ilogb(x)); }