This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
RE: Strange behavior
- From: "Robert Collins" <robert dot collins at itdomain dot com dot au>
- To: "Chuck Allison" <cda at freshsources dot com>,"Richard R. Malloy" <rrmalloy at attbi dot com>,"Randall R Schulz" <rrschulz at cris dot com>
- Cc: "Ross Smith" <rosss at pharos dot co dot nz>,<cygwin at cygwin dot com>
- Date: Mon, 4 Mar 2002 16:26:23 +1100
- Subject: RE: Strange behavior
Floating point comparisons should _always_ be done via a confidence
interval, not bitwise equality. As for determinism, I don't know what
the logic circuits look like, so can't and won't comment :}.
Rob
> -----Original Message-----
> From: Chuck Allison [mailto:cda@freshsources.com]
> Sent: Monday, March 04, 2002 4:08 PM
> To: Richard R. Malloy; Randall R Schulz
> Cc: Ross Smith; cygwin@cygwin.com
> Subject: Re: Strange behavior
>
>
> That's the point. They're always redued, so in both cases,
> the expression 2.0/3.0 is evaluated. How can that be
> non-deterministic?
>
> ----- Original Message -----
> From: "Richard R. Malloy" <rrmalloy@attbi.com>
> To: "Randall R Schulz" <rrschulz@cris.com>
> Cc: "Ross Smith" <rosss@pharos.co.nz>; "'Chuck Allison'"
> <cda@freshsources.com>; <cygwin@cygwin.com>
> Sent: Sunday, March 03, 2002 9:47 PM
> Subject: Re: Strange behavior
>
>
> > OK. I'm no IA32 expert can someone explain the following
> results. (Do
> > the floating point registers use guard bits, randomly initialized
> > perhaps?)
> >
> > bool operator==(const Rational& r1, const Rational& r2)
> > {
> > double a=r1.toDouble(), b=r2.toDouble();
> > cout << ?== a " << a << " " << ?== b " << b << endl;
> > return a == b;
> > // return r1.toDouble() == r2.toDouble();
> > /* return ( r1.numerator == r2.numerator && r1.denominator ==
> > r2.denominator ); */ }
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/