[net.math.symbolic] Macsyma questions, Pavelle's Book

leff%smu.csnet@csnet-relay (07/20/85)

Several of the notes I submitted recently did not reach the full news group.
I am resubmitting these from rand-unix.  If you didnot receive these before
you might let me know.

leff
====    ====    ====    ====    ====    ====    ====
Note 33                                           
leff                                                        9:10 pm  Jun  8, 1985

             Macsyma Questions

1) Is it possible to pass an array to a subroutine or function and
have the function either alter the values of the array or return
an array.  For example, how would one write a subroutine to take
an array and return the result of differentiating each element of it.

Some things I tried:

a:integrate(x1^2,x1);
(c49) f(x):=BLOCK([temp],x[2]:3);

(d49) 			 f(x) := block([temp], x  : 3)
						2

(c50) array(zing,3);

(d50) 				     zing

(c51) f(zing);

(d51) 				       3

(c52) zing[2];

(d52) 				     zing
					 2

(c53)  f(x):=BLOCK([temp],x[2]::3);

(d53) 		        f(x) := block([temp], x  :: 3)
					       2

(c54) f(zing);
3 improper value assignment
Undefined function called from compiled code   err

2) According to the Macsyma Manual, Section 15.1 (page 15-7), 
timer_info(f) prints information stored also as
get('f,'calls),get('f,'runtime) and get('f,'gctime).

However, the numbers I get when I try these things do not
match:

(c14) timer_info(f);

(d14) 

  [ function	     time/call	       calls	      runtime	       gctime ]
  [									      ]
  [    f      0.01666666666666667 sec	 1    0.01666666666666667 sec	 0    ]









  [									      ]
  [  total    0.01666666666666667 sec	 1    0.01666666666666667 sec	 0    ]

(c15) get('f,'runtime);

(d15) 				       1


What does this one come in (d15) have to do with the runtime numbers in
the timer_info call?






             Macsyma Notes  (primarily for beginning users)

1) There is an ODE function available that combines the features of ODE2
and DESOLVE plus a few more.  However, it is not documented anywhere in the 
Macsyma manual.

2) Be careful of using constants of the form cnn and dnn.  If a naive
user copies a formula from a textbook using such constants, they are
often confused with the formula labels used by Macsyma.

3) Note that Macsyma does case folding; the variable E is the same as e.
I could find no statement to this effect in the Macsyma manual.
This can also be confusing to naive users typing in math formulas from
books.  In math, these are often viewed as different.

4) A short note on the use of Macsyma with the typeset option
under Unix 4.2BSD (that is using the typeset:true option).

One neat trick is to include EQ defines in MACSYMA comments.  This way
you can take symbols like x sub 1, use a name that macsyma can
understand like x1 and then have it print out as x with a 1 subscripted
in the laser printer output.  See below for an example.  

/* macsyma demonstration */

/*
.EQ
define x1 "x sub 1"
.EN
*/
typeset:true;

====    ====    ====    ====    ====    ====    ====
Note 35                                              1 response 
leff                                                       12:50 am  Jun 16, 1985

                More Macsyma Questions

1. I have been having problems with floating exceptions coming
from RAT (when invoked by fullratsimp or by general polynomial
simplification routines) even on such values as fullratsimp(1.0).
Now it is apparent to me that something is getting clobbered inside
this code.  I took the rather large program that was giving me problems,
inserted a save to dump the variables.  I then loaded the values and
issued the statement to continue execution and then it continued past
the same point.

I have not been isolate the problem as to what are the preconditions
to cause RAT to misbehave like this but I would like to know if anyone
has seen these symptoms before.

2. It appears that Macsyma does not know how to pass arrays as arguments
to procedures.  That is, if one passes an array name to a procedure it
uses the global variable whose name is the same as the dummy parameter
name.  

The following illustrates this problem.


(c2) batch("/usr2/grad/leff/31.p");

(c3) Test(a):=BLOCK([temp],
  d:a[2]);

(d3) 		       test(a) := block([temp], d : a )
						     2

(c4) array (a,3);

(d4) 				       a

(c5) array (b,3);

(d5) 				       b

(c6) a[2]:5;

(d6) 				       5

(c7) b[2]:7;

(d7) 				       7

(c8) Test(b);

