Questions about interfacing as needed for using Maxima CAS for engineering problems (master thesis)



hello edwin,

> I just started to work on my master thesis. My topic is to create an
> extension of computer algebra systems for typical engineering problems.

OK, this sounds like a good topic. some ideas come to mind:

 -- something like a spreadsheet (Excel) but using symbolic names
    for cells instead of "C58", and capable of showing typeset (TeX)
    math formulas

 -- something that makes it easy to lay out expositions
    in the manner of text book examples.

    Data: L = 5 m, W = 3 m
    Assumptions: blah blah blah
    Solution: step 1 ... step 2 ... step 3

    aside from creating a notebook interface, getting the
    computer system to show steps might take some work.

> This will be a parallel program and my thesis professor is an expert in
> parallel systems. I would like to find detailed information on the CAS
> interface.

i am in no position to tell you what to do, but:
it appears that your topic and your advisor's field are unrelated.
i hope your advisor lets you do what is meaningful
as dictated by the topic, not his research interests.

> - Are (open source) interfaces to C, C++, PHP or Java programs already
> been developed?

not exactly.

the usual manner of talking to maxima is via a socket,
passing text strings (input expressions and output results).
this can theoretically work for any programming language
which supports sockets. see server.lisp in the source code.
(http://cvs.sf.net/viewcvs.py/maxima/maxima/src/)

it should also be possible to link directly to maxima via a
lisp foreign function interface; that might work only for C/C++,
it might be dependent on the lisp implementation, and i don't
recall if anyone has done it.

> - I could not find any API documentation about interfacing Maxima, does
> these exists?

none that i know of.

> - If no API documentation exists, can I find some working
> proof-of-concept-demo' source code I can use to learn from that?

see: http://maxima.sourceforge.net/relatedprojects.shtml

hope this helps,
robert dodier