net.sourceforge.webcompmath.data
Class SimpleFunction

java.lang.Object
  extended by net.sourceforge.webcompmath.data.SimpleFunction
All Implemented Interfaces:
java.io.Serializable, Function

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]....
 java.lang.String toString()
          Returns the text representation of the expression
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, 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. Variables 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.

Parameters:
e - expression to evaluate
v - variable to use in evaluation

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.

Parameters:
e - expression to evaluate
v - array of variables to use
Method Detail

getArity

public int getArity()
Return the number of arguments of this function.

Specified by:
getArity in interface Function
Returns:
number of args

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
Parameters:
arguments - array of arg. values
Returns:
value of 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
Parameters:
arguments - array of arg. values
cases - cases to use
Returns:
value of 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
Parameters:
wrt - arg. number with respect to
Returns:
derivative of 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
Parameters:
x - variable with respect to
Returns:
derivative 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
Parameters:
x - variable to check
Returns:
true or false

toString

public java.lang.String toString()
Returns the text representation of the expression

Overrides:
toString in class java.lang.Object
See Also:
Object.toString()