delorie.com/archives/browse.cgi | search |
X-pop3-spooler: | POP3MAIL 2.1.0 b 3 961213 -bs- |
Delivered-To: | pcg AT goof DOT com |
Message-ID: | <dhl9JCA2SHD1EwEN@foobar.co.uk> |
Date: | Mon, 16 Mar 1998 00:39:18 +0000 |
Cc: | beastium <beastium-list AT Desk DOT nl> |
From: | Paul Shirley <Paul AT chocolat DOT foobar DOT co DOT uk> |
Subject: | Re: paranoia & extra precision [was -fno-float-store in pgcc] |
In-Reply-To: | <19980312074656.14562@cerebro.laendle> |
MIME-Version: | 1.0 |
X-Mailer: | Turnpike (32) Version 3.05 <XvxOq6RVjuMF4FZcD8CYlzCnSO> |
Sender: | Marc Lehmann <pcg AT goof DOT com> |
Resent-From: | Marc Lehmann <pcg AT goof DOT com> |
Resent-Date: | Mon, 4 May 1998 18:11:11 +0200 |
Resent-To: | Marc Lehmann <root AT cerebro DOT laendle> |
Resent-Message-Id: | <E0yWNpf-0001rE-00 DOT pgcc-forever-1998-05-04-18-11-11-pgcc-forever AT cerebro> |
Status: | RO |
X-Status: | A |
Lines: | 19 |
In message <19980312074656 DOT 14562 AT cerebro DOT laendle>, Marc Lehmann <pcg AT goof DOT com> writes >This is why the loop stops at y = 5*10^-17. This is compliant to the ieee >rule that intermediate values have to be at the same precision as the >result. > >Now, when optimizing, gcc tries to keep values in the floating point >registers. But other than, say, the m68k fpu, the x86 fpu has no notion of >different data types, all fpu registers have the same type, long double (80 >bits extended format). 80 bits extended format => 64 bits mantissa => ~19 >digits precision. This puzzles me, in the past I have had to force various C compilers to keep intermediates on the fpu stack (by defining them as long doubles), even when optimising. Is a C compiler really allowed to make this change without explicit permission? (ie not just a general -On flag) -- Paul Shirley
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |