Strange bigfloat results



>>>>> "Richard" == Richard Fateman <fateman@cs.berkeley.edu> writes:

    Richard> clearly a bug.  I get it in my precompiled windows binary too.
    Richard> I also get it in the Allegro CL version.  So it is in
    Richard> the Maxima source, not some glitch in GCL.

Same problem with Clisp.

    Richard> It must be adding bigfloats wrong!

After some poking around, I think the problem is in biglsh in
src/float.lisp, which I don't really understand what it's trying to
do.

However, if I replace fpshift with the following function which
doesn't call biglsh, the buggy results are gone.  This seems to be the
right thing to do since fpshift appears to be basically Lisp ash (for
a binary radix).

(DEFUN FPSHIFT (L N) 
       (COND ((NULL *DECFP)
	      (ash L N))
	     ((GREATERP N 0.) (TIMES L (EXPT 10. N)))
	     ((LESSP N 0.) (QUOTIENT L (EXPT 10. (MINUS N))))
	     (T L)))

I think biglsh is only called by fpshift, so we could probably delete
biglsh completely.

Ray