Related articles |
---|
[3 earlier articles] |
Re: Division in C++ tmk@netvision.net.il (Michael Tiomkin) (2005-07-12) |
Re: Division in C++ henry@spsystems.net (2005-07-12) |
Re: Division in C++ fw@deneb.enyo.de (Florian Weimer) (2005-07-12) |
Re: Division in C++ gdr@integrable-solutions.net (Gabriel Dos Reis) (2005-07-12) |
Re: Division in C++ qrczak@knm.org.pl (Marcin 'Qrczak' Kowalczyk) (2005-07-12) |
Re: Division in C++ garms@gmx.de (Onno Garms) (2005-07-17) |
Re: Division in C++ poenitz@htwm.de (Andre Poenitz) (2005-08-10) |
From: | Andre Poenitz <poenitz@htwm.de> |
Newsgroups: | comp.compilers,gnu.g++.help |
Followup-To: | gnu.g++.help |
Date: | 10 Aug 2005 11:53:07 -0400 |
Organization: | Chemnitz University of Technology |
References: | 05-07-046 |
Keywords: | arithmetic |
Posted-Date: | 10 Aug 2005 11:53:07 EDT |
Onno Garms <garms@gmx.de> wrote:
> Regardless of any rounding errors, a/b should always return
> the same value, shouldn't it?
Not necessarily. Especially on Intel it makes a difference whether
everything happens within the FPU (80bit IIRC) or whether some result or
intermediate result is stored outside (64bit).
Never, ever, trust floating point arithmetic.
Andre'
PS: Check out the -ffloat-store compiler option.
[Floating point arithmetic is perfectly well defined, but the rules are
different from fixed point, and as you note, intermediate precision
matters a lot. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.