Genius 0.7.0
To find out what Genius is, skip a few paragraphs down, or go to
http://www.jirka.org/genius.html
My wife left for a weeks conference and so in the meantime I did
not waste any time and went on a late night hacking binge and the
result is that I’ve integrated the GtkPlot* and friends from the
GtkExtra-2 library and so we now have printing in the lineplots,
but far more cool is the fact that we have graphing of surfaces.
See the SurfacePlot function and the surface tab in the “Create
Plot” dialog. It’s still not exactly as slick and polished as it
should be, but it should be basically usable.
Other fun things are new native boolean type so that genius says
‘true’ instead of ‘1’ when it means true and ‘false’ instead of ‘0’
when it means ‘you are full of crap’.
I’ve also done a bunch of internal restructuring with the result
that the engine now takes a little less memory on deep recursion,
but otherwise no real difference is seen.
In any case, Genius is one of the oldest GNOME projects, it has
been the original GNOME calculator before I got wild ideas about it
doing absolutely everything. It is programmable has a powerful
language and handles many fun features including matlab like
support for matrices. It requires GNOME2 (at least glib2 if you
don’t want a GUI) and a recent enough gmp library. However you can
still use the command line version if you prefer non-gui
interface.
There is still a lot of work required to make this all nice,
mostly it needs to have the function library improved and verified
to be correct and documentation needs to be written (the complete
help system is not yet in place). Feel free to help out 🙂
Here are the news in 0.7.0:
- Replaced plotting with the plotting widget from GtkExtra-2
(private copy included, no new dependency), this has several new
implications:- Plots can be printed or exported to PS or EPS
- 3D surface plots are supported
- SYNTAX: Native boolean type, true/false are the constants and
added IntegerFromBoolean and IsBoolean functions. Should still be
source compatible - Fixed saving files warnings about existing files and fixed bad
warning on loading files - StandardDeviation now works
- sin,cos,sinh,cosh now work correctly with complex
arguments - Some memory profiling. Allocate internal structures in long
continuous blocks and further fixup the engine to be nicer with
separator nodes which can now take a lot of arguments and really
whack the result of all but the last expressions at once. - Work around a mpfr problem when it could return a negative
value for rand() - Translation updates (Estevao Samuel Procopio, Vincent van
Adrighem, Adam Weinberger, Miloslav Trmac, Laurent Dhima, David
Lodge, Gustavo Maciel Dias Vieira, Raphael Higino, Gareth
Owen)
http://ftp.gnome.org/pub/GNOME/sources/genius/0.7/
ftp://ftp.5z.com/pub/genius/
http://www.jirka.org/genius.html
The RPM at the 5z site is built on Fedora Core 2 with all the
bells and whistles of GNOME 2.6. Note that Fedora Core 2 has all
the right things including MPFR.
You can also build RPMS on older redhat’s with rpmbuild -ta
<tarball>, you should also get the updated GMP RPM which has
MPFR enabled since that’s a lot better then internal FP routines of
genius. RPM for that for redhat 8 is on the 5z site.
Have fun,
George
PS: No silliness scheduled for failure of brain to function in
silly mode. Attempts at generation of a silly message in this space
have resulted only in these silly brain error messages.
—
George <jirka@5z.com>
A good memory is needed after one has lied.
- Pierre Corneille