Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!weretis.net!feeder4.news.weretis.net!news.musoftware.de!wum.musoftware.de!fu-berlin.de!uni-berlin.de!news.dfncis.de!not-for-mail From: =?ISO-8859-1?Q?Hans-Bernhard_Br=F6ker?= Newsgroups: comp.graphics.apps.gnuplot Subject: Re: trying to get a fit to work. Date: Thu, 09 Jun 2011 22:26:25 +0200 Lines: 33 Message-ID: <95coieFepcU1@mid.dfncis.de> References: <62b76acf-a50c-49f2-a02a-908398651e5b@q12g2000prb.googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.dfncis.de rkLtCEIC1Rh2FFih1FZhJgJ2AT7Szwrlo+menfqe79f89wOx66WbGvqxz3 Cancel-Lock: sha1:6zwvKE4lTFgM7EBf2pYuXIigFEY= User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 In-Reply-To: Xref: x330-a1.tempe.blueboxinc.net comp.graphics.apps.gnuplot:366 On 09.06.2011 06:48, sfeam wrote: > Neither OS underflows with exp(-x) - both go to zero. Actually the OS would overflow. We just don't let it. See gp_exp() and its treatment of E_MINEXP. > I think this means there's something wrong with the way erfc works in > windows, other than basic underflow handling. So an even simpler fix uses > the definition of erfc: > > myerfc(x) = 1 - erf(x) Unfortunately that's really to simple to be a valid fix. This loses accuracy _way_ earlier than the actual erfc() does: gnuplot> print erfc(27) 5.23704643935263e-319 gnuplot> print 1-erf(7) 0.0 [Using our Windows binary of 4.4 pl2] > I am guessing that you are using a machine that has configured in the > internal version, and there is an overflow bug in it somewhere. That's no bug, it's a deliberate, reasonably error reaction. It's a bona fide floating point exception being raised by the implementation, which under the usual roles of standard C library routines is apparently _supposed_ to send out a floating point exception. That's the same reason implementations started to return "undefined" for exp(-largenumber), one after the other, a while ago.