Commit graph

23 commits

Author SHA1 Message Date
asau
63940adf8c Update to Mathomatic 15.2.0
CHANGES MADE TO MATHOMATIC 15.2.0 TO BRING IT UP TO THE NEXT VERSION:

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

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

8/26/10 - Added the -e option, which processes mathematical expressions and Mathomatic commands
          instead of input files on the shell command line.  For example, entering
          "mathomatic -eq 2+3" gives "answer = 5".  This functionality has been requested
          many times by Mathomatic command line users.  A complete example:


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

Minor improvements were made to the user documentation.

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

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

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

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


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

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

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

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

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

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

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


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

Many minor tweaks and improvements.

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

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


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

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

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

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

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


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

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


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

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

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


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

Code and documentation cleanup.

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

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

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


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

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

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

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

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


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


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

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

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


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

Corrections and improvements to the documentation were made.

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

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

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


CHANGES MADE TO MATHOMATIC 15.0.5:

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

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

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


CHANGES MADE TO MATHOMATIC 15.0.4:

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

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

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


CHANGES MADE TO MATHOMATIC 15.0.3:

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


CHANGES MADE TO MATHOMATIC 15.0.2:

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

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

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

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

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

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


CHANGES MADE TO MATHOMATIC 15.0.1:

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


CHANGES MADE TO MATHOMATIC 15.0.0:

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

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

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

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


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

Cleanup and more bug fixes.

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

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

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

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

12/2/09 - The fraction command now factors out the GCD of rational coefficients like the
          solve command does, so that coefficients in algebraic fractions become integers.
          The GCD verifying routine was perfected by making it very strict, like it should be.
2010-08-30 02:48:40 +00:00
minskim
9f69a79366 Update mathomatic to 14.5.5.
Important changes since 14.4.4:
- General cleanup and addition of helpful descriptive text.
- Cleanup and major bug fixes.
- Enhanced code for use with iPhone.
- Minor corrections and additions to the code and documentation.
2009-09-22 02:05:50 +00:00
minskim
b3af599c42 Update mathomatic to 14.4.4.
Changes since 14.3.6:

- Perfected the user interface for the sum, product, and integrate
  commands.
- Restored initial full simplify in the limit command for better
  results, that was unintentionally removed in version 14.1.0.
- Fixed an endless loop in simplification; results look better, too.
- Added "set save" command, which makes all current session options
  permanent, by saving them in "~/.mathomaticrc".  "set no save"
  removes this file.
- Added "mathomatic -s" option, which stands for secure mode.  This is
  a run-time option that disallows shelling out and writing files, and
  was created for use on public servers that can't use the SECURE
  compile-time define.
- Doubled the default maximum mathematical expression size to allow
  larger expressions.
- A fatal compilation error when compiling with defines other than
  UNIX was fixed.
- Slight improvement made to simplification; results are more simple
  and stable.
- The maximum integer that can be factored has been raised from 14 to
  15 decimal digits.
- Small fix made to fraction command and "simplify fraction" for
  better looking fractions.
- Added a "simplify quickest" command option, which does no
  unfactoring nor factoring.
- Made full simplification more efficient and simpler by cutting out
  unnecessary loops.
- Improved the divide command and enabled its use in the symbolic math
  library.  Enabled code and variables commands in library, too.
  Currently, library output of these 3 commands can only be gathered
  by redirecting to a file.
- Added "set autoselect" and "set auto" options.  Use "set no auto" to
  always store entered expressions into equation spaces, unless it is
  a command.
