We use the notation x = fl([x.sup.*]) to represent the floating-point value of [x.sup.*] (the nearest number in the floating-point system).

For real numbers [x.sup.*.sub.1], [x.sup.*.sub.2], [x.sub.1], [x.sub.2] represent the floating-point value of [x.sup.*.sub.1], [x.sup.*.sub.2], which is the nearest number in the floating-point system. For i = 1, 2, [x.sub.i] = [x.sup.*.sub.i] + [[DELTA].sub.i], where [[DELTA].sub.1], [[DELTA].sub.2] represent the absolute error of the real number and the floating-point number, which are subject to [absolute value of [[DELTA].sub.i]] [less than or equal to] 0.5 x [b.sup.e-k], [absolute value of [x.sup.*.sub.i]] > [b.sup.e-1], and the relative error is as follows:

The FFHE we propose below simulates the operations of plaintext in the floating-point system with a Boolean circuit.

The tested floating-point system can be implemented in hardware, in software, or a combination of both.

The precision-independent tool we have developed is designed to test a floating-point system in its globality, as a programming environment, in other words all operations (a), all conversions (b) through (e), as well as the handling of all floating-point exceptions (f).

While formal verification methods have also been applied to floating-point systems, we shall not discuss such methods here but refer, among others, to Russinoff [1998], Harrison [2000], German [1999], and Cornea-Hasegan [1998].

To overcome that difficulty, computer scientists in the 1950s developed the floating-point system of arithmetic, expressing each number in two parts.

Although widely applied, the floating-point system still causes problems, especially when calculations using operations such as multiplication or subtraction yield answers that are extremely large or extremely small, falling outside the range of numbers that the system can represent.

This "symmetric level-index" scheme avoids many of the problems the floating-point system encounters with numbers close to zero or approaching infinity.

The version presented here operates correctly on a large number of different

floating-point systems, including those implementing the new IEEE Floating-Point Standard.