Mathomatic Changelog

What's new in Mathomatic 16.0.5

Oct 31, 2012
  • Allow use of editline library in Mathomatic, because somehow use of GPL libraries in LGPL code is not allowed, and GNU readline is GPL. I am so confused about this Debian bug#687063: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=687063
  • Based on the bug report's information sources, it appears he is saying the truth about this license issue, so I will have to upload new versions of Mathomatic with editline instead of readline to Debian. The only noticeable difference should be it doesn't save the history between Mathomatic sessions. I will comply with all that request it, though most distributions do not include editline, which has no major licensing restrictions. Readline is still perfectly usable and good as before, you just have to link it in yourself.
  • Going to have to make a new release already, 2 days after the last one, so I can upload this readline licensing fix to Debian by linking with editline. There is no reason for anyone to upgrade to version 16.0.4, unless you wish to link with editline instead of readline. The proper code has been added. All you have to do is have the editline libraries loaded on your system, and run "make EDITLINE=1" to compile and link Mathomatic with editline.
  • Corrected and improved "tests/finance.in" and the terminology used, thanks to Wolfram Alpha.
  • Fixed "./update" command (which updates "proto.h") to work without the readline development headers and libraries installed.
  • m4/gradians.m4 copied with m4/functions.m4, when installing with "make m4install" into "/usr/local/share/mathomatic/m4/", so gradian trig mode can be used by typing "rmath gradians.m4" at the shell prompt, while in that directory.
  • The debug level was being set in degrees.m4 and gradians.m4; no longer.
  • Mathomatic now always runs "set load" after "set save", for the convenience of immediately loading the specified settings, and for error checking.
  • From now on Mathomatic does not set the alarm nor hangup handlers, because it crashes the entire shell window when readline is compiled in and an alarm or hangup signal happens.
  • Works acceptably now that these signal handlers are not set, it just quits when time is up, saying "Alarm clock"; The same thing happens for SIGHUP, except it just says "Hangup" and quits. I am really not liking readline nor its license now.
  • SIGALRM and SIGHUP are no longer given handlers. The default seems to be what has to be there with the current readline mess. Overwriting the current signal handlers causes serious bugs, but only for readline.
  • Fixed "lib/compile.testmain" to work with the latest linker.
  • Made all output methods respect "set columns", so "display all >output.txt" will not always use infinite columns.
  • This goes for the Symbolic Math Library, too.

New in Mathomatic 16.0.3 (Sep 10, 2012)

  • New command "set load" loads the current set options startup file again,
  • displaying the startup file as it reads it in.
  • If the file doesn't exist, or something is wrong, then an error message is
  • displayed and the set command returns with failure.
  • Accidently putting "load" in the startup file is now handled correctly.
  • 08/09/12 - Allow "matho-primes all" and the command "list primes all" in
  • Mathomatic to continually output consecutive prime numbers.
  • 08/12/12 - Fixed any rman errors in the makefile so they won't be ignored.
  • 08/17/12 - rmath and matho no longer set the debug_level or modulus_mode,
  • so they can be set by the startup options file.
  • 08/19/12 - Allow the repeat prefix on the approximate command, making it
  • approximate and simplify as much as the calculate command
  • does. Hopefully someday it will just give a temporary
  • result, too. Numerical input into the symbolic math library
  • now uses "repeat approximate" instead of just "approximate"
  • to approximate the user's input, so the result is the
  • same as the Mathomatic application's result.
  • Disallow the same warnings to be repeatedly displayed, if the
  • current warning is the same as the previous warning.
  • 08/20/12 - Allow directory names as read command arguments, instructing
  • the read command to change the current directory to the specified
  • directory. Without any arguments, the read command now does an
  • "ls" command in Unix/Linux, and "dir" under MS-Windows, listing
  • the current directory contents. Running Mathomatic with a
  • directory name argument now conveniently changes directory to
  • that directory, then gives you the main prompt.
  • 08/28/12 - Made "integer" type variables much more useful. For example,
  • the following now happens generally:
  • 1-> i^(4*integer)
  • 1: i^(4*integer)
  • 1-> simplify
  • 1: 1
  • 1-> i^((4*integer) + 1)
  • 2: i^((4*integer) + 1)
  • 2-> simplify
  • 2: i
  • 2-> i^((4*integer) + 2)
  • 3: i^((4*integer) + 2)
  • 3-> simplify
  • 3: -1
  • 3-> i^((4*integer) + 3)
  • 4: i^((4*integer) + 3)
  • 4-> simplify
  • 4: -1*i
  • 08/29/12 - Displays "Calculating..." whenever autocalc is used now.
  • 08/30/12 - Added ability to set the normal text color.
  • Still defaults to no color. Use "set color 0" to set the normal
  • text color to green, as it has been for many years in the past.
  • 08/31/12 - Removed the "set preserve_surds" option, since the approximate
  • and calculate commands all take care of undoing that.
  • The code remains, however "set preserve_surds" is no longer
  • advertised. I have never used it.
  • Surds are preserved, for accuracy's sake, by default.
  • 09/05/12 - "set" as a null set option works now, so no one will have any
  • trouble setting-up the set options startup file.

