
readme.txt:
tgeg  the Great Equation Graph

Copyright (c) 2001 Ryan Phillips
What is tgeg and can it compete with my TI89?

The Great Equation Graph is a mathematical tool designed to allow
representation of abstract mathematical situations and graphing of
equations. Features include development of a commandline shell and
scripting language, as well as a graphical interface for graphing of
such equations as lines and conic sections. The basic libraries are
independent from the user interface, allowing a generic algebra
library to be built separately, should the demand arise.
Competition with handheld graphing calculators is no longer a goal of
the tgeg project.
Dynamic subsystem

The dynamic mathematical subsystem is the heart and soul of tgeg.
Unlike programming languages where a variable is assigned a static
value, tgeg allows one to assign a relationship to other variables.
Thus when the value of one variable changes, any number of related
variables may be affected. A scripting language based upon this
concept should be built into tgeg at some time in the future.
Usage

The tgeg command prompt uses a unique, but simple system of syntax to
establish relations between variables. The following are acceptable in
tgeg statements:
foo  the string foo is returned, verbatim. Foo may contain
numbers, algebraic operations, and variable names
foo=bar  relates the value of foo to the string bar, where bar may
be any valid tgeg statement.
 any variable names in the string bar are substituted with
their value. The closing '>' is implied by a newline.
#bar#  the string bar is evaluated into a number. The closing
'#' is implied by a newline
Example:
To sum up a list of purchases and apply tax, the following example
sets up the appropriate relationships:
tax=0.082
subtotal=item1+item2
total=subtotal*(1+tax)
To make use of these relations and evaluate the total, use:
item1=5.00
item2=3.00
#total#
Should the same purchase be made in another state or country, the tax
could be changed and the total immediately recalculated:
tax=0.088
#total#
Try this double substitution just to see what happens:
<>
Equations

To graph an equation, presently use the prompt to assign y a value in
relation to x, e.g.
y=2sin x
Resize the window to make the graph update. Sorry, I'm still learning
how to make all these widgets talk to each other.
History

Originally a DOS program written in Turbo C++ for the Borland Graphics
Interface (anybody remember that?), tgeg sought to replace the need
for an expensive graphing calculator in my high school precalculus
class. Developed as "the project" for my Programming II class, it
successfully achieved its goal of graphing all kinds of awesome
equations, including conic sections (a task which certain graphing
calculators can do, but only with great effort).
Unfortunately, the impressive user interface was NOT portable in any
way and the only variable available when graphing functions was "x".
Thus tgeg spent many years "stuck in a rut" while I dreamed of doing
something greater with it, someday.
Enter today, stage left. Using a graphical interface loosely tied to
the extremely portable wxWindows library, tgeg now emerges into the
worlds of Windows and Linux. Built from the ground up on a dynamic,
relationbased mathematical subsystem, tgeg promises to fulfill my
dreams of building something so extensible that the possibilities know
no bounds.
Legalities

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 021111307 USA
See the included file "copying.txt" for a copy of the license.
