Implementation of &nbsp; [[wp:Interval_arithmetic|interval arithmetic]] &nbsp; and more generally fuzzy number arithmetic require operations that yield safe upper and lower bounds of the exact result. 

For example, for an addition, it is the operations &nbsp; <big> +&uarr; </big> &nbsp; and &nbsp; <big> +&darr; </big> &nbsp; defined as: &nbsp; <big> ''a'' +&darr; ''b'' &le; ''a'' + ''b'' &le; ''a'' +&uarr; ''b''. </big>  

Additionally it is desired that the width of the interval &nbsp; <big> (''a'' +&uarr; ''b'') - (''a'' +&darr; ''b'') </big>  &nbsp; would be about the machine epsilon after removing the exponent part. 

Differently to the standard floating-point arithmetic, safe interval arithmetic is '''accurate''' (but still imprecise). 

I.E.: &nbsp; the result of each defined operation contains (though does not identify) the exact mathematical outcome.

Usually a &nbsp; [[wp:Floating_Point_Unit|FPU's]] &nbsp; have machine &nbsp; <big> +,-,*,/ </big> &nbsp; operations accurate within the machine precision. 

To illustrate it, let us consider a machine with decimal floating-point arithmetic that has the precision is '''3''' decimal points. 

If the result of the machine addition is &nbsp; <big> 1.23, </big> &nbsp; then the exact mathematical result is within the interval &nbsp; <big> ]1.22, 1.24[. </big> 

When the machine rounds towards zero, then the exact result is within &nbsp; <big> [1.23,1.24[. </big> &nbsp; This is the basis for an implementation of safe addition.


;Task;
Show how &nbsp; <big> +&darr; </big> &nbsp; and &nbsp; <big> +&uarr; </big> &nbsp; can be implemented in your language using the standard floating-point type. 

Define an interval type based on the standard floating-point one, &nbsp; and implement an interval-valued addition of two floating-point numbers considering them exact, in short an operation that yields the interval &nbsp; <big> [''a'' +&darr; ''b'', ''a'' +&uarr; ''b'']. </big> 
<br><br>

