FUNCTION

From iMath
Revision as of 19:53, 27 June 2018 by Jrheinlaender (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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 to x^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 to cos(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?".

See also

FUNCDEF