Class Function

    • Constructor Detail

      • Function

        public Function​(String functionName,
                        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​(String functionName,
                        String functionExpressionString,
                        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​(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​(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​(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​(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​(String description)
        Sets function description.
        Parameters:
        description - the function description
      • getDescription

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

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

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

        public void setFunctionName​(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 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​(CalcStepsRegister calcStepsRegister)
        Calculates function value and registers all the calculation steps
        Parameters:
        calcStepsRegister - A collection to store list of calculation steps, steps registered as strings.
        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​(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​(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​(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​(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 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​(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​(List<Constant> constantsList)
        Adds constants to the function expression definition.
        Parameters:
        constantsList - the list of constants
        See Also:
        Constant
      • defineConstant

        public void defineConstant​(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​(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​(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​(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​(String functionName,
                                   String functionExpressionString,
                                   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​(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​(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​(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.