From: Prabhakar on
Hi all,

I have been trying to find a symbolic toolbox that can be compiled since a long time.
In the process, I found a lisp code (MAXIMA) for Computer Algebra System which
has many features. But I am not sure if I can connect to LISP code from MATLAB and compile that. Can anyone let me know if that is possible ? If yes, could you please give me the reference of where I can find the material about it.

Thank you
Prabhakar
From: Walter Roberson on
Prabhakar wrote:

> I have been trying to find a symbolic toolbox that can be compiled since
> a long time.

Mathematica has a compilable subset, I read. Look for information about
"MathCode".

> In the process, I found a lisp code (MAXIMA) for Computer Algebra System
> which
> has many features. But I am not sure if I can connect to LISP code from
> MATLAB and compile that. Can anyone let me know if that is possible ?

Yes, in theory. I have looked around a bit and I find several references
to methods of compiling MAXIMA . The program Euler, which is apparently
Matlab-like, is compilable and communicates with MAXIMA through pipes.

However, I find:
http://maxima-project.org/wiki/index.php?title=Noninteractive_mode
"Maxima generally assumes there is someone at the console to answer
questions. The functions asksign and askinteger attempt to answer a
question about their arguments by first consulting the assume database,
and if that fails, then ask the user interactively. It is not possible
to completely disable this interactive behavior."

This behaviour would be tricky to code through a pipe, but not
impossible. However, do you really want to have your executable pop up
random questions about how to proceed? Will your users reasonably know
how to answer those kinds of questions?

> If
> yes, could you please give me the reference of where I can find the
> material about it.

Pretty much the same methods as were mentioned before -- popen(), DCOM
object, or ActiveX. I do not know very much about DCOM or ActiveX; I do
know about popen() but I am not _certain_ that popen() is available for
Windows; the documentation implies it should be available for XP SP2 or
later, but I do not have a PC to experiment with. Windows does support
_popen() but I do not know much about that.


My server does not appear to be reachable at the moment, so I cannot
check the license terms as per your "Question about Symbolic Toolbox"
thread.
From: Prabhakar on

Great! Thank you very much for the immediate response.

I will go through the "MathCode" to learn about the compilable subset.

Regarding the interactive behavior, I think I don't want my executable to pop up random questions to users. I will also look more into the wiki of Maxima for this. Where can I get to know more about coding through the pipes? I haven't done that before.

Regarding the platform, while I am trying out the possibilities in Windows, eventually
it will be compiled on unix platform (nanoHUB), and I hope there is more support in Unix than in windows.

Thanks
Prabhakar



Walter Roberson wrote :
> Prabhakar wrote:
>
> > I have been trying to find a symbolic toolbox that can be compiled since
> > a long time.
>
> Mathematica has a compilable subset, I read. Look for information about
> "MathCode".
>
> > In the process, I found a lisp code (MAXIMA) for Computer Algebra System
> > which
> > has many features. But I am not sure if I can connect to LISP code from
> > MATLAB and compile that. Can anyone let me know if that is possible ?
>
> Yes, in theory. I have looked around a bit and I find several references
> to methods of compiling MAXIMA . The program Euler, which is apparently
> Matlab-like, is compilable and communicates with MAXIMA through pipes.
>
> However, I find:
> http://maxima-project.org/wiki/index.php?title=Noninteractive_mode
> "Maxima generally assumes there is someone at the console to answer
> questions. The functions asksign and askinteger attempt to answer a
> question about their arguments by first consulting the assume database,
> and if that fails, then ask the user interactively. It is not possible
> to completely disable this interactive behavior."
>
> This behaviour would be tricky to code through a pipe, but not
> impossible. However, do you really want to have your executable pop up
> random questions about how to proceed? Will your users reasonably know
> how to answer those kinds of questions?
>
> > If
> > yes, could you please give me the reference of where I can find the
> > material about it.
>
> Pretty much the same methods as were mentioned before -- popen(), DCOM
> object, or ActiveX. I do not know very much about DCOM or ActiveX; I do
> know about popen() but I am not _certain_ that popen() is available for
> Windows; the documentation implies it should be available for XP SP2 or
> later, but I do not have a PC to experiment with. Windows does support
> _popen() but I do not know much about that.
>
>
> My server does not appear to be reachable at the moment, so I cannot
> check the license terms as per your "Question about Symbolic Toolbox"
> thread.
From: Walter Roberson on
Prabhakar wrote:
> Where can I get to know more about coding through
> the pipes? I haven't done that before.

A bit of a tutorial
http://beej.us/guide/bgipc/output/html/multipage/pipes.html

More reference-y but not bad:
http://uw714doc.sco.com/en/SDK_sysprog/_Basic_Interprocess_Communicatio.html

And of course you could read the Euler source for hints on communicating
with MAXIMA specifically.

http://eumat.sourceforge.net/