          Version history of the Mathomatic computer algebra system
          ---------------------------------------------------------
             This change log is entirely in chronological order;
               the latest changes are at the end of this file.
              This file is at "www.mathomatic.org/changes.txt".
              -------------------------------------------------

CHANGES MADE TO MATHOMATIC V14.0.0 TO BRING IT UP TO V14.0.1:

Code and documentation cleanup.

Disallow variable name "all" in expressions.  "all" means all normal variables and is a reserved word now.

4/25/08 - Set command parser now reports errors properly.

4/28/08 - More correct simplification restriction added: (x^n)^m remains unsimplified unless "symbolic" option is used.
          This was documented but not fully implemented.  You need to use "simplify symbolic" to simplify like before.
          Note that this caused expression complication, which is fixed in V14.2.2 or by using "simplify symbolic".

CHANGES MADE TO MATHOMATIC V14.0.1:

4/30/08 - The calculate command user interface was corrected.

5/4/08 - Added "simplify sign" command option, which conveniently expands all "sign" variables and simplifies.

CHANGES MADE TO MATHOMATIC V14.0.2:

Code and comments cleanup.

5/16/08 - Added "derivative nosimplify" command option, which does no simplification after differentiating.
          Fixed the taylor command to work with larger expressions with more derivatives by simplifying better.

CHANGES MADE TO MATHOMATIC V14.0.3:

Cleanup.

5/19/08 - Fixed for less floating point round-off error.

5/27/08 - Author's email address changed to "georgegesslein@gmail.com".

5/31/08 - Fixed to simplify sign variables better, sign^(1/3) now simplifies to sign.
          Added "solve verify" command option, which verifies the results of the solve command.

CHANGES MADE TO MATHOMATIC V14.0.4:

Cleanup.

Improved the "solve verify" command option by simplifying more and used it in the tests and demos.

6/14/08 - Added "Divide by zero" warning message whenever that happens.  Result still generates infinity.

CHANGES MADE TO MATHOMATIC V14.0.5:

6/18/08 - Improved divide command and verification of floating point GCDs.

6/19/08 - Improved "solve verify" even more, displaying a warning if verification is not needed.

CHANGES MADE TO MATHOMATIC V14.0.6:

Cleanup and added some options to make reading the source code more rewarding.

6/26/08 - The "set finance" option now parenthesizes negative numbers to give them emphasis.

7/2/08 - Bug fix: code command now parenthesizes negative numbers so that -2**x works the same with Python.

7/5/08 - Readline history file enabled as "~/.history", and fixed possible bug in readline initialization.

Mathomatic version 14.0.7 released 2008-07-06

CHANGES MADE TO MATHOMATIC V14.0.7:

Documentation and code cleanup.

7/8/08 - Optimize more by changing gcc option "-O" to "-O2" for all builds.

7/11/08 - Fixed inconsistent evaluation in the "derivative nosimplify" command.

Mathomatic version 14.0.8 released 2008-07-18

CHANGES MADE TO MATHOMATIC V14.0.8:

Code cleanup.

7/20/08 - Added optional installation of a shell script that allows using trig functions: "make m4install".
          Limit command no longer substitutes, it now uses only one method (solve) for teaching purposes;
          see "tests/how_limit_works.in" for the current method of finding limits.

7/21/08 - The "set special_variable_character" option was changed to allow multiple characters.  These
          characters can be used in any variable name, unless they have other meanings.
          Disallowed [] as parentheses characters, so that they can be used in variable names to make arrays.

7/23/08 - "solve verify" was sometimes saying nothing when the solve failed, fixed to say "Solve failed.".

7/27/08 - Fixed some critical command output redirection bugs and made read input bold in HTML mode.

Mathomatic version 14.1.0 released 2008-07-27

CHANGES MADE TO MATHOMATIC V14.1.0:

More tidying up of everything.

Improved readline history storage and limited it to 500 entries, previously it was unlimited.
Fixed a bug in the push command when pushing multiple expressions and improved error messages.

Mathomatic version 14.1.1 released 2008-07-30

CHANGES MADE TO MATHOMATIC V14.1.1:

Documentation improvements.

8/5/08 - Added optional exit-value argument to quit command.

8/8/08 - Fixed a bug in the fraction command: the resulting algebraic fraction was not being fully reduced.

8/9/08 - Removed all of C type "long long" arithmetic from the main Mathomatic program,
         resulting in smaller executable.  "long long" types are only supported in C99.
         Tweaked startup messages and made quadratic solving consistent with other solving.
         Solving only unfactors as much as it needs to.

