Go to the first, previous, next, last section, table of contents.
The primary on-line help function is describe
,
which is typically invoked by the question mark ?
at the interactive prompt.
? foo
(with a space between ?
and foo
)
is equivalent to describe ("foo")
, where foo
is the name or part of the name of a function or topic;
describe
then finds all documented items which contain the string
foo
in their titles.
If there is more than one such item, Maxima asks the user to select
an item or items to display.
(%i1) ? integ 0: (maxima.info)Introduction to Elliptic Functions and Integrals. 1: Definitions for Elliptic Integrals. 2: Integration. 3: Introduction to Integration. 4: Definitions for Integration. 5: askinteger :Definitions for Simplification. 6: integerp :Definitions for Miscellaneous Options. 7: integrate :Definitions for Integration. 8: integrate_use_rootsof :Definitions for Integration. 9: integration_constant_counter :Definitions for Integration. Enter space-separated numbers, `all' or `none': 7 8 Info from file /use/local/maxima/doc/info/maxima.info: - Function: integrate (expr, var) - Function: integrate (expr, var, a, b) Attempts to symbolically compute the integral of `expr' with respect to `var'. `integrate (expr, var)' is an indefinite integral, while `integrate (expr, var, a, b)' is a definite integral, [...]
In this example, items 7 and 8 were selected.
All or none of the items could have been selected by entering all
or none
,
which can be abbreviated a
or n
, respectively.
Maxima is written in Lisp, and it is easy to access Lisp functions and variables
from Maxima and vice versa.
Lisp and Maxima symbols are distinguished by a naming convention.
A Lisp symbol which begins with a dollar sign $
corresponds to
a Maxima symbol without the dollar sign.
A Maxima symbol which begins with a question mark ?
corresponds to
a Lisp symbol without the question mark.
For example, the Maxima symbol foo
corresponds to the Lisp symbol $foo
,
while the Maxima symbol ?foo
corresponds to the Lisp symbol foo
,
Note that ?foo
is written without a space between ?
and foo
;
otherwise it might be mistaken for describe ("foo")
.
Hyphen -
, asterisk *
, or other special characters in Lisp symbols
must be escaped by backslash \
where they appear in Maxima code.
For example, the Lisp identifier *foo-bar*
is written ?\*foo\-bar\*
in Maxima.
Lisp code may be executed from within a Maxima session.
A single line of Lisp (containing one or more forms) may be executed
by the special command :lisp
. For example,
(%i1) :lisp (foo $x $y)
calls the Lisp function foo
with Maxima variables x
and y
as arguments.
The :lisp
construct can appear at the interactive prompt
or in a file processed by batch
or demo
, but not in a file processed by
load
, batchload
, translate_file
, or compile_file
.
The function to_lisp()
opens an interactive Lisp session.
Entering (to-maxima)
closes the Lisp session and returns to Maxima.
Lisp functions and variables which are to be visible in Maxima as
functions and variables with ordinary names (no special punctuation)
must have Lisp names beginning with the dollar sign $
.
Maxima is case-sensitive, distinguishing between lowercase and uppercase letters in identifiers, while Lisp is not. There are some rules governing the translation of names between Lisp and Maxima.
$foo
, $FOO
, and $Foo
all correspond to Maxima foo
.
|$FOO|
and |$foo|
correspond to Maxima foo
and FOO
, respectively.
|$Foo|
corresponds to Maxima Foo
.
The #$
Lisp macro allows the use of Maxima expressions in Lisp code.
#$expr$
expands to a Lisp expression equivalent to the Maxima expression expr.
(msetq $foo #$[x, y]$)
This has the same effect as entering
(%i1) foo: [x, y];
The Lisp function displa
prints an expression in Maxima format.
(%i1) :lisp #$[x, y, z]$ ((MLIST SIMP) $X $Y $Z) (%i1) :lisp (displa '((MLIST SIMP) $X $Y $Z)) [x, y, z] NIL
Functions defined in Maxima are not ordinary Lisp functions.
The Lisp function mfuncall
calls a Maxima function.
For example:
(%i1) foo(x,y) := x*y$ (%i2) :lisp (mfuncall '$foo 'a 'b) ((MTIMES SIMP) A B)
Some Lisp functions are shadowed in the Maxima package, namely the following.
complement
,
continue
,
//
,
float
,
functionp
,
array
,
exp
,
listen
,
signum
,
atan
,
asin
,
acos
,
asinh
,
acosh
,
atanh
,
tanh
,
cosh
,
sinh
,
tan
,
break
,
and gcd
.
Symbolic computation tends to create a good deal of garbage, and effective handling of this can be crucial to successful completion of some programs.
Under GCL, on UNIX systems where the mprotect system call is available (including SUN OS 4.0 and some variants of BSD) a stratified garbage collection is available. This limits the collection to pages which have been recently written to. See the GCL documentation under ALLOCATE and GBC. At the Lisp level doing (setq si::*notify-gbc* t) will help you determine which areas might need more space.
The Maxima on-line user's manual can be viewed in different forms.
From the Maxima interactive prompt, the user's manual
is viewed as plain text by the ?
command (i.e., the describe
function).
The user's manual is viewed as info
hypertext by the info
viewer program
and as a web page by any ordinary web browser.
example
displays examples for many Maxima functions.
For example,
(%i1) example (integrate);
yields
(%i2) test(f):=block([u],u:integrate(f,x),ratsimp(f-diff(u,x))) (%o2) test(f) := block([u], u : integrate(f, x), ratsimp(f - diff(u, x))) (%i3) test(sin(x)) (%o3) 0 (%i4) test(1/(x+1)) (%o4) 0 (%i5) test(1/(x^2+1)) (%o5) 0
and additional output.
demo
pauses after evaluating each expression
and continues after the user enters a carriage return.
(If running in Xmaxima, demo
may need to see a semicolon ;
followed by a carriage return.)
demo
searches the list of directories
file_search_demo
to find filename
.
If the file has the suffix dem
,
the suffix may be omitted.
See also file_search
.
demo
evaluates its argument.
demo
returns the name of the demonstration file.
Example:
(%i1) demo ("disol"); batching /home/wfs/maxima/share/simplification/disol.dem At the _ prompt, type ';' followed by enter to get next demo (%i2) load(disol) _ (%i3) exp1 : a (e (g + f) + b (d + c)) (%o3) a (e (g + f) + b (d + c)) _ (%i4) disolate(exp1, a, b, e) (%t4) d + c (%t5) g + f (%o5) a (%t5 e + %t4 b) _ (%i5) demo ("rncomb"); batching /home/wfs/maxima/share/simplification/rncomb.dem At the _ prompt, type ';' followed by enter to get next demo (%i6) load(rncomb) _ z x (%i7) exp1 : ----- + --------- y + x 2 (y + x) z x (%o7) ----- + --------- y + x 2 (y + x) _ (%i8) combine(exp1) z x (%o8) ----- + --------- y + x 2 (y + x) _ (%i9) rncombine(%) 2 z + x (%o9) --------- 2 (y + x) _ d c b a (%i10) exp2 : - + - + - + - 3 3 2 2 d c b a (%o10) - + - + - + - 3 3 2 2 _ (%i11) combine(exp2) 2 d + 2 c + 3 (b + a) (%o11) --------------------- 6 _ (%i12) rncombine(exp2) 2 d + 2 c + 3 b + 3 a (%o12) --------------------- 6 _ (%i13)
? foo
(with a space between ?
and foo
)
is equivalent to describe ("foo")
.
describe ("")
yields a list of all topics documented in the on-line manual.
describe
quotes its argument. describe
always returns false
.
Example:
(%i1) ? integ 0: (maxima.info)Introduction to Elliptic Functions and Integrals. 1: Definitions for Elliptic Integrals. 2: Integration. 3: Introduction to Integration. 4: Definitions for Integration. 5: askinteger :Definitions for Simplification. 6: integerp :Definitions for Miscellaneous Options. 7: integrate :Definitions for Integration. 8: integrate_use_rootsof :Definitions for Integration. 9: integration_constant_counter :Definitions for Integration. Enter space-separated numbers, `all' or `none': 7 8 Info from file /use/local/maxima/doc/info/maxima.info: - Function: integrate (expr, var) - Function: integrate (expr, var, a, b) Attempts to symbolically compute the integral of `expr' with respect to `var'. `integrate (expr, var)' is an indefinite integral, while `integrate (expr, var, a, b)' is a definite integral, [...]
In this example, items 7 and 8 were selected.
All or none of the items could have been selected by entering all
or none
,
which can be abbreviated a
or n
, respectively.
see section Introduction to Help
example (topic)
displays some examples of topic,
which is a symbol (not a string).
Most topics are function names.
example ()
returns the list of all recognized topics.
The name of the file containing the examples is given by the
global variable manual_demo
, which defaults to "manual.demo"
.
example
quotes its argument.
example
returns done
unless there is an error or there is no argument, in which case example
returns the list of all recognized topics.
Examples:
(%i1) example (append); (%i2) append([x+y,0,-3.2],[2.5E+20,x]) (%o2) [y + x, 0, - 3.2, 2.5E+20, x] (%o2) done (%i3) example (coeff); (%i4) coeff(b+tan(x)+2*a*tan(x) = 3+5*tan(x),tan(x)) (%o4) 2 a + 1 = 5 (%i5) coeff(1+x*%e^x+y,x,0) (%o5) y + 1 (%o5) done
Go to the first, previous, next, last section, table of contents.