			    OPERATORS AND FUNCTIONS
Basic operators:	    Other operators:
──────────────────────────┬───────────────────────────────────────────────────
  +     addition	  │  [( )]   Parentheses: may be nested to any extent;
  -     subtraction       │	     parser WON'T distinguish between ( and [
  *     multiplication    │  ;       Separate halves of a parametric equation
  /     division	  │  '       Make rest of the equation a comment
  ^     exponentiation    │  {m, n}  Specify domain, where 'm' is the start of
  =     normal equation   │	     the domain and 'n' is the end. Either end
──────────────────────────┤	     may be left open by omitting 'm' or 'n'.
Functions supported:      │  <, >    less-than or greater-than inequality
──────────────────────────┼───────────────────────────────────────────────────
abs     absolute value    │  exp     Euler's number to the given power (e^x)
acos    arc cosine	  │  int     greatest integer ([x] is not supported)
asin    arc sine	  │  ln      natural logarithm
atan    arc tangent       │  log     logarithm base 10
asec    arc secant	  │  sec     secant (1/cos)
acsc    arc cosecant      │  sin     sine
acot    arc cotangent     │  sinh    hyperbolic sine	      ┌─────────┐
cos     cosine		  │  sqr     square root	      │PgDn for │
cosh    hyperbolic cosine │  tan     tangent		      │more help│
cot     cotangent (1/tan) │  tanh    hyperbolic tangent       └─────────┘
csc     cosecant (1/sin)  │
			    CONSTANTS AND VARIABLES

   Variables	       Usage
   ─────────────────   ──────────────────────────────────────────────
   x, y		       rectangular coordinates
   r, t		       r and theta in polar coordinates
   x, y, t	       x and y as functions of t in parametric form
   x, t, dx	       dif-eq mode, solves first order o.d.e.
		       dx is actually dx/dt in dx/dt = f(x,t)
   a		       user-settable free variable; can specify range
		       and step rate to calculate several values

   Constant	       Value
   ─────────────────   ──────────────────────────────────────────────
   b, c		       user-settable free variables (constant)
   d		       converts degrees to radians = p/180
   e		       Euler's number = 2.718...
   pi (or p)	       p = 3.14159...

   NOTE: by default, all trig functions work in radians, not degrees. You
   can convert using the constant d: e.g. sin(45d) = sin (pi/4)
   cos (x*d) = cosine of x, in degrees (you will need to change the range
   of x to 0 to 360 to get the full graph)	     Press PgDn for more help.
			 GRAPHING CARTESIAN FUNCTIONS
Here are the ground rules for normal Cartesian equations:
+ Always use exactly one "=" per equation
+ Always use exactly one "y", which need not be isolated
+ Always put some sort of expression on both sides of the "="
+ An expression consists of any mathematically meaningful combination of
  decimal numbers, binary operations like + and *, parentheses, functions,
  and variables or constants.
+ Spaces are completely optional, except where they serve to separate
  alphabetic identifiers.
+ The order of operations is the standard algebraic left to right of:
		      Functions, Parentheses, Exponents,
	    Multiplication and division, Addition and subtraction

Graphmatica supports implied multiplication of variables and constants, but
variables and other alphabetic identifiers such as functions and constants
MUST be separated by a space or '*' or they will not be identified correctly.
    Examples:     3x     5(2x+3)     x pi      x*cos(x)

Call a function by tying the function's name followed by an argument. If the
argument is more complex than "x", enclose it in parentheses to be safe.
    Examples:     cos x       log (2x)      sin (3x^2-5)
						     Press PgDn for more help.
			     SPECIFYING THE DOMAIN
Graphmatica lets you specify the domain of each equation independently, so you
do not have to use the range function to change the default domain each time.
To specify a domain, add anywhere in your equation the expression:
				   { m, n }
where 'm' is the start of the domain and 'n' is the end. If you want the
domain to start at the default start, leave 'm' out. To leave the end of the
domain open, leave out 'n'. So if the range on-screen is (-10,10), specifying
a domain of "{ ,5}" will graph from -10 to 5, and one of "{-4, }"  from -4 to
10. To graph a parametric equation, you MUST specify a domain that is closed.

The domain is parsed like any other expression, so you can use any operator or
function as well as numbers and the constants d, e, and pi. However, you can
not use variables in a domain.   Examples:    {0, 2p}      { -3, log 2}

			     USING FREE VARIABLES
