delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2001/03/02/05:42:01

X-Authentication-Warning: acp3bf.physik.rwth-aachen.de: broeker owned process doing -bs
Date: Fri, 2 Mar 2001 11:41:47 +0100 (MET)
From: Hans-Bernhard Broeker <broeker AT physik DOT rwth-aachen DOT de>
X-Sender: broeker AT acp3bf
To: djgpp workers list <djgpp-workers AT delorie DOT com>
Subject: Re: strtol fix correct?
In-Reply-To: <2950-Fri02Mar2001122951+0200-eliz@is.elta.co.il>
Message-ID: <Pine.LNX.4.10.10103021132190.9692-100000@acp3bf>
MIME-Version: 1.0
Reply-To: djgpp-workers AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On Fri, 2 Mar 2001, Eli Zaretskii wrote:
> > Date: Fri, 2 Mar 2001 10:44:43 +0100 (MET)
> > From: Hans-Bernhard Broeker <broeker AT physik DOT rwth-aachen DOT de>
[...]
> > That's what I see, too. I did zip up the CVS version and take it home,
> > yesterday evening. I first ran the unmodified libc, which showed 410
> > errors, saved away the 'results' file'
> 
> There is already a canonical results file in the djtst distribution,
> which should be the base for comparison, as the readme there explains.

I know. But the results didn't match even *before* I changed any of the
sources, so I decided to save my own reference. The changes are all
precision warnings about other functions, not related to strto*l or
strtod.

> > The result differs from all the 'standard' versions that
> > come with the CVS sources, but that's caused by compiler version
> > differences, I assume.
> 
> I don't see what does the compiler version have to do with the
> results: they depend on the library sources, not on the compiler
> version.  

Not entirely. I didn't really check, but my guess is that a change in GCC
between the time standards.result was generated and now would optimize
some calculations in a slightly different way, and thus lead to ever so
slightly different results.

