edu.hws.jcm.data
Class SimpleFunction

java.lang.Object
  |
  +--edu.hws.jcm.data.SimpleFunction
All Implemented Interfaces:
Function, java.io.Serializable

public class SimpleFunction
extends java.lang.Object
implements Function

An object belonging to this class is a function of one or more variables. It is defined by an expression, e, and a list of variables, which presumably can occur in e. The value of the function at arguments x1,x2,... is obtained by assigning the x's as the values of the variables and then evaluating the expression e.

Note: When the function is evaluated, the values of the variables that act as its parameters are saved and the variables are set to the values of the actual parameters provided for the function. After the evaluation, the saved values are restored. Usually, this is OK, but if setting the value of the variable has a side effect (such as changing the position of a VariableSlider), it could be a problem. So, don't use the variables associated with VariableSliders or VariableInputs in SimpleFunctions.

Note: A SimpleFunction is not a MathObject and does not have a name. It cannot be added to a Parser. If you want to do somethign like that, use an ExpressionFunction (defined in package edu.hws.jcm.functions).

See Also:
Serialized Form

Constructor Summary
SimpleFunction(Expression e, Variable v)
          Create the function of one variable such that the value of the function at x is obtained by temporarily assigning x as the value of the variable v and then evaluating e.
SimpleFunction(Expression e, Variable[] v)
          Create a function.
 
Method Summary
 boolean dependsOn(Variable x)
          Return true if the definition of this function depends in some way on the variable x.
 Function derivative(int wrt)
          Return the derivative of the function with repect to argument number wrt, where arguments are numbered starting from 1.
 Function derivative(Variable x)
          Return the derivative of the function with respect to the variable x.
 int getArity()
          Return the number of arguments of this function.
 double getVal(double[] arguments)
          Find the value of the function at the argument values argument[0], argument[1]....
 double getValueWithCases(double[] arguments, Cases cases)
          Find the value of the function at the argument values argument[0], argument[1]....
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleFunction

public SimpleFunction(Expression e,
                      Variable v)
Create the function of one variable such that the value of the function at x is obtained by temporarily assigning x as the value of the variable v and then evaluating e. e and v should be non-null (or errors will result when the function is used. Note that evaluating the function will temporarily change the value of the variable.

SimpleFunction

public SimpleFunction(Expression e,
                      Variable[] v)
Create a function. The arity of the function is the length of the array v. The value of the function at a given list of arguments is obtained by temporarily assigning the arguement values to the variables, and then returning the value of the expression. e and v should be non-null. Note that evaluating the function will temporarily change the values of the variables.
Method Detail

getArity

public int getArity()
Return the number of arguments of this function.
Specified by:
getArity in interface Function

getVal

public double getVal(double[] arguments)
Find the value of the function at the argument values argument[0], argument[1].... (If not enough arguments are supplied, an ArrayIndexOutOfBoundsException will be thrown. Extra arguments are ignored.)
Specified by:
getVal in interface Function

getValueWithCases

public double getValueWithCases(double[] arguments,
                                Cases cases)
Find the value of the function at the argument values argument[0], argument[1].... Information about "cases" is stored in the Cases parameter, if it is non-null. See the Cases class for more information.
Specified by:
getValueWithCases in interface Function

derivative

public Function derivative(int wrt)
Return the derivative of the function with repect to argument number wrt, where arguments are numbered starting from 1.
Specified by:
derivative in interface Function

derivative

public Function derivative(Variable x)
Return the derivative of the function with respect to the variable x. (Note that the derivative w.r.t one of the variables that are being used as the parameter of this function is ZERO!) To get the derivative with respect to the i-th parameter variable, call derivative(i).
Specified by:
derivative in interface Function

dependsOn

public boolean dependsOn(Variable x)
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!)
Specified by:
dependsOn in interface Function