A Brief Timeline of History*

(*Apologies to Stephen Hawking for this title!)

The following is a rough timeline of the history and evolution of AutoMathic.  It can be read on its own, but some references to program features may not make sense without some understanding of what AutoMathic is and what it can do.

The timeline also shows how computer technology has changed...  Technological advancements made my vision of AutoMathic attainable, but also changed my vision of what AutoMathic could be.

Ever since the first portable computers, I've been interested in small computers that you could have with you all the time.  I've followed their development closely because they fit my vision of having a computer be a personal, portable extension of your mental capacity.

The PDA and its descendants, with their extreme portability and ever-increasing capability, seem to be the best expression of where AutoMathic should belong.  Once handheld devices are capable of real speech-recognition (not just voice-navigation), a milestone in AutoMathic's evolution will be reached.  In the timeline, bullets six and seven for the year 2000 have a glimpse of AutoMathic's hopeful future!


1986 1987 1988 1989 1990
1991 1992 1993 1994 1995
1996 1997 1998 1999 2000
2001 2002 2003 2004 2005
2006 2007 2008 2009 2010


















Figuring out how to load "exactly what is needed and nothing else" took a couple of months of R&D in graph theory.  I created a (new?) technique for determining (without using combinatorial searches) exactly what information is truly relevant from one situation to another:

Now, WPS' library has precomputed path and cluster information that captures the graph-like nature of its stored knowledge: Variables are nodes, and equations form links.  A lower-triangular matrix stores the shortest path between every pair of variables that belong to a connected graph.  An entire set of connected variables forms a graph representing related topics.  The entire set of connected graphs is the knowledge.   WPS produces near-optimal solutions by loading the minimal set of equations that form a "path" linking all active variables that can be linked.  This strategy minimizes the amount of external information to the equations needed to form whatever relationships can be formed.







With the iMac, I registered as an Apple developer and installed the free SDK.  Using the SDK's iPhone simulator, I created a simple "Hello World" application and began the long process of learning Objective C, Cocoa, and other Macintosh/iPhone development frameworks.

A "standard form" is not as powerful as a true "canonical form", but it has been shown that there is no way to reduce arbitrary expressions to some universal canonical form.


The difference between this simplification and the above (even though the effect is the same) is that reducing to lowest terms does not require that one factor divide evenly into the other...  The program tries to mimic how people recognize and simplify fractions by finding those that divide evenly before finding those that reduce using a different factor.
The potentially-ambiguous terms (biweekly, bimonthly, biyearly, and biannually) are interpreted according to their strict definition: "for two".  For "twice each", the program recognizes the official terms "semiweekly", "semimonthly", "semiannually", and "semiyearly".


With the iPad, Apple releases an updated version of the SDK so that developers can make or update apps to be iPad-specific.

This enhancement can streamline the flow of "canned" calculation scripts by skipping prompts for variables that have already been derived from previous inputs.
The new scripts take advantage of the "input" command enhancement to minimize the amount of user input required.
That "unnatural" ordering (used by the program's "standard form") helps with simplification, but detracted from the overall look of some expressions.  This enhancement makes the final expressions look more natural and readable.