bfloat



>>>>> "Henry" == Henry Baker <hbaker1 at pipeline.com> writes:

    Henry> Isn't it about time to separate Maxima's "bfloat" package & make it
    Henry> a 'standard' Common Lisp extension.  This would eliminate the need
    Henry> for a whole new set of functions and names which already exist in
    Henry> Common Lisp for hacking floating point representations.

I had the same issue. The existing functions were somewhat hard to use
and even harder to remember. Thus was born the BIGFLOAT package in
maxima. It overloads all of the Common Lisp operations to allow
working on BIGFLOAT objects as if they were CL numbers.  BIGFLOAT and
complex BIGFLOAT objects are supported.

Unfortunately, the only documentation is in the source code in
src/numeric.lisp.
 
    Henry> I, for one, would love the convenience of having bfloats in a
    Henry> non-Maxima Common Lisp.

In case you didn't know, clisp supports long-floats of arbitrary
size. You can set the number of fraction bits using (setf
(long-float-digits) bits)

The current BIGFLOAT package still requires maxima's underlying bfloat
implementation, so you'll still need maxima.

If you only need bfloats up to about 200 bits of fraction, you can
take a look at Oct (http://trac.common-lisp.net/oct), a pure lisp
implementation of quad-double floats.

Ray