(d8) 				       5

(c9) display(d);

				     d = 5


(d9) 				     done


(d10) 				  BATCH DONE

(c11) 


3. When passing an array to a procedure, array_info does not work 
on the parameter inside the procedure.

Well, I tried changing the name of my parameter so it did not
correspond to any global names.  Well I attempt to reference
the parameter, I get the value corresponding to the argument.
But now ARRAYINFO does not work.

See the following example:

(c10) batch("31.m");

(c11) Test(ax):=BLOCK([temp],
  d:ax[2],arrayinfo(ax));

(d11) 	       test(ax) := block([temp], d : ax , arrayinfo(ax))
					       2

(c12) array (a,3);

(d12) 				       a

(c13) array (b,3);

(d13) 				       b

(c14) a[2]:5;

(d14) 				       5

(c15) b[2]:7;

(d15) 				       7

(c16) Test(b);
Not an array - ARRAYINFO:

ax

Undefined function called from compiled code   err

Error in batch fileUndefined function called from compiled code   err

(c17) 

4. Macsyma (when loaded from EMACS) does not go away with emacs.
Unipress Emacs #264 under VAX 4.2BSD

I start a csh under Emacs in a process window.  I start up macsyma
under that shell.  I then do a ^X^F to leave emacs.  Emacs asks me if
I want to kill my processes on the prowl.  I type yes.  I am out of
emacs, but macsyma is still running using CPU time.  It has to be
killed manually. 


==== ==== ====
Response 1    to Note 35  
	leff                                                   9:58 pm  Jun 16, 1985  

Well I isolated the cause of the zerodivide and floating exceptions
from fullratsimp that I complained about as question 1 in the
base note.

The problem is fullratsimp sometimes does not function properly
when keepfloat is set to true.  The following program reads in
an expression to be fullratsimped.  It barfs when keepfloat is
true and will work when keepfloat is false.  To save useless lines,
I truncated the working output.

% macsyma

This is UNIX MACSYMA Release 304.
(c) 1976,1983 Massachusetts Institute of Technology.
All Rights Reserved.
Enhancements (c) 1983, Symbolics, Inc. All Rights Reserved.
Type describe(trade_secret); to see Trade Secret notice.

(c1) batch("zing1");

