Strange bigfloat results



Raymond Toy wrote:

> >>>>> "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
>

I commited this fix to Maxima CVS.

--

[ Vadim V. Zhytnikov  <vvzhy@mail.ru>  <vvzhy@td.lpi.ac.ru> ]