*Constants* Use pi for the usual 3.14159.... Use e for the base of the
natural log, 2.71828....

*Functions* The argument to a function must be surrounded by parentheses,
like abs(x).
The function grapher understands the following functions.

abs | Absolute value. You may also use |x|. |

sqrt | Square root. |

cbrt | Cube root. |

root | General root: root(5,x) computes the fifth root of x. |

! | Factorial. Use x! for x factorial. |

exp | Exponential with base e. exp(x) is the same as e^x. |

log, ln | Logarithm with base e. |

sin | Sine function. |

cos | Cosine function. |

tan | Tangent function. |

sec | Secant function. |

csc | Cosecant function. |

cot | Cotangent function. |

arcsin | Inverse sine function. |

arccos | Inverse cosine function. |

arctan | Inverse tangent function. |

sinh | Hyperbolic sine function. |

cosh | Hyperbolic cosine function. |

tanh | Hyperbolic tangent function. |

*Summation* You can define a function using summation notation. For example,
sum(x^n,n,1,4) is the same as x+x^2+x^3+x^4. In general, use
sum(expr,var,start,end) to sum the expression expr for values of var
(which is allowed to be any single letter other than x or e) from start
to end in increments of 1. Use
sum(expr,var,start,end,incr) to use an increment other than 1.

*Sequences of Functions* You can graph a sequence of functions depending on
a parameter. For example, seq(x^n,n,1,4) is the same as x;x^2;x^3;x^4.
In general, use seq(expr,var,start,end) to graph the expression for values of
var (which is allowed to be any single letter other than x or e) from start
to end in increments of 1. Use
seq(expr,var,start,end,incr) to use an increment other than 1.
You may graph a sequence of sequences, but sequences may not otherwise appear
inside functions.

*Logical Expressions* You may use logical expressions that evaluate to
0 when false and 1 when true. These are useful for graphing piecewise-defined
functions, for example.
You may use the comparison operators =, <, >, <= (less-than-or-equal), >=
(greater-than-or-equal), and != (not-equal).
You may use the logical operators & (and), | (or), and ! (not).
So, for example, (x<3)&!(x<2) evaluates to 1 when x is less than 3 and not
less than 2, but evaluates to 0 otherwise. The parentheses are actually optional
in that expression.

*Tick Marks* You may specify the spacing of tick marks. The grapher
tries to be smart about drawing its tick marks, however. The actual spacing of
the tick marks will be a power of 10 times the spacing you specify, chosen
so that the tick marks are spaced not too close together or too far apart.

*Selecting a Region*
You may select a region of the graph for use in zooming (below) by clicking
and dragging with the mouse (left-most button for multiple button mice).

*Zooming In*
Choosing Zoom In from the menu, or clicking on the Zoom In button, does one of
two things. If you have selected a region of the graph as above, that region is
enlarged to fill the whole graph. Otherwise, zoom in towards the center of
the graph by a factor of 2.

*Zooming Out*
Choosing Zoom Out from the menu, or clicking on the Zoom Out button, does one
of two things. If you have selected a region of the graph, the visible graph
is shrunk to fit inside that selection. Otherwise, zoom out away from the center
of the graph by a factor of 2.

*Squaring Up*
Choosing Square Up from the menu or clicking on the Square Up button will
adjust the graph so that 1 unit on the x-axis looks the same length as one
unit on the y-axis.

*Tracing*
If you choose Trace from the menu the grapher will trace your mouse movements
along one of the graphs. An X will be drawn on the point of the graph with the
same x-coordinate as the mouse, and the coordinates of that point will be shown
below the graph, together with the expression that defines that function.
If you are graphing more than one function, you can change which function is
being traced by choosing Next Function or Previous Function from the menu, clicking
on the buttons of the same names, or using the down and up arrows on your
keyboard (you may have to click somewhere in the graph to get the arrow keys
to work).