Class Function

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int BODY_EXTENDED
      Function with body based on the extended code.
      static int BODY_RUNTIME
      Function with body based on the expression string.
      static boolean NO_SYNTAX_ERRORS
      No syntax errors in the function.
      static int NOT_FOUND
      When function was not found
      static boolean SYNTAX_ERROR_OR_STATUS_UNKNOWN
      Syntax error in the function or syntax status unknown.
      static java.lang.String TYPE_DESC  
      static int TYPE_ID
      Function type id identifier
    • Constructor Summary

      Constructors 
      Constructor Description
      Function​(java.lang.String functionName, java.lang.String functionExpressionString, java.lang.String... argumentsNames)
      Constructor - creates function from function name, function expression string and argument names.
      Function​(java.lang.String functionName, java.lang.String functionExpressionString, PrimitiveElement... elements)
      Constructor - creates function from function name and function expression string.
      Function​(java.lang.String functionName, FunctionExtension functionExtension)
      Constructor for function definition based on your own source code - this is via implementation of FunctionExtension interface.
      Function​(java.lang.String functionName, FunctionExtensionVariadic functionExtensionVariadic)
      Constructor for function definition based on your own source code - this is via implementation of FunctionExtensionVariadic interface.
      Function​(java.lang.String functionDefinitionString, PrimitiveElement... elements)
      Constructor for function definition in natural math language, for instance providing on string "f(x,y) = sin(x) + cos(x)" is enough to define function "f" with parameters "x and y" and function body "sin(x) + cos(x)".
    • Method Summary

      Modifier and Type Method Description
      void addArguments​(Argument... arguments)
      Adds arguments (variadic) to the function expression definition.
      void addConstants​(java.util.List<Constant> constantsList)
      Adds constants to the function expression definition.
      void addConstants​(Constant... constants)
      Adds constants (variadic parameters) to the function expression definition.
      void addDefinitions​(PrimitiveElement... elements)
      Adds user defined elements (such as: Arguments, Constants, Functions) to the function expressions.
      void addFunctions​(Function... functions)
      Adds functions (variadic parameters) to the function expression definition.
      double calculate()
      Calculates function value
      double calculate​(double... parameters)
      Calculates function value
      double calculate​(Argument... arguments)
      Calculates function value
      boolean checkSyntax()
      Checks function syntax
      void defineArgument​(java.lang.String argumentName, double argumentValue)
      Enables to define the argument (associated with the function expression) based on the argument name and the argument value.
      void defineArguments​(java.lang.String... argumentsNames)
      Enables to define the arguments (associated with the function expression) based on the given arguments names.
      void defineConstant​(java.lang.String constantName, double constantValue)
      Enables to define the constant (associated with the function expression) based on the constant name and constant value.
      void defineFunction​(java.lang.String functionName, java.lang.String functionExpressionString, java.lang.String... argumentsNames)
      Enables to define the function (associated with the function expression) based on the function name, function expression string and arguments names (variadic parameters).
      Argument getArgument​(int argumentIndex)
      Gets argument from the function expression.
      Argument getArgument​(java.lang.String argumentName)
      Gets argument from the function expression.
      int getArgumentIndex​(java.lang.String argumentName)
      Gets argument index from the function expression.
      int getArgumentsNumber()
      Gets number of arguments associated with the function expression.
      double getComputingTime()
      Gets computing time
      Constant getConstant​(int constantIndex)
      Gets constant associated with the function expression.
      Constant getConstant​(java.lang.String constantName)
      Gets constant associated with the function expression.
      int getConstantIndex​(java.lang.String constantName)
      Gets constant index associated with the function expression.
      int getConstantsNumber()
      Gets number of constants associated with the function expression.
      java.lang.String getDescription()
      Gets function description
      java.lang.String getErrorMessage()
      Returns error message after checking the syntax.
      Function getFunction​(int functionIndex)
      Gets function associated with the function expression.
      Function getFunction​(java.lang.String functionName)
      Gets function associated with the function expression.
      int getFunctionBodyType()
      Returns function body type: BODY_RUNTIME BODY_EXTENDED
      java.lang.String getFunctionExpressionString()
      Gets function expression string
      int getFunctionIndex​(java.lang.String functionName)
      Gets index of function associated with the function expression.
      java.lang.String getFunctionName()
      Gets function name.
      int getFunctionsNumber()
      Gets number of functions associated with the function expression.
      java.lang.String getParameterName​(int parameterIndex)
      Gets user defined function parameter name
      int getParametersNumber()
      Gets number of parameters associated with the function expression.
      boolean getRecursiveMode()
      Gets recursive mode status
      boolean getVerboseMode()
      Returns verbose mode status
      void removeAllArguments()
      Removes all arguments associated with the function expression.
      void removeAllConstants()
      Removes all constants associated with the function expression
      void removeAllFunctions()
      Removes all functions associated with the function expression.
      void removeArguments​(java.lang.String... argumentsNames)
      Removes first occurrences of the arguments associated with the function expression.
      void removeArguments​(Argument... arguments)
      Removes first occurrences of the arguments associated with the function expression.
      void removeConstants​(java.lang.String... constantsNames)
      Removes first occurrences of the constants associated with the function expression.
      void removeConstants​(Constant... constants)
      Removes first occurrences of the constants associated with the function expression
      void removeDefinitions​(PrimitiveElement... elements)
      Removes user defined elements (such as: Arguments, Constants, Functions) from the function expressions.
      void removeFunctions​(java.lang.String... functionsNames)
      Removes first occurrences of the functions associated with the function expression.
      void removeFunctions​(Function... functions)
      Removes first occurrences of the functions associated with the function expression.
      void setArgumentValue​(int argumentIndex, double argumentValue)
      Sets value of function argument (function parameter).
      void setDescription​(java.lang.String description)
      Sets function description.
      void setFunction​(java.lang.String functionDefinitionString, PrimitiveElement... elements)
      Constructor for function definition in natural math language, for instance providing on string "f(x,y) = sin(x) + cos(x)" is enough to define function "f" with parameters "x and y" and function body "sin(x) + cos(x)".
      void setFunctionName​(java.lang.String functionName)
      Sets function name.
      void setParametersNumber​(int parametersNumber)
      Set parameters number.
      void setSilentMode()
      Disables function verbose mode (sets default silent mode)
      void setVerboseMode()
      Enables verbose function mode
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Function

        public Function​(java.lang.String functionName,
                        java.lang.String functionExpressionString,
                        PrimitiveElement... elements)
        Constructor - creates function from function name and function expression string.
        Parameters:
        functionName - the function name
        functionExpressionString - the function expression string
        elements - Optional elements list (variadic - comma separated) of types: Argument, Constant, Function
        See Also:
        PrimitiveElement, Expression
      • Function

        public Function​(java.lang.String functionName,
                        java.lang.String functionExpressionString,
                        java.lang.String... argumentsNames)
        Constructor - creates function from function name, function expression string and argument names.
        Parameters:
        functionName - the function name
        functionExpressionString - the function expression string
        argumentsNames - the arguments names (variadic parameters) comma separated list
        See Also:
        Expression
      • Function

        public Function​(java.lang.String functionDefinitionString,
                        PrimitiveElement... elements)
        Constructor for function definition in natural math language, for instance providing on string "f(x,y) = sin(x) + cos(x)" is enough to define function "f" with parameters "x and y" and function body "sin(x) + cos(x)".
        Parameters:
        functionDefinitionString - Function definition in the form of one String, ie "f(x,y) = sin(x) + cos(x)"
        elements - Optional elements list (variadic - comma separated) of types: Argument, Constant, Function
        See Also:
        PrimitiveElement
      • Function

        public Function​(java.lang.String functionName,
                        FunctionExtension functionExtension)
        Constructor for function definition based on your own source code - this is via implementation of FunctionExtension interface.
        Parameters:
        functionName - Function name
        functionExtension - Your own source code
      • Function

        public Function​(java.lang.String functionName,
                        FunctionExtensionVariadic functionExtensionVariadic)
        Constructor for function definition based on your own source code - this is via implementation of FunctionExtensionVariadic interface.
        Parameters:
        functionName - Function name
        functionExtensionVariadic - Your own source code
    • Method Detail

      • setFunction

        public void setFunction​(java.lang.String functionDefinitionString,
                                PrimitiveElement... elements)
        Constructor for function definition in natural math language, for instance providing on string "f(x,y) = sin(x) + cos(x)" is enough to define function "f" with parameters "x and y" and function body "sin(x) + cos(x)".
        Parameters:
        functionDefinitionString - Function definition in the form of one String, ie "f(x,y) = sin(x) + cos(x)"
        elements - Optional elements list (variadic - comma separated) of types: Argument, Constant, Function
        See Also:
        PrimitiveElement
      • setDescription

        public void setDescription​(java.lang.String description)
        Sets function description.
        Parameters:
        description - the function description
      • getDescription

        public java.lang.String getDescription()
        Gets function description
        Returns:
        Function description as string
      • getFunctionName

        public java.lang.String getFunctionName()
        Gets function name.
        Returns:
        Function name as string.
      • getFunctionExpressionString

        public java.lang.String getFunctionExpressionString()
        Gets function expression string
        Returns:
        Function expression as string.
      • setFunctionName

        public void setFunctionName​(java.lang.String functionName)
        Sets function name.
        Parameters:
        functionName - the function name
      • setArgumentValue

        public void setArgumentValue​(int argumentIndex,
                                     double argumentValue)
        Sets value of function argument (function parameter).
        Parameters:
        argumentIndex - the argument index (in accordance to arguments declaration sequence)
        argumentValue - the argument value
      • checkSyntax

        public boolean checkSyntax()
        Checks function syntax
        Returns:
        syntax status: Function.NO_SYNTAX_ERRORS, Function.SYNTAX_ERROR_OR_STATUS_UNKNOWN
      • getErrorMessage

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

        public double calculate()
        Calculates function value
        Returns:
        Function value as double.
      • calculate

        public double calculate​(double... parameters)
        Calculates function value
        Parameters:
        parameters - the function parameters values (as doubles)
        Returns:
        function value as double.
      • calculate

        public double calculate​(Argument... arguments)
        Calculates function value
        Parameters:
        arguments - function parameters (as Arguments)
        Returns:
        function value as double
      • addDefinitions

        public void addDefinitions​(PrimitiveElement... elements)
        Adds user defined elements (such as: Arguments, Constants, Functions) to the function expressions.
        Parameters:
        elements - Elements list (variadic), where Argument, Constant, Function extend the same class PrimitiveElement
        See Also:
        PrimitiveElement
      • removeDefinitions

        public void removeDefinitions​(PrimitiveElement... elements)
        Removes user defined elements (such as: Arguments, Constants, Functions) from the function expressions.
        Parameters:
        elements - Elements list (variadic), where Argument, Constant, Function extend the same class PrimitiveElement
        See Also:
        PrimitiveElement
      • addArguments

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

        public void defineArguments​(java.lang.String... argumentsNames)
        Enables to define the arguments (associated with the function expression) based on the given arguments names.
        Parameters:
        argumentsNames - the arguments names (variadic) comma separated list
        See Also:
        Argument, RecursiveArgument
      • defineArgument

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

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

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

        public Argument getArgument​(int argumentIndex)
        Gets argument from the function 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:
        Argument, RecursiveArgument
      • getParametersNumber

        public int getParametersNumber()
        Gets number of parameters associated with the function expression.
        Returns:
        The number of function parameters (int >= 0)
        See Also:
        Argument, RecursiveArgument
      • setParametersNumber

        public void setParametersNumber​(int parametersNumber)
        Set parameters number.
        Parameters:
        parametersNumber - the number of function parameters (default = number of arguments (less number might be specified).
      • getParameterName

        public java.lang.String getParameterName​(int parameterIndex)
        Gets user defined function parameter name
        Parameters:
        parameterIndex - Parameter index between 0 and n-1
        Returns:
        If parameter exists returns parameters name, otherwise empty string is returned.
      • getArgumentsNumber

        public int getArgumentsNumber()
        Gets number of arguments associated with the function expression.
        Returns:
        The number of arguments (int >= 0)
        See Also:
        Argument, RecursiveArgument
      • removeArguments

        public void removeArguments​(java.lang.String... argumentsNames)
        Removes first occurrences of the arguments associated with the function expression.
        Parameters:
        argumentsNames - the arguments names (variadic parameters) comma separated list
        See Also:
        Argument, RecursiveArgument
      • removeArguments

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

        public void removeAllArguments()
        Removes all arguments associated with the function expression.
        See Also:
        Argument, RecursiveArgument
      • addConstants

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

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

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

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

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

        public Constant getConstant​(int constantIndex)
        Gets constant associated with the function 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:
        Constant
      • getConstantsNumber

        public int getConstantsNumber()
        Gets number of constants associated with the function expression.
        Returns:
        number of constants (int >= 0)
        See Also:
        Constant
      • removeConstants

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

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

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

        public void addFunctions​(Function... functions)
        Adds functions (variadic parameters) to the function expression definition.
        Parameters:
        functions - the functions (variadic parameters) comma separated list
        See Also:
        Function
      • defineFunction

        public void defineFunction​(java.lang.String functionName,
                                   java.lang.String functionExpressionString,
                                   java.lang.String... argumentsNames)
        Enables to define the function (associated with the function 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:
        Function
      • getFunctionIndex

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

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

        public Function getFunction​(int functionIndex)
        Gets function associated with the function 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:
        Function
      • getFunctionsNumber

        public int getFunctionsNumber()
        Gets number of functions associated with the function expression.
        Returns:
        number of functions (int >= 0)
        See Also:
        Function
      • removeFunctions

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

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

        public void removeAllFunctions()
        Removes all functions associated with the function expression.
        See Also:
        Function
      • setVerboseMode

        public void setVerboseMode()
        Enables verbose function mode
      • setSilentMode

        public void setSilentMode()
        Disables function 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, otherwise returns false
      • getComputingTime

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