For some graphs speed may also be set to a higher value, say 6, 8 or even 10, without much loss to the graph drawn. When set to 10 the speed gain is about a factor 2.5 with respect to the default value of 4.

Try to experiment which setting of speed gives the best result for the given functions.

```
<PARAM name=function3 value="user............>
```

```
```

People that do not have access to a JAVA compiler may profit from the functions compiled into the user.class that is part of this distribution.

- user

This type is entered as follows Only one function of this type can be present. In the version of user.class in this distribution it is the function y=sin(x)+cos(x)`<PARAM name=function2 value="user">`

Note 1: it is not the function number that matters; it could also have been function1 or function4

Note 2: only the current value of x is presented to the method double f(double x) in user.class. Those that want to change this function should alter it in user.java and compile user.class again. - user:
*text*

For GraphApplet to use this type something like the following should be entered: Everything after user: is presented as functie to the method double f(String functie,double x) in user.class.`<PARAM name=function2 value="user:`

*text*">

In the version of user.class in this distribution*text*can be 1,2,3,4,5. This not a property of GraphApplet but of this version of user.class.

The functions compiled into user.class areuser:1 sin user:2 cos user:3 tan user:4 exp user:5 abs `<PARAM name=function2 value="user:2">`

will draw the cosine function.

>Look at this example to see these functions at workNote 1: Adding new functions is straightforward: look at the syntax in the method double f(String functie,double x) and you can add other functions and compile user.class again

Note 2: You can also invent a new scheme that uses names instead of numbers. That's up to the one that compiles user.class. The only thing that may not be altered is the heading of the method. - user:
*text*;parameterlist

For GraphApplet to use this type something like the following should be entered: First of all GraphApplet calculates the possible combinations of the parameters in the parameterlist. All combinations are then one after another stored in something called a hashtable. The part`<PARAM name=function2 value="user:`

*text*";a=1,2;b=1,3,4>*text*part between user: and the paramterlist together with the hashtable is then presented to to the method double f(String functie,double x, Hashtable h) in user.class.

In the version of user.class in this distribution*text*can be sin, cos, par, part, exp, power, line . This not a property of GraphApplet but of this version of user.class.

The functions so compiled into user.class aresin y=a+b*sin(x+c) cos y=a+b*cos(x+c) par the parabola:y=ax ^{2}+bx+cpart the parabola: y=a(x-b) ^{2}+cexp y=a*e ^{bx}+cpower y=a*x ^{b}+cline y=ax+b `<PARAM name=function1 value="user:line;a=2,3;b=1,5">`

will draw the lines y=2x+1, y=2x+5, y=3x+1 and y=3x+5

>Look at this example to see these functions at workNote 1: As you can see the only parameters allowed in this version of user.class are a, b and c. Between different functions these parameters are not cleared. Omitting them in a function call that needs them may give rise to unpredictable results.

Note 2: Looking at the syntax of this method you can add new functions as you wish and compile user.class again. Should you wish to use more or different parameters you can use the provided method double getvar(String var,Hashtable h) that is also part of user.class

Note 3: When you do not use the built in string evaluator but only functions described by the user prefix you can better use uGraphApplet instead of GraphApplet. uGraphApplet does not mention Eval.class from the Lundin Symbolic Mathpackage. The subdirectory lundin needs not to be present when using uGraphApplet instead of GraphApplet. This decreases download time when viewed over the web.