# Are IEEE floating point numbers intervals or point values?

The context is IEEE 754-2008 floating point number systems. The systems defined by the standard comprise, as far as I understand it, a bit-level representation and a set of guarantees on the precision for a given number of computations.

Now, I am wondering whether floating point numbers, i.e., the objects represented and manipulated in such a system, should be looked at as intervals—a contiguous set real numbers—or as point values—a unique real number. (Which interval? Crudely, with round-to-nearest, the nominal value plus-or-minus half a ulp.)

The arguments for intervals I see come mostly from the representational aspects of the system:

1. Numbers from ‘outside’ of the system—measurement data, say—are encoded with reduced precision and so the bit-level representation is in general clearly not the ‘true’ value, but—given the information about the rounding rule used—represents an interval in which the ‘true’ value lies.

2. Numbers from ‘inside’ of the system that are the result of a series of computations within the system have also been subject to the effects of intermediate rounding and so again—given the information about the rounding rule used—represents an interval in which the ‘true’ resulting value of the computation lies.

The arguments for point values I see come from the computational aspects of the system and the typical discussions of floating point:

1. Computations are performed on the real value that nominally corresponds to the bit-level representation, using some extra bits to enable precision guarantees. They are not applied to the interval bounds implied by the bit-level representation (and information about the rounding rule used in its generation), which would be possible in principle using some extra bits and double the effort (each computational step…). Put differently: interval analysis is not applied.

2. If interval analysis were used, rounding rules would not be needed.

3. In the discussions of floating point I have seen, they are always generally treated as point values, e.g., depicting them as discrete points on the real line.

Now, the above arguments are composed by someone that has not read up on the floating point literature in detail, so they may not represent the common view among knowledgeable people in the field. I would like to learn the views of these people and the arguments used. (So I am not necessarily looking for an answer ‘point values’/‘intervals’ to the binary question of the title of this question.)

I have not specified restrictions to the binary or decimal systems. This may be relevant, I feel: in the binary case, the representations are normalized, so no significance information is available, but in the decimal case, the representation is not normalized. This means, I think, that in the latter case a crude way of doing interval analysis is possible (by reducing the number of significant digits)—not that this means it is actually done—, but in the former case, such crude analysis is not possible (although it would be far less crude, given the small magnitude steps—factors of 2).

• To satisfy your request: Take the numbers $x_1$ and $x_2$ and their respective interval bounds $x_1\pm\epsilon_1$ and $x_2\pm\epsilon_2$ where $\epsilon_i$ corresponds to half an ulp. Their floating point sum—as you describe—is $x_3$ with bounds $x_3\pm\epsilon_3$. Now, in general $\epsilon_3$ will differ from $\epsilon_1+\epsilon_2$, which determines the interval analysis bounds. So $\epsilon_3$ may be a bad approximation of $\epsilon_1+\epsilon_2$. – equaeghe Apr 18 '17 at 15:46
• Now that I'm back: so you imply that my argument 3 is a or the reason to consider floating point numbers point values; I'm not convinced: looking at them as intervals immediately clarifies problematic cancellation: $\epsilon_3$ being smaller than $\epsilon_1+\epsilon_2$, no? That does not mean I'm right: but please, update your answer with arguments and references. – equaeghe Apr 18 '17 at 15:49