On Wed, 2002-02-06 at 13:32, Andreas.Eder@t-online.de wrote:
> Raymond Toy writes:
> > I only checked a few things, but some of those GSL routines are
> > conversions of Fortran routines.
>
> My impression is, that still most of the really good an tested
> mathematical software is in Fortran - and why should we use via ffi a
> piece of software that was translated from Fortran to C? Why not do it
> in a more direct way and use f2cl?
A ha. I believe there is a misconception here. With a few exceptions,
the GSL code is equal to or better than the available Fortran libraries.
(One of the big exceptions is linear algebra. I am not suggesting we
adopt numerical linear algebra from GSL.) Although many of the routines
in GSL owe some history to various Fortran codes, few of them are direct
translations. One example I was given is Chebyshev polynomials. Many of
the Fortran special function routines use Chebyshev polynomials for
special functions. The analogous GSL code uses the same coefficients,
but calls its internal Chebyshev routines.
For the record, I am not concerned about the speed of f2cl code. What I
have seen so far is fast enough for our purposes. My arguments for GSL
have nothing to do with speed.
There is another point that has not been discussed yet, but is of
crucial importance. Many of the Fortran routines at netlib.org are
distributed under licenses that preclude us from using them in Maxima.
The TOMS code is one such example. It's sad, but true. The licensing
issue is a major stumbling block. One has to look pretty hard at the
documentation at netlib.org to find the problem, but it's there.
Finally, let me say that I will not be convinced that linking GSL with
Maxima is the best answer until it has been made to work on multiple
Lisp implementations on multiple platforms. The proof will be in the
pudding. If some people want to work on f2cl functions while others work
on FFI, I will not try to stop them. I will, however, need to see the
licensing agreement on any converted Fortran code we are going to use.
--Jim