Class Argument

Buy me a cup of coffee via donation

Did you find the software useful? Please consider donation

or support me purchasing the license via ORDER Page , or INFIMA online store


INFIMA online store
java.lang.Object
org.mariuszgromada.math.mxparser.PrimitiveElement
org.mariuszgromada.math.mxparser.Argument
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
RecursiveArgument

public class Argument extends PrimitiveElement implements Serializable
Argument class enables to declare the argument (variable) which can be used in further processing (in expressions, functions and dependent / recursive arguments).

For example:
  • 'x' - argument in expression 'sin(x)'
  • 'x' and 'y' - arguments in expression 'sin(x)+cos(y)'.
  • 'x=2*t' - dependent argument (dependent from 't') in expression 'cos(x)'

Using Argument class you can define two argument types:

  • free argument - when value of argument 'x' is directly given by a number (for example 'x=5')
  • dependent argument - when value of argument 'x' is given by expression (for example: 'x=2*a+b' - argument 'x' depends from argument/constant 'a' and argument/constant 'b' or any other possible option like function, etc...)

When creating an argument you should avoid names reserved as parser keywords, in general words known in mathematical language as function names, operators (for example: sin, cos, +, -, etc...). Please be informed that after associating the argument with the expression, function or dependent/recursive argument its name will be recognized by the parser as reserved key word. It means that it could not be the same as any other key word known by the parser for this particular expression. Parser is case-sensitive.

Version:
5.2.0
Author:
Mariusz Gromada
MathParser.org - mXparser project page
mXparser on GitHub
INFIMA place to purchase a commercial MathParser.org-mXparser software license
info@mathparser.org
ScalarMath.org - a powerful math engine and math scripting language
Scalar Lite
Scalar Pro
MathSpace.pl

Buy me a cup of coffee via donation

Did you find the software useful? Please consider donation

or support me purchasing the license via ORDER Page , or INFIMA online store


