11.2. - fn
, f
O#
run a user function
User functions provide a general purpose interface to read in data, generate new data or modify current data. With user functions, you also can control many of the features of the plot, including values of the axis ranges and the text used for plot labels.
In the simplest case, you give the program the name of a function and its type, and the program leads you through the creation, editing and compiling of the function.
fn fn name.# [start finish intervals] fn name.#.c fn . fn c fn e fn k fn ? f1 (same options) or f# (same options)With no arguments, these commands prompt you for the function type and the function name. If the function is not found using the search rules described above, you are asked if you wish C-PLOT to create a new prototype. If the prototype already exists, but not in an executable version, you are asked if you wish to edit the prototype.
If the executable version exists, but the date of the prototype is more recent than the executable, you are asked if you wish to recompile the prototype. Otherwise, the executable version is run.
If, when the user function returns, it is found to be not compatible with the current version of C-PLOT, you will be informed. You should then recompile the prototype.
If you wish to first edit an existing function, specify the name with the
.c
extension and the program will invoke the editor.
If you already have a function running, typing
fn .
will return
you to it.
The program will automatically start up the editor for
the current function if you type
fn e
.
If you type
fn c
the program will automatically recompile the current function.
If a function dies unnaturally on receipt of a signal (floating point exception, segmentation violation, etc.), C-PLOT will print a message informing you of that fact along with the number of the signal.
Type 1 and 2 functions require a range on which to calculate the data. If you don't enter the starting value, finishing value and number of intervals on the command line, you will be asked for them. Note that the number of points generated is one more than the number of intervals. For type 1 functions, the range is in the independent variable, x. For type 2 functions, the range is for the parametric variable, t. In either case, if you specify a negative number for the number of intervals, the spacing of the points over the range will be logarithmic.
When type 1, 2 and 3 functions are executing, typing a
^C
will
cause each point to be printed out.
Typing a second
^C
will
cause an immediate return from the function.
A single
^C
makes
a type 4 function return immediately.
When you type
fn
name.#
,
the function starts executing from
scratch.
C-PLOT lets you keep eight functions going independently. The
fn
command is synonymous with
f1
. The
f2
command refers to the second function.
The
f3
command
refers to the third function, etc., up to
f8
. Typing
fn k
kills the current function process.
The
?
option displays the function number, process
ID
number and name of each active user function.
See Appendix E for more information on writing type 1 through 4 functions. For examples of user functions, see the source code for C-PLOT's standard included functions in
$CPLOTHOME
/functions .
Type 5 functions, the nonlinear least-squares fits, are described in detail in Chapter 12.