Mathomatic Changelog

What's new in Mathomatic 16.0.5

Nov 6, 2012
  • 10/30/12 - Added "plot_circle.in" to tests directory. It simply plots a perfect unit circle, using gnuplot and the Pythagorean theorem.

New in Mathomatic 16.0.3 (Sep 10, 2012)

  • 09/09/12 - Allow use of editline library in Mathomatic, because somehow use of GPL libraries in LGPL code is not allowed, and GNU readline is GPL.

New in Mathomatic 16.0.2 (Aug 7, 2012)

  • A nice cleanup and documenting of everything, while my mind still works.
  • Enabled links in "manual.pdf" (the Mathomatic User Guide and Command Reference), they were not working before, but they work great now.
  • Allow -a option ("set alternative") with sets alternative color mode, useful in MS-Windows when using Cygwin with the MinGW compiled version.
  • Fixed using rlwrap under Cygwin and possibly other places, when running rmath.
  • get_yes_no() question asker wasn't working in Cygwin or rmath. Fixed to always ask the question, even if the input is not a TTY.
  • Reading directories and empty files gives an error now.
  • Split off changes.txt to changes.txt and changes_series_15.txt. changes.txt and NEWS now contain only series 16 changes.
  • Added tests/batman_gnuplot_bug.in to prove there is a plotting bug in gnuplot itself.
  • Removed directive to use large font in the CSS for all Mathomatic documentation. This is so it can be browsed easily with a mobile device. The font size should be set by the user.
  • A one-sided expression with an equals sign now only sets the expression equal to zero if autocalc didn't work on it. In the Symbolic Math Library, or without autocalc enabled, all is the same. This makes it more likely purely numerical input is only calculated, even when preceded or followed by an equals sign, when autocalc is enabled. Reason for this change: Why would you want to set a constant equal to 0?
  • Fixed a bunch more error reporting bugs coded into version 16.0.1 of Mathomatic to apply identical operations to both sides of an equation. All fixed now. Points to the error correctly now, too.
  • Major change to Symbolic Math Library. It now works exactly like the application when it comes to purely numerical input, approximating and displaying the result, however sign variables are not expanded and the result is not 100% simplified, so running "simplify sign" afterwards helps with that. To revert to the old way, just turn off autocalc, or set the numerical input equal to some normal variable; then there will be no automatic approximation nor simplification. You can tell when an input has been approximated because it was numerical input, because it will always be preceded with "answer =".
  • m4/degrees.m4 copied with m4/functions.m4, when installing with "make m4install", thanks to a suggestion by Reini Urban, maintainer of the Cygwin version.

New in Mathomatic 16.0.1 (Jul 23, 2012)

  • 07/06/12 - Confirmed successful compilation and testing with the Tiny C compiler (tcc). Only needed to set the tcc linker library directories to the current gcc library directories to make it work (using the -L option). Searched globally for the word "simply" and fixed many outdated texts in the Mathomatic documentation and READMEs, deleting some wrongly used "simply"s, too.
  • 07/07/12 - Allow "set modulus_mode language", where language is C, Java, Python, or positive.
  • 07/08/12 - Now leaving the "UNIX" C preprocessor define alone, when "HANDHELD" is defined. "UNIX" was previously forced undefined.
  • 07/11/12 - "make test", "make check", and ./t now display the actual Mathomatic version number being tested. matho-primes now has a -v (display version number) option, like Mathomatic does. Mathomatic now automatically clears out all old numeric calculations if it runs out of equation spaces, requiring no action from the user.
  • 07/12/12 - The solve command never needs the "repeat solve" prefix anymore. The repeat flag is always set for the solve command, so that it will always do full simplifies when verifying. Added quadratic formula derivation and proof to "tests/quadratic.in".
  • 07/17/12 - I came up with a swinging new and easy way to add, subtract, multiply, divide, modular and integer divide, and raise to the power of both sides of an equation by any expression. To add x+1 to both sides of the current equation, just type "+=x+1" at the main prompt. To divide both sides by c^2, type "/=c^2". You can add stuff to non-equations too, this way. Be sure and use the simplify command after this if needed, because only a small amount of simplification is done by default, just enough so you can see what is happening.
  • 07/20/12 - Changed floating point to rational floating point conversion routine (f_to_fraction()) to ignore converting anything with over 15 digits, for greater accuracy. This fixes some small accuracy bugs: "factor number 17!" now gives an error instead of the wrong value.
  • 07/21/12 - Integrate, Laplace, and Numerical Integrate commands now warn when the current equation is not a properly solved equation.

