jv.function

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

           m_function.eval(PuComplex [] result, PuComplex arg);

  See `jv.thirdParty.expr.Expr` for 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
    --- | ---
    `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.
    `PuComplex` | `eval(int ind, PuComplex arg)` Evaluate a component of an m-dim functions of 1 variable'.
    `PuComplex` | `eval(int ind, PuComplex[] args)` Evaluate a component of an m-dim functions of n-variables'.
    `PuComplex` | `eval(PuComplex arg)` Evaluate a complex-valued function of one variable.
    `PuComplex` | `eval(PuComplex[] args)` Evaluate a complex-valued function in n variables.
    `boolean` | `eval(PuComplex[] result, PuComplex arg)` Evaluate 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.
    `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.

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

    - #### PuComplexFunction

          public PuComplexFunction()

    - #### PuComplexFunction

          public PuComplexFunction(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)`
      Version:
        30.07.03, 1.00 created (kp)

    - #### 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()`
      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.
      Overrides:
        `toString` in class `PsObject`
      Version:
        17.01.04, 1.00 created (kp)

    - #### 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`
      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 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)`
      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. 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)`
      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. Use `addParameter(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 index `ind`.

    - #### 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 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
      Version:
        31.07.04, 1.00 created (kp)

    - #### 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().

      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 index `ind`.

      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 evaluate
        `arg` - 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 evaluate
        `args` - Value of function argument.
      Returns:
        double value of function component evaluated at argument

    - #### eval

          public boolean eval(PuComplex[] result,
                              PuComplex 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.

"

The software JavaView? is copyright protected. All Rights Reserved.
"