(c2) testing:
(0.5*p+1)*(2.552595426509751e-17*p^43-7.542068620194144e-15*p^42+9.022361062203114e-13*p^41-5.092591445473571e-11*p^40+7.62030606748932e-10*p^39+6.4188914568388e-08*p^38-3.256771986531714e-06*p^37+1.81707826487359e-06*p^36+0.003348751271024195*p^35-0.0512
6458806017258*p^34-1.961069112117538*p^33+49.92776066991307*p^32+835.6660731781534*p^31-28348.96365022052*p^30-317867.1713723205*p^29+11376097.32471373*p^28+122941909.0339667*p^27-3333129747.297105*p^26-45272173465.06486*p^25+661210759298.3234*p^24+135477
99660946.89*p^23-59283729269633.63*p^22-2865283880901595.0*p^21-9794493039930057.0*p^20+3.538014829589027e+17*p^19+4.067461531878026e+18*p^18-8.888777530037501e+18*p^17-5.100047147279584e+20*p^16-3.664347115194807e+21*p^15+9.713847941144256e+21*p^14+3.628
141152605675e+23*p^13+2.781707875714671e+24*p^12+5.836599548801854e+24*p^11-7.960557278128876e+25*p^10-9.795616824886904e+26*p^9-6.180953866287679e+27*p^8-2.68368954031736e+28*p^7-8.603625700470659e+28*p^6-2.075220592868845e+29*p^5-3.744076935627496e+29*p
^4-4.920257582823338e+29*p^3-4.458679675796763e+29*p^2-2.493783465969821e+29*p-6.488613877600273e+28)/(1.914446569882313e-17*p^43-5.969669837464137e-15*p^42+7.623996723003401e-13*p^41-4.736412612620711e-11*p^40+9.862077354736313e-10*p^39+4.908771085569499
e-08*p^38-3.279587514782085e-06*p^37+2.395369950777211e-05*p^36+0.003080601984989127*p^35-0.07161287407377953*p^34-1.581606473591411*p^33+64.11353610342029*p^32+540.9284552087644*p^31-36672.79247467464*p^30-166108.2843991688*p^29+15621570.03201456*p^28+71
751102.93250367*p^27-5146556474.920464*p^26-36888667764.38366*p^25+1260804998497.479*p^24+15121449677164.4*p^23-195607996235299.1*p^22-4259262591082211.0*p^21+5980547817777665.0*p^20+7.410810921367991e+17*p^19+5.038743904827382e+18*p^18-5.607717812507236e
+19*p^17-1.101760616419929e+21*p^16-4.133903966524848e+21*p^15+6.711760161743657e+22*p^14+1.022410310947885e+24*p^13+5.197197752654535e+24*p^12-1.625721768610155e+25*p^11-4.896275958981356e+26*p^10-4.438410594908515e+27*p^9-2.60268651843989e+28*p^8-1.1150
64840903781e+29*p^7-3.624961001958235e+29*p^6-9.013958486002017e+29*p^5-1.696952458232618e+30*p^4-2.350619903853952e+30*p^3-2.266494167210921e+30*p^2-1.36164082220438e+30*p-3.844025949366557e+29)-(0.375*p+5)*(1.196529106176446e-18*p^45-2.728884048153081e-
16*p^44+2.065914037219976e-14*p^43-1.456417940301916e-13*p^42-5.854894537871396e-11*p^41+2.235661144489576e-09*p^40+5.824245170144037e-08*p^39-4.501719202642594e-06*p^38-1.695836742975403e-05*p^37+0.0051130
46839642523*p^36-0.01703308493071451*p^35-4.124629948460025*p^34+20.64915764070933*p^33+2598.867604689798*p^32-8573.922798292997*p^31-1313541.073055975*p^30-852478.6543264873*p^29+518470972.3144627*p^28+3112046971.830418*p^27-147242381494.3065*p^26-191663
1076434.444*p^25+24025869374153.18*p^24+646562150502858.7*p^23+443858239361239.0*p^22-1.205250793977344e+17*p^21-1.220515451282901e+18*p^20+6.916457455947288e+18*p^19+2.438468602768404e+20*p^18+1.678509069072556e+21*p^17-9.983956893044318e+21*p^16-2.84112
503867105e+23*p^15-2.276766245562404e+24*p^14-2.569423287101871e+24*p^13+1.38266170565549e+26*p^12+1.805368355268015e+27*p^11+1.36591381346464e+28*p^10+7.425072377117364e+28*p^9+3.085162159366603e+29*p^8+1.001537099094069e+30*p^7+2.549911531504875e+30*p^6
+5.048503339868016e+30*p^5+7.614427026744443e+30*p^4+8.43430284998738e+30*p^3+6.43925187886699e+30*p^2+3.003744647437293e+30*p+6.365757934616256e+29)/(2.692190488897003e-18*p^45-7.676930745228076e-16*p^44+8.530480366921539e-14*p^43-3.950823211308203e-12*p
^42-1.987001836478877e-11*p^41+9.417135193953047e-09*p^40-2.524578851705338e-07*p^39-7.702771415759992e-06*p^38+0.0004410463394236893*p^37+0.002080539514778283*p^36-0.4139466385007372*p^35+1.294619886731201*p^34+276.9536625617733*p^33-1525.791332132747*p^
32-147358.7378934439*p^31+657057.407388298*p^30+64518179.35995869*p^29-64128617.48843752*p^28-22693278112.0056*p^27-89695713075.7423*p^26+5932255911107.199*p^25+60718186781214.54*p^24-954452545824197.6*p^23-2.002142008556578e+16*p^22+2.016001812134834e+16
*p^21+3.637141152573789e+18*p^20+2.953646377268436e+19*p^19-2.392559070323894e+20*p^18-6.114862009994101e+21*p^17-3.36077425575144e+22*p^16+2.921198568793123e+23*p^15+6.242834640457527e+24*p^14+4.27635781090436e+25*p^13+1.114968203072442e+23*p^12-2.866685
416679557e+27*p^11-3.254475754491642e+28*p^10-2.242416086394182e+29*p^9-1.119796959038928e+30*p^8-4.273781269203194e+30*p^7-1.268127087658531e+31*p^6-2.922902385735682e+31*p^5-5.155736183753181e+31*p^4-6.745633146401225e+31*p^3-6.182256387845242e+31*p^2-3
.548253028612195e+31*p-9.610064873416392e+30);

					 43			     42
