JavaView© v3.95.000

jv.function
Class PuFunction

java.lang.Object
  extended byjv.object.PsObject
      extended byjv.function.PuFunction
All Implemented Interfaces:
java.lang.Cloneable, PsUpdateIf, java.io.Serializable

public class PuFunction
extends PsObject

Describes one or more functions in terms of an expression string with variables and constants. Strings may be interactively edited, for example, when studying parametrized surfaces.

Default variable names are {"u", "v", "w"} or, if more created with more than three variables, {"u0", "u1", "u2", ...}. A good practice is to specify individual variables directly after creating a function object using setVariables(String []).

Default names of the component functions are {"x", "y", "z", "t"} or, if more created with more than four component functions, {"F[0]", "F[1]", ...}. A good practice is to specify individual expression names directly after creating a function object using setExpressionNames(String []).

The following constant(s) are registered by default: {"Pi", "pi"}.

An arbitrary number of additional parameters can be added to a function.

Usage:

     // Graph of real-valued function in one variable
     PuFunction function = new PuFunction(1, 1);
 
     m_function.setName("Sin Function");
	    m_function.setVariables(new String[] {"u"});
     m_function.setExpression("sin(u)");
     double result = m_function.eval(double arg);
 
or
     // Parametrized surface from R2 to R3
     PuFunction function = new PuFunction(2, 3);
 
     m_function.setName("Kuen Surface");
	    m_function.setVariables(new String[] {"u", "v"});
     m_function.setExpression(0, "2./(1.+(u*sin(v))^2)*sqrt(1.+u*u)*sin(v)*cos(u-atan(u))");
     m_function.setExpression(1, "2./(1.+(u*sin(v))^2)*sqrt(1.+u*u)*sin(v)*sin(u-atan(u))");
     m_function.setExpression(2, "log(tan(v/2.))+2./(1.+(u*sin(v))^2)*cos(v)");
     m_function.eval(double [] result, double [] arg);
 
Later, a function can be evaluated by calling
     m_function.eval(double [] result, double [] arg);
 

See jv.thirdParty.expr.Expr for a list and notation of functions.

See Also:
Expr, Serialized Form

Field Summary
 
Fields inherited from class jv.object.PsObject
HAS_CONFIG_PANEL, HAS_INFO_PANEL, HAS_LABEL_PANEL, HAS_MATERIAL_PANEL, HAS_TEXTURE_PANEL, HAS_VECTOR_PANEL, INSPECTOR_INFO, INSPECTOR_INFO_EXT, IS_DELETED, IS_FIXED, IS_FOCUSSED, IS_PICKED, IS_SELECTED, IS_USED, NUM_TAGS
 
Constructor Summary
PuFunction()
           
PuFunction(int numVariables, int numFunctions)
           
 
Method Summary
 void addParameter(PuDouble parm)
          Add adjustable function parameter to all expressions.
 void addParameter(java.lang.String symbol, double initialValue)
          Add additional variables to all expressions, usually used as constants or parameters.
 java.lang.Object clone()
          Duplicate a function object by recursively cloning all instance variables.
 void copy(PsObject object)
          Copies data from given function object.
 double eval()
          Evaluate a real-valued function of one variable.
 double eval(double arg)
          Evaluate a real-valued function of one variable.
 boolean eval(double[] result)
          Evaluate an m-dim functions of n-variables'.
 boolean eval(double[] result, double arg)
          Evaluate an m-dim functions of n-variables'.
 boolean eval(double[] result, double[] arg)
          Evaluate an m-dim functions of n-variables'.
 double eval(int ind)
          Evaluate a component of an m-dim functions of n-variables'.
 double eval(int ind, double arg)
          Evaluate a component of an m-dim functions of n-variables'.
 double eval(int ind, double[] arg)
          Evaluate a component of an m-dim functions of n-variables'.
 java.lang.String getExpression()
          Get string of function if number of functions is 1.
 java.lang.String getExpression(int ind)
          Get string of function with index ind.
 java.lang.String getExpressionName()
          Get string of function if number of functions is 1.
 java.lang.String getExpressionName(int ind)
          Get string of function with index ind.
 java.lang.String[] getExpressionNames()
          Get string of function if number of functions is 1.
 java.lang.String[] getExpressions()
          Get strings of all function.
 int getNumFunctions()
          Get number of functions.
 int getNumParameters()
          Get number of parameters used in current functions.
 int getNumVariables()
          Get number of argument variables used in current functions.
 PuDouble getParameter(java.lang.String symbol)
          Return stored function parameters as PuDouble objects.
 java.util.Enumeration getParameters()
          Return stored function parameters as PuDouble objects.
 java.lang.String[] getVariables()
          Get array of variables names.
 void init()
          If instance has missing name then assign default name 'Object_NUMBER' where number is the total number of already created instances.
 boolean setDefExpression(int ind, java.lang.String expr)
          Set string of function with index ind.
 boolean setExpression(int ind, java.lang.String expr)
          Set string of function with index ind.
 boolean setExpression(java.lang.String expr)
          Supply expression of function if number of functions is 1.
 boolean setExpression(java.lang.String[] exprArr)
          Deprecated. since JavaView 3.50.003, use setExpressions(String []).
 boolean setExpression(java.lang.String expr, int ind)
          Deprecated. since JavaView 3.50.002, use setExpression(int, String);
 void setExpressionName(int ind, java.lang.String name)
          Set name of individual function expression.
 void setExpressionName(java.lang.String name)
          Set name of function expression.
 void setExpressionNames(java.lang.String[] name)
          Set names of all function expressions.
 boolean setExpressions(java.lang.String[] exprArr)
          Supply exressions of all functions.
 void setNumFunctions(int numFunctions)
          Set number of functions.
 void setNumVariables(int numVariables)
          Set number of argument variables used in current functions.
 void setParameter(java.lang.String symbol, double value)
          Set value of variable in all expressions, usually used as constants or parameters.
 void setVariables(java.lang.String[] symbol)
          Add symbols of variables in all expressions.
 java.lang.String toString()
          Create a multi-line string representation with detailed information about all instance variables.
 boolean update(java.lang.Object event)
          Update the class whenever a child has changed.
 
