Interval computing
A great challenge in numerical computation is coming up with algorithms that are stable for a wide range of inputs. This leads to creative approaches like partial pivoting in gaussian elimination, or accurate floating point summation which is important in inner products. Unfortunately, all of these solutions are problem specific.
Enter interval computing.
Interval computing attempts to solve rounding errors on computers. It
does this by placing brackets around the error. It’s almost like the
uncertaininty we place on observables in physical experiments. For
example, a reading A with a standard deviation
can be written using intervals:
![A \pm \partial A \sim [A - \partial A, A + \partial A] \sim [a, b] = \bar{A} A \pm \partial A \sim [A - \partial A, A + \partial A] \sim [a, b] = \bar{A}](http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/5325017880b95f132dcb760612581c4e.gif)
In general,
defines an interval which
bounds the floating point number. Four of our primitve operations add,
subtract, multiply and divide on two intervals
and
are:
![\bar{A} + \bar{B} = [a+c,b+d] \bar{A} + \bar{B} = [a+c,b+d]](http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/77d48dc1720a272ae8e4db1c24190f77.gif)
![\bar{A} – \bar{B} = [a-d,b-c] \bar{A} – \bar{B} = [a-d,b-c]](http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/9e9bd6fa265e877e1efe71844730432f.gif)
![\bar{A} \times \bar{B} = [min(ac,ad, bc,bd), max(ac,ad,bc,bd)] \bar{A} \times \bar{B} = [min(ac,ad, bc,bd), max(ac,ad,bc,bd)]](http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/080b71a4d09b204edf7e0d9da5a5967b.gif)
![\frac {1}{\bar{A}} = [1/b, 1/a] \frac {1}{\bar{A}} = [1/b, 1/a]](http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/aed417082db042ba4ccebd87d7583134.gif)

(where the interval
does not contain zero.)
Interval computation can also be used for transcendental functions
such as log or sin. The Taylor expansion for sin for example is:

which is a composition of the primitive operations defined above. Interval computation is very useful in determining the robustness of a numerical procedure.