Changes to 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)

Changes to 0.6.1

* On undefined identifier error, genius gives you close suggestions
* Black on white mode for the console for those that can't see white
  on black so well.
* More UTF-8 cleanup so other languages should work now
* More fun with font sizes and try to normally deduce the font size for the
  console from the theme font size on startup.  Also don't write the font
  as a preference until it's explicitly set
* Accept file drops and open those files
* Use gnome-vfs for opening and saving files (not for load and run yet)
* Mime stuff so that you can open .gel files from nautilus
* Somewhat nicer display of real fractions
* New functions: cis
* The functions promised in 0.6.0 weren't actually added, this affects:
  Argument, arg, Arg, MoebiusDiskMapping, MoebiusMapping,
  MoebiusMappingInftyToOne, MoebiusMappingInftyToZero,
  MoebiusMappingInftyToInfty.
* When we complain about uninitialized functions/variables, give suggestions
* Fix "number <=> string"
* Some code cleanup
* MacOSX install instructions in INSTALL.MacOSX (Linc Davis)
* Other minor fixes
* Translation updates (Gustavo Maciel Dias Vieira, Raphael Higino,
  Jordi Mallach, Xavier Conde Rueda, Miloslav Trmac, Vincent van Adrighem,
  Tino Meinen, Adam Weinberger, Gareth Owen, Gustavo Noronha Silva)

Changes to 0.6.0

* Zooming/Fitting support on the line plots
* Line plots can now be invoked from a GUI
* Scale is printed on line plots
* In case GTK+ 2.4 is used, use the new file chooser dialog, but still
  compile with older gtk
* Some fixes in case GTK+ 2.4 is used
* Allow compilation without GNOME to get the barebones command line
  version
* SYNTAX: Allow some arithmetic operations on functions, as well as passing
  functions to a few select 1 argument functions such as exp or ln, for
  example: exp(sin) returns a function which does exp(sin(x)) and
  sin^2 returns a function that does sin(x)^2
* SYNTAX: New operator := which acts just like = but is never translated
  to ==
* SYNTAX: e^x now translated to exp(x) for better precision (and should be
  teeny bit faster too)
* Optimize/cleanup the mp wrapper code which on my tests can gain something
  like 40% improvement on code that does lots of handling of smaller integers.
* Add PoissonKernel, DirichletKernel, FejerKernel, MoebiusDiskMapping,
  MoebiusMapping, MoebiusMappingInftyToOne, MoebiusMappingInftyToZero
  and MoebiusMappingInftyToInfty
* Add rotation matrices (2D and 3D euclidean space)
* Fix compilation of parameters
* Fix interruption with ^C
* Lots of other minor fixes
* Documentation updates
* Translation updates (Kostas Papadimas, Petrow Velonis, Vincent van Adrighem,
  Tino Meinen, Danilo Segan, Miloslav Trmac, Robert Sedak, Alastair McKinstry,
  Guntupalli Karunakar, Christophe Merlet, Sebastien Bacher)

Changes to 0.5.7.1

* Fix spinners in the preferences

Changes to 0.5.7

* Add ErrorFunction (erf), InfiniteProduct, InfiniteProduct2
* Allow large integer powers of 1,-1,1i,-1i and do it very fast
* Be nicer with integer powers of pure imaginary numbers
* mpfr seems broken in 4.1.2 causing something like 0.1^(-1.0) to come out
  as 0.1 rather then 10.  Powers will just use exp and ln for now which
  are correct.
* Fix warnings on Kernel([0])
* Don't use DEPRECATED defines to allow compiling with newer gtk+
* Translation updates (Vincent van Adrighem, Metin Amiroff, Jordi Mallach,
  Xavier Conde Rueda, Christian Rose, Miloslav Trmac, Duarte Loreto,
  Tino Meinen)

Changes to 0.5.6

* Several leaks fixed
* Several uninitialized data usage fixed
* Tolerances are floats, add aliases 'Sign' and
  'AbsoluteValue' and add the 'Identity' function
* Lots of internal cleanup including not using deprecated
  stuff.
* Start using vicious-extensions lib, and with that
  the 'genius' binary no longer inits gnome which means
  faster startup and faster regression testing runs
* Lots of random minor optimization
  (both performance and memory usage)
* Some build fixes
* Fix systems without wordexp (FreeBSD ports)
* Allow loading programs from the command line
  to gnome-genius
* Use GtkSourceView if available for syntax highlighting
* Handle change directory for filename completition
  correctly
