What is it all about?
muParser is an extensible high performance math expression parser library written in C++. It works by transforming a mathematical expression into bytecode and precalculating constant parts of the expression.
• Optimized for speed ◦High parsing performance ◦if-then-else operator with lazy evaluation ◦Compute multiple comma separated subexpressions in a single evaluation. (i.e. "sin(x), x+y, x*x") • User-defined operators ◦binary operators ◦postfix operators ◦infix operators • User-defined functions ◦with a fixed number of up to five arguments ◦with variable number of arguments ◦with a single string argument (for database queries) •User-defined constants. ◦numeric constants ◦string constants • User-defined variables. ◦unlimited in number ◦definable at parser runtime by the parser ◦assigning variables in terms of other variables is possible • Custom value recognition callbacks ◦support for binary and hex values. ◦can be used to implement database queries • Default implementaion with many features ◦25 predefined functions. ◦14 predefined operators. ◦Supports numerical differentiation with respect to a given variable. ◦Assignement operator is supported • Portability ◦Project / makefiles for MSVC, mingw, autoconf, bcc ◦ISO 14882 compliant code ◦DLL version usable from every language able to use function exported in C-style • Unit support ◦Use postfix operators as unit multipliers (3m -> 0.003) • Localization ◦Argument separator, decimal separator, thousands separator can be adjusted to your locale.