public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: dewar@gnat.com
To: aoliva@redhat.com, gdr@codesourcery.com
Cc: amylaar@redhat.com, dewar@gnat.com, gcc@gcc.gnu.org,
	moshier@moshier.ne.mediaone.net, torvalds@transmeta.com,
	tprince@computer.org
Subject: Re: What is acceptable for -ffast-math? (Was: associative law in combine)
Date: Mon, 30 Jul 2001 20:54:00 -0000	[thread overview]
Message-ID: <20010731035353.271D3F2B65@nile.gnat.com> (raw)

<<The C/C++ Standard, for example, say that a/b/c is evaluated as
(a/b)/c. Someone proposed that it should be evaluated as a/(b*c)
-- which of course is incorrect -- when optimizing.
>>

Well now, let's be a little careful here ....

When the C standard says a/b/c is evaluated as (a/b)/c, it means that the
result is *as if* it were computed that way, and a compiler is of course
free to compute a/(b*c) if the result is still correct.

Now for the integer case we know exactly what "still correct" means, it
means that if we can prove that a/(b*c) does not overflow, and always
gives the same result as (a/b)/c, then of course the compiler can compute
it the first way.

What we are discussing is what "still correct" means for floating-point.
Most certainly the C and C++ standards do not give an exact prescription
for floating-point values. You actually have to say quite a bit to even
get near to the point where you can really answer the question accurately.

Let's look at the exact rules in Ada for example. Of course Ada requires
that a/b/c be computed as if it were (a/b)/c. But Ada also defines a
concept of model numbers and model intervals, and any evaluation scheme
that provides a guarantee that the result is in the appropriate model
interval is permissible. Let's give an example.

If you see  a / 2.0 / 2.0

it is absolutely definition OK, to compute this particular expression
as a / 4.0 in any language no matter WHAT the standard says, since the
result is exactly the same. But for other divisors this is not necessarily
true.