New in Mathomatic 16.0.1 (Jul 23, 2012)

  • 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.
  • Allow "set modulus_mode language", where language is C, Java, Python, or positive.
  • Now leaving the "UNIX" C preprocessor define alone, when "HANDHELD" is defined. "UNIX" was previously forced undefined.
  • "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.
  • 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".
  • 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.
  • 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.
  • 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)

  • 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.
  • 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%.
  • 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.
  • 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.
  • 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).
  • Allow breaking out of user line-input requests with Control-C.
  • Still have to hit the Enter key, but the command will be aborted.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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".
  • 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 4, 2012)

  • Renamed fact(x) function to factorial(x), because Maxima uses the function "factorial(x)" and no one uses "fact(x)". Added factorial(x) as a standard function in rmath. Removed binary operator name "mod" from rmath, due to having a different meaning in conventional mathematics. It previously meant the % operator, which is a programming language construct and not math.
  • Improved user interface of divide command.
  • Improved introduction to Mathomatic in "doc/manual.html".
  • Made more use of C function !isfinite(double) for better reliability. Checks for infinity and NaN on user input.
  • Solve verify now quick simplifies the solve result, so you don't have to. This will result in better verification and less chance of oversized expressions.
  • Fixed solving bug where it was throwing away absolute values.
  • Improved the way Mathomatic looks.
  • examples/limits.c is now a highly polished program, LGPL licensed. Compile with "./compile.limits". Tells the integer and float C data types, with sizes, characteristics, and verification for the current C compiler (cc).
  • Display total number of unique solutions stored with "simplify sign".
  • Fixed several errors in the simplify command documentation in the Mathomatic Command Reference.
  • Fixed simplify command to simplify (x^2 - 1)^4/(x + 1)^2 properly, by factoring repeated factor polynomials at the very end.
  • Fixed bug in divide command, wasn't calculating the polynomial GCD sometimes, etc, because input was not being expanded. Broken on 12/14/11, fixed today.
  • Fixed limit command to return the original expression when the limit variable is not found or the expression contains no variables. A warning is given, telling that this is the case. Previously these cases only returned with an error message.
  • "tests/limits.in" limit command regression tests checked and re-added to the main tests. All still works the same as when these limit command regression tests were removed long ago.
  • Cleanup, and remove "examples/c", replaced with "examples/compile.limits" and "examples/compile.roots".

New in Mathomatic 15.8.4 (Jun 4, 2012)

  • 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.
  • "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.
  • Mathomatic now proudly displays when verifying a solve operation. Too many UI improvements to mention, all relatively minor.
  • 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.
  • Ran valgrind on the symbolic math library executable testmain, after running all the tests, no memory leaks were found at all!
  • "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.
  • 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.
  • 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.
  • 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.
  • 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)

  • Added simplifying trig identities to the tests. Discovere "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 (Apr 30, 2012)

  • Added simplification of "tests/trig.in" and "tests/hypertrig.in" to the regression tests.
  • Added ability to create all non-re-entrant code, so that the Apple app store won't complain. The line containing "_REENTRANT" in "includes.h" has been commented out, so nothing special needs to be done, when compiling for iOS.
  • Added ability to make help command text paragraphs all one long line, instead of always expecting an 80 column or higher display. Useful for 40 column displays for example, as long as the display wraps at 40 columns, the output should look OK. Better than it did, anyways. Tables and such are preserved. See the beginning of "help.c".
  • Fixed bug failing to run gnuplot with Mathomatic compiled with MINGW. This only affects the MS-Windows version. So if you have downloaded gnuplot under MS-Windows, the plot command should work the same as in all other operating systems, now. Be sure and name it gnuplot.exe and have it in an executable directory in your PATH.
  • Comparing expressions with the compare command will now tell if one expression is the negation (times -1) of the other.
  • Added the HTML tidy command after rman, so that the HTML errors created by rman are all fixed.
  • Added and documented matho_clear(3) to Symbolic Math Library, replaces clear_all(). Simply rename all occurrences of clear_all() in your code that uses the library with matho_clear().
  • Improved debugging code and error messages.
  • The previous autocalc result is erased every time autocalc is used, unless "set no autodelete" was done. This is done in case you would like to keep every calculation you made stored in an equation space. The default is the previous behavior: "set autodelete", which only keeps one numerical calculation in memory. "autodelete" only means something when "autocalc" is on, and since the library has no calculate command, this is not available in the symbolic math library.
  • Cleanup of equation space selecting, shelling out with !, etc. In the Mathomatic application, everything is now flushed before user input (with fflush(NULL)). fflush(NULL) is not used at all anymore in the symbolic math library.