8/10/08 - Added "unfactor quick" command option.

Mathomatic version 14.1.2 released 2008-08-10

CHANGES MADE TO MATHOMATIC V14.1.2:

Documentation improvements and bug fixes.

8/10/08 - Fixed a very old endless loop bug that occurred while simplifying.

8/11/08 - A few tweaks to factor the proper amount and made the fraction command work perfectly.

8/12/08 - Made bold_colors flag affect HTML color mode.

Mathomatic version 14.1.3 released 2008-08-13

CHANGES MADE TO MATHOMATIC V14.1.3:

8/13/08 - The calculate command now reports the number of solutions.

8/14/08 - Made some big improvements and bug fixes to simplification, if only someone had reported bugs earlier!
          A major, long-standing simplify command malfunction has been fixed, but it runs a little slower.
          The simplify command is now logically correct and appears to work nicely now, please tell me if not.

Mathomatic version 14.1.4 released 2008-08-14

CHANGES MADE TO MATHOMATIC V14.1.4:

Cleanup and beautification.

8/19/08 - Added "HANDHELD" C preprocessor define for when compiling for hand-helds, like the Nintendo DS.

8/21/08 - Fixed redirected debug output.
          Tuned up simplify command to work with larger expressions by automatically reducing the expansion if needed.

Mathomatic version 14.1.5 released 2008-08-24

CHANGES MADE TO MATHOMATIC V14.1.5:

8/25/08 - Added "tests/electronics.in" Mathomatic input file; contains simple electrical formulas.
          When using m4, corrected ceil(x) function and added cbrt(x) (cube root function) in "m4/functions.m4".

9/02/08 - General internal routine get_constant() in "complex.c" was finished perfectly,
          making less need to ever approximate constants.
          Some corrections to the makefile were made, "make install" and "make m4install" were improved.

9/06/08 - Optimized "tests/linear.in" and "tests/poly.in" to make "make test" run in half the time.

Mathomatic version 14.1.6 released 2008-09-06

CHANGES MADE TO MATHOMATIC V14.1.6:

General cleanup.

9/11/08 - Fixed solving things like 2^(1/2) = e#^x for x, they failed before.

9/13/08 - The m4 "math" script now allows files to be read in by specifying them on the command line.

9/25/08 - 0 to the power of a negative number now consistently returns infinity with a divide by zero warning.

Mathomatic version 14.2.0 released 2008-09-25

CHANGES MADE TO MATHOMATIC V14.2.0:

Documentation improvements: nintegrate command doc made sensible, etc.

10/4/08 - Moved icons and "mathomatic.desktop" to new directory "icons" in source distribution.

10/7/08 - Improved compare command while adding a new "symbolic" option to it.

10/12/08 - Added "set prompt" option, allowing you to turn on and off Mathomatic prompt output like the "-q" option.

Mathomatic version 14.2.1 released 2008-10-15

CHANGES MADE TO MATHOMATIC V14.2.1:

General cleanup and minor improvements.

10/29/08 - Added display of related commands to help command.

11/1/08 - Fixed a serious failure of simplifying things like (x^n)^3 after unfactoring.

Mathomatic version 14.2.2 released 2008-11-02

CHANGES MADE TO MATHOMATIC V14.2.2:

Documentation tweaks and simplified the simplification routines.

11/9/08 - Moved "help geometry" to "tests/geometry.in" so the formulas can be easily loaded with the read command.

11/10/08 - Improved display command by allowing multiple equation numbers and ranges.

11/15/08 - Added "set precision" option, sets the display precision, default is the maximum of 14 digits.
           Bold improvements were made to polynomial factoring and simplification.

11/16/08 - Fixed two more bugs in simplification.

Mathomatic version 14.2.3 released 2008-11-16

CHANGES MADE TO MATHOMATIC V14.2.3:

11/18/08 - All C functions that do not return a value now properly declared "void".

11/26/08 - "set preserve_roots" option renamed to "set preserve_surds"; Functionality remains the same.

11/29/08 - Created "cproto.h" with the cproto utility and added it to the source distribution;
           swap it with "proto.h" to compile Mathomatic with -Wall with no warnings.

Mathomatic version 14.2.4 released 2008-11-30

CHANGES MADE TO MATHOMATIC V14.2.4:

Improved and fixed makefiles.  Using proper variable LDLIBS in makefiles now,
which fixes library link errors with matho-primes.

