NEWS 33.7 KB
Newer Older
1 2 3 4 5
Changes to 1.0.11

* Build fix for some versions of ncurses (Stephan Hegel)
* Minor documentation updates

6 7
Changes to 1.0.10

8 9 10
* Allow changing variable names for all plotting functions
* Add SlopefieldTicks, VectorfieldTicks, LinePlotVariableNames, and
  SurfacePlotVariableNames, parameters
11
* Add AskButtons interactive function
12
* Add RungeKuttaFull, EulersMethodFull functions
13
* CHANGE: spelling fix: AuxiliaryUnitMatrix doesn't have two l's
14
* Support for setting legend on LinePlotDrawLine with a "legend" parameter
15
* Allow comparisons (== and !=) with null, treating it as an empty matrix
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
16
* Uses GIO instead of GnomeVFS (Jan de Groot)
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
17 18
* Fix compilation without gtksourceview (thanks to Joe Sapp for pointing this
  out)
19 20
* Fix some crashes in plotting code
* Allow slopefield solutions to leave plot window by a small fudge factor.
21
* Fix zooming plots so that we can zoom by moving mouse in any direction
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
22
* Fix compilation with newer sealed vte (Vincent Untz)
23
* Fix up some typos in the documentation (Christian Kirbach, me)
24 25 26
* Translation updates (Christian Kirbach, Jorge González, Andrej Žnidaršič,
  Kjartan Maraas, Petr Kovar, Mario Blättermann, Fran Diéguez, Matej Urbančič,
  Andrej Žnidaršič, Marek Černocký, me)
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
27 28 29

* For some of the changes the author (Jiri) was partially supported by
  NSF grant DMS 0900885 and the University of Illinois at Urbana-Champaign
30

31 32 33 34 35 36
Changes to 1.0.9

* Fix matrix expansion.  This also fixes AuxilliaryUnitMatrix and JordanBlock.
* Fix several possible crashers.
* Fix a minor memory leak.

Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
37 38 39
* For some of the changes the author (Jiri) was partially supported by
  NSF grant DMS 0900885 and the University of Illinois at Urbana-Champaign

40 41 42 43 44 45 46 47
Changes to 1.0.8

* Buildfixes for Cygwin and parallel builds (Yaakov)
* Check events before executing a command line, fixes a race which results in
  display anomalies on new vte.
* Documentation updates
* Require GTK/GLib 2.12 and use the new tooltips API.

Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
48 49 50
* For some of the changes the author (Jiri) was partially supported by
  NSF grant DMS 0900885 and the University of Illinois at Urbana-Champaign

51 52
Changes to 1.0.7

53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
* SYNTAX: Added a possibility to exactly specify which variables are copied
  into a function's extra dictionary when it is being returned.
    E.g. "`(x) [x0] = (x-x0)" will copy x0 from the current context.  This
  is a lot more efficient than the current behaviour which tries to copy
  everything referenced.
* SYNTAX: Add "local" variables by specifying "local x,y,z" or "local *" as
  the first statement in a function.  Local variables are not visible from
  higher contexts (functions called within)
* CHANGE: all system parameters are now protected and cannot be redefined
  using the "parameter" keyword
* Add UserVariables, UndefineAll, ProtectAll, and add Undefine as an alias to
  undefine.
* Add trigonometric Fourier series related functions:
  NumericalFourierSeriesFunction, NumericalFourierSineSeriesFunction,
  NumericalFourierCosineSeriesFunction, FourierSeriesFunction,
  NumericalFourierSeriesCoefficients, NumericalFourierSineSeriesCoefficients,
  NumericalFourierCosineSeriesCoefficients, PeriodicExtension,
  EvenPeriodicExtension, OddPeriodicExtension
* Fix changing floating point precision!
72
* Fix uninitialized variable in graphing (Matthias Drochner)
73 74 75
* Improve variable substitution for returned functions to be more efficient.
  Slightly changes behaviour with respect to global functions and variables
  used.
76
* Plot windows now not treated annoyingly as dialogs
77 78 79 80 81 82 83 84
* Fix compilation/decompilation of all function attributes.
* Parse/Evaluate with a syntax error at end of string no longer terminate
  genius