* GUI a teeny bit HIGgier (but not completely)
* Translation updates (Guntupalli Karunakar, Danilo Segan,
  Vincent van Adrighem, Pablo Gonzalo del Campo,
  Francisco Javier F. Serrador, Duarte Loreto, Christian Rose,
  Guntupalli Karunakar, Wang Jian, Mai Hao Hui, Metin Amiroff,
  Jordi Mallach, Xavier Conde Rueda)

Changes to 0.5.5

Note the syntax changes marked with 'SYNTAX:'

* Fix quite a few DOH! errors in the GUI it should now be usable to
  actually edit and save file and all that
* Also print the number line in the status box, this makes it much easier
  to find parse errors.
* Add SqrtModPrime, IsPrimitiveModWithPrimeFactors,
  SilverPohligHellmanWithFactorization
* SYNTAX: use SqrtModPrime when sqrt is called in mod context (only if the
  modulo is a prime, otherwise we print an error)
* Other minor fixes.
* Some new translations apparently too (Swedish by Christian Rose)

Changes to 0.5.4

Note the syntax changes marked with 'SYNTAX:'

* The GUI now allows editting program files and running them directly from
  the gui.
* SYNTAX: If "log" is used in mod environment it acts as DiscreteLog
* IsEven and IsOdd are now internal and fast
* Use MPFR (if available) for log10 and log2, and add lg as an alias to
  log2
* SYNTAX: Use GMP for the MillerRabinTest and implement StrongPseudoprimeTest,
  IsPrime, and MillerRabinTestSure internally, remove IsPrimeLoopMax and
  PrimeProbabilityEpsilon, MillerRabinTest takes the number of reps to do
  and not the epsilon and there is IsPrimeMillerRabinReps parameter, also
  remove IsPrimeProbability
* SYNTAX: Snarf the Pollard-Rho implementation from GMP examples and use it
  for Factorize.  Whack FactorizeLoopMax
* Use MPFR for EulerConstant if available
* Added MillerRabinTestSure, StringToASCII, ASCIIToString, AlphabetToString,
  StringToAlphabet, LeastAbsoluteResidue, AreRelativelyPrime, DiscreteLog,
  CRT (ChineseRemainder), IsPrimitiveMod, ConvertToBase, ConvertFromBase,
  GetCurrentModulo, MidpointRule, NumericalIntegral, SolveLinearSystem,
  MakeSet, Union, Intersection, IndexCalculus, IndexCalculusPrecalculation,
  FindPrimitiveElementMod, FindRandomPrimitiveElementMod and Compose
* Fixed IsStrongPseudoprime
* Fixed the integer power functions and use MPFR for the float one if
  available.
* Document some functions
* elements, rows, columns accept null and treat it like 0x0 matrix
* SYNTAX: Allow return after comma to break a long vector input
* Mod matrices after all primitives (fixes for example "-[1] mod 2")
* when function is undocumented, print at least a prototype on help
* SYNTAX: 'mod' and 'call' now binds tighet then logical olperators to
  make "if a == b mod n and a == c mod n then ..."
* SYNTAX: I, zeros, ones, rand, randint don't mod their arguments when in
  mod mode
* SYNTAX: null is accepted for the "for in" type loops to mean empty
* Add "Set Theory" category to help
* Fix some crashes and plug many leaks

Changes to 0.5.3

Note the syntax changes marked with 'SYNTAX:'

* Very basic line graphing of R->R functions with LinePlot function
* Use MPFR for some floating point functions such as powers, logs, sin/cos
  and such.  This increases the speed of those operations by about 10 fold
  or more.  I will start migrating towards MPFR only support in the future.
  See www.mpfr.org.
* "a^b mod m" is now done sanely and fast just like the PowerMod function
* Rudimentary MathML output support
* Add Copy Answer As Plain/LaTeX/MathML/Troff menu items
* SYNTAX: A null inside a matrix expansion is treated as an empty matrix.  So
  [null,1,2] will be expanded as [1,2]
* SYNTAX: Allow rationals and integers as complex numbers though this support is
  kind of experimental