New in Mathomatic 15.8.1 (Mar 13, 2012)

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

New in Mathomatic 15.8.0 (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.7.3 (Feb 11, 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
  • 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.
  • 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 25, 2012)

  • "make uninstall" now uninstalls the prime number tools and symbolic math library too.
  • Cleaned up calculate command to allow feedback iteration of more than one expression at a time, for a consistent user interface.
  • The Mathomatic command "help geometry" now enters the common geometry formulas for you, into equation spaces.
  • Added "help conversions" which enters some common metric/English conversion formulas; with it, you just select the equation that does what you want, solving for the desired unit of measurement. Then you just type "repeat calculate" to try different values. "tests/geometry.in" and "tests/conversions.in" have been subsequently removed.
  • When compiled for the Symbolic Math Library, Mathomatic defaults to single-line output ("set no display2d"), so that output can be easily fed back into the input. Otherwise, output defaults to 2D mode ("set display2d"). Mathomatic no longer ignores the display2d flag when using the Symbolic Math Library.
  • The command "factor number" now works in the symbolic math library, similarly to the way it works in the Mathomatic application.
  • matho-sumsq in the Prime Number Tools now gets its input from standard input, if invoked with no arguments.
  • Added shell script "misc/testprimes" for a parallel, brute force test for the first 50,000,000 primes generated by matho-primes.
  • Added -m option to matho-primes, which allows specifying a memory size multiplier.
  • Added ability to push a text string into the readline history buffer, with the "push string" command. Whenever the command "push equation-number-ranges" fails, the entire argument text string is pushed, instead.
  • Made it so that entering "#" followed by a variable name at the main prompt searches backwards through all equation spaces for that variable, and then selecting and displaying that equation space. "/" followed by a variable name performs similarly, but searches forward.
  • Added "help main" command, which lists all things allowed at the main prompt.
  • Added "tests/cubic2.in", which is the general cubic polynomial formula using 2 equations.
  • Improved display order and functionality of "optimize all" command.
  • Better detection of complex numbers with fixed parse_complex() internal function.
  • Rationalizing denominators that contain absolute values ((x^2)^.5) is now prevented. This was a bug.

New in Mathomatic 15.7.1 (Nov 19, 2011)

  • Added "tests/heart.in", which plots a nice looking heart with gnuplot while running Mathomatic.
  • Displaying thousands separators in MinGW was failing, now it must be specified with the THOUSANDS_SEPARATOR define. Thousands separators are not well supported in most standard C libraries, causing failure to display numbers, so they are now turned off. So now "set finance" works in the MS-Windows version, it was not working at all before (bug reports, anyone?).
  • Testing "set finance" mode when doing the standard Mathomatic tests now. "tests/finance.in" now does "set finance" first thing. Do we need a round-up option for "set finance" mode? Currently rounds to nearest cent.
  • Some minor improvements to the Mathomatic symbolic math library error handling output were made. And no more redundant nor inappropriate things are sent to standard output when SILENT=0, only helpful messages are output.
  • Added the "unfactor count" command option, which also displays the resulting number of additive terms in each equation side.
  • Improved error and warning messages.
  • Rearrangements were made for future reliability and thorough testing.
  • Allow multiple equation-number-ranges for the simplify command.
  • Code cleanup and added more DEBUG error checking.
  • Added a little helpful color to the help command.
  • "repeat echo -" now draws a line of dashes, "repeat echo" clears the screen, etc.
  • The derivative command now properly terminates as soon as the derivative reaches 0, whenever an order greater than 1 is specified. Previously it just kept differentiating, order times.
  • The number of derivatives taken until the result reached 0 is displayed. No primes are added to the LHS variable if the required number of primes to add won't fit in the variable name. Previously it gave the wrong number of primes (') if they all didn't fit.
  • Cleanup of the Mathomatic Prime Number Tools and their man pages.
  • Fixed a missing check for out of memory failure in plot command.
  • Plotting expressions with sign variables in them now gives a suggestion to try "simplify sign" first, because gnuplot doesn't handle +/- or sign variables, but it can plot multiple expressions at once.
  • Made "make test" and ./t work under Cygwin, by ignoring trailing carriage returns when comparing test output.