* Updated Mersenne stuff for the newest data from mersenne.org and
  fix MersennePrimeExponents
* Fix opening new files from the command line.
* Update the gel library to use the new language features.
* Various other minor fixes
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
85 86 87
* Translation updates (Philip Withnall, Jen Ockwell,
  Rodrigo Luiz Marques Flores, Daniel Nylander, Mario Blättermann, me)

88 89
* For some of the changes the author (Jiri) was partially supported by
  NSF grant DMS 0900885 and the University of Illinois at Urbana-Champaign
90

91 92
Changes to 1.0.6

93
* Draw grid and x/y axis on lineplots in gray, much better readability
94 95
* Draw solutions for vector fields
* Add VectorfieldDrawSolution and VectorfieldClearSolutions
96
* AskString now allows setting a default
97
* LinePlotDrawLine can change the plot window and draw arrows
George Lebl's avatar
George Lebl committed
98 99
* Read-only files are handled properly
* Clip all lines to within the plot window
100
* LinePlotWindow, SurfacePlotWindow now update the zoom immediately
George Lebl's avatar
George Lebl committed
101
* Fix zooming into vectorfield/slopefileld/parametric plots
102
* Fix flicker when plotting
103 104 105
* Fix line plot scale precision in case the x and y axis have very different
  scales
* Remove dependence on libgnome/ui
106 107
* PLUGIN API CHANGE: interface namespace is cleaned up.  But I don't know of
  any plugins that exist and thus break.
108
* An icon for the plot button
109 110
* Some optimizations
* Several other minor bugfixes
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
111
* Translation updates (Stéphane Raimbault, me)
112

113 114 115
Changes to 1.0.5

* Fix buffer overrun in print (Simon Munton)
116
* Fix EulersMethod (and also fix its documentation)
117 118
* EulersMethod and RungeKutta now solve systems by accepting vectors
* Fix several memory leaks
119
* Translation update (Jorge Gonzalez, Javier F. Serrador)
120

George Lebl's avatar
George Lebl committed
121 122
Changes to 1.0.4

George Lebl's avatar
George Lebl committed
123 124 125 126 127
* Add slope and vector field plotting, with a graphical solver for the
  slope fields.
* For graphing add SlopefieldPlot, VectorfieldPlot, SlopefieldDrawSolution,
  SlopefieldClearSolutions functions, and LinePlotDrawLegends,
  VectorfieldNormalized parameters.
128
* Add "Draw legends" checkbox to lineplots
George Lebl's avatar
George Lebl committed
129 130
* Add "Reset to original zoom" menuitem and add shortcuts for the zoom items
* Add Eigenvectors (only for 2x2 matrices), Parse, Evaluate, AskString functions
George Lebl's avatar
George Lebl committed
131
* Update the Mersenne prime list
George Lebl's avatar
George Lebl committed
132 133
* Clicking and not dragging on the plot now does a reasonable zoom-in
* Create plot window usable on my netbook
George Lebl's avatar
George Lebl committed
134 135
* Fix the compare functions and hence for loops starting at numbers less
  than 0.
George Lebl's avatar
George Lebl committed
136
* Fix the line plot scales
George Lebl's avatar
George Lebl committed
137 138
* Fix bug labeling line plot functions and several other minor bugs
  in the graphing code.
George Lebl's avatar
George Lebl committed
139
* Handle system errors (such as "out of file descriptors") more gracefully
George Lebl's avatar
George Lebl committed
140
* Minor other fixes and cleanup
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
141 142 143
* Translation updates (Hendrik Richter, Jesse Aviles, Djihed Afifi, Leonardo
  Ferreira Fontenelle, Fábio Nogueira, Koos, Jonh Wendell, Carlos Eduardo
  Santos, Jorge Gonzalez, Daniel Nylander, et moi)
George Lebl's avatar
George Lebl committed
144

Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
145 146
Changes to 1.0.3

147 148
Syntax and semantical changes are marked with CHANGE:

149 150 151
* Add "Save Console Output" menu item to save console contents
* Add "Monitor a Variable" menu item to continuously monitor a single
  variable
