Here's a spec for a useful tool that deals with these issues:
Input:
- A function that returns a floating point value.
- A description of the inputs (ranges, precision) to the function.
Output:
- The worst case, best case and average error introduced by the floating point operations in the program (Error is provided as a relative error and ulps (units in the last place)).
Operational description:
- Compile the input program using a floating point and fixed point data type for the operands involved.
- Execute the program using the variety of input parameters specified.
- Record the results from both versions of the software and compare.
- Provide the summary statistics as output.
Required tools:
- Some sort of fixed point math library.
- Perhaps some sort of parser for the programming language desired (I dunno).