          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.
                Written and maintained by George Gesslein II.
              This file is at "www.mathomatic.org/changes.txt".
              -------------------------------------------------

Mathomatic version 14.6.3 released Wednesday 11/25/09.

CHANGES MADE TO MATHOMATIC 14.6.3 TO BRING IT UP TO 15.0.0:

Cleanup and more bug fixes.

11/26/09 - Added detection of the terminal's ANSI color availability, when readline is enabled.

11/28/09 - Added detection of divide by zero and NaN when using the "solve verify" command,
           for more correct results.
           Solving now factors out the GCD of rational coefficients, for improved results.
           The fixes today are from errors solving equations like (2*x/(x - 3)) + 3 = 6/(x - 3)

11/29/09 - Disallow the variable named "nan".  NaN cannot be directly entered into Mathomatic.

11/30/09 - Added shell scripts "t" and "tests/t" to easily test Mathomatic by typing "./t".

12/2/09 - The fraction command now factors out the GCD of rational coefficients like the
          solve command does, so that coefficients in algebraic fractions become integers.
          The GCD verifying routine was perfected by making it very strict, like it should be.

Mathomatic version 15.0.0 released Thursday 12/03/09.

CHANGES MADE TO MATHOMATIC 15.0.0 TO BRING IT UP TO THE NEXT VERSION:

12/12/09 - Fixed a problem with the -q (quiet mode) option being ignored if the session options
           were ever saved with the "set save" command.

12/13/09 - Added code to allow Mathomatic output to be redirected by default.
           Fixed the derivative command to be successful even when the result is 0,
           when compiled as a library.

12/14/09 - Added ability to log symbolic math library results, and made command behavior
           more consistent in the library by always returning the final result string.

12/16/09 - The factor command now factors more by factoring out the GCD of rational coefficients.

Mathomatic version 15.0.1 released Thursday 12/17/09.

CHANGES MADE TO MATHOMATIC 15.0.1 TO BRING IT UP TO THE NEXT VERSION:

12/19/09 - The last few versions fix the ugliness caused by the GCD factoring change made on 6/22/09.
           Today's change factors out the numerical GCD of rational coefficients as needed to simplify.
           Most simplification results should be beautiful and the simplest possible again now,
           without the misleading observed magnitude caused by always factoring out the GCD,
           which was why the change of 6/22/09 was made.

Mathomatic version 15.0.2 released Saturday 12/26/09.

CHANGES MADE TO MATHOMATIC 15.0.2 TO BRING IT UP TO THE NEXT VERSION:

12/27/09 - Moved get_screen_size() from main.c to am.c because it is used in the library when
           compile-time options UNIX or CYGWIN are defined.
           Thanks to Cygwin port maintainer Reini Urban for noticing and fixing this problem.
           Defining UNIX or CYGWIN in library mode is not recommended.

12/31/09 - Added code to allow any command to be preceded by "repeat", which sets the
           repeat flag for the following command.  Most commands ignore the repeat flag.

1/1/10 - Ported divide and roots commands to be repeatable.  Also repeatable are the
         calculate and eliminate commands.

1/2/10 - Allow Taylor series computation even if the specified differentiation variable
         is not found in the expression, giving a warning.
         Ported simplify command to be a repeatable full simplify; that is, typing
         "repeat simplify" repeatedly runs the simplify command until the result stabilizes
         to the smallest size expression.

1/7/10 - Thanks to pretty C code submitted by Simon Geard,
         the code and variables commands have been made much more readable.

1/8/10 - Made Mathomatic easier to compile under Solaris, thanks to Michael Pogue of Sun.
         Fixed failure to compile under BSD Unix when compiling with readline support.

Mathomatic version 15.0.3 released Friday 01/08/10.

CHANGES MADE TO MATHOMATIC 15.0.3 TO BRING IT UP TO THE NEXT VERSION:

1/9/10 - Fixed a problem only in the version 15.0.3 makefile, where it didn't respect
         the CC environment variable set by the user, instead it always used "gcc"
         as the C compiler.

Mathomatic version 15.0.4 released Saturday 01/16/10.

CHANGES MADE TO MATHOMATIC 15.0.4 TO BRING IT UP TO THE NEXT VERSION:

1/21/10 - In the makefile, changed the HTML man page generator back to rman because
          groff HTML output looks really bad and rman allows linking to other man pages.
          groff is no longer used.

1/24/10 - Fixed "make m4install", the installed rmath and matho programs weren't working.

