1 @node None, Function and Variable Index, Ctensor, Top
4 * Introduction to None::
5 * Definitions for None::
8 @node Introduction to None, Definitions for None, None, None
9 @section Introduction to None
17 - A file specification is a string such as "foo". You may
18 also specify just the symbol foo. So load("foo") and
19 load(foo) should do the same thing (unless foo has a value).
20 Symbols will be mapped to lower cases, and strings left alone.
21 There are various FILE_SEARCH lists. see FILE_SEARCH.
24 - An implementation of Hacijan's linear programming algorithm
25 is available by doing BATCH("kach.mc")$. Details of use are
26 available by doing BATCH("kach.dem");
29 - For information on MACSYMA-IMSL packages available do:
30 PRINTFILE(IMSL,USAGE,SHARE2); IMSL-based routines currently return
31 [SUCCESS, ...] or [ERROR, ...]. They will soon be changed to return
32 [SUCCESS, ...], [WARNING, ...] and [ERROR, ...].
34 @section INDEX_FILE_DIM
35 ,symbol-returned-by-OPEN_INDEX_FILE) - returns an
36 integer indicating the number of expressions in the indexed file.
37 See DESCRIBE(OPEN_INDEX_FILE);.
40 - This command has been removed.
43 - The operating system under which MACSYMA runs on the MIT-MC
44 machine. It stands for "Incompatible Timesharing System".
46 @section MAP_OVER_INDEX_FILE
47 ,|function, fileobject|) is convenient for
48 generating an index list of properties of the objects in a file vs.
49 their positions in the file. See DESCRIBE(MAKE_INDEX_FILE);.
52 - This switch is obsolete. The new RESULTANT switch should
53 be used. Do DESCRIBE(RESULTANT); for details.
56 Processing - The term used to describe the action of a CRT
57 console when it stops at the bottom of the screen to allow the user
58 to finish reading. See PAGEPAUSE and MOREWAIT for details.
61 - SHARE1;NTRIG FASL allows MACSYMA to compute trig functions
62 with arguments of the form N*%PI/10 for integer N. Do LOAD(NTRIG) to
63 access this. The main functions are USIN(N) and UCOS(N).
66 - There are a number of packages for numerical methods in
67 MACSYMA. See IMSL and the SHARE directories.
73 - The value of this variable, an integer, is the second name
74 of the last file written by the automatic storage scheme. (See
75 DESCRIBE(DSKGC)). Each time a file is written, STORENUM is first
76 increased by 1, so it must always be an integer. It is initially set
80 - The Update file has been moved to the MACDOC directory, so
81 you should do PRINTFILE(UPDATE,>,MACDOC); to read it. Also, you may
82 find information of a useful nature on this directory, so you may want
83 to list it (LISTFILES(MACDOC); in MACSYMA) and print some other files
85 Here follows a list of changes to MACSYMA since the Version 10
86 manual. Do DESCRIBE(cmd); to see their documentation:
87 New Functions or variables: LCM, RNCOMBINE.
88 New SHARE packages of interest: ATRIG1, NTRIG.
89 The following functions have been removed from MACSYMA: TRIGSUM.
94 The lisp machine version of macsyma contains many helpful
95 editor commands. The best way to find out about them is to do Meta-X
96 Apropos the string "macsyma" since most of the commands involve this
97 name. Macsyma Mode is obtained by doing the extended command Macsyma
98 mode. When in macsyma mode the keysrokes such as ctrl-shift-C refer to
99 compiling macsyma code in a marked region, or else between the $ or ;
100 delimiters if no region is marked.
102 It is possible to evaluate expressions into the buffer by typing
103 control-shift-I (for example a line label %o3 has a value you want to
104 alter). The macsyma evaluator will be called on the current region and
105 the result will be ground into the buffer. It can then be altered and
106 reevaluated by using control-shift-E to evaluate it.
109 @section FILENAMES--lispm
110 Since source files for Macsyma on the lisp machines
111 will often be on many different machines, it is difficult to have a good
112 file search mechanism. The best thing for a user to do is to specify a
113 file name as a string, as fully as he finds necessary. The syntax
114 should be that of the machine on which the file resides. For example
115 BATCH("/home/wfs/test.mac") or
116 DEMO("/home/wfs/defint.dmo") are valid specifications, for a
117 Using the input editor long pathnames are typed rather easily,
118 and of course there is always the option of defining a logical pathname
121 The current logical pathnames for the sources should be
122 "Maxima-source:maxima;foo.lisp".
124 @section FUNCTION-ARGUMENTS
125 To find the function argument of a function when in
126 the input editor of a macsyma listener you may type Control-meta-A when
127 the cursor is placed just after the name of the function. Unfortunately
128 some macsyma functions use variable names which are not very suggestive.
129 If a function takes keyword arguments, these can be entered at macsyma
130 level by typing ?:.. . For example if you want to call the common lisp
131 function member which takes a keyword test you would enter
133 AA:MAKE_HASH_TABLE(?:TEST,?EQL);
135 This will use the lisp function eql for comparison of entries in AA.
139 @section MACSYMA-LISTENER
140 Select A (or System A) selects the most current
141 macsyma listener. You may also click on the system menu, and create
142 new different shaped listeners. The line labels are shared among
143 the listeners, so that you may refer to line labels defined in one
144 window, in another window.
146 Enabling or disabling more-processing (the pause at the end of a page of
147 display) is done as with lisp listeners (eg. use the function key).
157 @node Definitions for None, , Introduction to None, None
158 @section Definitions for None
160 - This command has been withdrawn, see COLLAPSE.
164 - This command has been withdrawn, see COLLAPSE.
168 default: [$] is the prompt symbol of the MACSYMA editor.
172 (username) returns the total number of disk blocks in use by a
173 user. The result is of the form <n>*BLOCKS
176 @defvar DOVARD_VIEWPORT
177 default: [1,7,1,7] determines the perspective for
178 Dover output plots, similar to VIEWPT. It accepts 4 arguments,
179 [XMIN,XMAX,YMIN,YMAX] in inches on the page.
183 default: [FALSE] if TRUE will cause user defined values,
184 functions, arrays, and line labelled expressions to be automatically
185 stored on disk whenever the system determines that the available
186 in-core space is getting low. (For historical reasons this is also
187 a function, but it should be used as a switch. Please use it as
188 described here, not as a function.)
192 default: [FALSE] if TRUE, from this point in the computation
193 on labelled expressions will be written out periodically onto the
194 disk. (A labelled expression is one which is referred to by a line
195 label, e.g. %o4, %i7, %t12.) Once an expression is written onto the disk
196 it will no longer reside in main memory and most of the main memory
197 storage taken up by it will be released. When the user attempts to
198 reference an expression which has been stored onto the disk, MACSYMA
199 will retrieve the correct value from the disk file.
203 default: [FALSE] if TRUE will allocate additional space
208 () - calls the NIL editor, which is called STEVE. STEVE is an editor
209 for CRT consoles, which is best at speeds of 1200 baud or greater.
210 The interface it presents is close to that of the EMACS editor used
211 on the TOPS-20 and ITS operating systems. Doing
213 will run a tutorial on the editor. At this time it is unfortunately
214 not possible to either "zap" an expression from a command line into
215 the editor, nor to "zap" an edited expression back to MACSYMA for
216 evaluation; however, the editor can be used for file editing.
217 DESCRIBE(EDITOR) for information about the MACSYMA line editor.
221 - There is a line editor in MACSYMA, which you may enter by typing
222 an altmode (the "esc" key on most consoles) for PDP-10 and NIL versions
223 of MACSYMA, and & (ampersand) for Multics. Your current command line
224 will be automatically brought into the editor for you to edit. Commands
225 are terminated by two altmodes (two &'s on Multics). An additional
226 two altmodes will return you to MACSYMA with the edited string on your
228 Some useful commands:
231 nC moves the cursor past n characters.
232 nR moves the cursor past n characters in the
233 reverse direction (nR = -nC).
234 nSstring<$> moves the cursor to the right (left if n is
235 negative) of the nth occurrence of "string" in
237 ) or ] moves the cursor right from the current position
238 over the next balanced pair of parentheses (or
240 ( or [ similar to ) or ] but moves left.
241 nD deletes n characters, and saves them in the
242 "save-register" (see the GR command below).
243 nK deletes all the characters through the nth carriage return
244 (0K kills left), and saves them in the "save-register";
245 e.g., K deletes the remainder of this line.
246 Istring<$> inserts the characters "string" at the current cursor
247 position. The cursor is positioned at the right of
248 the inserted text. If no argument is given then the
249 string of the last I command which had one is used.
250 GR inserts at the current cursor position the characters
251 deleted by the last use of D or K. Thus GR may be used
252 in combination with D or K to move characters from one
253 place to another in the input string; or to recover
254 from an accidental use of D or K. There is only one
259 () - calls the NIL editor. DESCRIBE(ED) for more information.
260 The name EMACS derives from the editor of that name used on the ITS
261 and TOPS-20 operating systems.
265 - SHARE;FILEOP -- some file primitives for MC Macsyma users.
266 Macsyma now provides some useful simple file primitives which were
267 formerly only available in other system programs.
268 To print the contents of a file on your terminal, say
269 PRINTFILE(file,name,dsk,me);
270 To list your directory, say LISTFILES(dsk,me). If you use a shared
271 directory such as USERS or PLASMA, only your files--the ones
272 with your login name as first file name--will be shown.
273 The length and date of creation of each file is also shown.
274 The function FILELENGTH returns the length of the file argument
275 in blocks and fractional blocks.
276 In order to list just the names of your files without the
277 length and date information, use QLISTFILES (Quick LIST Files)
278 with the same arguments as LISTFILES.
279 The function RENAMEFILE(oldname,newname) renames a file from oldname
282 The PRINTFILE command takes the same argument syntax as LOADFILE;
283 the other two take the syntax of WRITEFILE. LISTFILES indicates
284 whether each file is stored on secondary disk and whether it
285 has been backed up to tape (an exclamation point appears if
287 The FILELENGTH command returns the length in blocks and fractional
288 blocks: there are five characters in a word and 1024 words in a disk block.
289 (So if it returns 5.6, the file is 6 blocks long, but the last block
290 is only 60% full. This file would be 5.6*1024*5 (= 28672) characters
291 long.) If the file named does not exist, an error message is printed,
292 and False is returned to permit easier recovery in a program.
293 Files may not be renamed across directories or devices. Both oldname
294 and newname must be on the same directory. Renaming a file to a filename
295 that already exists gives an error. You must explicitly DELFILE the
296 existing file first if that's what you want. Both oldname and newname
297 must be list-type filespecs. example:
298 RENAMEFILE([myold,file,dsk,foo],[mynew,file]);
302 default: [] - The value of this variable is the number of
303 expressions written into each file by the automatic disk storage
304 scheme. The default value is 16.
308 (username) If no name is supplied, it defaults to the
309 current user's. Returns long list of info about user's disk usage of
311 [["TOTAL FREE BLOCKS", [<pack-type>, <pack-number>, <n> BLOCKS],
312 [<pack-type>, <pack-number>, <n> BLOCKS], ...]
313 ["DIRECTORY BLOCK USAGE", <directory-name>
314 ["PRIMARY", <n> BLOCKS],
315 ["SECONDARY", <n> BLOCKS]]
316 ["USER BLOCK USAGE", <user-name>,
317 [PRIMARY, <n> BLOCKS],
318 [SECONDARY, <n> BLOCKS]]]
319 If the user has his own directory, the last element of the list ("USER
320 BLOCK USAGE") is omitted since it would be the same as "DIRECTORY
322 <pack-type> ::= "PRIMARY PACK" or "SECONDARY PACK"
323 <pack-number> ::= a fixed point number
324 <n> ::= a fixed point number
325 Occurrences of `<n> BLOCKS' are in the form of a Macsyma multiplication
326 between a fixnum <n> and the Macsyma symbol BLOCKS.
329 @defun DIRECTORY(path)
330 List files in path. Path may be something like "/home/wfs/*.mac"
335 () - causes the user to be logged out and all jobs deleted.
336 This is useful when it is desired to BATCH in a file and have the
337 terminal logged out automatically when the computations are finished.
338 This causes the process which invoked MACSYMA to execute a LOGOUT
343 ("message") will send mail to MACSYMA. This may be used to report
345 MAIL(username,"message") will send mail to a specific user.
346 Expressions may be included by referring to them, outside double
347 quotes, when (and only when) a username is given, e.g.
348 MAIL(ELLEN,"I am trying to integrate",%o3,"but it asks for more list
349 space. What should I do?");
350 Not supported yet in NIL Macsyma.
353 @defun MAKE_INDEX_FILE
354 ("filename"); will parse a batch file without
355 evaluating it. This is useful for debugging init files. See
356 DESCRIBE(init); and DESCRIBE(OPEN_INDEX_FILE);.
360 default: [FALSE] - Controls the action of more processing.
361 Currently in NIL Macsyma, the setting of this has no effect.
362 When output is suspended and a --Pause-- or --More Display?-- prompt
363 is issued, one may type a space to continue the output. Typing any
364 character other than space or rubout (delete) will continue the output,
365 and leave the character around to be read as part of the next c-line
366 and possibly intervening --Pause-- prompts.
375 default: [] - This is set by MACSYMA according to what the
376 system knows about your terminal type. If it is set to TRUE, then
377 "more" processing, which involves the printing of --More display?-- or
378 --Pause-- at the bottom of your screen or after so many lines on a
379 printing terminal, and pausing, will be enabled. It may be set to
380 FALSE to turn off the "more" processing on a display terminal.
381 PAGEPAUSE is sometimes useful in batch files on slow lines where you
382 just wish to watch the output run past, and can keep up with the line
387 () - Causes the display to "pause", printing "--Pause--" and
388 waiting for the usual "space" for "yes" to resume printing. Then it
389 clears the screen and continues. PAUSE("--Something else--"); will
390 use "--Something else--" as the string printed instead of "--Pause--".
391 PAUSE("--Something else--","--And some more--"); will use "--Something
392 else--" instead of "--Pause--" and "--And some more--" instead of
398 (oldfilename, newfilename) - Gives a new name to a file.
399 Oldfilename may name any file. It should use the list filename format
400 - eg, [MYOLD,FILE,DSK,USERS5]. Newfilename must be a filename on the
401 same device and directory. Hence only filename1 and filename2 should
402 be specified. For example, [MYNEW,FILE]. Attempting to change the
403 name of a file that does not exist, or to rename a file to the name of
404 a file that exists already will generate an error; hence, it is not
405 possible to inadvertently destroy a file using this command.
409 @defun TAG_FILE_INSERT
410 (file-to-insert-into, file-to-insert) - Inserts a file
411 created by the translator into a multiple entry tags file.
415 () prints out the current date and time.
420 default: [5,4,"Wed Oct ..."] - are the major and minor versions of MAXIMA.
421 This could be useful if the user wants to label his output, or to associate
422 bugs with a particular version.
426 @c BEGIN ITEMS CUT FROM Input.texi 20041031
428 To "back up" and see what you did, see PLAYBACK.
433 default: [FALSE] if TRUE then the effect of all previous
434 BATCH files is nullified because a KILL(ALL) and a RESET() will be
435 done automatically when the next one is read in. If BATCHKILL is
436 bound to any other atom then a KILL of the value of BATCHKILL will be
441 @defun BATCON (argument)
442 continues BATCHing in a file which was interrupted.
447 default: [0] may be set to the number of the last expression
448 BATCHed in from a file. Thus BATCON(BATCOUNT-1) will resume BATCHing
449 from the expression before the last BATCHed in from before.
453 @defvar CHANGE_FILEDEFAULTS
454 default: [TRUE] on PDP10 systems, and FALSE
455 elsewhere. Controls whether the user doing a LOADFILE or BATCH has
456 his file defaults changed to the file LOADFILEd or BATCHed. The TRUE
457 setting is for people who like DDT-style file defaulting. The FALSE
458 setting is for people who like the conventions of other operating
459 systems, who like LISP-style file defaulting, or who write packages
460 which do LOADFILEs or BATCHes which should not interfere with their
461 user's file defaults.
466 - The value of this variable is the default file directory for
467 SAVE, STORE, FASSAVE, and STRINGOUT. It is initialized to the user's
468 login name, if he has a disk directory, and to one of the USERSi
469 directories otherwise. DIREC determines to what directory disk files
475 default: [] If TRUE will cause values, functions, arrays, and
476 rules to be written periodically onto the disk in addition to labelled
477 expressions. TRUE is the default value whereas if DSKALL is FALSE
478 then only labelled expresions will be written.
483 default: [] - The value of this variable is the first name
484 of the files which are generated by the automatic disk storage scheme.
485 The default value is the first three characters of the user's login
486 name concatenated with the lowest unused integer, e.g. ECR1.
491 default: [0] - The default second file name for files generated
492 by SAVE, STRINGOUT, or FASSAVE if no file names are specified by the
493 user. It is an integer, and is incremented by one each time a new file
498 @defvar FILE_STRING_PRINT
499 default: [FALSE] on MC, [TRUE] elsewhere. If
500 TRUE, filenames are output as strings; if FALSE, as lists. For
501 example, the message when an out of core file is loaded into
502 MACSYMA (e.g. the LIMIT package), appears on MC in list format as
503 LIMIT FASL DSK MACSYM being loaded
504 and in string format as:
505 DSK:MACSYM;LIMIT FASL being loaded
506 The string format is like the top level (DDT) file specifications.
511 default: [TRUE] - Allows the use of line graphics in the
512 drawing of equations on those systems which support them (e.g. the
513 Lisp Machine). This can be disabled by setting LINEDISP to FALSE. It
514 is automatically disabled during WRITEFILE.
518 @defun NOSTRING (arg)
519 displays all input lines when playing back rather than
520 STRINGing them. If arg is GRIND then the display will be in a more
521 readable format. One may include any number of options as in
522 PLAYBACK([5,10],20,TIME,SLOW).
527 default:[10] - the maximum number of "lexical tokens"
528 that are printed out on each side of the error-point when a syntax
529 (parsing) error occurs. This option is especially useful on slow
530 terminals. Setting it to -1 causes the entire input string to be
531 printed out when an error occurs.
535 @defun SPRINT (exp1, exp2, ...)
536 evaluates and displays its arguments one
537 after the other "on a line" starting at the leftmost position. The
538 numbers are printed with the '-' right next to the number, and
539 it disregards line length.
541 @c END ITEMS CUT FROM Input.texi 20041031
543 @c BEGIN TEXT RECENTLY (200410) CUT FROM doc/info/Program.texi
544 @defun LISPDEBUGMODE ()
545 LISPDEBUGMODE(); DEBUGPRINTMODE(); and DEBUG();
546 make available to the user debugging features used by systems
547 programmers. These tools are powerful, and although some conventions
548 are different from the usual macsyma level it is felt their use is
549 very intuitive. [Some printout may be verbose for slow terminals,
550 there are switches for controlling this.] These commands were
551 designed for the user who must debug translated macsyma code, as such
552 they are a boon. See MACDOC;TRDEBG USAGE for more information.
555 @c END TEXT RECENTLY (200410) CUT FROM doc/info/Program.texi
557 @c BEGIN TEXT RECENTLY (200410) CUT FROM doc/info/Command.texi
559 - the time to compute the last expression in milliseconds
560 presented as a list of "time" and "gctime".
565 causes the MACSYMA break which was left by typing
566 TOPLEVEL; to be re-entered. If TOBREAK is given any argument
567 whatsoever, then the break will be exited, which is equivalent to
568 typing TOBREAK() immediately followed by EXIT;.
573 During a break one may type TOPLEVEL;. This will cause
574 top-level MACSYMA to be entered recursively. Labels will now be bound
575 as usual. Everything will be identical to the previous top-level
576 state except that the computation which was interrupted is saved. The
577 function TOBREAK() will cause the break which was left by typing
578 TOPLEVEL; to be re-entered. If TOBREAK is given any argument
579 whatsoever, then the break will be exited, which is equivalent to
580 typing TOBREAK() immediately followed by EXIT;.
585 default: [FALSE] - Governs the function which will be run
586 whenever the User-interrupt-character is typed. To use this feature,
587 one sets TTYINTFUN (default FALSE meaning feature not in use) to a
588 function of no arguments. Then whenever (e.g.) ^U (control-U) is
589 typed, this function is run. E.g. suppose you have a FOR statement
590 loop which increments I, and you want an easy way of checking on the
591 value of I while the FOR statement is running. You can do:
592 TTYINTFUN:PRINTI$ PRINTI():=PRINT(I)$ , then whenever you type (e.g.)
593 ^U you get the check you want.
598 default: [21] (the ascii value of Control-U (^U), U being
599 the 21st letter of the alphabet). This controls what character
600 becomes the User-interrupt-character. ^U was chosen for it mnemonic
601 value. Most users should not reset TTYINTNUM unless they are already
602 using ^U for something else.
605 @c END TEXT RECENTLY (200410) CUT FROM doc/info/Command.texi
607 @c BEGIN TEXT RECENTLY (200410) CUT FROM doc/info/Runtime.texi
609 - Control-^ typed while in MACSYMA causes LISP to be
610 entered. The user can now type any LISP S-expression and have it
611 evaluated. Typing (CONTINUE) or ^G (control-G) causes MACSYMA to be
616 @defun ALARMCLOCK (arg1, arg2, arg3)
617 will execute the function of no
618 arguments whose name is arg3 when the time specified by arg1 and arg2
619 elapses. If arg1 is the atom "TIME" then arg3 will be executed after
620 arg2 seconds of real-time has elapsed while if arg1 is the atom
621 "RUNTIME" then arg3 will be executed after arg2 milliseconds of cpu
622 time. If arg2 is negative then the arg1 timer is shut off.
627 takes any number of arguments which are the same as the replies
628 to the "run out of space" question. It increases allocations
629 accordingly. E.g. If the user knows initially that his problem will
630 require much space, he can say ALLOC(4); to allocate the maximum
631 amount initially. See also the DYNAMALLOC switch.
635 @defun BUG ("message")
636 similar to mail, sends a message to MACSYMA Mail.
637 This may be used for reporting bugs or suspected bugs in MACSYMA.
638 Expressions may be included by referring to them, outside double
640 BUG("I am trying to integrate",%o3,"but it asks for more list space.
646 Exits from MACSYMA to the operating system level. (The same
647 as control-Z on ITS, or control-C on Tops-20.)
651 @defun DELFILE (file-specification)
652 will delete the file given by the
653 file-specification (i.e. firstname, secondname, device, user) from the
659 With no args or an arg of TRUE, will return the total
660 number of free blocks of disk space in the system. With an arg of 0,
661 1, or 13, it will return the number of free blocks of diskspace on the
662 respective disk pack. With an arg of SECONDARY or PRIMARY, it will
663 return the total number of free blocks of disk space on the secondary
664 or primary disk pack respectively.
667 @c END TEXT RECENTLY (200410) CUT FROM doc/info/Runtime.texi
669 @defun FASSAVE (args)
670 is similar to SAVE but produces a FASL file in which
671 the sharing of subexpressions which are shared in core is preserved in
672 the file created. Hence, expressions which have common subexpressions
673 will consume less space when loaded back from a file created by
674 FASSAVE rather than by SAVE. Files created with FASSAVE are reloaded
675 using LOADFILE, just as files created with SAVE. FASSAVE returns a
676 list of the form [<name of file>,<size of file in blocks>,...] where
677 ... are the things saved. Warnings are printed out in the case of
678 large files. FASSAVE may be used while a WRITEFILE is in progress.
682 @node OPTIMIZATION, Definitions for Function Definition, MACROS, Function Definition
683 @section OPTIMIZATION
685 The optimu files no longer exist in Maxima. The documentation is left
686 here for historical purposes.
688 When using TRANSLATE and generating code with MACSYMA,
689 there are a number of techniques which can save time and be helpful.
690 Do DEMO("optimu.dem") for a demonstration. In particular, the
691 function FLOATDEFUNK from TRANSL;OPTIMU FASL, creates a function
692 definition from a math-like expression, but it optimizes it (with
693 OPTIMIZE) and puts in the MODE_DECLAREations needed to COMPILE
694 correctly. (This can be done by hand, of course). The demo will only
695 run in a fresh macsyma.
698 @c @unnumberedsec phony
699 @defun ODE (equation,y,x)
700 This no longer exists in Maxima. The documentation is left here for
703 a pot-pourri of Ordinary Differential solvers
704 combined in such a way as to attempt more and more difficult methods
705 as each fails. For example, the first attempt is with ODE2, so
706 therefore, a user using ODE can assume he has all the capabilities of
707 ODE2 at the very beginning and if he has been using ODE2 in programs
708 they will still run if he substitutes ODE (the returned values, and
709 calling sequence are identical).
710 In addition, ODE has a number of user features which can assist an
711 experienced ODE solver if the basic system cannot handle the equation.
712 The equation is of the same form as required for ODE2 (which see) and
713 the y and x are dependent and independent variables, as with ODE2.
714 For more details, do PRINTFILE(ODE,USAGE,SHARE); .
718 @c @unnumberedsec phony
720 - This is no longer available in Maxima. See ALLROOTS for a function
721 to compute the roots of a polynomial.
724 @c @unnumberedsec phony
726 This is not available with Maxima anymore. Documentation is left for
729 - For those who can make use of approximate numerical
730 solutions to problems, there is a package which calls a routine which
731 has been translated from the IMSL fortran library to solve N
732 simultaneous non-linear equations in N unknowns. It uses black-box
733 techniques that probably aren't desirable if an exact solution can be
734 obtained from one of the smarter solvers (LINSOLVE, ALGSYS, etc). But
735 for things that the other solvers don't attempt to handle, this can
736 probably give some very useful results. For documentation, do
737 PRINTFILE("zsolve.usg");. For a demo do
742 The following is obsolete and does not exist in Maxima 5.9. We leave
743 the documentation here for historical purposes.
745 To make an interface to fortran
746 libraries in the current Maxima look at the examples in
747 "maxima/src/fortdef.lsp"
748 - The IMSL version of Romberg integration is now available in
749 Maxima. For documentation, Do PRINTFILE(DCADRE,USAGE,IMSL1); . For
750 a demo, do batch("dcadre.mc");
751 This is a numerical integration package using cautious, adaptive
752 Romberg extrapolation.
753 The DCADRE package is written to call the IMSL fortran library routine
754 DCADRE. This is documentation for that program. Send bugs/comments to
756 To load this package, do
760 For a demo of this package, do
764 The worker function takes the following syntax:
765 IMSL_ROMBERG(fn,low,hi)
766 where fn is a function of 1 argument; low and hi should be the lower and
767 upper bounds of integration. fn must return floating point values.
768 IMSL_ROMBERG(exp,var,low,hi)
769 where exp should be integrated over the range var=low to hi. The result
770 of evaluating exp must always be a floating point number.
771 FAST_IMSL_ROMBERG(fn,low,hi)
772 This function does no error checking but may achieve a speed gain over
773 the IMSL_ROMBERG function. It expects that fn is a Lisp function (or
774 translated Maxima function) which accepts a floating point argument
775 and that it always returns a floating point value.
778 [SUCCESS, answer, error] where answer is the result of the integration and
779 error is the estimated bound on the absolute error of the output, DCADRE,
780 as described in PURPOSE below.
782 [WARNING, n, answer, error] where n is a warning code, answer is the answer,
783 and error is the estimated bound on the absolute error of the output, DCADRE,
784 as described in PURPOSE below. The following warnings may occur:
785 65 = One or more singularities were successfully handled.
786 66 = In some subinterval(s), the estimate of the integral was accepted
787 merely because the estimated error was small, even though no regular
788 behavior was recognized.
790 [ERROR, errorcode] where error code is the IMSL-generated
791 error code. The following error codes may occur:
792 131 = Failure due to insufficient internal working storage.
793 132 = Failure. This may be due to too much noise in function
794 (relative to the given error requirements) or due to an
795 ill-behaved integrand.
796 133 = RERR is greater than 0.1 or less than 0.0 or is too small
797 for the precision of the machine.
799 The following flags have an influence upon the operation of IMSL_ROMBERG --
801 ROMBERG_AERR [Default 1.0E-5] -- Desired absolute error in answer.
803 ROMBERG_RERR [Default 0.0] -- Desired relative error in the answer.
805 Note: If IMSL signals an error, a message will be printed on the user's
806 console stating the nature of the error. (This error message
807 may be supressed by setting IMSLVERBOSE to FALSE.)
809 Note: Because this uses a translated Fortran routine, it may not be
810 recursively invoked. It does not call itself, but the user should
811 be aware that he may not type ^A in the middle of an IMSL_ROMBERG
812 computation, begin another calculation using the same package,
813 and expect to win -- IMSL_ROMBERG will complain if it was already
814 doing one project when you invoke it. This should cause minimal
817 Purpose (modified version of the IMSL documentation)
818 ----------------------------------------------------
820 DCADRE attempts to solve the following problem: Given a real-valued
821 function F of one argument, two real numbers A and B, find a number
828 | I F(x)dx - DCADRE | <= max [ ROMBERG_AERR, ROMBERG_RERR * | I F(x)dx | ]
832 Algorithm (modified version of the IMSL documentation)
834 This routine uses a scheme whereby DCADRE is computed as the sum of
835 estimates for the integral of F(x) over suitably chosen subintervals of
836 the given interval of integration. Starting with the interval of
837 integration itself as the first such subinterval, cautious Romberg
838 extrapolation is used to find an acceptable estimate on a given
839 subinterval. If this attempt fails, the subinterval is divided into two
840 subintervals of equal length, each of which is considered separately.
841 Programming Notes (modified version of the IMSL documentation)
845 1. DCADRE (the translated-Fortran base for IMSL_ROMBERG) can, in many cases,
846 handle jump discontinuities and certain algebraic discontinuities. See
847 reference for full details.
849 2. The relative error parameter ROMBERG_RERR must be in the interval [0.0,0.1].
850 For example, ROMBERG_RERR=0.1 indicates that the estimate of the intergral
851 is to be correct to one digit, where as ROMBERG_RERR=1.0E-4 calls for four
852 digits of accuracy. If DCADRE determines that the relative accuracy
853 requirement cannot be satisfied, IER is set to 133 (ROMBERG_RERR should be
854 large enough that, when added to 100.0, the result is a number greater than
855 100.0 (this will not be true of very tiny floating point numbers due to
856 the nature of machine arithmetic)).
858 3. The absolute error parameter, ROMBERG_AERR, should be nonnegative. In
859 order to give a reasonable value for ROMBERG_AERR, the user must know
860 the approximate magnitude of the integral being computed. In many cases,
861 it is satisfactory to use AERR=0.0. In this case, only the relative error
862 requirement is satisfied in the compuatation.
864 4. We quote from the reference, ``A very cautious man would accept DCADRE
865 only if IER [the warning or error code] is 0 or 65. The merely reasonable
866 man would keep the faith even if IER is 66. The adventurous man is quite
867 often right in accepting DCADRE even if the IER is 131 or 132.'' Even when
868 IER is not 0, DCADRE returns the best estimate that has been computed.
871 For references on this technique, see
872 de Boor, Calr, ``CADRE: An Algorithm for Numerical Quadrature,''
873 Mathematical Software (John R. Rice, Ed.), New York, Academic Press,
877 - A Dirac gamma matrix algebra program which takes traces of
878 and does manipulations on gamma matrices in n dimensions. It may be
879 loaded into Maxima by
881 A preliminary manual is contained in the file SHARE;GAM USAGE and may
883 PRINTFILE(GAM,USAGE,SHARE);