New in Mathomatic 16.0.0 (Jun 30, 2012)

  • 05/26/12 - Push command improved with better responses. Same functionality. In the source code, tune-up variable integer_coefficients was renamed to "factor_out_all_numeric_gcds", because Mathomatic always tries to have integer coefficients this year, but it doesn't always factor out all numeric GCDs unless factor_out_all_numeric_gcds is true, or the factor command is used. The default is false, for more orderly and revealing coefficients. Of course, much of what Mathomatic does is try to improve readability and simplicity. There is no need to set this variable, just use the factor command.
  • 05/27/12 - Removed C declarations for memmove(3), the defaults in /usr/include/string.h are probably better and what's wanted in every case. It would be very odd if this didn't work 100%.
  • 05/28/12 - readline history file renamed to "~/.matho_history" from "~/.mathomatic_history". File name was too long for CygWin. Tested thoroughly compiling, installing, and running under the latest CygWin. Works fine, except for rlwrap. "rlwrap -v" returns with error, a successful return is how I test for its existence. Made output redirection work with the "list primes" command.
  • 06/02/12 - Cleanup of Linux, Mac OS X, and Windows binary distributions. The Windows binary distribution now includes m4 scripts, in case CygWin is installed, allowing use of m4 Mathomatic in Windows. Fixed MinGW version to not output two carriage returns at the end of every line of list command output.
  • 06/03/12 - If compiled with -DSHOW_RESOURCES, will give total CPU usage and RSS size in the "version status" command. Requires OS support. Some OSes will show even more information. Uses getrusage(2).
  • 06/04/12 - Allow breaking out of user line-input requests with Control-C. Still have to hit the Enter key, but the command will be aborted.
  • 06/05/12 - Added "lib/example.c", the simplest example yet of Symbolic Math Library usage. Compile with "compile.testmain" or practice compiling it by hand. The simplify command now returns the number of expressions simplified, so you can tell if "simplify sign" worked. The solve command can now require verification, by using the "verifiable" option, instead of the "verify" option. This causes unverifiable solves to return with failure, aborting any reads. Fixed missing code in internal C function free_mem(). I don't think it was used by anyone. A call to free_mem() is now made on exit, if Mathomatic is compiled with -DVALGRIND, to check for memory leaks.
  • 06/08/12 - Added polynomial factoring to GCD result of divide command. It is always handy to know what the factors are of the GCD. Allow comma (,) at the end of most input lines. A comma now terminates an expression instead of giving an error. Allow commas all over the place, where-ever logical, in any Mathomatic command-line. They are used as separators, more so than spaces.
  • 06/09/12 - Cleaned up variables command to always allow the count parameter, and to line up everything with 8 character wide tabs. Added ability to place the definite integration bounds on the integrate command-line, just like the nintegrate command. Added titles to most help command pages.
  • 06/10/12 - The "factor number" command works much nicer now, and allows comma separators and zero. Developers should note that to remain the same as past versions, HTML mode needs to be "set html all" to output HTML at all times in both the application and the symbolic math library, even when redirecting output. Now setting all HTML mode with "make pdfsheet". "set html" only outputs HTML code to standard output.
  • 06/13/12 - Added warning in "misc/known_bugs.txt" about LLVM/Clang optimizer failure when compiling Mathomatic with LLVM/Clang instead of gcc. If you enable any optimization at all, entering (32^.5) and the like will hang Mathomatic, putting it in an endless loop. So when compiling Mathomatic with LLVM/Clang, always disable optimization with "-O0", so that it will then run and pass all of the tests in 1 second and not be infinitely slower. Mathomatic will hang during "make test" if compiled with optimization enabled using LLVM. Mathomatic is not noticeably slower when compiled without any optimization, because everything is memmove(3)s and floating point arithmetic.
  • 06/15/12 - Added repeat option to replace command. A handy feature that lets you try plugging different values into an equation. It checks if the result is an identity, too.
  • 06/18/12 - The version command now has a "status" option, which behaves as before, displaying all version and status information. The version command by itself now only displays the Mathomatic version number. Running "mathomatic -v" is now a good way of testing for the existence of Mathomatic on your system, only outputting the version number to standard output and exiting successfully.
  • 06/19/12 - Removed the parenthesizing of variable names in all messages. If the current expression is a non-equation, then prefixing or suffixing an expression with "=" will add that expression as the other equation side now, conveniently making it an equation you can solve.
  • 06/22/12 - Added equation number ranges option to tally command. Type "tally -" to resume if the current equation hasn't changed. Type "tally all" to add together all stored expressions as the starting value. Specifying equation numbers or ranges will silently add them, then prompt for the next things to add. The average option now displays the number of entries (count) each time the average is displayed. When you exit by typing an empty line, the current total is saved in the next available equation space and made current, so it can easily resume with "tally -". "-" by itself always means the current equation. gnuplot now works with MS-Windows better. Tried running a Windows gnuplot test from scratch, without Cygwin, and it didn't work. It should be mostly fixed now. So go ahead and try plotting in Windows, after downloading and installing gnuplot. Please complain if any problems. Fixed a long-running problem with the plot command, by asking the user questions, only if needed, so that gnuplot will not give an error if you are multi-expression plotting.
  • 06/23/12 - Moved load_rc() out of main.c so that the Mathomatic startup set options file can be loaded by the library, if the developer wishes. Changed a few things so that "set save" and "set no save" will work if load_rc() is called beforehand.
  • 06/25/12 - The simplify command has been fixed for optimal integer coefficient factoring results and so "180*(sides-2)" simplification works nicely, by keeping the result the same as the start by factoring out rational constants greater than 1 (this is new), along with less than 1, if the coefficients remain or become integers. Many things cleaned up and finished, like the official documentation, the "code integer" command, and "examples/fact.c".
  • 06/27/12 - Allow an ASCII string after the "set save" command, to save only that string in ~/.mathomaticrc, so that string, which should be set options, is for every Mathomatic session to start with. For example, "set save bold color" will start out Mathomatic in bold color mode every time. Enter "set no save" to remove. "set save" by itself saves all of the current set options for every future session.

