Package edu.hws.jcm.functions
Class WrapperFunction
java.lang.Object
edu.hws.jcm.functions.FunctionParserExtension
edu.hws.jcm.functions.WrapperFunction
- All Implemented Interfaces:
ExpressionCommand
,Function
,MathObject
,ParserExtension
,Serializable
A WrapperFunction contains another function and delegates to it
all calls to methods from the Function interface, except for calls
to setName() and getName(). (It maintains its own name, which can
be different from the name of the wrapped Function.) This has at least two
uses: A WrapperFunction is a FunctionParserExtension, so it can
be added to a parser and then used in expressions parsed in that
parser. Second, the function that is wrapped inside the WrapperFunction
object can be changed by a call to the setFunction() method.
This makes it possible to have a single function that can be used,
for example, in ValueMath objects and Graph1D's, whose definition
can be changed at will. Note that it is NOT legal to change the
arity of the function when calling the setFunction() method.
- See Also:
-
Field Summary
Fields inherited from class edu.hws.jcm.functions.FunctionParserExtension
name
-
Constructor Summary
ConstructorsConstructorDescriptionCreate a WrapperFunction object containing a specified function. -
Method Summary
Modifier and TypeMethodDescriptionvoid
apply
(StackOfDouble stack, Cases cases) Evaluate the function applied to argument values popped from the stack, and leave the result on the stack.boolean
Return true if the definition of this function depends in some way on the variable x.derivative
(int wrt) Return the derivative of the function with repect to argument number wrt, where arguments are numbered starting from 1.Return the derivative of the function with respect to the variable x (where x is NOT one of the parameters of the function).int
getArity()
Return the number of arguments of this function.Return the function that is currently wrapped in this WrapperFunction.double
getVal
(double[] arguments) Find the value of the function at the argument value argument[0], ....double
getValueWithCases
(double[] arguments, Cases cases) Find the value of the function at the argument values argument[0],....void
Set the function that is contained in this WrapperFunction.Methods inherited from class edu.hws.jcm.functions.FunctionParserExtension
appendOutputString, compileDerivative, doParse, extent, getName, setName, setParensCanBeOptional
-
Constructor Details
-
WrapperFunction
Create a WrapperFunction object containing a specified function.- Parameters:
f
- The non-null function that will be contained in the WrapperFunction.
-
-
Method Details
-
setFunction
Set the function that is contained in this WrapperFunction.- Parameters:
f
- The non-null function to be used in this WrapperFunction object. It must have the same arity as the current function.
-
getFunction
Return the function that is currently wrapped in this WrapperFunction. -
getArity
public int getArity()Return the number of arguments of this function. -
getVal
public double getVal(double[] arguments) Find the value of the function at the argument value argument[0], .... The number of arguments should match the arity of the function. -
getValueWithCases
Find the value of the function at the argument values argument[0],.... Information about "cases" is stored in the Cases parameter, if it is non-null. See the Cases class for more information. -
derivative
Return the derivative of the function with repect to argument number wrt, where arguments are numbered starting from 1. -
derivative
Return the derivative of the function with respect to the variable x (where x is NOT one of the parameters of the function). -
dependsOn
Return true if the definition of this function depends in some way on the variable x. (Note that the function does NOT depend on the variables that are being used as its parameters!) -
apply
Evaluate the function applied to argument values popped from the stack, and leave the result on the stack. This is not meant to be called directly.- Specified by:
apply
in interfaceExpressionCommand
- Overrides:
apply
in classFunctionParserExtension
- Parameters:
stack
- contains results of previous commands in the program.cases
- if non-null, any case information generated during evaluation should be recorded here.
-