152
* Wrap nonmatrix output in "Show Full Answer"
153
* Add IsMersennePrimeExponent, MersennePrimeExponents, IsDefined, undefine
154 155 156
* CHANGE: zeros, ones, rand, randint, I, SetMatrixSize now accept 0 for size
  and return null as an empty matrix.  wait, IndexComplement
  accept 0 and act accordingly as well.
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
157 158
* CHANGE: It's Fibonacci in correct spelling, short name is still fib
* Calling internal functions is now slightly faster
159
* QuadraticFormula built in and more numerically stable
160 161
* Gaussian elimination is now faster, and more stable when nonrational
  matrices are involved
162
* NullSpace slightly faster when the nullspace is empty
163
* Other minor optimizations
164
* Fix SolveLinearSystem (must return null on nonunique solutions)
165
* Fix crash related to returning custom functions from functions
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
166
* Fix some memory leaks
167
* Documentation updates
George Lebl's avatar
George Lebl committed
168 169
* Translations (Hendrik Richter, L. Lommer, P. Kovar, Andre Klapper, Yannig
  Marchegay, Pawan Chitrakar, Jorge Gonzalez, Jonh Wendell, et moi)
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
170

Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
171 172 173 174 175
Changes to 1.0.2

* Symbolic deriative of erf, yay!
* @() works correctly with null as an empty range returning null (an empty
  matrix)
176
* Saner switching to scientific notation for floating point output
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
177 178 179 180 181 182
* Fix --disable-scrollkeep OMF file installation (Sebastian Dröge)
* Fix .desktop file (Sebastian Dröge)
* Fix extraneous space when prettyprinting fractions
* Fix leaving behind zombie processes when running programs from the IDE
* Fix building without gtksourceview
* Fix building with older gtk by not using GTK_STOCK_INFO
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
183
* Use the icon on our windows
184 185 186
* IsPerfectSquare works on rationals as it should
* don't mod arguments to trig functions ln, log10, log2, zeta, gamma,
  exp, round, trunc, floor, ceil, float, CompositeSimpsonsRule
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
187
* Translations (Yannig Marchegay, me)
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
188

George Lebl's avatar
George Lebl committed
189 190
Changes to 1.0.1

191 192
Syntax and semantical changes are marked with CHANGE:

George Lebl's avatar
George Lebl committed
193
* GNOME version can now show listing of all user defined global and local
194 195
  variables (can display this even while the engine is running, including
  a "backtrace" to aid debugging)
196 197 198
* 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.
199 200
* 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.
201
* Matrix printing is much nicer now, and possible to copy and paste back in
202
* Add IsMatrixPositive, IsMatrixNonnegative, version, IsZero, IsIdentity,
203
  DividePoly, IsSubset
204
* PivotColumns and NullSpace are built in for greater speed.
205 206
* CHANGE: Drop the support for tab as a matrix separator, it didn't
  work properly, especialy not on the command line
207 208
* CHANGE: Remove IsGaussianInteger, we already have IsGaussInteger alias
  IsComplexInteger
209
* CHANGE: OrthogonalComplement is with respect to the Hermitian product
210
* CHANGE: display, printn and print don't follow FullExpressions=false
211 212
* The .desktop file now has different Categories setup so will likely appear
  in "Education" or "Accessories" menu rather than "Office"
213 214
* Chop small numbers when they appear near other larger numbers.  New
  parameters OutputChopExponent and OutputChopWhenExponent
215 216
* Fix set theory functions by essentially fixing IsIn.  Also fully document
  the behaviour of the set theory functions.
217
* Update the plotting widgetry from GtkExtra for prettier graphs
George Lebl's avatar
George Lebl committed
218
  (Sebastian Dröge, me)
George Lebl's avatar
George Lebl committed
219 220
* Add "Save all unsaved" menu item
* Add Ctrl->R for "Run"
221
* Default graphing limits are -10 to 10 for all axis (no more pi as default)
222
* Require at least GKT+ 2.4 for the GUI.
George Lebl's avatar
George Lebl committed
223 224
* Optionally compile with GtkSourceview2 and drop back to
  GtkSourceview1 if unavailable (Sebastian Dröge)