(d2) (0.5 p + 1) (2.552595426509751e-17 p   - 7.542068620194144e-15 p

			  41			      40
 + 9.022361062203114e-13 p   - 5.092591445473571e-11 p

			 39			   38
 + 7.62030606748932e-10 p   + 6.4188914568388e-08 p

			  37			     36
 - 3.256771986531714e-06 p   + 1.81707826487359e-06 p

			 35			   34			   33
 + 0.003348751271024195 p   - 0.05126458806017258 p   - 1.961069112117538 p

		      32		      31		      30
 + 49.92776066991307 p   + 835.6660731781534 p   - 28348.96365022052 p

		      29		      28		      27
 - 317867.1713723205 p   + 11376097.32471373 p   + 122941909.0339667 p

		      26		      25		      24
 - 3333129747.297105 p   - 45272173465.06486 p   + 661210759298.3234 p

		      23		      22		       21
 + 13547799660946.89 p   - 59283729269633.63 p   - 2865283880901595.0 p

		       20			   19
 - 9794493039930057.0 p	  + 3.538014829589027e+17 p

			  18			      17
 + 4.067461531878026e+18 p   - 8.888777530037501e+18 p

			  16			      15
 - 5.100047147279584e+20 p   - 3.664347115194807e+21 p

			  14			      13
 + 9.713847941144256e+21 p   + 3.628141152605675e+23 p

			  12			      11
 + 2.781707875714671e+24 p   + 5.836599548801854e+24 p

			  10			      9
 - 7.960557278128876e+25 p   - 9.795616824886904e+26 p

			  8			    7
 - 6.180953866287679e+27 p  - 2.68368954031736e+28 p

			  6			     5
 - 8.603625700470659e+28 p  - 2.075220592868845e+29 p

			  4			     3
 - 3.744076935627496e+29 p  - 4.920257582823338e+29 p

			  2
 - 4.458679675796763e+29 p  - 2.493783465969821e+29 p - 6.488613877600273e+28)

			 43			     42
/(1.914446569882313e-17 p   - 5.969669837464137e-15 p

			  41			      40
 + 7.623996723003401e-13 p   - 4.736412612620711e-11 p

			  39			      38
 + 9.862077354736313e-10 p   + 4.908771085569499e-08 p

			  37			      36
 - 3.279587514782085e-06 p   + 2.395369950777211e-05 p

			 35			   34			   33
 + 0.003080601984989127 p   - 0.07161287407377953 p   - 1.581606473591411 p

		      32		      31		      30
 + 64.11353610342029 p   + 540.9284552087644 p   - 36672.79247467464 p

		      29		      28		      27
 - 166108.2843991688 p   + 15621570.03201456 p   + 71751102.93250367 p

		      26		      25		      24
 - 5146556474.920464 p   - 36888667764.38366 p   + 1260804998497.479 p

		     23			     22			      21
 + 15121449677164.4 p   - 195607996235299.1 p   - 4259262591082211.0 p

		       20			   19
 + 5980547817777665.0 p	  + 7.410810921367991e+17 p

			  18			      17
 + 5.038743904827382e+18 p   - 5.607717812507236e+19 p

			  16			      15
 - 1.101760616419929e+21 p   - 4.133903966524848e+21 p

			  14			      13
 + 6.711760161743657e+22 p   + 1.022410310947885e+24 p

			  12			      11
 + 5.197197752654535e+24 p   - 1.625721768610155e+25 p

			  10			      9
 - 4.896275958981356e+26 p   - 4.438410594908515e+27 p

			 8			    7
 - 2.60268651843989e+28 p  - 1.115064840903781e+29 p

			  6			     5
 - 3.624961001958235e+29 p  - 9.013958486002017e+29 p

			  4			     3
 - 1.696952458232618e+30 p  - 2.350619903853952e+30 p

			  2
 - 2.266494167210921e+30 p  - 1.36164082220438e+30 p - 3.844025949366557e+29)

					 45			     44
 - (0.375 p + 5) (1.196529106176446e-18 p   - 2.728884048153081e-16 p

			  43			      42
 + 2.065914037219976e-14 p   - 1.456417940301916e-13 p

			  41			      40
 - 5.854894537871396e-11 p   + 2.235661144489576e-09 p

			  39			      38
 + 5.824245170144037e-08 p   - 4.501719202642594e-06 p

			  37			     36
 - 1.695836742975403e-05 p   + 0.005113046839642523 p

			35		        34		        33
 - 0.01703308493071451 p   - 4.124629948460025 p   + 20.64915764070933 p

		      32		      31		      30
 + 2598.867604689798 p   - 8573.922798292997 p   - 1313541.073055975 p

		      29		      28		      27
 - 852478.6543264873 p   + 518470972.3144627 p   + 3112046971.830418 p

		      26		      25		      24
 - 147242381494.3065 p   - 1916631076434.444 p   + 24025869374153.18 p

		      23		      22			  21
 + 646562150502858.7 p   + 443858239361239.0 p   - 1.205250793977344e+17 p

			  20			      19
 - 1.220515451282901e+18 p   + 6.916457455947288e+18 p

			  18			      17
 + 2.438468602768404e+20 p   + 1.678509069072556e+21 p

			  16			     15
 - 9.983956893044318e+21 p   - 2.84112503867105e+23 p

			  14			      13
 - 2.276766245562404e+24 p   - 2.569423287101871e+24 p

			 12			     11
 + 1.38266170565549e+26 p   + 1.805368355268015e+27 p

			 10			     9
 + 1.36591381346464e+28 p   + 7.425072377117364e+28 p

			  8			     7
 + 3.085162159366603e+29 p  + 1.001537099094069e+30 p

			  6			     5
 + 2.549911531504875e+30 p  + 5.048503339868016e+30 p

			  4			    3			      2
 + 7.614427026744443e+30 p  + 8.43430284998738e+30 p  + 6.43925187886699e+30 p

 + 3.003744647437293e+30 p + 6.365757934616256e+29)

			 45			     44
