floating point overflow for float(1/gamma(-536/3))



 On 8/18/10 8:42 AM, Barton Willis wrote:
> By the way: with GCL Maxima 5.22.0:
>
>  (%i190) x : float(1/gamma(-536/3));
>  (%o190) -1..#INF00e+000*10^000E+6924912
>  (%i191) is(x = x + 1);
>  (%o191) true
>  (%i192) 1/x;
>  (%o192) 0.0
>
> Clozure Common Lisp Version 1.6-dev-r14122M-trunk gives a Lisp error for float(1/gamma(-536/3)).
CCL 1.5 returns -0.0 for this, as does cmucl.

I guess the error is from converting the denominator, which won't fit in
a double float.  Maxima simplifies gamma(-536/3) to a rational times
gamma(1/3) and the denominator of the rational is too large for a
double-float.

Ray