Robust Implementation

Problems in using hardware supported approximate arithmetic:
Numbers with fractional parts (real/floating-point as opposed to integer/fixed-point numbers) cannot all be fully represented in binary computers because computers cannot hold an infinite number of bits (binary digits) after the decimal point.  The only real numbers that are represented exactly are those that can be expressed as a fraction with denominator that is a power of two (e.g. 0.25); just as the only terminating (finite) decimals are those expressible as a fraction with denominator that is a power of ten (e.g. 0.1).  Many real numbers, one third for example, cannot be expressed as a terminating decimal or binary number.  Binary computers therefore represent many real numbers in approximate form only. Round-off errors in a series of arithmetic operations seldom occur randomly up and down.  Large round-off error at the beginning of a series of calculations can become magnified such that the result of the series is substantially imprecise, a condition known as instability.

Avoiding  the round-off errors:
Software libraries for arbitrary precision floating point arithmetic can be used to accurately perform many error prone or ill condioned problems that would be infeasible using only hardware supported approximate arithmetic. We make use of one such library - LEDA (Library of Efficient Data types and Algorithms). We use leda_real, a LEDA supported data type which allows us to do the computations using arbitrary preceision numbers and avoid the round-off errors.