Barton Willis wrote:
> Correct me if I'm (once again) mistaken, but I think GCL has some problems
> with floating point
> overflow. With Clozure CL 1.3
>
> (%i3) safe_float(x) := block([y : errcatch(float(x))], if y = [] then
> bfloat(x) else first(y))$
> (%i4) safe_float(4.5b731);
>
> float: floating point overflow converting 4.5b731
> (%o4) 4.5b731
>
> With GCL 2.6.8:
>
> (%i18) safe_float(4.5b731);
> (%o18) 1.3924557213221603e115
>
>
Are you running a recent CVS version? FP2FLO is supposed to check for
overflow to handle the case that GCL doesn't signal an overflow on
scale-float.
safe_float returns 4.5b731 for me with gcl and current CVS code.
Ray