Methods inherited from class jv.object.PsObject
addInspector, addUpdateListener, assureInspector, clearTag, clone, clone, getFather, getInfoPanel, getInspector, getName, getNumObjects, getSymbol, hasInspector, hasTag, hasUpdateListener, instanceOf, instanceOf, newInspector, newInspector, removeInspector, removeInspector, removeUpdateListener, setName, setParent, setSymbol, setTag, updatePanels
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PuFunction

public PuFunction()

PuFunction

public PuFunction(int numVariables,
                  int numFunctions)
Method Detail

init

public void init()
Description copied from class: PsObject
If instance has missing name then assign default name 'Object_NUMBER' where number is the total number of already created instances.

Overrides:
init in class PsObject

clone

public java.lang.Object clone()
Duplicate a function object by recursively cloning all instance variables.

Overrides:
clone in class PsObject
Since:
JavaView 2.89.000
See Also:
PsObject.copy(PsObject)

copy

public void copy(PsObject object)
Copies data from given function object.

Overrides:
copy in class PsObject
Since:
JavaView 2.89.000
See Also:
PsObject.clone()

toString

public java.lang.String toString()
Create a multi-line string representation with detailed information about all instance variables.

Overrides:
toString in class PsObject

update

public boolean update(java.lang.Object event)
Update the class whenever a child has changed. Method is usually invoked from the children.

Specified by:
update in interface PsUpdateIf
Overrides:
update in class PsObject
See Also:
PsObject.setParent(PsUpdateIf), PsObject.getFather(), PsObject.addUpdateListener(PsUpdateIf)

addParameter

public void addParameter(PuDouble parm)
Add adjustable function parameter to all expressions. The slider is also added as variable with given symbol and initial value to all function expressions using addParameter(String, double).

Use getParameter(String) to return parameter objects.

This function object is registered as update listener of the slider. Whenever the slider changes then this function object updates the corresponding variable value.

Since:
JavaView v.3.50.002
See Also:
getParameter(String)

getParameter

public PuDouble getParameter(java.lang.String symbol)
Return stored function parameters as PuDouble objects. Use addParameter(PuDouble) to store function parameter.

Parameters:
symbol - symbol of previously added PuDouble, see PuDouble#getSymbol().
Since:
JavaView v.3.50.002
See Also:
addParameter(PuDouble)

getParameters

public java.util.Enumeration getParameters()
Return stored function parameters as PuDouble objects. Use addParameter(PuDouble) to store function parameter.

Since:
JavaView v.3.50.002
See Also:
addParameter(PuDouble)

getNumParameters

public int getNumParameters()
Get number of parameters used in current functions.


addParameter

public void addParameter(java.lang.String symbol,
                         double initialValue)
Add additional variables to all expressions, usually used as constants or parameters.


setParameter

public void setParameter(java.lang.String symbol,
                         double value)
Set value of variable in all expressions, usually used as constants or parameters.


getNumVariables

public int getNumVariables()
Get number of argument variables used in current functions.


setNumVariables

