public class PuFunction extends PsObject
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.
Expr
,
Serialized FormHAS_BOUNDARY_PANEL, 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 and Description |
---|
PuFunction() |
PuFunction(int numVariables,
int numFunctions) |
Modifier and Type | Method and Description |
---|---|
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 function of one variable.
|
boolean |
eval(double[] result,
double[] arg)
Evaluate an m-dim functions of n-variables.
|
double |
eval(double arg0,
double arg1)
Evaluate a real-valued function of three variables.
|
double |
eval(double arg0,
double arg1,
double arg2)
Evaluate a real-valued function of three 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 one variable.
|
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 expressions 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.
|
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
public PuFunction()
public PuFunction(int numVariables, int numFunctions)
public void init()
PsObject
public java.lang.Object clone()
clone
in class PsObject
PsObject.copy(PsObject)
public void copy(PsObject object)
copy
in class PsObject
PsObject.clone()
public java.lang.String toString()
public boolean update(java.lang.Object event)
update
in interface PsUpdateIf
update
in class PsObject
event
- carries a lot of informationPsObject.setParent(PsUpdateIf)
,
PsObject.getFather()
,
PsObject.addUpdateListener(PsUpdateIf)
public void addParameter(PuDouble parm)
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.
getParameter(String)
public PuDouble getParameter(java.lang.String symbol)
addParameter(PuDouble)
to store function parameter.symbol
- symbol of previously added PuDouble, see PuDouble#getSymbol()
.addParameter(PuDouble)
public java.util.Enumeration getParameters()
addParameter(PuDouble)
to store function parameter.addParameter(PuDouble)
public int getNumParameters()
public void addParameter(java.lang.String symbol, double initialValue)
public void setParameter(java.lang.String symbol, double value)
public int getNumVariables()
public void setNumVariables(int numVariables)
public java.lang.String[] getVariables()
public void setVariables(java.lang.String[] symbol)
public int getNumFunctions()
public void setNumFunctions(int numFunctions)
public java.lang.String getExpressionName()
public void setExpressionName(java.lang.String name)
public java.lang.String getExpressionName(int ind)
ind
.public void setExpressionName(int ind, java.lang.String name)
public java.lang.String[] getExpressionNames()
public void setExpressionNames(java.lang.String[] name)
public java.lang.String[] getExpressions()
public java.lang.String getExpression()
public java.lang.String getExpression(int ind)
ind
.public boolean setExpression(java.lang.String expr)
public boolean setExpression(int ind, java.lang.String expr)
ind
.
String is trimmed, i.e. leading and trailing whitespace characters are removed using String.trim().
public boolean setDefExpression(int ind, java.lang.String expr)
ind
.
String is trimmed, i.e. leading and trailing whitespace characters are removed using String.trim().
public boolean setExpression(java.lang.String expr, int ind)
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.
public boolean setExpression(java.lang.String[] exprArr)
public boolean setExpressions(java.lang.String[] exprArr)
public double eval(double arg)
arg
- Value of function argument.public double eval(double arg0, double arg1)
arg0
- Value of function argument.arg1
- Value of function argument.public double eval(double arg0, double arg1, double arg2)
arg0
- Value of function argument.arg1
- Value of function argument.arg2
- Value of function argument.public double eval(int ind, double arg)
ind
- Component to evaluatearg
- Value of function argument.public boolean eval(double[] result, double arg)
result
- Existing array to contain the computed function values.arg
- Value of function argument.public double eval(int ind, double[] arg)
ind
- Component to evaluatearg
- Array with value for each function argument.public boolean eval(double[] result, double[] arg)
result
- Existing array to contain the computed function values.arg
- Array with value for each function argument.public double eval()
public double eval(int ind)
ind
- Component to evaluatepublic boolean eval(double[] result)
result
- Existing array to contain the computed function values."