1/27/10 - Added GNU LGPL license notices to every C source file with a copyright notice,
          for proper protections.

Mathomatic version 15.0.5 released Wednesday 01/27/10.

CHANGES MADE TO MATHOMATIC 15.0.5 TO BRING IT UP TO THE NEXT VERSION:

1/28/10 - Added a Python utility called "primorial" to the Prime Number Tools install
          that multiplies together the results of matho-primes, displaying the primorials
          of the integers given on the command line.

3/18/10 - Changed author email address to "gesslein@linux.com".

3/23/10 - Catch SIGHUP and SIGTERM signals for proper termination of the Mathomatic program;
          readline was messing up when Mathomatic was terminated by closing the shell window.
          The plot command now always plots expressions with grid marks displayed for reference.

Mathomatic version 15.0.6 released Friday 03/26/10.

CHANGES MADE TO MATHOMATIC 15.0.6 TO BRING IT UP TO THE NEXT VERSION:

Corrections and improvements to the documentation were made.

4/3/10 - Vastly improved the "factor number" user interface, now factors integer expressions like 2^32-1.
         "factor number" is disabled in library mode.

4/13/10 - The real and imaginary commands no longer fail when the expression is not complex,
          just a warning is given.

4/14/10 - Changed normal display of "-1*" to "-", for prettier 2D expression output,
          so things like "-a" display properly, not as "-1*a".

Mathomatic version 15.0.7 released Thursday 04/15/10.

CHANGES MADE TO MATHOMATIC 15.0.7 TO BRING IT UP TO THE NEXT VERSION:

A general cleanup was done.

4/26/10 - Allow "make pdf" to generate PDF documentation from the HTML documentation with htmldoc.
          Please read the comments in the makefile for all available options.

4/29/10 - For every makefile, CFLAGS has been modified to include OPTFLAGS as required by the Fedora Linux
          build system, and OPTFLAGS defaults to the optional gcc specific flags like optimization.

          In the symbolic math library, made available the equation number of the result of calling the API,
          if also stored in an equation space.  The result equation number is stored in the global "result_en".
          Useful if you want to know where the result was stored, to act on it with further commands.

Mathomatic version 15.0.8 released Saturday 05/01/10.

CHANGES MADE TO MATHOMATIC 15.0.8 TO BRING IT UP TO THE NEXT VERSION:

5/10/10 - Added "help constants" command.

5/11/10 - Integer variables are now specified by using a variable name that starts with "integer",
          like "integer1", "integer_x", etc.  Currently only the modulus operator "%" checks
          for integer variables, to help with simplification.

5/12/10 - Corrected the output string type of the symbolic math library API.  It was erroneously declared
          as type "const", possibly causing a memory leak.

5/13/10 - Moved and adapted "makefile.lib" to "lib/makefile", so the symbolic math library build is isolated.
          Previously "make clean" was required between different builds.  All makefiles require GNU make now.

Mathomatic version 15.1.0 released Saturday 05/15/10.

CHANGES MADE TO MATHOMATIC 15.1.0 TO BRING IT UP TO THE NEXT VERSION:

Code and documentation cleanup.

5/21/10 - Added "primes/matho-sum", a utility that sums its command line arguments or standard input.
          Use "matho-primes 0 2000000 | matho-sum" to find the sum of all primes less than 2,000,000.
          Solves Project Euler problem #10: http://projecteuler.net/index.php?section=problems&id=10

