**The beta-test program is now over. Thanks again to all who participated.**
Version 2.0 is now available for 32-bit Windows platforms
only. I have stopped working on the DOS and Windows 3.1 versions entirely now;
if this matters to you, please speak up ASAP!

The new version is backward compatible with old graphmat.ini and .gr files, but the .gr files it saves may produce some errors when loaded in version 1.60e without modification. If you need to continue using the old version as well as the new version, I recommend installing to a separate directory and then copying your old graphmat.ini file there.

- Version 1.63 [130k] is the last build I produced for 16-bit operating systems.

Please note that this version is not fully tested and may not be suitable for classroom instruction. If you find any bugs or usability problems with the new features, please send a quick e-mail describing the problem to beta@graphmatica.com.

- Fixed bug which caused incomplete graphs in equations that had exponents with free variables (a, b, c) in them.
- Program now starts up with the window maximized if you last exited in that state.
- Grid control now uses system color selections for text and highlighting.
- Fixed some bugs in the point tables output for ODEs and implicit functions.
- Increasing the value for "AutoRedraw On--Draw Last ___ equations" in the Global Settings dialog box now also increases the maximum number of equations kept before adding a new one deletes the oldest in the queue.

- Point tables window are now kept more in sync with graphs on screen. Also added Refresh item to popup menu to clear and recalc all graphs on screen.
- Fixed problem with point tables toolbar button not staying "pressed in" after drawing a graph.
- All messages extracted into the string table to make translation easier.
- Draw Tangent Line dialog box now looks at both y and x values when you enter coordinates manually and solves for the one you didn't change, rather than always looking at x and solving for y.

- Added toolbar buttons for toggling Point tables and Data Plot editor windows.
- Printing improvements: gridline and axis thickness scaled up for higher- resolution printers, data plot legend printed as well.
- Added fine-tuning parameters for automatic legends and grid spacing, as well as manual control over grid spacing.
- Added Make Default option for Graph Paper settings.

- Multiple data plots are now supported in the same graph document.
- Data plot symbols and colors are now user-customizable.
- Support for additional curve-fitting algortihms (sinusoidal, exponential, and logistic) has been added.
- Added Ctrl+Tab support to switch between sub-windows.
- Fixed (hopefully) a crash caused by scrolling the point tables window horizontally.

- Improved user-defined functions feature to support a Function Library saved in the graphmat.ini file. These functions are made available in every new graph document.
- Fixed a bug where the window position was saved incorrectly if the program was closed from the taskbar while the window was minimized.
- First draft of updated help file included.
- Packaged as a real release including setup and demo files.

- Added support for Bode plots (x-axis only logarithmic graph paper).
- Added AutoRange feature to reset the range to ensure all Cartesian functions are displayed on-screen.
- Improved speed of curve-fitting algorithm and increased maximum number of iterations allowed.

- Added support for user defined functions. Use the Functions dialog box (Tools/Functions menu item) to define as many single-variable helper functions as you want. You can define functions in terms of the variable x or t, and name them arbitrarily (although you cannot override built-in variables or function names).
- Added warning message when curve fitting algorithm does not converge within max. iterations.
- Made all numerical functions respect decimal place setting from Point tables options when displaying output.
- Fixed some bugs with restoring the number of columns in point tables and showing the data plot editor when loading a document that requested it.

- Added Paste Data Plot menu item to create a data plot by pasting a tab-delimited table (e.g. from Excel) of x and y values.
- Added "Show horizontal scrollbar" option to Point tables options dialog. Also increased number of columns allowed from 4 to 9.
- Added control over number of decimal places used in Point tables to options dialog and fixed a problem where numbers in scientific notation were getting formatted with fewer decimal places than requested.
- Fixed a problem that might have caused the program to crash or hang when turning off Point tables or the Data Plot editor, or switching between them.
- Made the Edit/Copy Graphs EMF function recalculate the graphs at maximum possible screen resolution. This should improve the quality of graphs copied and printed from Word.
- Added more visible point icons for data plots (and made them print properly as well).

- Optimized new grid control; drawing multiple graphs with point tables on should be much faster.
- Added right-click context menus and double-click support for graph title/labels, axis labels, and point tables.
- Rudimentary data-plotting added. For the moment, you can only do one data plot per graph document, and you must choose between viewing the normal Point Tables and the Data Plot editor. Use View/Data Plot Editor to access it.
- Also added curve-fitting using polynomials (up to 9th order) using the Levenberg-Marquardt algorithm.

