As a proof of concept, there is now some code attached to:

http://trac.sagemath.org/sage_trac/ticket/7377

It is just a separate python module, not explicitly placed in the sage
tree. It depends on two tickets that are ready for review. Kcrisman
has already looked at them, but they could use some attention from
someone familiar with lisp.

http://trac.sagemath.org/sage_trac/ticket/6781
http://trac.sagemath.org/sage_trac/ticket/7287

It demonstrates how easy ECL's library interface can be used to
robustly interface with Maxima. As an example:

sage: from sagemax import *
;;; Loading #P"/usr/local/sage/4.1.2/local/lib/ecl/maxima.fas"
sage: from sage.calculus.calculus import _integrate
sage: I=_integrate(cos(x),x)
sage: sage_to_max(I)
<ECL: (($INTEGRATE) ((%COS) SAGE-SYM-1) SAGE-SYM-1)>
sage: meval(sage_to_max(I))
<ECL: ((%SIN SIMP) SAGE-SYM-1)>
sage: max_to_sage(meval(sage_to_max(I)))
sin(x)

Note the call to meval. That is really just a pointer to the LISP
function meval that corresponds to Maxima's expression evaluator.
For the ECL developers, the fact that it is so easy to develop such a
tight interface between python and ECL could really be used as a major
advertising point.
For sage, I think this can lead to an interface to maxima's
functionality that will be a lot easier to keep robust than any
pexpect interface.

I don't think I will be able to do much more development on this code,
apart from some ideas I have to translate Sage's differential
operators D[i](f) into Maxima's diff constructs using Maxima's "at".
So it would be great if someone with more stake in the calculus/
symbolic code could adopt this project.


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to