Tue Nov 20 23:20:58 2007 Jiri (George) Lebl * Release 1.0.2 Tue Nov 20 23:13:36 2007 Jiri (George) Lebl * src/funclib.c: no mod of arguments to round, ceil, trunc, all trig functions, all log functions, exp, CompositeSimpsonsRule. It just doesn't make sense to do so. Fix IsPerfectSquare for rationals. Tue Nov 20 12:26:58 2007 Jiri (George) Lebl * src/gnome-genius.c: one more untranslated string marked Tue Nov 20 03:34:28 2007 Jiri (George) Lebl * src/gnome-genius.c: set up our icon on all windows Tue Nov 20 03:22:14 2007 Jiri (George) Lebl * src/mpwrap.c: saner algorithm to figure out when to print in scientific notation Tue Nov 20 02:33:03 2007 Jiri (George) Lebl * configure.in: raise version * src/gnome-genius.c: don't leave behind zombie processes from running programs. Translate a previously untranslated string, and handle fork failing. * src/eval.c: the @() operator accepts null as range when not used as an lvalue and just returns null then. That's the more correct behaviour, treating it as an empty range, thus returning an empty matrix. Plus negligible speed improvement. * src/calc.c: kill extraneous newline when prettyprinting fractions * src/geniustests.txt: add tests * NEWS: update 2007-11-20 Sebastian Dröge * src/gnome-genius.desktop.in: Fix category and mimetype fields of the desktop file. 2007-11-19 Sebastian Dröge * help/omf.make: And now fix the OMF file installation if --disable-scrollkeeper is used for real. 2007-11-19 Sebastian Dröge * help/omf.make: Fix OMF file installation if --disable-scrollkeeper is used. Mon Nov 19 03:21:44 2007 Jiri (George) Lebl * src/mpwrap.c, src/funclib.c: slight optimization by using mpfr_zero_p Mon Nov 19 02:56:58 2007 Jiri (George) Lebl * src/symbolic.c: add erf derivative Sun Nov 18 14:48:56 2007 Jiri (George) Lebl * src/gnome-genius.c: fix building with no gtksourceview Sat Nov 17 21:27:26 2007 Jiri (George) Lebl * src/gnome-genius.c: use GTK_STOCK_DIALOG_INFO instead of GTK_STOCK_INFO, as the latter is only available in 2.8 and higher gtk, thus making genius implicitly depend on 2.8 * ve/Makefile.am: don't use -l to link to the viciouslib but link it directly Fri Nov 16 23:36:57 2007 Jiri (George) Lebl * Release 1.0.1 Fri Nov 16 23:10:29 2007 Jiri (George) Lebl * gtkextra/gtkplot.[ch]: add freeze/thaw functions since otherwise we may hang and eat all memory on recalculating ticks needlessly when changing both range and ticks. * src/graphing.c: use freeze/thaw to avoid hangs and huge memory leaks. On parametric plots, squish the graph a little and move the legend below the plot. * NEWS: update Fri Nov 16 00:50:48 2007 Jiri (George) Lebl * lib/calculus/sums_proucts.gel: increase default sum and product tries to 10000, since 200 was just not cutting it. Thu Nov 15 23:30:51 2007 Jiri (George) Lebl * src/calc.c: Much nicer pretty printing of matrices. Rather than using tabs, use commas and align elements successive rows. Both nicer, more readable (when MixedFractions is on) and more compact way of seeing matrices. Yay! * src/lexer.l: drop the tab support for entering matrices. Not only was it stupid, it didn't work on the command line * src/funclib.c: fix print, printn and display functions to not follow the line length limits like normal output * src/calc.c: when pretty printing a matrix, only print the leading newline if we are not in fact on the start of a line * configure.in: check for svn rather than cvs to add extra warnings * src/gnome-genius.c: make is_uri static to avoid a warning * help/C/genius.xml: update the manual * NEWS: update Thu Nov 15 18:39:06 2007 Jiri (George) Lebl * src/Makefile.am: add nullspacetest.gel Wed Nov 14 20:13:29 2007 Jiri (George) Lebl * src/matop.c: fix possible memory corruption in the gauss routine * src/matrixw.c: slight optimization to not copy zeros * src/funclib.c, lib/linear_algebra/*.gel: Implement NullSpace and PivotColumns internally for speed. * src/gnome-genius.c: remove some unused vars * src/geniustests.txt, src/nullspacetests.txt: add tests for PivotColumns and NullSpace Wed Nov 14 04:15:49 2007 Jiri (George) Lebl * lib/linear_algebra/*.gel: OrthogonalComplement is with respect to Hermitian product just like everything else. Also handle null as empty matrix/subspace in more places. Wed Nov 14 03:45:42 2007 Jiri (George) Lebl * src/matop.c, src/symbolic.c, src/mpwrap.[ch], src/calc.c, src/funclib.c, src/eval.c: Significantly improve both memory usage and speed in matrix multiplication and to some degree Gaussian elimination in case there are a lot of zero entries. * src/geniustests.txt: update Tue Nov 13 23:48:25 2007 Jiri (George) Lebl * src/matrixw.[ch], src/calc.c, src/funclib.c, src/matop.c, src/symbolic.c, src/compil.c, src/eval.c: Optimized / cleaned up certain matrix operations a tiny bit. Consistently traverse matrices row wise. * src/funclib.c, src/eval.c: Fixed and slightly optimized IsIn, it used to bomb if the first argument was a matrix, and it used to think that the object "true" is equal to any number, and further it didn't see a difference between numbers of different types (float vs. integer). This fixes also Intersection, Union, MakeSet and SetMinus. Also added IsSubset. Also fixed symbolic tree comparison for matrices. * src/mpwrap.c: When printing out a floating point number, make sure to append ".0" to the end to distinguish it from an integer * src/geniustests.txt: updated tests, added many new tests. * help/C/gel-function-list.xml: updated * NEWS: update Sun Nov 11 03:17:49 2007 Jiri (George) Lebl * src/gnome-genius.c: translate the author fields in the about box and set the program name correctly Sun Nov 11 03:07:04 2007 Jiri (George) Lebl * src/funclib.c: there was a stupid string to translate Sun Nov 11 00:14:04 2007 Jiri (George) Lebl * pixmaps/Makefile.am: add genius-graph.png to EXTRA_DIST * src/funclib.c: Implement DividePoly to divide polynomials using long division. This was one of those things that I set aside to do "tommorrow" and it took close to a decade. * help/C/gel-function-list.xml: document DividePoly * configure.in: require GTK+ 2.4 (not 2.3.5 as previously) * NEWS: update Sat Nov 10 16:58:14 2007 Jiri (George) Lebl * src/gnome-genius.c: migrate to GtkFontButton and add website addy to about box Sat Nov 10 16:22:09 2007 Jiri (George) Lebl * src/gnome-genius.c: optionally use GtkAboutDialog if we have GTK 2.6 and higher * src/gnome-genius.c, src/genius.c, src/Makefile.am: better checking if we are in the development directory and if so, don't init binreloc and use the local lib.cgel Sat Nov 10 13:51:26 2007 Jiri (George) Lebl * src/graphing.c: fix fit dependent axis zoom for parametric plots * src/dict.[ch], src/gnome-genius.c, src/eval.c: Add names to contexts and print these when showing local variables so that you can see the "backtrace". Also the display of vars is slightly nicer now. Thu Nov 08 00:51:16 2007 Jiri (George) Lebl * src/gnome-genius.c, src/genius.c, src/funclib.c, src/plugin.c, src/lexer.l, src/binreloc.[ch], acinclude.m4, src/Makefile.am: add and use Binreloc code from autopackage to allow relocatable executables. Slightly massaged the code/auto* stuff to make it work. Mon Nov 05 01:31:51 2007 Jiri (George) Lebl * Makefile.am: add the INSTALL.MacOSX file to EXTRA_DIST Mon Nov 05 00:15:09 2007 Jiri (George) Lebl * src/calc.[ch], src/mpwrap.[ch], src/funclib.c, src/genius.c, src/gnome-genius.c, src/structs.h src/geloutput.[ch]: Implement OutputChopExponent and OutputChopWhenExponent parameters. These will chop small numbers if they appear near large numbers. * src/gnome-genius.c: try to use G_DIR_SEPARATOR more just in case someone will start porting genius * help/C/*.xml: update documentation for chopping * src/geniustests.txt: add tests for chopping * README, NEWS: update Sun Nov 04 02:37:58 2007 Jiri (George) Lebl * src/graphing.c: unswap x and y. They are now in correct positive orientation in gtkextra. * src/gnome-genius.c, pixmaps/gnome-graph.png: add a simple "logo" to the about box * NEWS: update Sat Nov 03 20:51:37 2007 Jiri (George) Lebl * src/graphing.c: Use -10 to 10 for all default ranges. Much better than PI, that was stupid. Set minimum plot window to 1e-10 and enforce it to avoid errors with computing ticks leading to hanging behaviour. * gtkextra/*: copy new files from cvs version of gtk extra except for gtkpslot which is broken, so keep our old version which works * gtkextra/gtkplot3d.[ch]: fix up the axis mess * src/graphing.c: use the new gtk extra stuff. Produces nicer plots on screen. Initial patch was by Sebastian Dröge 2007-11-03 Sebastian Dröge * configure.in: * src/Makefile.am: * src/gnome-genius.c: (get_source_language_manager), (new_program): Optionally allow to use GtkSourceView2 instead of GtkSourceView1. Version 2 is preffered if available, otherwise version 1 will be used. 2007-11-03 Sebastian Dröge * Makefile.am: * configure.in: * help/omf.make: Add --disable-scrollkeeper and --disable-update-mimedb options to configure to skip building the scrollkeeper and mime database on make install. The files generated by this must not be shipped by binary packages and having this options makes it easier to package genius. Wed Oct 31 10:43:25 2007 Jiri (George) Lebl * gtkextra/*: remove gtkplotdtriangle.[ch]: they're not needed and have a bad license. Fri Oct 26 02:16:23 2007 Jiri (George) Lebl * src/calc.[ch], src/eval.[ch], src/genius.c, src/gnome-genius.c: Implement maximum node checking. If the limit is hit you are given a chance to interrupt the current program. Only in the GNOME version. Add this to the Properties dialog. * src/dict.c: Fix large performance problem on returning from a deep recursion by not doing a stupid assert * help/C/genius.xml: document max_nodes Thu Oct 25 15:22:16 2007 Jiri (George) Lebl * src/inter.c: fix command line editting. readline docs are horrible! (and readline is horrible) * src/gnome-genius.c: fix strange printing of locals among globals Thu Oct 25 13:47:40 2007 Jiri (George) Lebl * src/gnome-genius.c, src/dict.[ch]: Implement showing of all user variables even during runtime. Shows even local variables if some function is currently being executed. Allows better debugging * src/gnome-genius.c: fix show full answer leak and fix running it during runtime. * configure.in: bump version * help/C/genius.xml: update docs a bit, add some more info on the gui part of genius. Tue Oct 23 17:14:25 2007 Jiri (George) Lebl * src/funclib.c: positive and nonnegative matrixes obviously can't have complex entries so return false Tue Oct 23 16:23:53 2007 Jiri (George) Lebl * src/funclib.c: add IsMatrixPositive and IsMatrixNonnegative * help/C/gel-function-list.xml: add docs for the above Tue Oct 23 16:04:56 2007 Jiri (George) Lebl * src/funclib.c: add "version" function for checking the version * help/C/gel-function-list.xml: add doc for version Tue Oct 23 15:42:03 2007 Jiri (George) Lebl * src/funclib.c, src/funclibhelper.cP: Add IsZero and IsIdentity for checking if a matrix is zeros or an identity * help/C/gel-function-list.xml: add docs for the above Tue Oct 23 13:57:03 2007 Jiri (George) Lebl * src/gnome-genius.c: on errors don't print the whole filename for opened files, just the displayed name * src/gnome-genius.c: add Ctrl->R for "Run" Tue Oct 23 13:33:42 2007 Jiri (George) Lebl * lib/linear_algebra/linear_algebra.gel: slightly optimize PivotColumns by removing unnecessary separators * src/matop.c, src/funclib.c: when computing det be smart about matrices in rref form. This way once we make a matrix rref, we can use det to check if it is singular very quickly. Also set the rref flag on identity matrices. Tue Oct 23 12:28:56 2007 Jiri (George) Lebl * src/gnome-genius.c: add "save all unsaved" menu item, fix the save as dialog, and add confirmation on closing unsaved things. Tue Oct 23 11:33:56 2007 Jiri (George) Lebl * lib/functions/numerical.gel: remove IsGaussianInteger, we already have IsGaussInteger alias IsComplexInteger * help/C/gel-function-list.xml: updates and fixes Tue Oct 23 10:51:24 2007 Jiri (George) Lebl * src/gnome-genius.c: better logic for figuring out something is a URI Mon Oct 22 21:39:42 2007 Jiri (George) Lebl * src/gnome-genius.c: recognize uris on the command line and handle them correctly Mon Oct 22 19:38:03 2007 Jiri (George) Lebl * src/gnome-genius.c: whack the old gtk file selection stuff, I'm tired of fixing bugs in two versions of code. Consistently have uri's around as program->name internally. Fix opening files without specifying full path on command line. * configure.in: require at least gtk+ 2.3.5 Tue Oct 16 11:05:32 2007 Jiri (George) Lebl * src/gnome-genius.desktop.in: hmmm, Calculator;Utility; also fits the bill. Makes the menu entry appear twice at least in ubuntu. ... hmmm oh well. The default menu setup in gnome must be a little braindead and uses too simple queries. * help/C/genius.xml: added Accessories to list of possible submenus Tue Oct 16 10:53:33 2007 Jiri (George) Lebl * src/gnome-genius.desktop.in: change Office to Education as per the vfolder spec (that's still somewhat wrong, but unfortunately it is as close to standard behaviour as we get). Also notice that the Scientific category was wrong. "Science" is correct as per spec. * help/C/genius.xml: update the manual for where to find the icon. Sun Oct 14 10:10:11 2007 Jiri (George) Lebl * src/gnome-genius.c: add Adrian E. Feiguin to the authors list in the about box Sun Oct 14 09:40:59 2007 Jiri (George) Lebl * src/gnome-genius.c: I finally found the culprit behind some of the initial GEL implementations of standard library so I added him, Nils Barth to the authors list. Sun Oct 14 02:33:43 2007 Jiri (George) Lebl * help/C/*: update the documentation a bit more. Make it almost one file only by inlining all the things done as separate entities before, that was a nightmare to edit. Only the function list and the legal nonsense is left separate. Sat Oct 13 10:38:49 2007 Jiri (George) Lebl * help/C/*.xml: minor fixes Sat Oct 13 09:42:33 2007 Jiri (George) Lebl * help/C/gel-variables.xml: add more on scope of variables and other minor fixes. Mon Oct 08 01:56:06 2007 Jiri (George) Lebl * help/C/*.xml: documentation updates * Release 1.0.0 Sun Oct 07 12:48:33 2007 Jiri (George) Lebl * configure.in: add missing languages Sun Sep 30 21:00:49 2007 Jiri (George) Lebl * help/C/genius.xml: use the "Genius Mathematics Tool" that sounds better Sun Sep 30 20:53:11 2007 Jiri (George) Lebl * COPYING, src/genius.c, src/gnome-genius.c, src/funclib.c: update to GPLv2 * AUTHORS, TODO, README: minor updates Sun Sep 30 20:31:30 2007 Jiri (George) Lebl * configure.in, NEWS, help/C/genius.xml: make this 1.0.0 release, what the hell, it's been 10 years, we deserve a 1.0 of Genius Sun Sep 30 11:42:59 2007 Jiri (George) Lebl * src/gnome-genius.c: workaround a segfault in vte when a very long string is given. * src/mpwrap.c: fix bug with scientific notation. Also change behaviour of automatic scientific notation to follow the max digits parameter * src/Makefile.am: fix order of -I and change the way we link our own libs to be more robust. * configure.in: fix * src/funclibhelper.cP: fix nonegative integer vs positive integer checking and add square matrix checking * src/mpwrap.[ch]: add binomial and get_ulong * src/funclib.c: Add builtin versions of IsVector, IsDiagonal, IsUpperTriangular, IsLowerTriangular, nCr (Binomial) for speed. * help/C/gel-function-list.xml: add docs for RayleighQuotientIteration, StirlingNumberFirst and Second, and update nCr doc string * help/C/*.xml: update the document to look better printed. Remove uneeded paragraph separators, and rewrite small bits. * lib/linear_algebra/misc.gel: fix ApplyOverMatrix2, remove some unneeded semicolons, remove functions now builtin * lib/linear_algebra/linear_algebra.gel: fix RayleighQuotient and add RayleighQuotientIteration * lib/combinatorics/misc.gel: Hofstadter, HarmonicNumber works over matrixes. Add StirlingNumberFirst and StirlingNumberSecond * lib/combinatorics/factorial.gel: remove nCr as it's builtin * src/calc.h, src/gnome-genius.c: brag about my Ph.D. * src/geniustests.txt: add bunch of tests Fri Sep 28 19:41:00 2007 Jiri (George) Lebl * mpfr/*, configure.in, Makefile.am, src/Makefile.am: Remove the internal MPFR, this is just too much trouble to maintain here and MPFR is nowdays quite ubiquitous. * lib/combinatorics/factorial.gel, help/C/gel-function-list.xml: it's Pochhammer, not Puchhammer Fri Sep 28 03:19:50 2007 Jiri (George) Lebl * lib/combinatorics/misc.gel: add FrobeniusNumber and GreedyAlgorithm * src/funclib.c: fix vararg calls to the GCD and LCM aliases * src/geniustests.txt: add some tests * help/C/gel-function-list.xml: add help for FrobeniusNumber and GreedyAlgorithm * configure.in: raise version * help/C/*.xml, help/C/figures/*.eps: add eps figures so that postscript (and thus pdf by ps2pdf, docbook2pdf is broken now) output has figures Fri Mar 27 15:07:39 2007 Raivis Dejus * configure.in: Added Latvian Translation. Fri Mar 09 09:17:39 2007 Jiri (George) Lebl * src/calc.c: fix for platforms that don't have wordexp and use glob. Include the GLOB_NOCHECK flag to glob. Patch from Joerg Sonnenberger Fri Feb 02 10:10:19 2007 Jiri (George) Lebl * Release 0.7.7 Wed Jan 31 23:01:00 2007 Jiri (George) Lebl * src/graphing.c: use HUGE_VAL instead of 0.0 when we get an error, this is better in that it doesn't display anything rather then 0 when for example the return value is not real. Mon Jan 29 18:49:07 2007 Jiri (George) Lebl * src/gnome-genius.c: do what we do on inside program runs, when we do "load and run" in terms of printout on the console Mon Jan 29 16:53:24 2007 Jiri (George) Lebl * src/gnome-genius.[ch]: add "remember" settings to the gui and by default don't remember precision and output settings as those are most likely temporary. Also add "mixed fractions" option to the gui. Add a Help button to the settings dialog * help/C/prefs-display.xml, help/C/prefs-precision.xml, help/C/genius.xml: update for the above * help/C/Makefile.am: add gel-matrix-linalg.xml Mon Jan 29 13:52:33 2007 Jiri (George) Lebl * src/gnome-genius.c: don't set output style to normal before showing full answer, we want it in the current style Mon Jan 29 13:32:29 2007 Jiri (George) Lebl * help/C/genius.xml, help/C/gel-function-list.xml, help/C/gel-matrix-linalg.xml: minor updates, add skeleton "Linear Algebra" section * src/funclib.c, src/matrixw.c, src/gnome-genius.c, src/calc.h: update copyright strings Mon Jan 29 12:04:16 2007 Jiri (George) Lebl * src/gnome-genius.c: Add "Show Full Answer" menu item, always show the Programs menu and add a "Console" item to the programs menu Mon Jan 29 10:24:52 2007 Jiri (George) Lebl * lib/equation_solving/formulas.gel: Fix handling of real solutions for the cubic to avoid ugly expressions with small imaginary values where everything should be real. * src/geniustests.txt, src/longtest.gel: Fixup tests * help/C/gel-function-list.xml: small update to the formula entries Mon Jan 29 01:35:56 2007 Jiri (George) Lebl * src/funclib.c, src/matrixw.c: DiagonalOf now returns a column vector * lib/equation_solving/formulas.gel: Add QuarticFormula and use it in PolynomialRoots. Also return column vectors from QuadraticFormula, CubicFormula * lib/linear_algebra/linear_algebra.gel: add support for 4x4 matrices in Eigenvalues and always return column vector from that function * src/gnome-genius.c: add Next/Previous Tab menu item and accelerator * src/longtest.gel: test the quartic * help/C/gel-matrix-support.xml, help/C/gel-polynomials.xml, help/C/gel-function-list.xml: Update the documentation 2007-01-24 Pema Geyleg * configure.in: Added 'dz' to ALL_LINGUAS. Sat Jan 20 00:14:49 2007 Jiri (George) Lebl * help/C/gel-function-list.gel: fix unbalanced para Sat Jan 20 00:08:18 2007 Jiri (George) Lebl * lib/linear_algebra/linear_algebra.gel: Fix spelling, it's RayleighQuotient * lib/linear_algebra/linear_algebra.gel, lib/equation_solving/formulas.gel: Fixup CubicFormula to work correctly with complex coefficients and implement Eigenvalues for 3 by 3 matrices. * help/C/gel-function-list.xml, help/C/genius.xml: add a bunch of documentation to the function list and Planetmath and Mathworld links. * src/geniustests.txt, src/longtest.gel: add tests * add missing files to subversion Fri Jan 19 21:34:49 2007 Jiri (George) Lebl * lib/linear_algebra/linear_algebra.gel: add IsPositiveDefinite and IsPositiveSemidefinite * src/geniustests.txt: add tests * help/C/gel-function-list.xml: update for the above Sat Sep 02 11:27:01 2006 Jiri (George) Lebl * src/gnome-genius.c: add undo/redo capability * configure.in: raise version Mon Aug 28 12:47:44 2006 Jiri (George) Lebl * src/plugin.c, src/plugread.c, src/Makefile.am: Fix plugin reading. Fix the interface to be portable and append the proper extension on reading the plugin. Pass proper options to the linker on compiling the test plugin. * src/test.plugin.in: whack the extension * src/calc.c, src/gnome-genius.c, src/genius.c, src/graphing.c: Some portability fixes with respect to the path names Wed Aug 23 11:45:49 2006 Jiri (George) Lebl * src/gnome-geniuc.c: cosmetic update to about box * src/calc.h: add diactrical marks in Jiri in the copyright string Wed Aug 23 11:33:49 2006 Jiri (George) Lebl * src/gnome-genius.c: add Kai as documentor in the about box and add the diactrical marks in Jiri in the about box Sat Aug 19 11:59:04 2006 Jiri (George) Lebl * src/lexer.l: fix flex braindamage with respect to yywrap function Tue Aug 15 11:05:54 2006 Jiri (George) Lebl * Release 0.7.6.1 Tue Aug 15 10:29:40 2006 Jiri (George) Lebl * src/mpwrap.c: catch all cases of complex result from power function and fix unstable (possibly hung) newton's alg implementation of rational exponentiation and replace with converting to float and using mpfr_pow. * src/geniustests.txt: add tests Sun Aug 13 14:15:42 2006 Jiri (George) Lebl * Release 0.7.6 Sat Aug 12 20:31:24 2006 Jiri (George) Lebl * src/funclib.c, src/mpwrap.h: add RiemannZeta and GammaFunction (at least for real values) * lib/linear_algebra/special_matrices.gel, lib/linear_algebra/misc.gel: Add MakeVector (like octave vec) CommutationMatrix (octave commutation_matrix) and ToeplitzMatrix (octave toeplitz) * help/C/gel-function-list.xml: add docs for the above * configure.in: raise version * src/geniustests.txt: add tests for new functions Wed Aug 09 12:40:28 2006 Jiri (George) Lebl * help/C/genius.xml, help/C/gel-plotting.xml: add a plotting chapter. * help/C/figures/*.png: New plotting figures plus update the old main window figure Wed Aug 09 11:07:12 2006 Jiri (George) Lebl * lib/equation_solving/formulas.gel: Add QuadraticFormula, CubicFormula and PolynomialRoots functions * help/C/gel-function-list.xml: Add docs. Tue Aug 08 11:00:19 2006 Jiri (George) Lebl * src/calc.c, src/eval.c, src/funclib.c, src/matop.c: Fix many complex number comparisons to fix computation of complex matrix determinants and other instances where gaussian elimination was used. Also for the polynomial functions and handling of booleans and a few more. * src/genius.c: Add --exec option, follow gnu semantics for the long options with arguments * src/geniustest.pl: Use --exec option instead of echo * src/geniustests.txt: Add tests for the complex number handling fixes Tue Aug 01 19:48:10 2006 Jiri (George) Lebl * Release 0.7.5 Tue Aug 01 19:48:10 2006 Jiri (George) Lebl * src/gnome-genius.c: use same geometry setup as gnome-terminal (resize in terms of the terminal characters) I don't have time to debug vte and new versions crap out when we don't set this up. * po/POTFILES.in, Makefile.am, mpfr/Makefile.am, mpfr/tests/Makefile.am, src/Makefile.am, help/C/Makefile.am: fix build/distcheck for new autotools * help/omf.make, help/xmldocs.make: update to newest versions from gnome-common to fix distcheck Tue Jul 18 20:35:23 2006 George (Jiri) Lebl * src/eval.c: fix matrix expanding Mon Jul 17 01:55:30 2006 George (Jiri) Lebl * lib/linear_algebra/*.gel: Added QRDecomposition, SesquilinearForm, SesquilinearFormFunction, killed GramSchmidtDot, DotProduct is now the actual dot product, not the hermitian product. InnerProduct now calls HermitianProduct not DotProduct. GramSchmidt, Projection, VectorAngle have the inner product as an optional argument. GramSchmidt normalizes the vectors. NullSpace optimized a bit, now no longer calls ColumnSpace which was not needed. Fixed OuterProduct to actually return the outer product not just the 1,1 element. Killed HermitianProduct which moved to being C based * src/funclib.c, src/funclibhelper.cP: implemented HermitianProduct in C, optimized StripZeroColumns in the case when there are no columns to strip * src/matrixw.[ch], src/funclib.c: remember that we did rref so that we don't do it several times (speeds up NullSpace a bit) * combinatorics/factorial.gel, lib/linear_algebra/*.gel, statistics/basic.gel: use zeros instead of SetMatrixSize * help/C/gel-function-list.xml: update Fri Jul 14 18:00:39 2006 George (Jiri) Lebl * configure.in, mpfr/*: update mpfr to 2.2.0 and require 2.2.0 in the configure script * src/mpwrap.[ch], src/funclib.c: use mpfr_pow_z and whack our own stupid version. Add CatalanConstant and atan2 functions * help/C/gel-functions-list.xml, lib/functions/elementary.gel: document CatalanConstant, atan2, and change all "reverse function" to "inverse function". Fri Jul 14 01:00:03 2006 George (Jiri) Lebl * src/funclib.c: Add NextCombination function * src/geniustests.txt: add tests * help/C/gel-function-list.xml: add docs for NextCombination Thu Jul 13 17:50:28 2006 George (Jiri) Lebl * configure.in, autogen.sh, acconfig.h, src/Makefile.am: use automake 1.9 to fix the po directory mess and other things. * mpfr/*: apparently automake gets update in cvs for this Thu Jul 13 13:42:25 2006 George (Jiri) Lebl * src/calc.h, src/*.c: update copyright strings for 2006 Thu Jul 13 13:33:12 2006 George (Jiri) Lebl * src/funclib.c, lib/linear_algebra/linear_algebra.gel, lib/linear_algebra/subspaces.gel: Add CountZeroColumns function which is quicker then stripping zero columns and then counting the remainder. Further port StripZeroColumns to C to make it a lot more efficient. This also optimizes things such as nullity, rank, ColumnSpace, NullSpace and related. * src/geniustests.txt: Add some tests * help/C/gel-function-list.xml, help/C/genius.xml: Update the manual, and expand a bunch of entries for a bunch of functions. Thu Jul 13 10:53:54 2006 George (Jiri) Lebl * lib/sets/basic.gel, src/funclib.c, src/eval.[ch]: Implement IsIn, Intersection and SetMinus in C for speed * lib/linear_algebra/subspaces.gel, lib/linear_algebra/linear_algebra.gel: Minor speed improvements to NullSpace * src/geniustests.txt: add some more tests Thu Jul 13 08:56:10 2006 George (Jiri) Lebl * src/eval.c: fix leaks * src/matrix.c: zero out matrix data to init it * lib/linear_algebra/linear_algebra.gel: simplify NonPivotColumns a tiny bit Thu Jul 13 01:32:55 2006 George (Jiri) Lebl * src/eval.[ch], src/matrixw.c, src/matrix.c: Fix a whole bunch of leaks and memory corruption problems especially with respect to loops and matrixes. * src/eval.c: fix evaluation of matrix entries to be a little faster perhaps (don't ever push value nodes) and evaluate matrix entries in the most obvious order rather then our previous very weird order. * src/geniustest.txt: add a test Wed Jul 12 14:26:35 2006 George (Jiri) Lebl * src/gnome-genius.c: fix error in using the file chooser * src/eval.c: fix compiler warning * ve/*, configure.in, **/Makefile.am: use a private copy of slightly cut down vicious-extensions to make things work 2006-04-17 Kjartan Maraas * configure.in: Remove obsolete entry for no_NO. * po/no.po: And the translation. 2005-12-06 Kjartan Maraas * configure.in: Add nb to ALL_LINGUAS. 2005-08-24 Pawan Chitrakar * configure.in: Added ne in ALL_LINGUAS Thu Aug 11 11:51:10 2005 George Lebl * src/gnome-genius.c: make the unsaved work quit dialog work for window closing as well (it just asked but quit anyway in that case). 2005-08-08 Chao-Hsiung Liao * configure.in: Added "zh_TW" to ALL_LINGUAS. Fri Jul 22 10:12:09 2005 George Lebl * Release 0.7.4 Thu Jul 21 16:56:44 2005 George Lebl * help/C/gel-function-list.xml: minor fix * help/C/genius.txt: generate Thu Jul 21 16:54:09 2005 George Lebl * src/graphing.c: Add parametric plots, add LinePlotParametric and LinePlotCParametric * src/mpwrap.[ch]: add mpw_get_complex_double * help/C/gel-function-list.xml: add LinePlotParametric and LinePlotCParametric Fri Jun 24 17:39:48 2005 George Lebl * src/symbolic.c, src/geniustests.txt: allow differentiation of E_CALL's where first arg is a function, not an identifier, for example this is what we get on SymbolicDerivative(sin*cos) Fri Jun 24 17:21:22 2005 George Lebl * src/symbolic.c, src/eval.c, src/geniustests.txt: Some more simplification special casing, doing several tan derivatives is now much faster and results in shorter answers, yay. Also run the evalnode hook so that we can interrupt a symbolic derivation which is taking too long. Fri Jun 24 16:23:01 2005 George Lebl * src/longtest.gel: add many derivative tests * src/funclib.c: add IsFunctionOrIdentifier * lib/calculus/differentiation.gel: accept identifiers for all functions and not just functions * help/C/gel-function-list.xml: add IsFunctionOrIdentifier * src/eval.c: Allow identifier + string to make a string * src/symbolic.c: fix some derivative definitions * src/eval.c: fixup nargs when creating new operator nodes in simplification Fri Jun 24 15:42:09 2005 George Lebl * src/mpwrap.[ch]: add symbolic equality (respects types) * src/eval.[ch]: further simplification of multiplication and addition, still crap, but lesser crap now. I need to make this more general and nicer. Wed Jun 22 13:19:39 2005 George Lebl * src/eval.[ch], src/symbolic.c: Add more aggressive "simplification" and use it on the result of derivation (for example multiplication by 1 or addition of 0 and such are now whacked) Fri Jun 17 09:56:34 2005 George Lebl * src/parse.y: fix precedence of .+ and .- and also move 'call' in precedence further to the top to bind more closely then = make things like "x = f call (x)" work as you would expect. * lib/misc/misc.gel: add ComposePower * help/C/gel-functions-list.xml: add ComposePower docs * src/eval.c: in try_to_do_precalc, whack all double negations * src/symbolic.c: fix derivation of divisions, and make ln have derivative of "x^-1" rather then "1/x" as we can take multiple derivatives better there since we have no real simplification Thu Jun 16 18:14:39 2005 George Lebl * lib/symbolic/differentiation.gel: Add SymbolicNthDerivative, SymbolicNthDerivativeTry, SymbolicTaylorApproximationFunction * configure.in, help/C/gel-function-list.xml, help/C/genius.xml: Document the above * src/geniustests.txt: add some tests Thu Jun 16 17:40:29 2005 George Lebl * configure.in: raise version number * src/complil.c: compile symbolic_id and id for function nodes and symbolic_id for global functions. * src/lexer.l, src/calc.c, src/eval.[ch], src/parse.y: SYNTAX CHANGE: there is now an elt by elt addition and subtraction (.+ and .-) which act like the old +,- when adding scalar to a matrix. The +,- now interpret A+x as A+x*I if A is a square matrix, and elt by elt if A is a vector (row or column), else they error out. * src/funclib.c: the PolyToFunction now does 1 instead of x^0, since this now works correctly for matrices. * src/lexer.l, src/calc.c, src/parse.y: make evalstack into gel_parsestack since the naming was totally off * src/dict.h: on decompilation errors don't assert crash, just give null as the function body. * src/geniustests.txt: add some tests and fix some old ones with respect to the above syntax change. Wed Jun 15 09:09:20 2005 George Lebl * src/symbolic.c, src/calc.[ch], src/dict.c, src/eval.c, src/structs.h: Fixup symbolic derivation to work inside functions, preserve a "symbolic id" for the symbolic derivation when setting variables to functions. Also add SymbolicDerivativeTry function to try symbolic derivative quietly. * src/geniustests.txt: add tests * lib/calculus/differentiation.gel: Add Derivative function which tries symbolic first and numerical as a backup * help/C/gelfunction-list.xml: add SymbolicDerivativeTry and Derivative Tue Jun 14 10:23:51 2005 George Lebl * src/symbolic.[ch], src/eval.[ch]: Add a primitive SymbolicDerivative function. Doesn't yet even get even all the simple cases (such as functions with more then one argument) but should be semi usable for simple things. Of course there is no simplification of expressions in genius so things can get wild a bit. * src/graphing.c, src/funclib.c: adjustments because of the above * src/calc.c: remove an extra parenthesis in function printing output. * src/geniustests.txt: add tests for SymbolicDerivative * help/C/gel-function-list.xml: Add SymbolicDerivative blurb 2005-04-01 Steve Murphy * configure.in: Added "rw" to ALL_LINGUAS. Thu Mar 24 10:17:35 2005 George Lebl * Release 0.7.3 * help/C/gel-function-list.xml: fix xml errors Thu Mar 24 10:14:38 2005 George Lebl * help/C/*.xml: update, add the graphing functions and add lots more references to planetmath and mathworld also document wait and NewtonsMethodPoly * configure.in: raise version * src/*.[ch]: update copyright notices Thu Mar 24 08:31:36 2005 George Lebl * mpfr/*: Update to mpfr 2.1.1 to use a nice released version rather then CVS Wed Mar 23 10:56:37 2005 George Lebl * src/gnome-genius.[ch]: add blinking cursor selection * lib/functions/complex_numbers.gel: added and commented out a bad implementation of zeta and gamma functions, must do this properly at some point Mon Mar 21 15:42:06 2005 George Lebl * src/mpwrap.c: some allocation fixes, the float formatting is incredibly evil! Mon Mar 21 14:48:28 2005 George Lebl * src/genius.c, src/gnome-genius.c: set default precision to 128 bits, it's faster and most people don't need more. Also save the precision in config. Further sanitize things from the command line and the config, to avoid using bogus values. Mon Mar 21 11:18:57 2005 George Lebl * src/mpwrap.[ch]: move the whole gmp structures into the MpwRealNum struct to avoid another pointer. Further avoid initializing a new number just to throw it away if possible and be smarter with initialization types. Fix some leaks and errors. Fri Mar 18 18:03:30 2005 George Lebl * src/mpwrap.ch: fixup memory usage by whacking the duplicate pointers in the real number structure. * src/eval.c: fix leaks on elt by elt matrix operations Fri Mar 18 11:48:14 2005 George Lebl * src/mpwrap.[ch]: whack the unneeded type field from mpw_t to save a byte per number and probably make alignment nicer and all that. Fri Mar 18 11:11:07 2005 George Lebl * src/graphing.c, src/funclib.[ch]: Allow drawing longer lines with LinePlotDrawLine by passing in a matrix of points. Tue Feb 08 18:18:18 2005 George Lebl * src/graphing.c: deal with closing of the graph window when we're in the middle of plotting without crashing Thu Jan 06 13:28:12 2005 George Lebl * lib/functions/elementary.gel: add NewtonsMethodPoly Thu Jan 06 10:06:10 2005 George Lebl * src/graphing.c, src/funclib.[ch], src/Makefile.am, src/funclibhelper.cP: make some functions/macros sharable by either making them extern or putting them inside a includable file * src/graphing.c: make LinePlotWindow parameter behave correctly with respect to the new drawing routines and read color and thickness style from the argument list of LinePlotDrawLine * src/funclib.c: add 'wait' function * src/gnome-genius.h, src/calc.h: move the interrupted extern declaration Tue Jan 04 18:21:36 2005 George Lebl * src/graphing.c: add LinePlotClear and LinePlotDrawLine, but these are subject to change of course Tue Jan 04 10:57:18 2005 George Lebl * configure.in: use an existing mpfr function to check for the library, DUH! * src/genius.c: include term.h AFTER everything since that happens to redefine the word 'tab' for it's own very evil purposes on some systems (some ncurses version or some such) Thu Dec 23 11:03:27 2004 George Lebl * Release 0.7.2 * help/*: Fix the makefiles Thu Dec 23 10:45:11 2004 George Lebl * help/C/*.xml: some fixes and use := rather then = in places Thu Dec 23 10:22:12 2004 George Lebl * lib/linear_algebra/linear_algebra.gel: optimize and shorten LUDecomposition * src/calc.c: fix output for @(,n) and @(n,) * lib/equation_solving/diffeqs.gel: Add EulersMethod and RungeKutta for simple single ode solving * help/C/*.xml: update * src/geniustests.txt: updated * src/gnome-genius.c: add "New" toolbar item Wed Dec 22 18:01:51 2004 George Lebl * src/funclib.c, help/C/*.xml: Fix then vs. than typos Wed Dec 22 16:58:23 2004 George Lebl * src/graphing.c: add y= before the entries to make it clear what to type in. * src/eval.c: when we encounter a reference to a non-existant variable make the variable in the current context. * src/eval.c: fix errors in expensive matrix multiply, now doesn't crash! * lib/linear_algebra/linear_algebra.gel: Add LUDecomposition function from David W. Hutchison * help/C/*.xml: update Wed Dec 22 14:47:00 2004 George Lebl * help/C/*.xml, help/C/genius.txt: make the text version and fix some typos Wed Dec 22 14:42:01 2004 George Lebl * lib/number_theory/misc.gel: Added MoebiusMu from Alessio Frusciante * lib/number_theory/misc.gel: Fixed parameters of IsNthPower to be less confusing * lib/combinatorics/factorial.gel: Nicer, less heavy argument testing * src/funclib.c: Added IsNonNegativeInteger and fix EulerConstant helpstring * src/geniustests.txt: added some tests * help/C/*.xml: updated for the above functions and a lot more. Add a bunch of references to MathWorld (should add planetmath, but that's currently down, will do later) Wed Dec 22 11:43:42 2004 George Lebl * mpfr/*: update to newest mpfr Wed Dec 22 11:21:02 2004 George Lebl * src/gnome-genius.c, src/eval.[ch], src/calc.c: get similar ids if function is not documented and check for the function being documented in the gui help on function dialog. Wed Dec 22 11:03:34 2004 George Lebl * src/gnome-genius.c, src/calc.[ch], src/funclib.c: some help fixes, remove the old manual code and add a "Help on Function" menu entry. Wed Dec 22 10:24:05 2004 George Lebl * help/C/*.xml: update the documentation a bit. Tue Dec 21 18:53:54 2004 George Lebl * help/C/gel-operator-list.xml: make the list of operators an actual list * help/C/gel-separator.xml,genius.xml: reorganize a tiny bit Tue Dec 21 18:13:52 2004 George Lebl * configure.in, Makefile.am, src/gnome-genius.c, help/*: Docbookize the manual, patch and docbook by Kai Willadsen * src/funclib.c, src/calc.c: correct some help problems * src/gnome-genius.c: don't show the "manual" menu entry since we now just show the help files directly. * src/calc.[ch], src/genius.c, src/gnome-genius.c, src/funclib.c: Display the help functions and the manual Fri Dec 17 09:58:48 2004 George Lebl * src/lexer.l: remove the warning killing hack since it doesn't work Thu Nov 11 10:01:31 2004 George Lebl * lib/statistics/basic.gel: Add GaussFunction (normal curve), GaussDistribution (area under the normal curve) Tue Nov 09 11:28:26 2004 George Lebl * src/calc.[ch], src/compil.c, src/eval.c, src/funclib.c, src/mpwrap.c, src/mpzextra.c: Fix issues with strtok reentrancy by using strtok_r, should fix some issues with the library functions where rationals were used. Also the evalhook calling logic is changed a tiny bit * src/funclib.c, lib/calculus/integration.gel: Make CompositeSimpsonsRule built in for speed, fix issues when n is odd (add 1 in that case) and add CompositeSimpsonsRuleTolerance Fri Nov 05 2004 Amanpreet Singh Alam * ALL_LINUGUS: pa (Punjabi) Language is added Wed Sep 22 11:05:07 2004 George Lebl * src/mpwrap.[ch]: fix mpw_uncomplex which could undercount the zero allocation * lib/combinatorics/misc.gel: Fix Hofstadter and optimize it * lib/linear_algebra/linear_algebra.gel: Don't use Transpose but .' operator that should be slightly faster Wed Sep 22 09:40:10 2004 George Lebl * src/compil.c, src/eval.[ch], src/funclib.c, src/parse.y, src/parseutil.h, src/structs.h: Treat strings as constants (don't copy) thus getting speedups up to 10% (very optimistic) if running loops or things where strings are used. Thu Sep 16 18:22:28 2004 George Lebl * src/mpwrap.c: fix round, ceil and trunc, plus round (0.5) should really return 0 not 1 * src/geniustest.pl, src/geniustests.txt: fixes plus some new tests Thu Sep 16 17:54:27 2004 George Lebl * lib/functions/elementary.gel: optimize erf a bit and fix it's comment * configure.in, Makefile.am, src/Makefile.am, mpfr/*: Include a recent CVS version of mpfr to avoid all the mess. We can still compile with an outside version if needed though. * src/funclib.c, src/genius.c, src/gnome-genius.c, src/mpwrap.[ch]: remove all non-mpfr stuff since we always have mpfr now which removes quite a bit of ugliness. Plus remove some other cruft as well. Tue Sep 14 17:14:53 2004 George Lebl * src/funclib.c, lib/number_theory/misc.gel: make Divides built-in which should make a number of things faster. Also add ExactDivision function using gmp's divexact which does exact division much faster once we know that the two numbers actually divide one another (it returns garbage otherwise). * src/geniustests.txt: add some tests Tue Sep 14 16:31:51 2004 George Lebl * lib/number_theory/misc.gel: Use ApplyOverMatrix(2) on a few functions, and add BernoulliNumber * src/geniustests.txt: Add test for BernoulliNumber Tue Sep 14 09:57:15 2004 George Lebl * configure.in: some cleanup, and set the extra optimization flags directly rather then use -O3 since then -O2 would just reset thing, so we again optimize nicely. * src/calc.[ch], src/funclib.c, src/genius.c, src/graphing.c: Implement translation of help texts coming from the standard library. Still error texts are not translated, will need to figure that out. User generated help strings are gotten with "genius --gettext" similarly to the "--compile" option. * Makefile.am, lib/Makefile.am, po/POTFILES.in: create and use lib/library-strings.c * lib/equation_solving/find_root.gel: Move FIXME's from help text to comment * src/genius.c: add --version option * gtkextra/gdmpsfont.c: fix memleak Thu Aug 26 09:26:43 2004 Takeshi AIHANA * configure.in: Added 'ja' (Japanese) to ALL_LINGUAS. Fri Aug 20 10:57:58 2004 George Lebl * genius.spec.in, pixmaps/48x48/Makefile.am: install 48x48 icon in the proper place Fri Aug 20 10:35:25 2004 George Lebl * configure.in, Makefile.am, src/gnome-genius.desktop.in, pixmaps/*: Added an icon Eugenia Loli-Queru (eloli@hotmail.com) Thu Aug 19 16:38:14 2004 George Lebl * Release 0.7.1 Thu Aug 19 16:15:32 2004 George Lebl * lib/calculus/differentiation.gel, lib/calculus/limits.gel: Optimize and clean up the limitting/differentiating functions a bit, and add NumericalLeftDerivative and NumericalRightDerivative * lib/misc/misc.gel, src/funclib.c, src/eval.[ch]: Make Identity built-in for speed. Also allow for stealing out of the parameter list and use this technique in some places to further increased speed (though this is a very small gain as numbers/matrices are already copy-on-write, so we just avoid copying some structures) * src/mpwrap.c: fix mpw_uncomplex and allow setting without resorting to mpw_uncomplex * lib/equation_solving/find_root.gel, lib/linear_algebra/linear_algebra.gel, lib/number_theory/primes.gel, lib/calculus/integration.gel, lib/calculus/integration.gel, lib/combinatorics/factorial.gel, lib/combinatorics/recursive_sequences.gel, lib/equation_solving/find_root.gel, lib/functions/complex_numbers.gel, lib/functions/delta.gel, lib/linear_algebra/bilinear_forms.gel, lib/linear_algebra/linear_algebra.gel, lib/linear_algebra/misc.gel, lib/number_theory/modulus.gel, lib/number_theory/primes.gel, lib/sets/basic.gel: tiny bit of optimizations and gel style cleanup * lib/calculus/sums_products.gel: Fix InfiniteProduct2, change behaviour of InfiniteSum/Product(2) no longer takes tolerance argument but has similar parameters like the limiting operations with SumProductTolerance, SumProductSFS, SumProductNumberOfTries * src/geniustests.txt: add more tests Thu Aug 19 12:02:28 2004 George Lebl * src/eval.c: be even nicer in mem debug friendly mode and some cleanup * src/mpwrap.c: a bit of cleanup * lib/calculus/differentiation.gel, lib/calculus/limits.gel, lib/combinatorics/recursive_sequences.gel: Fixup limit/derivative functions. Use better name NumericalDerivative instead of NDerivative (but keep that as an alias) and add help strings to everything (yay 100% of library functions have the simple help strings now) * src/geniustests.txt: add tests for the NDerivative/IsContinuous/IsDifferentiable functions. Also update tests for the change in parenthesis printing Fri Aug 13 10:13:46 2004 George Lebl * src/graphing.c: fix crash of LinePlot() when no arguments are passed by requiring at least one argument (same for SurfacePlot) Thu Aug 12 18:15:20 2004 George Lebl * genius.spec.in: applied patch from Florin Andrei to export custom compiler flags to the build and to require vte-devel for the build * configure.in: add -O3 in front of CFLAGS not after to allow custom CFLAGS to override this * gtkextra/gtkplot3d.h: fix prototype, thanks to Erik Sigra for noticing Thu Aug 12 10:48:59 2004 George Lebl * src/graphing.c: run EPS output through ps2epsi if found which adds a bitmap preview. The preview kind of sucks but it's better then nothing. Fix EPS/PS export for gtk older then 2.4. Add PNG export. * src/graphing.c, src/calc.c: remove some parenthesis from output where it doesn't make sense (still some places are overzelaous). Also when graphing from a dialog take the entered string as the function string to display in the plot. Makes things even nicer. * src/gnome-genius.c: change the "translator_credits-..." to "translator-credits" which is apparently more translation software friendly as it doesn't contain underscores. Plus a hack to get the old translation to not lose credits Tue Aug 10 17:30:32 2004 George Lebl * Release 0.7.0 * genius.spec.in: fixed up for the update-mime-database stuff Fri Aug 06 17:41:47 2004 George Lebl * src/graphing.c: change some labels to make more sense. On top view hide z axis temporarily. Swap X and Y and rotate a bit to get that mirror effect fixed. Fri Aug 06 11:59:39 2004 George Lebl * src/graphing.c: simple rotations of the 3d plot and add labels to axis. It still bugs me that the X axis is reversed from what I would normally want (right to left rather then left to right, it's a mirror image so it's impossible to fix just by rotation), oh well. Thu Aug 05 15:39:17 2004 George Lebl * gtkextra/gtkplot.c: replace sprintf with g_snprintf Thu Aug 05 02:14:15 2004 George Lebl * src/graphing.c: when plotting surfaces, the expression may return something which has different number of arguments, so allow rerunning the function if this happens Thu Aug 05 01:28:43 2004 George Lebl * gtkextra/Makefile.am: fix building by adding all the needed include dirs Thu Aug 05 01:21:03 2004 George Lebl * src/graphing.c: wrap both long description labels on the create plot dialog and align them left. Add mnemonics to the notebook tabs Thu Aug 05 00:52:15 2004 George Lebl * src/mpwrap.c: sin, cos, sinh, cosh were wrong for complex arguments Wed Aug 04 23:07:46 2004 George Lebl * src/graphing.c: make window titles saner Wed Aug 04 22:33:46 2004 George Lebl * src/gnome-genius.[ch], src/graphing.c: some cleanup on the line plotting stuff, don't draw outside the box, etc... * src/graphing.c, src/mpwrap.[ch]: Add surface plotting, only one function at a time and can take one or two arguments (complex number or x and y). Added both a dialog entry method and a SurfacePlot function * configure.in: now it merits to raise version to 0.7.0 Wed Aug 04 17:27:08 2004 George Lebl * gui/gnome-genius.[ch], gui/graphing.c: implement the printing and ps/eps export at least in a rudimentary way. * gui/gnome-genius.[ch]: fix the "file exists" dialogs, they were reversed on save, and on load the "can't open" dialog was wrong. Wed Aug 04 17:27:06 2004 George Lebl * gtkextra/*, configure.in: import some files from gtkextra-2 for the GtkPlot* and friends * src/gnome-genius.[ch], src/graphing.c: whack the old graphing nonsense and use gtkextra gtkplot. Right now it has no added functionality over the old plotting, but it looks different. However we will have PS/EPS export and printing pretty easily now and further we can now easily also add parametric and surface plots and flows and such. Thu Jul 29 09:55:10 2004 George Lebl * src/eval.[ch]: Allocate all memory for GelETree's, and the various loop structures in long continuous spaces with the structures aligned properly. This seems to have little impact on speed but it has some impact on memory usage, about 20% in a test that uses deep recursion. As a side effect the free lists are no longer purged. Also fix the MEM_DEBUG_FRIENDLY mode to actually free memory unless the MEM_DEBUG_SUPER_FRIENDLY is on. * configure.in: automatically turn on -O3 for gcc, this seems to make a very minor dent in performance. -fomit-frame-pointer does better, but we really don't want no debugging on this code. Wed Jul 28 18:26:49 2004 George Lebl * src/Makefile.am: add longtest.gel to EXTRA_DIST * src/calc.[ch]: change the way that gel_runexp behaves to avoid extra copying of whole expressions all the time. it now eats the expression and thus is consistent with the other calls such as gel_evalexp_parsed. * src/parseutils.c, src/eval.[ch]: plug a small leak on boolean conversion * src/eval.[ch]: Add whole bunch of debugging functionality especially for debugging memory. Keep list of new trees in between expressions to test for memory leaks when EVAL_DEBUG is defined and we are MEM_DEBUG_FRIENDLY * src/eval.c: fix leak in the if operation when the main tree was WHACKARGed and we'd forget that Wed Jul 28 16:09:23 2004 George Lebl * src/gnome-genius.desktop.in: Move Name/Comment to the end to allow quicker (perhaps) parsing, add Mime-Type key. * lib/statistics/basic.gel: fix StandardDeviation * eval.c: fix nargs problem when making binary operation functions * calc.c, eval.[ch], genius.c, gnome-genius.c, parse.y, parseutil.[ch], structs.h: Fix pushing multiple operator arguments onto the stack in the correct order. Compact all the separator operations into one with many arguments during parsing, this saves copying. Add a GE_WHACKARG flag to the stack flags and whack the node after use, this saves some memory which got wasted by keeping things in memory because of the separator compactification. Also make the memory operations much nicer when MEM_DEBUG_FRIENDLY is defined. * src/mpwrap.c: work around a mpfr problem where random values from mpf_urandomb can be negative sometimes. Also cache the random state to avoid reiniting/reseeding it all the time. * src/geniustests.txt, src/longtest.gel: add a long test file Thu Jul 15 16:44:40 2004 George Lebl * src/calc.c, src/compil.c, src/dict.c, src/eval.[ch], src/funclib.c, src/graphing.c, src/matop.[ch], src/matrixw.[ch], src/mpwrap.[ch], src/parse.y, src/parseutil.[ch], src/plugin.c, src/structs.h, src/util.[ch]: Add native boolean types. Make all boolean expressions return these, add the true and false functions and aliases, add IntegerFromBoolean and IsBoolean functions * lib/functions/delta.gel, lib/linear_algebra/linear_algebra.gel, lib/misc/misc.gel, lib/number_theory/misc.gel, lib/number_theory/modulus.gel, lib/number_theory/primes.gel: Update for the boolean types, use where appropriate whack the old true/false functions. * src/geniustests.txt: update tests to expect booleans where appropriate * doc/manual.txt: updates for the booleans and some other cleanups and updates * configure.in: raise version since the compiled format changed. Mon Jun 14 10:27:59 2004 George Lebl * Release 0.6.1 * genius.spec.in: fix Mon Jun 14 10:20:26 2004 George Lebl * src/calc.c: do the nice fraction printing for mixed fractions * src/mpwrap.c: minor cleanup Fri Jun 11 18:06:54 2004 George Lebl * src/dict.[ch], src/eval.c: add suggestion logic on undefined identifiers, a little screwy code, but somewhat works. * src/calc.c: when we don't do mixed fractions try to be nice about printing larger fractions. Kind of on crack, we should do it in more cases. Fri May 28 10:02:19 2004 George Lebl * src/gnome-genius.c: The default font size for the console is now deduced from the window for size. Also unless the font is actually set, the change is not written to preferences. The console is set to UTF-8 always since we always feed it utf-8 strings which fixes non-utf-8 locales. Plus a small amount of cleanup. Thu May 27 16:11:07 2004 George Lebl * genius.xml, Makefile.am: add genius to the shared mime info db Thu May 27 15:39:48 2004 George Lebl * src/genius-readline-helper.c, src/gnome-genius.[ch]: Add Black on white mode for those that don't see white on black too well. Start using vfs, but we still don't use it for "loading", nor do we setup the filechooser or whatnot, must figure out how to do that. Accept file drops on the window and open those files. * Makefile.am, genius.keys, genius.mime: temporary placeholders, need to add this to the shared mime info stuff or whatnot. Wed Apr 21 21:18:00 2004 Evandro Fernandes Giovanini * configure.in(ALL_LINGUAS): Added "pt_BR" (Brazilian Portuguese). Thu Apr 15 20:43:00 2004 Adam Weinberger * configure.in: Added en_CA to ALL_LINGUAS. Thu Apr 15 14:19:40 2004 George Lebl * lib/combinatorics/factorial.gel, lib/combinatorics/misc.gel, lib/linear_algebra/linear_algebra.gel, lib/number_theory/factoring.gel, lib/number_theory/modulus.gel, lib/number_theory/primes.gel, src/calc.c, src/eval.c, src/funclib.c, src/gnome-genius.c, src/matrixw.c, src/mpzextra.c: fix some typos in strings. Mostly s/then/than/. Tue Apr 13 11:17:34 2004 George Lebl * src/graphing.c: move the plot dialog buttons to be in HIGgy order Fri Apr 09 18:34:58 2004 George Lebl * INSTALL.MacOSX: Mac OS X install instructions from Linc Davis * configure.in: Changed help for --enable-gnome and --enable-gtksourceview (changed to --disable-* since they're on by default) Tue Apr 06 15:41:18 2004 George Lebl * src/util.[ch], src/mpwrap.c: whack the custom mem-allocation cruft and let gmp use its own allocation. Doesn't seem to improve speed by much at all, but reduces cruft. Sun Apr 04 22:30:12 2004 George Lebl * src/geniustests.txt: added some tests that went wrong at some point long time ago Sun Apr 04 17:39:55 2004 George Lebl * lib/functions/complex_numbers.gel: add cis function. Also fix the MoebiusMapping* definitions * lib/functions/Makefile.am: forgot to include complex_numbers.gel in the library DOH! this actually adds all those functions promised in 0.6.0. Affects: Argument, arg, Arg, MoebiusDiskMapping, MoebiusMapping, MoebiusMappingInftyToOne, MoebiusMappingInftyToZero, MoebiusMappingInftyToInfty. Sun Apr 04 17:27:33 2004 George Lebl * src/graphing.c: when parsing errors occur print them before saying we couldn't parse anything. Sun Apr 04 17:19:08 2004 George Lebl * src/eval.c: when 'i' is used uninitialized then suggest using '1i' instead Sun Apr 04 16:35:38 2004 George Lebl * src/genius.c, src/gnome-genius.c: Make the console version be translated though there are still utf-8 issues. Also the welcome string is now slightly different since gettext seemed to have a fit with the escapes and all that. Sun Apr 04 15:52:00 2004 George Lebl * src/calc.[ch], eval.c, src/funclib.c, src/graphing.c, src/matop.c, src/mpwrap.[ch], src/plugin.c: Cleanup and update the copyright strings, add "gel_" to the print_etree functions. * src/eval.c: fix "number <=> string" which was returning completely wrong answers * src/geniustests.txt: add tests for comparison 2004-04-03 Gareth Owen * configure.in: Added en_GB to ALL_LINGUAS Tue Mar 30 15:08:05 2004 George Lebl * Release 0.6.0 * src/mpwrap.c: define G_MAXINT32 if not defined to allow compilation with older glib Tue Mar 30 14:56:27 2004 George Lebl * src/mpwrap.c: further optimization of the mp* free lists gets some improvement mainly for floats. Plus fix the mpf free list when changing precision. Tue Mar 30 11:36:13 2004 George Lebl * src/mpwrap.[ch]: remove the NATIVEINT type and use mpz which is slightly slower, however cache inited mpz/mpq/mpf(r) types which makes the code actually run a LOT faster then with NATIVEINT, at least for the testcases I considered. This also reduces code complexity by quite a bit (removed 600+ loc) and furthermore optimizes both mpq/mpf performance too. Also some minor cleanup and leak fixes. * src/geniustests.txt: add some more random tests that popped up during testing of the above Tue Mar 30 09:52:39 2004 George Lebl * lib/functions/Makefile.am, lib/functions/kernels.gel: Add PoissonKernel, DirichletKernel and FejerKernel * lib/functions/complex_numbers.gel: Add MoebiusDiskMapping, MoebiusMapping, MoebiusMappingInftyToOne, MoebiusMappingInftyToZero and MoebiusMappingInftyToInfty * src/calc.c, src/genius.c: fix compilation of parameters, avoid compilation of built in parameters plus minor cleanup 2003-03-28 Kostas Papadimas * configure.in (ALL_LINGUAS): Added "el" (Greek). Thu Mar 25 16:52:47 2004 George Lebl * configure.in, src/Makefile.am: Allow compilation without GNOME * src/util.h: fixup headers * doc/manual.txt: minor fixes/additions * README, NEWS: update Thu Mar 25 10:05:57 2004 George Lebl * configure.in, src/*.[ch]: don't link the 'genius' binary with any gui libs, still the configure/build process requires gnome always, but I'm working on that. Fix up the includes and add a genius-i18n.h header * src/graphing.c, src/mpwrap.c, src/funclib.c: use the G_MAX/MIN macros instead of limits.h for I suppose better portability * src/genius.c: use g_print* variants instead of printf and fprintf Wed Mar 24 17:10:55 2004 George Lebl * src/calc.c: fix printing of functions Wed Mar 24 16:39:18 2004 George Lebl * src/eval.[ch], src/calc.c: Add basic arithmethic operations on functions, for example sin^2 will make a new function that does sin(x)^2, so you can do say "LinePlot(sin^2)", or more uselessly "sin^2 call (x)" * src/geniustests.txt: update the tests a bit * src/funclib.c, src/eval.[ch]: Add "function return" to some 1 value functions such as exp, so that e.g. exp(sin) returns a function that does exp(sin(x)). Currently supported are: conj, sin, cos, sinh, cosh, tan, atan, sqrt, exp, ln, log2, log10, round, floor, ceil, trunc, float, Numerator, Denominator, Re and Im. * src/graphing.c: Fix LinePlot function (we messed up the replot data), also if the function returns functions, then evaluate those instead (don't recurse further though) Wed Mar 24 11:04:26 2004 George Lebl * doc/manual.txt, lib/linear_algebra/*.gel: fixup some documentation * lib/**/Makefile.am: fix installation of loader.gel into the correct directory (not into /bin/ whoops :) Tue Mar 23 15:21:12 2004 George Lebl * src/lexer.l, src/parse.y, src/eval.[ch], src/calc.c: Add := (E_DEFEQUALS) operator which is never translated to ==. Also use E_DEFEQUALS on function definitions always so that they don't get translated (that would just be plain confusing). * src/geniustests.txt: add tests for := * doc/manual.txt: update for the := operator Tue Mar 23 14:35:09 2004 George Lebl * src/Makefile.am, src/gnome-genius.[ch], src/calc.c, src/eval.c: Cleanup, print version in title, make titles more sane + some string changes, a bit of renaming, add gnome-genius.h header to export the current setup and update some copyright notices * src/graphing.c: fixup wrt the header, add status icons next to the entries, make enter do the plot, add "Fit Y axis" function to the plot window, errors that occur when we invoke the engine from the graph window now always go to dialogs, And fix graphing the identity (that is, just "x") Tue Mar 23 11:14:02 2004 George Lebl * src/gnome-genius.c, src/graphing.[ch]: Add a plot dialog where it is easier to enter functions to plot and specify range and add menu items and toolbar item for this. * src/graphing.c: Handle errors better when calling a function instead of just treating them as 0. Also fixup errors from the LinePlot function to not affect the replot data until we are successful in collecting new data. * src/dict.[ch]: minor cleanup Mon Mar 22 13:23:46 2004 George Lebl * src/graphing.c: add scale to graphs, allow zooming in and zooming out, fix a bunch of issue wrt interruptions, window closing and range specification. Fri Mar 19 17:42:38 2004 George Lebl * src/gnome-genius.c: properly interrupt on Ctrl-C and also whack the readbuf* which weren't used anymore Fri Mar 19 16:52:18 2004 George Lebl * src/gnome-genius.c: use GtkFileChooser if compiled with a new enough gtk+, but still allow compilation with GtkFileSelector in case old gtk+ is used. Also fix up some strings. Finally add .gel as the file extension on Save As.. if no extension was used. * configure.in: fixup a bit Fri Mar 19 11:11:01 2004 George Lebl * src/gnome-genius.c: apparently separator setting is just plain ignored for message dialogs so don't set it (avoids unsightly GTK+ warnings with new GTK+) Fri Mar 19 11:05:00 2004 George Lebl * src/eval.[ch], src/calc.c: translate e^x to exp(x) since that is more precise * src/mpwrap.c: better error reporting for inverses, better random number seeding, fix of mpw_randint function if rop==op, and minor general cleanup * configure.in: raise version Wed Mar 10 21:22:00 2004 Alastair McKinstry * configure.in: Added ga to ALL_LINGUAS (Irish). Tue Jan 20 15:56:30 2004 George Lebl * lib/linear_algebra/special_matrices.gel: add rotation matrices Wed Dec 31 14:41:47 2003 George Lebl * Release 0.5.7.1 * src/gnome-genius.c: fix spinners being too thin Wed Dec 31 12:04:56 2003 George Lebl * Release 0.5.7 Wed Dec 31 11:40:12 2003 George Lebl * src/mpwrap.c: mpwfr_pow is kind of broken in gmp 4.1.2 at least (seems fixed in newer mpfr, will have to do some sort of a check in the future). * lib/functions/elementary.gel: add ErrorFunction/erf * lib/functions/sums_products.gel: add InfiniteProduct and InfiniteProduct2 * src/geniustests.txt: add some tests * Makefile.am: add intltool-modules/XML/Parser/Style/OrigTree.pm to EXTRA_DIST * configure.in: raise version, whack the DEPRECATED things Fri Dec 12 10:31:55 2003 George Lebl * lib/linear_algebra/subspaces.gel, lib/linear_algebra/linear_algebra.gel: Fix Kernel([0]) (it gave correct answer, but also gave errors) and do some cleanup as well Wed Oct 29 16:59:11 2003 George Lebl * src/mpwrap.c: allow very very very large powers of 1,-1,1i and -1i. also ui divisions should return an int if the denominator is 1 Tue Oct 28 10:15:10 2003 George Lebl * src/mpwrap.c: be nicer in integer powers of pure imaginary integers/rationals Thu Oct 16 10:21:38 2003 George Lebl * Release 0.5.6 * src/Makefile.am: fix build 2003-10-15 Jordi Mallach * configure.in (ALL_LINGUAS): Added "ca" (Catalan). Tue Oct 07 15:08:52 2003 George Lebl * configure.in: raise version * configure.in, src/calc.c, src/compil.c, src/funclib.c, src/gnome-genius.c, src/graphing.c: Whack use of all deprecated stuff. Also make the graphing canvas use monospace 10 and not 12 Tue Oct 07 10:04:59 2003 George Lebl * configure.in, Makefile.am, src/Makefile.am, src/plugin.c, src/plugread.c, src/genius.c: Kill gnome dependency in the command line genius by using ve-config and vicious-extensions. Only codewise though, it is still linked to gnome. Though that should not be too hard to fix and non-gnome non-gui builds may again be possible. Not to mention that startup of non-gui code is faster meaning faster testing and less other whacky code to screw up valgrind runs etc... * src/mpwrap.c: fix corruption with respect to extra types when rop == op1 or op2 and reenable the no_convert extra type optimization. Also fixes a leak of gmp internal data on all divisions and gcd and mod operations. Mon Oct 06 18:02:07 2003 George Lebl * src/mpwrap.c: revert the change (sort of) something is wrong, and I don't have time to investigate Mon Oct 06 17:47:26 2003 George Lebl * src/mpwrap.c: during some operations we were unnecessairly converting the rop only to wipe it, so add a no_convert version of the extra type function (affected are division and mod in case rop was of a different type) Mon Oct 06 17:00:38 2003 George Lebl * lib/misc/misc.gel: add Identity function * lib/calculus/differentiation.gel, lib/calculus/limits.gel, lib/functions/numerical.gel: Tolerances should be floats really * configure.in, lib/Makefile.am, lib/sets/Makefile.am, lib/sets/basic.gel, lib/misc/misc.gel: Move the set theoretic functions from misc to new dir called 'sets' * lib/functions/numerical.gel: add aliases Sign and AbsoluteValue * src/calc.c, src/compil.c, src/dict.h, src/eval.c, src/funclib.c, src/graphing.c, src/matrixw.h, src/mpwrap.[ch], src/mpzextra.c, src/structs.h: Some minor cleanup all over the place, plus more reordering and other struct tricks to reduce footprint of common structures even further. 2003-10-05 Danilo Šegan * configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS. Fri Sep 26 18:46:32 2003 George Lebl * src/structs.h, src/eval.c: shave 4 bytes off the GelETree (at least on x86) The savings will be invisible on archs with alignment. So we're down at 20 bytes per GelETree node (plus any data of course) 2003-09-01 Metin Amiroff configure.in: Added "az" in ALL_LINGUAS. Sun Aug 31 23:27:00 2003 Wang Jian * configure.in: Added "zh_CN" to ALL_LINGUAS. Thu Aug 28 23:29:12 2003 George Lebl * src/calc.[ch], src/dict.[ch], src/eval.c, src/funclib.c, src/genius.c, src/gnome-genius.c, src/inter.c, src/lexer.l, src/mpwrap.c, src/structs.h: Can't sleep so doing general cleanup such as using standard argument checking for functions, fixing up error output, converting to gel_errorout/infoout, and s/int/gboolean/ where appropriate. Also fixed up the function structure to save sizeof(int) bytes per function. Thu Aug 28 17:51:35 2003 George Lebl * src/funclib.c: move stuff to generalized function parameter handling as possible. Should make translations easier. Also accept identifiers in places where it makes sense to (SetHelp, protect, and such) and add a bunch of G_UNLIKELY/G_LIKELY's Wed Aug 27 18:06:05 2003 George Lebl * src/dict.c: initialize the function structures correctly. Thu Aug 21 12:21:16 2003 George Lebl * src/gnome-genius.c: also set the PRIMARY and not just CLIPBOARD on the special copy items Sat Aug 16 18:58:56 2003 Guntupalli Karunakar * configure.in: Added "hi" for Hindi in ALL_LINGUAS. Fri Aug 15 02:39:47 2003 George Lebl * src/mpwrap.c, src/eval.c, src/calc.c: go wild with G_LIKELY and G_UNLIKELY, some cleanup, fix two very minor leaks. Mon Jul 28 10:35:26 2003 George Lebl * configure.in, acconfig.h: check for ncurses as well if libtermcap isn't found * src/genius.c: use GETTEXT_PACKAGE and not PACKAGE Thu Jul 24 17:24:59 2003 George Lebl * src/calc.c: I hate it when I apply half of a patch. in any case yet again from the FreeBSD ports: the glob usage was wrong Thu Jul 24 17:22:52 2003 George Lebl * src/calc.c: when wordexp is missing and we use glob but we weren't including glob.h (from the FreeBSD ports) Thu Jun 12 14:17:01 2003 George Lebl * src/gnome-genius.c: load programs from command line Thu Jun 12 14:09:34 2003 George Lebl * configure.in, src/Makefile.am, genius.lang, src/gnome-genius.c: add optional GtkSourceView support and add highlighting with that. I should figure out the mime type mess and install all this stuff so that even gedit can get highlighting for gel files. Wed Jun 11 11:27:18 2003 George Lebl * src/genius-readline-helper.c, src/inter.c: change directory in the readline helper, and update the helper completion routine to match inter.c Fri Jun 06 16:25:15 2003 George Lebl * src/gnome-genius.c: the preference dialog has hig ordered buttons and all the other dialogs also now lack the separator thingie. Mon Jun 02 13:32:12 2003 George Lebl * Release 0.5.5 * src/gnome-genius.c: when we go to the last error there was an "off by one" error Mon Jun 02 13:18:53 2003 George Lebl * src/geniustests.txt: add test for sqrt with mod * src/gnome-genius.c: print line number in the statusbar, and on error place the cursor at the point of the last error (kind of a hack, should somehow mark all errors) Mon Jun 02 10:13:13 2003 George Lebl * src/eval.c: fix resetting the modulo after recursive eval call (was a crash) * src/funclib.c, src/calc.[ch]: a lot of messages are now unified for ease of translation and argument checking is done with helper routines. Also when the sqrt is called with mod try calling the SqrtModPrime or erroring out. Sun Jun 01 09:14:06 2003 George Lebl * lib/number_theory/modulus.gel: add SilverPohligHellmanWithFactorization function which does the discrete log but knowing the factorization of q-1, so if you do a bunch of discrete logs this can be a lot faster. Sat May 31 15:11:04 2003 George Lebl * lib/numbertheory/modulus.gel: add IsPrimitiveModWithPrimeFactors, which is like IsPrimitiveMod, but we already put in the prime factors of q-1, so this is faster if we are testing a whole bunch of numbers or if we know factorization of q-1 beforehand. Use this for the primitive element finding routines. Also add SqrtModPrime which computes square roots modulo a prime. * src/gnome-genius.c: Fix saving and opening of files (DOH!) also set the filename and the directory each time when openning the fileselector so that you don't have to retype everything. * src/calc.c, src/funclib.c: rename an easter egg to prevent name conflict Fri May 30 17:13:43 2003 George Lebl * src/gnome-genius.c: print out errors/infos after program run. DOH! Wed May 28 16:57:25 2003 George Lebl * Release 0.5.4 * src/gnome-genius.desktop.in: add Office category keyword Wed May 28 16:37:12 2003 George Lebl * src/gnome-genius.c: implement save and save as (at least somewhat sanely). Cut/Copy/Paste are now implemented for the program panes. If we are leaving the program the 'are you sure' message takes into account if there are any unsaved progs. Wed May 28 13:32:39 2003 George Lebl * src/gnome-genius.c: smarter dialog behaviour for open and load, and add a reload menu item and also do some de-deprecation Wed May 28 10:17:10 2003 George Lebl * src/gnome-genius.c: cleanup the program stuff a bit, add a programs menu and make selected program stick even if you switch to console to be able to run multiple times easily. Tue May 27 17:47:25 2003 George Lebl * src/gnome-genius.c: implement open file, mark changed files as changed, the toolbar has now open and not load and load label changed to "Load and Run" to be clear Tue May 27 16:59:54 2003 George Lebl * src/Makefile.am, src/lexer.[lh], src/calc.[chl, src/gnome-genius.c, src/genius.c: The my_yy_ functions are now gel_lexer_ functions and lexer.l is installed. * src/gnome-genius.c: Implement tabs as programs using text view, and allow running of these tabs as programs with output to main console. No openning/saving functionality yet. Tue May 27 14:18:52 2003 George Lebl * lib/misc/misc.gel: add Compose function to compose two functions Tue May 27 14:07:16 2003 George Lebl * lib/number_theory/modulus.gel: add IndexCalculus, IndexCalculusPrecalculation, FindPrimitiveElementMod and FindRandomPrimitiveElementMod functions that I did for class a while back. Tue May 27 13:11:00 2003 George Lebl * src/mpwrap.[ch]: fix the gmp accessors * src/mpzextra.[ch], src/funclib.c, lib/number_theory/factoring.gel: snarf the Pollard-Rho implementation from gmp examples and use it for a built in version of Factorize, and whack the gel one and also whack FactorizeLoopMax as it doesn't make sense now. Also add possibility to interrupt the primality tests (except when inside mpz_millerrabin). * src/eval.c: if an interruption is raised during a built in function call, then raise exception. Wed May 21 16:42:05 2003 George Lebl * src/mpwrap.c: the int power functions were stupid and weren't working for greater then ulong powers anyway. So for the floating one convert to a float if the power is too big, for the integer one just make an error, since the number would be too big to be useful (as an integer of course) Wed May 21 16:06:28 2003 George Lebl * src/mpwrap.[ch]: allow access to the low level gmp types * lib/number_theory/primes.gel, src/mpzextra.[ch], src/mpwrap.[ch], src/funclib.[ch], src/Makefile.am: rework the prime testing stuff. Use the mpz MillerRabin test, and also snatch the strong pseudoprime test from gmp and make it internal and whack StrongPseudoprimeSub. MillerRabinTest now takes the number of reps as an argument (an integer) and not an epsilon! IsPrime is rewritten internally as well for speed using first mpz_probab_prime_p for the trial factoring, and then strong pseudoprime tests for 2,3,5,7 and then some Miller-Rabin for good measure. Whack the IsPrimeLoopMax and PrimeProbabilityEpsilon parameters and add IsPrimeMillerRabinReps parameter. Whack the IsPrimeProbability since it doesn't fit with the above and IsPrime really does that. MillerRabinTestSure is also now internal. * src/mpwrap.[ch], src/funclib.c: the EulerConstant is now taken from MPFR if available instead of compiling in the long string version and reading that each time. * src/funclib.c: a little bit of argument checking cleanup. * lib/functions/elementary.gel, src/mpwrap.c: Use MPFR for log10 and log2, or do some these functions internally with ln, also add lg as an alias to log2 * src/geniustests.txt: fix a wrong test (misread strong pseudoprime and pseudoprime. 341 is the first pseudoprime to base 2, not strong pseudoprime to base 2. Also add some tests, and remove tests for IsPrimeProbability. Mon Apr 28 18:04:00 2003 George Lebl * src/eval.c: allow null for the set in the "for in" type loops to just mean empty * lib/misc/misc.gel: Implement MakeSet, Union, Intersection and document SetMinus and IsIn * src/funclib.c: add a "Set Theory" category for help Mon Apr 28 17:33:37 2003 George Lebl * src/funclib.c, src/eval.[ch], src/structs.h: implement the no_mod_all_args flag. Add flag setting function to the standard lib. Use the no_mod_all_args flag on builtin C functions where it makes sense (I, zeros, ones, rand, randint) Also implement the GetCurrentModulo() function to get the modulo of the calling context. * lib/functions/elementary.gel: the log function only takes an optional base argument and without it acts as ln. Also we look at the modulo of the calling context and call DiscreteLog in case there is one so "log(13,6) mod 229" works as it should. Fri Apr 25 16:41:13 2003 George Lebl * src/compil.c, src/funclib.c, src/structs.h: allow mod propagation into function, at least for built in ones and propagate into ref, rref, and SolveLinearSystem * src/eval.[ch], src/matop.[ch]: attempt at mod awaring the gauss function but it fails horribly unless we are in a finite field. * src/eval.c: fix a very small leak in loops and a very large leak in evaluating and/or expressions * src/parse.y: mod now binds tighter then logical operators to make things as "if a == b mod n and a == c mod n then ..." work properly also call binds tighter then the logical operators then * src/calc.c: when function is undocumented, print at least a prototype * src/matop.c: gauss correctly returns TRUE/FALSE even if stopsing is FALSE * src/funclib.c: add SolveLinearSystem function that solves general linear systems easily. zeros and ones can now take only one argument and that just gives a row vector. Mon Apr 21 20:23:01 2003 George Lebl * src/funclib.c: elements, rows, columns accept null and treat it as 0x0 matrix Wed Apr 16 11:14:32 2003 George Lebl * src/compil.c: kill useless assert * lib/calculus/integration.gel: add NumericalIntegral which calls some integral rule with steps as set by the parameters Wed Apr 16 11:03:54 2003 George Lebl * lib/calculus/integration.gel: add MidpointRule to make quicker calculations Mon Apr 14 14:35:39 2003 George Lebl * src/parse.y: allow return after comma to break a long vector input * lib/number_theory/misc.gel: add ConvertToBase and ConvertFromBase Mon Mar 24 22:07:33 2003 George Lebl * lib/number_theory/modulus.gel: add reference for the DiscreteLog algorithm, add IsPrimitiveMod function Mon Mar 24 21:54:11 2003 George Lebl * lib/number_theory/misc.gel, lib/number_theory/modulus.gel, src/geniustests.txt: Implemented CRT (ChineseRemainder) and DiscreteLog (Silver-Pohlig-Hellman for F_q where q a prime) for homework. Should really be built in, but for now we have to get by with this. Mon Mar 24 15:04:43 2003 George Lebl * src/eval.c: mod matrices after primitives, and add a fixme, most operations already do modding so this is not very efficent, but at least it's correct for now. Fixes for example "-[1] mod 2" Mon Mar 24 14:31:29 2003 George Lebl * src/dict.c, src/eval.c: fix var substitution crash, and add some memory debug friendliness Mon Mar 10 13:10:57 2003 George Lebl * lib/number_theory/primes.gel, lib/number_theory/misc.gel: add AreRelativelyPrime function and fix the IsStrongPseudoprime function * src/geniustests.txt: add some tests * lib/number_theory/misc.gel: add LeastAbsoluteResidue function Mon Mar 10 11:49:22 2003 George Lebl * src/funclib.c, src/eval.[ch], src/mpwrap.[ch]: Add IsEven and IsOdd using the native gmp functions for speed improvement. Also add StringToASCII, ASCIIToString, AlphabetToString and StringToAlphabet functions to make doing some cryptography stuff easier. * lib/number_theory/misc.gel: whack IsEven and IsOdd Mon Mar 10 10:55:14 2003 George Lebl * lib/number_theory/primes.gel: add MillerRabinTestSure, which tests primes in O((log n)^5) time that is a deterministic algorithm (given Generalized Riemann Hypothesis is true) Mon Mar 10 10:44:40 2003 George Lebl * lib/number_theorey/primes.gel: improve on the Miller-Rabin test to optimize things a bit and add IsStrongPseudoprimeSub which must already get a and t where n-1 = 2^a * t, so that this doesn't have to be computed over and over. Wed Mar 05 14:14:41 2003 George Lebl * Release 0.5.3 Wed Mar 05 14:13:03 2003 George Lebl * src/eval.c, src/parseutil.c: when expanding matrices treat nulls as empty matrices to allow easy appending, prepending and all such stuff. * src/calc.c: be anal on printing numbers with powers and factorials so that the output is genius parsable Sat Mar 01 10:03:32 2003 George Lebl * src/funclib.c: on setting FloatPrecision actually break e and GoldenRatio caches to recalculate (reread) these Sat Mar 01 09:55:23 2003 George Lebl * src/mpwrap.c: rational powers now use mpz_root to return an integer if possible. * lib/number_theory/misc.gel: remove SymbolicNthRoot and do smarter IsNthRoot given the new usage of powers Fri Feb 28 13:32:46 2003 George Lebl * src/graphing.c: play with graph colors, make graph lines 1.5 thick, add a plot progress indicator * src/mpwrap.c: fix conversions to int and rational from float * doc/manual.txt: add a note about unitary minus Fri Feb 28 11:55:15 2003 George Lebl * src/genius.c, src/gnome-genius.c: raise precision back to 256 bits as mpfr is blazing fast on that as well. Fri Feb 28 11:11:56 2003 George Lebl * src/mpwrap.[ch], configure.in, src/Makefile.am: If MPFR is present use it for functions like sin, cos, atan, pow, log, exp. This increases speed of those operations by a LOT (simple test gave about 10 times the speedup). Still you can use genius without mpfr, since it usually doesn't seem to be present in GMP packages since packagers tend to not add --enable-mpfr (I don't know why it's not the default). In any case since mpfr is a static library so far I think builds that I make on my system will work for people with the standard GMP package from redhat. * src/gnome-genius.c, src/genius.c: add a note in case MPFR isn't compiled in to the copyright string so that people know if they are running without it. Thu Feb 27 18:07:58 2003 George Lebl * src/mpwrap.c, src/lexer.l, src/parse.y, src/eval.[ch], src/calc.c: Make UMINUS bind less then factorials and powers and have factorials bind tighter then powers but then fixup the tree to make things like -1^k still come out as (-1)^k (but -a^k is -(a^k)). One of those WYMIWYG things. * src/graphing.c: fixup labels a bit * src/calc.c: when printing a power be specific about how to parse any UMINUS Thu Feb 27 16:56:58 2003 George Lebl * src/graphing.[ch], src/eval.[ch]: Copy the token into functions when we eval them to be able to identify them. And label functions on the graph by their token or their body if it is less then 64 characters long. Also fix problems with too ofset plot window. The default plotwindow is now a parameter called LinePlotWindow. * src/genius.c, src/gnome-genius.c: make default precision 128 since it will make things faster. Currently ^float and exponentials and logs are utterly slow, even in lower precision. Thu Feb 27 10:17:08 2003 George Lebl * src/gnome-genius.c, src/graphing.c, src/inter.c: graph progressively to show how far we got. Fix a long standing bug with getting an unusable prompt if interrupt is hit without anything running. Thu Feb 27 09:55:11 2003 George Lebl * src/graphing.c: make graph window a dialog, allow stopping/interrupting of the graph, run the event loop often. * src/gnome-genius.c: don't allow executing code while somehting else is running (for manual, answer copying and such) Thu Feb 27 08:01:41 2003 George Lebl * src/graphing.c: allow graphing more then one function and fix an error with too high function values. Wed Feb 26 14:19:23 2003 George Lebl * src/graphing.c: plot every 2 pixels and optimize things a bit Wed Feb 26 13:53:38 2003 George Lebl * src/mpwrap.[ch]: add ability to get doubles * src/graphing.[ch], src/gnome-genius.c, src/Makefile.am: Add very very rudimentary graphing support with the LinePlot function. Doesn't make nice graphs but should be enough for "seeing how f : R -> R" looks. Wed Feb 26 10:06:11 2003 George Lebl * src/genius.c, src/gnome-genius.c: Add Copy Answer As Plain/LaTeX/MathML/Troff menu items (to make the gui version at least somewhat more useful then the console version) and add a default answer to avoid errors on copy before anything has been entered. * doc/manual.txt: update to add the mathml mode Wed Feb 26 09:27:24 2003 George Lebl * src/calc.c: improve a teeeny bit on the mathml mode. Produces Content MathML but I can't get mozilla to render mathml for me properly so I can't test this. Tue Feb 25 10:27:47 2003 George Lebl * src/genius.c, src/gnome-genius.c, src/calc.[ch], src/funclib.c: Add an experimental MathML output mode (for matrices only for now). Can't quite get it to work though. Mon Feb 24 15:58:47 2003 George Lebl * src/mpwrap.c: add locale.h * src/gnome-genius.c: allow quitting while calculations are running and add a "really want to quit dialog" to be replaced by "really want to quit without saving state" dialog at some point in future. * src/eval.c: some leak hunting (still there are leaks) * lib/number_theory/misc.gel: better help string for Divides * lib/number_theory/primes.gel: make the MillerRabin config param 10 times larger for IsPrime, 10^-100 should be plenty small Fri Feb 21 14:05:10 2003 George Lebl * src/funclib.c, src/mpwrap.[ch]: add IsGaussInteger, IsComplexRational and IsPositiveInteger, also rename g to Gravity * lib/number_theory/primes.gel: Add MillerRabinTest and use it in IsPrime * lib/number_theory/*.gel: simplify argument checking in bunch of places * src/calc.c, src/compil.[ch]: When reading compiled file allow arbitrarily long record lines Thu Feb 20 00:56:49 2003 George Lebl * lib/number_theory/factoring.gel: it's too late and I can't think and I commit things with syntax errors Thu Feb 20 00:23:57 2003 George Lebl * lib/number_theory/factoring.gel: implement FermatFactorization, also use it as a last resort for the Factorize Wed Feb 19 14:13:22 2003 George Lebl * src/funclib.c: better prime caching, cache up to 30000 primes, rename prime to Prime, add g, the gravity constant and add EulerConstant (or gamma) good for about 9k digits, doesn't calculate we have an actual representation in memory. * lib/number_theory/*.gel: Add RemoveFactor, add some help strings remove SymbolicSquareRoot (sqrt does the job well) Wed Feb 19 09:54:03 2003 George Lebl * src/gnome-genius.c: add Edit menu with Copy and Paste. * src/mpwrap.c: minor fix for rational power, and do possibly symbolic square root in case the denominator is 2, 4, 8 or 16 (should do more perhaps) Sun Feb 16 11:06:50 2003 George Lebl * src/mpwrap.[ch], src/eval.c, lib/number_theory/misc.gel: use the powm function for power mod to make the modulo arithmetic actually more useful. Also implement numerator and denominator for complex rational values. Sat Feb 15 17:31:52 2003 George Lebl * lib/number_theory/factoring.gel: increase the Factorize maximum since we don't have any fun factoring algs so the trials is the only thing we do. Plus it's relatively fast. Fri Feb 14 17:46:19 2003 George Lebl * doc/manual.txt: update * configure.in: raise version Fri Feb 14 17:27:02 2003 George Lebl * src/mpwrap.[ch], src/calc.c, src/parse.y, src/lexer.l: Better printing of complex numbers still, add mode for ()i which makes the expr imaginary (multiply by i really), and use this for printing imaginary mixed fractions to look better. Also don't print parenthesis on toplevel complex numbers to look nicer and pretty print now does toplevel. Also don't toplevel on printing a polynomial and when in toplevel mode don't print whole numbers since that's the whole point of FullExpressions * src/eval.c: fix crash on setting parameters if there is an exception * doc/manual.txt: update Fri Feb 14 16:10:30 2003 George Lebl * lib/number_theory/*.gel: add MaximalPrimePowerFactors, PrimeFactors, fix Factors and add CombineFactorizations, also make a better implementation of EulerPhi using Factorize, which is a LOT faster then our previous braindead one. * src/util.[ch]: fixup the my_realloc to just use g_realloc. and other minor cleanups * src/mpwrap.[ch], src/lexer.l, calc.c, compil.c: rework printing of complex numbers, add latex/troff mode for fractions. Allow rational/integer complex numbers. Add fixmes for den/num functions for complex numbers. For pure imaginary numbers just print the imaginary part without parentheses. * src/geniustests.txt, src/geniustest.pl: add more tests, update for changes and printout error inputs if any at the end * doc/manual.txt: update for the complex numbers * src/parse.y: ':' now binds less then the standard arithmetic operators to fix stuff like foo@(2:a-1) to actually mean foo@(2:(a-1)) and not foo@((2:a)-1) Wed Feb 12 16:52:48 2003 George Lebl * src/parser.y: allow more matlabish notation for getting whole rows and columns such as a@(3,:). Still we do not support the form a@(3,5:) and such. Should not be hard to add though. Mon Feb 10 09:23:28 2003 George Lebl * genius.spec.in: damnit why did I forget libexec ... Mon Feb 10 08:57:04 2003 George Lebl * Release 0.5.2 Mon Feb 10 08:16:59 2003 George Lebl * configure.in, Makefile.am, po/POTFILES.in: Fixed gettext/intltool stuff to be correct and actually should work now, add missing files Sun Feb 09 19:23:11 2003 George Lebl * src/calc.c: be consistent with which parentheis are printed in latex mode since I always use [] and not () because I think that looks neater, and since genius is my program I can make it print whatever I want. And damn is this nice for typing homework :) Fri Jan 31 09:29:36 2003 George Lebl * src/funclib.c: no need to mod after ref or rref since those will in fact be handled by after function moding. Wed Jan 29 14:01:54 2003 George Lebl * src/eval.[ch], src/funclib.c: mod matrices after gauss (gauss is too stupid to mod ... no pun intended). Allow negative powers of matrices and division in mod mode. * src/geniustests.txt: add some more tests * doc/manual.txt: update a bit Wed Jan 29 10:20:57 2003 George Lebl * src/Makefile.am, src/gnome-genius.desktop.in: updated the .desktop to be correct, add categories and install in the vfolder location and all that good stuff Mon Jan 27 14:30:40 2003 George Lebl * doc/manual.txt: a small update Mon Jan 27 14:13:43 2003 George Lebl * configure.in, Makefile.am, doc/Makefile.am, doc/manual.txt, README: Move the manual to doc/manual.txt and install that in the data directory * src/calc.c, src/funclib.c, src/gnome-genius.c, src/genius.c: add manual function to display manual, improve initial message, info boxes in gui version now use textview and open up being rather large, also always use the infobox for menuitems even if console info printing is selected. * lib/calculus/limits.gel, lib/calculus/sums_products.gel, lib/linear_algebra/misc.gel, lib/number_theory/factoring.gel, lib/number_theory/modulus.gel, lib/statistics/basic.gel: Some naming fixes and a whole bunch of new help strings * src/calc.[ch], src/eval.c, src/mpwrap.c, src/funclib.c, src/genius.c, src/gnome-genius.c, src/matop.c: Rename error var type to GeniusError, on protected id set tell us which id was it. * src/calc.c: don't display Ans as undocumented and add some initial info to help and translate some strings * src/geniustests.txt: add some more tests * src/calc.h: up year in copyright string Sun Jan 26 12:40:49 2003 George Lebl * src/parse.y: fix precedence of function definition to be FUNCTION and not EQUALS Sat Jan 25 15:59:58 2003 George Lebl * lib/equation_solving/find_root.gel, lib/misc/misc.gel: A bit of renaming and add some help strings * src/calc.c, src/geloutput.[ch], src/genius.c, src/gnome-genius.c, src/structs.h: Fixup help output a bit, and can get column count of an output even if full expressions is true * configure.in: raise version Sat Jan 25 15:14:18 2003 George Lebl * lib/number_theory/primes.gel, src/eval.c, src/funclib.c, src/mpwrap.[ch]: Use gmp functions to implement NextPrime, IsPrimeProbability, LucasNumber and ModInvert. Also implement modular inversion when we encounter a ration in modular mode and fix bug with pushing the modulus. * src/geniustests.txt: more tests Fri Jan 24 14:16:08 2003 George Lebl * lib/number_theory/modulus.gel: add implementation of EulerPhi * lib/number_theory/primes.gel: some parameter checking Thu Jan 09 15:38:45 2003 George Lebl * src/geloutput.[ch], src/calc.c: fix help output a bit to obey terminal size * lib/combinatorics/factorial,gel: add Subfactorial * lib/combinatorics/misc.gel: whack some unimplemented functions * src/funclib.c: add GoldenRatio * src/gnome-genius.c: actually use the font we set Thu Jan 09 11:14:19 2003 George Lebl * src/calc.[ch], src/funclib.c, src/genius.c, src/gnome-genius.c, src/inter.c, src/lexer.l, src/mpwrap.[ch], src/testplugin.c: Some internal cleanup, prefix some functions with gel_, add a general printout infos function. Whack the help entry in the menu since there is no help, and add a warranty item that runs the warranty function. Also fix the hiding of the plugins menu. Thu Jan 09 10:40:42 2003 George Lebl * src/plugread.c, src/plugin.h, src/gnome-genius.c, src/test.plugin.in: Add a Hide= entry in the plugin description and if true don't show the plugin in the gui. Also if the plugin menu is empty, then hide the whole toplevel menu. Wed Jan 08 13:37:09 2003 George Lebl * src/Makefile.am, src/gnome-genius.c: move the helper program to libexec * src/plugin.[ch], src/plug_api.h, src/Makefile.am, src/gnome-genius.c, src/calc.c, src/plugread.[ch], src/testplugin.c, src/genius.c: attempt to make the plugin stuff a bit more usable and implement the save state and restore state * src/calc.c, src/inter.c: use nicer colors on gui version * src/gnome-genius.c: fix saving of preferences, port the error/info dialog to new gtk * src/eval.c, src/mpwrap.c, src/matrixw.c, src/lexer.l, src/parse.y: fix warnings * configure.in: properly enable warnings Tue Jan 07 18:05:08 2003 George Lebl * src/plug_api.h: minor fixes and a note about the state functions not really working * src/testplugin.c: implement some more functionality including adding functions etc... * src/gnome-genius.c: some delete/bs fiddling, still not working right for me though. Also changed the logic for the fifo creation * src/calc.c: fix plugin command to avoid an infinite input loop Tue Jan 07 16:28:34 2003 George Lebl * configure.in: require vte since libzvt is broken and all that * src/calc.c: fix green color in help * src/genius-readline-helper.c, src/gnome-genius.c: port to vte since libzvt is just giving me fits and we'll all use vte sooner or later * src/Makefile.am, src/gnome-genius.c: rename the readline helper to avoid a hang in case we find an old readline helper hanging around Fri Jan 03 11:27:21 2003 George Lebl * Release 0.5.1 Fri Jan 03 11:23:38 2003 George Lebl * configure.in: increase version and fixup * src/matop.c: stop being confused about REF definition and make the pivots 1 again * src/mpwrap.c: Fix two errors pointed out by Kai Arstila . First fix rounding when first digit is rounded. Second fix arctan by using an implementation by Guillermo Ballester Valor which I found on the net. Thu Dec 19 15:12:49 2002 George Lebl * src/eval.h, src/structs.h, src/eval.c, src/calc.c: start adding some polynomial handling code. Not much though. Thu Dec 05 10:13:36 2002 George Lebl * lib/linear_algebra/linear_algebra.gel: add function for eigenvalues, currently only for 2x2 and for triangular matrices as special cases. Sat Nov 23 10:13:15 2002 George Lebl * lib/linear_algebra/*.gel: add RaleighQuotient, and reverse the direction of the vandermonde matrix so that we fit with how we are doing polynomials * src/eval.c: fix modular arithmetic on single values, and fix modular arithmetic on matrices * src/funclib.c: cache identity matrices * src/matop.c: fix REF by not reducing the pivots Fri Nov 01 17:20:38 2002 George Lebl * Release 0.5.0 Fri Nov 01 14:22:49 2002 George Lebl * src/matrixw.c, src/mpwrap.c, src/plugin.c: Some leak hunting, probably many leaks still left Fri Nov 01 11:58:39 2002 George Lebl * src/funclib.c: add a Combinations and Permutations function. Also fix checking for integers if complex numbers are passed * lib/linear_algebra/linear_algebra.gel, lib/linear_algebra/misc.gel: Whack GAMMA (use Combinations name), and fix some other naming, fix complex DotProduct add InnerProduct alias, switch arguemnts on JordanBlock, add OuterProduct of vectors, clean up norms to reduce it to 2 functions * src/eval.c, src/matop.[ch], src/structs.h: Implement basic modular arithmetic. Not currently too smart but usable for basic modulo operations. Wed Oct 30 15:40:09 2002 George Lebl * src/eval.c: fix optimization of the matrix expansion for 1x1 matrices Wed Oct 30 15:37:24 2002 George Lebl * lib/linear_algebra/misc.gel: Submatrix functions always return a matrix * src/dict.[ch], src/calc.c, src/eval.[ch], src/funclib.c, src/compil.c, parseutil.c, structs.h: don't do local variable substitution on function nodes. Rather push them onto a special stack (this bit is ugly) and then add a special dictionary to the function on context pop with the local vars. This should work a lot nicer then the replacing that was going on before. Wed Oct 30 11:27:40 2002 George Lebl * src/calc.c, src/eval.[ch], src/funclib.c, src/lexer.l, src/parse.y, src/matrixw.[ch], src/parseutil.[ch]: Add the : operator like matlab has and accept vectors rather then just ranges for indexes of matrices. Also add IndexComplement to the builtin functions * src/gnome-genius.c: minor cleanup * src/geniustest.pl, src/geniustests.txt: update test suite * lib/*/*.gel: update for the new syntax Wed Oct 23 21:59:46 2002 George Lebl * lib/linear_algebra/linear_algebra.gel: fix said stupid tests Wed Oct 23 21:56:28 2002 George Lebl * lib/linear_algebra/linear_algebra.gel: some stupid testing functions such as IsNormal and IsUnitary and such Wed Oct 23 21:34:43 2002 George Lebl * lib/linear_algebra/linear_algebra.gel: some renaming add a nicer Norm function (does LpNorm or L2Norm if no p specified) Wed Oct 23 20:56:11 2002 George Lebl * src/calc.c: whack restriction on desc string Wed Oct 23 20:52:33 2002 George Lebl * src/matop.c, src/matrixw.c: Fix integer/rational caching * src/funclib.c: make gcd and lcm take multiple arguments or a vector (or matrix). Also rename PerfectSquare and PerfectPower to IsPerfectSquare and IsPerfectPower * lib/number_theorey/*.gel: use the perfect functions above and whack IsSquare * lib/linear_algebra/linear_algebra.gel: add some determinantal divisor whackiness for integer matrices (less useful, but good for homework/learning), a bunch of related nonsense too * lib/linear_algebra/misc.gel: add IsUpperTriangular, IsLowerTriangular, and IsDiagonal Wed Oct 23 16:49:40 2002 George Lebl * lib/linear_algebra/special_matrices.gel: add companion matrix Wed Oct 23 16:31:40 2002 George Lebl * lib/linear_algebra/linear_algebra.gel: Add characteristic polynomial function Wed Oct 23 15:34:41 2002 George Lebl * lib/linear_algebra/misc.gel: Fix the Adjugate alias Wed Oct 23 15:29:37 2002 George Lebl * lib/linear_algebra/special_matrices.gel: add HilberMatrix, and Henkel matrix and add some docs and fix Vandermonde matrix and add vander alias Wed Oct 23 14:33:56 2002 George Lebl * lib/linear_algebra/misc.gel: add support for Compound matrices and the GAMMA set (may need renaming, all index combination vectors of, for using in submatrices) Wed Oct 23 13:41:49 2002 George Lebl * lib/linear_algebra/*.gel: add some help strings and implement submatrix functions * src/mpwrap.c: define 0^0 as 1 Wed Oct 23 12:49:02 2002 George Lebl * lib/linear_algebra/misc.gel: fix naming of adj. Call it Adjugate rather then Adjoint to avoid confusion Wed Oct 23 12:29:10 2002 George Lebl * src/parse.y, src/lexer.l, src/calc.[ch], src/funclib.c, src/genius_lists.c, src/inter.c: remove the help function add a help command, and add help on specific functions add help on commands. Add possible argument to ls. Remove the shell hack as it's dangerous and just use glob if wordexp isn't available. Also clean up the command stuff. * src/funclib.c, src/matrixw.[ch]: add DiagonalOf function Fri Oct 18 22:49:22 2002 George Lebl * src/calc.c: fix cd command, improve ls command * src/inter.c: fix command completition for cd and fix toplevel command checking for the new commands Fri Oct 18 18:28:33 2002 George Lebl * src/funclib.c: add chdir * src/parse.y, src/lexer.l, src/calc.[ch]: add cd, pwd and ls commands, currently broken Fri Oct 18 17:31:27 2002 George Lebl * src/parse.y, src/lexer.l, src/eval.[ch], src/structs.h, src/funclib.c, src/calc.c, src/dict.c: Add parameters (both user and built in). At some point they should also support value verification/massage functions, but not so currently. * src/*.[ch]: warning fixes * lib/*/*.gel: minor cleanups and use parameters Fri Oct 18 15:46:18 2002 George Lebl * src/eval.[ch], src/mpwrap.[ch], src/calc.c, src/parse.y, src/lexer.l: Add some element by element operators, add double factorial operator * lib/linear_agebra/linear_algebra.gel: add some norm functions * lib/linear_agebra/misc.gel: add UpperTriangular and LowerTriangular functions and IsVector function, and make some vector operations work on both horizontal and vertical vectors * lib/combinatorics/factorial.gel: use !! for double factorial function and add Factorial function * lib/funclib.c: more renaming and moving to the new definition macros * src/geniustests.txt: update * src/geniustest.pl: print error in red Fri Oct 18 11:52:27 2002 George Lebl * lib/statistics/basic.gel: fix naming on RowAverage Fri Oct 18 11:49:25 2002 George Lebl * src/funclib.c, src/mpwrap.[ch], src/matrixw.[ch], src/matop.[ch]: Add a bunch of functions, make sqrt work nicely on perfect square integers and rationals. Add JacobiKronecker from gmp, use gmp float unsigned long int power, add functions for checking matrix values all at once, add a bunch of aliases. Also add a PerfectPower function * lib/*/*.gel: Do a bunch of renaming and add some help strings and identify aliases. Fix some minor bugs. MakeDiagonal can now take many value arguments. Whack functions which are built in or weren't implemented. Implement DoubleFactorial. Fix the symbolic nth power stuff, it can use PerfectSquare PerfectPower and the standard sqrt function Thu Oct 17 01:00:35 2002 George Lebl * lib/statistics/basic.gel: a bit of renaming, and some aliases * lib/calculus/sums_products.gel: add an epsilon argument to the infinite sum functions Thu Oct 17 00:50:26 2002 George Lebl * src/mpwrap.c: when reading floats push "C" numeric locale Wed Oct 16 16:54:03 2002 George Lebl * src/funclib.c: min and max can take multiple arguments, if only one argument is supplied, get the min or max entry of a matrix Wed Oct 16 15:44:24 2002 George Lebl * src/funclib.c: the constat functions take no arguments Wed Oct 16 15:42:13 2002 George Lebl * lib/linear_algebra/*.gel: add some help strings, add DotProduct and add the Gram-Schmidt process Wed Oct 16 14:24:44 2002 George Lebl * src/funclib.[ch]: more cleanup, descriptions * src/plugin.[ch], src/calc.[ch]: move the genius_is_gui out of the plugin crap * src/gnome-genius.c: fix outputing of info stuff. * src/funclib.c: print help directly to output * lib/*/*.gel: description fixes Wed Oct 16 12:10:44 2002 George Lebl * src/calc.[ch], src/funclib.c, src/compil.[ch]: more advanced help functionality, including categorizing * src/funclib.c: make the init function a bit nicer and start categorizing and documenting the functions * lib/**/*.gel: adapt to the new SetHelp call, whack the conjugate function as it already exists * src/*.c: random minor cleanup Fri Oct 11 16:45:36 2002 George Lebl * src/gnome-genius.c, src/geloutput.[ch], src/structs.h, src/calc.c: fix output of large things Fri Oct 11 15:22:29 2002 George Lebl * src/genius.c, src/gnome-genius.c: max_digits default to 12 * src/funclib.c, src/mpwrap.[ch]: add random functions, and do a bit of cleanup Fri Oct 11 13:37:14 2002 George Lebl * src/calc.c, src/eval.c, src/parse.y, src/lexer.l, src/parseutils.[ch], src/structs.h, compil.c: Add vararg functions * lib/linear_algebra/linear_algebra.gel: Add vector of matrices direct sum function, and make the direct sum use varargs. Also change is_invertible to IsInvertible and add IsInvertibleField. Also fix Jordan block function for n==1 and add some argument checking * lib/combinatorics/recursive_sequences.gel: use IsInvertible name Fri Oct 11 12:02:19 2002 George Lebl * src/genius.c: fix a warning * src/eval.c, src/dict.[ch], src/calc.c: ensuring user body done in a macro * src/eval.c: when we define a function within a non global context immediately evaluate all local identifiers. This allows for returning of functions. Also ensure user bodies on all treewalking functions. Fri Oct 11 10:56:59 2002 George Lebl * src/*.c, src/eval.h: put the free_trees extern in the header * src/matrixw.[ch], src/matrix.[ch], src/eval.c, src/parseutil.c, src/funclib.c: Add RowsOf and ColumnsOf function which are useful for the for/in loops (or sum/in or prod/in) * README: update a tad Fri Oct 11 10:09:30 2002 George Lebl * src/eval.c: fix do/while/until loops * src/lexer.l, src/parse.y, src/eval.c, src/matrixw.[ch], src/matop.[ch]: Make the ' operator the conjugate transpose and add a simple transpose .' operator ala matlab/octave. Also only set matrix element to a NULL if it truly does equal 0 (integer only) * src/eval.[ch], src/funclib.c: Add ExpandMatrix and conj functions. * lib/*/*.gel: update for transpose, added ConjugateTranspose function * src/eval.c: fix matrix column expansion. * src/geniustests.txt: Because matrix expansion now works differently (more sanely), update the tests. Also add some simple transpose versus conjugate transpose tests Thu Oct 10 10:31:48 2002 George Lebl * src/eval.c, lib/linear_algebra/linear_algebra.gel: fix matrix expansion and don't expand when not neccessary * src/eval.c: don't force replace = by == if we move from a boolean context to a function definition one * src/eval.c: attempt to fix broken dowhile/dountil Wed Oct 09 15:01:09 2002 George Lebl * lib/linear_algebra/*.gel: add a bunch of basic linalg functions, add protects to some, add some help strings and such Wed Oct 09 14:28:57 2002 George Lebl * lib/linear_algebra/linear_algebra.gel: add a few functions Wed Oct 09 12:42:16 2002 George Lebl * src/funclib.c: use x^0 in polytofunc to allow properly evaluating with matrices * src/gnome-genius.c: flush after error display Wed Oct 09 12:32:45 2002 George Lebl * src/gnome-genius.c, src/inter.c, src/Makefile.am, src/genius-readline-helper.c: Build the readline helper and backport the readline voodoo from dr.genius. Also fix up random other stuff on the frontend to make the gui work. Sun Oct 06 20:44:18 2002 George Lebl * src/funclib.c: set call can take a string * src/disc.c: fix global set * src/eval.[ch], src/parse.y, src/calc.c: allow passing of identifiers quoted with a backquote just like matrix, so that we can pass an identifier to a function. Also replace = with == if we are in expression, so that if (a=1) works like if (a==1). Basically do what the user means, not what he says. Sun Oct 06 19:08:00 2002 George Lebl * configure.in, src/gnome-genius.c, Makefile.am: first pass at porting to gnome2. It seems to compile. Sun Oct 06 18:48:12 2002 George Lebl * configure.in, src/*.h, **/Makefile.am: start the gnome2 porting voodoo Note that a lot of stuff happened here including syntax changes without a changelog because I was a lazy bum. Sue me. Fri Sep 27 13:24:35 2002 George Lebl * Big fixing. Basically apply the below patches to the 0.4.6 tree remove the new context rewrite, fix a bunch of errors and crashes and generally make the whole thing work. Next up will be to port it to gnome2 at some point though I think I might keep it at gnome 1 level out of laziness. I also fixed up all the copyright notices. I'm really keen on using genius again for my homework/research and thus all this is happening. Yay! Genius is not dead! The following comes from the dr-genius work of genius: 2000-11-30 Martin Norbäck * gnome-genius.desktop: added Swedish translation 2000-07-29 Hilaire Fernandes * genius.c: Set the path to the real file (ie ncurse/). 2000-05-04 Valek Filippov * eval.c: typo fixed. Tue Feb 08 21:25:07 2000 George Lebl * calc.[ch],genius.c,lexer.h,lexer.l,inter.[ch],funclib.c: use flex buffers to handle nested files correctly and setup the correct directory by passing directory prefixes to the parsing functions. * gnome-genius.c: small fixes Tue Feb 08 20:01:34 2000 George Lebl * calc.c: some debugging output and a first (broken) pass at changing directories correctly to make loading work correctly Mon Feb 07 21:13:19 2000 George Lebl * eval.c: when expanding matricies make a private copy so that we don't mangle constant matricies in the function library upon execution Fri Feb 04 17:44:16 2000 George Lebl * mpwrap.[ch],funclib.c: added numerator and denominator functions Fri Feb 04 00:57:38 2000 George Lebl * geloutput.[ch],calc.[ch],eval.c,funclib.c,util.c,genius.c, gnome-genius.c: Start using the new output stuff with somewhat large hacks to make it work, but a step closer towards the new interface. Thu Feb 3 13:34:49 2000 George Lebl * geloutput.c: Finished implementing of the output stuff, now also does tab expansion and hhandles the long line limiting mostly correctly. * struct.h,geloutput.[ch]: use set/get_data style data on the output as well and add dynamic line length getting function Thu Feb 03 00:16:35 2000 George Lebl * matop.c,eval.c: Fixed very critical copy-on-write problems which caused mangeled matrix variables * matop.[ch],funclib.c,eval.c: make the gauss function have a bit nicer interface Wed Feb 02 23:24:37 2000 George Lebl * structs.h: fix some warnings and add accessors for errorout and infoout Wed Feb 02 23:19:16 2000 George Lebl * structs.h,geloutput.[ch]: implement a bunch of output stuff Tue Feb 1 13:38:48 2000 George Lebl * mpwrap.[ch]: further implementation details are being sorted out Tue Jan 25 22:58:24 2000 George Lebl * mpwrap.[ch]: doh! fixed compile errors Tue Jan 25 13:22:54 2000 George Lebl * mpwrap.[ch]: figure out some new interface to make this part embeddable and modular Mon Jan 10 20:35:40 2000 George Lebl * structs.h,calc.c,eval.[ch],compil.c,matrixw.c: fixup more namespace stuff Sun Jan 09 17:18:58 2000 George Lebl * mpwrap.c: sanity check of integer_output_base for the int output * calc.h: use gboolean instead of int for booleans * gnome-genius.c: correctly initialize the state structure * extra.h: never use the __weak__ attribute, for some reason this causes weird segfaults in dr-genius (not genius nor gnome-genius however) Fri Jan 07 01:53:53 2000 George Lebl * structs.h: begin thinking about the new interface and start on the structures * *.[chly]: to make transition to a lib easier start prepending functions with gel_ and declaring some as weak symbols Thu Jan 06 16:29:43 2000 George Lebl * mpwrap.c,geniustests.txt: fixup integer output in bases higher then 10 (except 16) for small integers Tue Nov 30 19:03:56 1999 George Lebl * eval.c: don't precalc MOD_CALC body * eval.c,structs.h,utype.[ch],Makefile.am: start on a user type, but this is not yet finished, it only compiles now Tue Nov 30 17:49:32 1999 George Lebl * eval.[ch],calc.c: do precalculation separately from parsing to allow for restrictions on precalc * mpwrap.c: trim excess zeros off of roundend numbers Sun Nov 28 23:45:24 1999 George Lebl * inter.c,drgenius-readline-helper.c: use a new readline system with a separate forking process which talks to us with pipes (sue me, corba would be WAAAY too much work for this) * genius_lists.c,eval.c,inter.c: move the constant lists of strings to genius_lists.c and make them global. Thu Nov 04 15:21:46 1999 George Lebl * lib.gel: sanitize triangular numbers Sat Oct 23 15:54:00 1999 George Lebl * lib.gel: add ll_test_mprime, it's actually not that slow even though it's interpreted Sat Oct 23 13:54:06 1999 George Lebl * inter.c: make toplevels and operators const Tue Oct 19 20:29:19 1999 George Lebl * lib.gel: add "triangular" function from Matthew D Allen Mon Oct 18 21:18:20 1999 George Lebl * dict.[ch],structs.h,calc.c,funclib.c,lib.gel: add protection of certain global variables from overwriting and an interface to modify the protections * mpwrap.c: check one more bit in exp calculation * lib.gel,funclib.c: more help strings added Mon Oct 11 23:53:00 1999 George Lebl * mpwrap.c: in power series functions, only check the precision we will actually return, this avoids an infinite loop bug Mon Sep 27 19:27:16 1999 George Lebl * genius.c: support new parameters Mon Sep 27 19:20:29 1999 George Lebl * mpwrap.c,lexer.l: fixup the output base and mixed fraction support Mon Sep 27 16:24:07 1999 George Lebl * mpwrap.[ch],lexer.l,eval.c,funclib.c: add integer_output_base and mixed_fractions parameters and implement them, however it most likely doesn't even compile as I can't get the damn autoconf/automake running for some weird reason Sun Sep 26 21:14:28 1999 George Lebl * inter.[ch]: add event based readline reading Sun Sep 26 17:44:48 1999 George Lebl * eval.[ch], funclib.c, structs.h, inter.c, calc.c: completely go to the new interface and remove a lot of old cruft, and make internal gel function calling work Sun Sep 26 16:40:05 1999 George Lebl * eval.c: fix special free from spurious freeing * calc.c: use the new interface from eval.c Sun Sep 26 16:10:21 1999 George Lebl * eval.c: fix copying of spacers, make a private copy of a matrix before we evaluate any of it's arguments, never evaluate the generic zero element of matrices Fri Sep 24 19:14:12 1999 George Lebl * eval.c: fixed matrix^1 * geniustests.txt: added some tests Fri Sep 24 18:33:49 1999 George Lebl * funclib.c: fixed some problems with creating argument lists for new nodes, down to 2 errors on the testsuite Fri Sep 24 17:32:20 1999 George Lebl * eval.c: fix matrix memory allocation, fix op_two_nodes for non numeric values, and fix for loop semantics with respect to iterator value after loop. We're down to 5 errors on the testsuite Thu Sep 23 23:39:39 1999 George Lebl * eval.c: support all operations except modular arithmetic, there are still some problems, mostly with matricies, testsuite has only, down to 12 errors for the test suite * geniustests.txt: update to take into account precalculation * geniustest.pl: support tests with null output Thu Sep 23 18:56:28 1999 George Lebl * eval.c: now do more work on the primitives and they almost all work for simple numbers, as well as string additions and matrix transpose Thu Sep 23 18:02:07 1999 George Lebl * eval.[ch]: cleanup eval_etree and make it possible to do more evaluation with one context, also implement for in loops and do minor cleanups Thu Sep 23 15:57:25 1999 George Lebl * eval.c: implement for and for/by loops and break/continue for those, pop off the call for loops in free_special, remove a bunch of old unused methods, and do precalculation during tree building for operations that can't loose precision Wed Sep 22 22:10:59 1999 George Lebl * Start writing changelogs again as I come out of the completely experimental stage of the engine into make-it-all-work stage * eval.c: implemented new stack and it's waay faster then the old linked list one 1999-09-18 Jacob Berkman * Makefile.am (Utilitiesdir): put in the correct directory Sun Sep 12 00:12:12 1999 George Lebl * eval.c,eval-iter.c: move eval into eval-iter.c as I'm messing with core functionality so this is a testing file for the new evaluation engine Fri Sep 10 18:07:56 1999 George Lebl * eval.c: bit of work on new evaluation engine Thu Sep 09 23:59:26 1999 George Lebl * eval.c: a bit more work on the new evaluation engine * eval.h: start operators at 0 Thu Sep 09 16:09:17 1999 George Lebl * eval.[ch]: fix some evalnode/evaltree brokenness, and start on implementing a stack based evaluation engine instead of a recursive one Wed Sep 08 19:28:04 1999 George Lebl * *.c: use GSList instead of GList everywhere * dict.[ch],eval.c,structs.h: store the current highest function on the token itself to avoid another dereference and thus speed things up by a very tiny fraction Wed Sep 08 18:48:25 1999 George Lebl * eval.c,calc.c,mpwrap.c: fixed bugs and quibbles reported by Squeak and applied his patch The following is from the original dr genius dist: Mon Sep 06 14:38:44 1999 George Lebl * Release 0.4.6: last Genius before integration with Dr.Geo Mon Sep 06 09:43:16 1999 George Lebl * src/lexer.l: accept E+ for floats as well Sun Sep 05 17:06:23 1999 George Lebl * src/gnome-genius.c,src/funclib.c: rework the info/error dialogs and make them display in a textbox if there is too much text, also rework how info's and errors are printed to screen so that we don't hang (for example on 'help') Sun Sep 05 14:16:20 1999 George Lebl * src/lexer.l: read E as well for exponents in floats Thu Sep 02 14:05:50 1999 George Lebl * Release 0.4.5 Thu Sep 02 14:00:19 1999 George Lebl * src/mpwrap.c: don't check/free values after mpw_clear again 1999-09-03 Zbigniew Chyla * configure.in (ALL_LINGUAS): Added pl. Wed Sep 01 20:36:01 1999 George Lebl * src/calc.h,src/eval.c,src/genius.c,src/gnome-genius.c: add an option for limitting the number of errors printed out * README: document the above option and full_expressions Wed Sep 01 19:50:41 1999 George Lebl * src/eval.[ch],src/parse.y: backdivision for matrices * src/funclib.c: don't allow trying exp of non-square matrices Fri Aug 20 22:06:43 1999 George Lebl * src/mpwrap.c: get around a gmp bug with converting negative rationals to floats * src/calc.c,configure.in,aclocal.h: if wordexp is not present use an ugly shell popen hack to try to do the same, but it's not 100% working Tue Aug 17 22:25:44 1999 George Lebl * src/eval.c,src/calc.[ch],src/util.[ch],funclib.c: made the thing not print out huge expressions by default * src/genius.c,src/gnome-genius.c: added options for the maximum size thing * src/funclib.c: fixed getting some arguments 1999-08-09 Tomas Ogren * configure.in (ALL_LINGUAS): 'de' does exist (it's revived). 1999-08-08 Anders Carlsson * configure.in (ALL_LINGUAS): Removed 'de' since no .po file exists for that language. 1999-08-08 Tomas Ogren * configure.in: Removed 'ga', it was removed from cvs (and contained 1 translated message) Mon Aug 02 08:08:41 1999 George Lebl * src/mpwrap.c,src/testplugin.c: fix coshbug and testplugin not including config.h reported by Jeroen Nijhof Wed Jul 28 02:09:51 1999 George Lebl * src/*: removed unused variables * src/{test.plugin.in,plugin.[ch],plugread*.c,genius.c,gnome-genius.c}: added a GUI parameter to plugin description to specify if this plugin is GUI only, and don't even add it to the list on the command line version * src/{calc.c,eval.[ch],funclib.c}: change parameter setting getting routines and do a preprocessing run on the tree to set and get the parameters as vars * README,NEWS: updated Tue Jul 27 05:33:47 1999 George Lebl * src/{parse.y,lexer.l,eval.c}: added mod evaluation * src/{lib.gel,funclib.c}: added some more help strings * src/{eval.[ch],funclib.c}: added way to call gel functions internally and implemented a simple exp for matrixes that has the correct result Thu Jul 15 05:13:35 1999 George Lebl * src/lib.gel: much nicer/faster way of computing fibbonachi numbers from njh@cs.monash.edu.au Fri Jul 02 06:50:54 1999 George Lebl * src/{lexer.l,parse.y,calc.c,plugread*.c,plugin.h}: added a plugin toplevel command to load in plugins, and for loading files I use wordexp call since that actually does the right thing instead of splitting at spaces and glob Tue Jun 22 06:51:08 1999 George Lebl * Release 0.4.4 Fri Jun 18 05:25:27 1999 George Lebl * configure.in: added check for glib 1.2+, and for gmodule * src/Makefile.am: add building of test.plugin, building of a test plugin shared lib, installing some headers etc ... * src/plugin.[ch]: the plugin loading "interface" using gmodule * src/gnome-genius.c: add a menu for loading plugins * src/plug_api.h: a very simple beginning plugin API Tue Jun 15 02:26:19 1999 George Lebl * src/lexer.l: apply fix from Squeak Mon Jun 14 07:04:44 1999 George Lebl * src/eval.c: fix memleak 1999-06-05 Tomas Ogren * src/genius.c: Fixed some i18n and a grammatical error * configure.in: Added sv to ALL_LINGUAS Tue Jun 01 10:18:17 1999 George Lebl * src/mpwrap.c: fix problems with negative exponents in mpw_pow_z Mon May 31 13:05:26 1999 George Lebl * src/mpwrap.c: fixed a bug with negative small integer exponents * src/geniustests.txt: added tests for the above Fri May 28 11:19:40 1999 George Lebl * src/*.c: include config.h in all the files, there were some which didn't have this (whoops) Thu May 27 09:02:28 1999 George Lebl * src/eval.c: apply fix from Squeak to fix segfault Wed May 26 19:37:15 1999 George Lebl * Release 0.4.3 Mon May 24 16:35:51 1999 George Lebl * src/{lexer.l,parser.y}: fixed up a bit the new syntax and took out the define keyword * src/{inter.c,calc.c}: fixed problems with the test parser * src/{structs.h,parser.y,eval.c,funclib.c,calc.c,compil.c}: implemented quoted matrixes Mon May 17 23:55:50 1999 George Lebl * src/parse.y: took out the old way (bc) of writing function as we will need the "{}" for sets, added some set rules, but no functionality * src/strucs.h,src/*.c: changed ETree to be a union of structs to do the polymorphism in a nicer manner and to allow more future extention, this requires some changes to any code using ETree's (if anybody has done anything like that) * src/*.c: fixed miscellaneous bugs * configure.in: raised version 1999-05-18 03:27 1999 Tomas Ögren * src/*.c: Fixed i18n support Thu May 13 00:50:33 1999 George Lebl * src/plugread*.[ch]: new routine that has a gnome and a dumb non-gnome implementation so it's separated into two files * src/calc.[ch]: add ability to read a list of .plugin files (no plugin functionality yet!) * src/{genius.c,gnome-genius.c,Makefile.am}: move lib.cgel into a /gel/ subdirectory when installed and add a plugins directory as well to add .plugin files into * src/test.plugin: just a simple test file Wed May 12 01:34:04 1999 George Lebl * src/{calc.[ch],inter.[ch],genius.c,gnome-genius.c}: instead of the ugly interactive mode hack, I now do test parses, which is not extremely efficent, but it's only in interactive mode and it works perfectly and more cleanly Tue May 11 23:57:41 1999 George Lebl * src/mpwrap.c: small optimization and minor correction on mpwl_move * src/{eval.[ch],dict.[ch]}: minor optimizations wrt to removing redundunt node copying Tue May 11 01:10:45 1999 George Lebl * src/mpwrap.c: fix reduction of fractions on small integer division Mon May 10 21:01:42 1999 George Lebl * Release 0.4.2 Mon May 10 20:52:18 1999 George Lebl * src/*,po/*: try to get NLS to work but I just can't get it working Mon May 10 18:45:53 1999 George Lebl * src/calc.[ch]: separated evalexp into more logical functions, removed do_interrupts from state * src/{genius.c,gnome-genius.c,inter.c,calc.c}: handle interrupts in input as well and handle SIGINT in genius.c Mon May 10 02:11:03 1999 George Lebl * src/inter.[ch]: this file contains the readline stuff now as it is separated from the rest of the code. It contains a HACK however to figure out the bounds of a single expression in the same way that the lexer/parser do. This is of course not possible without a parser, but it should be ok for normal use and only differs in functionality in cases of errors (or should) * src/{genius.c,gnome-genius.c,calc.c,lexer.l}: get rid of readline stuff that is now in inter * src/gnome-genius.c: add a Load file menu item which is the same as the load command * src/Makefile.am: add inter.[ch] * src/parse.y: accept unary '+' as well as a no op * src/geniustests.txt: add some simple tests Sat May 08 15:15:50 1999 George Lebl * src/matrixw.c: don't use padding of 10 but 0.1 of the size to a maximum of 10 for allocation of new space, this improves the performance by about 15% in calculations heavy on allocation of new small matrices. Also fixed a segfault in reallocating matrix to a larger size * configure.in: raise version number Sat May 08 14:09:21 1999 George Lebl * src/dict.c: Make "ans" be a synomym for "Ans" to make matlab people happy * src/funclib.c: is_rational,is_integer,is_complex and is_float, now never fail, they just return 0, also added is_real as well * src/lib.gel: updated to use the above fact to make the argument tests nicer and faster * README: updated for the above Fri May 07 20:25:04 1999 George Lebl * src/{eval.[ch],calc.c}: add a vector element operator * src/lib.gel: fix the delrowcol function and add a pascal function * README: update Fri May 07 14:50:54 1999 George Lebl * src/eval.c: correct check for matrix dimensions on multiplication Thu May 06 21:20:01 1999 George Lebl * src/{dict.[ch],eval.c}: don't look up the dereference in the immediate context when assigning to a function argument * src/geniustests.txt: add test for the above Thu May 06 17:48:02 1999 George Lebl * src/matrixw.c: fix a segfault on matrix size setting Thu May 06 00:26:37 1999 George Lebl * Release 0.4.1 Tue May 04 02:05:00 1999 George Lebl * src/gnome-genius.c: add some terminal options and make ^C do interrupt of calculations 1999-05-03 Havoc Pennington * configure.in: Check for termcap, then use -ltermcap in the readline check only if termcap was found (some readlines don't require -ltermcap apparently) Mon May 03 00:46:15 1999 George Lebl * src/gnome-genius.c: minor cleanup and maybe fix a segfault Sun May 02 23:43:31 1999 George Lebl * src/gnome-genius.c: add new options for max digits and precision * src/genius.c: set calcstate_hook * src/mpwrap.c: nicer pi calculation and some sanity checks plus removing of caches if precision changed * src/funclib.c: add functions for changing calcstate and dumping cached vars when precision changes * src/calc.c: add the abitily to change precision and some fixes to initialization * README: updated with new functions Sun May 02 20:10:38 1999 George Lebl * src/gnome-genius.c: more work on the ui, don't start new processes anymore, just set the fd for the terminal so that the terminal writes everything into readline directly without a need for an external process * src/calc.[ch]: added infoout function for information messages, changed evalexp interface to be more sane, load and save the help documentation database for the functions that are being stored (and only those) * src/funclib.c: use infoout for warranty and such * configure.in: raise version and fix readline check to work with readline 4.0 Sun May 02 12:56:12 1999 George Lebl * src/{genius.c,gnome-genius.c}: add a missing \n and put colors inside gnome-genius and add an option on where to write errors Sun May 02 02:18:09 1999 George Lebl * src/gnome-genius.c: the start of the promised overhaul of the gui version, now uses zvt and so behaves somewhat like the command line version but with gui config * src/calc.[ch]: hooks for checking for events inside evalnode, way to set parameters while in evaluation, online function documentation stuff * src/funclib.c: document a bunch of routines with the new descriptions, and add help and sethelp functions * src/calc.c: do tilde expansion using readline's functions * configure.in,src/{lexer.l,calc.c,genius.c}: readline is now required to compile genius * README: updated for the help functions Sat May 01 04:13:42 1999 George Lebl * Release 0.4.0 Sat May 01 04:08:05 1999 George Lebl * src/lib.gel: added abs,adj and delrowcol functions * src/eval.c: implement integer powers for matricies, absolute value and division * src/geniustests.txt: added some tests * README: updated for new functions Fri Apr 30 17:09:14 1999 George Lebl * src/{lexer.l,parse.y,eval.[ch],calc.c}: add a 'for in do' for loop, for iterating over the elements of a matrix * src/lib.gel: added a whole bunch of statistical functions and use the above construct more over the whole library * src/{calc.[ch],genius.c,gnome-genius.c,lexer.l}: at least for parsing errors, display line numbers and file information * src/geniustests.txt: added a bit of tests * README: added description of the new construct and of the new functions Fri Apr 30 01:51:49 1999 George Lebl * src/lexer.l: add <> as an alternative != * src/{eval.[ch],parse.y}: make new node type, SPACER, and push it for parenthesised nodes * src/{eval.[ch],calc.c}: add new node type, COMPARISON_NODE, and just before evaluation, replace all comparison operators by comparison nodes, using spacers as stops so that parenthesis are still honored, then remove the spacers, also add evaluation and prining of the COMPARISON_NODE, with this change, ambiguous comparison expressions are now handled better in terms of math (e.g. 3 * src/{eval.[ch],dict.[ch],calc.c}: pass functions by value, and differentiate between functions and variables, when evaluating a function without (...) return a function node with the function. this breaks compatibility a bit * src/lib.gel: use functions by value everywhere * src/geniustests.txt: update * README: change stuff relating to function calling and references * TODO: remove what was done Thu Apr 29 13:55:54 1999 George Lebl * src/{lexer.l,parse.y}: a much much nicer syntax for writing functions the old one is still there but is depreceated * src/geniustests.txt: updated for the new stuff above * src/lib.gel: updated for the new stuff * README: updated * TODO: add entries for 0.4.0 * configure.in: raise version to distinguish cvs from released Thu Apr 29 09:00:36 1999 George Lebl * src/lib.gel: changed catallan to catalan * src/eval.c: a !,- operators for matrixes, <=> operator for strings * src/{compil.[ch],eval.c,dict.c,calc.[ch],genius.c,gnome-genius.c}: created "compiled" GEL files, to make startup much faster, functions are not actually even parsed until they are needed * src/Makefile.am: compile and install lib.cgel * src/geniustests.txt: small update * README: updates Wed Apr 28 21:51:48 1999 George Lebl * src/eval.c: add == and != to matrix support and != for strings Wed Apr 28 18:03:19 1999 George Lebl * src/matop.[ch]: implemented an internal version of the gauss algorithm and put some matrix operations in this file and added a determinant function * src/eval.c: take out the matrix multiplication from here * src/matrixw.c: fix a problem with matrix refcounting * src/funclib.c: added the det,ref and rref functions * src/lib.gel: added rad2deg,deg2rad,minimize,diagonal and swaprow functions, and took out the ref and rref functions * README: updated Wed Apr 28 00:35:29 1999 George Lebl * src/mpwrap.[ch]: add_ui sub_ui and ui_sub routines added * src/{eval.[ch],calc.c,parse.y,lexer.l}: added an iterative for loop * src/lexer.l: added null to be '.' so that printouts are legal GEL * src/lib.gel: added catallan, adjoint and string functions and avoided new reserved words * src/geniustests.txt: added a couple new tests * README: updated Mon Apr 26 02:27:24 1999 George Lebl * src/mpwrap.c: complete complex number support (hopefully) and a whole bunch of fixes Sat Apr 24 18:24:53 1999 George Lebl * Release 0.3.2 Sat Apr 24 18:20:00 1999 George Lebl * src/funclib.c: fix prime function to return correct values * src/{funclib.c,lib.gel}: added functionality to call scalar type functions with matrixes to work on node by node basis * src/geniustests.txt: added a couple of tests * README: updated Sat Apr 24 16:49:22 1999 George Lebl * src/mpwrap.c: use a trick from bc for calculating atan close to 1 Thu Apr 22 22:51:15 1999 George Lebl * src/mpwrap.c: added a somewhat working arctan and implement ln for complex numbers, also fix some errors with errors :) * src/lib.gel: implement a whole bunch of trigonometric functions and a bunch of other functions * README: updated Thu Apr 22 19:02:52 1999 George Lebl * src/{calc.c,genius.c,gnome-genius.c,eval.c}: ignore SIGINT, and in calculations halt calculations on SIGINT Thu Apr 22 15:49:37 1999 George Lebl * src/{mpwrap.[ch],funclib.c}: added jacobi,legendre and perfect_square functions from gmp * src/lib.gel: add infsum,infsum2,convol,convol_vec,matsum and matprod functions * src/geniustests.txt: add some tests * README: updated Thu Apr 22 02:39:19 1999 George Lebl * src/lib.gel: test for complexness of arguments * src/{mpwrap.[ch],funclib.c}: move reduction of sin/cos arguments to the sin cos functions in mpwrap, added sinh/cosh variety and added handeling of complex numbers for sin/cos/sinh/cosh/abs/exp, also added float function to make things floating * src/{mpwrap.[ch],genius.c,calc.c,gnome-genius.c}: remove the ugly make_floats_ints hack since it is just not a correct thing to do * src/mpwrap.c: when printing out complex numbers with imaginary part negative, don't print '+' * README: add the sinh/cosh/float functions Tue Apr 20 15:30:07 1999 Erik Walthinsen * added spec.in file and changed Makefile.am/configure.in to match Fri Apr 16 23:11:54 1999 George Lebl * src/funclib.c: added a set_size function which returns a new matrix of a specified size with the old one in it as it fit * src/geniustests.txt: update * README: update Fri Apr 16 22:58:01 1999 George Lebl * src/{parse.y,lexer.l,eval.c,calc.c}: added the range operator for matrix indexes, and this adds a lot more flexibility to manipulating matrixes. * src/parse.y: added an implicit null node if ';' is at the end of a parenthesis or a block, so that it can act somewhat like a terminator instead of just a separator * src/geniustests.txt: added a whole bunch of new tests for new things * README: updated for the above changes * src/lexer.l: always display secondary prompt from the lexer as this is the correct behaviour Fri Apr 16 20:38:37 1999 George Lebl * src/eval.c: fix segfault on errors of matrix index evaluating * src/matrixw.c: fix set_region for matrixes of different ->tr value * src/geniustests.txt: add tests for the above Fri Apr 16 20:03:03 1999 George Lebl * src/{matrix.[ch],matrixw.[ch],eval.c,calc.c,funclib.c,structs.h}: implement wrappers around matrices, to not store 0 nodes, to do a copy-on-write kind of allocation, which increases memory efficency and speed by an order of magnitude * src/eval.c: don't reevaluate variables, unless they are called as functions with () * src/geniustests.txt: updated with a couple of new tests Fri Apr 16 01:14:22 1999 George Lebl * src/mpwrap.c,src/funclib.c,src/mymath.[ch]: remove mymath.[ch], rewrite functions in native gmp and moved them to mpwrap Thu Apr 15 20:26:46 1999 George Lebl * Release 0.3.1 Thu Apr 15 20:24:47 1999 George Lebl * src/{eval.c,dict.c,parse.y,lexer.l,calc.c}: fix many memory leaks * src/genius.c: added a switch to run in non-readline mode although that doesn't work too well * configure.in,src/*.c: added the standard gnome compile warnings and corrected the ones I could * src/{parse.y,lexer.l}: add syntax for future replacement of the GET_ROW and GET_COLUMN by GET_RANGE which will be far more flexible (and won't change current syntax) * src/lib.gel: (rref) corrected out of bounds problem for some matrixes Thu Apr 15 16:40:47 1999 George Lebl * src/lexer.l,src/calc.c,src/util.[ch]: accept escaped characters inside strings, print escaped strings * src/lexer.l,src/calc.c: add a load command that loads files with gel code * README: update Thu Apr 15 04:08:58 1999 George Lebl * src/matrix.c: fix segfault problem with setting a matrix size Wed Apr 14 12:22:30 1999 George Lebl * src/lib.gel: got rid of the gauss function and replaced it with more general ref and rref functions, and added a trace function * src/mpwrap.c: fixed an integer division bug with negative denominators * src/geniustests.txt: added more tests * README: updated for the above changes Wed Apr 14 04:13:42 1999 George Lebl * src/eval.c: 'or' and 'and' now evaluate their arguments as they go instead of all of them upfront, so that the conditial evaluation tricks works as well. * src/{lexer.l,parse.y,eval.[ch],calc.c}: added break and continue statements for loops * src/lib.gel: implemented gauss, a function to solve systems of equations using the gauss method * src/geniustests.txt: added some new tests for new things * src/funclib.c: added is_value_only function to test matrixes for being all value matrixes * README: updated Tue Apr 13 23:56:08 1999 George Lebl * src/mpwrap.c: fix a segfault bug with multiplication * src/funclib.c: add derpoly and der2poly functions that take derivatives of polynomials * src/eval.[ch],src/funclib.c: add a new function to speed up some operations when making new value nodes * README: update for the above functions Tue Apr 13 21:04:54 1999 George Lebl * src/funclib.c: add two new functions is_function and is_function_ref, usefull for checking arguments * src/lib.gel: check arguments better for library functions * src/eval.c: keep a fake token around when evaluating a reference to an anonymous function so that we can retrieve the function later * src/funclib.c: add rows and columns function for checking sizes of matrixes * README: update for new functions Tue Apr 13 19:44:47 1999 George Lebl * src/funclib.c: added a whole bunch of polynomial manipulation functions, now that we can do vectors * src/geniustests.txt: added tests for the above * README: updated for polynomials * configure.in: raise to 0.3.1 so that it doesn't get confused with the released version * po/*: updates from release 0.3.0 * src/Makefile.am: updates from release 0.3.0 Tue Apr 13 01:16:35 1999 George Lebl * src/{parse.y,eval.c}: add new transpose "'" operator * src/funclib.c: add is_value,is_matrix,is_string functions * src/eval.c: implemented matrix +,- and * * README: update * NEWS: move stuff from Changes-0.2 and add new changes for this relese (0.3) * configure.in: raise version to 0.3.0 Mon Apr 12 16:32:14 1999 George Lebl * src/funclib.c,README: added some documentation of the built in functions and change isnull to is_null for consistency Mon Apr 12 16:06:05 1999 George Lebl * src/eval.c: add string concatenation, and added error handeling to primitives, and unified the macros for primitives and logical operations Mon Apr 12 04:23:35 1999 George Lebl * src/eval.c: switched around the order of the indicies for matricies, to be mathematically correct (row,column) not (column,row), and implemented all the @(...,...) operations, including with the equals sign. Plus fixed some error checking for undefined references all over the place and references on setting are not global anymore to be consistent * src/geniustests.txt: added tests for new operations * src/mymath.c,src/funclib.c: implemented "e" using exp(1) Sun Apr 11 15:46:05 1999 George Lebl * src/calc.c: small fixes and some sanitizing, the thing still leaks like hell Sun Apr 11 15:21:11 1999 George Lebl * src/{parse.y,eval.[ch],mpwrap.c}: fix outrageous memory leaks Sun Apr 11 03:05:52 1999 George Lebl * src/{geniustests.txt,mpwrap.c}: add a couple of tests, and fix division of integers Sun Apr 11 02:54:16 1999 George Lebl * src/funclib.c: new functions: prime (for experiments with smaller primes, returns the nth prime for n<=100000), and lcm Sun Apr 11 02:52:36 1999 George Lebl * src/{eval.c,calc.c,parse.y,lexer.l}: add bailout and exception operators so that we may do nice errors from gel functions * src/lib.gel: implement argument checking * src/{eval.c,calc.c,funclib.c,util.c,Makefile.am},configure.in: make a define when using gnome ... and when not using it don't include gnome.h and define _() to be a no-op Fri Apr 09 17:26:55 1999 George Lebl * src/mpwrap.c: sped up exp and ln and implemented floating point pow function using those, exp might be off in precision bits, someone with more clue then I has to look at that I guess Fri Apr 09 01:55:07 1999 George Lebl * src/mpwrap.c: very minor improvements and changes ... these algorithms really do suck Thu Apr 08 20:25:18 1999 George Lebl * src/mpwrap.[ch],src/funclib.c: add exp and ln functions * src/mpwrap.c: fix small leak Mon Apr 05 03:54:10 1999 George Lebl * src/lexer.l: allow _'s in function names * src/funclib.c: implement is_rational,is_float,is_integer and error (which prints an error) functions * src/geniustests.txt: added new tests for new features Mon Apr 05 03:30:28 1999 George Lebl * src/{parse.y,lexer.l}: change matrix index syntax * src/eval.c: implement evaluation of simple matrix index, This doesn't yet do setting of matrix values, which will become a bit tricky * src/funclib.c: implement I function (identity matrix) * src/mpwrap.c: implement mpw_get_long function Mon Apr 05 01:21:01 1999 George Lebl * src/calc.c: set Ans to the last answer * README: updated a bit and added a section on matrix entry Fri Apr 02 15:50:45 1999 George Lebl * src/matrix.h: add parenth for the matrix_index macro to avoid weird problems * src/geniustests.txt: added a test for previously non-working matrix expansion * src/{funclib.c,calc.[ch],genius.c,gnome-genius.c}: made the pretty printing done only when in command line interactive mode Fri Apr 02 02:20:01 1999 George Lebl * src/eval.c: hopefully finished the correct expanding/evaluating of matrices, and the basic matrix handeling * src/calc.c: printing of matricies * src/lexer.l: added alternative way of entering matricies * src/structs.h,src/matrix.c: small fixes * src/parse.y: get rid of debug info * src/geniustests.txt: added tests for matrix expansion * configure.in: raise version to 0.2.2 Thu Apr 01 02:36:39 1999 George Lebl * src/genius.c,src/gnome-genius.c: look for the library file in the current directory as well * src/parse.y,src/matrix.[ch]: more work on the matrix stuff, hopefully finished the matrix ADT, and finished parsing and reading of a matrix Thu Mar 25 01:11:32 1999 George Lebl * src/lib.gel: added nCr, nPr and fib(for fibonacci numbers), dumb and simple functions * src/lexer.l: accept string longer then one character * src/funclib.c: print functions don't print "'s around strings Thu Feb 18 23:50:19 1999 George Lebl * src/genius.c,src/gnome-genius.c: read /share/genius/lib.gel and ~/.gnomeinit on startup as gel programs * src/funclib.c: set error_num=0 on error to keep the expression * src/lib.gel,Makefile.am: new library file, now has prod and sum functions Thu Feb 18 01:39:52 1999 George Lebl * src/mpwrap.[ch]: implemented floor,ceil,trunc,abs and corrected round * src/parse.y,eval.c: added || absoulte operator * src/funclib.c: added floor,ceil,trunc,min and max functions Thu Feb 11 02:29:17 1999 George Lebl * src/mpwrap.[ch],src/funclib.c: added a gcd function and fixed a couple of errors Thu Feb 11 02:03:48 1999 George Lebl * src/mpwrap.[ch]: _move function to speed up working with temporaries, and on the fly allocation of gmp structs for more speed and less memory usage Thu Feb 11 00:51:12 1999 George Lebl * src/mpwrap.[ch]: add native int type for faster calculation, but gains are fairly minimal, corrected errors with negative exponentiation on integers * src/{eval.c,calc.c,dict.[ch],parer.y,lexer.l}: fixed a whole bunch of errors, segfaults and memory leaks, and implemented a token system somewhat like the x atoms to avoid hash table lookups. This can speed up execution quite a bit. Sat Jan 09 06:56:31 1999 George Lebl * gnome-genius.c: standardize menus and use appbar for menu hints 1999-01-02 Christopher Blizzard * src/Makefile.am: Add rules to generate the parse.h file. Wed Dec 2 22:23:40 PST 1998 Manish Singh * lexer.l: fix small typo Mon Nov 30 02:29:55 1998 George Lebl * src/*: merge in the GEL2 language stuff, the old GEL is dead, long live the new GEL Thu Nov 26 21:55:59 EST 1998 Gregory McLean * gnome-genius.c : gtk_clist changes to sync with new gtk. Thu Nov 19 16:20:16 CST 1998 Richard Hestilow * gnome-genius.c, gnome-genius-ide.c: Added underscore accelerators, no longer right justify "Help" menu either. Sat Nov 7 22:10:05 PST 1998 Manish Singh * gnome-genius.c * gnome-genius-ide.c: commented out bogus GNOME_APP_UI_HELP entry. Updated for new gnome-init params Mon Sep 28 22:05:19 1998 George Lebl * src/mpwrap.c: fixed a couple of bugs Sat Sep 19 15:05:42 1998 George Lebl * src/mpwrap.c: optimized use of gmp vars with a copy-on-write type alg, and got rid of a few temp gmp vars for common special cases, this makes genius about twice as fast on my tests Fri Sep 18 20:31:29 1998 George Lebl * src/eval.c: profiling, I will need to make a copy-on-write type varibales for the gmp variables, in large computations, genius goes nuts with gmp calls Fri Sep 18 18:22:39 1998 George Lebl * src/genius.c: fix bug to allow processing of more then one expression per file * src/{calc.[ch],genius.c,gnome-genius.c,funclib.c}: made the output function utilize file handles as well for saner use with the command line * src/{lexer.l,parser.y}: add possibility of changing the ntoation within an expression (this was just too cool not to add, but I doubt it's all that usefull) Fri Sep 18 01:22:06 1998 George Lebl * src/{eval.c,calc.c,structs.h,mpwrap.[ch]}: cleanups in structures and memory handling Thu Sep 17 01:17:54 1998 George Lebl * src/matrix.[ch]: more matrix lowlevel work * src/{eval.c,dict.c}: keep a free list of tree_t/func_t nodes and fix a memory leak Sun Sep 13 23:45:11 1998 George Lebl * src/lexer.l: better prompt, comments * src/{parse.y,calc.c,eval.c}: NULL command '.', it makes the expression return empty string (null) * src/funclib.c: print function * src/genius.c: act like a real unix interpretor, so one can now write genius scripts 1998-09-14 Nuno Ferreira * po/pt.po: Updated. Sun Sep 13 19:21:49 PDT 1998 Manish Singh * configure.in: correct test for -lgmp2 case Sun Sep 13 03:26:50 1998 George Lebl * configure.in,src/{lexer.l,calc.c,genius.c}: make it possible to build even if readline isn't found Sun Sep 13 01:21:46 1998 George Lebl * genius.c: now fully functional command line version * funclib.c: couple of administrative functions * parse.y,lexer.l: add some matrix reading code (far from done) * parse.y,lexer.l,calc.[ch]: make it work with the command line version and readline Thu Sep 10 21:32:10 1998 George Lebl * src/parse.y: added grammar for matrixes, now to just fill in the code:) * src/geniustest.pl: made it print out the number of errors encountered Thu Sep 10 15:56:58 1998 George Lebl * src/parse.y: more general index grammar Thu Sep 10 15:43:07 1998 George Lebl * src/parse.y: start on the grammar for matrix support Wed Sep 09 23:39:49 1998 George Lebl * Restructuring, there will be 3 programs in the future, gnome (the command line script like interface), gnome-genius which will basically be the current one, and gnome-genius-ide which will be the IDE style interface Wed Sep 09 23:10:51 1998 George Lebl * src/dict.[ch],src/structs.h: made a dictinary hash, plus made stacks into glists, should be faster and less memory hungry now Sat Aug 08 23:38:43 1998 George Lebl * genius.c: added a dumb scientific frame, it's dumb and ugly, the interface really does need to be reworked 1998-07-01 Nuno Ferreira * genius.desktop: Added Portuguese translation. 1998-06-10 Chris Lahey * geniustest.c: #included for std{err,in}. Thu May 14 07:52:40 1998 George Lebl * mpwrap.c: convert imaginary to integer if it's 0 when uncomplexifying, complex support in mod most likely makes no sense Thu May 14 07:23:48 1998 George Lebl * mpwrap.c: hunted down a sigfpe, and added complex division (all that is missing now is pow and mod) * genius.c: cleanups, fixed bug where the properties could only be shown once. Thu May 14 04:57:34 1998 George Lebl * genius.c: fixup the errorbox show code Sat Apr 25 21:28:38 1998 Havoc Pennington * genius.c: Use GnomePropertyBox. This basically involved reversing tmpstate and curstate in setup_calc; before we saved original in tmpstate while changing curstate, now we change tmpstate and copy back to curstate on apply. Also declare tmpstate static, since it's used after the function returns. Tue Apr 21 14:45:41 1998 George Lebl * genius.c: get sane defaults when config file is not found Tue Apr 14 01:04:46 1998 George Lebl * *.[chly], README: copyright notice updates, README updates Wed Apr 08 02:13:23 1998 George Lebl * mpwrap.c: fixed a bug in mpwl_pow_ui, and made functions to do powers of mpz's instead of ui, to eliminate a stupid limit. Wed Mar 27 13:19:00 CST 1998 Arturo Espinosa * genius.c: Final touches for the properties dialog by arturo & aspuru. Wed Mar 27 12:41:00 CST 1998 Alan Aspuru Guzik * genius.c: The thing now saves and loads its properties. Wed Mar 27 12:00:00 CST 1998 Arturo Espinosa * genius.c: Modal dialog for properties (used to be options). Wed Mar 25 22:15:18 CST 1998 Arturo Espinosa * genius.c: Clean-up. gnome_config & gnome_stock stuff. Tue Mar 24 20:28:32 1998 George Lebl * lexer.l: generate an error on base >36 integers (parse error) * mpwrap.c: radically faster power function for float^ui, but this improves everything except rat^int and int^int, thx to Havoc Pennington for pointing that out. Sat Mar 21 15:31:20 1998 Tom Tromey * genius.c: Use gnome_message_box_*, not gnome_messagebox_*. Sun Mar 8 16:37:50 1998 Tom Tromey * calc.h: Renamed error_t to calc_error_t. * Makefile.am (INCLUDES): Added GNOME_INCLUDEDIR. * genius.c (main): Use new gnome_init. Mon Mar 02 14:25:47 1998 George Lebl * mpwrap.[ch]: partial support for complex numbers * funclib.c: a few new functions * parse.y,lexer.l: cleanup imaginary numbers 1998-03-01 Raja R Harinath * genius.c (addkey): `current_pos' is now part of GtkEditable, not GtkEntry. Thu Feb 26 22:57:39 1998 Tom Tromey * Makefile.am (BUILT_SOURCES): New macro. 1998-02-19 Federico Mena Quintero * genius.c (main): Added app_id "genius". 1998-02-19 Carsten Schaar * Makefile.am (genius_LDADD): Added '$(INTLLIBS)' (geniustest_LDADD): Added '$(INTLLIBS)' Tue Feb 17 21:32:43 1998 Miguel de Icaza * Internationalization. Tue Feb 17 21:24:17 KST 1998 Changwoo Ryu * genius.c (geniuserrorbox): Fixed gnome_messagebox use. Thu Feb 05 01:21:44 1998 George Lebl * genius.c: clist now expands the column according to the largest entry, result has white background, and the clist has two columns so that expresison and result line up Fri Jan 30 12:33:04 1998 Tom Tromey * Makefile.am (EXTRA_DIST): Include genius.desktop. (geniustest_LDADD): Include $(INTLLIBS). (genius_LDADD): Likewise. Thu Jan 29 03:45:15 1998 George Lebl * util.c: fixed stack pop (this was an ugly bug) Thu Jan 29 02:07:37 1998 George Lebl * util.[ch],calc.c,eval.[ch]: using GList for stacks now which makes some parts better, can't really use them for context stacks though 1998-01-28 Raja R Harinath * Makefile.am: Don't install geniustest. Misc fixes. Tue Jan 27 20:52:56 1998 George Lebl * eval.c: fixed unitialized variable use Mon Jan 26 00:35:15 1998 George Lebl * genius.c: chage Quit to Exit, use CList, when row is selected it is put into the entrybox Tue Jan 13 22:21:25 1998 George Lebl * mpwrap.c: if the result would be complex, an error is returned for now Tue Jan 13 21:24:10 1998 George Lebl * parse.y: UMINUS and NEG bind more closely then ^ * mpwrap.c: fixed a cosmetic error in format_float with 0.0 displaying 0. instead of 0 Tue Jan 13 19:49:29 1998 George Lebl * mymath.c: e is calculated as a float not rational :) * mpwrap.[ch]: new function, mpw_make_float Mon Jan 12 02:54:50 1998 George Lebl * Makefile.am,geniustest.c,geniustest.pl,geniustests.txt: simple files for testing may be a base for a command line implementation of genius (geniustests.txt are some tests) * eval.c: fixed YET ANOTHER BUG in copynode (didn't set new args to NULL when the old ones were NULL, STUPID!) * mymath.c: fixed a small memory leak in getpi * mpwrap.c: fixed pow_ui, fixed pow_q Sun Jan 11 19:03:13 1998 George Lebl * funclib.[ch]: ported to mp wrappers * util.c: a minor bug fixed in my_realloc Sun Jan 11 19:00:12 1998 George Lebl * mpwrap.c,mpwrap.h,Makefile.am: added the MP wrapper functions. * mymath.[ch]: ported to the new mp wrappers * calc.[ch]: ported to mp wrappers * eval.[ch],structs.h,lexer.l,parse.y: ported to the new wrappers * eval.c: fixed a bug in copynode Sat Jan 10 15:41:27 1998 George Lebl * eval.c: "while" now works right * README: examples updated to work * eval.[ch],calc.c: took out primstr, and reimplemented a better function in calc.c, this one now has the right output (only spits out infix notation) * calc.h: added all prototypes * calc.c: got rid of some unused vars, added #include "dict.h" * eval.c: got rid of some unused vars * dict.[ch]: d_initcontext is now void not int * struct.h,dict.[ch],calc.c,eval.c,lexer.l: slight changes in naming to be more consistent * calc.[ch],genius.c: added function to add missing parentheses on the end of expression to calc, and made it do just that in genius.c * genius.c: the entrybox is cleared after an expression is evaluated Sat Jan 10 00:45:07 1998 George Lebl * lexer.l,parse.y,eval.[ch]: added logical and,or,xor and not operators. ! was not touched and still means factorial * README: updated * Makefile.am: using YACCFLAGS for arguments instead fo YACC * eval.c,calc.c: messed with the expression printing to at least print something debuggable before making it right * eval.c: secondright is now copied, this fixes ifelse * lexer.l: fixed a bug in argument references during parse * eval.c: while doesn't check for a number (it does it's own evaluation), but it still seems broken Fri Jan 09 21:05:18 1998 George Lebl * genius.c: couple of minor changes, Ctrl-Q now also quits * eval.[ch]: added if,while and ifelse construct operations, also reversed how branches returns the argument (it was wrong) and made a function for telling which ones should get evaluated during calculations (evalnode) * structs.h, eval.[ch]: added a secondright argument to primitives since ifelse needs it * parse.y: added the parsing info for while,if,ifelse. lexer already included it * eval.c: split up evalnode to several functions * README: updated * eval.h: took out an obscolete prototype * eval.[ch],parse.y,lexer.l: added comparison operators, ==,!=,<=>,>,<,>=,<= * genius.c: ! taken out of the numpad, % put in Fri Jan 09 16:17:38 1998 George Lebl * eval.c: fixed another bug in copynode, this fixes some segfaults, and makes global functions work, local ones still segfault * eval.c: fixed a bug in evaluation, first evaluate left THEN the right side. this caused trouble with separators and function declarations * calc.c: the parse error message now says "before" instead of "at" since it makes more sense Fri Jan 09 02:08:11 1998 George Lebl * eval.[ch],parse.y,lexer.l,dict.c: took function declaration from parse time to execution time. Still segfaults all over the place * eval.c: fixed copynode, added function for adding fake function nodes for declarations Thu Jan 08 00:11:22 1998 George Lebl * README: updated to reflect the changes * COPYING: added * genius.c: make floats ints is now disabled by default as it is not too intuitive, meaning it might not do what a user expects Wed Jan 07 23:44:13 1998 George Lebl * dict.[ch]: addfunc now returns a pointer to the actual created record * eval.[ch],parse.y,lexer.y: added a separator primitive, all it does is right side. meaning you can have more expressions after each other and taht will return the value of the last one * dict.[ch]: created dictionary contexts so that local variables/functions are possible * eval.[ch],parse.y,lexer.y,funclib.c: added user function support, not yet completely finished, but it is working quite nicely already, recursion does not yet work and I know what's the problem and will fix it, though there are not yet any structures for programming, there are many MANY small changes around these files to support this Tue Jan 06 18:38:17 1998 George Lebl * eval.[ch],parse.y: added mod ('%') operator Tue Jan 06 15:38:49 1998 George Lebl * genius.c: Make use of the app widget, get rid of buttons in favor of menus, use gnome_init instead of gtk_init, add #include Mon Jan 05 23:14:56 1998 George Lebl * eval.c,calc.c,structs.h: changed some tree_t internals to match the new constant names * eval.c,struct.c: it should be now possible to evaluate user which are just compiled into evaluation trees * util.[ch]: took out makelc * dict.[ch]: made searches case sensitive and added support for user functions * lexer.l,parser.y: added support for no-argument user functions (variables) setting * calc.c: fixed a bug so that the builtin functions don't get added again and again * eval.[ch]: added the '=' operation and changed evalexp to be able to set variables Sun Jan 04 23:50:25 1998 George Lebl * genius.c: accelerator stuff revamped, and all is done through the keypress event, nothing will happen on empty string Sun Jan 04 22:59:28 1998 George Lebl * genius.c: Got the keybindings to work, so it can be completely keyboard driven. ^C quits \n runs calculations. Sun Jan 04 20:57:01 1998 George Lebl * calc.[ch],eval.c,genius.c: implemented calcstate structure, instead of separate variables * genius.c: added some options for the new calcstate structure these are the make results floats and scientific notation * calc.c: if the number of digits is reduced the number is now rounded, implemented scientific notation, implemented conversion to floats, some cleanup, a typo fixed * lexer.l: can now read integers in scientific notation as floats * structs.h,calc.c,eval.c: changed some enum constants' names to be more meaningful * dict.c: small typo to make builtin functions * eval.c: some cleanup, reduced the number of temporaries used in some operations, put switch statements in the code instead of some if/else structures * mymath.c: mympf_pow_ui now safely works when rop and op are one and the same number (it will still not use a temp when the numbers are in fact different) Sat Jan 03 16:57:17 1998 George Lebl * calc.c, eval.c: it's possible to have functions in uncomputed expressions, they will display properly * funclib.[ch]: deleted test_op ("test" function), added functions "cos", "tan", "pi", "e" * mymath.[ch]: created these files for some helper gmp functions * eval.c: taken out mympf_pow_ui and put it into mymath.[ch] added an ugly ans slow temporary way to do exponentials of floats, it converts it to a rational first Sat Jan 03 12:48:31 1998 George Lebl * genius.[ch]: deleted old unused functions, added prototypes to genius.h, added errorreporting functions * calc.c, eval.c: now use the error reporting function Sat Jan 03 02:18:55 1998 George Lebl * eval.[ch], calc.c, parse.y: the stack is now a structure of type evalstack_t, it's a dynamic array now * eval.c: added #include "util.h" * util.c: made my_realloc safer * funclib.c: added #include * funclib.[ch]: sine function added ("sin"), works only for -pi * util.c: proper casting in makelc * dict.c: makebifunc now doesn't segfault. * dict.c: d_addfunc fixed, it adds dictinary entries now * eval.c: added NULL checking to freetree and freetree now does freeargs, not freenode and makefuncd sets n->left and right to NULL ... that made ugly segfaults * eval.c: evalnode now evaluates function args correctly Fri Jan 02 21:21:27 1998 George Lebl * calc.h: removed FACTORIAL_ERROR since it's not a fatal error * eval.c: Should be able to run functions from funclib * funclib.[ch]: removed funclib_exec function since that's obscolete, added addall and test_op functions and there's a "test" function returns sum of three arguments (no typechecking is done and they have to be integers! it's just a testroutine) * calc.c: added #include "funclib.h", and it will add all the funclib functions the first time evalexpr is run.