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