225
* Fit dependent axis works for parametric plots
226
* Legend more readable for parametric plots
George Lebl's avatar
George Lebl committed
227 228 229 230
* 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
George Lebl's avatar
George Lebl committed
231
* Use Binreloc 2.0 so that the package is relocatable
George Lebl's avatar
George Lebl committed
232
* Slight optimizations
233
* Handle null in more linear algebra function as an empty matrix/subspace
234
* Fix command line editting
George Lebl's avatar
George Lebl committed
235
* Fix showing full answer in the gui.
236
* Fix hangs in the graphing code by enforcing a minimum plot window size
237
* Consistently traverse matrices row-wise everywhere
238
* Remove unused file with nonfree license
George Lebl's avatar
George Lebl committed
239 240
* Add --disable-scrollkeeper and --disable-update-mimedb to configure
  (Sebastian Dröge)
George Lebl's avatar
George Lebl committed
241
* Update the about box
242
* Updated translations (Jorge Gonzales, et moi)
George Lebl's avatar
George Lebl committed
243

244
Changes to 1.0.0
245

246 247 248 249 250 251 252 253
* Killed the internal MPFR.  This lib is quite ubiquitous nowdays
  and it's not worth it maintaining our own out of date copy
* Add FrobeniusNumber, GreedyAlgorithm, StirlingNumberFirst,
  StirlingNumberSecond, RayleighQuotientIteration
* IsVector, IsDiagonal, IsUpperTriangular, IsLowerTriangular, nCr (Binomial)
  are now builtin for greater speed
* Hofstadter, HarmonicNumber work over matrixes
* Fix ApplyOverMatrix2, RayleighQuotient
254
* Fix GCD and LCM aliases with respect to varargs
255 256 257 258 259
* Fix bug with printing scientific notation wrt newer gcc optimizations
* The exponent when the automatic scientific notation kicks in now
  depends on the MaxDigits parameter
* It's Pochhammer, not Puchhammer
* Documentation updates
260
* fix for platforms without wordexp (Joerg Sonnenberger)
261 262
* Translations (David Lodge, Djihed Afifi, Pema Geyleg, Bruno Brouard,
  Stéphane Raimbault, Rémi Le Lijour, Jorge Gonzales, Raivis Dejus, me)
263

264 265
Changes to 0.7.7

266 267 268
* Add IsPositiveDefinite, IsPositiveSemidefinite, QuarticFormula
* SEMANTICS: QuadraticFormula, CubicFormula, Eigenvalues, and DiagonalOf
  now consistently return a column vector
269 270
* Fix CubicFormula for complex coefficients and better handle real roots,
  and use QuarticFormula in PolynomialRoots
271
* Eigenvalues now computes eigenvalues for 3x3 and 4x4 matrices
272
* Add undo/redo capability
273
* CHANGE: It's RayleighQuotient not RaleighQuotient
274 275 276 277 278
* "Show Full Answer" menu item to show the full answer in a
  scrollable text window
* "Next/Previous Tab" menu items and accelerators, also
  Programs menu now always displayed and has a "Console"
  menuitem too.
279 280 281 282 283
* Mixed fractions can now be set in the preference box
* The preference box has options for remembering (or forgetting)
  the output/precision settings.  Normally these settings are probably
  temporary and hence we don't want to remember them always.
* Preference box has "Help" button
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
284 285
* When graphing a surface when we encounter complex value or other errors,
  don't assume 0, but just don't graph anything at that point.
286
* Cosmetic changes to UI
287
* Documentation updates
288 289
* Fix plugin reading
* Portability fixes
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
290 291
* Translation updates (Pema Geyleg, David Lodge, Francisco Javier F. Serrador,
  Djihed Afifi, Pawan Chitrakar, et moi)
292

293 294 295 296
Changes to 0.7.6.1

* Fix rational powers

George Lebl's avatar
George Lebl committed
297 298
Changes to 0.7.6