* Increase some limits on factorizations
* SYNTAX: Add (<expr>)i operator macro which will multiply <expr> by i
* SYNTAX: Negation parsing changed -1^k still parses as (-1)^k but -a^k parses
  as -(a^k) (where a is anything but a number
* Rational powers now return integers if possible, and so the
  SymbolicSquareRoot and SymbolicNthRoot functions are not neccessary
* Nicer printing of complex numbers
* Printing fixes
* Fractions printed nicely in troff and latex mode
* Fix crash on setting built in parameters if there is an exception
* Add MaximalPrimePowerFactors, PrimeFactors and CombineFactorizations,
  RemoveFactor, Gravity (the gravitational constant), EulerConstant,
  FermatFactorization, IsGaussInteger, IsPositiveInteger, MillerRabinTest
* Use MillerRabinTest in IsPrime adding a config parameter for this
* Remove SymbolicSquareRoot, SymbolicNthRoot (sqrt and rational powers
  is the same thing)
* Add some new aliases for a few functions
* Better EulerPhi implementation
* Fix Factors
* SYNTAX: Fix precedence of : to be lower then that of standard arithmetic
  operators
* SYNTAX: Factorial now binds more closely then power
* SYNTAX: Allow more matlab like notation of getting whole rows/columns
  (such as foo@(2,:))
* Add an Edit menu with Copy and Paste
* Add "Really want to quit" dialog and allow quitting while calculations are
  running
* Allow reading arbitrarily long compiled file record lines
* Some very minor leaks fixed
* Fix interrupting input while not calculating anything (this was a nasty
  bug that prevented any further thing to be evaluated)
* Don't allow executing anything if something else is executing, thus causing
  a crash.
* A number of minor bugs squashed
* And finally a new small easter egg

Changes to 0.5.2

* UP TO DATE ONLINE MANUAL: well, don't be too excited, it's just a text
  file, but can now be viewed directly from genius.
* Use vte instead of zvt since zvt was giving me fits (vte is on the other
  hand giving me different fits).
* Fix precendence of defining a function (now "function f(x) = foo mod bar"
  will work as expected)
* Using rationals in modular mode will take the inverses mod n
* Negative powers and division of matrixes in modular mode
* Implement IsPrimeProbability, LucasNumber, ModInvert, EulerPhi,
  Subfactorial, GoldenRatio
* Use gmp for NextPrime
* Kill some unimplemented functions so that people don't get confused
* Some function renaming (where old syntax was used) and some more help
  strings
* The help output is now nicer
* In latex output mode we print [] instead of () for matrices since
  I think it's nicer
* The readline helper is now in the libexec directory as it should be
* Fixup the plugin API a bit and hide the test plugin from the GUI
* The .desktop is now updated, using intltool and installed in proper new
  location and all that good stuff
* Fixed the gettext/intltool stuff, now actually installs translations
  correctly and all that
* Random minor fixes and cleanup

Changes to 0.5.1

* Fix rounding when first digit is rounded and is 9 (reported by
  Kai Arstila)
* Fix atan by using implementation from Guillermo Ballester Valor
  (reported by Kai Arstila)
* Few more functions: Stupid eigenvalue function for 2x2 matrices,
  RaleighQuotient
* Reverse the direction of the vandermonde matrix to coincide with how
  we use polynomials
* Fix modular arithmetic on single values and matrices
* Cache identity matrices for speed

Changes to 0.5.0

* Stack based execution engine, allows much deeper recursion
* User parameters
* Better help support
* Syntax changed to be nicer and/or more matlab like in places
* New operators: !! ./ .\ .* .^ .% .'
* Sum and product loops
* Matrix indexes can now be vectors like in matlab
* Many new functions
* New commands (ls, help, pwd, cd)
* Many random fixes
* And much MUCH more

Changes to 0.4.6

* accept more different formats of floats in scientific notation
* fix problems with hangs on help and large dialogs

Changes to 0.4.5

* modular arithmetic support (e.g. "expr mod n")
* different parsing of files on the load line (you can now pass multiple
  files with quotes everywhere, just like in a shell
* plugin toplevel command to load plugins from command line
* more function descriptions for the help command
* possibility to run gel function from inside of genius code
* exp function now behaves properly for matrices (sort of)
* setting calculator parameters is now more natural, just as setting variables
* option for maximum line output length for expression output, and for
  maximum number of errors printed
* backdivision for matrices (e.g. X=A\B means A*X=B)
* bug and portability fixes

Changes to 0.4.4

* bugfixes, bugfixes, bugfixes
* very very very initial shlib plugin support

Changes to 0.4.3

* depreceated the bc way of adding functions
* better interactive parsing
* i18n actually works

Changes to 0.4.[12]

* new gnome frontend

Changes to 0.4 (includes all changes from all >0.3.1)

* new syntax for writing functions, more math like
* functions are now passed by value not by reference, this is unfortunately
  backwards incompatible but adds consistency and flexibility, so just instead
  of sum(4,5,&func) you'd write sum(4,5,func), with anonymous functions,
  the calling syntax does not change. inside the function then, one would use
  func(...) instead of *func(...)
* library file is compiled now for quick startup
* many new functions
* more matrix support
* complete complex number support with new operators

Changes to 0.3 (includes all changes from all >0.2.1)

* matrix support
* a couple of new operators (absolute value, get element/row/column, transpose)
* whole bunch of new functions

Changes to 0.2

* no more postfix, no more prefix, everything is infix
* conditionals are better
* variable/function references
* anonymous functions