The free variables 'b' and 'c', which you can define yourself, make it easier
to "play around" with the exact shape of a curve without editing the equation.
If you want, you can type in a value manually using a format similar to
the domain specifier described above. (See manual for details)
  Examples:       {b: 1}	    {c: -1/2}	  {b: -pi/4}
If you don't include this value, Graphmatica will prompt you for it.
				     Press PgDn for help on function families.
			GRAPHING FAMILIES OF FUNCTIONS
The free variable 'a' lets you specify not just a single value, but a range of
possible values that it can take. This lets you easily graph families of
functions or level curves of a 3-D surface. For instance, "y = a*cos(x)" will
graph cosine curves of varying amplitudes, and "x^3+y^2 = a" will draw level
curves of the surface "f(x,y) = x^3+y^2".

When you use 'a' in an equation, Graphmatica will prompt for the needed values
and insert them for you: the start of the range, the end of the range, and the
amount to step by. Graphmatica starts by graphing the function with 'a' set to
the start of its range, and then increments 'a' by the step value and draws
another graph until 'a' exceeds the end of its range. (You can give a negative
step value as long as the end of the range is less than the start.) The
program does not put any limit on the number of curves in the "family" you can
graph, but this feature uses memory rapidly, so try to limit 'a' to about 10
iterations.
			MODIFIYING FREE VARIABLE VALUES
The Set Vars command in the Point menu allows you to change the value of 'a',
'b', or 'c' instantly in all equations without actually editing any of them.
After you select a variable and provide a new value for it, Graphmatica will
find all the equations using the variable, make a copy of each using the new
value, and then graph them automatically.
						     Press PgDn for more help.
			       DRAWING THE GRAPH

Once you have entered an equation that parses successfully and pressed enter,
Graphmatica will proceed to graph it. To interrupt a graph when the computer
is in the process of drawing it, hit any key and the program will display on
the bottom line the message:
   "PAUSE at x=#, y=#. Press ESC to quit, any other key to restart.. "
where # indicates the x and y coordinates you stopped it at. If you mistyped
the equation and want to fix it, just press ESC. Be patient! Graphmatica may
need a while to produce a quality graph on a slower machine. To speed up the
graphing, you may want to select a lower Fineness value.

When the graph for your equation is complete, the blinking cursor will
reappear in the equation editor. If you'd like to type in a completely
different equation, press ESC to clear the input field. If you'd rather modify
the last equation, go right ahead; it's already stored in the redraw queue.
Or modify any previously entered equation by pressing the down arrow key (or
clicking on the down arrow next to the editing field) to drop down the
equation queue listbox and then selecting an equation from the redraw queue.
You can then redraw this equation by pressing enter, or modify it to create a
new equation. To access Graphmatica's other features, press Alt to raise the
menu, or click on the menu with the mouse.
					  Press PgDn for help on inequalities.
			     GRAPHING INEQUALITIES

You can graph rectangular-coordinate inequalities by replacing the '=' with
'<' or '>' for many simple functions and relations. This feature is presently
only available for cartesian graphs. (Also, since the free variable 'a'
implies that more than one curve will be drawn, equations containing 'a' are
incompatible with inequalities, and the parser will not accept any inequality
that uses 'a'.)

The region that solves the inequality is hatched in with the graph color. (The
curve itself is not actually dotted to indicate a strict inequality, however,
so '<' is effectively "less than or equal to".) In most cases, asymptotes are
detected and a boundary added there as appropriate, so graphs like "y < tan x"
and "xy > 1" are drawn correctly. In addition, the valid domain of the
function being graphed is detected automatically, so "y > log x", for
instance, shades only the first and fourth quadrants.

To accommodate intersecting regions, the graphing routine alternates between
'\' and '/' hatching. Best results will be obtained when you graph no more
than two inequalities on the same screen; a region MAY SHADE INCORRECTLY if
another graph of the same color intersects it. If you have problems with
shading "leaking out," increasing the fineness should help.
					  Press PgDn for help on polar graphs.
		    EXTENDED GRAPH FUNCTIONS: POLAR GRAPHS
     Polar  coordinates are a fundamentally different approach to representing
curves in 2-dimensional space.  If you have never used polar  coordinates  and
want to understand them, you should read Section III in the manual first.
    To make  a graph using polar coordinates,  we calculate a distance to plot
