Changes since 12.5.8:
- Bug fix for nintegrate command. Result was correct but not fully reduced.
- Added "twin" option to "primes/matho-primes", removed "primes/matho-twin".
- Automatically determine the variable if none is specified
with the derivative and taylor commands.
- Increased the maximum variable length to 1000 characters.
Changes:
- Doubled the default max expression size. Display current size on
startup.
- Made solve_sub() return -1 for an identity.
- Speedup of the simplify command.
Changes:
- Fixed compatibility problem with "list export" and "list maxima".
- Added "tests/conversions.in".
- Made "code integer" command work with more languages than C and Java.
- Added "code python" command option.
- Added "fact/fact.c" and "fact/fact.py", which are factorial functions.
- Completed "help geometry" page.
Changes:
- Added "doc/manpage.html", which is the man page for Mathomatic
generated with "groff -Thtml -man".
- Made sure all HTML files have the extension ".html".
- Made sure we can allocate at least 1 equation space on startup.
- Made entering things like "#1 a" succeed at entering a single variable
expression.
- Fix-ups to the symbolic math library.
- Increased power of limit command.
- A limit expression with infinity in it is assumed to be infinity.
Changes:
- Removed parsing of "infinity" and fixed parsing of "inf".
- Removed matho-around. Use GNU "seq | factor" instead.
- Allow "#+"number and "#-"number at main prompt, to select relative
equation numbers.
- Removed all primes (') support from variable names.
- Added version command.
- Added "-v" option.
- Split off super.c into super.c and poly.c.
- All polynomial routines are now in poly.c.
- Improved roots command and put it in tests.
- Fixed bug simplifying "a = (e# + (e#*i#))^(pi + (pi*i#))".
Changes:
- Ported matho-primes, matho-twin, and matho-pascal to long doubles.
"make test" added in "primes" directory.
- Alphabetic case sensitive mode set by default.
- Added "list maxima" option. "list export" is now for other programs.
- Code cleanup.
Changes:
- Corrected color and html mode routines.
- 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.
- Made redirected output ignore screen_columns.
- Added "-q" option (quiet mode, don't display prompts).
= The Mathomatic man page was improved.
Changes:
- Made library work with constant strings passed as input to matho_process().
- Added "set bold_colors" option. Use this if equations are difficult to read.
- Removed "doc/ctips.html".
- Cleaned up and improved makefiles.
- Fixed bug in "compile.secure".
Changes:
- Perfected process() (the input processor).
- Code cleanup.
- Display polar coordinates in roots command.
- Parse "**" as "^".
- The docs were clarified.
- Increased sizes of many input buffers.
Changes:
- The C complex number library was finished and perfected (complex_lib.c).
- Yet another code cleanup.
- Added "UNIX" compile-time define to the Prime Number Tools.
- Some improvements to the Mathomatic documentation.
Changes:
- Created "complex.h".
- Fixed and documented "help all >filename", for quickly creating a
quick command reference.
- Fixed up and commented "main.c".
- Split off "complex.c" into "complex_lib.c" and made it an
independent complex number library.
- Added "integrate definite" command option.
- Corrected makefile install.
- Added check in nintegrate command to fail if result contains
infinity or nan.
- A few complex number improvements were made.
- Allow a text pre-processor to pipe input into Mathomatic.
Changes:
- Fixed minor bug in real and imaginary commands.
- Fixed roots command.
- Cleaned up Prime Number Tools man pages.
- Cleaned up the Mathomatic source code.
- Corrected the Mathomatic library.
- Ported taylor command to non-equations.
Changes:
- Added variable "error_str", which is set to the last error message
when SILENT is defined.
- Improvement in giving reason when solving fails.
- The HTML docs were fixed.
Changes:
- Bug fix made to divide command.
- Increased the number of equation spaces to 100.
- Fixed a precision problem with the "list export" command.
- Added and implemented function return_result(equation_number) at the
end of most commands, to facilitate use as a library.
- Some more comments were added and "list.c" was cleaned up.
- Replaced most printf()s with a new function called error().
Changes:
- Added a few checks for NULL char pointers.
- Major change in memory allocation: equation spaces are now only
allocated as needed.
- Changed optimize command to accept an equation number range.
- Some minor code cleanups and commenting.
Changes:
- Allow larger fractions.
- Doubled the default max expression size and memory requirements are
now 20 megabytes.
- Added ability to set the number of partitions when using the
nintegrate command.
- Some code and messages cleanup.
- Fixed bug in nintegrate command (wrong number of function parameters).
- Improved solve routine.
- Update to "primes/matho-around.c".
Changes:
- Added singularity checking and enabled numerical integration.
- Fixed a bug in and documented numerical integration.
- Simplify command was improved.
- Startup displays more accurate memory usage info.
- Update to the Mathomatic man page (added description).
- Added NO_COLOR define (see README.txt).
- Added function get_range_eol().
- Doubled MAX_COMPARE_TERMS to 400.
Changes:
- Yet another improvement to the simplify command. poly2_gcd() was fixed.
- Improved bounds checking for gcd().
- Pause command now takes an argument.
- Made derivative, extrema, and integrate commands work with non-equations.
- An important optimization was made to factor_times().
- Added and tested code for numerical integration. Currently disabled,
to enable define "NUMERICAL_INTEGRATE" in CFLAGS.
Changes:
- Use mkstemp() for temp file in edit command. Put temp file in "/tmp",
instead of current directory.
- Created my_strlcpy(), since Linux doesn't have strlcpy().
- Made everything declared static that should be.
- Prime Number Tools cleaned up and compiled with "-Wall".
- Made them all successfully compile with g++.
- A bug fix for HTML mode.
- Completely removed sensitivity command and simplified parsing code.
- Fixed minor bug in fraction format display routine.
Changes since 11.7:
- Increased precision and optimization of code command.
- Prepared code for future improvement to integrate command.
- Integrate (a*constant^x) for x has been added.
- Allow differentiation and integration of -constant^x.
- Disabled power factoring of k^x*k^y, where k is a constant.
This fixes a small bug.
- Reduced stack usage by almost 2/3.
- Reduced stack usage another large amount to the smallest it can be.
- Laplace (a*constant^x) and (a/constant^x) for x has been added.
- Allow integration of (a/constant^x) for x.
- Moved all numeric GCD routines to "gcd.c".
- Improved limit command for "limit x inf".
- Halved the default equation size and doubled the number of equation
spaces to 40.
- Fixed bug that caused infinite loop for "2^(.5*n)" and incorrect answer
for "-1^(2*n)".
- Allow edit command to work with no equations defined.
- Allow typing "abort" or "quit" during pause command.
- They both abort the current operation.
- Removed usage displayed every time a command fails.
- Simplify command once again prefers 1/(constant^n) instead of (1/constant)^n.
- Added "set finance" option.
- Some improvement to simplification of constants.
- Improved "factor number" command. Made self-testing and allow
multiple integers.
- Strip trailing newlines from string returned by getstring().
- Re-enabled power factoring of k^x*k^y, where k is a constant.
- The bug it had caused just disappeared.
- This is because a lot of changes have been made.
- Some speed up in polynomial factoring made by ignoring anything that
is not a polynomial in any variable.
- Improved denominator rationalizer.
- Disabled power factoring of -1^x*-1^y. This time it is done right.
- Added new function debug_string(). It simplifies the debugging code.
- Simplified pf_sub() (the polynomial factoring subroutine).
- Fixed up Prime Number Tools man pages.
- Improved matho-twin.
- Added simplification of roots like 12^.5 to 2*(3^.5) in simplify command.
- Code cleanup.
- Improved the results of solving by not always factoring constants.
- Added semicolon (";") to end of each line when using "list export".
- Some improvement made to the simplify command.
- More tests added to test suite.
- Fixed bug in patch_root_div().
- Fixed infinity/nan bug in uf_repeat().
Changes:
Another minor adjustment to simplify command to make everything work
just right.
Trap "derivative x" of (negative constant or zero)^x.
Solve "(constant)^y=constant" for y.
Moved all html files and the man page to subdirectory "doc".
Code cleanup.
Improved modulus solving.
Trap "x%0". Simplify "x%inf".
Fix fraction list display of -0.
Change for better simplification.
Fix for division by roots of fractions.
Changes:
Some more improvement to simplification.
Displayed floating point precision reduced to 12 digits.
Allow typing just "e#" or "pi" on the command line, to give the
values for each.
Changed simplify command to prefer (1/constant)^n instead of 1/(constant^n).
It produces more efficient code and solves a problem.
Improved "code integer" command by allowing integer powers.
Improved eliminate command by trying next equation if solve fails.
"list export" now produces 100% Maxima compatible equations.
Changed "SILENT" compile time define to also remove all debugging code.
Changes:
- Some more touch-ups to solve routine.
- Changed uf_repeat() to skip expanding if the expression would be too big.
This allows Mathomatic to work with huge exponents.
- Turned on "preserve_roots" option by default.
- Improved sum and product commands. Allow counting down.
- Improved solve routine and removed display of useless messages.
- Added a fix to the limit command.
- Moved "source.txt" into "README.txt".
- Added code to simplify (inf+a) to (inf) generally.
- Fixed minor bug in calculate command.
- Minor fixes to elim_k().
- Improved limit command.
- Made all recursive functions in the source code static.
Most functions never used globally defined as static.
- Improvement in command argument parsing.
- Added extrema command.
- Improved output of roots command.
- Fixed minor bug caused by "preserve_roots" option.
- Made file "am.htm" valid HTML.
- Simplification improved.
Changes:
- Many minor improvements made, none of which are worth mentioning by
themselves.
- Fixed all message strings with a variable listed in them.
- Added iteration option to calculate command.
- Trimmed set command of fat. Unnecessary messages removed.
- Removed all occurrences of "usage_flag".
- Usage info is now displayed everytime a command returns with error.
- Allow parsing of hexadecimal constants. Preceed hex numbers with
"0x".
- There may be parsing bugs. Systems using older versions of the GNU
libraries (specifically strtod(3)) will not allow hexadecimal input.
- Added limit command.
- Trapped 0^(negative number). It previously produced junk.
- Allow solve routine to produce infinity as an answer.
- Some commenting and fixing done to solve routine.
Changes:
- Added loading of $HOME/.mathomaticrc on startup.
Set options go there.
- Added undocumented switch "-t" which sets test mode.
Only used with "make test".
- Wrote and added "matho-pascal" program to primes directory.
- Allow "=" in set command.
- Improved uf_repeat() and modulus simplification.
Changes:
- Using "memmove()" instead of deprecated "bcopy()".
- Added "tests/tutor.in", which is an incomplete Mathomatic tutor.
- Many improvements to scripts in the tests directory.
- Removed "calculate factor" option.
- Code cleanup.
- Added more modulus simplification.
- Simplify ((a%n)*integer+b)%n to (a*integer+b)%n generally and completely.
- real^complex and complex^complex are now approximated.
Changes:
- Removed obsolete short variable name code and bumped up "MAX_VARS" to 500.
- Fixed problem with conflicting names and code for "cpow()" and "cexp()".
Renamed to "complex_pow()" and "complex_exp()".
Changes:
- Added "code integer" command, which outputs working C code with integer
variables.
- Changed makefile to use libncurses instead of libcurses.
- Added more simplification rules for modulus.
Changes:
Changed sum and product commands to not create another equation if the
result is a constant. If the result is a constant, it is just displayed.
Mathomatic now approximates -1^(2^.5) and the like.
Added modulus (%) operator.
Added simplification of univariate modulus expressions.
Changed univariate modulus simplification to multivariate, integer only
simplification.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
Changes since 11.3c:
Improved eliminate command error handling.
Added "eliminate all" command.
Code cleanup.
Man pages for the prime number tools were contributed
by David Moreno Garza. Many thanks.
Renamed the Mathomatic directory in the source tarball to
"mathomatic-`cat VERSION`".
Added several comments to the source code.
Renamed prime number tools to "matho-*".
Improvement to full simplification.
Tried something new with uf_simp() that fixed a problem with Mathomatic
solve complicating expressions.
Minor bugfix to eliminate command.
Changes:
"factor number" command now accepts more than one integer.
Added file "mathomatic.ico".
Added temporary fix for 64 bit longs.
Added file "VERSION" which contains the version number of Mathomatic.
"makefile" modified.
Renamed "lgpl.txt" to "LICENSE.txt".
"make install" now installs all HTML files in "/usr/local/doc/mathomatic".
Added compile-time define "TIMEOUT_SECONDS".
Useful for limiting the amount of time Mathomatic can run as a CGI.
Changes:
Proper exit after error reading files on the command line.
Added code to preserve roots of integers, if the result is irrational.
Fixed "calculate >filename".
Made "+/-2^.5" work as expected.
Code cleanup.
Full simplify added for every loop of taylor command.
Removed "replace temp" option, so that the "temp" variable can be renamed.
Changes:
Substantial change/improvement to simplify command.
Added some more code to fix floating point inaccuracies.
Improved solving. y=(x+1/x)^3 solves both ways, now.
Full simplify after every loop in derivative command added.
Move derivative and taylor commands to "diff.c".
Added "-m" option to Mathomatic (memory size multiplier).
It sets the size of equation spaces at run time.
Changes:
Renamed the Mathomatic executable to "mathomatic".
Add inverse Laplace transform. Usage: laplace inverse x
Fixed bug in solving for zero, which occurred when there were no
variables in the divisor.
Some improvement in solve routine.
Changes:
Slight improvement to integrate and laplace commands.
Integrate/laplace x on (a+x)/(b+c) works now.
Added more examples to the documentation (am.htm).
2 to 10 times speedup for simplify command by fixing polynomial factoring.
Changes since 11.2:
Doubled the default amount of memory consumption to 11 megabytes.
This allows equations twice as large.
Fixed bug factoring infinity.
Slight improvement to "integrate" command.
Trap window resize signal and set number of screen columns and rows.
Code cleanup.
Fixed factoring of constants in factor command.
Added "laplace" command.
Allow "#" as a comment, as long as it is not immediately followed by
a number.
Enabled shelling out for all versions with the "!" command.
Improvement and speedup for poly_gcd() and poly2_gcd().
Slight improvement in polynomial factoring made by deleting 1 line of code.
Use getopt(3) to parse command line options.
Made "-c" and "-h" options work together. If both are specified,
work in HTML mono mode.
Changes since 11.1c:
Moved notification of polynomial factoring success to debug level 1 or higher.
Removed "NO_COMPLEX_ROOTS" compile-time define option.
I am thinking of making this a run-time option.
Increased security of "SECURE" compile-time define.
Absolutely no file operations are allowed or linked in.
Added check for terminal with isatty().
This allows better piping into Mathomatic.
Split up change-log ("changes.txt" and "changes_old.txt").
Changed "x!" to mean gamma(x+1) for Laplace transforms.
Fixed parsing of things like "2e#", which failed before,
thinking it was scientific notation.
Wrote "primes/twin.c", to find twin primes.
Added "help usage" command.
Allow output of "help" command to be redirected to a file.
Fixed parsing of variable names (like "pig", which didn't work right).
Added "integrate" command.
Fixed "derivative" command.
Code cleanup.
Fixed "taylor" command.