[-*-Text-*-] This file gives introductory material about MACSYMA. It replaces the full manual which is useless in this mode.  File: MACSYM, Node: Top, Up: (DIR), Next: Manual, MACSYMA is a large symbolic algebraic manipulation program. It runs only on the MC machine. It is invoked by :MACSYMA or :A (for short). * Menu: * Manual:: How to obtain published documentation for MACSYMA. * Primer:: How to invoke the MACSYMA Primer. * Syntax:: A brief introduction to MACSYMA syntax. * Commands:: Some useful commands for on-line documentation. * Demo:: How to run DEMO files. * Save:: How to save your work. * Helpme:: How to request help on-line with MACSYMA. * Helpers:: People to communicate with for help.  File: MACSYM, Node: Manual, Previous: Top, Next: Primer, Up: Top The current version of the MACSYMA Reference Manual is version 10, January 1983. The MACSYMA Reference Manual may be ordered from: Publications Laboratory for Computer Science 545 Technology Square Cambridge, MA 02139 It costs $22.50. Prepayment or Purchase Order preferred. Checks or money orders should be made payable to MIT Laboratory for Computer Science. The file MACDOC;UPDATE > contains updates to MACSYMA since the publication of version 10. DESCRIBE(UPDATE); will list them briefly.  File: MACSYM, Node: Primer, Next: Syntax, Up: Top, Previous: Manual You may start up an on-line tutorial for MACSYMA by typing :TEACHMACSYMA Or, if you have already started up a MACSYMA you may call the Primer from inside it by giving the command PRIMER();  File: MACSYM, Node: Syntax, Next: Commands, Up: Top, Previous: Primer, Input to MACSYMA is done with a syntax somewhat like that of Fortran or Algol. All input lines are terminated with a semi-colon (;). Input lines are labeled consecutively starting with (C1), and then (C2), (C3) etc. MACSYMA results are labeled from (D1) on. Thus (D1) is the result of the computations performed by MACSYMA on the user's input string (C1). These line numbers may be used to refer to expressions. 2 For example: The expression X + 2 X + 1 would be typed in as: x^2+2*x+1; Commands to MACSYMA take their arguments inside parentheses, e.g. FACTOR(x^2+2*x+1); Commands may be typed in upper or lower case. The symbol % may be used to refer to the last expression MACSYMA computed. E.g. (C1) (x+3)^5; 5 (D1) (X + 3) (C2) expand(%); 5 4 3 2 (D2) X + 15 X + 90 X + 270 X + 405 X + 243 The Mathematical operators used by MACSYMA are: ! for Factorial, ^ or ** for Exponentiation, * for Multiplication, . for non-commutative multiplication (spaces must go on either side of the dot) / for Division, + for Addition, and - for Subtraction. For more details see the SYNTAX section in the Primer.  File: MACSYM, Node: Commands, Next: Demo, Up: Top, Previous: Syntax, MACSYMA itself provides some on-line help. Here are some useful commands to get you started: APROPOS(string); takes a character string as argument and looks at all the MACSYMA names for ones with that string appearing anywhere within them. Thus, APROPOS(EXP); will return a long list of all the flags and functions which have EXP as part of their names, such as EXPAND, EXP, EXPONENTIALIZE. Thus if you can only remember part of the name of something you can use this command to find the rest of the name. DESCRIBE(cmd); prints out information about "cmd", which may be any MACSYMA command, switch or variable. Certain key words have also been included, where they seem appropriate, thus DESCRIBE(TRIG); will print out a list of the trig functions implemented in MACSYMA. See also APROPOS(string) which allows you to locate command names even if you aren't sure of the full name. OPTIONS(); enters the OPTIONS interpreter which is a structured list of MACSYMA commands. You type the number of the subject of interest, followed by a ";" to see the list of commands available for that subject. To move back up the list the command BACK; will go back up one level, and TOP; will get you back to the original entry list. EXIT; will quit out of OPTIONS. DESCRIBE may be called inside OPTIONS on the commands listed, either by number or by name. OPTIONS(command); will give the various commands and switches associated with command. EXAMPLE(command); will start up a demonstration of how command works on some expressions. After each command line it will pause and wait for a space to be typed, as in the DEMO command (type N to see the DEMO command).  File: MACSYM, Node: Demo, Previous: Commands, Next: Save, Up: Top There are two commands which are useful for finding out how MACSYMA works on specific types of problems: DEMO and BATCH. BATCH is also useful in programming. These two are essentially the same command, except that the DEMO command pauses after each set of command/display lines and waits for the user to indicate readiness for the next pair by typing a space. Typing anything besides a space will terminate the demonstration. (Note: on noisy phone lines, the phone line may type a "rubout" (^? on some terminals) which terminates the demo. In this case use the BATCH command to run demonstration files.) DEMO(name1,name2,device,directory); starts up a demonstration. To obtain a list of some interesting demonstrations, do LISTFILES(DEMO); which will list the "DEMO" directory. To use the DEMO command on a file from this directory, for instance, "BEGIN DEMO", you proceed as follows: On the list printed out by LISTFILES(DEMO); you will see the line: [BEGIN, DEMO, DSK, DEMO] 5/2/81 L=335 chars. The four words inside the square brackets are what you place inside the parentheses as arguments to the DEMO command, e.g. DEMO(BEGIN,DEMO,DSK,DEMO); The remaining information on the line is the creation date of the file and its length. To run this demonstration using the BATCH command, you would type: BATCH(BEGIN,DEMO,DSK,DEMO);  File: MACSYM, Node: Save, Previous: Demo, Next: Helpme, Up: Top There are several ways to store a MACSYMA calculation or partial results on disk to return to at a later date: SAVE([optional file spec],arg1, arg2,...,argi) saves quantities described by its arguments on disk and keeps them in core also. The optional file spec is in the form NAME1,NAME2,DSK,DIRECTORY and is enclosed in square brackets, e.g. [JAMU,FUNCS,DSK,USERS2]. If you omit the file spec, MACSYMA will select a file name for you consisting of the first three letters of your login name followed by a digit (the lowest digit which will give a unique file name). The second file name will be a number. The arg's are the expressions to be SAVEd. ALL is the simplest, but note that saving ALL will save the entire contents of your MACSYMA, which in the case of a large computation may result in a file which is too large to be reloaded. VALUES, FUNCTIONS, or any other items on the INFOLISTS may be SAVEd, as may functions and variables by name. C and D lines may also be saved, but it is better to give them explicit names, which may be done in the command line, e.g. SAVE(RES1=D15); Files saved with SAVE should be reloaded with LOADFILE. FASSAVE(args) is similar to SAVE but produces a FASL file in which the sharing of subexpressions which are shared in core is preserved in the file created. Hence, expressions which have common subexpressions will consume less space when loaded back from a file created by FASSAVE rather than by SAVE. Files created with FASSAVE are reloaded using LOADFILE, just as files created with SAVE. LOADFILE(fn1, fn2, DSK, directory) loads a file as designated by its arguments. This function may be used to bring back quantities that were stored from a prior MACSYMA session by use of the SAVE or STORE functions. STORE(args) same as SAVE but doesn't retain quantities in core. RESTORE(file-specification) reinitializes all quantities filed away by a use of the SAVE or STORE functions, in a prior MACSYMA session, from the file given by file-specification without bringing them into core.  File: MACSYM, Node: Helpme, Next: Helpers, Up: Top, Previous: Save, In MACSYMA there are a number of commands which will allow you to communicate with the Mathlab Group or other MACSYMA Users: SEND("message"); - will send your message to some MACSYMA system programmer who is logged in at that time. Note that message must begin and end with double quotes. SEND(username,"message"); - sends the message to a specified user. Expressions may be included by referring to them, outside double quotes, e.g. SEND("I am trying to integrate",D3,"but it runs out of core."); MAIL("message"); - will send mail to MACSYMA. This may be used to report problems or bugs. MAIL(username,"message"); - will send mail to a specific user. Expressions may be included outside double quotes, as with SEND. BUG("message"); - similar to mail, sends a message to MACSYMA Mail. This may be used for reporting bugs or suspected bugs in MACSYMA. Expressions may be included by referring to them, outside double quotes as with SEND and MAIL.  File: MACSYM, Node: Helpers, Up: Top, Previous: Helpme, To get help with problems in MACSYMA or with the system, these people are useful to communicate with: Login name Full name Phone # Room # ---------------------------------------------------------------- JPG Golden, Jeffrey (617)253-5891 832 ELLEN Golden, Ellen " " -5891 832 RWK Kerns, Bob " " -5217 835 KMP Pitman, Kent " " -7838 352 GJC Carrette, George " " -5887 833 U. S. Mail Address: Laboratory for Computer Science Room 545 Technology Square Cambridge, MA 02139 The WHO(); command will print out a list of people currently logged in.