299 300 301 302 303
* Add QuadraticFormula, CubicFormula, PolynomialRoots, CommutationMatrix,
  ToeplitzMatrix, MakeVector, RiemannZeta, GammaFunction
* Add --exec option to execute an expression from the command line
* Add chapter to the documentation on plotting and other minor updates to
  the docs
George Lebl's avatar
George Lebl committed
304 305
* Fix complex number handling in number of functions, particularly in
  all functions that use gaussian elimination and related routines
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
306
* Translations updated a teeny bit (Michele Petrecca, me)
George Lebl's avatar
George Lebl committed
307

308 309 310 311 312 313 314 315
Changes to 0.7.5

* Added functions: CatalanConstant, atan2, NextCombination, CountZeroColumns,
  QRDecomposition, SesquilinearForm, SesquilinearFormFunction
* REMOVED: function GramSchmidtDot, it is now redundant
* SEMANTICS: DotProduct is now the normal (real) DotProduct not the
  hermitian product, places that used DotProduct now use HermitianProduct,
  InnerProduct is now an alias for HermitianProduct
316
* GramSchmidt now normalizes its vectors
317 318 319 320 321 322 323 324 325 326
* GramSchmidt, Projection, VectorAngle have the inner product as optional
  argument now and all take it in the same way
* OuterProduct now actually does outer product
* Port some gel functions to C for speed: StripZeroColumns, IsIn, Intersection,
  SetMinus, HermitianProduct
* Some further small optimizations
* Minor update of the manual
* SYNTAX: entries in a matrix are now evaluated in a logical order rather
  then in the rather odd order they were before.
* MANY fixes to memory management, fixed many leaks and crashes
327 328
* In the GNOME version, resizing works like in gnome-terminal now,
  which fixes issues with bleeding edge vte and is probably right anyway
329 330
* Update internal MPFR to version 2.2.0 and require at least version 2.2.0
* Other minor fixes
331 332
* Translation updates (Francisco Javier F. Serrador, Kjartan Maraas,
  Pawan Chitrakar, Chao-Hsiung Liao, Miloslav Trmac, Adam Weinberger)
333

334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350
Changes to 0.7.4

* Primitive symbolic derivatives of some expressions
* Parametric plots
* Accepts identifiers as well as functions in a number of places
* SYNTAX: When adding a scalar to a square matrix "A+x" now acts as "A+x*I"
  rather then A+x*ones.  If you want to add a scalar to every element of a
  matrix, use .+ and .- operators.  Behaviour is element by element for vectors
  (1 by n or n by 1 matrices)
* SYNTAX: 'call' now binds tighter to allow "x = f call (x)" to act like
  x=(f(x)) rather then (x=f)(x)
* SYNTAX: allow "identifier + string" which creates a string
* Added functions: IsFunctionOrIdentifier, ComposePower, Derivative,
  SymbolicDerivative SymbolicDerivativeTry, SymbolicNthDerivative,
  SymbolicNthDerivativeTry, SymbolicTaylorApproximationFunction
* Many minor fixes

351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367
Changes to 0.7.3

* Update to mpfr 2.1.1
* Documentation update, document the plotting functions for example.
* Blinking cursor can now be turned off in gnome-genius
* Set default precision to 128 bits.  Who needs 256 can set it in the
  preferences.  Also save/restore the precision
* Add LinePlotClear, LinePlotDrawLine functions to allow drawing arbitrary
  lines and to allow a way to do parametric plots until that functionality
  is actually added
* Added: NewtonsMethodPoly, wait
* Lots of work on the internal number structure to make it faster/more
  memory efficient and to fix some possible bugs/issues
* Fix float formatting bug that sometimes caused hangs and crashes
* Fix large leak on element by element operations
* Fix compilation with external mpfr
* Bunch of other little bugs/issues fixed.
George Lebl's avatar
George Lebl committed
368
* Translation updates (Adam Weinberger, Miloslav Trmac, David Lodge,
George Lebl's avatar
George Lebl committed
369
  Petrecca Michele, Vincent van Adrighem, Tino Meinen, Jan Moren)
370

371 372
Changes to 0.7.2

