The following is a list of the features currently supported by the parser library. The primary objective is to keep it as extensible as possible whilst ensuring a maximum parsing speed. Extending the parser is mostly based on allowing a user to add custom callbacks which require only an absolute minimum of code. For instance you need exactly 2 lines of code to add a new function. But extending the parser may not be necessary at all since it comes with a powerful default implementation. Here is the (incomplete) list of features:
(3m -> 0.003)
This section gives an overview on the default features supported by the parser. The default
implementation is defined in the class mu::Parser
located in the file
muParser.cpp. The DLL-version uses this class internally.
The following table gives an overview of the functions supported by the default implementation. It lists the function names, the number of arguments and a brief description.
Name Argc. Explanation sin
1 sine function cos
1 cosine function tan
1 tangens function asin
1 arcus sine function acos
1 arcus cosine function atan
1 arcus tangens function sinh
1 hyperbolic sine function cosh
1 hyperbolic cosine tanh
1 hyperbolic tangens function asinh
1 hyperbolic arcus sine function acosh
1 hyperbolic arcus tangens function atanh
1 hyperbolic arcur tangens function log2
1 logarithm to the base 2 log10
1 logarithm to the base 10 log
1 logarithm to the base 10 ln
1 logarithm to base e (2.71828...) exp
1 e raised to the power of x sqrt
1 square root of a value sign
1 sign function -1 if x<0; 1 if x>0 rint
1 round to nearest integer abs
1 absolute value if
3 if ... then ... else ... min
var. min of all arguments max
var. max of all arguments sum
var. sum of all arguments avg
var. mean value of all arguments
The following table lists the default binary operators supported by the parser.
*The assignment operator is special since it changes one of its arguments and can only by applied to variables.
Operator Meaning Priority =
assignement* -1 and
logical and 1 or
logical or 1 xor
logical xor 1 <=
less or equal 2 >=
greater or equal 2 !=
not equal 2 ==
equal 2 >
greater than 2 <
less than 2 +
addition 3 -
subtraction 3 *
multiplication 4 /
division 4 ^
raise x to the power of y 5