Euler (software)

Euler (now Euler Mathematical Toolbox or EuMathT) is a free and open-source numerical software package. It contains a matrix language, a graphical notebook style interface, and a plot window. Euler is designed for higher level math such as calculus, optimization, and statistics.

The software can handle real, complex and interval numbers, vectors and matrices, it can produce 2D/3D plots, and uses Maxima for symbolic operations. The software is compilable with Windows. The Unix and Linux versions do not contain a computer algebra subsystem.

History
Euler Math Toolbox originated in 1988 as a program for Atari ST. At that time, the title of the program was simply Euler, but it turned out to be too unspecific for the Internet. The main aim of the program was to create a tool for testing numerical algorithms, to visualize results, and to demonstrate mathematical content in the classroom. Euler Math Toolbox uses a matrix language similar to MATLAB, a system that had been under development since the 1970s. Then and now the main developer of Euler is René Grothmann, a mathematician at the Catholic University of Eichstätt-Ingolstadt, Germany. In 2007, Euler was married with the Maxima computer algebra system. Symbolic expressions and other functions were added to communicate with Maxima, and to reach a good degree of integration into the numerical Euler core.

Overview
The Euler core is a numerical system written in C/C++. It handles real, complex, and interval values, and matrices of these types. Other available data types are sparse, compressed matrices, a long accumulator for an exact scalar product, and strings. Strings are used for expressions, file names etc. Based on this core, additional functions are implemented in the Euler matrix language, which is an interpreted programming language in the style of an advanced BASIC dialect. Euler contains libraries for statistics, exact numerical computations with interval inclusions, differential equations and stiff equations, astronomical functions, geometry, and more.

The clean interface consists of a text window, and a graphics window. The text window contains fully editable notebooks, and the graphics window the graphics output. Graphics can be added to the notebook window too, or can be exported in various formats (PNG, SVG, WMF, Clipboard). Graphic types include line, bar or point plots in 2D and 3D, including anaglyph plots of 3D surfaces and other 3D plots. Euler has an API to use the open raytracer POV-Ray.

Euler handles symbolic computations via Maxima, which is loaded as a separate process, communicating with Euler through pipes. The two programs can exchange variables and values. Indeed, Maxima is used in various Euler functions (e.g. Newton's method) to assist in the computation of derivatives, Taylor expansions and integrals. Moreover, Maxima can be called at definition time of an Euler function.

LaTeX can be used from within Euler to display formulas. For export of formulas to HTML, either the generated LaTeX images or MathJax can be used. A special export option exports all graphics to SVG.

Euler also includes the Tiny C Compiler, which allows subroutines in C to be compiled, and included via a Windows DLL.

Euler has a lot of similarity to MATLAB and its free clones (GNU Octave), but it is not compatible.