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