INFIMA online store
See Also:
  • Field Details

    • NO_SYNTAX_ERRORS

      public static final boolean NO_SYNTAX_ERRORS
      Status of the syntax - no syntax error
      See Also:
    • SYNTAX_ERROR

      public static final boolean SYNTAX_ERROR
      Status of the syntax - syntax error or syntax status unknown
      See Also:
    • SYNTAX_ERROR_OR_STATUS_UNKNOWN

      @Deprecated public static final boolean SYNTAX_ERROR_OR_STATUS_UNKNOWN
      Deprecated.
      Planned to be removed, use SYNTAX_ERROR instead
      Status of the syntax - syntax error or syntax status unknown
      See Also:
    • ARGUMENT_INITIAL_VALUE

      public static final double ARGUMENT_INITIAL_VALUE
      Double.NaN as initial value of the argument.
      See Also:
    • NOT_FOUND

      public static final int NOT_FOUND
      When argument was not found
      See Also:
    • FREE_ARGUMENT

      public static final int FREE_ARGUMENT
      Type indicator for free argument.
      See Also:
    • DEPENDENT_ARGUMENT

      public static final int DEPENDENT_ARGUMENT
      Type indicator for dependent argument.
      See Also:
    • RECURSIVE_ARGUMENT

      public static final int RECURSIVE_ARGUMENT
      Type indicator for recursive argument.
      See Also:
    • TYPE_ID

      public static final int TYPE_ID
      Argument type id for the definition of keywords known by the parser.
      See Also:
    • TYPE_DESC

      public static String TYPE_DESC
    • BODY_RUNTIME

      public static final int BODY_RUNTIME
      Argument with body based on the value or expression string.
      See Also:
    • BODY_EXTENDED

      public static final int BODY_EXTENDED
      Argument with body based on the extended code.
      See Also:
    • syntaxStatusDefinition

      protected boolean syntaxStatusDefinition
      Syntax status registered on argument definition: - constructor, set name, ...
    • n

      protected Argument n
      Index argument.
      See Also:
  • Constructor Details

    • Argument

      public Argument(String argumentDefinitionString, PrimitiveElement... elements)
      Default constructor - creates argument based on the argument definition string.
      Parameters:
      argumentDefinitionString - Argument definition string, i.e.:
      • 'x' - only argument name
      • 'x=5' - argument name and argument value
      • 'x=2*5' - argument name and argument value given as simple expression
      • 'x=2*y' - argument name and argument expression (dependent argument 'x' on argument 'y')
      elements - Optional parameters (comma separated) such as Arguments, Constants, Functions
    • Argument

      public Argument(String argumentDefinitionString, boolean forceDependent, PrimitiveElement... elements)
      Default constructor - creates argument based on the argument definition string.
      Parameters:
      argumentDefinitionString - Argument definition string, i.e.:
      • 'x' - only argument name
      • 'x=5' - argument name and argument value
      • 'x=2*5' - argument name and argument value given as simple expression
      • 'x=2*y' - argument name and argument expression (dependent argument 'x' on argument 'y')
      forceDependent - If true parser will try to create dependent argument
      elements - Optional parameters (comma separated) such as Arguments, Constants, Functions
    • Argument

      public Argument(String argumentName, double argumentValue)
      Constructor - creates free argument.
      Parameters:
      argumentName - the argument name
      argumentValue - the argument value
    • Argument

      public Argument(String argumentName, ArgumentExtension argumentExtension)
      Constructor for argument definition based on your own source code - this is via implementation of ArgumentExtension interface.
      Parameters:
      argumentName - Argument name
      argumentExtension - Your own source code
    • Argument

      public Argument(String argumentName, String argumentExpressionString, PrimitiveElement... elements)
      Constructor - creates dependent argument(with hidden argument expression).
      Parameters:
      argumentName - the argument name
      argumentExpressionString - the argument expression string
      elements - Optional parameters (comma separated) such as Arguments, Constants, Functions
      See Also:
  • Method Details

    • setDescription

      public void setDescription(String description)
      Sets argument description.
      Parameters:
      description - the argument description.
    • getDescription

      public String getDescription()
      Gets argument description.
      Returns:
      The argument description string.
    • setVerboseMode

      public void setVerboseMode()
      Enables argument verbose mode
    • setSilentMode

      public void setSilentMode()
      Disables argument verbose mode (sets 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 (RecursiveArgument), otherwise returns false
      See Also:
    • getComputingTime

      public double getComputingTime()
      Gets computing time
      Returns:
      Computing time in seconds.
    • setArgumentName

      public void setArgumentName(String argumentName)
      Sets (modifies) argument name. Each expression / function / dependent argument associated with this argument will be marked as modified (requires new syntax checking).
      Parameters:
      argumentName - the argument name
    • setArgumentExpressionString

      public void setArgumentExpressionString(String argumentExpressionString)
      Sets argument expression string. Each expression / function / dependent argument associated with this argument will be marked as modified (requires new syntax checking). If BODY_EXTENDED argument then BODY_RUNTIME is set.
      Parameters:
      argumentExpressionString - the argument expression string
      See Also:
    • getArgumentName

      public String getArgumentName()
      Gets argument name
      Returns:
      the argument name as string
    • getArgumentExpressionString

      public String getArgumentExpressionString()
      Gets argument expression string
      Returns:
      the argument expression string
    • getArgumentType

      public int getArgumentType()
      Gets argument type
      Returns:
      Argument type: Argument.FREE_ARGUMENT, Argument.DEPENDENT_ARGUMENT, Argument.RECURSIVE_ARGUMENT
    • setArgumentValue

      public void setArgumentValue(double argumentValue)
      Sets argument value, if DEPENDENT_ARGUMENT then argument type is set to FREE_ARGUMENT. If BODY_EXTENDED argument the BODY_RUNTIME argument is set.
      Parameters:
      argumentValue - the value of argument
    • getArgumentBodyType

      public int getArgumentBodyType()
      Returns argument body type: BODY_RUNTIME BODY_EXTENDED
      Returns:
      Returns argument body type: BODY_RUNTIME BODY_EXTENDED
    • checkSyntax

      public boolean checkSyntax()
      Checks argument syntax
      Returns:
      syntax status: Argument.NO_SYNTAX_ERRORS, Argument.SYNTAX_ERROR
    • getErrorMessage

      public String getErrorMessage()
      Returns error message after checking the syntax
      Returns:
      Error message as string.
    • getArgumentValue

      public double getArgumentValue()
      Gets argument value.
      Returns:
      direct argument value for free argument, otherwise returns calculated argument value based on the argument expression.
    • getArgumentValue

      public double getArgumentValue(CalcStepsRegister calcStepsRegister)
      Gets argument value and registers all the calculation steps
      Parameters:
      calcStepsRegister - A collection to store list of calculation steps, steps registered as strings.
      Returns:
      direct argument value for free argument, otherwise returns calculated argument value based on the argument expression.
    • addDefinitions

      public void addDefinitions(PrimitiveElement... elements)
      Adds user defined elements (such as: Arguments, Constants, Functions) to the argument expressions.
      Parameters:
      elements - Elements list (variadic - comma separated) of types: Argument, Constant, Function
      See Also:
    • removeDefinitions

      public void removeDefinitions(PrimitiveElement... elements)
      Removes user defined elements (such as: Arguments, Constants, Functions) from the argument expressions.
      Parameters:
      elements - Elements list (variadic - comma separated) of types: Argument, Constant, Function
      See Also:
    • addArguments

      public void addArguments(Argument... arguments)
      Adds arguments (variadic) to the argument expression definition.
      Parameters:
      arguments - the arguments list (comma separated list)
      See Also:
    • defineArguments

      public void defineArguments(String... argumentsNames)
      Enables to define the arguments (associated with the argument expression) based on the given arguments names.
      Parameters:
      argumentsNames - the arguments names (variadic) comma separated list
      See Also:
    • defineArgument

      public void defineArgument(String argumentName, double argumentValue)
      Enables to define the argument (associated with the argument expression) based on the argument name and the argument value.
      Parameters:
      argumentName - the argument name
      argumentValue - the argument value
      See Also:
    • getArgumentIndex

      public int getArgumentIndex(String argumentName)
      Gets argument index from the argument expression.
      Parameters:
      argumentName - the argument name
      Returns:
      The argument index if the argument name was found, otherwise returns Argument.NOT_FOUND
      See Also:
    • getArgument

      public Argument getArgument(String argumentName)
      Gets argument from the argument expression.
      Parameters:
      argumentName - the argument name
      Returns:
      The argument if the argument name was found, otherwise returns null.
      See Also:
    • getArgument

      public Argument getArgument(int argumentIndex)
      Gets argument from the argument 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 argument expression.
      Returns:
      The number of arguments (int >= 0)
      See Also:
    • removeArguments

      public void removeArguments(String... argumentsNames)
      Removes first occurrences of the arguments associated with the argument expression.
      Parameters:
      argumentsNames - the arguments names (variadic parameters) comma separated list
      See Also:
    • removeArguments

      public void removeArguments(Argument... arguments)
      Removes first occurrences of the arguments associated with the argument expression.
      Parameters:
      arguments - the arguments (variadic parameters) comma separated list
      See Also:
    • removeAllArguments

      public void removeAllArguments()
      Removes all arguments associated with the argument expression.
      See Also:
    • addConstants

      public void addConstants(Constant... constants)
      Adds constants (variadic parameters) to the argument expression definition.
      Parameters:
      constants - the constants (comma separated list)
      See Also:
    • addConstants

      public void addConstants(List<Constant> constantsList)
      Adds constants to the argument expression definition.
      Parameters:
      constantsList - the list of constants
      See Also:
    • defineConstant

      public void defineConstant(String constantName, double constantValue)
      Enables to define the constant (associated with the argument expression) based on the constant name and constant value.
      Parameters:
      constantName - the constant name
      constantValue - the constant value
      See Also:
    • getConstantIndex

      public int getConstantIndex(String constantName)
      Gets constant index associated with the argument expression.
      Parameters:
      constantName - the constant name
      Returns:
      Constant index if constant name was found, otherwise return Constant.NOT_FOUND.
      See Also:
    • getConstant

      public Constant getConstant(String constantName)
      Gets constant associated with the argument expression.
      Parameters:
      constantName - the constant name
      Returns:
      Constant if constant name was found, otherwise return null.
      See Also:
    • getConstant

      public Constant getConstant(int constantIndex)
      Gets constant associated with the argument 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 argument expression.
      Returns:
      number of constants (int >= 0)
      See Also:
    • removeConstants

      public void removeConstants(String... constantsNames)
      Removes first occurrences of the constants associated with the argument expression.
      Parameters:
      constantsNames - the constants names (variadic parameters) comma separated list
      See Also:
    • removeConstants

      public void removeConstants(Constant... constants)
      Removes first occurrences of the constants associated with the argument expression
      Parameters:
      constants - the constants (variadic parameters) comma separated list
      See Also:
    • removeAllConstants

      public void removeAllConstants()
      Removes all constants associated with the argument expression
      See Also:
    • addFunctions

      public void addFunctions(Function... functions)
      Adds functions (variadic parameters) to the argument 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 argument expression) based on the function name, function expression string and arguments names (variadic parameters).
      Parameters:
      functionName - the function name
      functionExpressionString - the expression string
      argumentsNames - the function arguments names (variadic parameters) comma separated list
      See Also:
    • getFunctionIndex

      public int getFunctionIndex(String functionName)
      Gets index of function associated with the argument expression.
      Parameters:
      functionName - the function name
      Returns:
      Function index if function name was found, otherwise returns Function.NOT_FOUND
      See Also:
    • getFunction

      public Function getFunction(String functionName)
      Gets function associated with the argument expression.
      Parameters:
      functionName - the function name
      Returns:
      Function if function name was found, otherwise returns null.
      See Also:
    • getFunction

      public Function getFunction(int functionIndex)
      Gets function associated with the argument 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 argument expression.
      Returns:
      number of functions (int >= 0)
      See Also:
    • removeFunctions

      public void removeFunctions(String... functionsNames)
      Removes first occurrences of the functions associated with the argument expression.
      Parameters:
      functionsNames - the functions names (variadic parameters) comma separated list
      See Also:
    • removeFunctions

      public void removeFunctions(Function... functions)
      Removes first occurrences of the functions associated with the argument expression.
      Parameters:
      functions - the functions (variadic parameters) comma separated list.
      See Also:
    • removeAllFunctions

      public void removeAllFunctions()
      Removes all functions associated with the argument expression.
      See Also:
    • clone

      public Argument clone()
      Creates cloned object of this argument.
      Overrides:
      clone in class Object
      Returns:
      clone of the argument.
    • cloneForThreadSafe

      public Argument cloneForThreadSafe()
      Creates a completely independent 1-1 clone that can be safely used by a separate thread. If the cloned element contains references to other elements (e.g. arguments, functions, constants), then they will also be cloned and the newly created element will contain references to the corresponding clones. Important - the API allows you to extract all these clones.
      Returns:
      Cloned object.