out  from  the  origin as we  let theta ("t")  sweep around  in  the  positive
direction.   The default domain is 0 to 2pi (the first complete circle in  the
positive  direction),   but  you  can  easily  change these  values  using the
T  range  function  [see View help file].  Polar graphs  are  entered  in  the
equation editor just like normal graphs. The only difference in what you type,
and how Graphmatica detects a polar graph,  is that you must use the variables
't'  and 'r' instead of 'x' and 'y'. The restrictions are still the same:  you
can have one and only one instance of the dependent variable 'r' but it can be
located almost anywhere in the equation.  Watch as your graph is drawn;  often
the  direction  it is going is as important as the figure it  draws.    (In  a
"double" equation of "r^2", first the positive and then the negative roots are
drawn; they should be drawn simultaneously but it isn't practically possible.)
    The  x  and  y coordinate ranges and the  range  for theta  are completely
independent;  in normal Cartesian graphing,  Θ's value is irrelevant,  and  in
polar graphing,  Θ  controls the domain of the graph,  but the x and y  ranges
still control the physical screen you see.  If you want to change your view of
a polar graph, use the scale or range functions just as you would normally.
				     Press PgDn for help on parametric graphs.
		  EXTENDED GRAPH FUNCTIONS: PARAMETRIC GRAPHS
    (For  a  full  explanation of parametric graphing,  read  Section  III  in
the manual.  This section  just shows  how to  enter parametric graphs.)  In
parametric graphing, the cartesian x and y coordinates are calculated based on
a third variable (the "parameter" of x and y)  called  't' (not to be confused
with the 't' used to represent theta). T is allowed to increase from the start
of the domain you specify to the end.  At each value,  the functions x(t)  and
y(t) are  calculated to  give an  (x,y) coordinate which is drawn. Graphmatica
then connects these  points to form a  smooth curve -- if something  you graph
looks jagged, you probably need to adjust the fineness. (See Options help)
    To  enter a parametric graph,  you need to remember four basic parts:  the
x(t) and y(t) functions,  the semicolon between them (this is how  Graphmatica
knows you're entering a parametric graph), and the domain for t.
			   semicolon   y-function
				 	
	  x-function -> x =  2t  ;   y =  2t^2   {-10, 10} <- domain
You don't need to solve for x and y (5x=t is OK), but only one x and one y can
appear  in the whole equation,  and "double"  equations like "x^2=t"  are  NOT
supported  (if you enter them only the positive root will be found).  You MUST
specify  a domain for each parametric equation!  Some curves (like those based
on  sin and cos)  work best over a {0,2pi} domain,  like polar graphs.  Others
match  the default domain of normal graphs better.  If you estimate the domain
wrong, abort the graph and edit it.      Press PgDn for help on differentials.
		GRAPHING APPROXIMATIONS OF DIFFERENTIAL EQUATIONS

Graphmatica also allows you to approximate the solutions of first-order
differential equations. To let the parser know you want to graph a
differential equation, you must include the differential "dx" (which actually
represents dx/dt) as one of your variables. If you specify an equation as
				  dx = f(x,t)
where f(x,t) is some combination of the variables x and t (such as "x^3 + t")
and do NOT include the domain operator "{ , }", the program will draw a slope
field for dx/dt = f(x,t). t is the horizontal axis, and x the vertical.

If you do include the domain operator {m, n}, it will not be interpreted as a
domain but will instead indicate that you want to graph a specific solution to
the initial-value problem x(m)=n by Runge-Kutta approximation. This deviation
from the normal notation is only valid for differentials.

In addition, you can specify an initial value by moving the crosshairs around
with the arrow keys or mouse. Type in an equation to add an IV to or select an
equation to modify and choose the Set IV option from the Point menu. Move the
cursor to the desired location and press enter or click the left mouse button
to add the initial value point to the selected equation. Then press enter in
the equation editor to graph the solution.
					Press PgDn for help on Error Messages.
				ERROR MESSAGES

17 error messages may be encountered when graphing. Twelve of them are fatal;
the equation cannot be graphed and you must edit it. They will make the
computer beep so you know there is a problem. The other five apply only to
specific point(s) for which a y-value cannot be generated. They will not
appear unless turn the Warnings option on, and then appear silently.

[Please note that all warning messages which refer to the variables 'x' or 'y'
will actually be 't' or 'r' when you are dealing with a polar equation.]

"Please type an equation (or select from the listbox); then press ─┘ to
graph."
    You pressed enter on the graph line without selecting or typing in an
    equation.

"No equals sign or more than one found. Press any key to edit the equation."
    To be a valid and graphable, your equation must include exactly one equals
    sign ['=']. If you get this error, you either left out the '=' or
    accidentally typed two or more of them. For parametric equations, there
    must be an '=' on each side of the dividing ';'.

					   Press PgDn for more error messages.
			   ERROR MESSAGES continued
"One or both sides of equation evaluated to nothing. Please edit your
equation."
    Make sure there is some sort of expression on each side of the equation.
    Obviously, an entry like "y=" can't produce a meaningful graph.

"Inequalities only supported for rectangular equations. Replace < or >
with =."
    Inequalities cannot presently be evaluated for polar, parametric, or
    differential equations. You may still be able to draw the graph if you can
    express the inequality in rectangular form.

"Found bad operation or mismatched parentheses. Press any key to edit..."
    You equation had different numbers of open and close parens, was missing
    an operand for a binary operation, or included something else the parser
    couldn't digest (like parentheses around the entire expression). Examine
    your equation carefully and fix whatever seems to be the problem.

"Initial value must be on screen to graph an ode. Modify grid or equation's
IV." Since an initial-value approximation that doesn't start in the visible
    grid may never encounter it, Graphmatica tries to avoid this situation.
    Simply move the IV point or modify the grid so that it is on screen.
					   Press PgDn for more error messages.
			   ERROR MESSAGES continued

"Missing required argument to function. Press any key to edit the
 equation."
    The parser couldn't find any expression to use as the argument for a
    function, like cos(x). All functions require one argument following the
    function name, preferably enclosed in parentheses.

"Found unknown variable or function. Press any key to edit the equation."
    Check that your equation contains only valid identifiers (see the
    functions and variables tables in the Graph help file) and that you
    separated each of them with an operator, space, or some other punctuation.

"No dependent variable or more than one 'y' found. Please edit your equation."
    Although Graphmatica can isolate ONE 'y' variable and graph some
    relations, it cannot graph an equation without a 'y', like "x=4". It also
    cannot perform the factoring needed to isolate the variable 'y' (or 'r')
    when it occurs more than once (i.e. "x=y^2+3y"). If you can adjust the
    equation so it uses only one 'y', do so; otherwise it can't be graphed. In
    parametric graphing, this message may also indicate that no 'x' variable
    was found in the x(t) equation.

					   Press PgDn for more error messages.
			   ERROR MESSAGES continued

"Can't find the inverse of this function of y. Press a key to edit equation."
    You tried to graph an equation like "int(y)=x" or "abs(y)=x" for which y
    cannot be isolated by taking the inverse of the function. The functions
    which cannot be isolated are "abs", "cosh", "sinh", "tanh", and "int". If
    you can't adjust the equation so this error does not occur, it is not
    graphable.

"Parametric equation requires that you specify domain! See 'Graph' help file."
    You typed in a parametric equation (or accidentally hit the semicolon) and
    neglected to include a closed domain [like {1,6}]. Because the diversity
    of parametric equations makes it hard to pick a default domain, you have
    to include one with each parametric graph. See Sections I and III in the
    manual for help on entering a domain and parametrics.

"Domain did not evaluate to a constant value. Press a key to edit equation."
    The domain you entered either could not be parsed, or was found to contain
    a non-constant identifier, like x or y. Valid domains must have at least
    one side of the range defined and can't contain variables, although any
    other expression that evaluates to a constant is OK.

					Press PgDn for warning error messages.
			    WARNING ERROR MESSAGES
"Overflow at x=#.##."
    Some  function or operation  generated a number  too large to  fit into an
    eight-byte floating point variable. The point at x=#.## was not graphed.

"Division by zero at x=#.##."
    At #.## your equation attempted division by zero so the point was skipped.

"Can't raise a negative number to a fractional power. [x=#.##]"
    Due to the possibility of getting an even root of a negative number, the C
    Library pow()  function  refuses to process any arguments like these.  The
    portion of your graph (if any) where the base is not negative or the power
    is not fractional should be graphed perfectly. This error also occurs when
    you take the square root of a negative number with the "sqr" function.

"Can't find the logarithm of a negative number. [x=#.##]"
    The natural logarithm (ln) and base 10 logarithm (log) functions are
    defined only on x greater than zero.

"Domain error: asin/acos functions defined only on -1≤x≤1. [x=#.##]"
    The arcsine (asin) and arc cosine (acos) functions are only defined
    between -1 and 1 (the range of the sin and cos functions).
──────────────End of Graphing help. Press ESC to return to menu.──────────────
