History of Berkeley SoftFloat, to Release 3a
John R. Hauser
2015 October 23
Release 3a (2015 October)
- 
Replaced the license text supplied by the University of California, Berkeley.
Release 3 (2015 February)
- 
Complete rewrite, funded by the University of California, Berkeley, and
consequently having a different use license than earlier releases.
Major changes included renaming most types and functions, upgrading some
algorithms, restructuring the source files, and making SoftFloat into a true
library.
- 
Added functions to convert between floating-point and unsigned integers, both
32-bit and 64-bit (uint32_tanduint64_t).
- 
Added functions for fused multiply-add, for all supported floating-point
formats except 80-bit double-extended-precision.
- 
Added support for a fifth rounding mode, near_maxMag(round to
nearest, with ties to maximum magnitude, away from zero).
- 
Dropped the timesoftfloatprogram (now part of the Berkeley
TestFloat package).
Release 2c (2015 January)
- 
Fixed mistakes affecting some 64-bit processors.
- 
Further improved the documentation and the wording for the legal restrictions
on using SoftFloat releases through 2c (not applicable to
Release 3 or later).
Release 2b (2002 May)
- 
Made minor updates to the documentation, including improved wording for the
legal restrictions on using SoftFloat.
Release 2a (1998 December)
- 
Added functions to convert between 64-bit integers
(int64) and all supported floating-point formats.
- 
Fixed a bug in all 64-bit-version square root functions except
float32_sqrtthat caused the result sometimes to be off by
1 unit in the last place (1 ulp) from what it should
be.
(Bug discovered by Paul Donahue.)
- 
Improved the Makefiles.
Release 2 (1997 June)
- 
Created the 64-bit (bits64) version, adding thefloatx80andfloat128formats.
- 
Changed the source directory structure, splitting the sources into a
bits32and abits64version.
Renamedenvironment.htomilieu.hto avoid confusion
with environment variables.
- 
Fixed a small error that caused float64_round_to_intoften to
round the wrong way in nearest/even mode when the operand was between
220 and 221 and halfway between two integers.
Release 1a (1996 July)
- 
Corrected a mistake that caused borderline underflow cases not to raise the
underflow flag when they should have.
(Problem reported by Doug Priest.)
- 
Added the float_detect_tininessvariable to control whether
tininess is detected before or after rounding.
Release 1 (1996 July)
- 
Original release, based on work done for the International Computer Science
Institute (ICSI) in Berkeley, California.