floating point exponents



 On 9/12/10 5:44 PM, Leo Butler wrote:
>
> On Sun, 12 Sep 2010, Robert Dodier wrote:
>
> < On 9/11/10, Mahdiyar Noorbala <noorbala at stanford.edu> wrote:
> < 
> < > (%i1) log(1b-308),numer;
> < > log: log(0) has been generated.
> < >  -- an error. To debug this try: debugmode(true);
> < 
> < numer changes bigfloats to ordinary floats.
> < 1b-308 is less than the smallest ordinary float,
> < so it's converted to zero.
> < If you want a bigfloat result, omit numer from the example above.
>  
> Robert, this was my original supposition. But in fact
> the underlying lisp matters. Clisp gives the above output,
> cmucl gives the output in my previous message.
>
This is because 1b-308 becomes 1d-308, which is less than
least-positive-normalized-double-float, but is not less than the
least-positive-double-float for cmulisp.  Hence cmulisp returns
something.  But I don't think clisp supports such normals and converts
1b-308 to 0.

Ray