FUNCTION
Syntax
FUNCTION { { hints }, symbol, symbol|symbol list }
FUNCTION { { hints }, string, symbol, symbol|symbol list }
Implemented in iMath since version 2.2.0 or earlier (the second form exists since 2.2.4).
Explanation
Declare a user-defined function. In the first form, the second parameter is the name of the function and the the third parameter declares the arguments of the function and can be either a single symbol or a list of symbols. In the second form, the second parameter is an optional print name for the function. This makes it possible to define multiple functions that print with the same name. This is mostly useful if you want a function that takes a quantities as its argument.
The way that iMath treats this function can be influenced by function hints:
- none: No function hints. Must be used because iMath requires three arguments to the
FUNCTION
declaration. - lib: A library function. It will not be affected by
CLEAREQUATIONS
. This is useful for building up a collection of functions that can be used throughout the whole document. - trig: For trigonometric functions. Tells iMath that this function will get special treatment when printing (e.g. sin²x instead of (sinx)²) .
- expand: The function is to be expanded immediately. Useful for functions that are abbreviations, e.g.
square(x)
will be expanded tox^2
whenever it is used. - nobracket: The function does not require brackets around the argument (e.g.
sqrt(x)
is printed as <math>root x</math>). - defdiff: Differentiate the definition of the function, not the function itself (e.g.
sin(x)
will be differentiated tocos(x)
and not to(sin(x))'
.
Example
FUNCTION { {none}, f, x}
declares the function f
with one argument.
FUNCTION { {none}, "cos", rcos, x}
FUNCDEF rcos(x) = cos(x / %unity)
declares a variant of the cosine function that can handle arguments with the unit %unity
. Have a look at the FAQ entry "How can I have iMath print the unit %radian
?".