
Package Overview for Berkeley TestFloat Release 3

John R. Hauser
2014 ________

Berkeley TestFloat is ___.
***
TestFloat
is distributed in the form of C source code.  Building the TestFloat sources
creates ___.

The TestFloat package is documented in the following files in the "doc"
subdirectory:

    TestFloat-general.html  General documentation for understanding and using
                             the TestFloat programs.
    testfloat_gen.html      \
    testfloat_ver.html      | Specific documentation for each TestFloat
    testfloat.html          |  program.
    testsoftfloat.html      |
    timesoftfloat.html      /
    TestFloat-source.html   Documentation for building TestFloat.
    TestFloat-history.html  History of the major changes to TestFloat.

Other files in the package comprise the source code for TestFloat.

