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.