
Package Overview for Berkeley SoftFloat Release 3

John R. Hauser
2014 Dec 17

Berkeley SoftFloat is a software implementation of binary floating-point
that conforms to the IEEE Standard for Floating-Point Arithmetic.  SoftFloat
is distributed in the form of C source code.  Building the SoftFloat sources
generates a library file (typically "softfloat.a" or "libsoftfloat.a")
containing the floating-point subroutines.

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

    SoftFloat.html          Documentation for using the SoftFloat functions.
    SoftFloat-source.html   Documentation for building SoftFloat.
    SoftFloat-history.html  History of the major changes to SoftFloat.

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

