Package org.mariuszgromada.math.mxparser
Class Expression
java.lang.Object
org.mariuszgromada.math.mxparser.PrimitiveElement
org.mariuszgromada.math.mxparser.Expression
Expression - base class for real expressions definition.
Examples:
- '1+2'
- 'sin(x)+1'
- 'asin(3*x)^10-log(4,8)'
- in general 'f(x1,x2,...,xn)' where x1,...,xn are real arguments
Class provides easy way to define multivariate arithmetic expression.
- Version:
- 4.4.0
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final boolean
Status of the Expression syntaxstatic final boolean
static final String
static final int
Expression type id -
Constructor Summary
ConstructorsConstructorDescriptionExpression
(String expressionString, PrimitiveElement... elements) Constructor - creates new expression from expression string.Expression
(PrimitiveElement... elements) Default constructor - empty expression -
Method Summary
Modifier and TypeMethodDescriptionvoid
addArguments
(Argument... arguments) Adds arguments (variadic) to the expression definition.void
addConstants
(List<Constant> constantsList) Adds constants to the expression definition.void
addConstants
(Constant... constants) Adds constants (variadic parameters) to the expression definition.void
addDefinitions
(PrimitiveElement... elements) Adds user defined elements (such as: Arguments, Constants, Functions) to the expressions.void
addFunctions
(Function... functions) Adds functions (variadic parameters) to the expression definition.double
Calculates the expression valueboolean
Checks syntax of the expression string.boolean
Checks syntax of the expression string.void
Clears expression descriptionvoid
Clears expression stringprotected Expression
clone()
Expression cloning.void
defineArgument
(String argumentName, double argumentValue) Enables to define the argument (associated with the expression) based on the argument name and the argument value.void
defineArguments
(String... argumentsNames) Enables to define the arguments (associated with the expression) based on the given arguments names.void
defineConstant
(String constantName, double constantValue) Enables to define the constant (associated with the expression) based on the constant name and constant value.void
defineFunction
(String functionName, String functionExpressionString, String... argumentsNames) Enables to define the function (associated with the expression) based on the function name, function expression string and arguments names (variadic parameters).getArgument
(int argumentIndex) Gets argument from the expression.getArgument
(String argumentName) Gets argument from the expression.int
getArgumentIndex
(String argumentName) Gets argument index from the expression.int
Gets number of arguments associated with the expression.double
getArgumentValue
(String argumentName) Gets argument vale.double
Gets computing time.getConstant
(int constantIndex) Gets constant associated with the expression.getConstant
(String constantName) Gets constant associated with the expression.int
getConstantIndex
(String constantName) Gets constant index associated with the expression.int
Gets number of constants associated with the expression.Tokenizes expression string and returns tokens list, including: string, type, level.Gets expression description.Method return error message after calling checkSyntax() method or calculate().Returns expression stringgetFunction
(int functionIndex) Gets function associated with the expression.getFunction
(String functionName) Gets function associated with the expression.int
getFunctionIndex
(String functionName) Gets index of function associated with the expression.int
Gets number of functions associated with the expression.getHelp()
Gets help content.Searching help content.Returns list of key words known to the parsergetKeyWords
(String query) Returns list of key words known to the parserString[]
Returns missing user defined arguments names, i.e.String[]
Returns missing user defined functions names, i.e.String[]
Returns missing user defined units names, i.e. 2*[w] + [q] where [w] and [q] are not defined function will return [w] and [q].boolean
Gets recursive mode statusboolean
Gets syntax status of the expression.boolean
Returns verbose mode status.void
Removes all arguments associated with the expression.void
Removes all constants associated with the expressionvoid
Removes all functions associated with the expression.void
removeArguments
(String... argumentsNames) Removes first occurrences of the arguments associated with the expression.void
removeArguments
(Argument... arguments) Removes first occurrences of the arguments associated with the expression.void
removeConstants
(String... constantsNames) Removes first occurrences of the constants associated with the expression.void
removeConstants
(Constant... constants) Removes first occurrences of the constants associated with the expressionvoid
removeDefinitions
(PrimitiveElement... elements) Removes user defined elements (such as: Arguments, Constants, Functions) to the expressions.void
removeFunctions
(String... functionsNames) Removes first occurrences of the functions associated with the expression.void
removeFunctions
(Function... functions) Removes first occurrences of the functions associated with the expression.void
setArgumentValue
(String argumentName, double argumentValue) Sets argument value.void
setDescription
(String description) Sets expression description.void
setExpressionString
(String expressionString) Sets (modifies expression) expression string.void
Disables verbose mode (default silent mode).void
Enables verbose mode.Methods inherited from class org.mariuszgromada.math.mxparser.PrimitiveElement
getMyTypeId
-
Field Details
-
TYPE_ID
public static final int TYPE_IDExpression type id- See Also:
-
TYPE_DESC
- See Also:
-
NO_SYNTAX_ERRORS
public static final boolean NO_SYNTAX_ERRORSStatus of the Expression syntax- See Also:
-
SYNTAX_ERROR_OR_STATUS_UNKNOWN
public static final boolean SYNTAX_ERROR_OR_STATUS_UNKNOWN- See Also:
-
-
Constructor Details
-
Expression
Default constructor - empty expression- Parameters:
elements
- Optional elements list (variadic - comma separated) of types: Argument, Constant, Function- See Also:
-
Expression
Constructor - creates new expression from expression string.- Parameters:
expressionString
- definition of the expressionelements
- Optional elements list (variadic - comma separated) of types: Argument, Constant, Function- See Also:
-
-
Method Details
-
getErrorMessage
Method return error message after calling checkSyntax() method or calculate().- Returns:
- Error message as string.
-
getSyntaxStatus
public boolean getSyntaxStatus()Gets syntax status of the expression.- Returns:
- true if there are no syntax errors, false when syntax error was found or syntax status is unknown
-
setExpressionString
Sets (modifies expression) expression string.- Parameters:
expressionString
- the expression string
-
getExpressionString
Returns expression string- Returns:
- Expression string definition.
-
clearExpressionString
public void clearExpressionString()Clears expression string -
setDescription
Sets expression description.- Parameters:
description
- the description string
-
getDescription
Gets expression description.- Returns:
- String description.
-
clearDescription
public void clearDescription()Clears expression description -
setVerboseMode
public void setVerboseMode()Enables verbose mode. -
setSilentMode
public void setSilentMode()Disables verbose mode (default silent mode). -
getVerboseMode
public boolean getVerboseMode()Returns verbose mode status.- Returns:
- true if verbose mode is on, otherwise returns false.
-
getRecursiveMode
public boolean getRecursiveMode()Gets recursive mode status- Returns:
- true if recursive mode is enabled, otherwise returns false.
-
getComputingTime
public double getComputingTime()Gets computing time.- Returns:
- computing time in seconds.
-
addDefinitions
Adds user defined elements (such as: Arguments, Constants, Functions) to the expressions.- Parameters:
elements
- Elements list (variadic), where Argument, Constant, Function extend the same class PrimitiveElement- See Also:
-
removeDefinitions
Removes user defined elements (such as: Arguments, Constants, Functions) to the expressions.- Parameters:
elements
- Elements list (variadic), where Argument, Constant, Function extend the same class PrimitiveElement- See Also:
-
addArguments
Adds arguments (variadic) to the expression definition.- Parameters:
arguments
- the arguments list (comma separated list)- See Also:
-
defineArguments
Enables to define the arguments (associated with the expression) based on the given arguments names.- Parameters:
argumentsNames
- the arguments names (variadic) comma separated list- See Also:
-
defineArgument
Enables to define the argument (associated with the expression) based on the argument name and the argument value.- Parameters:
argumentName
- the argument nameargumentValue
- the the argument value- See Also:
-
getArgumentIndex
Gets argument index from the expression.- Parameters:
argumentName
- the argument name- Returns:
- The argument index if the argument name was found, otherwise returns Argument.NOT_FOUND
- See Also:
-
getArgument
Gets argument from the expression.- Parameters:
argumentName
- the argument name- Returns:
- The argument if the argument name was found, otherwise returns null.
- See Also:
-
getArgument
Gets argument from the expression.- Parameters:
argumentIndex
- the argument index- Returns:
- Argument if the argument index is between 0 and the last available argument index (getArgumentsNumber()-1), otherwise returns null.
- See Also:
-
getArgumentsNumber
public int getArgumentsNumber()Gets number of arguments associated with the expression.- Returns:
- The number of arguments (int >= 0)
- See Also:
-
setArgumentValue
Sets argument value.- Parameters:
argumentName
- the argument nameargumentValue
- the argument value
-
getArgumentValue
Gets argument vale.- Parameters:
argumentName
- the argument name- Returns:
- Argument value if argument name was found, otherwise return Double.NaN.
-
removeArguments
Removes first occurrences of the arguments associated with the expression.- Parameters:
argumentsNames
- the arguments names (variadic parameters) comma separated list- See Also:
-
removeArguments
Removes first occurrences of the arguments associated with the expression.- Parameters:
arguments
- the arguments (variadic parameters) comma separated list- See Also:
-
removeAllArguments
public void removeAllArguments()Removes all arguments associated with the expression.- See Also:
-
addConstants
Adds constants (variadic parameters) to the expression definition.- Parameters:
constants
- the constants (comma separated list)- See Also:
-
addConstants
Adds constants to the expression definition.- Parameters:
constantsList
- the list of constants- See Also:
-
defineConstant
Enables to define the constant (associated with the expression) based on the constant name and constant value.- Parameters:
constantName
- the constant nameconstantValue
- the constant value- See Also:
-
getConstantIndex
Gets constant index associated with the expression.- Parameters:
constantName
- the constant name- Returns:
- Constant index if constant name was found, otherwise return Constant.NOT_FOUND.
- See Also:
-
getConstant
Gets constant associated with the expression.- Parameters:
constantName
- the constant name- Returns:
- Constant if constant name was found, otherwise return null.
- See Also:
-
getConstant
Gets constant associated with the expression.- Parameters:
constantIndex
- the constant index- Returns:
- Constant if the constantIndex is between 0 and the last available constant index (getConstantsNumber() - 1), otherwise it returns null.
- See Also:
-
getConstantsNumber
public int getConstantsNumber()Gets number of constants associated with the expression.- Returns:
- number of constants (int >= 0)
- See Also:
-
removeConstants
Removes first occurrences of the constants associated with the expression.- Parameters:
constantsNames
- the constants names (variadic parameters) comma separated list- See Also:
-
removeConstants
Removes first occurrences of the constants associated with the expression- Parameters:
constants
- the constants (variadic parameters) comma separated list- See Also:
-
removeAllConstants
public void removeAllConstants()Removes all constants associated with the expression- See Also:
-
addFunctions
Adds functions (variadic parameters) to the expression definition.- Parameters:
functions
- the functions (variadic parameters) comma separated list- See Also:
-
defineFunction
public void defineFunction(String functionName, String functionExpressionString, String... argumentsNames) Enables to define the function (associated with the expression) based on the function name, function expression string and arguments names (variadic parameters).- Parameters:
functionName
- the function namefunctionExpressionString
- the expression stringargumentsNames
- the function arguments names (variadic parameters) comma separated list- See Also:
-
getFunctionIndex
Gets index of function associated with the expression.- Parameters:
functionName
- the function name- Returns:
- Function index if function name was found, otherwise returns Function.NOT_FOUND
- See Also:
-
getFunction
Gets function associated with the expression.- Parameters:
functionName
- the function name- Returns:
- Function if function name was found, otherwise returns null.
- See Also:
-
getFunction
Gets function associated with the expression.- Parameters:
functionIndex
- the function index- Returns:
- Function if function index is between 0 and the last available function index (getFunctionsNumber()-1), otherwise returns null.
- See Also:
-
getFunctionsNumber
public int getFunctionsNumber()Gets number of functions associated with the expression.- Returns:
- number of functions (int >= 0)
- See Also:
-
removeFunctions
Removes first occurrences of the functions associated with the expression.- Parameters:
functionsNames
- the functions names (variadic parameters) comma separated list- See Also:
-
removeFunctions
Removes first occurrences of the functions associated with the expression.- Parameters:
functions
- the functions (variadic parameters) comma separated list.- See Also:
-
removeAllFunctions
public void removeAllFunctions()Removes all functions associated with the expression.- See Also:
-
checkLexSyntax
public boolean checkLexSyntax()Checks syntax of the expression string.- Returns:
- true if syntax is ok
-
checkSyntax
public boolean checkSyntax()Checks syntax of the expression string.- Returns:
- true if syntax is ok
-
calculate
public double calculate()Calculates the expression value- Returns:
- The expression value if syntax was ok, otherwise returns Double.NaN.
-
getCopyOfInitialTokens
Tokenizes expression string and returns tokens list, including: string, type, level.- Returns:
- Copy of initial tokens.
- See Also:
-
getMissingUserDefinedArguments
Returns missing user defined arguments names, i.e. sin(x) + cos(y) where x and y are not defined function will return x and y.- Returns:
- Array of missing user defined arguments names - distinct strings.
-
getMissingUserDefinedUnits
Returns missing user defined units names, i.e. 2*[w] + [q] where [w] and [q] are not defined function will return [w] and [q].- Returns:
- Array of missing user defined units names - distinct strings.
-
getMissingUserDefinedFunctions
Returns missing user defined functions names, i.e. sin(x) + fun(x,y) where fun is not defined function will return fun.- Returns:
- Array of missing user defined functions names - distinct strings.
-
getHelp
Gets help content.- Returns:
- The help content.
-
getHelp
Searching help content.- Parameters:
word
- searching key word- Returns:
- The help content.
-
getKeyWords
Returns list of key words known to the parser- Returns:
- List of keywords known to the parser.
- See Also:
-
getKeyWords
Returns list of key words known to the parser- Parameters:
query
- Give any string to filter list of key words against this string. User more precise syntax: str=tokenString, desc=tokenDescription, syn=TokenSyntax, sin=tokenSince, wid=wordId, tid=wordTypeId to narrow the result.- Returns:
- List of keywords known to the parser filter against query string.
- See Also:
-
clone
Expression cloning.
-