trace SciMax Toolbox tracematrix

SciMax Toolbox >> trace_options

trace_options

Maxima Function

Calling Sequence

trace_options (f, option_1, ..., option_n)
trace_options(f)

Description

Sets the trace options for function f. Any previous options are superseded. trace_options (f, ...) has no effect unless trace (f) is also called (either before or after trace_options).

trace_options (f) resets all options to their default values.

The option keywords are:

Trace options are specified in two forms. The presence of the option keyword alone puts the option into effect unconditionally. (Note that option foo is not put into effect by specifying foo: true or a similar form; note also that keywords need not be quoted.) Specifying the option keyword with a predicate function makes the option conditional on the predicate.

The argument list to the predicate function is always [level, direction, function, item] where level is the recursion level for the function, direction is either enter or exit, function is the name of the function, and item is the argument list (on entering) or the return value (on exiting).

Here is an example of unconditional trace options:

(%i1) ff(n) := if equal(n, 0) then 1 else n * ff(n - 1)$
(%i2) trace (ff)$
(%i3) trace_options (ff, lisp_print, break)$
(%i4) ff(3);

Here is the same function, with the break option conditional on a predicate:

(%i5) trace_options (ff, break(pp))$
(%i6) pp (level, direction, function, item) := block (print (item),
    return (function = 'ff and level = 3 and direction = exit))$
(%i7) ff(6);
trace SciMax Toolbox tracematrix