tree a7403c4d06f95207c9b7f05ebadf8c1e5d6ce96e
parent 89ed79fd45043086f390394d34022164fbbf63a5
author Jameson Nash <vtjnash@gmail.com> 1673052775 -0500
committer Martin Storsjö <martin@martin.st> 1686603071 +0300

gdtoa: Sync to match the latest version at netlib.org

As of Jan. 06 2023. Changelog from http://netlib.org/fp/changes (filtered):

20121220
  dtoa.c and gdtoa.tgz:  to avoid a possible one-time race when
Infinity or NaN appear in decimal->binary conversions done in parallel
threads, replace hexdig_init() with static initialization.

20131209
  dtoa.c, gdtoa.tgz: when strtod computes its starting approximation,
allow z to involve one more digit for IEEE arithmetic and two more
digits for IBM-mainframe and VAX arithmetics.  Thanks to Walter Qian
(water.qian@gmail.com) for suggesting this change, which makes some
conversions faster.

20151020
  dtoa.c:  add a test for dtoa() to return "1" under mode 4 when
converting some very small powers of 10, such as 1e-322 with
ndigits = 4 and 1e-319 with ndigits = 7 (examples provided by
jay.foad@gmail.com).

20160219
  gdtoa.tgz: Adjust gdtoa(...,mode,...) to assume
"round near" when mode is 0 or 1.  Make various tweaks to banish
(useless) warnings from "gcc -Wall -Wextra".  Thanks to Jarkko
Hietaniemi <jhi@iki.fi> for advocating the latter exercise (and
correcting a typo in README).

20160307
  dtoa.c:  fix glitches with floating-point values in hexadecimal
notation:  some values that should overflow to (appropriately signed)
Infinity, such as 0x1p1025, were mishandled, and values greater than
0x1p-1075 and less than 0x1.0000000000001p-1075 where treated as zero
rather than the smallest denormal number.
  gdtoa.tgz:  fix a bug with hexadecimal input greater than the
smallest denormal and less than the smallest denormal times the
smallest number greater than one.  In round-to-nearest values, such
values should round to the smallest denormal rather than to zero.
Thanks to Albert Chan <albertmcchan@yahoo.com> for bug reports.

20160325
  dtoa.c:  fix a bug whereby dtoa(...,mode,...) with, e.g., mode = 2 or
3 could return a string with trailing zeros, contrary to specification.
An example provided by Albert Chan:  dtoa(81320560005., 2, 10,...).
  gdtoa.tgz: fix the analogous bug in gdtoa/dtoa.c and gdtoa/gdtoa.c
and apply the bug fix of 20151020 to gdtoa/dtoa.c.

20160429
  dtoa.c, gdtoa.tgz (file dtoa.c):  Fix a bug with dtoa mode 0 when
Honor_FLT_ROUNDS is defined:  with some inputs and nondefault rounding
modes (e.g., 1.23 with round toward zero), the returned string was off
by one.  When the new 64-bit integer logic is used, the test in
question is very unlikely to be used.  This is another bug reported by
Albert Chan.

20160505
  dtoa.c:  fix some glitches in strtod() when Honor_FLT_ROUNDS is
defined:  zero was returned for some decimal values that should have
been rounded to +- the smallest denormal, and +-Infinity was returned
for some hexadecimal strings with huge values that should have been
rounded to +- the largest finite value.

20160506
  gdtoa.tgz: analogous bug fixes to those of 20160505.

20180730
  strtodg.c in gdtoa.c:  fix a glitch, introduced 20160506, with some
return values of +-Infinity:  the STRTOG_Overflow bit was not set.
