"M. Warner Losh" wrote:
> : I await an explanation of how you can fit 2*DBL_MAX into a double,
> : which has a range of DBL_MIN..DBL_MAX.
> 
> Look at the code.
> 
>      long double a = DBL_MAX;
>      long double b = DBL_MAX * 2;
> 
> The original posting said that b would be +Inf at this point, which is
> not correct.  I think that Bruce was confused there.  The more correct
> example to look at was the one that rittle@ posted which was 1 +
> LDBL_EPSILON.

I guess I must not be understanding.  What will b be, at this point,
then?  How can it have a value larger than DBL_MAX that's not +Inf?

If it's possible to represent a value larger than DBL_MAX in a double,
then the value of DBL_MAX is wrong, right?  Maximum means maximum,
doesn't it?


> : I think that a number that's a 64 bit mantissa reaised to an exponent
> : N takes a larger N if you have only 53 bits of mantissa, if you want
> : to represent the same value.
> 
> Nope.  The only difference between 53 bits and 64 bits of precision is
> just that: precision.  The number of bits for expoentent is
> independent of this.

.125 ^ 2 = 0.015625
.25 ^ 3 = 0.015625

So if I go from 3 digits of precision to 2 digits of precision for
my mantissa, in order to represent the same number, I need a larger
exponent.


> This is true.  Granting, for the moment, that fpgetprec() == FP_PE
> isn't a standards conforming expression.
> 
> But I think that the rest of this is going off into the weeds.  I'm
> just trying to get things working in a sane way for long doubles.  It
> looks like gcc 3.2 really wants the fpu to start off in FP_PE.

There has to be an agreement between the host OS and the compiler;
that's what makes C99 more complicated than it needed to be.


> Before I go forward on this further, I've got a lot of testing to do
> with kernels and such to find out what really works and what does (and
> doesn't) break paranoia.c.

That's one test.  Another is:

        http://www.glenmccl.com/c9suite.htm

Unfortunately, it's $8495 for everything.  8-(.  There's also the
stuff I wrote, which doesn't test range/domain overflows, etc., but
at least complains when things are not defined or prototypes are
out of scope (i.e. it mostly just complains about header file
contents).

-- Terry



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to