Re: Machine epsilon: conclusion



Harald van D?k said:

Richard Heathfield wrote:
Richard Tobin said:

In article <ltSdnT3DNLGY9xvbnZ2dnUVZ8tHinZ2d@xxxxxx>,
Richard Heathfield <rjh@xxxxxxxxxxxxxxx> wrote:

#define QFLT_EPSILON 1.09003771904865842969737513593110651 ...
#E-106

You have the same bug as last time. No standard-conforming
implementation may define QFLT_EPSILON in the standard header
<float.h>, as I pointed out to you earlier this week.

Jacon already described how to suppress this definition if required.

Either it's a standard header (as he claims), or it isn't. If it's a
standard header, it cannot contain QFLT_EPSILON. If it contains
QFLT_EPSILON, it can't be a standard header.

The C99 rationale section 7.1.2 gives an example of how it can, and
there is nothing whatsoever in the standard that contradicts it.

I think you're confusing the physical implementation of the header (as
some kind of file) with the concept of "standard header", the
implementation of which is neither here nor there, as the Standard
makes very clear. A standard header *MUST NOT* contain a definition of
QFLT_EPSILON. How the implementation deals with this is up to it.

I presume (not having any way to check it right now) that Mr Navia's
claim (that setting a switch in his compiler renders <float.h> a
standard header) is a correct claim. If so, presumably it does so by
removing the definition of QFLT_EPSILON from <float.h>, possibly by
some kind of #ifdef construct. Were he not to do this, <float.h> would
not be a standard header. Therefore, his implementation agrees with me
and with the Standard that QFLT_EPSILON must not be defined in a
standard header. So he is arguing against his own implementation.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
.



Relevant Pages

  • Re: Machine epsilon: conclusion
    ... Richard Tobin said: ... It's a standard header when -ansic is specified, and a non-standard ... Richard Heathfield ...
    (comp.lang.c)
  • Re: Machine epsilon: conclusion
    ... Richard Tobin said: ... Jacon already described how to suppress this definition if required. ... Either it's a standard header, ... Richard Heathfield ...
    (comp.lang.c)
  • Re: Machine epsilon: conclusion
    ... Richard Heathfield wrote: ... implementation may define QFLT_EPSILON in the standard header ... Jacon already described how to suppress this definition if required. ... in some alphabets" - X3.4, ...
    (comp.lang.c)
  • Re: Machine epsilon: conclusion
    ... Richard Heathfield wrote: ... // qfloat epsilon truncated so that it fits in this page... ... implementation may define QFLT_EPSILON in the standard header, as I pointed out to you earlier this week. ...
    (comp.lang.c)
  • Re: Machine epsilon: conclusion
    ... Richard Heathfield wrote: ... Jacon already described how to suppress this definition if required. ... Either it's a standard header, ... In any events your argument is specious: Pretty much every compiler ...
    (comp.lang.c)