- Sorting points in the grid/disallowing duplicates
- Other curve-fitting models (the algorithm supports pluggable equations--please send me details of the equation you'd like to use).
- Showing curve-fit and actual values on the same grid.
- Usability improvements in grid control (currently you can't use the cursor keys or mouse within a cell, only to navigate the grid)
- Other statistical functions (i.e. compute mean, median, variance of curve-fit, etc.)
- Accuracy of curve-fit: I've only done limited testing to ensure that data sets generated by simple polynomial equations curve-fit back to the original equation. If you find a data set that produces inaccurate curve-fit results, please save it and send the .gr file to me

- Added an edit field to set the wide lines width in the Settings panel.
- Increased maximum width of axis labels from 7 to 25 characters.
- When saving and loading a .gr file, equations are now restored with the same color they originally had. Also, they are restored in the same order as they appeared in the queue at save time, rather than backwards.
- Added "color-code" checkbox to print dialog box. This will print equations in the same color as their corresponding graphs when checked.
- Swapped out yellow for "dark yellow" in the white color scheme, since yellow was virtually invisible when printed.
- Fixed an annoying bug which sometimes caused the selection to be cleared or displayed inappropriately when you switched windows after selecting a portion of the grid to zoom in on.

- The Point Tables window now uses a grid control based on "BabyGrid" by David Hillard rather than a standard listbox. This makes for much neater display of data (right-aligned numbers, resizable columns, etc.) and will be the data entry mechanism for new plotting features.
- Last directory used in File Open/Save dialog boxes is now remembered.

- The Point Tables window can now be resized and has a system close menu.
- Added panel to choose Draw Tangent Line input method (mouse/dialog/both) and enable or disable Tangent Line mode "stickiness".
- Simplified UI: Consolidated most options screens into 2 tabbed dialog boxes, and revamped menus to remove commands that were no longer needed, plus some rarely-used items that can be accessed through the Settings dialog box.
- Converted to implicit-save model for default settings (but you now must explicitly set the defaults for grid range and graph paper).
- Coordinate cursor is now always on except when it would interfere with display of important info (selected range, tangent line/integral info) in the status bar. However, you must still use the coordinate cursor button/menu item to gain keyboard control over the crosshairs.
- Improved Windows shell integration: files are added to the Documents menu when opened, and the program opens files dragged from Explorer.

- The equation of tangent lines is now displayed in the Printout window along with the point and slope.
- Added Draw Tangent Line dialog box which, like the Integrate Curve dialog box, allows you to type in values rather than selecting an equation and tangent point with the mouse.

- Added 2 integration methods: left-hand sums and right-hand sums.
- Improved right-click context menus to NOT come up after using right-click- drag coordinate cursor.
- Fixed bug with specifying the domain as {y:...} for functions of y.
- Added support for graphing highest-order derviative in custom ODE mode (e.g. {vars:t,dx} graphs t vs. dx/dt for a first-order ODE).
- Added two options to graphmat.ini to improve accessibility for visually-
impaired users:
- "widelinewidth" specifies the width of curves when "Draw graphs with wide lines" is checked in the options panel. The default is 2 pixels, but you can now increase it to make lines even bolder.
- "gridlinewidth" specifies the width in pixels of grid lines and the axes

- Added context-sensitive popup menus when you right-click on the grid:
- When you click on an equation, Delete Graph, Hide Graph, and Find Derivative are available.
- When you click on an annotation, Edit Annotation, Move Annotation, and Delete Annotation are available.
- When you click on any other part of the background, you can choose Zoom In, Zoom Out, Default Grid, Grid Range, or Clear Screen.

**Tell me what you think about these menu options--are they ordered in a way that makes it fast and easy to find the one you want? Did I leave out the one that would be most useful to you? Are there other modes I missed where a different context menu would be more appropriate?** - Fixed several recently-reported bugs: problems with domain for "a" when decimal separator is set to ",", flow fields not drawn correctly when aspect ratio is not square, Redraw/Last Graph menu item crashes program when no graphs have been entered.
- Added rand(n) function which generates a random number between 0 and n.

- New, improved Point Evaluate dialog box allows you to:
- Select a different equation than the current one to evaluate
- Solve Cartesian functions for x as well as y

**Tell me what you think of the new dialog layout. Also let me know if you have any trouble finding solutions for some equations.** - Moved Find Intersection to the Point menu
- Added support for printing integral and tangent line information.
- Made Draw Tangent a "mode" rather than a one-time operation. The program
stays in Draw Tangent mode as long as you keep clicking on curves.

**Please send me your comments on whether this improves the usability of the tangent line feature for you.** - Fixed a bug which prevented loading the newly-supported relations when an auto-scaled grid range was saved in the .gr file.

- Added support for decimal separators other than "." based on your Windows
control panel settings. If your settings indicate you prefer a different
decimal separator (say ",") then all constant values input and output by
the program will use this separator. (Note that if you are using "," as your
separator, to enter domains with non-integer values you must leave a space
after the comma separating the parts of the domain, e.g. "{2, 2,3}".)
- Added a Find Intersection feature to the Calculus menu. This brings up a
dialog box which allows you to select two equations (they must be Cartesian
functions or simple relations in the same variable) and display either all
points of intersection on the screen or the intersection closest to a
guess that you type in.

**I may try to add some support for approximating the solutions to other types of equations that Newton's method doesn't work on, but I think this basically works for most Cartesian functions. I still want your feedback on the usability of the feature:**- Is the Find Solution dialog box easy to use?
- Should it be non-modal or offer a means of clicking on your guess instead of typing it in (like the Integrate Curve dialog box)?
- Should it be combined with another dialog box (Point Evaluate or Find Critical Points)? How?
- Did it find all of the solutions you expected, accurately? If you
notice a problem, please send me an email with the following:
- Equations chosen.
- Grid range at the time you
*opened the dialog box*. - What happened? Did it miss a solution? Give an inaccurate solution? Give an error message instead of a solution?

- Fixed a bug with the graph "y=int x" which prevented the graphing loop from
terminating.
- Initial support for graphing relations with multiple instances of both
x and y variables. This is done by performing implicit differentiation
with respect to both variables and plotting the resulting ODE. The
algorithm attempts to find two initial values to deal with closed curves
such as ellipses (e.g. x^2-xy+y^2=10) since the approximation fails
when the slope goes vertical, but this may not always work. Also,
certain features available for simple relations and functions (e.g.
inequalities, calculus features, and the new Find Intersection feature)
do not work yet (and may not ever work) for these relations.

**Note that I have only tested this feature on a small class of relations-- I cannot guarantee complete or accurate results for other equations. Please try it on equations that are of interest to you and send me your results:**- Equation graphed.
- Grid range at the time you
*entered the equation*. - What happened? Did it
- draw the graph completely and accurately?
- draw the graph accurately but not completely? (describe missing segment)
- draw the graph inaccurately?
- crash the program?

kSoft, Inc. ksoft@graphmatica.com Last updated: Fri 14 Feb 2003