373
* The manual is in Docbook and has been greatly updated (Kai Willadsen, me)
374 375
  there is even the beginnings of a detailed function reference with links
  to Planetmath and Mathworld.
376
* Better help integration
377 378 379 380 381
* We have an icon (Eugenia Loli-Queru)
* Include internal MPFR which is more recent and less buggy then ones
  found on most people's systems (this makes it easier to compile genius
  too)
* Added: CompositeSimpsonsRuleTolerance, GaussFunction, GaussDistribution,
382
  BernoulliNumber, ExactDivision, MoebiusMu (Alessio Frusciante), 
383 384
  IsNonNegativeInteger, LUDecomposition (David W. Hutchison),
  EulersMethod, RungeKutta
385 386 387 388 389
* Fixed, round, ceil, trunc and Hofstadter
* Few more functions now apply over matrixes with matrix arguments
* CompositeSimpsonsRule and Divides are built in for speed
* Treat strings as constants, thus getting pretty good speedups where
  strings are used
George Lebl's avatar
George Lebl committed
390 391 392 393
* When new references are encountered where the variable does not exist we
  create the variable in the current context
* On the plot window use "y=" as a label to indicate what goes in the text
  boxes
394
* "New" toolbar item
George Lebl's avatar
George Lebl committed
395
* Fix crashes on non-number matrix multiplies
396 397
* Bunch of minor fixes all over
* Help texts are being translated now
398 399 400 401
* Translation updates (Adam Weinberger, David Lodge, Miloslav Trmac,
  Amanpreet Singh Alam, Raphael Higino, Vincent van Adrighem,
  Tino Meinen, Jan Morén, Laurent Dhima, Takeshi AIHANA,
  Francisco Javier F. Serrador)
402

403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423
Changes to 0.7.1

* Run EPS output through ps2epsi if it's there which adds a bitmap preview,
  even though this bitmap preview is fairly crappy
* Add PNG export for plots
* Remove some parenthesis from output where they are not needed
* SYNTAX: InfiniteSum, InfiniteSum2, InfiniteProduct, InfiniteProduct2,
  now no longer take the tolerance argument and behaviour is controlled
  by the SumProductTolerance, SumProductSFS and SumProductNumberOfTries like
  other limits and they return null when limit can't seem to be found
* Add: NumericalLeftDerivative, NumericalRightDerivative
* Fix the NumericalLimitAtInfinity function and its use and with that fix
  NDerivative (which is now an alias for NumericalDerivative), IsContinuous,
  IsDifferentiable, Limit, LeftLimit, RightLimit
* Fix the specfile and custom CFLAGS are added after the default ones
  (Florin Andrei, me)
* LinePlot and SurfacePlot no longer crash when called without arguments
* Fix EPS/PS export for older gtk
* Fixup compilation of GtkExtra-2 with gcc 3.4
* Bunch of "optimizations" and minor fixes

424 425 426 427 428 429 430 431 432 433 434 435
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
436
* sin,cos,sinh,cosh now work correctly with complex arguments
437 438 439 440
* 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.
441 442 443 444 445
* 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)
446

447 448 449 450 451
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.
George Lebl's avatar
George Lebl committed
452
* More UTF-8 cleanup so other languages should work now
453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469
* 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
George Lebl's avatar
George Lebl committed
470 471 472
* 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)
473

474
Changes to 0.6.0
475 476 477 478

* Zooming/Fitting support on the line plots
* Line plots can now be invoked from a GUI
* Scale is printed on line plots
479 480
* In case GTK+ 2.4 is used, use the new file chooser dialog, but still
  compile with older gtk
481
* Some fixes in case GTK+ 2.4 is used
482 483
* Allow compilation without GNOME to get the barebones command line
  version
484 485 486 487
* 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
488 489
* SYNTAX: New operator := which acts just like = but is never translated
  to ==
490 491
* SYNTAX: e^x now translated to exp(x) for better precision (and should be
  teeny bit faster too)
492 493 494 495 496
* 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
497
* Add rotation matrices (2D and 3D euclidean space)
498
* Fix compilation of parameters
499 500
* Fix interruption with ^C
* Lots of other minor fixes
501
* Documentation updates
502 503 504
* 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)
505

Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
506 507 508 509
Changes to 0.5.7.1

