[kaffe] Re: The problem of "Double.c and buggy strtod" is settled
Dalibor Topic
robilad@yahoo.com
Fri Jun 6 06:42:01 2003
--0-1406735685-1054907104=:64798
Content-Type: text/plain; charset=us-ascii
Content-Id:
Content-Disposition: inline
hi Ito,
--- Ito Kazumitsu <ito.kazumitsu@hitachi-cable.co.jp> wrote:
> Hi Dalibor,
>
> In message "Re: [kaffe] Re: The problem of "Double.c and buggy strtod" is
> settled"
> on 03/06/05, Dalibor Topic <robilad@yahoo.com> writes:
>
> > the netbsd strtod seems to need some includes that I don't have around, and
> the
> > netlib strtod wants me to specify way more about IEEE than I know ;) The
> one
> > from glibc is entangles in the glibc mess of headers, so I took another
> look at
> > the one from libiberty. I hope that the attached patch works, I've tried a
> > slightly adapted DoubleTest.c and it worked for me:
>
> I used it on Linux 2.0.38, and the result seemed satisfactory....
>
> But it was not because the new strtod worked but because I had
> chaned the system-wide /usr/lib/libc.so so that it used the
> strtod of NetBSD origin.
>
> I restored the original /usr/lib/libc.so. Then I got the
> bad result:
>
> $ ./a.out 4.9406564584124654418e-324
> 4.9406564584124654418e-324 0 0.00000000000000000000e+00
>
> Seeing the source, I found that the libiberty-strtod.c used atof.
> The atof of Linux 2.0.38 uses its own __strtod_internal.
>
> As long as __strtod_internal is used, you cannot expect a good
> result.
Well, on to the next implementation ;) The atatched patch used strtod from
dietlibc so it would be nice if you could try it out.
cheers,
dalibor topic
__________________________________
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com
--0-1406735685-1054907104=:64798
Content-Type: application/x-tar-gz; name="dalibor-strtod-2-newfiles.tgz"
Content-Transfer-Encoding: base64
Content-Description: dalibor-strtod-2-newfiles.tgz
Content-Disposition: attachment; filename="dalibor-strtod-2-newfiles.tgz"
H4sIABWa4D4AA+2VzXLTMBDHc/ZTLMMMju0mlZM0gYR0hgMDh8Kl0wdwbSUR
uLLHkgkM9Fl5FfThKHYSChxaLvs7xGtptdqV/utUtMyTlJ4LWckiG6a9R4DE
hEwnkx4hZDKeEPOcEfOuGau3HplNZ8pvMhpdKP/xRTztAXmMZA6phUwqgJ4s
SvZQ9W/ejQbv2ZaJp0jq6XjOeJrXGYXXSgGMr4ebS689luXstjuWym8l1UNe
VtS3OQUrnX5acCEh3SRVCOLMGiFQnpWyCuC7B4qKrpmQtIK2M5R6CpYgFl2n
vOBraDaBL0leU+VEhlfWjXEJxwi25jpWFFuvTgzHKkllUVmPmus1NOsGpF/L
YuEZh+2GqcV9YEKUqlX6YRlA4O0cyyhq/MSWyXQDZt6WmyaCgj/w5zatJQya
rOxEpCbMcj2U0VVS5xLmcFvR5LMdvO9m0G/nGqiNYAA+8QN4DTGpW0ntDss8
w5hApNOKosa/SZitVEwVZLkEf+jDLuv9AakI8bBxdrXuXv42qVbUVuRQ32S8
6EzZrCFadpKFsHNd9lhah2Oq0Nv+gPEoMMXQbjH6Lo3AyOJEgUZQbtxdYhTp
a4RDzs/hUwIbpuS5pewnMOXM1Y88g20i4I7xjCrxcgE8UVOUcXoH/lsfVkW+
Vs1AOXy4ub4eug33GnEpdQ7mhFS6tOSy9yfK31qxs0bOGjtr4qwLZ02dNXPW
S2e98ud/TmIv5qO27XLQ+l3WhSxU73Lavvl/1l8nsJGCvnSlKmOfbIx2+PhI
wUZwZvELPXuUuC1ZCfxQtm5x36y+vFSJGMGSE1EOTlSzb53fNoQ+rfm+LezX
F54t4ePN1VVrl7CZUa1mPsJB2ZReUVlXfFeD+W4tvHvvf/9NIQiCIAiCIAiC
IAiCIAiCIAiCIAiCIAjyAL8AmXR0+AAoAAA=
--0-1406735685-1054907104=:64798
Content-Type: application/gzip; name="dalibor-strtod-2.diff.gz"
Content-Transfer-Encoding: base64
Content-Description: dalibor-strtod-2.diff.gz
Content-Disposition: attachment; filename="dalibor-strtod-2.diff.gz"
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
68Qz0zoTbd63AAA=
--0-1406735685-1054907104=:64798--