Class PuComplexFunction
- java.lang.Object
-
- jv.object.PsObject
-
- jv.function.PuComplexFunction
-
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, PsUpdateIf
public class PuComplexFunction extends PsObject
Describes one or more complex functions in terms of an expression string with real and complex variables and constants. Strings may be interactively edited, for example, when studying complex functions.Default names of complex variables are {"z", "w"} or, if more created with more than three variables, {"z0", "z1", "z2", ...}. A good practice is to specify individual variables directly after creating a function object using
setVariables(String []).Default names of the component functions are {"f", "g"} or, if more created with more than two 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 real and complex constants are registered by default: {"Pi", "pi", "i", "I"}.
An arbitrary number of additional parameters can be added to a function.
Usage:
// Complex-valued function in one variable PuFunction function = new PuFunction(1, 1); m_function.setName("Square Function"); m_function.setVariables(new String[] {"z"}); m_function.setExpression("z*z"); PuComplex result = m_function.eval(PuComplex arg);or// Complex surface in C3: PuFunction function = new PuFunction(1, 3); m_function.setName("Complex Surface"); m_function.setVariables(new String[] {"z"}); m_function.setExpression(0, "z*z"); m_function.setExpression(1, "sqrt(z)"); m_function.setExpression(2, "2*z+3*i"); m_function.eval(PuComplex [] result, PuComplex arg);Later, a function can be evaluated by callingm_function.eval(PuComplex [] result, PuComplex arg);See
jv.thirdParty.expr.Exprfor a list and notation of functions.- See Also:
Expr, Serialized Form- Author:
- Konrad Polthier
- Version:
- 05.08.13, 4.10 revised (poe) eval()-method for functions in multiple variables added.
29.08.08, 4.00 created (kp) Based on jv.function.PuFunction.
31.07.04, 3.00 revised (kp) More eval() methods; parameters are now identified by symbol instead of name, see PsObject#m_symbol.
17.01.04, 2.40 revised (kp) Method toString() implemented.
04.08.03, 2.30 revised (kp) Methods clone() and copy() implemented.
05.05.01, 2.20 revised (kp) Methods findZero() and findValue() moved to jvx.numeric.PnRootFinder.
02.10.99, 2.10 revised (kp) Additional method eval() added for functions f:R->R.
04.07.99, 2.01 revised (kp) Use method eval() instead of fun() for function evaluation.
00.00.98, 1.00 created (kp) First skeleton.
-
-
Field Summary
-
Fields inherited from class jv.object.PsObject
HAS_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 Summary
Constructors Constructor and Description PuComplexFunction()PuComplexFunction(int numVariables, int numFunctions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidaddParameter(PuDouble parm)Add adjustable function parameter to all expressions.voidaddParameter(java.lang.String symbol, double initialValue)Add additional variables to all expressions, usually used as constants or parameters.java.lang.Objectclone()Duplicate a function object by recursively cloning all instance variables.voidcopy(PsObject object)Copies data from given function object.PuComplexeval(int ind, PuComplex arg)Evaluate a component of an m-dim functions of 1 variable'.PuComplexeval(int ind, PuComplex[] args)Evaluate a component of an m-dim functions of n-variables'.PuComplexeval(PuComplex arg)Evaluate a complex-valued function of one variable.PuComplexeval(PuComplex[] args)Evaluate a complex-valued function in n variables.booleaneval(PuComplex[] result, PuComplex arg)Evaluate an m-dim functions of n-variables'.java.lang.StringgetExpression()Get string of function if number of functions is 1.java.lang.StringgetExpression(int ind)Get string of function with indexind.java.lang.StringgetExpressionName()Get string of function if number of functions is 1.java.lang.StringgetExpressionName(int ind)Get string of function with indexind.java.lang.String[]getExpressionNames()Get string of function if number of functions is 1.java.lang.String[]getExpressions()Get strings of all function.intgetNumFunctions()Get number of functions.intgetNumParameters()Get number of parameters used in current functions.intgetNumVariables()Get number of argument variables used in current functions.PuDoublegetParameter(java.lang.String symbol)Return stored function parameters as PuDouble objects.java.util.EnumerationgetParameters()Return stored function parameters as PuDouble objects.java.lang.String[]getVariables()Get array of variables names.voidinit()If instance has missing name then assign default name 'Object_NUMBER' where number is the total number of already created instances.booleansetDefExpression(int ind, java.lang.String expr)Set string of function with indexind.booleansetExpression(int ind, java.lang.String expr)Set string of function with indexind.booleansetExpression(java.lang.String expr)Supply expression of function if number of functions is 1.voidsetExpressionName(int ind, java.lang.String name)Set name of individual function expression.voidsetExpressionName(java.lang.String name)Set name of function expression.voidsetExpressionNames(java.lang.String[] name)Set names of all function expressions.booleansetExpressions(java.lang.String[] exprArr)Supply expressions of all functions.voidsetNumFunctions(int numFunctions)Set number of functions.voidsetNumVariables(int numVariables)Set number of argument variables used in current functions.voidsetParameter(java.lang.String symbol, double value)Set value of variable in all expressions, usually used as constants or parameters.voidsetVariables(java.lang.String[] symbol)Add symbols of variables in all expressions.java.lang.StringtoString()Create a multi-line string representation with detailed information about all instance variables.booleanupdate(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
-
-
-
-
Constructor Detail
-
PuComplexFunction
public PuComplexFunction()
-
PuComplexFunction
public PuComplexFunction(int numVariables, int numFunctions)
-
-
Method Detail
-
init
public void init()
Description copied from class:PsObjectIf instance has missing name then assign default name 'Object_NUMBER' where number is the total number of already created instances.
-
clone
public java.lang.Object clone()
Duplicate a function object by recursively cloning all instance variables.- Overrides:
clonein classPsObject- Since:
- JavaView 2.89.000
- See Also:
PsObject.copy(PsObject)- Version:
- 30.07.03, 1.00 created (kp)
-
copy
public void copy(PsObject object)
Copies data from given function object.- Overrides:
copyin classPsObject- Since:
- JavaView 2.89.000
- See Also:
PsObject.clone()- Version:
- 30.07.03, 1.00 created (kp)
-
toString
public java.lang.String toString()
Create a multi-line string representation with detailed information about all instance variables.
-
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:
updatein interfacePsUpdateIf- Overrides:
updatein classPsObject- Parameters:
event- carries a lot of information- Returns:
- true if event has been handled, otherwise false
- 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 usingaddParameter(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)- Version:
- 27.07.04, 1.00 created (kp) Copied from vgp.surface.common.PgSurfaceDescr.
-
getParameter
public PuDouble getParameter(java.lang.String symbol)
Return stored function parameters as PuDouble objects. UseaddParameter(PuDouble)to store function parameter.- Parameters:
symbol- symbol of previously added PuDouble, seePuDouble#getSymbol().- Since:
- JavaView v.3.50.002
- See Also:
addParameter(PuDouble)- Version:
- 27.07.04, 1.00 created (kp) Copied from vgp.surface.common.PgSurfaceDescr.
-
getParameters
public java.util.Enumeration getParameters()
Return stored function parameters as PuDouble objects. UseaddParameter(PuDouble)to store function parameter.- Since:
- JavaView v.3.50.002
- See Also:
addParameter(PuDouble)- Version:
- 27.07.04, 1.00 created (kp) Copied from vgp.surface.common.PgSurfaceDescr.
-
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
- Version:
- 27.07.04, 1.00 created (kp)
-
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
- Version:
- 31.07.04, 1.00 created (kp)
-
setExpressionName
public void setExpressionName(java.lang.String name)
Set name of function expression.- Since:
- JavaView 3.50.002
- Version:
- 31.07.04, 1.00 created (kp)
-
getExpressionName
public java.lang.String getExpressionName(int ind)
Get string of function with indexind.
-
setExpressionName
public void setExpressionName(int ind, java.lang.String name)Set name of individual function expression.- Since:
- JavaView 3.50.002
- Version:
- 31.07.04, 1.00 created (kp)
-
getExpressionNames
public java.lang.String[] getExpressionNames()
Get string of function if number of functions is 1.- Since:
- JavaView 3.50.002
- Version:
- 31.07.04, 1.00 created (kp)
-
setExpressionNames
public void setExpressionNames(java.lang.String[] name)
Set names of all function expressions.- Since:
- JavaView 3.50.002
- Version:
- 31.07.04, 1.00 created (kp)
-
getExpressions
public java.lang.String[] getExpressions()
Get strings of all function.- Since:
- JavaView 3.50.002
- Version:
- 31.07.04, 1.00 created (kp)
-
getExpression
public java.lang.String getExpression()
Get string of function if number of functions is 1.- Since:
- JavaView 3.50.002
- Version:
- 31.07.04, 1.00 created (kp)
-
getExpression
public java.lang.String getExpression(int ind)
Get string of function with indexind.
-
setExpression
public boolean setExpression(java.lang.String expr)
Supply expression of function if number of functions is 1.- Since:
- JavaView 3.50.002
- Version:
- 31.07.04, 1.00 created (kp)
-
setExpression
public boolean setExpression(int ind, java.lang.String expr)Set string of function with indexind.String is trimmed, i.e. leading and trailing whitespace characters are removed using String.trim().
- Version:
- 22.09.04, 1.20 revised (kp) Method no longer stores default function values, use explicit setting.
01.08.04, 1.10 revised (kp) Expression string is trimmed.
-
setDefExpression
public boolean setDefExpression(int ind, java.lang.String expr)Set string of function with indexind.String is trimmed, i.e. leading and trailing whitespace characters are removed using String.trim().
- Since:
- JavaView v.3.56.003
- Version:
- 22.09.04, 1.00 created (kp)
-
setExpressions
public boolean setExpressions(java.lang.String[] exprArr)
Supply expressions of all functions.- Since:
- JavaView 3.50.003
- Version:
- 02.08.04, 1.00 created (kp) Based on earlier method setExpression(String []).
-
eval
public PuComplex eval(PuComplex arg)
Evaluate a complex-valued function of one variable.- Parameters:
arg- Value of function argument.- Returns:
- PuComplex Function value evaluated at 'arg'.
-
eval
public PuComplex eval(int ind, PuComplex arg)
Evaluate a component of an m-dim functions of 1 variable'.- Parameters:
ind- Component to evaluatearg- Value of function argument.- Returns:
- double value of function component evaluated at argument
-
eval
public PuComplex eval(PuComplex[] args)
Evaluate a complex-valued function in n variables.- Parameters:
args- Array of function arguments.- Returns:
- PuComplex Function value evaluated at 'arg'.
-
eval
public PuComplex eval(int ind, PuComplex[] args)
Evaluate a component of an m-dim functions of n-variables'.- Parameters:
ind- Component to evaluateargs- Value of function argument.- Returns:
- double value of function component evaluated at argument
-
-
"