public void setNumVariables(int numVariables)
Set number of argument variables used in current functions.


getVariables

public java.lang.String[] getVariables()
Get array of variables names.


setVariables

public void setVariables(java.lang.String[] symbol)
Add symbols of variables in all expressions. Number of given symbols must match then number of variables of this function. Default symbols are {u,v,w} or if 4 and more variables {u0,u1,..}.

Since:
JavaView 3.50.002

getNumFunctions

public int getNumFunctions()
Get number of functions.


setNumFunctions

public void setNumFunctions(int numFunctions)
Set number of functions.


getExpressionName

public java.lang.String getExpressionName()
Get string of function if number of functions is 1.

Since:
JavaView 3.50.002

setExpressionName

public void setExpressionName(java.lang.String name)
Set name of function expression.

Since:
JavaView 3.50.002

getExpressionName

public java.lang.String getExpressionName(int ind)
Get string of function with index ind.


setExpressionName

public void setExpressionName(int ind,
                              java.lang.String name)
Set name of individual function expression.

Since:
JavaView 3.50.002

getExpressionNames

public java.lang.String[] getExpressionNames()
Get string of function if number of functions is 1.

Since:
JavaView 3.50.002

setExpressionNames

public void setExpressionNames(java.lang.String[] name)
Set names of all function expressions.

Since:
JavaView 3.50.002

getExpressions

public java.lang.String[] getExpressions()
Get strings of all function.

Since:
JavaView 3.50.002

getExpression

public java.lang.String getExpression()
Get string of function if number of functions is 1.

Since:
JavaView 3.50.002

getExpression

public java.lang.String getExpression(int ind)
Get string of function with index ind.


setExpression

public boolean setExpression(java.lang.String expr)
Supply expression of function if number of functions is 1.

Since:
JavaView 3.50.002

setExpression

public boolean setExpression(int ind,
                             java.lang.String expr)
Set string of function with index ind.

String is trimmed, i.e. leading and trailing whitespace characters are removed using String.trim().


setDefExpression

public boolean setDefExpression(int ind,
                                java.lang.String expr)
Set string of function with index ind.

String is trimmed, i.e. leading and trailing whitespace characters are removed using String.trim().

Since:
JavaView v.3.56.003

setExpression

public boolean setExpression(java.lang.String expr,
                             int ind)
Deprecated. since JavaView 3.50.002, use setExpression(int, String);

Set string of function with index ind.

If there exist no default function, then the first invocation of this method with a non-empty expression argument is assigned as default expression.


setExpression

public boolean setExpression(java.lang.String[] exprArr)
Deprecated. since JavaView 3.50.003, use setExpressions(String []).

Supply exressions of all functions.


setExpressions

public boolean setExpressions(java.lang.String[] exprArr)
Supply exressions of all functions.

Since:
JavaView 3.50.003

eval

public double eval(double arg)
Evaluate a real-valued function of one variable.

Parameters:
arg - Value of function argument.
Returns:
double Function value evaluated at 'arg'.

eval

public double eval(int ind,
                   double arg)
Evaluate a component of an m-dim functions of n-variables'.

Parameters:
ind - Component to evaluate
arg - Value of function argument.
Returns:
double value of function component evaluated at argument

eval

public boolean eval(double[] result,
                    double arg)
Evaluate an m-dim functions of n-variables'.

Parameters:
result - Existing array to contain the computed function values.
arg - Value of function argument.
Returns:
false if an error occurred, or data is missing.

eval

public double eval(int ind,
                   double[] arg)
Evaluate a component of an m-dim functions of n-variables'.

Parameters:
ind - Component to evaluate
arg - Array with value for each function argument.
Returns:
double value of function component evaluated at argument

eval

public boolean eval(double[] result,
                    double[] arg)
Evaluate an m-dim functions of n-variables'.

Parameters:
result - Existing array to contain the computed function values.
arg - Array with value for each function argument.
Returns:
false if an error occurred, or data is missing.

eval

public double eval()
Evaluate a real-valued function of one variable.

Returns:
double Function value evaluated at 'arg'.
Since:
JavaView 3.50.002

eval

public double eval(int ind)
Evaluate a component of an m-dim functions of n-variables'.

Parameters:
ind - Component to evaluate
Returns:
double value of function component evaluated at argument
Since:
JavaView 3.50.002

eval

public boolean eval(double[] result)
Evaluate an m-dim functions of n-variables'.

Parameters:
result - Existing array to contain the computed function values.
Returns:
false if an error occurred, or data is missing.
Since:
JavaView 3.50.002

JavaView© v3.95.000

The software JavaView© is copyright protected. All Rights Reserved.