With GrafEq,
the absolute value operation can be specified using the standard
form.

Accurate, Precise, and Robust graphing

GrafEq’s graphing engine is
both robust and precise.
The following definitions will help clarify the matter:

precise - detailed,

accurate - errorless,

robust - sturdy.

While graphing, the desired precision is determined by the
resolution of the monitor used and the size of the region to be graphed.
All graphing programs aim to be accurate,
or to produce correct graphs, but no program can correctly graph
every graph which can be defined using implicit relations.
Graphing programs can be distinguished by their robustness:

how they react to equations they cannot graph faithfully, and

how common such equations are.

GrafEq is the most robust graphing program available.
Our
gallery and
rogue’s gallery
feature examples of graphs and equations which
GrafEq correctly graphs that other graphing programs have difficulty with.
When released in 1993, GrafEq pioneered many approaches to graphing equations
on computers, and it still leads the field as of November 2005, although
some other graphing programs have adopted some of its methods.

GrafEq Accepts Standard Math Formats

With GrafEq,
equations may be entered naturally, using any standard form.
For example:

implicit multiplication is assumed, so “2x” may be entered rather than “2*x”;

functions may be applied without brackets, so “sin2x” may be entered rather
than “sin(2*x)”;

a sophisticated parser understands the usual mathematical conventions,
so “sinxycosx” may be entered rather than “sin(x*y)*cos(x)”;

standard math formatting is automatically applied to radicals and ratios;

(Given by “y=sqrt(x)”.)

(Given by “(x-2)^2/3=(y-4)^2/3”.)

the absolute value of x is easily entered as “|x|”; and

conditional/piecewise definition can be entered intuitively.

(Given by “y={x if x>0,0 if x=0,-x if x<0}”.)

This list is by no means complete; but it demonstrates some of
the parsing features which set GrafEq
apart from the competition for ease of use
and integration into the mathematics curriculum.

Easy Buttons

GrafEq’s relation input windows are equipped with ten sets of easy buttons for entering
special symbols. Easy buttons make relation editing simple and easy even for beginners.

Functions

Enter a function in any standard form and GrafEq
will plot its graph.

Conics

Enter an equation of a conic in any
standard form and
GrafEq will plot its graph.

Relations

Enter an implicit equation for a relation and GrafEq
will plot its graph.

Equations

Enter an equation in any standard form and GrafEq
will plot its graph.

Inequalities

Enter an inequality in any standard form and GrafEq
will plot its graph.

Cartesian Coordinates

Enter an equation in x and y (or other variables of your choice) GrafEq
will plot its graph in Cartesian coordinates.

Polar Relations

Polar relations can be displayed with GrafEq.
Enter a polar equation in any standard form and GrafEq
will plot its graph.

Parametric Relations

Parametric relations can be displayed with GrafEq.
GrafEq will plot the graph of a parametric relation given in any standard
form.

Trigonometric Functions

Enter an equation of a trigonometric function in any
standard form and GrafEq
will plot its graph.

GrafEq supplies hyperbolic trigonometric functions.
While standard trig functions are based on a circle,
hyperbolic trig functions are based on a hyperbola;
GrafEq also supplies trig functions based on a square and on a diamond.

Exponential Functions

Enter an equation of an exponential function in any
standard form and
GrafEq will plot its graph.

Constants

With GrafEq,
the values of constants can be specified within the equation, or as separate
constraints.

Multiple Constraints

With GrafEq,
multiple constraints can be used (and in chains, if so desired).

Zoom In / Zoom Out

The zoom feature of GrafEq allows both zooming out, to more extensive regions,

and zooming in, to smaller regions.

Note that each inward zoom requires higher precision for graphing.
While most graphing programs create incorrect graphs when
the platform’s precision limit is reached,
GrafEq’s
successive refinement graphing method
ensures that correct graphs are produced.

Points

The coordinates of a point can be estimated with GrafEq
using the One-Point mode.
The zooming feature of GrafEq
allows the point to be positioned precisely for accurate estimation.

Slopes

The slope of a curve can be estimated with GrafEq
using the Two-Point / Slope mode.
The zoom feature of GrafEq
allows the endpoints of the line AB
to be positioned precisely for accurate estimation.

Distances

The distance between two points on a curve can be estimated with GrafEq
using the Two-Point / Distance mode.
Better estimation is possible by zooming.

Angles

The angle between a curve and the x-axis can be estimated with GrafEq
using the Two-Point / Degrees mode.
The zoom feature of GrafEq
allows the endpoints of the line AB to be positioned precisely for accurate estimation.

Custom Ticks

In addition to standard numerical ticks, GrafEq
allows users to define custom ticks.
Some commonly used ticks, such as multiples of
π along the x axis, are preformatted in GrafEq.

Patterns