So the "which of course is incorrect" is a bit too glib here.

             reply	other threads:[~2001-07-30 20:54 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-30 20:54 dewar [this message]
2001-07-30 21:11 ` Gabriel Dos Reis
2001-07-31 18:12   ` What is acceptable for -ffast-math? (Was: associative law incombine) Linus Torvalds
2001-07-31 20:55     ` What is acceptable for -ffast-math? (Was: associative law in combine) Gabriel Dos Reis
2001-07-30 21:39 ` Joern Rennecke
  -- strict thread matches above, loose matches on Subject: below --
2001-08-03 14:48 dewar
2001-08-02  3:37 Vincent Penquerc'h
2001-08-01 19:04 Carlo Wood
2001-08-01 12:06 Phil Edwards
2001-08-01 10:39 dewar
2001-08-01 10:38 dewar
2001-08-01 10:13 dewar
2001-08-01 10:05 dewar
2001-08-01 10:04 dewar
2001-08-01 10:28 ` Gabriel Dos_Reis
2001-08-01  9:59 dewar
2001-08-01  9:58 What is acceptable for -ffast-math? (Was: associative law incombine) Gabriel Dos_Reis
2001-08-01 10:08 ` Wolfgang Bangerth
2001-08-01 11:12   ` Gabriel Dos_Reis
2001-08-01 11:27     ` What is acceptable for -ffast-math? (Was: associative law in combine) Theodore Papadopoulo
2001-08-01 11:47       ` Gabriel Dos_Reis
2001-08-03  7:32         ` Nick Ing-Simmons
2001-08-03  6:01     ` Per Abrahamsen
2001-08-01  6:52 dewar
2001-08-01  6:04 dewar
2001-08-01  6:48 ` Vincent Penquerc'h
2001-08-03  0:46 ` Eric W. Biederman
2001-08-01  3:02 Vincent Penquerc'h
2001-07-31 19:10 dewar
2001-07-31 18:23 dewar
2001-07-31 18:20 dewar
2001-07-31 18:50 ` Joern Rennecke
2001-07-31 21:27   ` Tim Prince
2001-07-31 18:15 dewar
2001-07-31 17:37 dewar
2001-07-31 16:38 dewar
2001-07-31  9:22 mike stump
2001-07-31  8:37 dewar
2001-07-31  8:36 dewar
2001-07-31  8:36 mike stump
2001-07-31  8:35 dewar
2001-07-31  8:19 mike stump
2001-07-31  7:59 mike stump
2001-07-31  7:26 dewar
2001-07-31 15:57 ` Toon Moene
2001-07-31 21:55   ` Tim Prince
2001-08-03  6:12 ` Per Abrahamsen
2001-07-30 21:13 dewar
2001-07-30 21:34 ` Gabriel Dos Reis
2001-07-30 21:43   ` Joern Rennecke
2001-07-30 21:53     ` Gabriel Dos Reis
2001-08-03  7:12       ` Nick Ing-Simmons
2001-08-01  8:55   ` Theodore Papadopoulo
2001-08-01  9:15     ` Gabriel Dos Reis
2001-08-01 11:21       ` Theodore Papadopoulo
2001-08-01 11:44         ` Gabriel Dos Reis
2001-08-01  9:24     ` Tim Hollebeek
2001-08-01  9:54       ` What is acceptable for -ffast-math? (Was: associative law incombine) Linus Torvalds
2001-08-01 10:26         ` Gabriel Dos_Reis
2001-08-01 11:13           ` What is acceptable for -ffast-math? (Was: associative law in combine) Alexandre Oliva
2001-08-01 11:36             ` Gabriel Dos Reis
2001-08-01 12:07               ` Alexandre Oliva
2001-08-01 13:21                 ` Gabriel Dos_Reis
2001-08-01 14:20                   ` Toon Moene
2001-07-30 19:46 dewar
2001-07-30 20:00 ` Gabriel Dos Reis
2001-07-30 20:20   ` Alexandre Oliva
2001-07-30 20:25     ` Gabriel Dos Reis
2001-07-30 18:39 dewar
2001-07-30 18:38 dewar
2001-07-30 18:08 dewar
2001-07-30 18:02 dewar
2001-07-30 18:00 dewar
2001-07-30 18:25 ` Joe Buck
2001-07-30 16:11 dewar
2001-07-30 16:29 ` Alexandre Oliva
2001-07-31  8:13   ` Kevin Handy
2001-07-30 15:29 dewar
2001-07-30 15:39 ` Toon Moene
2001-07-30 13:10 dewar
2001-07-30 12:26 dewar
2001-07-30 11:52 dewar
2001-07-30 11:37 What is acceptable for -ffast-math? (Was: associative law incombine) Linus Torvalds
2001-07-30 11:53 ` What is acceptable for -ffast-math? (Was: associative law in combine) Gabriel Dos Reis
2001-07-30 18:40   ` Olivier Galibert
2001-07-30 19:06     ` Gabriel Dos Reis
2001-07-31  1:35   ` Linus Torvalds
2001-07-31  2:04     ` Gabriel Dos Reis
2001-07-31  2:35       ` Olivier Galibert
2001-07-31  2:58         ` Gabriel Dos Reis
2001-07-31 18:10       ` Linus Torvalds
2001-07-30  8:59 mike stump
2001-07-30  6:14 dewar
2001-07-30  8:30 ` Kevin Handy
2001-07-30  6:01 dewar
2001-07-30  6:53 ` Tim Hollebeek
2001-07-30  6:00 dewar
2001-07-30 13:08 ` Toon Moene
2001-07-30  5:57 dewar
2001-07-29 21:33 What is acceptable for -ffast-math? (Was: associative law incombine) Linus Torvalds
2001-07-30 14:43 ` What is acceptable for -ffast-math? (Was: associative law in combine) Alexandre Oliva
2001-07-30 15:45   ` Neil Booth
2001-07-30 16:03     ` Alexandre Oliva
2001-07-30 16:11       ` Neil Booth
2001-07-30 16:28         ` Alexandre Oliva
2001-07-30 19:08   ` Joern Rennecke
2001-07-30 19:22     ` Alexandre Oliva
2001-07-30 19:29       ` Gabriel Dos Reis
2001-07-30 19:34         ` Alexandre Oliva
2001-07-30 19:54           ` Gabriel Dos Reis
2001-07-30 19:27     ` Gabriel Dos Reis
2001-07-29 14:22 dewar
2001-07-29 12:52 * Re: What is acceptable for -ffast-math? (Was: associative lawin combine) Linus Torvalds
2001-07-29 14:03 ` What is acceptable for -ffast-math? (Was: associative law incombine) Stephen L Moshier
2001-07-29 21:17   ` What is acceptable for -ffast-math? (Was: associative law in combine) Fergus Henderson
2001-07-30  0:23     ` Gabriel Dos Reis
2001-07-17 15:59 associative law in combine Joern Rennecke
2001-07-18  1:01 ` Toon Moene
2001-07-18  1:47   ` What is acceptable for -ffast-math? (Was: associative law in combine) Jan Hubicka
2001-07-28 23:04     ` Tim Prince
2001-07-29  6:33       ` Jan Hubicka
2001-07-29 10:18         ` Tim Prince
2001-07-29 10:26           ` Jan Hubicka
2001-07-29 12:11             ` Tim Prince
2001-07-29 12:17               ` Jan Hubicka
2001-07-29 10:50       ` Linus Torvalds

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010731035353.271D3F2B65@nile.gnat.com \
    --to=dewar@gnat.com \
    --cc=amylaar@redhat.com \
    --cc=aoliva@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=gdr@codesourcery.com \
    --cc=moshier@moshier.ne.mediaone.net \
    --cc=torvalds@transmeta.com \
    --cc=tprince@computer.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).