Hello community, here is the log from the commit of package mathomatic for openSUSE:Factory checked in at 2012-03-16 13:17:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mathomatic (Old) and /work/SRC/openSUSE:Factory/.mathomatic.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mathomatic", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/mathomatic/mathomatic.changes 2012-02-22 15:53:55.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.mathomatic.new/mathomatic.changes 2012-03-16 13:19:02.000000000 +0100 @@ -1,0 +2,8 @@ +Fri Mar 9 18:18:45 UTC 2012 - georgegessl...@gmail.com + +- Updated to Mathomatic version 15.8.1 + This is a bugfix release +- Removed unnecessary INSTALL_PROGRAM=install from mathomatic.spec +- All other changes are listed at http://mathomatic.org/NEWS + +------------------------------------------------------------------- Old: ---- mathomatic-15.8.0.tar.bz2 New: ---- mathomatic-15.8.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mathomatic.spec ++++++ --- /var/tmp/diff_new_pack.5folOZ/_old 2012-03-16 13:19:05.000000000 +0100 +++ /var/tmp/diff_new_pack.5folOZ/_new 2012-03-16 13:19:05.000000000 +0100 @@ -16,7 +16,7 @@ # George Gesslein II <gessl...@mathomatic.org> Name: mathomatic -Version: 15.8.0 +Version: 15.8.1 Release: 1 Summary: Computer algebra system @@ -76,12 +76,12 @@ make -C primes check bigcheck %install -make bininstall matho-rmath-install DESTDIR=%{buildroot} prefix=%{_prefix} docdir=%{_docdir} datadir=%{_datadir} INSTALL_PROGRAM="install" +make bininstall matho-rmath-install DESTDIR=%{buildroot} prefix=%{_prefix} docdir=%{_docdir} datadir=%{_datadir} install -D -m 644 %{SOURCE1} %{buildroot}/%{_datadir}/applications/mathomatic.desktop %if 0%{?suse_version} %suse_update_desktop_file -n mathomatic %endif -make -C primes install DESTDIR=%{buildroot} prefix=%{_prefix} INSTALL_PROGRAM="install" +make -C primes install DESTDIR=%{buildroot} prefix=%{_prefix} make -C lib install DESTDIR=%{buildroot} prefix=%{_prefix} libdir=%{_libdir} includedir=%{_includedir} make -C lib distclean ++++++ mathomatic-15.8.0.tar.bz2 -> mathomatic-15.8.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/INSTALL.txt new/mathomatic-15.8.1/INSTALL.txt --- old/mathomatic-15.8.0/INSTALL.txt 2011-11-20 02:00:16.000000000 +0100 +++ new/mathomatic-15.8.1/INSTALL.txt 2012-02-27 00:59:18.000000000 +0100 @@ -40,7 +40,8 @@ Root (super-user) authority is needed to install Mathomatic, because write permission is needed to copy files into the directories in "/usr/local". -Mathomatic need not be installed to run the compiled executable. +Mathomatic need not be installed to run the compiled executable. Reading the +makefile comments is recommended. A typical compile/install is done by typing the following at the shell prompt, while in the Mathomatic source code directory: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/NEWS new/mathomatic-15.8.1/NEWS --- old/mathomatic-15.8.0/NEWS 2012-02-18 13:51:38.000000000 +0100 +++ new/mathomatic-15.8.1/NEWS 2012-03-09 18:29:08.000000000 +0100 @@ -1,6 +1,47 @@ +CHANGES MADE TO MATHOMATIC 15.8.0 TO BRING IT UP TO THE NEXT VERSION: + +Added some important missing documentation, and the makefiles were fixed. +Some scary messages explained to make them less scary. + +02/23/12 - 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. + +02/27/12 - 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. + +03/01/12 - "make uninstall" is now passing the current "prefix" (the directory + being operated on, like "/usr") to the lib and primes uninstall. + +03/04/12 - 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. + +03/06/12 - 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. + +Mathomatic version 15.8.1 released Friday 03/09/12. + CHANGES MADE TO MATHOMATIC 15.7.3 TO BRING IT UP TO THE NEXT VERSION: 02/05/12 - The variables command now returns false (with error message) if @@ -1268,7 +1309,7 @@ ---------------------------------------------------------------------- End of this version history of the Mathomatic computer algebra system. -Current as of 02/18/12 (2012-02-18). +Current as of 03/09/12 (2012-03-09). The latest changes are at the beginning of this file. This file is available at http://mathomatic.org/NEWS Written and maintained by George Gesslein II. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/README.txt new/mathomatic-15.8.1/README.txt --- old/mathomatic-15.8.0/README.txt 2011-12-26 02:06:36.000000000 +0100 +++ new/mathomatic-15.8.1/README.txt 2012-03-02 20:24:04.000000000 +0100 @@ -15,10 +15,11 @@ (see directory "lib"). Mathomatic is a free, portable, general-purpose Computer Algebra System (CAS) -that can automatically solve, differentiate, simplify, combine, and compare -algebraic equations, perform standard, complex number, modular, and -polynomial arithmetic, etc. It does some calculus and is very easy to -compile, learn, and use. Plotting expressions with gnuplot is also supported. +and calculator software that can symbolically solve, simplify, combine, and +compare algebraic equations, simultaneously performing standard, complex +number, modular, and polynomial arithmetic, as needed. It does some calculus +and is very easy to compile/install, learn, and use. Plotting expressions +with gnuplot is also supported. Licenses @@ -50,7 +51,9 @@ On a Debian or Ubuntu Linux computer, the "build-essential" and readline development packages "libreadline-dev" are required to compile Mathomatic with readline functionality. To open a shell window in desktop Linux, launch -Applications/Accessories/Terminal. +Applications/Accessories/Terminal. Makefiles are text files used to build and +install software, and reading the comments contained within them is often +helpful when using them. The latest Mathomatic source code may be downloaded from: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/VERSION new/mathomatic-15.8.1/VERSION --- old/mathomatic-15.8.0/VERSION 2012-02-18 13:48:58.000000000 +0100 +++ new/mathomatic-15.8.1/VERSION 2012-03-09 18:19:10.000000000 +0100 @@ -1 +1 @@ -15.8.0 +15.8.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/am.h new/mathomatic-15.8.1/am.h --- old/mathomatic-15.8.0/am.h 2012-01-01 14:40:46.000000000 +0100 +++ new/mathomatic-15.8.1/am.h 2012-03-04 14:37:20.000000000 +0100 @@ -22,6 +22,13 @@ */ +#ifndef DBL_DIG +#error "DBL_DIG not defined!" +#elif DBL_DIG != 15 +#warning "DBL_DIG (the number of digits precision of doubles) is not 15." +#warning "This might be a problem." +#endif + #if sun #define INFINITY_NAME "Infinity" /* set this to the name of the infinity constant as displayed by printf(3) */ #define NAN_NAME "NaN" /* set this to the name of the NaN constant as displayed by printf(3) */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/changes.txt new/mathomatic-15.8.1/changes.txt --- old/mathomatic-15.8.0/changes.txt 2012-02-18 13:50:12.000000000 +0100 +++ new/mathomatic-15.8.1/changes.txt 2012-03-09 18:19:12.000000000 +0100 @@ -1273,3 +1273,44 @@ division by complex numbers. Mathomatic version 15.8.0 released Saturday 02/18/12. + +CHANGES MADE TO MATHOMATIC 15.8.0 TO BRING IT UP TO THE NEXT VERSION: + +Added some important missing documentation, and the makefiles were fixed. +Some scary messages explained to make them less scary. + +02/23/12 - 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. + +02/27/12 - 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. + +03/01/12 - "make uninstall" is now passing the current "prefix" (the directory + being operated on, like "/usr") to the lib and primes uninstall. + +03/04/12 - 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. + +03/06/12 - 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. + +Mathomatic version 15.8.1 released Friday 03/09/12. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/cmds.c new/mathomatic-15.8.1/cmds.c --- old/mathomatic-15.8.0/cmds.c 2012-02-14 23:21:06.000000000 +0100 +++ new/mathomatic-15.8.1/cmds.c 2012-03-04 18:44:18.000000000 +0100 @@ -259,6 +259,7 @@ #endif fprintf(gfp, "\nsizeof(int) = %u bytes, sizeof(long) = %u bytes.\n", (unsigned) sizeof(int), (unsigned) sizeof(long)); + fprintf(gfp, "sizeof(double) = %u bytes, %d digits precision.\n", (unsigned) sizeof(double), DBL_DIG); #ifdef __VERSION__ fprintf(gfp, _("C Compiler version: %s\n"), __VERSION__); #endif @@ -276,7 +277,7 @@ fprintf(gfp, _("The current security level is %d"), security_level); switch (security_level) { case 0: - fprintf(gfp, _(", no security.\n")); + fprintf(gfp, _(", no security, meaning users are unrestricted.\n")); break; case 3: fprintf(gfp, _(", high security.\n")); @@ -1113,10 +1114,9 @@ } fprintf(ofp, "factor_integers\n"); - if (!right_associative_power) { - fprintf(ofp, "no "); + if (right_associative_power) { /* option is hardly ever used */ + fprintf(ofp, "right_associative_power\n"); } - fprintf(ofp, "right_associative_power\n"); fprintf(ofp, "plot_prefix = "); fprintf_escaped(ofp, plot_prefix); @@ -2211,16 +2211,16 @@ approximate(lhs[i], &n_lhs[i]); approximate(lhs[j], &n_lhs[j]); } + if (compare_es(i, j)) { + fprintf(gfp, _("Expressions are identical.\n")); + return true; + } #if !SILENT if (debug_level >= 0) { list_sub(i); list_sub(j); } #endif - if (compare_es(i, j)) { - fprintf(gfp, _("Expressions are identical.\n")); - return true; - } uf_simp(lhs[i], &n_lhs[i]); uf_simp(lhs[j], &n_lhs[j]); if (approx) { @@ -2264,15 +2264,15 @@ approximate(rhs[i], &n_rhs[i]); approximate(rhs[j], &n_rhs[j]); } + if (compare_rhs(i, j, &diff_sign)) { + goto times_neg1; + } #if !SILENT if (debug_level >= 0) { list_sub(i); list_sub(j); } #endif - if (compare_rhs(i, j, &diff_sign)) { - goto times_neg1; - } uf_simp(rhs[i], &n_rhs[i]); uf_simp(rhs[j], &n_rhs[j]); if (approx) { @@ -3908,7 +3908,8 @@ } #if !SILENT if (rv) { - printf(_("Read operation on file \"%s\" aborted due to error.\n"), buf); + printf(_("Reading of file \"%s\" aborted due to failure return status\n"), buf); + printf(_("of a command or expression parsing, or some other error listed above.\n")); } else { if (!quiet_mode && debug_level >= 0) { printf(_("Successfully finished reading file \"%s\".\n"), buf); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/doc/am.html new/mathomatic-15.8.1/doc/am.html --- old/mathomatic-15.8.0/doc/am.html 2012-02-17 22:25:50.000000000 +0100 +++ new/mathomatic-15.8.1/doc/am.html 2012-02-26 04:54:34.000000000 +0100 @@ -170,26 +170,27 @@ <ul> <li> -a numerical expression, which is instantly evaluated and displayed with the -<a href="#calculate">calculate command</a> (<a href="#set">autocalc</a>), +A numerical expression, which is instantly evaluated and displayed with the +<a href="#calculate">calculate command</a>; this is the <a href="#set">autocalc</a> option; +with autocalc, the previously entered numerical expression is cleared. <li> -an <a href="manual.html#equations">algebraic expression or equation</a>, -which is stored and made the current equation, +An <a href="manual.html#equations">algebraic expression or equation</a>, +which is stored and made the current equation. <li> -a variable to <a href="#solving">solve</a> the current equation for (<a href="#set">autosolve</a>), +A variable to <a href="#solving">solve</a> the current equation for (<a href="#set">autosolve</a>). <li> -an equation number to <a href="#selecting">select</a> as the current equation (<a href="#set">autoselect</a>), +An equation number to <a href="#selecting">select</a> as the current equation (<a href="#set">autoselect</a>). <li> -a slash (<b>/</b>) or pound sign (<b>#</b>) followed by a variable name to search all equations spaces forward or backward for, +A slash (<b>/</b>) or pound sign (<b>#</b>) followed by a variable name to search all equations spaces forward or backward for. <li> -a Mathomatic command (listed in this document), +A Mathomatic command (listed in this document). <li> -a question mark (<b>?</b>) for quick, short help (same as the <a href="#help">help command</a>), +A question mark (<b>?</b>) for quick, short help (same as the <a href="#help">help command</a>). <li> -a semicolon (<b>;</b>) followed by a comment -(everything on a line after a semicolon is ignored), +A semicolon (<b>;</b>) followed by a comment; +everything on a line after a semicolon is ignored. <li> -or an exclamation point (<b>!</b>) followed by a shell or system command. +An exclamation point (<b>!</b>) followed by a shell or system command. "<b>!</b>" by itself invokes the default shell. </ul> @@ -1828,6 +1829,8 @@ "set no <b>autocalc</b>" will turn off automatic approximation and display with the <a href="#calculate">calculate command</a> of purely numerical input entered at the main prompt. +Numerical expressions are not automatically cleared from memory when this +option is turned off. <p> "set no <b>autoselect</b>" will turn off selecting of equation spaces by just typing in the equation number. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/doc/manual.html new/mathomatic-15.8.1/doc/manual.html --- old/mathomatic-15.8.0/doc/manual.html 2012-02-17 22:25:50.000000000 +0100 +++ new/mathomatic-15.8.1/doc/manual.html 2012-03-02 02:56:04.000000000 +0100 @@ -50,6 +50,10 @@ <a href="#equations">Equations and Expressions</a> <ol type="a"> <li> +<a href="#equationsonly">Equations</a> +<li> +<a href="#nonequations">Non-Equations</a> +<li> <a href="#constants">Constants</a> <li> <a href="#symbols">Variables</a> @@ -270,9 +274,19 @@ <p> Each equation space is successively numbered with an <strong>equation number</strong> (starting at 1). The main prompt "<tt>1—> </tt>" contains the equation number of the current equation space. -The current equation can be changed by typing a valid equation number at the main prompt, +The current equation can be changed by typing a valid equation number at the main prompt +(called <a href="am.html#selecting">selecting an equation space</a>), or by entering another equation or expression, which becomes the current equation. <p> +Any previously entered expression can be automatically entered again by entering a "#" +followed by the relative or absolute equation space number of that expression. +If this is entered first thing at the main prompt, +it means something entirely different, that you are <a href="am.html#selecting">selecting that equation space</a>; +Otherwise, the RHS or expression at that equation space is substituted, for your convenience. + +<a name="equationsonly"></a> +<h3>Equations</h3> +<p> To enter an equation into the first available equation space and make it the current equation, simply type it in at the main prompt. Each equation space consists of two equation sides, @@ -367,6 +381,9 @@ If an identity results (the LHS is identical to the RHS), a "Solution verified" message is displayed, otherwise "Solution might be incorrect" is displayed. + +<a name="nonequations"></a> +<h3>Expressions that are not equations</h3> <p> Non-equations, that is any mathematical expression without an equals sign, may be entered into equation spaces too. @@ -582,6 +599,7 @@ For example, entering <b>2x</b>, <b>2(x)</b>, and <b>(2)(x)</b> all result in the expression <b>2*x</b>. <p> +<a name="modular"></a> The modulus operator <b>(a % b)</b> (spoken as "a modulo b") gives the remainder of the division <b>(a / b)</b>, which allows modular arithmetic; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/doc/quickrefcard.html new/mathomatic-15.8.1/doc/quickrefcard.html --- old/mathomatic-15.8.0/doc/quickrefcard.html 2012-02-15 00:50:18.000000000 +0100 +++ new/mathomatic-15.8.1/doc/quickrefcard.html 2012-03-07 22:52:06.000000000 +0100 @@ -5,7 +5,7 @@ </head> <body> <table cellpadding="4" border="3" summary="Mathomatic Quick Reference Card"> -<tr bgcolor="#2648fe"><th colspan="3"><font color="white">Mathomatic version 15.7.3 Quick Reference Card</font></th></tr> +<tr bgcolor="#2648fe"><th colspan="3"><font color="white">Mathomatic version 15.8.0 Quick Reference Card</font></th></tr> <tr> <th>Command</th> <th>Usage</th> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/help.c new/mathomatic-15.8.1/help.c --- old/mathomatic-15.8.0/help.c 2012-01-02 04:27:28.000000000 +0100 +++ new/mathomatic-15.8.1/help.c 2012-03-07 20:44:32.000000000 +0100 @@ -148,8 +148,9 @@ char *geometry_strings[] = { "; Triangle area:\n", "triangle_area = base*height/2\n", - "; See Heron's formula for the area of any triangle\n", - "; given all three side lengths.\n", + "; Here is Heron's formula for the area of any triangle\n", + "; given all three side lengths (a, b, and c):\n", + "triangle_area = (((a + b + c)*(a - b + c)*(a + b - c)*(b - a + c))^(1/2))/4\n", "\n", "; Rectangle of length \"l\" and width \"w\":\n", "rectangle_area = l*w\n", @@ -921,11 +922,12 @@ P("If a colon (:) starts the line, preceding any of the above input to the main"); P("prompt, it will always return with successful status, preventing any current"); - P("read command operations from aborting."); + P("read command operation from aborting due to an error return status."); goto next_space; } - if (strncasecmp(cp, "copyrights", cp1 - cp) == 0 || strncasecmp(cp, "licenses", cp1 - cp) == 0) { + if (strncasecmp(cp, "copyrights", cp1 - cp) == 0 + || strncasecmp(cp, "licenses", cp1 - cp) == 0 || strncasecmp(cp, "licences", cp1 - cp) == 0) { underline_title(P("Copyright and License for Mathomatic")); fprintf(gfp, "%s", license_string); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/icons/mathomatic.svg new/mathomatic-15.8.1/icons/mathomatic.svg --- old/mathomatic-15.8.0/icons/mathomatic.svg 2012-01-24 15:31:16.000000000 +0100 +++ new/mathomatic-15.8.1/icons/mathomatic.svg 2012-03-06 13:45:32.000000000 +0100 @@ -10,12 +10,17 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="744.09448819" - height="1052.3622047" + width="192" + height="195.14284" id="svg2" version="1.1" inkscape:version="0.48.1 r9760" - sodipodi:docname="New document 1"> + sodipodi:docname="mathomatic.svg" + inkscape:export-filename="/home/george/mathomatic.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <title + id="title2985">Mathomatic Logo</title> <defs id="defs4" /> <sodipodi:namedview @@ -26,8 +31,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.35" - inkscape:cx="375" - inkscape:cy="520" + inkscape:cx="153.85714" + inkscape:cy="136.28578" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" @@ -35,7 +40,11 @@ inkscape:window-height="816" inkscape:window-x="0" inkscape:window-y="25" - inkscape:window-maximized="1" /> + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> <metadata id="metadata7"> <rdf:RDF> @@ -44,31 +53,71 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title>Mathomatic Logo</dc:title> + <dc:date>1/24/2012</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>George Gesslein II</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>Trademark for the Mathomatic computer algebra system</dc:title> + </cc:Agent> + </dc:rights> + <dc:publisher> + <cc:Agent> + <dc:title>George Gesslein II</dc:title> + </cc:Agent> + </dc:publisher> + <dc:language>en</dc:language> + <dc:subject> + <rdf:Bag> + <rdf:li>algebra logo Mathomatic</rdf:li> + </rdf:Bag> + </dc:subject> + <dc:description>Made with Inkscape.</dc:description> + <dc:contributor> + <cc:Agent> + <dc:title>George Gesslein II</dc:title> + </cc:Agent> + </dc:contributor> + <dc:coverage>Rights are granted to use this image for anything related to Mathomatic, the computer algebra system.</dc:coverage> + <cc:license + rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" /> </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/by-sa/3.0/"> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Notice" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Attribution" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#ShareAlike" /> + </cc:License> </rdf:RDF> </metadata> <g inkscape:label="Layer 1" inkscape:groupmode="layer" - id="layer1"> + id="layer1" + transform="translate(-266.85715,-427.79077)"> <image y="427.79077" x="266.85715" id="image3066" - xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAARBJREFU -WIXFl0sWgzAIRcHTjblyl4aD1hNIQMin5A1R5IKIAYkIEJEgWUSEAAAIAOnBOcRHGuQNiNfPfjY2 -6Xc2NttX3ntYwbkz4qUG1oLWgVtf+RxRAYtcyzAqz7cBsBSpwIhvA2AR85ISnW4v8Ovc1wXQFM2e -v74H0vMN9cAjrS9mXo0K8CYONxt4CMCTNy80sUm4JqOYvqDNJPynZHWKfTmANZat5t5SgRQArQmL -rcB0A1iZRLq+zI5i6wYY/f6l36YKaEqrwDKAqKJT8TCvJKk6lGaMY/5HJdx+Kj6e8/mO4AAASNpx -OCC+zMwksb0JhwDqVW5mtdtega4eiGTa2w+vACu2Zg9IAGSs6TXQDQPJnMmPfQ/wAAAAAElFTkSu -QmCC -" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAARBJREFU WIXFl0sWgzAIRcHTjblyl4aD1hNIQMin5A1R5IKIAYkIEJEgWUSEAAAIAOnBOcRHGuQNiNfPfjY2 6Xc2NttX3ntYwbkz4qUG1oLWgVtf+RxRAYtcyzAqz7cBsBSpwIhvA2AR85ISnW4v8Ovc1wXQFM2e v74H0vMN9cAjrS9mXo0K8CYONxt4CMCTNy80sUm4JqOYvqDNJPynZHWKfTmANZat5t5SgRQArQmL rcB0A1iZRLq+zI5i6wYY/f6l36YKaEqrwDKAqKJT8TCvJKk6lGaMY/5HJdx+Kj6e8/mO4AAASNpx OCC+zMwksb0JhwDqVW5mtdtega4eiGTa2w+vACu2Zg9IAGSs6TXQDQPJnMmPfQ/wAAAAAElFTkSu QmCC " width="192" height="192" style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1" /> <path - style="fill:#000000;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;stroke-miterlimit:1;stroke-dasharray:none" + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" d="m 437.14286,620.93361 -42.85715,-17.14286 -17.14285,-5.71428 -8.57143,-14.28572 -11.42857,-5.71428 0,0 c 0,0 -11.42857,20 -28.57143,28.57143 -17.14286,8.57143 0,0 -60,8.57143 l 91.42857,-20" id="path3841" inkscape:connector-curvature="0" /> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/license.h new/mathomatic-15.8.1/license.h --- old/mathomatic-15.8.0/license.h 2012-01-01 14:40:46.000000000 +0100 +++ new/mathomatic-15.8.1/license.h 2012-02-28 14:27:30.000000000 +0100 @@ -40,4 +40,6 @@ " George Gesslein II\n" " P.O. Box 224\n" " Lansing, New York 14882-0224\n" -" USA\n"; +" USA\n\n" + +"Others who have contributed code to Mathomatic are listed in file \"AUTHORS\".\n"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/main.c new/mathomatic-15.8.1/main.c --- old/mathomatic-15.8.0/main.c 2012-01-06 13:57:54.000000000 +0100 +++ new/mathomatic-15.8.1/main.c 2012-02-28 14:11:00.000000000 +0100 @@ -88,7 +88,10 @@ fprintf(fp, "m4 "); #endif fprintf(fp, "Mathomatic version %s\n", VERSION); - fprintf(fp, "Copyright (C) 1987-2012 George Gesslein II.\n"); + if (html_flag) + fprintf(fp, "Copyright © 1987-2012 George Gesslein II.\n"); + else + fprintf(fp, "Copyright (C) 1987-2012 George Gesslein II.\n"); fprintf(fp, _("%d equation spaces available in memory,\n%ld kilobytes per equation space.\n"), N_EQUATIONS, (long) n_tokens * sizeof(token_type) * 2L / 1000L); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/makefile new/mathomatic-15.8.1/makefile --- old/mathomatic-15.8.0/makefile 2011-11-20 02:11:14.000000000 +0100 +++ new/mathomatic-15.8.1/makefile 2012-03-09 18:26:52.000000000 +0100 @@ -16,6 +16,9 @@ # make READLINE=1 # make test # +# For Slackware, or any other OS that fails to find the curses library functions, use: +# LDLIBS=-lncurses make READLINE=1 + # To install the base Mathomatic system after compiling and testing, type: # sudo make install # @@ -27,14 +30,19 @@ # make test # sudo make m4install INSTALL=ginstall prefix=/usr M4=gm4 -# This makefile does NOT compile and install the Prime Number Tools in the "primes" directory. +# This makefile does NOT compile and install the Prime Number Tools in the "primes" directory, +# nor does it compile and install the Symbolic Math Library in the "lib" directory. +# sudo make uninstall +# here will uninstall all of Mathomatic, +# including the Prime Number Tools and the Symbolic Math Library, +# but it must know the "prefix" used to install Mathomatic, if specified during the install. SHELL = /bin/sh # from "http://www.gnu.org/prep/standards/", do not change CC ?= gcc # C compiler to use; this statement doesn't work usually, instead using cc. M4 ?= m4 # Change this to gm4 in Unix or a non-GNU system. INSTALL ?= install # Installer utility to use; change to ginstall under Unix. -INSTALL_PROGRAM ?= $(INSTALL) -Cv # Command to install executable program files; compares to see if any differences, first. -INSTALL_DATA ?= $(INSTALL) -m 0644 # command to install data files +INSTALL_PROGRAM ?= $(INSTALL) # Command to install executable program files. +INSTALL_DATA ?= $(INSTALL) -m 0644 # Command to install data files. CC_OPTIMIZE ?= -O3 # Default C compiler optimization flags that are safe. # Be sure and run tests to see if Mathomatic works and runs faster, if you uncomment the following line: @@ -55,7 +63,8 @@ # Install directories follow; installs everything in $(DESTDIR)/usr/local by default. # Note that support for the DESTDIR variable was added in version 15.2.1. -# DESTDIR is used by package maintainers, who should remove all DESTDIR patches. +# DESTDIR is used by package maintainers, who should remove all DESTDIR patches, +# because DESTDIR is handled properly (according to GNU standards) by this makefile now. prefix ?= /usr/local bindir ?= $(prefix)/bin datadir ?= $(prefix)/share @@ -258,7 +267,7 @@ # UNINSTALL MATHOMATIC -# Remove Mathomatic from your local computer system. +# Entirely remove Mathomatic from your local computer system. uninstall: cd $(DESTDIR)$(mandir)/man1 && rm -f $(MAN1) matho.1 cd $(DESTDIR)$(bindir) && rm -f $(AOUT) rmath matho @@ -269,9 +278,9 @@ @echo @echo Mathomatic uninstall completed. @echo - $(MAKE) -C primes uninstall + -$(MAKE) -C primes prefix=$(prefix) uninstall @echo - $(MAKE) -C lib uninstall + -$(MAKE) -C lib prefix=$(prefix) uninstall # CLEAN THIS DIRECTORY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/misc/known_bugs.txt new/mathomatic-15.8.1/misc/known_bugs.txt --- old/mathomatic-15.8.0/misc/known_bugs.txt 2012-02-14 18:57:54.000000000 +0100 +++ new/mathomatic-15.8.1/misc/known_bugs.txt 2012-03-06 22:28:54.000000000 +0100 @@ -21,3 +21,9 @@ The solve command may have a problem too, but using the verify option should check that the result of solving absolute value or complex number equations is 100% correct. + +Solving modulus equations: + May result in garbage, due to incomplete modulus operator solving code. +I could just disable it, but I choose to research it at a later time, because +it does sometimes work nicely. Again, the "solve verify" option tells the +truth. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/poly.c new/mathomatic-15.8.1/poly.c --- old/mathomatic-15.8.0/poly.c 2012-01-04 16:01:20.000000000 +0100 +++ new/mathomatic-15.8.1/poly.c 2012-03-07 00:56:08.000000000 +0100 @@ -1023,22 +1023,28 @@ } break; } +#if 1 /* Remove integer*n multiples in x for x%n by doing */ /* polynomial division x/n and replacing with remainder%n. */ /* Globals tlhs[] and trhs[] are wiped out by the polynomial division here. */ if (poly_div(&equation[j], len2, &equation[i+1], len1, NULL)) { uf_pplus(tlhs, &n_tlhs); /* so integer%(integer^integer) isn't simplified to 0 */ if (is_integer_expr(tlhs, n_tlhs)) { - if ((*np + (n_trhs - len2)) > n_tokens) - error_huge(); - for (k = 0; k < n_trhs; k++) - trhs[k].level += level; - blt(&equation[j+n_trhs], &equation[j+len2], (*np - (j + len2)) * sizeof(token_type)); - *np += n_trhs - len2; - blt(&equation[j], trhs, n_trhs * sizeof(token_type)); - return true; + if (n_trhs < len2 || REMAINDER_IS_ZERO()) { /* if it will make it smaller */ + if ((*np + (n_trhs - len2)) > n_tokens) + error_huge(); + for (k = 0; k < n_trhs; k++) + trhs[k].level += level; + blt(&equation[j+n_trhs], &equation[j+len2], (*np - (j + len2)) * sizeof(token_type)); + *np += n_trhs - len2; + blt(&equation[j], trhs, n_trhs * sizeof(token_type)); + debug_string(2, "Polynomial division successful in modulus simplification. The result is:"); + side_debug(2, equation, *np); + return true; + } } } +#endif } } return modified; @@ -1552,9 +1558,12 @@ count = find_greatest_power(trhs, n_trhs, vp, &d, &t1, &len_t1, ÷_flag); if (d < divisor_power) { /* Success! Polynomial division ends here. */ + debug_string(3, "Successful polynomial division!"); blt(tlhs, quotient, n_quotient * sizeof(token_type)); n_tlhs = n_quotient; + debug_string(3, "Quotient:"); side_debug(3, tlhs, n_tlhs); + debug_string(3, "Remainder:"); side_debug(3, trhs, n_trhs); if (REMAINDER_IS_ZERO()) return 2; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/primes/makefile new/mathomatic-15.8.1/primes/makefile --- old/mathomatic-15.8.0/primes/makefile 2011-12-01 02:49:22.000000000 +0100 +++ new/mathomatic-15.8.1/primes/makefile 2012-02-23 19:52:20.000000000 +0100 @@ -9,8 +9,8 @@ SHELL = /bin/sh # from http://www.gnu.org/prep/standards/ CC ?= gcc # C compiler to use INSTALL ?= install # installer to use -INSTALL_PROGRAM ?= $(INSTALL) -Cv # command to install executable program files; compare to see any differences, first. -INSTALL_DATA ?= $(INSTALL) -m 0644 # command to install data files +INSTALL_PROGRAM ?= $(INSTALL) # Command to install executable program files. +INSTALL_DATA ?= $(INSTALL) -m 0644 # Command to install data files. CC_OPTIMIZE = -O3 # Default C compiler optimization flags that are safe. #CC_OPTIMIZE += -ffast-math -fomit-frame-pointer # Extra optimize for speed, not functional under Mac OS X. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/primes/t new/mathomatic-15.8.1/primes/t --- old/mathomatic-15.8.0/primes/t 2011-11-17 14:08:52.000000000 +0100 +++ new/mathomatic-15.8.1/primes/t 2012-02-27 15:53:08.000000000 +0100 @@ -4,6 +4,8 @@ set -e set -u +trap "rm -f test.out bigtest.out" EXIT + make check bigcheck echo Testing matho-pascal... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/solve.c new/mathomatic-15.8.1/solve.c --- old/mathomatic-15.8.0/solve.c 2012-02-15 00:39:42.000000000 +0100 +++ new/mathomatic-15.8.1/solve.c 2012-03-07 14:48:20.000000000 +0100 @@ -1117,7 +1117,7 @@ error_bug("g_of_f() called with invalid operandp."); } if (*side1np == prev_n1 && *side2np == prev_n2) { - if (++repeat_count >= 4 /* was 3 */) { + if (++repeat_count >= 4) { debug_string(1, _("Infinite loop aborted in solve routine.")); return false; } @@ -1261,7 +1261,7 @@ p2++; p2->level = 2; p2->kind = VARIABLE; - snprintf(var_name_buf, sizeof(var_name_buf), "%s%.0d", V_INTEGER_PREFIX, last_int_var); + snprintf(var_name_buf, sizeof(var_name_buf), "%s_any%.0d", V_INTEGER_PREFIX, last_int_var); if (parse_var(&p2->token.variable, var_name_buf) == NULL) return false; last_int_var++; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/tests/all.out new/mathomatic-15.8.1/tests/all.out --- old/mathomatic-15.8.0/tests/all.out 2012-02-14 18:18:00.000000000 +0100 +++ new/mathomatic-15.8.1/tests/all.out 2012-02-28 00:22:08.000000000 +0100 @@ -1536,16 +1536,6 @@ 1-> compare with 4 Comparing #4 with #1... Completely simplifying both equations... - - ((c1*((b2*d3) - (b3*d2))) + (b1*((c3*d2) - (c2*d3))) + (d1*((b3*c2) - (c3*b2)))) -#4: x = -------------------------------------------------------------------------------- - ((a1*((b3*c2) - (c3*b2))) + (c1*((a3*b2) - (b3*a2))) + (b1*((c3*a2) - (a3*c2)))) - - - ((d1*((b2*c3) - (b3*c2))) + (b1*((d3*c2) - (d2*c3))) + (c1*((d2*b3) - (d3*b2)))) -#1: x = -------------------------------------------------------------------------------- - ((a1*((b2*c3) - (b3*c2))) + (b1*((a3*c2) - (a2*c3))) + (c1*((a2*b3) - (a3*b2)))) - Equations are identical. Successfully finished reading file "test3.in". 1-> read poly @@ -2090,20 +2080,6 @@ 7-> compare 6 Comparing #6 with #7... Completely simplifying both equations... - - 1 1 - ((((mass1^2)^-)*(((velocity1_old - velocity2_old)^2)^-)*sign0) + (mass1*velocity1_old) + (mass2*velocity2_old)) - 2 2 -#6: velocity2_new = --------------------------------------------------------------------------------------------------------------- - (mass1 + mass2) - - - 1 1 - ((sign*((mass1^2)^-)*(((velocity1_old - velocity2_old)^2)^-)) + (mass1*velocity1_old) + (mass2*velocity2_old)) - 2 2 -#7: velocity2_new = -------------------------------------------------------------------------------------------------------------- - (mass1 + mass2) - Equations are identical. Successfully finished reading file "test6.in". 7-> clear all @@ -2286,27 +2262,36 @@ #3: trapezoid_area = ----------------------------------------------------- 4 +3-> replace trapezoid_area with triangle_area + + 1 + (((a + b + c)*(a - b + c)*(a + b - c)*(b - a + c))^-) + 2 +#3: triangle_area = ----------------------------------------------------- + 4 + 3-> pause Please press the Enter key to verify the result. -3-> compare 2 ; simplify and compare the result with Heron's formula: -Comparing #2 with #3... -Completely simplifying both equations... +3-> copy + + 1 + (((a + b + c)*(a - b + c)*(a + b - c)*(b - a + c))^-) + 2 +#5: triangle_area = ----------------------------------------------------- + 4 + +3-> display 2 1 - (((2*((a^2*(b^2 + c^2)) + (b^2*c^2))) - a^4 - b^4 - c^4)^-) + (((2*((a^2*(b^2 + c^2)) + ((b*c)^2))) - a^4 - b^4 - c^4)^-) 2 #2: triangle_area = ----------------------------------------------------------- 4 - - 1 - (((2*((a^2*(b^2 + c^2)) + (c^2*b^2))) - a^4 - b^4 - c^4)^-) - 2 -#3: trapezoid_area = ----------------------------------------------------------- - 4 - -Variable triangle_area in the first equation -is equal to trapezoid_area in the second equation. -3-> clear +3-> compare 5 with 2 ; simplify and compare the result with Heron's formula: +Comparing #5 with #2... +Completely simplifying both equations... +Equations are identical. +3-> clear 5 3-> pause 3-> 3-> ; This is how we arrive at Heron's formula for the area @@ -2318,60 +2303,46 @@ 3-> 3-> 2s=a+b+c+d ; cyclic quadrilateral side lengths are a, b, c, and d -#3: 2*s = a + b + c + d +#5: 2*s = a + b + c + d -3-> cyclic_area = ((s-a)*(s-b)*(s-c)*(s-d))^.5 +5-> cyclic_area = ((s-a)*(s-b)*(s-c)*(s-d))^.5 1 -#5: cyclic_area = ((s - a)*(s - b)*(s - c)*(s - d))^- +#6: cyclic_area = ((s - a)*(s - b)*(s - c)*(s - d))^- 2 -5-> eliminate s ; Brahmagupta's formula: -Solving equation #3 for (s) and substituting into the current equation... +6-> eliminate s ; Brahmagupta's formula: +Solving equation #5 for (s) and substituting into the current equation... (a + b + c + d) (a + b + c + d) (a + b + c + d) (a + b + c + d) 1 -#5: cyclic_area = ((--------------- - a)*(--------------- - b)*(--------------- - c)*(--------------- - d))^- +#6: cyclic_area = ((--------------- - a)*(--------------- - b)*(--------------- - c)*(--------------- - d))^- 2 2 2 2 2 -5-> pause -5-> copy +6-> pause +6-> copy (a + b + c + d) (a + b + c + d) (a + b + c + d) (a + b + c + d) 1 -#6: cyclic_area = ((--------------- - a)*(--------------- - b)*(--------------- - c)*(--------------- - d))^- +#7: cyclic_area = ((--------------- - a)*(--------------- - b)*(--------------- - c)*(--------------- - d))^- 2 2 2 2 2 -5-> replace d with 0 ; make one side length zero to get Heron's formula: +6-> replace d with 0 ; make one side length zero to get Heron's formula: (a + b + c) (a + b + c) (a + b + c) (----------- - a)*(----------- - b)*(----------- - c)*(a + b + c) 2 2 2 1 -#5: cyclic_area = -----------------------------------------------------------------^- +#6: cyclic_area = -----------------------------------------------------------------^- 2 2 -5-> pause Please press the Enter key to verify the result. -5-> compare 2 ; simplify and compare the result with Heron's formula: -Comparing #2 with #5... +6-> pause Please press the Enter key to verify the result. +6-> compare 2 ; simplify and compare the result with Heron's formula: +Comparing #2 with #6... Completely simplifying both equations... - - 1 - (((2*((a^2*(b^2 + c^2)) + (b^2*c^2))) - a^4 - b^4 - c^4)^-) - 2 -#2: triangle_area = ----------------------------------------------------------- - 4 - - - 1 - (((2*((a^2*(b^2 + c^2)) + (c^2*b^2))) - a^4 - b^4 - c^4)^-) - 2 -#5: cyclic_area = ----------------------------------------------------------- - 4 - Variable triangle_area in the first equation is equal to cyclic_area in the second equation. -5-> clear -5-> clear 1 3 +6-> clear +6-> clear 1 5 Successfully finished reading file "heron.in". -5-> clear all +6-> clear all 1-> read radius 1-> 1-> ; Some more fun formulas. These are very similar to Heron's formula diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mathomatic-15.8.0/tests/heron.in new/mathomatic-15.8.1/tests/heron.in --- old/mathomatic-15.8.0/tests/heron.in 2009-07-05 12:21:28.000000000 +0200 +++ new/mathomatic-15.8.1/tests/heron.in 2012-02-28 00:12:50.000000000 +0100 @@ -22,9 +22,12 @@ copy replace c with 0 ; make the shorter parallel side length = 0 replace d with c ; Heron's formula in its simplest form: +replace trapezoid_area with triangle_area pause Please press the Enter key to verify the result. -compare 2 ; simplify and compare the result with Heron's formula: -clear +copy +display 2 +compare 5 with 2 ; simplify and compare the result with Heron's formula: +clear 5 pause ; This is how we arrive at Heron's formula for the area @@ -43,4 +46,4 @@ pause Please press the Enter key to verify the result. compare 2 ; simplify and compare the result with Heron's formula: clear -clear 1 3 +clear 1 5 -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org