Changes to 1.0.22
* Add a line plot version of the heat equation FDM animation example,
and improve the surface plot version
* Add argument principle example
* Add two Mandelbrot set examples and a Newton's fractal example
* Add examples for visualizing complex mappings
* Add example vizualizations for Riemann and Darboux sums
* Split the examples into submenus as there is now too many of them
* Add "filled" property to lines to allow drawing filled polygons
* Add LinePlotWaitForClick and LinePlotMouseLocation functions for interactive
programs (used for some of the above new examples)
* LinePlotDrawPoints and LinePlotDrawLine accept a column vector of
complex nubmers.
* Fix possible infinite loop on parse on systems with newer flex
* Fix setting of elements in transposed matrices (vectors)
* Fix doc string to ErrorFunction (Thanks to Ask Hjorth Larsen)
* Fix bad behavour upon double hitting "Run"
* Fix vte deprecations, require 0.26 now
* Fix some strings and fixes to documentation (thanks to Anders Johnsson)
* Fix segfault when trying to swap a protected id with swapwith
* Fix StripZeroColumns behavior on a zero matrix
* Fix Subfactorial (Anders Johnsson), and let Subfactorial, Factorial,
DoubleFactorial apply over matrix.
* Fix some inverse trig functions with complex arguments.
* Other minor fixes including some crashes
* Translation updates (Miguel Rodríguez Núñez, Marek Černocký,
Anders Jonsson, Ask Hjorth Larsen, Alan Mortensen, Balázs Úr,
Mario Blättermann, Christian Kirbach, Мирослав Николић, Daniel Șerbănescu,
Rafael Fontenelle, Piotr Drąg, Tiago Santos, Enrico Nicoletto,
Daniel Mustieles, Julien Hardelin, et moi)
* During making of these changes the author (Jiri) was partially supported by
NSF grant DMS 1362337 and the Oklahoma State University
Changes to 1.0.21
* Add vibrating drumhead modes example, heat equation with explicit FDM,
improve the Laplace FDM example
* Fix output of chopped floating point numbers, especially chopped
imaginary parts
* Fix output of results as floats in pretty print
* Fix SurfacePlotVariableNames to redraw when changing variable names
* Translation updates (Мирослав Николић, Rafael Fontenelle,
Wolfgang Stöggl, Samir Ribic, Piotr Drąg, Miguel Rodríguez Núñez,
Marek Černocký, Dimitris Spingos, Pedro Albuquerque, et moi)
* During making of these changes the author (Jiri) was partially supported by
NSF grant DMS 1362337 and the Oklahoma State University
Changes to 1.0.20
* Add more sizes of icons including SVG, and add Keywords to the .desktop file
* Documentation updates
* Fix PeriodicExtension function
* ErrorFunction (erf) is using MPFR for real values so it is far more precise
and faster
* The Fourier series example is no longer using a hand coded graph and hand
computed series, so it can now be easily modified to show series for
different functions
* Fix GCC 5 compilation
* A couple of minor fixes in the plotting code including one possible crasher
* Translation updates (Wolfgang Stöggl, Marek Černocký, Maria Mavridou,
Мирослав Николић, Miguel Rodríguez Núñez, Daniel Mustieles, Piotr Drag,
Rafael Ferreira)
* During making of these changes the author (Jiri) was partially supported by
NSF grant DMS 1362337 and the Oklahoma State University
Changes to 1.0.19
* New menu: Examples. These are annotated programs that show some
mathematical concept. Generally taken from the classes I have been teaching.
They are installed under prefix/share/genius/examples/ and are mostly using
graphics so only work in the graphical GNOME/GTK version
* New plotting functions: SurfacePlotDrawLine, SurfacePlotDrawPoints,
SurfacePlotClear, PlotWindowPresent
* New rotation animation in the surface plot window
* Fix string constants from compiled library starting with 'E' (funky bug)
* A few fixes
* Translation updates (Miguel Rodríguez Núñez, Daniel Mustieles,
Wolfgang Stöggl, Marek Černocký)
* During making of these changes the author (Jiri) was partially supported by
NSF grant DMS 1362337 and the Oklahoma State University
Changes to 1.0.18
* New general functions: KroneckerProduct (alias TensorProduct), NewtonsMethod,
HalleysMethod, LambertW, LambertWm1, NonzeroColumns, NonzeroElements,
DisplayVariables, PrintTable, SetElement, SetVElement
* New plotting functions: PlotCanvasFreeze/PlotCanvasThaw to improve flicker
if doing animations with genius, and LinePlotDrawPoints function to draw just
points without the line
* While plotting, errors are no longer forced into a dialog, and presence
of errors is indicated in the graph window below the graph
* Allow setting color in LinePlotDrawLine with RGB vector.
* When the vector building notation is done with floats and the final
number is within 2^-20 times the step size of the goal,
assume there were roundoff errors and still add it, just like for loops,
so something like 1.0:0.1:3.0 now works
* Implement subsecond precision in wait function.
* Fix memory corruption error triggered in nested floating point
for loops with a floating point step
* Few minor bug fixes and fix some more compile warnings in gtkextra
* Streamline the compiled file format (saves about 30kb)
* A few improvements to the documentation (yelp sucks donkeyballs!
Just had to say that).
* Translation updates (Rafael Ferreira, Marek Černocký, Daniel Mustieles,
Wolfgang Stöggl, Miguel Rodriguez Nuñez, Piotr Drąg, Wylmer Wang,
Dimitris Spingos, Enrico Nicoletto, Matej Urbančič)
* During making of these changes the author (Jiri) was partially supported by
NSF grant DMS 1362337 and the Oklahoma State University
Changes to 1.0.17
* Better precision for graphs especially when zoomed it a lot, and make font
smaller if needed
* Line plots and parametric plots now allow "fit dependent axis" automatically
when y limits are unspecified. And this is the default in the UI
* Add export of graphs to PDF directly
* Line plot step size is adaptive, also line plots now detect jumps and do not
draw a connecting line, try plotting UnitStep for example
* Use arrow keys to move around a line plot
* left-right arrow keys rotate surface plot
* All plots are now antialiased on the screen (due to GtkExtra update and
cairo usage).
* Update internal GtkExtra to 3.0.5, and forward port all our changes/fixes
(this gets us closer to supporting GTK+3 at some point)
* Completion for "help on function" in the GUI
* Fix FindRootBisection and FindRootMullersMethod
* Factors is now a lot faster on very large numbers (as fast as Factorize)
* Fix placement of labels on surface plots
* A few small fixes and updates to the documentation
* A few minor bugfixes
* Update mersenne primes (new one is known)
* Translation updates (Daniel Mustieles, Marek Černocký, Dimitris Spingos,
Jiro Matsuzawa, Kjartan Maraas, Martin Srebotnjak, Matej Urbančič,
Gil Forcada, Alexandre Franke, Joe Hansen, Miguel Rodríguez)
* During making of these changes the author (Jiri) was partially supported by
NSF grant DMS 0900885 and the University of Wisconsin-Madison
Changes to 1.0.16
* Add SurfacePlotData and SurfacePlotDataGrid functions to draw arbitrary
surface data, to allow more complicated 3d plots and 3d plots from data.
* Add LinePlotDrawAxisLabels and SurfacePlotDrawLegends parameters and
add corresponding UI checkboxes
* Add ExportPlot function to export the current contents of the plot window
to a file from GEL
* Surface plot now allows "fit dependent axis" automatically when
z limits are unspecified. And this is the default in the UI
* Add sinc, BesselJ0, BesselJ1, BesselJn, BesselY0, BesselY1, BesselYn functions
* Plot window slightly bigger (700x500 now) and there are wider
side margins in the lineplot (2D) version to make tick labels always fit,
* In both 2D and 3D plots, tick labels now use scientific notation when
needed to avoid ugly labels
* In surface plot the gradient always shows only the range of the function, so
color is more useful when zoomed out.
* Simpler output when typing "help foo" when foo is neither defined nor
documented.
* When for/sum/prod loops are in terms of floating point numbers and
the final number is within 2^-20 times the step size of the goal,
assume there were roundoff errors and still execute the body
* Handle wider matrices than 2^15 columns in expansion
* Fix flicker when plotting surfaces to allow animations with 3d plots
* Fix possible uninitialized crash when reading badly formed standard library
(should never happen, but ...)
* Fix LinearRecursiveSequence and allow it to take vector for n
* Fix crash on uninitialized variables in conjugate transpose
* Fix crash on extreme zoom out or zoom in of a graph
* Fix derivatives of Im and Re
* Fix file chooser dialogs not starting in current directory
* Avoid double error about uninitialized variables
* Spelling fixes and documentation fixes (me, LucPionchon)
* Require MPFR at least 2.3.0
* Translation updates (Wolfgang Stoeggl, Daniel Mustieles, Matej Urbančič,
Marek Černocký, Aleksej Kabanov, Andika Triwidada, Yuri Myasoedov,
Miguel Rodriguez, Jiro Matsuzawa, Gustavo Jasso Ahuja, Bruno Brouard)
* During making of these changes the author (Jiri) was partially supported by
NSF grant DMS 0900885 and the University of Wisconsin-Madison
Changes to 1.0.15
* New functions CurrentTime, MacaulayRep, MacaulayLowerOperator, MacaulayBound.
* Fix rational powers of negative numbers, and exact negative rational powers.
* Fix zooming in graphs using the mouse when the functions take long to run
* Accept log instead of ln for symbolic derivative when used with only
one parameter
* Translation updates (Maria Majadas, Juan Matias Olmos, Daniel Mustieles,
Gustavo Jasso, Jiro Matsuawa, Marek Cernocky, Bruno Brouard, Matej Urbanic,
Mario Blattermann, Juan Carlos Vallejo Lopez, Christian Kirbach, Jorge
Gonzales, Martin Strebotnjak, Wolfgang Stoggl, Kjartan Maraas, Fram Dieguez,
Joe Hansen, Daniel Serbanescu)
* For some of the changes the author (Jiri) was partially supported by
NSF grant DMS 0900885 and the University of Wisconsin-Madison
Changes to 1.0.14
* Fix some compilation warnings (Vincent Untz, me)
* Fix a crasher
* Optimize and quantize the new pngs for a smaller file
* Translation updates (Inaki Larranaga Murgoitio)
Changes to 1.0.13
* Add ShuffleVector
* Add increment and swapwith operators
* Require gtk 2.18 and fix up some deprecated function usage
* Slightly more cache friendly matrix traversal
* Optimize Combinations, Permutations, SortVector, IntegerQuotient
* Lots of tiny random optimizations
* Open help even if the URI api is broken
* Make pngs in the distribution smaller yet
* Make the compiled library slightly smaller
* Some more vector functions accept null properly
* Minor portability fixes
* Translation updates (Marek Černocký, Daniel Mustieles, Joe Hansen,
Mario Blättermann, Joaquin Ignacio Aramendía, Yinghua Wang,
Juan Matías Olmos, Matej Urbančič, Ask H. Larsen, Kenneth Nielsen)
* For some of the changes the author (Jiri) was partially supported by
NSF grant DMS 0900885 and the University of California, San Diego
Changes to 1.0.12
* Recently used files menu
* Only run ps2epsi on eps output if selected, it can be very slow and
I've realized it's not commonly needed
* Fix handling of comment at the end of file when running from the IDE
* Fix handling of newlines in the lexer
* Fix CrossProduct
* Some self tests were missing in the distro (Matthias Drochner)
* Fix 64 bit build to be warning free
* Fix build on Make 3.82 (Dominique Leuenberger)
* Updated translations (Jorge Gonzales, Matej Urbancic, Marek Cernocky,
Petr Kovar)
* For some of the changes the author (Jiri) was partially supported by
NSF grant DMS 0900885 and the University of California, San Diego
Changes to 1.0.11
* Build fix for some versions of ncurses (Stephan Hegel)
* Minor documentation updates
Changes to 1.0.10
* Allow changing variable names for all plotting functions
* Add SlopefieldTicks, VectorfieldTicks, LinePlotVariableNames, and
SurfacePlotVariableNames, parameters
* Add AskButtons interactive function
* Add RungeKuttaFull, EulersMethodFull functions
* CHANGE: spelling fix: AuxiliaryUnitMatrix doesn't have two l's
* Support for setting legend on LinePlotDrawLine with a "legend" parameter
* Allow comparisons (== and !=) with null, treating it as an empty matrix
* Uses GIO instead of GnomeVFS (Jan de Groot)
* Fix compilation without gtksourceview (thanks to Joe Sapp for pointing this
out)
* Fix some crashes in plotting code
* Allow slopefield solutions to leave plot window by a small fudge factor.
* Fix zooming plots so that we can zoom by moving mouse in any direction
* Fix compilation with newer sealed vte (Vincent Untz)
* Fix up some typos in the documentation (Christian Kirbach, me)
* 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)
* For some of the changes the author (Jiri) was partially supported by
NSF grant DMS 0900885 and the University of Illinois at Urbana-Champaign
Changes to 1.0.9
* Fix matrix expansion. This also fixes AuxilliaryUnitMatrix and JordanBlock.
* Fix several possible crashers.
* Fix a minor memory leak.
* For some of the changes the author (Jiri) was partially supported by
NSF grant DMS 0900885 and the University of Illinois at Urbana-Champaign
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.
* For some of the changes the author (Jiri) was partially supported by
NSF grant DMS 0900885 and the University of Illinois at Urbana-Champaign
Changes to 1.0.7
* 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!
* Fix uninitialized variable in graphing (Matthias Drochner)
* Improve variable substitution for returned functions to be more efficient.
Slightly changes behaviour with respect to global functions and variables
used.
* Plot windows now not treated annoyingly as dialogs
* 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
* Translation updates (Philip Withnall, Jen Ockwell,
Rodrigo Luiz Marques Flores, Daniel Nylander, Mario Blättermann, me)
* For some of the changes the author (Jiri) was partially supported by
NSF grant DMS 0900885 and the University of Illinois at Urbana-Champaign
Changes to 1.0.6
* Draw grid and x/y axis on lineplots in gray, much better readability
* Draw solutions for vector fields
* Add VectorfieldDrawSolution and VectorfieldClearSolutions
* AskString now allows setting a default
* LinePlotDrawLine can change the plot window and draw arrows
* Read-only files are handled properly
* Clip all lines to within the plot window
* LinePlotWindow, SurfacePlotWindow now update the zoom immediately
* Fix zooming into vectorfield/slopefileld/parametric plots
* Fix flicker when plotting
* Fix line plot scale precision in case the x and y axis have very different
scales
* Remove dependence on libgnome/ui
* PLUGIN API CHANGE: interface namespace is cleaned up. But I don't know of
any plugins that exist and thus break.
* An icon for the plot button
* Some optimizations
* Several other minor bugfixes
* Translation updates (Stéphane Raimbault, me)
Changes to 1.0.5
* Fix buffer overrun in print (Simon Munton)
* Fix EulersMethod (and also fix its documentation)
* EulersMethod and RungeKutta now solve systems by accepting vectors
* Fix several memory leaks
* Translation update (Jorge Gonzalez, Javier F. Serrador)
Changes to 1.0.4
* 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.
* Add "Draw legends" checkbox to lineplots
* Add "Reset to original zoom" menuitem and add shortcuts for the zoom items
* Add Eigenvectors (only for 2x2 matrices), Parse, Evaluate, AskString functions
* Update the Mersenne prime list
* Clicking and not dragging on the plot now does a reasonable zoom-in
* Create plot window usable on my netbook
* Fix the compare functions and hence for loops starting at numbers less
than 0.
* Fix the line plot scales
* Fix bug labeling line plot functions and several other minor bugs
in the graphing code.
* Handle system errors (such as "out of file descriptors") more gracefully
* Minor other fixes and cleanup
* 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)
Changes to 1.0.3
Syntax and semantics changes are marked with CHANGE:
* Add "Save Console Output" menu item to save console contents
* Add "Monitor a Variable" menu item to continuously monitor a single
variable
* Wrap nonmatrix output in "Show Full Answer"
* Add IsMersennePrimeExponent, MersennePrimeExponents, IsDefined, undefine
* 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.
* CHANGE: It's Fibonacci in correct spelling, short name is still fib
* Calling internal functions is now slightly faster
* QuadraticFormula built in and more numerically stable
* Gaussian elimination is now faster, and more stable when nonrational
matrices are involved
* NullSpace slightly faster when the nullspace is empty
* Other minor optimizations
* Fix SolveLinearSystem (must return null on nonunique solutions)
* Fix crash related to returning custom functions from functions
* Fix some memory leaks
* Documentation updates
* Translations (Hendrik Richter, L. Lommer, P. Kovar, Andre Klapper, Yannig
Marchegay, Pawan Chitrakar, Jorge Gonzalez, Jonh Wendell, et moi)
Changes to 1.0.2
* Symbolic derivative of erf, yay!
* @() works correctly with null as an empty range returning null (an empty
matrix)
* Saner switching to scientific notation for floating point output
* 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
* Use the icon on our windows
* 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
* Translations (Yannig Marchegay, me)
Changes to 1.0.1
Syntax and semantics 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, especially not on the command line
* CHANGE: Remove IsGaussianInteger, we already have IsGaussInteger alias
IsComplexInteger
* 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 GTK+ 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 editing
* 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)
Changes to 1.0.0
* Killed the internal MPFR. This lib is quite ubiquitous nowadays
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 matrices
* Fix ApplyOverMatrix2, RayleighQuotient
* Fix GCD and LCM aliases with respect to varargs
* 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
* fix for platforms without wordexp (Joerg Sonnenberger)
* Translations (David Lodge, Djihed Afifi, Pema Geyleg, Bruno Brouard,
Stéphane Raimbault, Rémi Le Lijour, Jorge Gonzales, Raivis Dejus, me)
Changes to 0.7.7
* Add IsPositiveDefinite, IsPositiveSemidefinite, QuarticFormula
* SEMANTICS: QuadraticFormula, CubicFormula, Eigenvalues, and DiagonalOf
now consistently return a column vector
* Fix CubicFormula for complex coefficients and better handle real roots,
and use QuarticFormula in PolynomialRoots
* Eigenvalues now computes eigenvalues for 3x3 and 4x4 matrices
* Add undo/redo capability
* CHANGE: It's RayleighQuotient not RaleighQuotient
* "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.
* 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
* 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.
* Cosmetic changes to UI
* Documentation updates
* Fix plugin reading
* Portability fixes
* Translation updates (Pema Geyleg, David Lodge, Francisco Javier F. Serrador,
Djihed Afifi, Pawan Chitrakar, et moi)
Changes to 0.7.6.1
* Fix rational powers
Changes to 0.7.6
* 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
* Fix complex number handling in number of functions, particularly in
all functions that use gaussian elimination and related routines
* Translations updated a teeny bit (Michele Petrecca, me)
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
* GramSchmidt now normalizes its vectors
* 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
* In the GNOME version, resizing works like in gnome-terminal now,
which fixes issues with bleeding edge vte and is probably right anyway
* Update internal MPFR to version 2.2.0 and require at least version 2.2.0
* Other minor fixes
* Translation updates (Francisco Javier F. Serrador, Kjartan Maraas,
Pawan Chitrakar, Chao-Hsiung Liao, Miloslav Trmac, Adam Weinberger)
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
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.
* Translation updates (Adam Weinberger, Miloslav Trmac, David Lodge,
Petrecca Michele, Vincent van Adrighem, Tino Meinen, Jan Moren)
Changes to 0.7.2
* The manual is in Docbook and has been greatly updated (Kai Willadsen, me)
there is even the beginnings of a detailed function reference with links
to Planetmath and Mathworld.
* Better help integration
* 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,
BernoulliNumber, ExactDivision, MoebiusMu (Alessio Frusciante),
IsNonNegativeInteger, LUDecomposition (David W. Hutchison),
EulersMethod, RungeKutta
* Fixed, round, ceil, trunc and Hofstadter
* Few more functions now apply over matrices with matrix arguments
* CompositeSimpsonsRule and Divides are built in for speed
* Treat strings as constants, thus getting pretty good speedups where
strings are used
* 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
* "New" toolbar item
* Fix crashes on non-number matrix multiplies
* Bunch of minor fixes all over
* Help texts are being translated now
* 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)
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
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 completion
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 editing 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 tighter then logical operators 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 ()i operator macro which will multiply 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 necessary
* 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 precedence 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 matrices 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
* deprecated 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