|
MADNESS
version 0.9
|
Mathematical expressions parser. More...
#include <muParser.h>


Public Member Functions | |
| Parser () | |
| Constructor. More... | |
| virtual void | InitCharSets () |
| Define the character sets. More... | |
| virtual void | InitFun () |
| Initialize the default functions. More... | |
| virtual void | InitConst () |
| Initialize constants. More... | |
| virtual void | InitOprt () |
| Initialize operators. More... | |
| void | SetDecSep (char_type cDecSep) |
| Set the decimal separator. More... | |
| void | SetThousandsSep (char_type cThousandsSep) |
| Sets the thousands operator. More... | |
| value_type | Diff (value_type *a_Var, value_type a_fPos, value_type a_fEpsilon=0.00074) const |
| Numerically differentiate with regard to a variable. More... | |
Public Member Functions inherited from mu::ParserBase | |
| ParserBase () | |
| Constructor. More... | |
| ParserBase (const ParserBase &a_Parser) | |
| ParserBase & | operator= (const ParserBase &a_Parser) |
| Assignement operator. More... | |
| virtual | ~ParserBase () |
| value_type | Eval () const |
| Calculate the result. More... | |
| void | SetExpr (const string_type &a_sExpr) |
| Set the formula. More... | |
| void | SetVarFactory (facfun_type a_pFactory, void *pUserData=NULL) |
| void | EnableOptimizer (bool a_bIsOn=true) |
| Enable or disable the formula optimization feature. More... | |
| void | EnableByteCode (bool a_bIsOn=true) |
| Enable or disable parsing from Bytecode. More... | |
| void | EnableBuiltInOprt (bool a_bIsOn=true) |
| Enable or disable the built in binary operators. More... | |
| bool | HasBuiltInOprt () const |
| Query status of built in variables. More... | |
| void | AddValIdent (identfun_type a_pCallback) |
| void | DefineOprt (const string_type &a_strName, fun_type2 a_pFun, unsigned a_iPri=0, bool a_bAllowOpt=false) |
| Define a binary operator. More... | |
| void | DefineConst (const string_type &a_sName, value_type a_fVal) |
| Add a user defined constant. More... | |
| void | DefineStrConst (const string_type &a_sName, const string_type &a_strVal) |
| Define a new string constant. More... | |
| void | DefineVar (const string_type &a_sName, value_type *a_fVar) |
| Add a user defined variable. More... | |
| void | DefinePostfixOprt (const string_type &a_strFun, fun_type1 a_pOprt, bool a_bAllowOpt=true) |
| Add a user defined operator. More... | |
| void | DefineInfixOprt (const string_type &a_strName, fun_type1 a_pOprt, int a_iPrec=prINFIX, bool a_bAllowOpt=true) |
| Add a user defined operator. More... | |
| void | ClearVar () |
| Clear all user defined variables. More... | |
| void | ClearFun () |
| Clear all functions. More... | |
| void | ClearConst () |
| Clear all user defined constants. More... | |
| void | ClearInfixOprt () |
| Clear the user defined Prefix operators. More... | |
| void | ClearPostfixOprt () |
| Clear all user defined postfix operators. More... | |
| void | ClearOprt () |
| Clear all user defined binary operators. More... | |
| void | RemoveVar (const string_type &a_strVarName) |
| Remove a variable from internal storage. More... | |
| const varmap_type & | GetUsedVar () const |
| Return a map containing the used variables only. More... | |
| const varmap_type & | GetVar () const |
| Return a map containing the used variables only. More... | |
| const valmap_type & | GetConst () const |
| Return a map containing all parser constants. More... | |
| const string_type & | GetExpr () const |
| Retrieve the formula. More... | |
| const funmap_type & | GetFunDef () const |
| Return prototypes of all parser functions. More... | |
| const char_type ** | GetOprtDef () const |
| Get the default symbols used for the built in operators. More... | |
| void | DefineNameChars (const char_type *a_szCharset) |
| Define the set of valid characters to be used in names of functions, variables, constants. More... | |
| void | DefineOprtChars (const char_type *a_szCharset) |
| Define the set of valid characters to be used in names of binary operators and postfix operators. More... | |
| void | DefineInfixOprtChars (const char_type *a_szCharset) |
| Define the set of valid characters to be used in names of infix operators. More... | |
| const char_type * | ValidNameChars () const |
| Virtual function that defines the characters allowed in name identifiers. More... | |
| const char_type * | ValidOprtChars () const |
| Virtual function that defines the characters allowed in operator definitions. More... | |
| const char_type * | ValidInfixOprtChars () const |
| Virtual function that defines the characters allowed in infix operator definitions. More... | |
| void | SetArgSep (char_type cArgSep) |
| Set argument separator. More... | |
| char_type | GetArgSep () const |
| Get the argument separator character. More... | |
| void | Error (EErrorCodes a_iErrc, int a_iPos=(int) mu::string_type::npos, const string_type &a_strTok=string_type()) const |
| Create an error containing the parse error position. More... | |
Additional Inherited Members | |
Public Types inherited from mu::ParserBase | |
| typedef ParserError | exception_type |
| Type of the error class. More... | |
Protected Member Functions inherited from mu::ParserBase | |
| void | Init () |
| Initialize user defined functions. More... | |
Static Protected Attributes inherited from mu::ParserBase | |
| static const char_type * | c_DefaultOprt [] |
| Identifiers for built in binary operators. More... | |
Mathematical expressions parser.
Standard implementation of the mathematical expressions parser. Can be used as a reference implementation for subclassing the parser.
(C) 2004-2008 Ingo Berg
ingo_berg(at)gmx.de
| mu::Parser::Parser | ( | ) |
Constructor.
Call ParserBase class constructor and trigger Function, Operator and Constant initialization.
References mu::ParserBase::AddValIdent(), InitCharSets(), InitConst(), InitFun(), and InitOprt().
| value_type mu::Parser::Diff | ( | value_type * | a_Var, |
| value_type | a_fPos, | ||
| value_type | a_fEpsilon = 0.00074 |
||
| ) | const |
Numerically differentiate with regard to a variable.
| [in] | a_Var | Pointer to the differentiation variable. |
| [in] | a_fPos | Position at which the differentiation should take place. |
| [in] | a_fEpsilon | Epsilon used for the numerical differentiation. |
Numerical differentiation uses a 5 point operator yielding a 4th order formula. The default value for epsilon is 0.00074 which is numerical_limits<double>::epsilon() ^ (1/5) as suggested in the muparser forum:
http://sourceforge.net/forum/forum.php?thread_id=1994611&forum_id=462843
References mu::ParserBase::Eval(), and madness::f.
|
virtual |
Define the character sets.
This function is used for initializing the default character sets that define the characters to be useable in function and variable names and operators.
Implements mu::ParserBase.
References _T, mu::ParserBase::DefineInfixOprtChars(), mu::ParserBase::DefineNameChars(), and mu::ParserBase::DefineOprtChars().
Referenced by Parser().
|
virtual |
Initialize constants.
By default the parser recognizes two constants. Pi ("pi") and the eulerian number ("_e").
Implements mu::ParserBase.
References _T, mu::ParserBase::DefineConst(), PARSER_CONST_E, and PARSER_CONST_PI.
Referenced by Parser().
|
virtual |
|
virtual |
Initialize operators.
By default only the unary minus operator is added.
Implements mu::ParserBase.
References _T, and mu::ParserBase::DefineInfixOprt().
Referenced by Parser().
| void mu::Parser::SetDecSep | ( | char_type | cDecSep | ) |
Set the decimal separator.
| cDecSep | Decimal separator as a character value. |
By default muparser uses the "C" locale. The decimal separator of this locale is overwritten by the one provided here.
| void mu::Parser::SetThousandsSep | ( | char_type | cThousandsSep | ) |
Sets the thousands operator.
| cThousandsSep | The thousands separator as a character |
By default muparser uses the "C" locale. The thousands separator of this locale is overwritten by the one provided here.
1.8.8