12/03/08 - rman utility is no longer used in the makefile because it is not available in Mac OS X;
           Using groff instead to create web pages from the Unix man pages.

12/04/08 - Finished fixing command output redirection to include all debugging output.

12/06/08 - Removed a part of modulus simplification that sometimes gave a completely wrong answer.

Mathomatic version 14.2.5 released 2008-12-06

CHANGES MADE TO MATHOMATIC V14.2.5:

12/06/08 - Renamed boolean "set true_modulus" option to integer "modulus_mode" and added another mode:
           0 means result is the same sign as the dividend; 1 means result is the same sign as the divisor;
           Currently set to 2 for an always positive or zero result of modulus, as was the default before.

12/08/08 - Allow ANSI color mode to display readably when terminal emulator has a white background
           by removing the color white in the text output.

12/13/08 - Restored modulus simplification with a fix for wrong answers like x%(x^x) simplifying to 0.

12/14/08 - Discovered rlwrap (readline wrapper), so the shell script "m4/rmath" was created
           to run m4 Mathomatic with a readline front end, when the rlwrap program is installed.

Mathomatic version 14.2.6 released 2008-12-14

CHANGES MADE TO MATHOMATIC V14.2.6:

Cleanup and corrections.

12/15/08 - Modulus simplification now checks for "integer" variable to determine whether to proceed.
           Fixed wrong answers for modulus when modulus_mode=1.  Results now the same as Python gives.

12/16/08 - Allow expressions like "(x+1)(x+2)" and "2(x)" to be entered.  Default operator is multiply.

12/17/08 - Renamed readline history file from "~/.history" to "~/.mathomatic_history".

Mathomatic version 14.2.7 released 2008-12-19

CHANGES MADE TO MATHOMATIC V14.2.7:

Code cleanup and improvements.

12/23/08 - Simplified makefile.

12/26/08 - Fixed rules for simplifying "(x^n)^m" so "misc/john.in" and others simplify better.
           Works similar to Maxima now, which is correct, I think.

12/27/08 - Numeric GCD now properly returns the other parameter, if either parameter is 0.
           Renamed "misc/polyroots.c" to "misc/roots.c" and simplified this example code.

12/30/08 - Added "update" script, which updates the function prototypes in "cproto.h".

1/1/09 - Optionally factor out the gcd of integer coefficients when improving readability,
         for example: 6x+4y becomes 2*((3*x) + (2*y)).  This is now the default.

Mathomatic version 14.2.8 released 2009-01-04

CHANGES MADE TO MATHOMATIC V14.2.8:

1/13/09 - Added descriptions of all interesting math scripts in "tests/README.txt".

1/16/09 - Allow nintegrate and "integrate definite" commands in the symbolic math library;
          the bounds are specified in the two equation spaces following the current equation.

1/18/09 - Made expression and equation entry always consecutively numbered equation spaces,
          unless memory is exhausted.

1/19/09 - Made consistent list command output with only one newline after each equation space.

Mathomatic version 14.3.0 released 2009-01-19

CHANGES MADE TO MATHOMATIC V14.3.0:

Documentation corrections were made.

1/21/09 - Fixed erroneous doubling of parentheses display when solving and showing steps with "set debug 2".

1/22/09 - Added -b option, to conveniently set bold color mode from the command line.

1/25/09 - Improved looks of eliminate command by not solving if equation is already solved.

Mathomatic version 14.3.1 released 2009-01-31

CHANGES MADE TO MATHOMATIC V14.3.1:

2/3/09 - Table of contents was added to the Mathomatic User's Manual.

2/5/09 - Added display of any numerical fractions when calculating or using calculate command;
         for example, entering "1/2+3/8" now results in "answer = 0.875 = 7/8".

2/6/09 - Removed erroneous lsqrt() routine obtained from Wikipedia, so that matho-sumsq works properly now.

2/7/09 - Disable pause command when appropriate (when input not a tty and for symbolic math library).

2/8/09 - Polished up educational example scripts in "tests" directory.

Mathomatic version 14.3.2 released 2009-02-09

CHANGES MADE TO MATHOMATIC V14.3.2:

Cleanup and bugfixes and code simplification.

2/11/09 - Entry of a function now results in "Named functions currently not implemented" error message.

2/12/09 - Bugfix to matho-primes and added "misc/limits.c".

2/15/09 - The fraction command was fixed to give better results.
          "set display2d" flag now no longer affects any results at all, it only affects 2D output mode.

