Maxima development team



>>>>> "Richard" == Richard Fateman <fateman at eecs.berkeley.edu> writes:

    Richard> On 5/29/2013 11:23 AM, Robert Dodier wrote:
    >> On 2013-05-29, Jose Capco <jcapco at yahoo.com> wrote:
    >> 
    >>> Thank you for the tips! I guess I will have to walk your path as well
    >>> (i.e. study Lisp and see if I can fix some bugs if there is any I can
    >>> fix). Is most of the computer algebra algorithm written in Lisp or do
    >>> they do some computer algebra in C or C++ level as well? I would
    >>> basically want to work on the algebra (algorithms with real
    >>> polynomials and Gr?bner basis) and geometry algorithms (algorithms
    >>> with elliptic curves and other algebraic curves).
    >> All of the algebraic stuff is written in Lisp. C/C++ libraries can be
    >> linked in via a foreign function interface, but there are technical and
    >> nontechnical problems with that.

    Richard> I think this is worth explaining a little.  At least my
    Richard> understanding of it is that the interface to foreign
    Richard> functions, not being part of the Common Lisp standard,
    Richard> differs from one implementation to the other. Since one
    Richard> goal is to have Maxima be relatively neutral as to choice
    Richard> of underlying Lisp, there has not been a concerted effort
    Richard> to use foreign functions.  There is a UFFI (universal)
    Richard> FFI attempting to bridge the gaps among implementations,

Just a few clarifications.  I believe UFFI has been pretty much
superceded by CFFI.

    Richard> but one historically important Lisp supporting Maxima
    Richard> does not allow FFI (GCL).

I'm pretty sure GCL has an FFI, but it's different from everyone
else's and is not supported by CFFI.

Ray