Changes:
- Excess variables cleanup of taylor command.
- Changed argument of push command from an equation number to an equation
number range.
- Added easy selection of equation spaces, just type the number at the
prompt.
- Allow flist command when Mathomatic is compiled as a library.
Changes:
A number of minor changes.
Fixes and improvements to the Mathomatic Command Reference.
Upgraded clear and set commands to accept more than one argument.
Gave real and imaginary commands a useful argument.
Fixed a sloppiness in command line parsing in function get_range().
Code cleanup.
Changes:
Improved matho-primes by making primes buffer variable size.
Added "set factor_integers" option.
Removed "simplify poly" option, it was rarely useful.
Code cleanup, commenting, and speed optimization.
Improved simplification, added the fixed problem ("tests/linear.in") to the tests.
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
Changes:
- Documentation improvements.
- Updated command description text in help command.
- Converted many functions to inline that are only used once and should be
inline.
- Code cleanup.
Changes:
- "matho-primes pal" wasn't working, fixed.
- Improved the "Equation not defined" error message for new users.
- Worked on matho-primes program.
- Automatically determine the variable if none is specified
with the extrema command.
- Code cleanup.
- Helped simplification of complex exponentials.
- Parse things like "2 2" as "2*2", instead of giving a syntax error.
The default operator is always times.
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.