/(2.692190488897003e-18 p   - 7.676930745228076e-16 p

			  43			      42
 + 8.530480366921539e-14 p   - 3.950823211308203e-12 p

			  41			      40
 - 1.987001836478877e-11 p   + 9.417135193953047e-09 p

			  39			      38
 - 2.524578851705338e-07 p   - 7.702771415759992e-06 p

			  37			     36
 + 0.0004410463394236893 p   + 0.002080539514778283 p

		       35		       34		       33
 - 0.4139466385007372 p	  + 1.294619886731201 p	  + 276.9536625617733 p

		      32		      31		     30
 - 1525.791332132747 p   - 147358.7378934439 p   + 657057.407388298 p

		      29		      28		     27
 + 64518179.35995869 p   - 64128617.48843752 p   - 22693278112.0056 p

		     26			     25			     24
 - 89695713075.7423 p   + 5932255911107.199 p   + 60718186781214.54 p

		      23			  22
 - 954452545824197.6 p   - 2.002142008556578e+16 p

			  21			      20
 + 2.016001812134834e+16 p   + 3.637141152573789e+18 p

			  19			      18
 + 2.953646377268436e+19 p   - 2.392559070323894e+20 p

			  17			     16
 - 6.114862009994101e+21 p   - 3.36077425575144e+22 p

			  15			      14
 + 2.921198568793123e+23 p   + 6.242834640457527e+24 p

			 13			     12
 + 4.27635781090436e+25 p   + 1.114968203072442e+23 p

			  11			      10
 - 2.866685416679557e+27 p   - 3.254475754491642e+28 p

			  9			     8
 - 2.242416086394182e+29 p  - 1.119796959038928e+30 p

			  7			     6
 - 4.273781269203194e+30 p  - 1.268127087658531e+31 p

			  5			     4
 - 2.922902385735682e+31 p  - 5.155736183753181e+31 p

			  3			     2
 - 6.745633146401225e+31 p  - 6.182256387845242e+31 p

 - 3.548253028612195e+31 p - 9.610064873416392e+30)

(c3) ;


(d3) 				  BATCH DONE

(c4) keepfloat:true;

(d4) 				     true

(c5) fullratsimp(testing);
Floating Exception 
Undefined function called from compiled code   err

(c6) keepfloat:false;