* Fix spinners in the preferences

Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
510 511 512 513 514 515 516 517 518 519 520 521 522 523
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)

Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550
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)

551 552 553 554 555 556
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
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
557 558
* Also print the number line in the status box, this makes it much easier
  to find parse errors.
559
* Add SqrtModPrime, IsPrimitiveModWithPrimeFactors,
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
560
  SilverPohligHellmanWithFactorization
561 562
* SYNTAX: use SqrtModPrime when sqrt is called in mod context (only if the
  modulo is a prime, otherwise we print an error)
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
563 564
* Other minor fixes.
* Some new translations apparently too (Swedish by Christian Rose)
565

Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605
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

George Lebl's avatar
George Lebl committed
606 607
Changes to 0.5.3

608 609
Note the syntax changes marked with 'SYNTAX:'

610
* Very basic line graphing of R->R functions with LinePlot function
611 612 613 614
* 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.
George Lebl's avatar
George Lebl committed
615
* "a^b mod m" is now done sanely and fast just like the PowerMod function
616 617
* Rudimentary MathML output support
* Add Copy Answer As Plain/LaTeX/MathML/Troff menu items
618 619 620
* 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
George Lebl's avatar
George Lebl committed
621 622
  kind of experimental
* Increase some limits on factorizations
623 624 625
* 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
626 627
* Rational powers now return integers if possible, and so the
  SymbolicSquareRoot and SymbolicNthRoot functions are not neccessary
George Lebl's avatar
George Lebl committed
628 629 630 631
* 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
632
* Add MaximalPrimePowerFactors, PrimeFactors and CombineFactorizations,
633 634 635
  RemoveFactor, Gravity (the gravitational constant), EulerConstant,
  FermatFactorization, IsGaussInteger, IsPositiveInteger, MillerRabinTest
* Use MillerRabinTest in IsPrime adding a config parameter for this
636 637
* Remove SymbolicSquareRoot, SymbolicNthRoot (sqrt and rational powers
  is the same thing)
638
* Add some new aliases for a few functions
George Lebl's avatar
George Lebl committed
639 640
* Better EulerPhi implementation
* Fix Factors
641 642 643 644
* 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
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
645
  (such as foo@(2,:))
646
* Add an Edit menu with Copy and Paste
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
647 648
* Add "Really want to quit" dialog and allow quitting while calculations are
  running
649
* Allow reading arbitrarily long compiled file record lines
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
650
* Some very minor leaks fixed
651 652 653 654
* 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.
655
* A number of minor bugs squashed
656
* And finally a new small easter egg
George Lebl's avatar
George Lebl committed
657

658 659
Changes to 0.5.2

660 661
* 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.
662 663
* Use vte instead of zvt since zvt was giving me fits (vte is on the other
  hand giving me different fits).
664 665
* Fix precendence of defining a function (now "function f(x) = foo mod bar"
  will work as expected)
666
* Using rationals in modular mode will take the inverses mod n
667
* Negative powers and division of matrixes in modular mode
668 669 670 671 672 673 674
* 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
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
675 676
* In latex output mode we print [] instead of () for matrices since
  I think it's nicer
677 678
* 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
679 680
* The .desktop is now updated, using intltool and installed in proper new
  location and all that good stuff
Jiri (George) Lebl's avatar
Jiri (George) Lebl committed
681 682
* Fixed the gettext/intltool stuff, now actually installs translations
  correctly and all that
683 684
* Random minor fixes and cleanup

685 686 687 688 689 690 691 692 693 694 695 696 697
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

George Lebl's avatar
George Lebl committed
698 699 700 701 702 703 704 705
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
706
* Matrix indexes can now be vectors like in matlab
George Lebl's avatar
George Lebl committed
707
* Many new functions
708
* New commands (ls, help, pwd, cd)
George Lebl's avatar
George Lebl committed
709
* Many random fixes
710
* And much MUCH more
George Lebl's avatar
George Lebl committed
711

George Lebl's avatar
George Lebl committed
712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771
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