[net.math.symbolic] Speeding up Macsyma

nlevin@brl-sem.ARPA (Norm Levin ) (08/09/85)

References:


I'm a new user of macsyma and I've run across a few problems the NET
can help out with.  My version of macsyma (UNIX MACSYMA RELEASE 304 for a vax)
won't translate macsyma code to lisp.  Is there anyway to get this 
working?  For that matter, is there any other way to get a macsyma
program running faster?  In addition, the manuals description
mentions a share file called fortra which is supposed to translate
macsyma code to fortran.  If this exists, how can I get it?

  Norman Levin
  nlevin@brl.arpa

toms@bcsaic.UUCP (tom skillman) (08/13/85)

In article <365@brl-sem.ARPA> nlevin@brl-semvin (SECAD/CSMB) <nlevin>.ARPA (Norm Levin (SECAD/CSMB) <nlevin>) writes:
>
>I'm a new user of macsyma and I've run across a few problems the NET
>can help out with....
>For that matter, is there any other way to get a macsyma
>program running faster?  In addition, the manuals description
>mentions a share file called fortra which is supposed to translate
>macsyma code to fortran.  If this exists, how can I get it?
>

Norm,

I don't know how to speed up macsyma but SMP from Inference Corp. in LA
(213-417-7997) is supposed to be faster than macsyma.  It is written in
C and includes a FORTRAN code generator.

Tom Skillman
Boeing AI Center
Seattle
(206) 763-6024

Jeffrey P. Golden <JPG@MIT-MC.ARPA> (08/26/85)

JPG@MIT-MC.ARPA 08/21/85 16:34:25 Re: symalg: speeding up MACSYMA
   From: bcsaic!toms (tom skillman)
   Newsgroups: net.math.symbolic
   Subject: Re: Speeding up macsyma
   Message-Id: <210@bcsaic.UUCP>
   Date: 13 Aug 85 16:07:32 GMT
   References: <365@brl-sem.ARPA>
   Reply-To: toms@bcsaic.UUCP (tom skillman)
   Organization: Boeing Computer Services AI Center, Seattle
   Keywords: macsyma SMP REDUCE
   Apparently-To: symalg

   I don't know how to speed up macsyma but SMP from Inference Corp. in LA
   (213-417-7997) is supposed to be faster than macsyma.  It is written in
   C and includes a FORTRAN code generator.

MACSYMA also includes a FORTRAN code generator. 

What does "SMP ... is supposed to be faster than macsyma" mean?
Who supposes this?  Faster at what?  How comprehensive are their tests?

This issue has been discussed on the 'symalg' list in the past.
The only source for this statement that I am aware of is a sheet put out 
by Inference Corp.  I expect MACSYMA may be faster at some things, SMP at 
others.  This is, in fact, confirmed in a paper by Wester and Steinberg 
in the Proceedings of the 1984 MACSYMA Users' Conference entitled 
"A Survey of Symbolic Differentiation Implementations".  They conclude:
"For some problems, MACSYMA was the fastest code (when used optimally), 
while for others, MAPLE or SMP was faster."  I'm not surprised that the 
sheet put out by Inference contains mostly examples where SMP came out 
faster.  I didn't expect them to publish examples where MACSYMA was faster.
If you have independent benchmarks to support your claim, please let us know.

I think this sort of "speed" contest is somewhat overblown anyway.  What is 
more important is a comparison of capabilities and features.  

Norm Levin's concern for speed within MACSYMA (or SMP, or ...), however, 
is of importance.  MACSYMA has good optimization and translation 
capabilities.  There are articles on these in the aforementioned 1984 
Proceedings.  If you have a MACSYMA which lacks some capability here, 
I suggest you contact the distributors of MACSYMA to see what is now 
available.  

George J. Carrette <GJC@MIT-MC.ARPA> (08/26/85)

The Macsyma command FORTRAN can indeed create fortran code
fragments from symbolic expressions in macsyma. These can
be edited into a fortran function or main program. The FORT
command in MAX$DISK:[LPH]FORT.MC (in the DOE-MACSYMA release)
gets rid of the editing step in many cases by generating the
FUNCTION, RETURN, and END statements for you. However, even
that may not be worth the bother if you only want reasonable
efficiency in numerical code for calling the 3-D plot command
or contourplot or the ROMBERG numerical integrator, all of which
may evaluate a given expression many many times. The use of
the Macsyma->Lisp translator and Lisp->Machine-code compiler may
be all that is required. Here is an example from the PLOT DEMO:

(X^3+Y^4-0.2*X)*EXP(-X^2-Y^2)+0.3*EXP(-(X-1.225)^2-Y^2);
PLOT3D(%,X,-3,3,Y,-3,3)$

If instead we define a function:
F(X,Y):=(MODE_DECLARE([X,Y],FLOAT),
         (X^3+Y^4-0.2*X)*EXP(-X^2-Y^2)+0.3*EXP(-(X-1.225)^2-Y^2));

And:
TRANSLATE(F); COMPILE(F);

Then the PLOT3D will go noticably faster as
PLOT3D(F(X,Y),X,-3,3,Y,-3,3);

Files of Macsyma source code are translated and compiled with the
TRANSLATE_FILE and COMPILE_LISP_FILE commands.

-gjc

toms@bcsaic.UUCP (tom skillman) (09/05/85)

In article <2666@randvax.UUCP> Jeffrey P. Golden <JPG@MIT-MC.ARPA> writes:
>JPG@MIT-MC.ARPA 08/21/85 16:34:25 Re: symalg: speeding up MACSYMA
>>   From: bcsaic!toms (tom skillman)
>>
>>   I don't know how to speed up macsyma but SMP from Inference Corp. in LA
>>   (213-417-7997) is supposed to be faster than macsyma.  It is written in
>>   C and includes a FORTRAN code generator.
>>
>
>What does "SMP ... is supposed to be faster than macsyma" mean?
>Who supposes this?  Faster at what?  How comprehensive are their tests?
>...

Well excuuuusssseeee me!  I was responding to a simple request for
information with a simple response of a possible source.
Why are you so defensive about MACSYMA.

Tom Skillman
Boeing AI Center