This implementation looks like it would be very slow... lots of floating-point flag register manipulation plus a floating-point division.  I could be wrong, but I would guess the code MathUtil::ClassifyDouble uses is faster.

Otherwise LGTM.