New in Mathomatic 15.7.0 (Nov 5, 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 (Nov 5, 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 (Nov 5, 2011)

  • 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.
  • Added "make strip" target to allow easily running the Unix strip utility on the resulting binaries.
  • Deleted the "make install-strip" and "make bininstall-strip" targets.
  • Additionally display C compiler version number in version command.
  • 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.
  • A colon character (:) placed before any main prompt input will make it ignore any error occuring in that particular line, so any current read operation won't abort. Any Mathomatic command preceded with a colon will always return with successful status.
  • File "misc/identities.in" was added, showing a strength and weakness of Mathomatic.
  • Removed "doc" target in makefile, due to interference from a directory 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 of this currently has to be made manually with a web browser, using print to PDF file.
  • Added ability to automatically create cheat sheet "quickref.pdf", created by "make pdfsheet", which invokes script "makepdfsheet.sh".
  • General complex number root approximation bug fix: expressions like sqrt(sin(9)) now give the correct result, instead of a negative number, when using the calculate command. The calculate command is used to immediately evaluate it when you type "sqrt(sin(9))" into the m4 Mathomatic main prompt.
  • The variables command now defines all "integer" and "sign" variables as "int" instead of "double".
  • Rewrote the code command code lister to allow output to a C string.
  • Code command is now completely available with string output in the Symbolic Math Library, meaning Mathomatic can automatically generate programming language code within other programs now.

New in Mathomatic 15.6.3 (Aug 5, 2011)

  • Added file misc/known_bugs.txt, which is the current list of known bugs in Mathomatic.
  • Added file tests/quadratic.in, just a script that solves the general quadratic equation.
  • 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.
  • 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.
  • 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.
  • 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.
  • Prompts are now blue when reading files into Mathomatic in color mode.
  • 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.
  • Allow "repeat read filename" command, which repeatedly reads a script
  • until it fails or is aborted.
  • "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)

  • Corrected datadir variable usage in the main Mathomatic makefile. Directly importing datadir could have catastrophically deleted the entire /usr/share directory with "make uninstall".
  • 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 "factor number" command now allows number ranges, in addition
  • to integers and integer expressions.
  • Install "m4functions.m4" to proper directory (usrsharemathomaticm4).
  • The "m4" directory is no longer installed to the system doc directory.
  • 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.
  • Added NOGAMMA compile-time define, which makes the factorial function integer only, if desired.
  • Added color mode to the MinGW Windows version of Mathomatic. Tested in cmd.exe, command.com, and CygWin.
  • The new color mode does not work in mintty.exe.
  • 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.
  • Changed "make check" to not use the time command, as usrbintime is not available on all systems. "make test" performs the same function and still uses time.
  • Updated the Free Software Foundation's address in the LGPL license text and in all source files.

New in Mathomatic 15.6.0 (May 2, 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.
  • 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.

New in Mathomatic 15.5.3 (Apr 20, 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 22, 2011)

  • Changed integer factoring code to be more robust, consistent, self-checking and a better test of floating point operations. Added DEBUG compile-time define to allow easier debugging of Mathomatic.
  • Renamed the "factorial" directory to "examples".
  • 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.
  • Added man pages for the Mathomatic Symbolic Math Library functions.
  • Allow building a PDF book of all Mathomatic man pages.
  • 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.

New in Mathomatic 15.5.1 (Mar 22, 2011)

  • Disallow nondeterminism in the qsort(3) function, making automatic output
  • comparison tests more likely to succeed. Restored linear.in to the tests.
  • Renamed Mathomatic User's Manual to Official Mathomatic User Guide.
  • Calculate command now outputs fewer newlines. Not so much blank space.
  • Allow equation-number-ranges on the plot command line. For example, "plot all" works now, to plot all stored equations and expressions at once, for easy comparison.
  • Added an even higher security level 4 (mathomatic -s4), to be exactly
  • the same as compiling with the -DSECURE option.
  • Fixed "tests/t" script to allow testing of Mathomatic at any time, including after a system-wide install.
  • Sped up simplify command simplification 60 times faster in some cases.

New in Mathomatic 15.5.0 (Feb 26, 2011)

  • Fixed result of (constant % inf) to equal constant.
  • Restored explicitly linking with ncurses library when compiled with readline, because Red Hat Linux wrongly requires this. There is no way to know ahead of time whether this is needed, so remove the "-lncurses" from the makefile if there is a problem linking.
  • Upgraded set option "fractions_display_mode" to display fractions as mixed fractions when possible, when set to mode 2. A mixed fraction is possible when the numerator of a simple fraction is greater than the denominator, like 9/4, which displays as (2+(1/4)) in mixed fraction display mode 2. Mode 1 is the default, which functions as before, displaying 2.25 as the simple fraction 9/4.
  • To display mixed fractions only on command, just type "display mixed"
  • to display the current expression with mixed fractions output that one time.
  • Autocalc (used when typing a numerical only expression at the main prompt) now keeps the result until next time autocalc is used, so that it can be acted on further by Mathomatic commands, if desired. All previous autocalc results are erased every time autocalc is used. This provides much better calculator functionality for Mathomatic
  • and improves ease-of-use.
  • Use HTML infinity symbol (∞) for infinities in HTML output mode.
  • Allow solid fraction bar display in HTML output mode by using "–". Previously the ASCII dash character "-" was used, making a dashed line that separated the numerator and denominator of fractions. Now the line should be solid in HTML output mode.
  • Improved divide command for numerical division.
  • Added mixed fractions and cleaned up output.
  • Ported matho-primes to MS-Windows and included it in the Windows version on my website: "http://mathomatic.org/winam2.zip".
  • The fraction command is now repeatable by preceding it with "repeat". This repeatedly runs it until the smallest expression is achieved.
  • Simplification was sped up, especially with "simplify quick", therefore
  • differentiating and the Taylor command are faster.
  • Removed the requirement for the Unix "time" command with m4 Mathomatic.
  • Allow array variable refs like a[2] or a[1][2] when generating C code.
  • Just "set special []" to allow straight brackets in variable names.
  • 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.2 (Jan 29, 2011)

  • Removed declared inclusion of the curses library when linking with readline.
  • Should be automatically included. Linking under OpenSUSE was failing because there is no curses library. Fixed now.
  • Added proper static function prototypes to all C source code files, to keep the
  • newer version of gcc from complaining.

New in Mathomatic 15.4.1 (Jan 27, 2011)

  • Upgraded the plot command towards always giving gnuplot a proper plot command, no matter what the user input is. The plot command now automatically renames the variable in a single variable expression to the x variable, so plotting will always succeed.
  • All makefiles were modified to allow the following:
  • Setting CFLAGS when building now allows manually specifying the program
  • optimization you want. It is also the way to add compile-time options and macro definitions. Suggested by many package maintainers, thank you! If CFLAGS is defined as the empty string, all optimizations are turned off.
  • New optimizations can be added to the CFLAGS string during builds, overriding any default optimization in the makefile.
  • Removed Python script "misc/mp"; Couldn't get mpmath to work properly for all input. Improved results of the fraction command.
  • Now saving readline history in $HOME/mathomatic_history when compiled for CygWin. Now additionally searching for "mathomatic.rc" in $HOME when compiled for CygWin.
  • Ported matho-pascal and matho-primes to double floats if USE_DOUBLES is defined, for systems that don't support long double floats.
  • Linking with library "curses", instead of "ncurses" now, as required by Solaris. Removed an indeterminate test called linear.in that was flunking "make test",
  • due to slightly different, though correct, results on various systems.

New in Mathomatic 15.4.0 (Jan 27, 2011)

  • 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.
  • The variables command syntax was upgraded to be the same as the code command.
  • Added code to delete identities in the optimize command. When identical equations were optimized, identities would result. These are now removed.
  • 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.
  • 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".
  • 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 (Jan 27, 2011)

  • 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.
  • Fixed the modulus operator (%) to always evaluate to an integer when both arguments are integer. 7921 was giving 11.000000000001, now gives exactly 11.
  • Equation number ranges for commands may include unallocated equation spaces now, allowing entry of any reasonable range.

New in Mathomatic 15.3.6 (Jan 27, 2011)

  • Many minor fixes for consistency and helpfulness were made.
  • Cleaned up "factor numbers" command for consistency in operation and to
  • work as documented.
  • Warn when substituting a non-integer expression into an integer variable.
  • 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.
  • 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.
  • Simplify (integer % 1) and the like to 0. Generalized to instantly simplify to 0 the following: (integer_expression % +/-unit_fraction).

New in Mathomatic 15.3.5 (Jan 27, 2011)

  • A C code cleanup for efficiency was done, and code comments were added and improved.
  • 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.
  • Allow ranges on the plot command line. Also labelled X and Y axis. Also allow plotting of multiple, comma separated, expressions at once.
  • Beautified all of the makefiles.
  • 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 --"
  • 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 (Jan 27, 2011)

  • A C code cleanup was done, the code was further improved and simplified,
  • and there is better error checking.
  • Fixed an error reporting bug in the solve command. There was the possibility of spewed space characters with improper input.
  • 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.

New in Mathomatic 15.3.3 (Jan 27, 2011)

  • A C code cleanup was done, the code was improved and simplified.
  • 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.
  • "set finance" option now groups output with thousands' grouping characters if the locale information indicates any. For example: 2,000,000.00
  • Makefiles fixed. CFLAGS is now invoked everywhere LDFLAGS and CC are used.
  • Respect CPPFLAGS in all makefiles and compile scripts.

New in Mathomatic 15.3.2 (Jan 27, 2011)

  • 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.
  • Added "-c count" option to matho-primes, optionally limiting the number of lines of primes that are output to "count" lines.
  • 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.
  • 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".

New in Mathomatic 15.3.1 (Jan 27, 2011)

  • Improved the help command, allowing multiple help topics on the help
  • command line.
  • Improved upon "misc/roots.c", the automatic polynomial root finder.
  • The Mathomatic makefile now defaults to maximum gcc optimization (-O3).
  • Ability to build Mathomatic with cmake file "CMakeLists.txt",
  • contributed by Jonathan Stark.
  • Increased the maximum number of equation spaces from 100 to 200.
  • They do not consume memory unless they are used.
  • 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.
  • 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 (Jan 27, 2011)

  • Changed -u option to also echo line input, so that m4 Mathomatic is easier to use.
  • "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.
  • Updated "misc/limits.c" to additionally display all C data type sizes in bytes.
  • 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#.
  • 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.
  • 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.1.5 (Aug 6, 2010)

  • 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.
  • Disabled readline history save file for CYGWIN, because it is a filename that starts
  • with a period.
  • Added "set fractions_display" option, to allow disabling the automatic conversion of
  • fractions like .5 to 1/2 for display. Useful in the symbolic math library,
  • when numerical fraction output isn't wanted.
  • Fixed a memory leak when ignoring the output string in the symbolic math library.
  • 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.

New in Mathomatic 15.1.3 (Jun 22, 2010)

  • The compare and "solve verify" commands now simplify more thoroughly with "repeat simplify" for better expression equality determination.
  • 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.2 (Jun 22, 2010)

  • I made mistakes in the improvement to the simplify command of version
  • the original working simplify logic of version 15.1.1 is now restored, sorry.

New in Mathomatic 15.1.1 (May 25, 2010)

  • Code and documentation cleanup.
  • 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.0.8 (May 15, 2010)

  • Added "help constants" command.
  • 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.
  • Corrected the output string type of the symbolic math library API. It was erroneously declared as type "const", possibly causing a memory leak.
  • 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.7 (Apr 30, 2010)

  • Allow "make pdf" to generate PDF documentation from the HTML documentation with htmldoc. Please read the comments in the makefile for all available options.
  • For every makefile, CFLAGS modified to include OPTFLAGS as required by the Fedora build system.
  • 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 12.5.17 (Jun 1, 2006)

  • get_expr() now has equation space pull.
  • You may now enter a "#" followed by an equation space number when prompted for an expression.
  • Ported nintegrate command to non-equations. No more commands to port.
  • "make install" works better and installs the "tests" directory.
  • Made redirected output ignore screen_columns.
  • Added "-q" option (quiet mode, don't display prompts).
  • The Mathomatic main page was improved.