Author mark.dickinson
Recipients mark.dickinson, paul.moore, pitrou, python-dev, r.david.murray, serhiy.storchaka, skrah, steve.dower, tim.golden, tim.peters, vstinner, zach.ware
Date 2016-01-20.16:07:03
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1453306023.62.0.0109319201868.issue25934@psf.upfronthosting.co.za>
In-reply-to
Content
The dtoa.c occurrence is also straightforward to fix. It's coming from this declaration:

    static const double tinytens[] = { 1e-16, 1e-32, 1e-64, 1e-128,
                      9007199254740992.*9007199254740992.e-256};

We need to be a tiny bit careful here, since dtoa.c is fragile code and relies on exact representation of some floats. But this isn't one of them: the only thing that tinytens is used for is getting a first approximation to the correct strtod conversion before the main iteration kicks in.

So replacing that last tinytens value with a suitably precise constant should be okay. The *exact* value of the constant we need is 0x1.8062864ac6f43p-745, or in decimal: 

8.11296384146066798564414657510725945755617084762542409283393077939218873123696010224953185884350111344494845510586594487062499326481633636403965073720792027659736980514301906428513324403012698167973428740345918815412673646248939187125560378562250718330485204443480974365425682653185460026731686712157238961539250106472701178830382576220700577401565213825995547382545061286464557591871221948351734365233811730381171156150018612038234137396963100802781483162471536048255738998621259419238986828005847002315384502722411971989039148624688058131226853220141492784023284912109375E-225

But 8.112963841460668e-225 should be good enough (along with a comment explaining why the expression was changed). If MSVC supported C99's hex constants, we could just use 0x1.8062864ac6f43p-745. But it doesn't. :-(
History
Date User Action Args
2016-01-20 16:07:03mark.dickinsonsetrecipients: + mark.dickinson, tim.peters, paul.moore, pitrou, vstinner, tim.golden, r.david.murray, skrah, python-dev, zach.ware, serhiy.storchaka, steve.dower
2016-01-20 16:07:03mark.dickinsonsetmessageid: <1453306023.62.0.0109319201868.issue25934@psf.upfronthosting.co.za>
2016-01-20 16:07:03mark.dickinsonlinkissue25934 messages
2016-01-20 16:07:03mark.dickinsoncreate