New in Mathomatic 15.8.5 (Jun 6, 2012)

  • Code, documentation, and user interface improvements.
  • 05/26/12 - Push command improved with better responses. Same functionality. In the source code, tune-up variable integer_coefficients was renamed to "factor_out_all_numeric_gcds", because Mathomatic always tries to have integer coefficients this year, but it doesn't always factor out all numeric GCDs unless factor_out_all_numeric_gcds is true. The default is false, for more orderly and revealing coefficients. Of course, much of what Mathomatic does is try to improve readability and simplicity.
  • 05/27/12 - Removed C declarations for memmove(3), the defaults in /usr/include/string.h are probably better and what's wanted in every case. It would be very odd if this didn't work 100%.
  • 05/28/12 - readline history file renamed to "~/.matho_history" from "~/.mathomatic_history". File name was too long for CygWin. CygWin rlwrap is not working, either. Made output redirection work with the "list primes" command. Tested thoroughly compiling, installing, and running under the latest CygWin. Works fine, except for rlwrap. "rlwrap -v" returns with error, a successful return is how I test for its existence.
  • 05/29/12 - Now blocking bad characters ('\) that may manipulate the shell command line in the plot command, for added security.
  • 06/02/12 - Cleanup of Linux, Mac OS X, and Windows binary distributions. The Windows binary distribution now includes m4 scripts, in case CygWin is installed, allowing use of m4 Mathomatic in Windows. Fixed MinGW version to not output two carriage returns at the end of every line of list command output.
  • 06/03/12 - If compiled with -DSHOW_RESOURCES, will give total CPU usage and RSS size in the version command. Requires OS support. Some OSes will show more information.
  • 06/04/12 - Allow commas in logical places in Mathomatic command-lines. Allow breaking out of line-input requests with Control-C. Still have to hit the Enter key, but the command will be aborted. Optimized the calculate function for the calculate command, etc., to skip further simplification if the approximation result is a single value without any operators. Debug levels 5 and 6 look much better with this too, because of less repeated output.
  • 06/05/12 - Added "lib/example.c", the simplest example yet of Symbolic Math Library usage. Compile with "compile.testmain" or practice compiling it by hand. The simplify command now returns number of expressions simplified, so you can tell if "simplify sign" worked. The solve command can now require verification, by using the "verifiable" option, instead of the "verify" option. This causes unverifiable solves to return with failure, aborting any reads. Fixed missing code in free_mem(). Don't think it was used by anyone, and is only for the symbolic math library, if desired.

New in Mathomatic 15.8.4 (May 11, 2012)

  • 04/29/12 - Added simplifying trig identities to the tests. Discovered "solve 0" doesn't work anymore, use "solve for 0" instead. "solve 0" will be fixed and enhanced shortly.
  • 04/30/12 - "solve 0" and "solve verify 0" work now. "solve verify 0" will solve for zero and tell you if the equation is an identity or not, while "solve 0" simply solves the current equation for zero. "solve all verify 0" will verify that all entered equations are identities.
  • With the roots command, the "Inverse check" value is not displayed unless debugging is enabled now.
  • The iterative calculate command mode now always tells the number of completed feedback iterations. It was not apparent before.
  • Documented and ignore pause command with demo mode now, instead of html mode. Demo mode is specified with -d, html mode with -x.
  • 05/02/12 - Mathomatic now proudly displays when verifying a solve operation. Too many UI improvements to mention, all relatively minor.
  • 05/03/12 - Added "copy select" option to the copy command, which selects the first created copy, making it the current equation, rather than not updating the current equation.
  • 05/04/12 - Ran valgrind on the symbolic math library executable testmain, after running all the tests, no memory leaks were found at all! I was surprised! Now I get to pat myself on the back! I will make another release soon.
  • 05/05/12 - "display simple" is now allowed, in addition to "display mixed", to display simple or mixed fractions as desired, regardless of the default.
  • "set finance" option removed, replace with "set fixed" option. Works similarly, except now you can do "set fixed_point=0" to have integer-only output. "set no fixed" or "set fixed -1" turns off fixed-point mode, returning you to true floating-point mode.
  • 05/06/12 - Added more integer factoring debugging code. It's a shame that Mathomatic only does double precision floating point arithmetic.
  • Made "set no autodelete" the default. Numeric expressions will not be deleted. "set auto" leaves "autodelete" alone now.
  • 05/07/12 - real and imaginary commands now append "_real" or "_imag" to the solved for variable name now, if a solved equation. This is for clarification and ease of use.
  • 05/08/12 - Improved "misc/limits.c" and added GNU LGPL license preamble. Later moved to directory examples.
  • -d demo mode now allows using the calculate command without prompting for the values of any of the variables. This is so the calculate command can be used with the online versions of Mathomatic.
  • 05/09/12 - Moved all worthy example source code from directory misc to directory examples, so they can be included in the binary distributions. Moved and now available are limits.c, roots.c, and testprimes.
  • Improved/shortened the eliminate command messages and made the "using" syntax consistent.
  • Need "set debug -2" to suppress everything now, including warnings. "set debug -1" only suppresses helpful messages now, warnings will get through. Warnings are usually rather important.

New in Mathomatic 15.8.3 (Apr 30, 2012)

  • 04/29/12 - Added simplifying trig identities to the tests. Discovered "solve 0" doesn't work anymore, use "solve for 0" instead. "solve 0" will be fixed and enhanced shortly.

New in Mathomatic 15.8.2 (Mar 26, 2012)

  • Small fix to main makefile. "mandir" and "docdir" no longer depend on "datadir".
  • Small fix to simplification. Any absolute value (such as |x*y| = ((x*y)^2)^.5) is now not ever power expanded (to (x^2)^.5*(y^2)^.5 or (x*x*y*y)^.5), so some results are simpler, like simplifying |x^2-x|.
  • A change to the matho script makes GNU m4 no longer quiet about any warnings or errors, when running m4 Mathomatic.

New in Mathomatic 15.8.1 (Mar 10, 2012)

  • Added some important missing documentation, and the makefiles were fixed.
  • Some scary messages explained to make them less scary.
  • All makefiles corrected to fix the following problem: Removed -Cv option from the install command, so that installing Mathomatic under NetBSD works without a hitch. The "install -Cv" option is not supported under some operating systems, so compiling and installing Mathomatic will now be easier on those systems.
  • Added Heron's formula (calculates the area of any triangle, given all three side lengths) to the "help geometry" command. Mathomatic can solve for any side length, too. See "tests/heron.in" for some proofs.
  • "make uninstall" is now passing the current "prefix" (the directory being operated on, like "/usr") to the lib and primes uninstall.
  • Added noisy compile-time warning if DBL_DIG is not 15, and display it as digits precision in the version command.
  • Removed "no right_associative_power" from set options listing, now only lists "right_associative_power" if it is set. A very unimportant and rarely used option that was just taking up display space. However, when set, this option makes Mathomatic work like most other computer algebra systems when parsing multiple power operators on the same level (without parentheses). So feel free to use it, or recommend I make it the default.
  • Fixed a bug in modulus simplification; sometimes it would go in an infinite loop because it was not checking that it made the expression smaller. It now checks that the result is actually smaller. Surprisingly, this problem happened only when doing polynomial division for a modulus operator to simplify it. Here is a test expression, to see if you have this bug: (x % ((x - y)/integer_any1)). Simplifying it results in a hang, on any version of Mathomatic without the new bug fix.

New in Mathomatic 15.8.0 (Feb 20, 2012)

  • The variables command now returns false (with error message) if no normal variables are listed with the default or "count" command line options. This is so it can detect numeric-only expressions, which may be useful.
  • The set command now returns the string "Success." upon success, if the debug level is positive or zero. m4 Mathomatic startup m4 scripts required adjustment, so they wouldn't repeatedly say "Success.".
  • The variables command by default now displays e, i, pi as e#, i#, and pi#, so you can tell they are not normal variables. This affected other functionality of the variables command, fix was uploaded before the end of the day.
  • Change of 12/24/11 was undone. Many expressions containing the imaginary unit, such as the complex exponential expansion of the tangent function, were not getting simplified with the simplify command. See the complex number problem in "misc/known_bugs.txt". Simplification should work better now for expressions containing division by complex numbers.

New in Mathomatic 15.7.3 (Feb 2, 2012)

  • Further improved parse_complex(), so simplify works better and the divide command no longer approximates, giving more accurate symbolic answers.
  • Combining powers and different denominators that contain absolute values like ((x^2)^.5) is now prevented. This allows correct simplification and solving when dealing with absolute values. Tested with the Batman equations, which, when plotted display the Batman logo ("tests/batman_plot").
  • Moved place where 1/i is converted to -i to within the complex number division handler, making complex number results more consistent and correct.
  • Changed the chief author's main email address to "[email protected]". The old linux.com email address didn't seem to work, reliability issues, etc.
  • Combining different denominators that contain the imaginary unit (i) is now prevented. This prevents getting different answers after simplifying a complicated complex number expression.
  • All copyright dates updated to include the new year 2012. Happy New Year everybody!
  • "set html" in the library now allows pretty HTML output with redirected output and with 2D library result string expression output ("set display2d" or display command). Still no color HTML output for the library.
  • Improvement to simplification made, less unnecessary divisions and prettier results of the simplify command. Needs testing.
  • Added color HTML output for redirected output when using the symbolic math library.
  • Increased the size of icons/mathomatic.png to 64x64 and made it look nicer. This is the new, resizeable Mathomatic logo: icons/mathomatic.svg.
  • Published makenews.sh script to make the NEWS file out of the changes.txt file.
  • Added tests/demo and tests/demo_sub, to run specific scripts, and create complete HTML output files from them. These are used to create the examples on the Mathomatic website.

New in Mathomatic 15.7.2 (Jan 17, 2012)

  • 12/14/11 - Further improved parse_complex(), so simplify works better and the divide command no longer approximates, giving more accurate symbolic answers.
  • 12/18/11 - Combining powers and different denominators that contain absolute values like ((x^2)^.5) is now prevented. This allows correct simplification and solving when dealing with absolute values. Tested with the Batman equations, which, when plotted display the Batman logo ("tests/batman_plot").
  • 12/21/11 - Moved place where 1/i is converted to -i to within the complex number division handler, making complex number results more consistent and correct.
  • 12/23/11 - Changed the chief author's main email address to "[email protected]". The old linux.com email address didn't seem to work, reliability issues, etc.
  • 12/24/11 - Combining different denominators that contain the imaginary unit (i) is now prevented. This prevents getting different answers after simplifying a complicated complex number expression.
  • 01/01/12 - All copyright dates updated to include the new year 2012. Happy New Year everybody!
  • "set html" in the library now allows pretty HTML output with redirected output and with 2D library result string expression output ("set display2d" or display command). Still no color HTML output for the library.
  • 01/04/12 - Improvement to simplification made, less unnecessary divisions and prettier results of the simplify command. Needs testing.
  • 01/05/12 - Added color HTML output for redirected output when using the symbolic math library.

New in Mathomatic 15.7.1 (Nov 21, 2011)

  • 11/19/11 - "make uninstall" now uninstalls the prime number tools and symbolic math library too.
  • 11/20/11 - Cleaned up calculate command to allow feedback iteration of more than one expression at a time.

New in Mathomatic 15.7.0 (Nov 2, 2011)

  • Allow an equation-number-range to be specified on the calculate command command-line, so that multiple equation spaces can be calculated automatically with a single command.
  • Improved nintegrate command results. nintegrate of cos(sin(x+1)) wrt x from 0 to 1 now always gives the correct simplified result. Rewrote to allow specifying lower and upper bounds on command line.
  • Divide command improved: Allow specifying the dividend and divisor on the command line. Other minor fixes.
  • The Mathomatic command "plot x^2" works now, Mathomatic automatically replaces all ^ with ** on the plot command line.
  • Added compilation option -fexceptions to CFLAGS in the Mathomatic application and library makefiles and build scripts. May be why exception handling wasn't working well in the past.
  • Fixed the display command in the symbolic math library to respond to "set columns=number" to cut-off the 2D expression output string at the number column, instead of always 80 columns. And Unix shell style redirection for the display command works now, to be consistent with the other library commands, simultaneously returning a single 2D expression string (width controlled by the "set columns" variable) and outputting all specified 2D expressions to the file pointed to by gfp (width limit set to infinity).
  • Trying to remove -lncurses from ld command line again, getting more build failures because of it. To compile under Red Hat Linux, "LDLIBS=-lncurses make READLINE=1" must be used now. All other distros should easily compile with no changes now.
  • Added the "variables count" option, to display the counts of each variable in the specified expressions or equations.
  • Added "NEWS" file, which is just "changes.txt" reversed. "NEWS" is ordered neatly with the latest changes at the top.

New in Mathomatic 15.6.5 (Sep 26, 2011)

  • Now allowing balanced parentheses with anything inside them in variable names, so that they can preserve functions temporarily. Just type "set special ()" to use this option and stop getting errors when entering functions. They will not be real functions, just variables whose name is the complete function string.
  • Added sinc(x) function to m4 Mathomatic, which is the normalized sinc function, defined as sin(pi*x)/(pi*x).
  • Split off the generally useful stuff and general C math defines from am.h to standard.h; am.h only contains Mathomatic defines now. standard.h and complex_lib.c with complex.h can be included in your C math programs if you like, with no changes required. Use of gcd.c in other floating point programs that need a gcd() or double-to-fraction convert function is recommended. The code has been heavily tested by this CAS.
  • Fixed and tested the variables command to handle complex number equations better.
  • Cleaned up and improved documentation on modular arithmetic and its options. Mathomatic can simplify, calculate, and even solve modular arithmetic!
  • The 2D display command's internals were rewritten to allow outputting to C string buffers. This allows the display command to return a multi-line, formatted expression string when using the Symbolic Math Library. Note that there is no color mode when outputting to a C string, but if you send the string to a terminal, it displays the specified equation space nicely in 2D fraction format.
  • Mathomatic "help color" command page created.
  • Ported Mathomatic to latest OpenIndiana SunOS operating system. Some changes were required and implemented for easier compilation. All tests passed!
  • Improved set command error reporting.

New in Mathomatic 15.6.4 (Aug 24, 2011)

  • 8/05/11 - Approximating complex number roots only when helpful or approximating,improving some results when imaginary numbers are used; for example,simplifying sqrt(sin(x)) now returns the best possible result.
  • 8/06/11 - Added "make strip" target to allow easily running the Unix striputility on the resulting binaries.Deleted the "make install-strip" and "make bininstall-strip" targets.
  • Additionally display C compiler version number in version command.
  • 8/09/11 - Added ability to make a shared library of the Symbolic Math Library,using the cmake utility. "CMakeLists.txt" was the only file changed.The shared library is thoroughly UNtested.
  • 8/13/11 - A colon character (:) placed before any main prompt input will makeit ignore any error occuring in that particular line, so any currentread operation won't abort. Any Mathomatic command preceded with acolon will always return with successful status.
  • File "misc/identities.in" was added, showing a strength and weaknessof Mathomatic.
  • Removed "doc" target in makefile, due to interference from adirectory of the same name; use the "html" target instead.
  • Added cheat card "doc/quickrefcard.html", created by "make htmlcard"and scripts "makehtmlcard.sh" and "makehtmlcard.awk". The PDF ofthis currently has to be made manually with a web browser, usingprint to PDF file.
  • Added ability to automatically create cheat sheet "quickref.pdf",created by "make pdfsheet", which invokes script "makepdfsheet.sh".
  • 8/19/11 - General complex number root approximation bug fix: expressions likesqrt(sin(9)) now give the correct result, instead of a negativenumber, when using the calculate command. The calculate command isused to immediately evaluate it when you type "sqrt(sin(9))" intothe m4 Mathomatic main prompt.
  • 8/20/11 - The variables command now defines all "integer" and "sign" variablesas "int" instead of "double".
  • 8/21/11 - Rewrote the code command code lister to allow output to a C string.Code command is now completely available with string output in theSymbolic Math Library, meaning Mathomatic can automatically

New in Mathomatic 15.6.3 (Aug 5, 2011)

  • Source code and user documentation cleanup and corrections.
  • Creating a PDF book from the Mathomatic man pages with "make bookman" is more
  • likely to work now. Package txt2man must be installed to run "make bookman".
  • 6/24/11 - Added file misc/known_bugs.txt, which is the current list of known bugs in Mathomatic.
  • 7/04/11 - Added file tests/quadratic.in, just a script that solves the general quadratic equation.
  • 7/06/11 - Fixed error messaging to not always give command usage information when a command fails or gives a negative result. Now only gives command usage info when helpful, like when something on the command line is incorrect.
  • 7/07/11 - Fixed the Mathomatic derivative command to not fail with a helpful error message when the derivative is zero. Now it just gives a warning message along with the successful result of the constant zero.
  • 7/23/11 - Mathomatic no longer compiles correctly with the latest Xcode gcc, due to a bug in Apple's gcc optimizer. Either turn the optimizer completely off when compiling with Xcode, or use the gcc provided by MacPorts. Xcode version 3.x and other non-Apple C compilers will work fine. All mention of Xcode has been removed from the Mathomatic distribution.
  • 7/28/11 - Balanced parentheses and brackets are now allowed in variable names, if the "set special_variable_characters" command is run first. For example, "set special ()" will allow entry of named functions, converting them to variables, which might be useful in some cases. However, entry of variables like "f(x)" will not be differentiatable, because there is no "x" variable in that, only the "f(x)" variable. There can be no spaces encountered in the function; variable names end at any non-variable character, including space characters. Entry of array elements is still possible with "set special []". This is the default.
  • 7/29/11 - Prompts are now blue when reading files into Mathomatic in color mode.
  • 7/30/11 - Allow an equation number range on the solve command line, for faster, more automated solving. If you want to solve all entered equations for x, just type "solve all x" or "solve verify all for x" to be sure.
  • 7/31/11 - Allow "repeat read filename" command, which repeatedly reads a script until it fails or is aborted.
  • 8/04/11 - "make install" now shows if installed executables are new or have changed since the last install.

New in Mathomatic 15.6.2 (Jun 13, 2011)

  • 6/06/11 - Corrected datadir variable usage in the main Mathomatic makefile. Directly importing datadir could have catastrophically deleted the entire /usr/share directory with "make uninstall".
  • 6/12/11 - Added proper compilation option (WIN32_CONSOLE_COLORS) for color mode in MinGW, in case use with mintty.exe is desired.

New in Mathomatic 15.6.1 (Jun 6, 2011)

  • The Mathomatic user documentation and help have been shaped up.
  • A BOLD_COLOR compile-time flag was added, to make Mathomatic default to
  • using bold color mode. Used on the Mac and Windows versions of
  • Mathomatic now.
  • 5/8/11 - The "factor number" command now allows number ranges, in addition to integers and integer expressions.
  • 5/9/11 - Install "m4/functions.m4" to proper directory (/usr/share/mathomatic/m4). The "m4" directory is no longer installed to the system doc directory. A big thanks to Terje Røsten of Fedora for showing me the way on this, and for his timely Mathomatic package maintenance in Fedora Linux.
  • 5/11/11 - The matho-primes utility can now be run from within Mathomatic by typing "list primes". Put any arguments you want to pass to matho-primes on the "list primes" command line. Redirection doesn't work yet for this, so it remains undocumented.
  • 5/15/11 - Added NOGAMMA compile-time define, which makes the factorial function integer only, if desired. Added color mode to the MinGW Windows version of Mathomatic, thanks to Doug Snead for the code. Tested in cmd.exe, command.com, and CygWin. The new color mode does not work in mintty.exe.
  • 5/16/11 - Allow defining SILENT=0 when compiling the symbolic math library, so that "set debug level" works and normal Mathomatic debugging works within the library code. Thanks to Doug Snead for suggesting this.
  • 5/21/11 - Changed "make check" to not use the time command, as /usr/bin/time is not available on all systems. "make test" performs the same function and still uses time.
  • 5/23/11 - Updated the Free Software Foundation's address in the LGPL license text and in all source files.

New in Mathomatic 15.6.0 (Apr 30, 2011)

  • Created m4 Mathomatic input file "tests/trig". Lists all trig and hypertrig functions, allowing testing of their simplification and manipulation.
  • Sped up polynomial operations to be another 30 times faster in some cases. Finished and cleaned up the polynomial factoring and division C code. Thanks again to Kingsley G. Morse Jr. for showing me this needed to be done.
  • The "simplify quick" command was changed to not combine unlike denominators, making it much more useful, doing better simplification than any other simplify option sometimes.
  • The tally command now returns the ending total and sets it as the current equation.
  • Fixed an old bug just discovered today where expressions like (x - y)*(x^99 - y^99) were being factored into something huge with the simplify and fraction commands, which are the only commands that do polynomial factoring.
  • Improved coloring scheme: all prompt and normal text is now the terminal emulator's default color for text (usually uncolored). Expressions remain colored if color mode is enabled. Thanks to Carl U. Grayser for the good idea.
  • Improved the fraction command by factoring polynomials first. Specifying the "numerator" and "denominator" options together will make the fraction command return with failure if the result is not a fraction, otherwise the entire fraction is returned.
  • Allow setting "M4" makefile variable to "gm4" (GNU m4), so that m4 Mathomatic can work under BSD Unix after installation. Be sure to use gmake to compile Mathomatic under BSD Unix;
  • Non-GNU Unix make and Unix m4 do not work with Mathomatic.

New in Mathomatic 15.5.3 (Apr 19, 2011)

  • The exit status of Mathomatic now shows any errors when run with the -e option. So if a command fails, it exits to the OS with the exit status 1. Exit status is 0 if everything went OK. Also works without the -e option, when files are specified on the shell command line. An error will abort the script, returning you to the operating system with an exit status of 1.
  • Changed makefile to allow installing m4 Mathomatic without installing the documentation. Use "sudo make bininstall matho-rmath-install" to install m4 Mathomatic executables and man pages. Then "sudo make docinstall" installs all documentation.
  • The rmath man page math function and constant lists have been corrected and the rmath man page has been added to the main user documentation.
  • Output of universal constants is now prettier when displaying. No more i#, e#, and pi#, they are displayed as they are entered: i, e, and pi. HTML mode displays the small Greek letter pi for pi.
  • The nintegrate command now works with complex numbers and trigonometry, and does not change the current equation to the result.
  • Link the man page rmath.1 to matho.1 when installing, so that every executable has a man page.
  • Added "numerator" and "denominator" options to the fraction command, which returns only the numerator or denominator after making sure the expression is a simple algebraic fraction.
  • Autocalc now deletes only the previous autocalc when autocalc is used. It was deleting all autocalc results except for the current one every time, preventing copying.
  • Improved simplification of expressions like (x + (2^(1/2)))^{3,4,5,6}. It broke a while back when factor_times() constant factoring was improved. The fix uses factor_times() less, preserving reduced surds.
  • Saving "plot_prefix" with the "set save" command was not escaping semicolons, so they were disappearing from the prefix. Fixed now.

New in Mathomatic 15.5.2 (Mar 21, 2011)

  • 3/12/11 - Renamed the "factorial" directory to "examples".
  • 3/13/11 - Fixed entering negative odd roots like (-32)^(1/3) to not approximate, instead simplifying to -2*4^(1/3). So all surds are preserved, now.
  • 3/17/11 - Added man pages for the Mathomatic Symbolic Math Library functions. Allow building a PDF book of all Mathomatic man pages.
  • 3/18/11 - Simplify command simplification sped up even more, by putting algebraic fraction reduction in the right place and not overusing it. Responsiveness has greatly improved for large expressions. Thanks go to Kingsley G. Morse Jr. for help with this and for filing a bug report.
  • 3/21/11 - Simplify command functionality improved.

New in Mathomatic 15.5.0 (Feb 25, 2011)

  • Another ease-of-use enhancement was implemented, making it possible to use "#equation-number" anywhere in any expression, it will insert the expression at that equation number.
  • This is an improvement that should have been done long ago. However, don't expect it to work with the plot command, "plot #1" does not work because the argument to plot is a string and/or the current equation. For example, typing things like "y=#1^2" is a convenient way to raise the expression in equation space number 1 to the power of 2 and set it equal to y, or whatever you wish.

New in Mathomatic 15.4.4 (Feb 14, 2011)

  • Many minor but obnoxious bugs were fixed. m4 support has been completed.
  • The equation for solving quartic polynomials has been simplified.

New in Mathomatic 15.4.3 (Feb 8, 2011)

  • Fixed result of modulo 0 (e.g. 9%0) and infinity modulo (e.g. inf%9) to be NaN.
  • Disabled shelling out and the edit command only in m4 Mathomatic.
  • The terminal hung when shelling out or editing with an m4 front-end.
  • Plotting still works.

New in Mathomatic 15.4.1 (Jan 23, 2011)

  • The plot and fraction commands were improved.
  • Maintenance and porting to Solaris and Cygwin were done.

New in Mathomatic 15.4.0 (Jan 12, 2011)

  • Code cleanup.
  • 12/28/10 - A possible bug was fixed when entering non-ascii characters.
  • Added "compare approximate" command option, use of which is more likely to result in a successful comparison. Runs the approximate command on both expressions before comparing, if needed.
  • 1/01/11 - The variables command syntax was upgraded to be the same as the code command.
  • All copyright dates updated to include the new year 2011. Happy New Year!
  • 1/03/11 - Added code to delete identities in the optimize command. When identical equations were optimized, identities would result. These are now removed.
  • 1/04/11 - Added matho to the mathomatic man page; rmath was already there.
  • Fixed incorrect syntax in the menu files in menu directory, thanks to Sandro Tosi for reporting the error and packaging for Debian.
  • Moved the PDF manual from "doc/manual.pdf" to "manual.pdf", so that it will be installed separately from the HTML documentation.
  • 1/06/11 - Added "tests/quartic.in". At last, a working set of equations for calculating the four solutions of any quartic equation, similar to "tests/cubic.in".
  • 1/09/11 - Fixed parser routine to give a helpful error message when a cursor or function key string is encountered. Escape, carriage return, and form-feed are ignored now.

New in Mathomatic 15.3.7 (Dec 27, 2010)

  • 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 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.

New in Mathomatic 15.3.5 (Nov 29, 2010)

  • 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.

New in Mathomatic 15.3.4 (Nov 9, 2010)

  • 11/08/10 - Fixed error reporting bug in the solve command.

New in Mathomatic 15.3.2 (Oct 30, 2010)

  • 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.

New in Mathomatic 15.3.1 (Oct 25, 2010)

  • 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.

New in Mathomatic 15.3.0 (Oct 11, 2010)

  • 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 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.

New in Mathomatic 15.2.2 (Sep 28, 2010)

  • 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 [email protected]
  • 9/27/10 - Added "set plot_prefix" option, which allows custom plot functionality.

New in Mathomatic 15.2.1 (Sep 1, 2010)

  • 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.

New in Mathomatic 15.1.6 (Aug 10, 2010)

  • 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.

New in Mathomatic 15.1.5 (Jul 20, 2010)

  • Makefiles and compile scripts were corrected and enhanced per http://www.gnu.org/prep/standards/
  • 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.

New in Mathomatic 15.1.4 (Jun 21, 2010)

  • Greatly improved file operation error reporting by using the perror(3) function.
  • Fixed categories in "icons/mathomatic.desktop"; Mathomatic now goes under valid categories, mainly Education.

New in Mathomatic 15.1.3 (Jun 7, 2010)

  • 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.

New in Mathomatic 15.1.1 (May 25, 2010)

  • 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
  • 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.

New in Mathomatic 15.1.0 (May 15, 2010)

  • 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.

New in Mathomatic 15.0.8 (May 3, 2010)

  • 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.

New in Mathomatic 15.0.7 (Apr 15, 2010)

  • Vastly improved the "factor number" user interface, now factors integer expressions like 2^32-1. "factor number" is disabled in library mode.
  • The real and imaginary commands no longer fail when the expression is not complex, just a warning is given.
  • Changed normal display of "-1*" to "-", for prettier 2D output, so things like "-a" display properly, not as "-1*a".

New in Mathomatic 15.0.6 (Mar 27, 2010)

  • 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.
  • Changed author email address to "[email protected]".
  • 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.

New in Mathomatic 15.0.5 (Jan 27, 2010)

  • 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.
  • Fixed "make m4install", the installed rmath and matho programs weren't working.
  • Added GNU LGPL license notices to every C source file with a copyright notice, for proper protections.

New in Mathomatic 15.0.4 (Jan 18, 2010)

  • 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.

New in Mathomatic 15.0.3 (Jan 9, 2010)

  • 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.

New in Mathomatic 15.0.2 (Dec 28, 2009)

  • Moved get_screen_size() from main.c to am.c because it is used in the library when UNIX or CYGWIN is defined. Thanks to Reini Urban for noticing this problem.

New in Mathomatic 15.0.1 (Dec 17, 2009)

  • Fixed a problem with the -q (quiet mode) option being ignored if the session options were ever saved with the "set save" command.
  • 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.
  • Added ability to log symbolic math library results, and made command behavior more consistent in the library by always returning the final result string.
  • The factor command now factors more by factoring out the GCD of rational coefficients.

New in Mathomatic 14.6.3 (Nov 26, 2009)

  • An improvement was made to constant factoring when factoring polynomials with rational coefficients, so that exponentiated sums like (2+3x)^3 simplify perfectly.
  • The "unfactor fully" command was renamed to "unfactor fraction" to be more descriptive and consistent.
  • Running "compile.secure" to compile the secure version wasn't working, due to wrong conditional code placement for the "help examples" command; fixed now.

New in Mathomatic 14.6.2 (Nov 24, 2009)

  • An improvement was made to constant factoring when factoring polynomials, so that things like (2+3x)^3 simplify perfectly.

New in Mathomatic 14.6.1 (Nov 16, 2009)

  • Allow plot command from matho and rmath scripts.
  • Allow plotting of expressions with the universal constant "e" in them.
  • Also allow plotting of expressions with the imaginary number "i" in them, however plots are always plotted on real Cartesian space, showing only real points.
  • Added "help examples" command.
  • Added "nosimplify" option to the Taylor command. Use by typing "taylor nosimplify". Fixed symbolic math library to always provide an error message if error.

New in Mathomatic 14.6.0 (Nov 9, 2009)

  • Allow plot command from matho and rmath scripts.
  • Allow plotting of expressions with the universal constant "e" in them. Also allow plotting of expressions with the imaginary number "i" in them, however plots are always plotted on real Cartesian space, showing only real points.

New in Mathomatic 14.5.7 (Oct 28, 2009)

  • Restored the "help geometry" command, it was a mistake to remove it.
  • Finished added internationalization code, so that defining I18N and providing translation files will work using gettext(3).
  • Fixed the display command to skip an equation space if an exception occurs while preparing it for display, rather than aborting without displaying anything.

New in Mathomatic 14.5.6 (Oct 13, 2009)

  • Cleanup and minor corrections made. Initialization is now more robust.
  • Allow generation of ISO C99 complex number code with the "code c" command, so that equations with i# in them will work with gcc.

New in Mathomatic 14.5.5 (Sep 17, 2009)

  • 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.
  • 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.
  • Fixed in "lib/lib.c" a possible memory leak in the symbolic math library interface.

New in Mathomatic 14.5.4 (Aug 31, 2009)

  • Allow "-" on the Mathomatic invocation command line, to read from standard input.
  • Fixed approximate command to also approximate complex number roots.
  • Can now solve some (complex number)^x=(complex number) equations for x. Results verifiable.
  • 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 after compiling under Slackware. This bug was reported by Dylan Armitage, thank you very much.

New in Mathomatic 14.5.3 (Aug 8, 2009)

  • Allow setting the enforced security level for the Mathomatic session with "-s" option.
  • 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.
  • Added "set rationalize_denominators" option, which attempts to move radicals from the denominato.

New in Mathomatic 14.5.2 (Jul 20, 2009)

  • Rationalizing the denominator of algebraic fractions was sometimes complicating expressions instead of rationalizing; affects full simplification. Fixed.
  • Parenthesize displayed negative numbers when "set no negate_highest_precedence" to get signs right when interpreting.
  • Allow optimize command in symbolic math library.

New in Mathomatic 14.5.0 (Jun 25, 2009)

  • Re-added explicit use of ncurses library with readline because Slackware requires it.

New in Mathomatic 14.5.0 (Jun 25, 2009)

  • Re-added explicit use of ncurses library with readline because Slackware requires it.

New in Mathomatic 14.4.5 (Jun 15, 2009)

  • "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.
  • Fixed factor command parameter handling and results, it was not user friendly. Also fixed factor command for consistent behavior in the symbolic math library.
  • Allow separate install of Mathomatic binaries and documentation in makefile.

New in Mathomatic 14.4.4 (Jun 3, 2009)

  • Small fix made to fraction command and "simplify fraction" for better looking fractions.
  • Added a "simplify quickest" command option, which does no unfactoring nor factoring.
  • Made full simplification more efficient and simpler by cutting out unnecessary loops.
  • 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.
  • Added "set autoselect" and "set auto" options. Use "set no auto" to always store entered expressions into equation spaces, unless it is a command.

New in Mathomatic 14.4.3 (May 26, 2009)

  • Small fix made to fraction command for better looking fractions.

New in Mathomatic 14.4.2 (May 13, 2009)

  • A general cleanup of the scripts and makefiles was done. Mathomatic now compiles with the gcc option -Wall by default. Larger mathematical expressions are allowed by default.

New in Mathomatic 14.4.1 (May 4, 2009)

  • Added "set save" command, which makes all current session options permanent, by saving them in "~/.mathomaticrc". "set no save" removes this file.
  • 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.

New in Mathomatic 14.3.6 (Mar 30, 2009)

  • 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.
  • 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.

New in Mathomatic 14.3.5 (Mar 19, 2009)

  • Found the correct formulas for solving the general cubic equation on Wikipedia, so "tests/cubic.in" always gives correct answers now.
  • 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.
  • Corrected and improved parse_complex() C function for more complex number functionality.
  • Added "set negate_highest_precedence" option, which allows the negate operator to be lower precedence, like it is in Maxima and other math programs.

New in Mathomatic 14.3.4 (Mar 6, 2009)

  • Code cleanup and polishing of output and documentation.
  • Renamed -h (HTML) option to -x, -h is now the help option.
  • Added -w option to set wide output mode.

New in Mathomatic 14.3.3 (Feb 17, 2009)

  • Entry of a function now results in "Named functions currently not implemented" error message.
  • Bugfix to matho-primes and added "misc/limits.c".
  • The fraction command was fixed to give better results.
  • "set display2d" flag now no longer affects results at all, it only affects 2D output mode.

New in Mathomatic 14.3.2 (Feb 10, 2009)

  • Table of contents was added to the Mathomatic User's Manual.
  • 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".
  • Removed erroneous lsqrt() routine obtained from Wikipedia, so that matho-sumsq works properly now.
  • Disable pause command when appropriate (when input not a tty and for symbolic math library).
  • Polished up educational example scripts in "tests" directory.

New in Mathomatic 14.3.0 (Jan 20, 2009)

  • Added descriptions of all interesting math scripts in "tests/README.txt".
  • Allow nintegrate and "integrate definite" commands in the symbolic math library; the bounds are specified in the two equation spaces following the current equation.
  • Made expression and equation entry always consecutively numbered equation spaces, unless memory is exhausted.
  • Made consistent list command output with only one newline after each equation space.

New in Mathomatic 14.2.8 (Jan 5, 2009)

  • Simplified makefile.
  • 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.
  • 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.
  • Added "update" script, which updates the function prototypes in "cproto.h".
  • 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.

New in Mathomatic 14.2.6 (Dec 16, 2008)

  • 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.

New in Mathomatic 14.1.3 (Aug 14, 2008)

  • The calculate command now reports the number of solutions.