Robert Dodier wrote:
> On 11/21/06, Raymond Toy <raymond.toy at ericsson.com> wrote:
>
>
>> FWIW, I have a partial conversion of LAPACK function dgeev that computes
>> eigenvalues and eigenvectors for general real matrices.
>>
>
> It seems like having all of LAPACK would be a good thing,
> along with some of the other existing Fortran libraries.
>
>
dgeev mostly works for the few small matrices I've tried. However, the
conversion pointed out some bugs in f2cl and one of the converted files
used equivalence statements. Fortunately, that was easy to work
around. (Alternatively, f2cl could be made to handle that particular
form of equivalence.)
The main difficulty is that you basically have to create the maxima
equivalent for each LAPACK function and there are a lot of functions.
Currently, all of BLAS is converted (but no maxima interface), and
dgeev and dependencies are converted. Only dgeev has an interface. The
main difficulty is what to call these functions and how much of the
capabilities should be exposed. This will require some design. Perhaps
the LAPACK interface should be a straightforward thin interface,
mirroring the functions themselves. Then higher-level abstractions can
be written for maxima to suit the users needs.
Your maxima "namespace"/"package" code would be useful here, too, to
isolate all the LAPACK functions.
> I know it's a substantial task to import a library, but for the moment
> we can talk about which ones would give the best benefit/cost
> ratio, and maybe someone will be inspired to complete the task.
>
f2cl already has minpack, hompack, odepack, and fishpack. (See
netlib.org for what these do.)
> Ray, by the way, thanks for importing the SLATEC code -- it's very valuable.
>
>
My pleasure. I was disappointed that maxima had some really inaccurate
numerical functions, so this worked well. And it's far easier to make
maxima interfaces to functions of 1 or 2 variables than it is to make
interfaces to functions taking matrices as args. :-)
Ray