5/23/10 - Primes (') are allowed in variable names now, if not using the symbolic math library, so that the
          derivative, integrate, and nintegrate commands can change the dependent variable to y', y'', etc.
          This can be turned on in the symbolic math library by the command "set special_variable_characters='".

          Non-alphanumeric characters in variable names are now converted to underline characters (_)
          when exporting to a programming language or to a different program.

Mathomatic version 15.1.1 released Monday 05/24/10.

CHANGES MADE TO MATHOMATIC 15.1.1 TO BRING IT UP TO THE NEXT VERSION:

A general cleanup was done.
A small improvement was made to the final result of the simplify and fraction commands.
Showing intermediate results in the calculate, sum, and product commands is now done with "set debug 1".

5/28/10 - Added "tests/collatz.in", the Collatz conjecture as an automatically computable equation.

Mathomatic version 15.1.2 released Saturday 06/05/10.

CHANGES MADE TO MATHOMATIC 15.1.2 TO BRING IT UP TO THE NEXT VERSION:

6/6/10 - I made mistakes in the improvement to the simplify command of version 15.1.2,
         the original working simplify logic of version 15.1.1 is now restored, sorry.

Mathomatic version 15.1.3 released Sunday 06/06/10.

CHANGES MADE TO MATHOMATIC 15.1.3 TO BRING IT UP TO THE NEXT VERSION:

All of the Unix man pages and user manuals for Mathomatic were fixed.

The compare and "solve verify" commands now simplify more thoroughly with "repeat simplify"
for better expression equality determination.

6/17/10 - Greatly improved file operation error reporting by using the perror(3) function.

6/18/10 - Fixed categories in "icons/mathomatic.desktop";
          Mathomatic now goes under valid categories, mainly Education.

Mathomatic version 15.1.4 released Sunday 06/20/10.

CHANGES MADE TO MATHOMATIC 15.1.4 TO BRING IT UP TO THE NEXT VERSION:

Many minor tweaks and improvements.

7/03/10 - Makefiles and compile scripts were corrected and enhanced
          per http://www.gnu.org/prep/standards/

7/06/10 - Changed all "#if true" and "#if false" conditional commenting to "#if 1" and "#if 0"
          in the C source code, thanks to Min Sik Kim of NetBSD pkgsrc.

Mathomatic version 15.1.5 released Tuesday 07/20/10.

CHANGES MADE TO MATHOMATIC 15.1.5 TO BRING IT UP TO THE NEXT VERSION:

7/26/10 - Disabled ncurses call for auto-color detection when CYGWIN is defined while
          compiling the source code, due to a reported problem of readline failing with
          ncurses in Cygwin.

7/28/10 - Disabled readline history save file for the Cygwin port,
          because it is a filename that starts with a period.

7/31/10 - Added "set fractions_display" option, to allow disabling the automatic conversion of
          fractions like .5 to 1/2 for display.
          Developer requested and useful in the symbolic math library,
          when numerical fraction output isn't wanted.

8/01/10 - Fixed a memory leak when ignoring the output string in the symbolic math library.

8/04/10 - Preserve overflowed powers like 2^2222 rather than aborting with an error message.
          Allow simplification of math like 2*2^2222 and 2/2^2222.

8/08/10 - matho-primes runs twice as fast with the -ffast-math gcc compilation option,
          which is now enabled by default.  Don't try -ffast-math with the main Mathomatic
          program though, because then Mathomatic won't work properly.

Mathomatic version 15.1.6 released Monday 08/09/10.

CHANGES MADE TO MATHOMATIC 15.1.6 TO BRING IT UP TO THE NEXT VERSION:

Minor improvements were made to the user documentation.

8/22/10 - Removed "Complex number roots approximated" warning message, since this happens often.

          Capitalized E, I, PI, and Pi are now accepted as the universal constants e, i, and pi,
          without needing to enter "set no case".  This allows Mathomatic to easily
          accept Mathematica style expression input.

          m4 Mathomatic now additionally accepts Mathematica style capitalized function input.
          matho and rmath now display elapsed, CPU, and system times in seconds upon exit.

8/23/10 - Fixed #equation-number entry at the main prompt to always work and allow an expression
          or equation following on the same line to be entered at that equation space.
          For example: "#10 y=1/x" will work now;
          previously only worked if equation space number 10 was previously allocated and used.
          The way it works is: all equation spaces up to and including number 10 are allocated,
          if not already allocated, upon entry of "#10".
          Equations spaces are allocated with the memory allocator malloc(3).

Mathomatic version 15.2.0 released Monday 08/23/10.

CHANGES MADE TO MATHOMATIC 15.2.0 TO BRING IT UP TO THE NEXT VERSION:

All makefiles were improved.  Library test/example program is renamed to "testmain".

*Package maintainers* please take note: support for the DESTDIR environment variable was
added to all makefiles in this release; for proper operation when packaging version 15.2.1
or higher, please remove any patches for missing DESTDIR support.
And m4 Mathomatic should work now when included in the Mathomatic package (make m4install).
Thank you for packaging Mathomatic!  If I did anything wrong, please let me know.

8/26/10 - Added the -e option, which processes mathematical expressions and Mathomatic commands
          instead of input files on the shell command line.  For example, entering
          "mathomatic -eq 2+3" gives "answer = 5".  This functionality has been requested
          many times by Mathomatic command line users.
          Another example to try that works is: mathomatic -e y=1/x "solve verify x"

8/30/10 - Improved results of solving for zero.  Results should have reduced integer coefficients,
          by factoring out the GCD of rational coefficients.

8/31/10 - Removed a readline error message that displayed for no reason on some Macs, due to
          improper functioning of readline's write_history() function.
          Readline and history may work better now, due to a change in the initialization order.

Mathomatic version 15.2.1 released Tuesday 08/31/10.

CHANGES MADE TO MATHOMATIC 15.2.1 TO BRING IT UP TO THE NEXT VERSION:

Everything was cleaned up and organized some more.  Output is flushed more often, as needed.

9/12/10 - General cleanup and message improvements for the matho-primes utility.

9/14/10 - Removed "makefile.cygwin", Mathomatic should be compilable under Cygwin with
          "CFLAGS=-DCYGWIN make READLINE=1"; if anyone can confirm or deny that this works,
          please contact gesslein@linux.com

9/27/10 - Added "set plot_prefix" option, which allows custom plot functionality.

Mathomatic version 15.2.2 released Monday 09/27/10.

CHANGES MADE TO MATHOMATIC 15.2.2 TO BRING IT UP TO THE NEXT VERSION:

10/01/10 - Changed -u option to also echo line input, so that m4 Mathomatic is easier to use.

10/02/10 - "make install" now installs the "/usr/share/pixmaps/mathomatic.xpm" X-Windows icon
           from "icons/mathomatic.xpm" for the Mathomatic entry within desktop menu systems.

           "menu/mathomatic" is an improved Debian Menu System file for Mathomatic;
           This Debian menu file is not installed by the makefile and it uses the above
           installed X-Windows icon.

           The repeat command can now be shortened to 4 characters, like any other command.

10/03/10 - Updated "misc/limits.c" to additionally display all C data type sizes in bytes.

10/06/10 - Capitalized E, I, and PI are now no longer parsed as universal constants.
           Entering E, I, or PI will now result in the general variables E, I, and PI,
           unless "set no case" is previously entered.
           This change undoes version 15.2.0 Mathematica compatibility, due to kind user feedback.
           Entering e, i, or pi still gives the universal constants e#, i#, and pi#.

10/08/10 - Removed "set negate_highest_precedence" option.
           This was done for compatibility and so that less parentheses are displayed
           within expressions.  Polynomials should display very nicely now, powers
           like "x^2", "y^3", and "x^y" are not parenthesized unless need be.

10/09/10 - Added "list hexadecimal" command option, which displays expressions
           exactly as stored internally in hexadecimal.  No precision is lost,
           this is because the floating point values are not converted to decimal.

           Error reporting was improved.

Mathomatic version 15.3.0 released Saturday 10/09/10.

CHANGES MADE TO MATHOMATIC 15.3.0 TO BRING IT UP TO THE NEXT VERSION:

A C code cleanup was done and user documentation was improved.

10/09/10 - Improved the help command, allowing multiple help topics on the help
           command line.

10/16/10 - Improved upon "misc/roots.c", the automatic polynomial root finder.

           The Mathomatic makefile now defaults to maximum gcc optimization (-O3).

10/18/10 - Ability to build Mathomatic with cmake file "CMakeLists.txt",
           contributed by Jonathan Stark.

10/19/10 - Increased the maximum number of equation spaces from 100 to 200.
           They do not consume memory unless they are used.

10/21/10 - Solving things like 0=(x+1)^15+x for x exited the solve routine without grace.
           This problem is now fixed for all solve requests that aborted with error.

10/22/10 - When using the symbolic math library, the display command now outputs
           all specified equation spaces in fraction format and returns the last
           equation space listed as a result.
           Before it was just a crippled list command with a little simplification
           that didn't output anything.

Mathomatic version 15.3.1 released Saturday 10/23/10.

CHANGES MADE TO MATHOMATIC 15.3.1 TO BRING IT UP TO THE NEXT VERSION:

10/24/10 - Some fixes were done to the main makefile.
           PDF user manual creation with htmldoc (using "make pdf") was fixed and made safe.

           Added "help options" command which lists invocation options (like -h).

           Entering "nan" now gives a warning, instead of an error,
           so that expressions containing NaN can be read back in without aborting.

10/25/10 - Added "-c count" option to matho-primes, optionally limiting the number
           of lines of primes that are output to "count" lines.

10/26/10 - Removed the -ffast-math gcc compilation option from the Prime Number Tools.
           "matho-primes -p 10" was not working under Mac OS X with -ffast-math optimization.

10/29/10 - Fixed an old, important bug in the Mathomatic solve routine, where solve was
           failing on some easy to solve equations indeterminately, because of
           incorrect infinite loop detection code.  Solving should work perfectly now.
           This problem was discovered today with the input: "a=a+b" "a" "b".

Mathomatic version 15.3.2 released Friday 10/29/10.

CHANGES MADE TO MATHOMATIC 15.3.2 TO BRING IT UP TO THE NEXT VERSION:

A C code cleanup was done, the code was improved and simplified.

11/01/10 - Fixed -e option to be more like entering what follows into the main prompt;
           That is, the autosolve option is left on and errors do not abort.

11/04/10 - "set finance" option now groups output with thousands' grouping characters
           if the locale information indicates any.  For example: 2,000,000.00

11/05/10 - Makefiles fixed.  CFLAGS is now invoked everywhere LDFLAGS and CC are used.

11/07/10 - Respect CPPFLAGS in all makefiles and compile scripts.

Mathomatic version 15.3.3 released Monday 11/08/10.

CHANGES MADE TO MATHOMATIC 15.3.3 TO BRING IT UP TO THE NEXT VERSION:

A C code cleanup was done, the code was further improved and simplified,
and there is better error checking.

11/08/10 - Fixed an error reporting bug in the solve command.
           There was the possibility of spewed space characters with improper input.

11/09/10 - Added code so that solving for 0^2 or variable^2 will properly square both
           sides of an equation.  Solving for variable^2 will isolate the square root of
           the largest expression containing that variable, and then square both sides of
           the equation.  Works for any power and variable with any equation with roots.

Mathomatic version 15.3.4 released Sunday 11/14/10.

CHANGES MADE TO MATHOMATIC 15.3.4 TO BRING IT UP TO THE NEXT VERSION:

A C code cleanup for efficiency was done, and code comments were added and improved.

11/16/10 - Allow %i, %e, and %pi to be parsed.  These are the universal constants
           i, e, and pi in Maxima and Axiom.  % is still the modulus operator.

11/17/10 - Allow ranges on the plot command line.  Also labelled X and Y axis.
           Also allow plotting of multiple, comma separated, expressions at once.

11/23/10 - Beautified all of the makefiles.

11/27/10 - Fixed -e option to work correctly, and to not need additional options.
           The startup messages are now not displayed with this option, so it can be
           properly used for quick command-line calculations.  Should be followed by
           "--" so that expressions can start with a minus sign (-).  Please make the
           following bash alias to easily use this feature: alias e="mathomatic -e --"

11/28/10 - Added Python script "misc/mp".  Conveniently evaluates any numeric expression
           from the shell command line like Mathomatic using the above -e option, but
           this uses the external Python library mpmath, which allows special functions.

Mathomatic version 15.3.5 released Sunday 11/28/10.

CHANGES MADE TO MATHOMATIC 15.3.5 TO BRING IT UP TO THE NEXT VERSION:

Many minor fixes for consistency and helpfulness were made.

12/03/10 - Cleaned up "factor numbers" command for consistency in operation and to
           work as documented.

12/05/10 - Warn when substituting a non-integer expression into an integer variable.

12/06/10 - Added m4/degrees.m4, this can be read into rmath with "rmath degrees.m4"
           to use degree units instead of radians for trig functions.
           "sudo make m4install-degrees" installs degree mode as the default for
           matho and rmath by appending m4/degrees.m4 to m4/functions.m4.

12/08/10 - Allow input of #equation-number as the LHS or RHS of any equation.  It is
           replaced with the expression or RHS at the specified equation-number.
           Note that #equation-number is also the current equation selector, so entering
           it as the LHS at the main prompt will function differently.

12/16/10 - Simplify (integer % 1) and the like to 0.  Generalized to instantly simplify
           to 0 the following: (integer_expression % +/-unit_fraction).

Mathomatic version 15.3.6 released Sunday 12/19/10.

CHANGES MADE TO MATHOMATIC 15.3.6 TO BRING IT UP TO THE NEXT VERSION:

12/20/10 - The license for all documentation is changed from the GNU LGPL version 2.1 to
           the GNU Free Documentation License (GFDL) version 1.3.  The Mathomatic
           software and all else remain licensed under the GNU LGPL version 2.1.

12/24/10 - Fixed the modulus operator (%) to always evaluate to an integer when
           both arguments are integer.
           7921%14 was giving 11.000000000001, now gives exactly 11.

12/26/10 - Equation number ranges for commands may include unallocated equation
           spaces now, allowing entry of any reasonable range.

Mathomatic version 15.3.7 released Sunday 12/26/10.