Mathomatic version 14.3.3 released 2009-02-16

CHANGES MADE TO MATHOMATIC V14.3.3:

Code cleanup and polishing of output and documentation.

2/17/09 - Renamed -h (HTML) option to -x, -h is now the help option.
          Added -w option to set wide output mode.

Mathomatic version 14.3.4 released 2009-03-04

CHANGES MADE TO MATHOMATIC V14.3.4:

3/9/09 - Found the correct formulas for solving the general cubic equation on Wikipedia,
         so "tests/cubic.in" always gives correct answers now.

3/12/09 - Tweak made to simplify result beautifier: factoring priority only given to real variables now,
          special constant variables pi#, e#, and i# have no effect and behave like any constant now.

3/15/09 - Corrected and improved parse_complex() C function for more complex number functionality
          and a bug fix.

3/18/09 - Added "set negate_highest_precedence" option, which allows the negate operator to be the
          lower precedence of times and divide, like it is in Maxima and most other math programs.

Mathomatic version 14.3.5 released 2009-03-18

CHANGES MADE TO MATHOMATIC V14.3.5:

More improvements to the documentation were made.

3/24/09 - Made "set no autosolve" mode more useful by making it solve if a solve variable is entered
          with an equals sign.  This allows easy entry of both single variable expressions (with no =)
          and solve variables (with =) while in this mode.

3/27/09 - Selecting equations by entering the equation number was returning with error if the equation
          space was empty.  Fixed, you can now select any previously allocated equation space.

Mathomatic version 14.3.6 released 2009-03-29

CHANGES MADE TO MATHOMATIC V14.3.6:

Many minor code and documentation corrections were done, in addition to the following:

Perfected the user interface for the sum, product, and integrate commands.

4/2/09 - Added the proper LGPL license preamble for all Mathomatic files in new file "license.h".
         The license remains the same.

4/4/09 - Renamed m4 Mathomatic script from "math" to "matho" to make it unique.
         m4 Mathomatic should now be suitable for packaging with the command "make m4install"
         instead of "make install".  Then typing "rmath" runs "matho" with readline support,
         allowing trig and other standard functions to be entered and edited.
         Requires GNU m4 and rlwrap programs.

Mathomatic version 14.3.7 released 2009-04-08

CHANGES MADE TO MATHOMATIC V14.3.7:

More improvements to the documentation were made.  The READMEs were clarified.

4/10/09 - Compilation define HANDHELD was corrected to work properly on handheld devices.
          UNIX define was corrected so that Mathomatic will compile without it.

4/12/09 - Restored initial full simplify in the limit command for better results,
          that was unintentionally removed in version 14.1.0.

4/16/09 - Fixed an endless loop in simplification; results look better, too.

Mathomatic version 14.4.0 released 2009-04-17

CHANGES MADE TO MATHOMATIC V14.4.0:

Documention and tests cleanup.

4/25/09 - Added "set save" command, which makes all current session options permanent,
          by saving them in "~/.mathomaticrc".  "set no save" removes this file.

4/30/09 - Added "mathomatic -s" option, which stands for secure mode.  This is a run-time option
          that disallows shelling out and writing files, and was created for use on public servers
          that can't use the SECURE compile-time define.

Mathomatic version 14.4.1 released 2009-05-02

CHANGES MADE TO MATHOMATIC V14.4.1:

General cleanup.

5/6/09 - Doubled the default maximum mathematical expression size to allow larger expressions.

5/12/09 - Mathomatic now compiles with -Wall by default.

Mathomatic version 14.4.2 released 2009-05-13

CHANGES MADE TO MATHOMATIC V14.4.2:

5/13/09 - A fatal compilation error when compiling with defines other than UNIX was fixed.
          Thanks to Gordon McKinney for quickly reporting and verifying this bug.

Mathomatic version 14.4.2 re-released 2009-05-13

CHANGES MADE TO MATHOMATIC V14.4.2:

General cleanup and fixes.

5/15/09 - Slight improvement made to simplification; results are more simple and stable.

5/20/09 - Added info to the Mathomatic man page and to the "AUTHORS" file.

5/25/09 - The maximum integer that can be factored has been raised from 14 to 15 decimal digits.

Mathomatic version 14.4.3 released 2009-05-25

CHANGES MADE TO MATHOMATIC V14.4.3:

5/25/09 - Small fix made to fraction command and "simplify fraction" for better looking fractions.

