precision(x) is by definition |x| if x equals 0, NaN, or Inf.
If x is not zero, it can be uniquely written as x = m*2^e where
m is an odd integer and e is an integer. precision(x) returns the number
of bits necessary to write m in binary (i.e. 1+floor(log2(m))).