Edwin Woollett wrote:
> I am trying values of x a little less than 1
> by subtracting 10^(-j) from 1 and then
> trying to evaluate a function of two exponentials.
>
> In the first example (which hangs), I am using
> bfloat with a local setting of fpprec.
>
> Maxima 5.17.1 http://maxima.sourceforge.net
> Using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (aka GCL)
>
> (%i1) display2d:false$
> (%i2) h(xx) := exp(-(xx+1)/4 )/4 + exp( -1/(1-xx))/(1-xx)^2$
> (%i3) h(0.9);
> (%o3) 0.1600112570925
> (%i4) g(j,fp) := block([fpprec,x,y],
> fpprec:fp,
> y : bfloat(10^(-j)),
> x : bfloat(1-y),
> print(j,y,x),
> bfloat(h(x)) )$
> (%i5) g(7,40);
> 7 1.0b-7 9.999999b-1
> (%o5) 1.516326687189750264901169661977624778275b-1
> (%i6) g(8,40);
> 8 1.0b-8 9.9999999b-1
>
> At this point, the computer hangs and I can only restart
> (windows xp, max 5.17.1).
>
I can reproduce this problem with current CVS using gcl 2.6.8 on
Solaris. It's a bit slow on g(8,40), but it gets some kind of
unrecoverable error (fault count too high) with g(9,40) and proceeds to
dump core.
This doesn't happen with cmucl. I don't know why gcl would fail in this
way.
Ray