5/26/09 - Added a "simplify quickest" command option, which does no unfactoring nor factoring.

5/28/09 - Made full simplification more efficient and simpler by cutting out unnecessary loops.

5/31/09 - Improved the divide command and enabled its use in the symbolic math library.
          Enabled code and variables commands in library, too.
          Currently, library output of these 3 commands can only be gathered by redirecting to a file.

6/2/09 - Added "set autoselect" and "set auto" options.  Use "set no auto" to always store
         entered expressions into equation spaces, unless it is a command.

Mathomatic version 14.4.4 released 2009-06-03

CHANGES MADE TO MATHOMATIC V14.4.4:

General cleanup and addition of helpful descriptive text.

6/9/09 - "primes/mult" improved and renamed to "primes/matho-mult",
         so you can install as a unique program, if you wish.
         "primorial 1" works now, too.
         Roots command enabled in the symbolic math library.

6/10/09 - Fixed factor command parameter handling and results, it was not user friendly.
          Also fixed factor command for consistent behavior in the symbolic math library.

6/14/09 - Allow separate install of Mathomatic binaries and documentation in makefile.

Mathomatic version 14.4.5 released 2009-06-14

CHANGES MADE TO MATHOMATIC V14.4.5:

Cleanup and major bug fixes.

6/22/09 - For easier expression determination and reading, changed all simplification to not
          factor out the GCD of integer coefficients.  I can make this an option, if anyone
          wants this back.  It is set by the variable "integer_coefficients" in "globals.c".
          Also fixed a complication in polynomial factoring.

6/24/09 - Fixed some algebraic fraction complications in the calculate command results.

Mathomatic version 14.5.0 released 2009-06-24

CHANGES MADE TO MATHOMATIC V14.5.0:

Enhanced code for use with iPhone.

6/25/09 - Re-added explicit use of ncurses library with readline because Slackware requires it.

6/26/09 - Display command usage info when a Mathomatic command fails, to be helpful.

Mathomatic version 14.5.1 released 2009-07-05

CHANGES MADE TO MATHOMATIC V14.5.1:

7/15/09 - Rationalizing the denominator of algebraic fractions was sometimes complicating
          expressions instead of rationalizing; affects full simplification.  Fixed.

7/16/09 - Parenthesize displayed negative numbers when "set no negate_highest_precedence"
          to get signs right when interpreting.

7/18/09 - Allow optimize command in symbolic math library.

Mathomatic version 14.5.2 released Saturday 07/18/09.

CHANGES MADE TO MATHOMATIC V14.5.2:

Minor corrections and additions to the code and documentation.

7/22/09 - Allow setting the enforced security level for the Mathomatic session with "-s" option.
          Level 0 is the default with no security, level 1 disables shelling out,
          level 2 disables shelling out and writing files,
          level 3 is complete security with no file reading either.

8/4/09 - The HANDHELD compile-time define was corrected to give a reasonable default expression array size;
         it was way too small before, therefore not working on medium-sized and large expressions.

8/7/09 - Added "set rationalize_denominators" option, which attempts to move radicals from the denominator
         of fractions to the numerator during simplification.  This is still the default.

Mathomatic version 14.5.3 released Friday 08/07/09.

CHANGES MADE TO MATHOMATIC V14.5.3:

8/20/09 - Allow "-" on the Mathomatic invocation command line, to read from standard input.

8/22/09 - Fixed approximate command to also approximate complex number roots.

8/28/09 - Can now solve some (complex number)^x=(complex number) equations for x.  Results verifiable.

8/29/09 - Fixed a bug where readline was being initialized, even though it was disabled with the
          -t or -r command line options, causing "make test" to fail for some terminal types.
          This bug was reported by Dylan Armitage, thank you very much.

Mathomatic version 14.5.4 released Saturday 08/29/09.

CHANGES MADE TO MATHOMATIC V14.5.4:

9/5/09 - Added "tests/test" shell script that runs the Mathomatic tests and compares the output
         with the expected output, just like "make test" does.  "cd tests; ./test" runs it.

9/6/09 - Fixed "solve verify" to not return with error if equation solves but does not verify.
         This allows "solve verify" to be used for any solve operation.  A return value of 2
         indicates the solutions were found, but at least one of them is incorrect or unverifiable.
         As before, return values 1 and 0 indicate total success or failure, respectively.

9/8/09 - Fixed in "lib/lib.c" a possible memory leak in the symbolic math library interface.

Mathomatic version 14.5.5 released Wednesday 09/16/09.
