tgeg - the Great Equation Graph ------------------------------- Copyright (c) 2001 Ryan Phillips What is tgeg and can it compete with my TI-89? ---------------------------------------------- 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 command-line 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 hand-held 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 pre-calculus 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, relation-based 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 02111-1307 USA See the included file "copying.txt" for a copy of the license.