Thanks again for your thoughtful answers. I'll check into implementing
your suggestions.
On the GPL question, actually, I meant open source (which I take as
equivalent to GPL or Public Domain).
1. I have seen commercial packages change ownership (and, then some
strange things happen: they stop being developed, the interface
becomes quirky, etc.)
2. For some things the license is ongoing. If grants are lost, or,
there is a local lack of financial support, then one loses the programs
completely.
3. If something is not working, or, if something is working and I want
to add to it without developing the whole thing from scratch, in
open source (which can be mofified) there is not problem.
Otherwise, either it is impossible, or I have to come up with some
acceptable argument to some unknown person who has more or less
arbitrary decision power over what I can do. Of course, there is
some middle ground, but in software I use, I prefer not to have the
hassles.
For instance, we used to use SUNS as our main servers and for most of
our software tools. The OS was SUN OS 2.3, 2.4, etc. or then Solaris.
When bugs appeared, of course, unless they were of wide interest to
the community, they either were not fixed or took long times to fix.
I at least found that it was better, even using their hardware, to
install gnu tools. Also, the linux people fixed the bugs much faster
for most of the things I was interested in, and new features appeared
all the time.
In general, I try to avoid the "religious wars," so I apologize for
sending this reply to the whole list.
-sen
On Thu, 3 Aug 2006, Richard Fateman wrote:
>
>
>> -----Original Message-----
>> From: maxima-admin at math.utexas.edu
>> [mailto:maxima-admin at math.utexas.edu] On Behalf Of sen1 at math.msu.edu
>> Sent: Thursday, August 03, 2006 8:31 AM
>> To: maxima at math.utexas.edu
>> Subject: question about numerical routines
>>
>> Hello,
>> As I understand it, using the lisp interface to maxima, one can call
>> up routines from other languages (e.g. C, C++, Fortran). So, why is
>> it important to develop advanced numerical routines in
>> maxima itself?
>
> The main motivation is to make the code work in every version of maxima,
> regardless of whether it is running on intel, powerpc, windows, mac, linux,
> etc without the many issues of interfacing with the libraries, especially
> with multiple lisp systems. It may also be motivated by a desire to allow
> programs to run with exact rational arithmetic, bigfloats, etc. But I think
> that is secondary.
>>
>> In particular, doesn't it make sense to simply improve the
>> I/O methods to call tested routines from C or fortran (where
>> they have been tested and used time and time again)?
>>
> This is the job of the lisp implementers, and for some implementations it
> has been developed quite well. So if you pick a particular lisp it is not
> hard.
>
>> Incidentally, from my point of view this last activity needs
>> much work.
>>
>> I am new to maxima and lisp. I have experience with C and
>> fortran, although it has been awhile since I actually did coding.
>>
>> It seems to me that, if I want to use, say a QR algorithm, or
>> an existing high precision toolbox, then I have to learn
>> enough of lisp to be able to call those routines, and the way
>> I call them is probably dependent on which other librairies I
>> am using.
>>
>> Wouldn't make sense to have maxima commands to do the following.
>>
>> a. With the maxima distribution, there are particular GPL
>> fortran, C, C++ libraries to install (just as there currently is GCL).
>
> Why would you restrict yourself to GPL libraries?
>
>>
>> b. With the appropriate maxima command, one transparently
>> calls those routines (as functions or procedures), and maxima
>> handles all the I/O required.
>
> I think you mean the calling conventions for passing parameters, rather than
> I/O.
>>
>> BTW, if this is, more or less, already available, then I
>> don't know how to do it. I would love to have some guidance
>> beyond the to_lisp command.
>
> The to_lisp command is not the way to do what you want. Look at foreign
> function interfaces in the lisp you are using. There is also UFFI, an
> attempt to be "universal", which might have some promise.
> What you want is quite doable (I've been using C and Fortran code from Lisp
> since about 1979), and there are also ways of using Java... but it
> generally requires attention to specific details. While a package to do
> "everything automatically" would be nice, it would probably have to deal
> with so many eventualities as to be "not everything" and/or "not quite
> automatically.".
> (And one way is to translate fortran to lisp :) )
>
>
>>
>> Thanks for any ideas.
>>
>> -Cheers,
>> -sen
>>
>>
>> --
>>
>> --------------------------------------------------------------
>> -------------
>> | Sheldon E. Newhouse | e-mail:
>> sen1 at math.msu.edu |
>> | Mathematics Department |
>> |
>> | Michigan State University | telephone: 517-355-9684
>> |
>> | E. Lansing, MI 48824-1027 USA | FAX: 517-432-1562
>> |
>>
>> --------------------------------------------------------------
>> -------------
>>
>> _______________________________________________
>> Maxima mailing list
>> Maxima at math.utexas.edu
>> http://www.math.utexas.edu/mailman/listinfo/maxima
>>
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>
--
---------------------------------------------------------------------------
| Sheldon E. Newhouse | e-mail: sen1 at math.msu.edu |
| Mathematics Department | |
| Michigan State University | telephone: 517-355-9684 |
| E. Lansing, MI 48824-1027 USA | FAX: 517-432-1562 |
---------------------------------------------------------------------------