ANNOUNCE: GENIUS 1.0.1 the "Blazing Nullspaces" release

From: Jiri Lebl <>
Date: Sat, 17 Nov 2007 00:02:37 -0600

Genius is a general purpose calculator with many advanced capabilities.
To find out more go to:

Since I recently needed genius for research again, it was obvious that I
needed to improve various parts of it, fix bugs, etc... Of course, not
everything I did relates to my research. The release name does, since I
needed to run a few million iterations of NullSpace function, so it and
PivotColumns are now built in for speed. Also multiplying matrices with
lots of zero entries is much faster now. This is much more fun than using
someone else's math package where you can't twiddle with it.

As you see from the list of changes, this is a substantial update. GtkExtra
graphing has been updated and some hanging/memory bugs were fixed in the
graphing code. So it not only looks better, but also behaves better.

There is a rudimentary "debugging" support, by allowing to you print out
current values of variables and the current backtrace of the interpreter.
Further, there are now memory limits (in the GUI version) so that you can
debug if your GEL code uses way too much memory without having it eat all
your memory.

There's also been changes to printing out answers. Small numbers are now
chopped when they appear next to larger numbers (this is tunable). Also
matrix printouts are much nicer now and don't use tabs. Also tabs
were dropped for matrix input since that was just silly and broken.

GTK+ 2.4 is now required. I know that's ages old, but I'm conservative and
jumping to GTK+ 2.4 feels like I'm requiring the bleeding edge.

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, and nice 2D and 3D
plotting. The GUI version requires GNOME2 (at least glib2 if you don't want
a GUI) a recent enough GMP library and the MPFR library. You can still use
the command line version if you prefer non-gui interface.

Here are the news in 1.0.1:

Syntax and semantical changes are marked with CHANGE:

* GNOME version can now show listing of all user defined global and local
  variables (can display this even while the engine is running, including
  a "backtrace" to aid debugging)
* GNOME version can now check if too much memory is being used and allows
  the user to interrupt the program rather than eat all available memory
  causing the computer to grind to a halt.
* When printing floating point numbers always make sure it is obvious that
  these are floating point by appending .0 when they would look like integers.
* Matrix printing is much nicer now, and possible to copy and paste back in
* Add IsMatrixPositive, IsMatrixNonnegative, version, IsZero, IsIdentity,
  DividePoly, IsSubset
* PivotColumns and NullSpace are built in for greater speed.
* CHANGE: Drop the support for tab as a matrix separator, it didn't
  work properly, especialy not on the command line
* CHANGE: Remove IsGaussianInteger, we already have IsGaussInteger alias
* CHANGE: OrthogonalComplement is with respect to the Hermitian product
* CHANGE: display, printn and print don't follow FullExpressions=false
* The .desktop file now has different Categories setup so will likely appear
  in "Education" or "Accessories" menu rather than "Office"
* Chop small numbers when they appear near other larger numbers. New
  parameters OutputChopExponent and OutputChopWhenExponent
* Fix set theory functions by essentially fixing IsIn. Also fully document
  the behaviour of the set theory functions.
* Update the plotting widgetry from GtkExtra for prettier graphs
  (Sebastian Dröge, me)
* Add "Save all unsaved" menu item
* Add Ctrl->R for "Run"
* Default graphing limits are -10 to 10 for all axis (no more pi as default)
* Require at least GKT+ 2.4 for the GUI.
* Optionally compile with GtkSourceview2 and drop back to
  GtkSourceview1 if unavailable (Sebastian Dröge)
* Fit dependent axis works for parametric plots
* Legend more readable for parametric plots
* Fix loading of files and URIs from the command line
* Errors don't print the full file URI for opened program names
* Confirm closing unsaved programs
* Lots of documentation updates
* Use Binreloc 2.0 so that the package is relocatable
* Slight optimizations
* Handle null in more linear algebra function as an empty matrix/subspace
* Fix command line editting
* Fix showing full answer in the gui.
* Fix hangs in the graphing code by enforcing a minimum plot window size
* Consistently traverse matrices row-wise everywhere
* Remove unused file with nonfree license
* Add --disable-scrollkeeper and --disable-update-mimedb to configure
  (Sebastian Dröge)
* Update the about box
* Updated translations (Jorge Gonzales, et moi)

I no longer run Fedora, but Ubuntu. So no more RPMS, but you should be able
to build RPMS with rpmbuild -ta <tarball>. Genius is now in the Ubuntu
repositories and hence this version should appear there at some point.

Have fun,


George <>
   Before creation God did just pure mathematics. Then He thought it would
   be a pleasant change to do some applied.
                       -- J. E. Littlewood
Received on Sat Nov 17 2007 - 00:02:44 CST

This archive was generated by hypermail 2.2.0 : Sun Apr 17 2011 - 21:00:02 CDT