Greetings!

Richard Fateman <fate...@gmail.com> writes:

> Several of us here have worked on arbitrary-precision floats in Lisp
> (generally used for longer than double, though I suppose shorter could
> also be specified...), and I think the real win would be to make use
> of the mpfr library (written in C with various assembly-language hacks
> for different CPUs).

mpfr would be a straightforward extension to GCL, as we already use the
gmp integer library, integrate it with our gbc/memory management, and
export the functions at the lisp user level:


>(gmp:mpz_mul most-positive-fixnum most-positive-fixnum)

85070591730234615847396907784232501249

The only sensible way to interface to a library like this is to keep all
the function names and calling syntax the same.  GMP is written with
'side-effects', i.e. destructive modification of the supplied arguments
one or more of which are considered outputs.  This is so the savvy user
can avoid unnecessary allocations, which are effectively all that matter
for performance.  Lisp is so functionally oriented, however, that it
seemed better to me to take only input variables as arguments.  The
natural alternative to the call above would take three arguments,
overwrite the first, and return no values.  Your thoughts?

Take care,
-- 
Camm Maguire                                        c...@maguirefamily.org
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah

Reply via email to