FunPlot evaluates expressions of a single variable *x* and plots the corresponding function: use arithmetical binary operations +, -, *, /, ^ with the usual precedence rules to write your expressions. For example `x+2*x^3` corresponds to *x+2x ^{3}* and it is evalued first computing

Notice that exponentiation has lower precedence than negation, so that *-x*^{2} which is usually understood as -(*x*^{2}) should be typed as `-(x^2)`.

A special syntax is provided for function whose definition depends on the input variable `x`: namely, use the notation `{ cond_{1} : expr_{1} , ..., cond_{n} : expr_{n} }` to define a function which evalues to the expression corresponding to the condition. A condition is of the form

For example `{ x < 0 : -1, x >=0 : 1 }` will plot the usual Heaviside function.

Functions of one variable may be used and defined: they do not require parentheses when invoked, for example type `sin x` instead of `sin(x)`, but be aware that `sin 2*x` is the same as `(sin 2)*x`, not the same as `sin(2*x)`.

Built-in functions are: `abs` (absolute value), `acos` (arc cosine), `asin` (arc sine), `atan` (arc tangent), `ceil` (round to ceil integer), `cos` (cosine), `exp` (exponential function), `floor`, (round to floor integer), `log` (natural logarithm), `round` (round to nearest integer), `sin` (sinus) , `sqrt` (square root), `tan` (tangent). Also two symbolic constants are provided: `pi` for pi greek and `e` for Euler constant.

The interpreter is case insensitive, and spaces and tabs may appear anywhere and are skipped.

Variables may be defined via the syntax *name = expression*, where

Similarly, functions of one variable may be defined via the syntax *name (x)= expression*. One can evaluate a function providing an actual argument, by

Trying to redefine a variable or a function will raise an error. To delete a variable of runction use `del name`, while to drop all defined symbols use

Expressions representing functions of the variable `x` to be plotted may be inserted into the text form at the top of the page.Each time a function is inserted it is plotted in the graph arew without deleting previously plotted functions: the app tries to plot each new function in a different color. To clear the screen use the `cls` command.

Since a graph may be shifted via finger gestures, by means of `center` command the center of Cartesian coordinates will be restored to the center of the plotting area.

When the application is opened on a browser running on a device equipped with a keyboard, one can shift the graph via arrow keys (the input area has to be cleaned to the empty string) and one can zoom via pgup/down keys.

(c) 2012 by Paolo Caressa. Back to the application.