> Could you please post the diffs against the file `stadard.results'
> from djtst203.zip?

No problem, here it is.  You'll notice that with one exception (sqrt), the
changes all affect 'complicated' functions, i.e. those which have to
implemented by relatively elaborate polynomial or rational approximations.

The sqrt() change affects the sign bit of a NaN. If memory serves, we
already had a discussion about that issue.

--- standard.results	Mon Jul 12 17:07:03 1999
+++ /cldsk/axp61/he/broeker/progs/my_cygnus_mtest.results	Fri Mar  2 11:38:14 2001
@@ -97,10 +97,10 @@
 testing frexp
 testing frexpf
 testing gamma
-gamma:34, inaccurate answer: bit 58 (3f7261e6d250cf63 3f7261e6d250cf83) (0.0044879 0.0044879)
-gamma:35, inaccurate answer: bit 61 (bfaccbf9f5ed0f16 bfaccbf9f5ed0f1d) (-0.0562437 -0.0562437)
+gamma:34, inaccurate answer: bit 59 (3f7261e6d250cf63 3f7261e6d250cf80) (0.0044879 0.0044879)
+gamma:35, inaccurate answer: bit 60 (bfaccbf9f5ed0f16 bfaccbf9f5ed0f20) (-0.0562437 -0.0562437)
 testing gammaf
-gammaf:34, inaccurate answer: bit 33 (3f7261e6e0000000 3f7261e680000000) (0.0044879 0.0044879)
+gammaf:34, inaccurate answer: bit 31 (3f7261e6e0000000 3f7261e800000000) (0.0044879 0.0044879)
 gammaf:35, inaccurate answer: bit 31 (bfaccbfa00000000 bfaccbf900000000) (-0.0562437 -0.0562437)
 gammaf:51, inaccurate answer: bit 33 (3ff5776f20000000 3ff5776f60000000) (1.34166 1.34166)
 testing hypot
@@ -109,11 +109,15 @@
 j0:80, inaccurate answer: bit 60 (bf483a04fad8027b bf483a04fad8026e) (-0.000739338 -0.000739338)
 testing j0f
 j0f:69, inaccurate answer: bit 33 (3fc80ffa80000000 3fc80ffac0000000) (0.187988 0.187988)
+j0f:71, inaccurate answer: bit 33 (3fc382ee40000000 3fc382ee80000000) (0.152433 0.152433)
 j0f:79, inaccurate answer: bit 33 (3f8fe78de0000000 3f8fe78e20000000) (0.0155784 0.0155784)
 j0f:80, inaccurate answer: bit 30 (bf48398020000000 bf483982a0000000) (-0.000739276 -0.000739278)
+j0f:95, inaccurate answer: bit 33 (bfcb7f1600000000 bfcb7f1640000000) (-0.214816 -0.214816)
 j0f:141, inaccurate answer: bit 33 (bfd6f73120000000 bfd6f73160000000) (-0.358837 -0.358837)
+j0f:143, inaccurate answer: bit 33 (bfd6391080000000 bfd63910c0000000) (-0.347233 -0.347233)
 j0f:157, inaccurate answer: bit 33 (bfce4b89e0000000 bfce4b8a20000000) (-0.23668 -0.23668)
 j0f:159, inaccurate answer: bit 33 (bfcbd8fc20000000 bfcbd8fc80000000) (-0.217559 -0.217559)
+j0f:161, inaccurate answer: bit 33 (bfc952c060000000 bfc952c0a0000000) (-0.197838 -0.197838)
 j0f:214, inaccurate answer: bit 33 (3fb381b060000000 3fb381b0a0000000) (0.0761976 0.0761977)
 testing j1
 j1:126, inaccurate answer: bit 61 (bf73d6707390e02c bf73d6707390e025)
(-0.00484318 -0.00484318)
@@ -158,17 +162,17 @@
 jn:390, inaccurate answer: bit 60 (3fb09bc451605e03 3fb09bc451605dfa) (0.0648768 0.0648768)
 jn:391, inaccurate answer: bit 60 (3f90d3ce7f03d99f 3f90d3ce7f03d996) (0.016433 0.016433)
 jn:392, inaccurate answer: bit 60 (3f6bfc097e7718c5 3f6bfc097e7718b7) (0.00341608 0.00341608)
-jn:807, inaccurate answer: bit 61 (bf8d9c98ef232f86 bf8d9c98ef232f82) (-0.0144588 -0.0144588)
 jn:829, inaccurate answer: bit 60 (3f75544960c77536 3f75544960c7753f) (0.00520734 0.00520734)
-jn:835, inaccurate answer: bit 61 (bf964f67056be037 bf964f67056be031) (-0.0217873 -0.0217873)
-jn:862, inaccurate answer: bit 60 (bf9aea99777aa50d bf9aea99777aa515) (-0.0262856 -0.0262856)
 jn:887, inaccurate answer: bit 61 (3f73ea6c4f518bf5 3f73ea6c4f518bef) (0.00486224 0.00486224)
-jn:906, inaccurate answer: bit 59 (bf58a9b766aa1eaa bf58a9b766aa1ebb) (-0.00150531 -0.00150531)
+jn:906, inaccurate answer: bit 59 (bf58a9b766aa1eaa bf58a9b766aa1e9a) (-0.00150531 -0.00150531)
 jn:923, inaccurate answer: bit 61 (bf5172d3dba28ab8 bf5172d3dba28ab2) (-0.00106497 -0.00106497)
 jn:987, inaccurate answer: bit 59 (3f46a76442a3db15 3f46a76442a3dafc) (0.000691341 0.000691341)
+jn:1050, inaccurate answer: bit 61 (3f6c50768b942c5d 3f6c50768b942c63) (0.00345634 0.00345634)
 jn:1066, inaccurate answer: bit 61 (3f652fc6f006f8aa 3f652fc6f006f8a3) (0.00258626 0.00258626)
 testing jnf
-jnf:343, inaccurate answer: bit 33 (3fd84fc360000000 3fd84fc3c0000000) (0.379868 0.379868)
+jnf:343, inaccurate answer: bit 33 (3fd84fc360000000 3fd84fc3a0000000) (0.379868 0.379868)
+jnf:345, inaccurate answer: bit 33 (3fa598c9e0000000 3fa598ca20000000) (0.0421813 0.0421813)
+jnf:347, inaccurate answer: bit 33 (3f5bd0f360000000 3f5bd0f3a0000000) (0.00169777 0.00169777)
 jnf:358, inaccurate answer: bit 33 (3fd984a520000000 3fd984a560000000) (0.398721 0.398721)
 jnf:363, inaccurate answer: bit 33 (3fd9e690a0000000 3fd9e69100000000) (0.404698 0.404698)
 jnf:384, inaccurate answer: bit 33 (3fc8c601c0000000 3fc8c60200000000) (0.193543 0.193543)
@@ -182,8 +186,6 @@
 jnf:403, inaccurate answer: bit 33 (3fdc8c3b40000000 3fdc8c3ba0000000) (0.446059 0.446059)
 jnf:408, inaccurate answer: bit 33 (3fdcd24a60000000 3fdcd24ac0000000) (0.450335 0.450335)
 jnf:413, inaccurate answer: bit 33 (3fdd14cca0000000 3fdd14cd00000000) (0.454394 0.454395)
-jnf:419, inaccurate answer: bit 33 (3fcdf7b740000000 3fcdf7b700000000) (0.234122 0.234122)
-jnf:421, inaccurate answer: bit 33 (3f97836100000000 3f978360c0000000) (0.0229621 0.0229621)
 jnf:423, inaccurate answer: bit 33 (3fdd8ed960000000 3fdd8ed9c0000000) (0.461844 0.461844)
 jnf:428, inaccurate answer: bit 33 (3fddc63d00000000 3fddc63d60000000) (0.465225 0.465225)
 jnf:433, inaccurate answer: bit 32 (3fddf9c660000000 3fddf9c6e0000000) (0.46837 0.46837)
@@ -193,7 +195,10 @@
 jnf:438, inaccurate answer: bit 33 (3fde296440000000 3fde2964a0000000) (0.471276 0.471276)
 jnf:448, inaccurate answer: bit 33 (3fde7c9ca0000000 3fde7c9ce0000000) (0.476356 0.476356)
 jnf:453, inaccurate answer: bit 33 (3fdea01900000000 3fdea01940000000) (0.478522 0.478522)
-jnf:463, inaccurate answer: bit 33 (3fdeda8d60000000 3fdeda8da0000000) (0.482089 0.482089)
+jnf:463, inaccurate answer: bit 33 (3fdeda8d60000000 3fdeda8dc0000000) (0.482089 0.482089)
+jnf:465, inaccurate answer: bit 33 (3fbdaa5d00000000 3fbdaa5d40000000) (0.115881 0.115881)
+jnf:466, inaccurate answer: bit 33 (3fa2649140000000 3fa2649180000000) (0.0359235 0.0359235)
+jnf:467, inaccurate answer: bit 33 (3f829399a0000000 3f829399e0000000) (0.00907059 0.00907059)
 jnf:468, inaccurate answer: bit 33 (3fdef16ca0000000 3fdef16ce0000000) (0.483485 0.483485)
 jnf:478, inaccurate answer: bit 33 (3fdf123ea0000000 3fdf123ee0000000) (0.485489 0.485489)
 jnf:483, inaccurate answer: bit 33 (3fdf1c1e80000000 3fdf1c1ec0000000) (0.486091 0.486091)
@@ -203,6 +208,7 @@
 jnf:513, inaccurate answer: bit 33 (3fdefa2020000000 3fdefa2060000000) (0.484016 0.484017)
 jnf:523, inaccurate answer: bit 33 (3fdecade80000000 3fdecadec0000000) (0.481132 0.481132)
 jnf:533, inaccurate answer: bit 33 (3fde8991a0000000 3fde8991e0000000) (0.477147 0.477147)
+jnf:538, inaccurate answer: bit 33 (3fde622a00000000 3fde622a40000000) (0.474741 0.474742)
 jnf:578, inaccurate answer: bit 33 (3fdc8722a0000000 3fdc8722e0000000) (0.445748 0.445748)
 jnf:590, inaccurate answer: bit 33 (3fcd3f9220000000 3fcd3f9260000000) (0.228503 0.228503)
 jnf:591, inaccurate answer: bit 33 (3fb85a3760000000 3fb85a37a0000000) (0.0951266 0.0951266)
@@ -212,14 +218,12 @@
 jnf:677, inaccurate answer: bit 33 (3faf2b81e0000000 3faf2b8220000000) (0.0608788 0.0608788)
 jnf:684, inaccurate answer: bit 33 (3fdbc8f240000000 3fdbc8f280000000) (0.43414 0.43414)
 jnf:694, inaccurate answer: bit 33 (3fdbb75240000000 3fdbb75280000000) (0.433064 0.433064)
+jnf:704, inaccurate answer: bit 33 (3fdb97c0c0000000 3fdb97c100000000) (0.431137 0.431137)
 jnf:713, inaccurate answer: bit 33 (3fce7b1f00000000 3fce7b1f40000000) (0.238132 0.238132)
 jnf:714, inaccurate answer: bit 33 (3fdb6a1ee0000000 3fdb6a1f20000000) (0.428352 0.428352)
 jnf:716, inaccurate answer: bit 33 (3fc7df1080000000 3fc7df10c0000000) (0.186495 0.186495)
 jnf:718, inaccurate answer: bit 33 (3fcd308de0000000 3fcd308da0000000) (0.228044 0.228044)
 jnf:734, inaccurate answer: bit 33 (3fdae46920000000 3fdae46960000000) (0.420191 0.420191)
-jnf:748, inaccurate answer: bit 33 (3fc53039a0000000 3fc53039e0000000) (0.165534 0.165534)
-jnf:751, inaccurate answer: bit 33 (3fcb959760000000 3fcb9597a0000000) (0.215503 0.215503)
-jnf:752, inaccurate answer: bit 33 (3fb903b520000000 3fb903b560000000) (0.0977128 0.0977128)
 jnf:762, inaccurate answer: bit 33 (3fba786ca0000000 3fba786ce0000000) (0.1034 0.1034)
 jnf:768, inaccurate answer: bit 33 (3fbf5f66a0000000 3fbf5f66e0000000) (0.122549 0.122549)
 jnf:772, inaccurate answer: bit 33 (3fbbf87380000000 3fbbf873c0000000) (0.10926 0.10926)
@@ -229,13 +233,19 @@
 jnf:785, inaccurate answer: bit 33 (3fd88ce480000000 3fd88ce4c0000000) (0.383599 0.383599)
 jnf:786, inaccurate answer: bit 33 (3fcf5287c0000000 3fcf528820000000) (0.244706 0.244706)
 jnf:787, inaccurate answer: bit 33 (3fbe4cf6a0000000 3fbe4cf700000000) (0.118362 0.118362)
+jnf:789, inaccurate answer: bit 33 (3fd8539320000000 3fd8539360000000) (0.380101 0.380101)
 jnf:790, inaccurate answer: bit 33 (3fd8afa0e0000000 3fd8afa120000000) (0.38572 0.38572)
+jnf:791, inaccurate answer: bit 33 (3fcfda15c0000000 3fcfda1600000000) (0.248843 0.248843)
+jnf:792, inaccurate answer: bit 33 (3fbf191140000000 3fbf191180000000) (0.121476 0.121476)
 jnf:794, inaccurate answer: bit 33 (3fd8036fe0000000 3fd8037020000000) (0.37521 0.37521)
 jnf:795, inaccurate answer: bit 33 (3fd8d014c0000000 3fd8d01500000000) (0.3877 0.3877)
+jnf:797, inaccurate answer: bit 33 (3fbfe7b740000000 3fbfe7b780000000) (0.124629 0.124629)
 jnf:798, inaccurate answer: bit 33 (3fad633040000000 3fad6330a0000000) (0.0573974 0.0573974)
 jnf:810, inaccurate answer: bit 33 (3fa5b4fdc0000000 3fa5b4fe00000000) (0.0423965 0.0423965)
 jnf:816, inaccurate answer: bit 33 (3fa1c923c0000000 3fa1c92420000000) (0.0347377 0.0347377)
-jnf:822, inaccurate answer: bit 33 (3fa0bb2880000000 3fa0bb28c0000000) (0.0326779 0.0326779)
+jnf:818, inaccurate answer: bit 33 (bfc7d1c180000000 bfc7d1c1c0000000) (-0.186089 -0.186089)
+jnf:820, inaccurate answer: bit 33 (3fbfa93880000000 3fbfa938c0000000) (0.123676 0.123676)
+jnf:821, inaccurate answer: bit 33 (3fcb84acc0000000 3fcb84ad00000000) (0.214986 0.214986)
 jnf:839, inaccurate answer: bit 33 (3fbcc867a0000000 3fbcc867e0000000) (0.112433 0.112433)
 jnf:841, inaccurate answer: bit 33 (bfa527d920000000 bfa527d980000000) (-0.0413196 -0.0413197)
 jnf:860, inaccurate answer: bit 33 (bfa6224b40000000 bfa6224b80000000) (-0.0432304 -0.0432304)
@@ -252,7 +262,6 @@
 jnf:935, inaccurate answer: bit 33 (bfaebdc740000000 bfaebdc7a0000000) (-0.0600416 -0.0600417)
 jnf:937, inaccurate answer: bit 33 (3fa1254ba0000000 3fa1254be0000000) (0.0334877 0.0334877)
 jnf:946, inaccurate answer: bit 33 (3fadb024e0000000 3fadb02520000000) (0.0579845 0.0579845)
-jnf:963, inaccurate answer: bit 33 (bfae92ad20000000 bfae92ad60000000) (-0.0597128 -0.0597128)
 jnf:984, inaccurate answer: bit 33 (3fb9596440000000 3fb9596480000000) (0.0990203 0.0990203)
 jnf:986, inaccurate answer: bit 33 (bfb9ea74a0000000 bfb9ea74e0000000) (-0.101234 -0.101234)
 jnf:987, inaccurate answer: bit 29 (3f46a76440000000 3f46a75e40000000) (0.000691341 0.000691339)
@@ -296,14 +305,15 @@
 testing sinh
 testing sinhf
 testing sqrt
+sqrt:133, inaccurate answer: bit 0 (fff8000000000000 7ff8000000000000) (NaN NaN)
 testing sqrtf
+sqrtf:133, inaccurate answer: bit 0 (fff8000000000000 7ff8000000000000) (NaN NaN)
 testing tan
 testing tanf
 testing tanh
 testing tanhf
 testing y0
 testing y0f
-y0f:32, inaccurate answer: bit 33 (3f86aa0120000000 3f86aa00e0000000) (0.0110664 0.0110664)
 y0f:87, inaccurate answer: bit 33 (3fde7ee300000000 3fde7ee340000000) (0.476495 0.476495)
 y0f:88, inaccurate answer: bit 33 (3fde161500000000 3fde161540000000) (0.470098 0.470098)
 y0f:89, inaccurate answer: bit 33 (3fdda706a0000000 3fdda706e0000000) (0.463319 0.46332)
@@ -367,6 +377,7 @@
 y1f:209, inaccurate answer: bit 33 (3fb90072a0000000 3fb90072e0000000) (0.0976631 0.0976631)
 y1f:212, inaccurate answer: bit 33 (3f7d4e58e0000000 3f7d4e5940000000) (0.0071548 0.0071548)
 testing yn
+yn:503, inaccurate answer: bit 61 (bfbb5f2966e7c11c bfbb5f2966e7c122) (-0.106921 -0.106921)
 yn:518, inaccurate answer: bit 61 (bfb14a48ad86ec95 bfb14a48ad86ec91) (-0.0675397 -0.0675397)
 yn:523, inaccurate answer: bit 61 (bfabf19379a74c3a bfabf19379a74c33) (-0.0545775 -0.0545775)
 yn:528, inaccurate answer: bit 61 (bfa55a868b94bb0f bfa55a868b94bb14) (-0.0417063 -0.0417063)
@@ -393,6 +404,7 @@
 yn:932, inaccurate answer: bit 61 (3f7d956aec4fc025 3f7d956aec4fc029) (0.00722257 0.00722257)
 yn:957, inaccurate answer: bit 59 (bf6efed64182e08c bf6efed64182e09f) (-0.00378363 -0.00378363)
 yn:1016, inaccurate answer: bit 61 (bf98d90899633801 bf98d908996337fd) (-0.0242654 -0.0242654)
+yn:1049, inaccurate answer: bit 61 (bf58978921d80da3 bf58978921d80d9e) (-0.00150097 -0.00150097)
 testing ynf
 ynf:346, inaccurate answer: bit 33 (c01e6ecd80000000 c01e6ecdc0000000) (-7.60821 -7.60821)
 ynf:359, inaccurate answer: bit 33 (bfedd03240000000 bfedd03280000000) (-0.931665 -0.931665)
@@ -550,4 +562,4 @@
 testing fpsetroundtoi/fpgetroundtoi
 fpsetroundtoi/fpgetroundtoi:2, inacurate answer: (00000000 should be 00000001)
 testing fpsetround
-Tested 63223 functions, 398 errors detected
+Tested 63223 functions, 410 errors detected

> I assume that you ran the test suite after all these changes, right?

Of course. :-)

-- 
Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de)
Even if all the snow were burnt, ashes would remain.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019