2009-06-10 17:03:54 +00:00
minskim
a4a274cfdb Update mathomatic to 14.2.7.
Numerous improvements since 14.0.5. See
http://mathomatic.orgserve.de/changes.txt for the complete list of changes.
2008-12-21 02:02:25 +00:00
minskim
90d5abf001 Update mathomatic to 14.0.5.
Major changes since 12.8.0:
- Improved the "solve verify" command option.
- Added "derivative nosimplify" command option.
- Added "simplify sign" command option.
- More correct simplification restriction added.
- Disallow variable name "all" in expressions.
- Turned off readline file name completion.
- Implemented integral divide operator "//".
2008-06-21 17:23:26 +00:00
minskim
6123d3e587 Update mathomatic to 12.6.12.
Changes since 12.6.8:
12/16/06 - Add "set special_variable_character" option.
12/26/06 - Comment makefiles and add "INSTALL.txt" for first-time users.
12/31/06 - Add "primes/primorial" Python program.
2/10/07 - "make install" wasn't working - fixed.
2/24/07 - Allow calculating large powers of complex numbers at the prompt,
  like (i#+1)^99.
3/06/07 - Display which color mode is in effect on startup of Mathomatic.
3/08/07 - Some minor interface improvements to the taylor command.
3/31/07 - Corrected limit command for infinity limits.
4/3/07 - Updated root "README.txt" and created "tests/limits.in".
2007-04-18 21:09:13 +00:00
minskim
0920375cce Update mathomatic to 12.6.1.
Major changes:
- Added alternate command names.
- Don't allow imaginary numbers in integer only expressions.
- Made poly_gcd_simp() do its job in one pass.
- Add "set autosolve" option.
- Make entry of "=(expression)" into "0=(expression)", instead of being an
  error.
- Add fraction command.
- Made simplification default to polynomial simplify.
- "replace constants" command now approximates constants with roots.
- Fixed a floating point accuracy issue recently introduced.
- Other bug fixes and improvements.
2006-08-15 15:38:25 +00:00
minskim
9af1fb4b74 Update mathomatic to 12.5.0.
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".
2005-10-29 01:45:35 +00:00
minskim
2131f1b313 Do not link against the curses library, which is not used by this
package.
2005-09-10 18:15:03 +00:00
minskim
e101638499 Update mathomatic to 12.4.10.
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.
2005-09-05 14:44:15 +00:00
minskim
60a0326906 Update mathomatic to 12.4.7.
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.
2005-08-27 18:58:51 +00:00
minskim
84873a711b Update mathomatic to 12.3. Bug fixes and many enhancements. See
changes.txt for the complete list of changes.
2005-04-29 13:05:28 +00:00
minskim
3fd5abbf1a Update mathomatic to 12.2b.
Changes since 12.1d:
  - Various improvements and bug fixes.
  - Documentation with full command reference.
2005-03-28 14:52:28 +00:00
minskim
ee0cae71c1 Update mathomatic to 12.1d.
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().
2005-03-05 03:01:50 +00:00
minskim
27283744d3 Update mathomatic to 11.4b.
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.
2004-10-14 13:43:26 +00:00
minskim
01cfe1c349 Update mathomatic to 11.3f.
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.
2004-09-25 00:40:53 +00:00
minskim
2933f80830 Update mathomatic to 11.3c.
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.
2004-08-04 19:59:59 +00:00
minskim
ac24d7b58c Update mathomatic to 11.2d.
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.
2004-06-28 13:58:25 +00:00
minskim
228ad5d1fc Update mathomatic to 11.2.
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.
2004-06-04 03:38:29 +00:00
minskim
76ac2ced9d Update mathomatic to 11.1.
Changes:
- Fixed "makefile" to be completely portable.
  No longer requires GNU make.
- Simplified some code.
- Converted token_type.kind to enum type for better type checking.
- Removed all "unsigned" variables and type casts.
- Simplified "simplify" command code.  Some speed up.
- Moved "*.in" and "fix*" to directory "tests".
- Implemented long variable names (up to 40 characters).
2004-05-10 16:47:15 +00:00
minskim
f3bddedf0d Update mathomatic to 11.0f.
Changes:
  - Removed calc() fraction code for accuracy because of fraction slack
    that was implemented in version 10.9c.
  - Solve increase power function wasn't working with odd number roots.
    Fixed.  Appears to be another gcc optimizer bug.
  - Improved simplify command.
  - Tweaked factor_constants().
  - Some changes to "makefile" for "readline" support.
    "GNU make" or "gmake" required now.
  - Fixed solving of "x^(1/99)=x".
  - Fixed readline bug.
2004-05-04 17:20:48 +00:00
minskim
920fbcee7c Update mathomatic to 11.0b.
Changes since 10.9b:
  - Removed more MS-DOS specific code; functionality improved.
  - Implemented what I call "fraction slack".  This perfects float to
    fraction conversion, and now Mathomatic doesn't rely on perfect
    floating point routines.  "-O" option added to CFLAGS in file
    "makefile" (we can do this now).
  - Changed modf() to fmod() where possible.
  - Accuracy increased one more digit by reducing the "epsilon" variable.
  - Cleaned up "makefile".
  - Took a step towards internationalization with gettext(3) by
    calling _() for all English strings.  Everything ported except for
    the "help" command.
  - Commented out some unfactoring code that wasn't helpful and took out
    the "pause" command from "all.in" for easier testing.
  - Rearranged "simplify" command to simplify better.
  - Removed some more unfactoring code and made simplification much
    better.  Go figure.  Perfection has been achieved.
  - Added "unfactor fully" option.
  - Added "make test" to fully test Mathomatic after compilation.
  - Removed masking of 8th bit in all Mathomatic input.
  - Updated primes program with a nice user interface.
2004-04-17 17:08:37 +00:00
minskim
4fe29920ec Import mathomatic-10.9b from pkgsrc-wip.
Packaged by Bruce J.A. Nourish, and slightly modified by me.

Mathomatic is an automatic algebraic manipulator that is self-testing
and strictly follows the rules of algebra.

Mathomatic is an interpreter that can:
  - Solve, simplify, and compare algebraic equations.
  - Combine simultaneous equations.
  - Perform basic calculus operations.
  - Generate the sensitivity formula for one or more variables in an
    equation.
  - Act like a double precision floating point programmable calculator.
  - Perform complex number and polynomial arithmetic.
  - Compute the Greatest Common Divisor of numbers or polynomials.
  - Generate "C" code from equations.
2004-03-31 18:14:08 +00:00