Package edu.hws.jcm.data

# Class SimpleFunction

java.lang.Object
edu.hws.jcm.data.SimpleFunction

All Implemented Interfaces:
  `Function`, `Serializable`

public class SimpleFunction extends 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

Constructors
Constructor
Description
`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

Modifier and Type
Method
Description
`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 Details

### 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 Details

### 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`