(d6) 				     false

(c7) fullratsimp(testing);

RAT replaced 0.5 by 1/2 = 0.5

RAT replaced -3.844025949366557e+29 by -384402594936655688805400969216/1 = -3.844025949366557e+29

RAT replaced -1.36164082220438e+30 by -1361640822204379948998469877760/1 = -1.36164082220438e+30

RAT replaced -2.266494167210921e+30 by -2266494167210920905679992520704/1 = -2.266494167210921e+30

RAT replaced -2.350619903853952e+30 by -2350619903853951935954458509312/1 = -2.350619903853952e+30

RAT replaced -1.696952458232618e+30 by -1696952458232617945292920061952/1 = -1.696952458232618e+30

RAT replaced -9.013958486002017e+29 by -901395848600201679540745928704/1 = -9.013958486002017e+29

RAT replaced -3.624961001958235e+29 by -362496100195823491674135330816/1 = -3.624961001958235e+29

RAT replaced -1.115064840903781e+29 by -111506484090378098567909736448/1 = -1.115064840903781e+29

RAT replaced -2.60268651843989e+28 by -26026865184398899486929190912/1 = -2.60268651843989e+28

RAT replaced -4.438410594908515e+27 by
Interrupt (h for help):r

[Return to top level]

(c8) 

====    ====    ====    ====    ====    ====    ====
Note 36                                           
leff                                                        6:55 pm  Jun 19, 1985

The new officers of Sigsam:

Chairman: David Y. Y. Yun
Vice-Chairman James Davenport
Secretary Eric Kaltofen
Treasurer Dennis Arnon

====    ====    ====    ====    ====    ====    ====
Note 37                                           
leff                                                        7:05 pm  Jun 19, 1985

I just received the announcement for this new book: 

Applications of Computer Algebra
Edited by Richard Pavelle  446 Pages $59.95  Kluwer Academic Publishers

This is based on the symposium of the American Chemical Society's Division
of Computers in Chemistry entitled "Symbolic Algebraic Manipulation in
Scientific Computation"

I. Macsyma: Capabilities and Applications to Problems in Engineering
and the Sciences - Richard Pavelle

II. Modern Symbolic Mathematical Compuation Systems - Paul S. Wang

III. Using Vaxima to write FORTRAN code - Stanly Steinberg

IV. Applications of Symbolic Mathematics to Mathematics
Andrew M. Odlyzko

V. Past, Present and Future Applications of Computer Algebra in Chemistry
T. E. Raidy

VI. Symbolic Computation in Chemical Education - Don McLaughlin

VII. A Lisp System for Chemical Groups: Wigner - Eckart Coefficients for
Arbitrary Permutation Groups - Carl Trindle

VIII. Polymer Modeling Applications of Symbolic Computation 
John T. Bendler & Michael F. Shlesinger

IX. Stability Analysis and Optimal Control of a Photochemical Heat Engine
Stanley J. Watowitch, Jeffrey L. Krause, R. Stephen Berry

X. Fourier Transform Algorithms for Spectral Analysis Derived with Macsyma
Robert H. Berman

XI. Computer Algebra as a tool for solving optimal control problems
C. Gomez, J. P. Quadrat, A. Sulem

XII. Application to Macsyma to kinematics and mechanical systems
M. A. Hussain B. Noble

XIII. Stability Analysis of a Robotic Mechanism Using Computer Algebra
M. Golnaraghi, W. Keith, F. C. Moon

XIV Derivation of the Hopf Bifurcation Formula using Lindstedt's
Perturbation Method and Macsyma - Richard H. Rand

XV Normal Form and Center Manifold Calculations on Macsyma R. H. Rand & W.
L. Keith

XVI. Symbolic Compuation of the Stokes Wave - W. H. Hui, G. Tenti

XVII. Simplifying Large Algebraic Expressions by Computer Richard L. Brenner

XVIII. A Proposal for the Solution of Quantum Field Theory Problems using
A Finite-Element Approximation - Carl M. Bender

XIX. Exact Solutions for Superlattices and how to Recognize them with
Computer Algebra Gene Cooperman, Lionel Friendman, Walter Bloss

XX. Computer Generation of Symbolic Generalized Inverses and Applications to
Physics and Data Analysis
W. J. Frawley