GrafEq allows users to choose patterns and colours for graphs.
Users may blend the colours and patterns chosen, to highlight the
regions common to the different relations.
These features are particularly useful for displaying inequalities
and for printing.

Colours

GrafEq allows users to choose patterns and colours for graphs.
Users may blend the colours and patterns chosen, to highlight the
regions common to the different relations.
These features are particularly useful for displaying inequalities
and for printing.

Robust Graphing

GrafEq can display detailed information about the knowledge it
has of a graph by using three colours, rather than just the usual two.
Normally, GrafEq displays a graph using two colours, with each colour signifying that either

some point in the pixel’s region might satisfy the equation, or

no point in the pixel’s region satisfies the equation.

Starting with version 2.02, GrafEq can improve its presentation by
using three colours, with the new colour signifying that

at least one point in the pixel’s region satisfies the equation.

The following pictures show GrafEq refining a graph.
The graphing starts with all pixels undetermined (i.e. some point
in the pixel’s region may satisfy the equation—first item in the
first list).
In this example,
red is used to signify these undetermined pixels. (The colours can be set to your preferences in GrafEq.)

Red—the equation may or may not be satisfied in the region.

Almost immediately, black and white regions appear in the graph; both signify strong knowledge.

Black—the equation is satisfied (somewhere) in the region.

White—the equation is not satisfied (anywhere) in the region.

The red region dissolves over time, as GrafEq
determines each pixel to be white or black.

In the end, there is no red left—every pixel has been decided.

Although no computer program can correctly graph every implicit equation,
GrafEq is the most robust graphing program available.
GrafEq appropriately handles floating-point round-off,
as shown in our page on zooming.
Our
gallery and
rogue’s gallery
feature many examples of complicated graphs and equations which
GrafEq correctly graphs.

Precise Graphing

GrafEq’s ability to precisely and robustly graph relations allow very
satisfying graphs to be generated.
A graphing program is:

accurate and robust if the produced graphs are correct, and

precise if the produced graphs have no "undetermined" pixels (see our page on robust graphing).

Since no graphing program can be perfectly accurate and precise,
GrafEq can explicitely display pixels whose status has not yet been determined
(by using a third colour).
Most graphing programs are highly precise but not robust.
A highly precise, yet inaccurate odometer would display a distance
travelled of 31,415.926535897932 miles for a brand new car.

The following graph demonstrates the precision GrafEq is capable of:

The following picture is a magnification of
the upper right-hand portion of the preceding graph:

In the magnified display, the true graph has been overlaid in yellow;
note that every pixel in the original graph is correct—a pixel is set (dark blue, in this case)
if and only if the equation has a solution within the region the pixel represents.
GrafEq is both accurate and precise in this graph.

Successive Refinement

Initially, GrafEq
considers the entire view as containing possible solutions.
As graphing proceeds,
GrafEq deletes regions that do not contain any solutions.
The remaining region continually shrinks, revealing the actual graph.

No computer program can correctly graph all equations. For some graphs,
GrafEq may not be able to reveal the true graph:
the precision provided by the host platform may be insufficient
(usually after a succession of zooms),
or the equation may simply be too complicated for GrafEq.

GrafEq can graph a wide variety of equations; see either the
gallery or the
rogue’s gallery
for some examples of complicated graphs which
GrafEq correctly graphs.

File Formats

GrafEq can save and open files in four different formats:

Full format—all information is stored (current relations,
views, ticks, and graphing state). As the graphing state is saved,
graphing resumes when the file is re-opened; previously plotted views of
complex graphs may be quickly displayed.

Skeleton format—similar to full format, except that the graphing state is
not stored. Upon re-opening, GrafEq
will start graphing each open view.
This format is much more compact than full format.

Picture format—a picture of the foremost view is saved in a format that other
programs, such as drawing and word-processing programs,
may understand. On the Macintosh, pictures are stored as PICT files,
while on a Windows machine, pictures are stored as WMF files.

PCX format—a raster (bitmap) image format.

Polynomials

Enter an equation of a polynomial in any standard
form and
GrafEq will plot its graph.

Singularities

GrafEq plots graphs with singularities correctly, as it uses a
successive refinement graphing method.

Transformations

GrafEq supports plotting of multiple graphs on the same viewport, so the effects of
various transformations can be clearly displayed.

Simultaneous Systems

With GrafEq,
you can overlay and / or blend
multiple relations in one viewport. Points common to several
relations can be discovered visually.
These features are especially useful with inequalities.

Intercepts

With GrafEq, relation-axis intercepts can be discovered visually.
Precise coordinates can be found by
zooming in.

Linear Functions

Many properties of linear graphs can be explored using various
GrafEq features.
For example, the coordinates of the x and y
intercepts of a line can be estimated with
GrafEq using the One-Point mode; the slope can be estimated using the Two-Point / Slope
mode.