Euler Math Toolbox Changelog

What's new in Euler Math Toolbox 2024-01-12

Jan 12, 2024
  • There have been a lot of small fixes in the documentation and a change in the Visual C++ version which are not documented here.
  • The file hosting has also been changed. Details are on the home page of EMT.

New in Euler Math Toolbox 2022-05-18 (May 19, 2022)

  • Fixed a small error in the Gamma function.

New in Euler Math Toolbox 2022-03-10 (Mar 10, 2022)

  • There is now a prefix version of nonzeros() named "sel" (for "select").
  • All key combinations Ctrl-Alt have been changed to Ctrl-Shift. This seems to be less confusing for the user.
  • I worked on the example about the DOF of an ideal lens, making it much clearer and adding a formula for the Bokeh.

New in Euler Math Toolbox 2022-02-26 (Feb 26, 2022)

  • The download is now possible only via Sourceforge.

New in Euler Math Toolbox 2021-12-12 (Dec 14, 2021)

  • Fixed the "limits" parameter of plot3d for scaled output, and added more documentation for this parameter. "limits" should be 1x2 vector [zmin,zmax], and will cut off exceeding z-values. It works only for functions with hue.
  • There is now a function weekday(). It can compute the weekday (1=Monday, 7=Sunday), or its name in English.
  • In Windows 11, the UTF conversion started to produce problems. The reason is the system wide support for UTF-8. This is currently in Beta and I suggest switching it off for Euler Math Toolbox. It is in the administrative settings for time and language.
  • If you do want to use the UTF-8 settings, you can set your codepage in the settings now. It is used to translate from an to UTF-8. The European codepage is 1250. If you set 0 here, the system default will be used.

New in Euler Math Toolbox 2021-12-07 (Dec 7, 2021)

  • There is now a function weekday(). It can compute the weekday (1=Monday, 7=Sunday), or its name in English.

New in Euler Math Toolbox 2021-12-01 (Dec 2, 2021)

  • There is now a function weekday(). It can compute the weekday (1=Monday, 7=Sunday), or its name in English. In Windows 11, the UTF conversion started to produce problems. I had to fix the codepage for the moment instead of automatically loading the current codepage. You can set your codepage using the dialog in the Program Settings. The number for Europe is 1250. Please Google your codepage in the net if necessary.
  • I had to change some shortcuts:
  • Enlarge to full screen with Ctrl+Alt+Q.
  • Enlarge the text size a bit with Ctrl+Q.
  • Toggle spell checking with Ctr+T.
  • Add marked words to dictionary with Ctrl+Alt+T.

New in Euler Math Toolbox 2021-04-30 (May 1, 2021)

  • EMT can now produce Markdown output to "*.md" files. The output is similar to the HTML export, but the output is easier to read and modify.
  • You can open Markdown files with various editors, free and payware. Moreover, there are plugins in Chrome and Edge if you allow accessing URLs. It is possible to compile the files to HTML with command line tools. Note, that Latex formulas are exported directly, and ususally interpreted using MathJax in the Markdown display.
  • Currently, it is not possible to use Markdown language in comments. The reason for this is that EMT is line oriented and cannot change fonts within a line. So, it does not make sense to implement the Markdown language fully. The comment syntax is not difficult to learn anyway.
  • A lot of work and changes in the documentation.

New in Euler Math Toolbox 2021-02-17 (Feb 18, 2021)

  • Again a lot of work on the tutorials, the examples, and the help texts.

New in Euler Math Toolbox 2020-05-06 (May 6, 2020)

  • Fixed the function drop(v,i) which now works only for row vectors v and i. The index vector can contain negative indices. Note that the index vector will be sorted by this function.
  • >v=[10:20]
  • [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
  • Drop the last element and the element at positions 2 and 3.
  • >drop(v,[-1,2,3])
  • [10, 13, 14, 15, 16, 17, 18, 19]
  • For matrices, use droprows() or dropcols(),
  • >droprows([1,2,3;4,5,6],1)
  • [4, 5, 6]
  • >dropcols([1,2,3;4,5,6],2)
  • 1 3
  • 4 6
  • There are the new functions butlast() and butfirst() now.
  • >butlast(1:10), butfirst(1:10)
  • [1, 2, 3, 4, 5, 6, 7, 8, 9]
  • [2, 3, 4, 5, 6, 7, 8, 9, 10]

New in Euler Math Toolbox 2020-04-14 (Apr 14, 2020)

  • Alt-Backspace now deletes the commands as before and adds it to the undo buffer. But the undo buffer is cleared now for each delete unless the key is pressed several times without changing the current line. This allows deleting and inserting several successive lines.
  • Alt-U inserts the current undo at the current position in the notebook (i.e., in front of the current line). It also clears the undo buffer.
  • For more control, use Cut and Paste.

New in Euler Math Toolbox 2019-10-22 (Oct 22, 2019)

  • >nelder
  • Need string f, vector v, real d, real eps, args for f for nelder
  • Error in:
  • nelder ...
  • Improved the documentation of the elliptical functions.
  • >help ellrf
  • ellrf is an Euler function.
  • function map ellrf (x, y, z, eps)
  • Default for eps : none
  • Function in file : functions
  • Carlson's elliptic integral of the first kind RF (x; y; z).
  • The iteration is implemented in the Euler language.
  • x, y, and z must be non-negative, and at most one can be zero.
  • Computes
  • 1/2 integrate(1/sqrt((t+x)*(t+y)*(t+z)),t=0..inf)
  • See: ellrd, ellf

New in Euler Math Toolbox 2019-10-02 (Oct 2, 2019)

  • Fixed 13 and 10 in strings. Both generate a new line in the output now, as well any sequence 13/10 or 10/13.

New in Euler Math Toolbox 2019-09-27 (Oct 2, 2019)

  • This is just a cleanup of the code.

New in Euler Math Toolbox 2019-08-21 (Aug 21, 2019)

  • Fixed F11 (to resize the windows to full screen automatically) for getting the cursor position and screen length correctly.

New in Euler Math Toolbox 2019-08-14 (Aug 14, 2019)

  • Fixed a small glitch.

New in Euler Math Toolbox 2019-04-17 (Apr 16, 2019)

  • Fixed a small glitch.

New in Euler Math Toolbox 2018-11-16 (Nov 16, 2018)

  • Fixed a small glitch.

New in Euler Math Toolbox 2018-09-21 (Sep 21, 2018)

  • The formats "shortformat", "short" and "shortest" have been updated.

New in Euler Math Toolbox 2018-09-19 (Sep 20, 2018)

  • Fixed a small glitch.
  • >""+(2-I)
  • 2-1i

New in Euler Math Toolbox 2017-10-26 (Oct 27, 2017)

  • Now the right mouse button works in the following ways:
  • (1) Clicking into a comment opens the comment window.
  • (2) Clicking into a program opens the internal editor.

New in Euler Math Toolbox 2017-08-10 (Aug 11, 2017)

  • Now the right mouse button works in the following ways:
  • Clicking into a comment opens the comment window.
  • Clicking into a program opens the internal editor.

New in Euler Math Toolbox 2017-07-21 (Jul 22, 2017)

  • The official forum for Euler Math Toolbox is now at SourceForge at
  • https://sourceforge.net/p/eumat/discussion/
  • I will also try to keep the files section in SourceForge up to date with the most recent version. The HTML files remain on my server at Strato, as well as the downloads.
  • The 32-bit version will no longer be updated, or only at very special request. The version of May 2017 will remain on the server.
  • Now the right mouse button works in the following ways:
  • (1) Clicking into a comment opens the comment window.
  • (2) Clicking into a program opens the internal editor.

New in Euler Math Toolbox 2017-07-17 (Jul 17, 2017)

  • Now the right mouse button works in the following ways:
  • (1) Clicking into a comment opens the comment window.
  • (2) Clicking into a program opens the internal editor.

New in Euler Math Toolbox 2017-05-10 (May 10, 2017)

  • Fixed the drop routine. It does no longer sort the vector of elements to be dropped.
  • Fixed frac(x) which now works for very small elements, just like fraction and fracprint().
  • Added an Euler file for the simplex algorithm in Gauss-Jordan form. See the documentation.

New in Euler Math Toolbox 2017-04-03 (Apr 3, 2017)

  • The help window now searches for strings automatically if no topic is found.
  • The function mset() is now fixed and works, even if there is nothing to set.
  • There is a new modifier "usenan". It evaluates the command with "errors off" and sets "errors on" afterwards.
  • The plot3d(x,y,z) routine for plotting surfaces now respects >zscale. In this case, z is assumed to be a function value. The function is scaled so that everything fits into a unit cube. But the function values are scaled with respect to x and y first.

New in Euler Math Toolbox 2017-01-12 (Jan 13, 2017)

  • The help window now searches for strings automatically if no topic is found.
  • The function mset() is now fixed and works, even if there is nothing to set.
  • There is no v[i]<0. But in the following v, there are v[i]<0.
  • There is a new modifier "usenan". It evaluates the command with "errors off" and sets "errors on" afterwards.
  • The plot3d(x,y,z) routine for plotting surfaces now respects >zscale. In this case, z is assumed to be a function value. The function is scaled so that everything fits into a unit cube. But the function values are scaled with respect to x and y first.
  • The value of zscale is used to scale into that directio. Additionally, scale=[sx,sy,sz] can be used.

New in Euler Math Toolbox 2016-12-04 (Dec 5, 2016)

  • I have removed the ancient function scale() and replaced it with something more useful. Now scale(A) scales the matrix A into [epsilon,1].
  • I have also expanded the function crossproduct(). It will work now for matrices with three rows, and it will return the results in such a matrix.
  • I also added the Gram determinant. It computes the volume of the parallelotope spanned by the columns of a matrix. For two vectors in three dimensions, this happens to be the same as the cross product.
  • The generalized cross product is added too. It returns a vector perpendicular to all n-1 columns of a matrix with n rows. The length of the vector is equal to the area of the parallelotope spanned by the columns.

New in Euler Math Toolbox 2016-11-30 (Dec 2, 2016)

  • I have removed the ancient function scale() and replaced it with something more useful. Now scale(A) scales the matrix A into [epsilon,1].
  • This is useful for plots. E.g., we disturb the matrix (i*j) randomly. To get spectral colors, we scale the result to [0,1]. This will be a noisy plot of x*y.
  • If you plot the same with plot3d, you do not need to scale, because plot3d() has its own scaling parameter. It needs to print the labels correctly.
  • I have also expanded the function crossproduct(). It will work now for matrices with three rows, and it will return the results in such a matrix.
  • I also added the Gram determinant. It computes the volume of the parallelotope spanned by the columns of a matrix. For two vectors in three dimensions, this happens to be the same as the cross product.
  • The generalized cross product is added too. It returns a vector perpendicular to all n-1 columns of a matrix with n rows. The length of the vector is equal to the area of the parallelotope spanned by the columns.
  • I added a function fzeros() which finds all zeros of another function in an interval. It makes use of fextrema() and bisectin().
  • Due to user demand, there is now a Python mode.
  • From now on every command, is interpreted as a Python command.
  • Multi-lines work as expected. For Python control structures, you must use multi-lines and indentation.
  • You can use "function python" for multi-line commands too.
  • You can also define functions with "def" in a multi-line command, or as a "python" function.
  • Maxima lines work too.
  • EMT works in this mode with "euler".

New in Euler Math Toolbox 2016-07-25 (Jul 26, 2016)

  • I added a function fzeros() which finds all zeros of another function in an interval. It makes use of fextrema() and bisectin().
  • Changes:
  • Due to user demand, there is no a Python mode.
  • Python mode is on
  • From now on every command, is interpreted as a Python command.
  • Multi-lines work as expected. For Python control structures, you must use multi-lines and indentation.
  • You can also define functions with "def" in a multi-line command, or as a "python" function.
  • Maxima lines work too.
  • EMT works in this mode with "euler".
  • Python mode is off

New in Euler Math Toolbox 2016-07-21 (Jul 26, 2016)

  • Some Maxima replacements got fixes to make things more logical. To escape any character in a symbolic expression you can now use c.
  • It might be easier to use the direct mode for this as written in the Maxima documentation.
  • Furthermore, &!... will prevent any replacements in the symbolic expression. (If you need an expression to start with ! enter &!!...)
  • There are some changes in the web pages that are installed with EMT. Now, links on these pages show the installed documentation. There is a link to the web site in the link box. The PDF files are also linked to the web site, as well as the search results.

New in Euler Math Toolbox 2016-07-16 (Jul 19, 2016)

  • There have been some fixed in the Maxima interface, nothing the ordinary user would notice. In purely symbolic functions := is now replaced by : to make those mre readable. If you do not want this use the direct mode ":::".
  • It is now possible to define purely symbolic strings with the following syntax. Note that s in the following definition is a string, not an expression.

New in Euler Math Toolbox 2016-07-06 (Jul 6, 2016)

  • Even more improvements in the documentation and a more concise web page.
  • The following does work now. >A=[1,2;0,1]; A.A^2.A
  • I also fixed the following which was not working. It is an abuse of the matrix product anyway. > pi.pi
  • Note that "2.A" does not work due to incompatible dimensions. You have to write >2*A

New in Euler Math Toolbox 2016-06-27 (Jun 27, 2016)

  • This is only an update of the documentation with many error fixes and improvements. There is also a new tutorial intended for teachers.
  • The code for the redraw of the screen has been changed a little bit. This should prevent flicker on weaker machines. I hope it has no serious side effects.

New in Euler Math Toolbox 2016-05-11 (May 12, 2016)

  • Besides some minor fixes in the documentation, I added knots and nautical miles to the units.
  • I made it more clear in the documentation that units can be overridden by variables. It is safest to use the $ sign with units all the time.

New in Euler Math Toolbox 2016-03-23 (Mar 24, 2016)

  • The Ctrl-Z to restore a line became more functionality. It will now remember the 8 last version of this line. A new version is stored whenever the line is executed. Moreover, Ctrl-Y does now undo the restore.

New in Euler Math Toolbox 2016-01-15 (Jan 19, 2016)

  • I wrote a utility file scilab.e to interface with Scilab. Currently, results from Scilab can only be read, if they are simple numbers. We can optionally start the Scilab process manually. Otherwise it is started whenever it is used.
  • Now it is possible to interpret results of Scilab and convert them to numbers in EMT with slget(). For multi-line returns, EMT cannot interpret the result. Use the function "sl" to send a command to Scilab.
  • sl() will return a string of vectors. You can store the result for later.
  • The Scilab process is killed with slend(). If EMT is exited, it will also be killed.
  • The output of Scilab is truncated by default. Empty lines at the start and the end, and the line "ans =" are then deleted. Set the variables "stripstart", "stripend", "stripans" to change this.
  • The Modifier "prefixlin":
  • For the Scilab interface, a new type of function was needed, which reads the complete input line as a parameter.
  • Computing Games:
  • There was an error in the function game(A), which finds the optimal strategy for a game with matrix A.
  • The meaning of this is: You select a column j, and the other player selects a row i. Then you get the value A[i,j].
  • For an optimal strategy, you have to select the columns of the matrix with the following probabilities.
  • Note that you should never select column 1. This will safely gain 1, but the strategy p is better. It will gain more than 1 on average.

New in Euler Math Toolbox 2015-12-09 (Dec 9, 2015)

  • I wrote a utility file scilab.e to interface with Scilab. Currently, results from Scilab can only be read, if they are simple numbers
  • load scilab - Interface for the SciLab program. We can optionally start the Scilab process manually. Otherwise it is started whenever it is used.
  • Now it is possible to interpret results of Scilab and convert them to numbers in EMT with slget().
  • For multi-line returns, EMT cannot interpret the result. Use the function "sl" to send a command to Scilab. (See below for this new type of functions). The Scilab process is killed with slend(). If EMT is exited, it will also be killed. The output of Scilab is truncated by default. Empty lines at the start and the end, and the line "ans =" are then deleted. Set the variables "stripstart", "stripend", "stripans" to change this.
  • The Modifier "prefixline":
  • For the Scilab interface, a new type of function was needed, which reads the complete input line as a parameter.
  • Computing Games:
  • There was an error in the function game(A), which finds the optimal strategy for a game with matrix A.

New in Euler Math Toolbox 2015-11-29 (Nov 30, 2015)

  • Fixed a glitch in the adaptive evaluation for plot2d(). For small intervals, the result took too many points.

New in Euler Math Toolbox 2015-07-21 (Jul 23, 2015)

  • There were some changes in shrinkwindow() and fullwindow(). The windows are now actually square always, and the full window is a bit larger. The plot3d() functions now makes a bit larger and more centered plots. This is only a tiny correction. With proper individual settings, plots can now fill more of the image.
  • The plot window should now be exactly square. The plot coordinates will be square only with the square parameter, however.

New in Euler Math Toolbox 2015-07-09 (Jul 23, 2015)

  • There was a bug in xgrid() and ygrid() which needed to be fixed.
  • If you like to format the grids labels yourself use xgrid(), ygrid(). The factor f can be used to avoid large numbers.

New in Euler Math Toolbox 2015-07-06 (Jul 23, 2015)

  • I added a new function adaptive() which adaptively evaluates a function. It works for real and complex scalars and column vectors. The similar functions adaptiveeval() and adaptiveevalone() for plotting are not changed by this new function.
  • There is now a function colsum(), which sums the columns of matrices.

New in Euler Math Toolbox 2015-06-23 (Jun 23, 2015)

  • The xgrid() and xtick() functions have been fixed to allow labels
  • Using xtick(), this allows Latex formulas

New in Euler Math Toolbox 2015-06-18 (Jun 18, 2015)

  • Vectors and matrices can now be declared "zerobased". This makes the indices. Note that linspace(a,b,n) returns n+1 values. Often, you might want to refer to these values as x[0] to x[n]. This is now possible
  • The following is an upper Riemann sum for the integral of x^2 in [0,1]. The first value of x, x[0], is not used.
  • Note setting x to a new vector makes it restart with base 1.
  • Moreover, the property cannot be set inside a function to an array passed as an argument to the function. The new base 1 will only be used inside this function.
  • The original x is changed properly. But it will use base 1 still.
  • Assigning a zero based vector to another vector copies the flag. Thus it is possible to write functions, which return zero based vectors or matrices.
  • Fixes:
  • The function gauss() did not work with call collections. This has been fixed.
  • Likewise, the function adaptiveint() did have problems with call collections.

New in Euler Math Toolbox 2015-05-06 (May 11, 2015)

  • The Gauss method now vectorizes the function or expression by default. Note the type check "scalar" which makes sure that f() is abused. The following did not work in previous versions since f() does not work for vector input. Note that integrate() uses the adaptive Gauss algorithm, which in turn uses the Gauss algorithm.

New in Euler Math Toolbox 2015-04-14 (Apr 14, 2015)

  • I added a parameter for Latex formulas in label boxes.
  • There is now an option to split a line without adding "...". The keyboard shortcut for this is Shift+Control+Return.

New in Euler Math Toolbox 2015-04-10 (Apr 11, 2015)

  • This version dumps the snippets menu in favor of a menu "Tasks" which links to section of the help file explaining taks you might want to do in EMT.
  • The User Menu is still there and can be filled with snippets as needed. It does also contain a submenu with loaded Euler files. Calling the menu items in this submenu opens the help window with a list of definitions in the Euler file.

New in Euler Math Toolbox 2015-03-17 (Mar 23, 2015)

  • I have started a tutorial for R users on EMT. Along the way, I learn a lot about R. The tutorial is based on the "Introduction to R" which is installed with the R project on Windows as a PDF.
  • The command line switch "-pipe script.e" now exits EMT on any errors. It will no longer open the notebook window. Here is an example of a script in R, which dumps the command output to some file, and saves the current graphics to a PNG

New in Euler Math Toolbox 2015-02-24 (Feb 25, 2015)

  • A lot more functions now accept "call collections". This term stand for a function or expression plus additional parameters in a collection. Call collections are also documented in a better way now including links in the functions that can use them.
  • The function fmin() can now search from a single point or in an interval.

New in Euler Math Toolbox 2015-02-23 (Feb 23, 2015)

  • The new method for passing arguments with a function did not work for adaptive integration. This has been fixed.
  • >adaptiveint({{"a*x^3",a=2}},0,1) - 0.5
  • Protected variables became unprotected if they were changed as global variables inside a function. This has been fixed. Now plot2d() works after plot2d() and a subsequent "clearall". (plot2d() changes global variables like verticallabels).
  • >plot2d("x^2"); clearall; plot2d("x^2");
  • Units in expressions can no longer be abused as simple variables. They need a number in front of them. >"2cm"() - 0.02

New in Euler Math Toolbox 2015-02-16-2 (Feb 17, 2015)

  • EMT now is installed with the recent version 5.35.1 of Maxima. The drawback is that LAPACK is no longer working with this version. This should not be a major problem. You can use the routines provided by the numerical part of EMT. Some missing routines from LAPACK will be added in the future.
  • The new version of Maxima is quite different internally. So the program is now started via the command "sbcl.exe". To make this possible, some internal things had to be changed in the code of EMT. Moreover, the Maxima version is now installed in a subdirectory "maxima", including Gnuplot.

New in Euler Math Toolbox 2015-01-27 (Jan 28, 2015)

  • "listvars" is now possible instead of "listvar". "listvars" will also list global lists. But there is "listlists" too. Like with "listvars" it is possible to add a string.
  • The function glistput(list,pos,value) now adds a value at the list position even if there was a value before. If the list is empty or the position is behind the end of the list, it appends the element to the list.
  • The function glistvar(list,pos) has been replaced by glistget(list,pos).
  • Fixes:
  • The evaluation of a string now can use units. This is used by readTable() to read a table with units. Moreover, the expressions in the values of a table can now contain global variables.

New in Euler Math Toolbox 2015-01-09 (Jan 9, 2015)

  • EMT has now a list type, It is in primary beta for the moment, and probably will receive more features along the way.
  • A List is declared with {{...}} and can contain any objects.
  • List elements can be accessed like vector elements.
  • Lists are good to keep return values of functions in one place. Instead of returning multiple return values a function can return a list. However, it is also possible to put the multiple results of an existing function into a list. In the example, sort() returns the sorted vector and the indices of the sorted elements. The list L contains both vectors.
  • Another feature is the execution of lists, where the first element is the name of a function or an expression.
  • This trick is applied in many plot functions and numerical functions now. It avoid the previous semicolon parameters.
  • The same works with expression. But the variables in the list must be named in this case.
  • This works in many numerical functions too.
  • Fixes:
  • The : for insimg() has been fixed. It did not work properly after a loop and inserted the image many times.

New in Euler Math Toolbox 2014-12-19 (Dec 19, 2014)

  • The PDF introduction is now in a better state. There are still some things to add.
  • EMT allows assigned arguments only to override parameters with default values unless the argument is assigned with :=. For functions, which are designed to use a lot of assigned arguments, this can now be released with the modifier "allowassigned". However, it is posssible to declare variables with :=.

New in Euler Math Toolbox 2014-12-03 (Dec 4, 2014)

  • With >best, the iterate() function now continues to itereate until the error does no longer improve. The problem is that iterating will take very long if the limit is 0 and > best is turned on.
  • Fixes:
  • The code Ctrl-Back now joins the line to the previous no matter where the cursor is in that line. Of course, Ctrl-Return splits the line at the cursor.
  • The parameter grid=0 was not working for implicit plots.
  • Moreover, the style "#" did still use a black contour line for filled contour plots. This is now disabled. Use "O#" for a contour.

New in Euler Math Toolbox 2014-11-19 (Nov 20, 2014)

  • The marker size is no longer global. Previously, the following code worked only for the graphics screen, but failed for the PNG export.
  • >function test () ...
  • X=random(3,100);
  • {v,i}=sort(-X[3]); X=X[,i];
  • plot2d(none,r=0.6,cx=0.5,cy=0.5,test

New in Euler Math Toolbox 2014-10-21 (Oct 25, 2014)

  • Latex formulas now work with a changed background color now. The bar style "0" now shows the rectangle in the selected color. The SVG export of a graphics with another background color also works now.
  • The function reset() now colors resetcolors(), which now correctly resets the default values of the colors.

New in Euler Math Toolbox 2014-08-19 (Aug 20, 2014)

  • I improved the ibisect() method for guaranteed interval solutions. It did not work optimally, if the zero was accidentally met. Now I made it a trisection method, which works much better.
  • >ibisect("x",0,2,y=1)
  • ~0.9999999999991,1.000000000001
  • It does also work for functions with interval parameters.
  • >function f(x,a) := a^x-x^a;
  • The following calls the function by name with "a" given as a semicolon argument.
  • ibisect("f",0.5,1.5;1±0.01)
  • 0.988,1.02~
  • As usual, expressions are also possible, if the argument is constant or a global variable.
  • ibisect("f(x,1±0.01)",0.5,1.5)
  • 0.988,1.02~
  • Fixes:
  • The behavior of the operator "^" had to be fixed once more. Previously EMT evaluated 2^-3^4 as 2^((-3)^4). Now, it follows the convention of Maxima to evaluate this as follows.
  • 2^-3^2, 2^(-(3^2))
  • 0.001953125
  • 0.001953125
  • Maxima has the same rule.
  • 2^-3^2, %()
  • 512
  • 0.001953125

New in Euler Math Toolbox 2014-08-18 (Aug 19, 2014)

  • There have been some fixes in the graphics routines. E.g., the function ylabel() did only work for the default centered position.
  • Moreover, the documentation of "plot.e" has been improved.

New in Euler Math Toolbox 2014-08-09 (Aug 11, 2014)

  • I switched back to the previous behavior of the order of the evaluation of powers.
  • It seems most algebra programs evaluate from right to left. But Matlab evaluates from left to right.
  • There is a new function diffc() for numerical differentiation, which works for analytic functions. The function must evaluate for complex values.
  • Fixes:
  • The expression "1e" no longer is interpreted as "1e0". In fact, EMT will issue an error message on exponential numbers which are not well-formed. Note, that 'E' and 'e' can be used for the exponential format to be able to read external files from other systems. This is sometimes confusing, since E is the Euler number in EMT.

New in Euler Math Toolbox 2014-07-22 (Jul 23, 2014)

  • It is now possible to search through the help topics in the help window. Enter "?string" to find the string in the help topics. You can double click on the topic to open it.
  • You can now debug errors with >trace errors
  • If an error occurs in a function you can inspect local variables or expressions containing these variables. Restarting EMT resets all tracing to off.

New in Euler Math Toolbox 2014-07-05 (Jul 5, 2014)

  • The settings for the size of the windows and dialogs now depend on the screen size.

New in Euler Math Toolbox 2014-06-16 (Jun 17, 2014)

  • The plot function plot2d() got a new flag >addpoints. This allows the same simple overlay as in statplot() without >add. It works only for data plots.
  • The function cimean() computes an interval estimator for the true mean of a normal random variable when a vector of data of these data is given.
  • The function cinormal computes a confidence interval for normal distributed variables with known mean and standard deviation.

New in Euler Math Toolbox 2014-06-12 (Jun 14, 2014)

  • The file menu got entries for saving and loading in the "Euler Files" directory of the user home folder. Moreover, the shortcuts are now the more logical Alt-S and Alt-O.
  • It is now documented that the default method for integrate() must get a vectorized function. The error message has been improved.
  • The statistical functions bindis() and invbindis() are now documented in the tutorials. binsum() is no longer used.
  • Fixes:
  • In plot2d(), yl= now works for figures.
  • The non-vertical labels now align correctly on the left edge.

New in Euler Math Toolbox 2014-05-06 (May 7, 2014)

  • To avoid confusion between expressions and functions, EMT now follows the following rules:
  • Expressions take precedence over functions with the same name.
  • Expressions should be named fx, fxy etc.
  • A function kills a global symbolic expression with the same name.

New in Euler Math Toolbox 2014-04-23 (Apr 24, 2014)

  • This version involves some internal changes which make calling a function or finding a global variable slightly more efficient. The main effect is that global variables are now mutable.
  • In the function, the variable must still be declared as global.
  • It is also possible to generate global variables.
  • Note that variables passed by reference cannot be changed in type or size even if they are global.

New in Euler Math Toolbox 2014-04-07 (Apr 8, 2014)

  • EMT can now include LaTeX formulas in the plot if LaTeX is installed. The function latex(string) will parse the string through latex, generate a PNG file and return the image as an RGB matrix. This can be used instead of a simple string in labels and titles.
  • EMT will no longer bore you with the print of large matrices. It will show the matrix size and type and eclipses.
  • You can put a "trace on" everywhere. This will enable tracing. If you leave tracing with cursor-left, evaluation will continue until "trace on" is met again.
  • Now, there is "traceif ...". This will conditionally break execution.

New in Euler Math Toolbox 2014-03-31 (Apr 1, 2014)

  • EMT can now include LaTeX formulas in the plot if LaTeX is installed. The function latex(string) will parse the string through latex, generate a PNG file and return the image as an RGB matrix. This can be used instead of a simple string in labels and titles.
  • Large Matrices:
  • EMT will no longer bore you with the print of large matrices. It will show the matrix size and type and eclipses.

New in Euler Math Toolbox 2014-03-24 (Mar 25, 2014)

  • Added some useful functions to handle matrices. The function mnonzeros() works like nonzeros() but for matrices, not just for vectors. It returns a list of indices. You can use these indices to get a vector of corresponding values from A. Or you can set the elements at these indices to a specific value. Another matrix can also be used. This might also be useful to construct thin matrices from full matrices. The function cpxset() also uses a list of indices and values. We can construct such a list with mnonzeros() and mget().
  • 3D Plots:
  • The functions plot3d() and plot2d() got some updates. First of all, there is a new plot style in plot3d() a contour plane (cp).
  • Default Parameters:
  • Often, a parameter is handled with the same name to a function where it has a default value by an assignment. There is now a special shorter syntax for this.

New in Euler Math Toolbox 2014-03-10 (Mar 11, 2014)

  • In this version, I tried to remove a source of errors for users of EMT.
  • 3D Plots under user control now show the view in the status line. False keys show a hint there.
  • There are more spectral color schemes. To set these use spectral=1 (or >spectral) to spectral=9.

New in Euler Math Toolbox 2014-05-03 (Mar 6, 2014)

  • There are new grid style 7 and 8.
  • The ticks depend on the current aspect.
  • Maxima has a package "draw". For this, you have to set the output format correctly.

New in Euler Math Toolbox 2014-03-03 (Mar 3, 2014)

  • The output of Gnu Plot is now redirected to PNG automatically. The file is "gnuout.png" in the user home directory (sub-directory Euler). Inserting this file into the notebook works just like by ending the line with ":". Comments after this are accepted.
  • The default plot style of EMT now uses more decent colors for the grid, the frame and labels. Of course, you can use any color for the curves.
  • Moreover, the y-label is now vertical. You can make the numerical y-labels vertical too with vertical==2.
  • The xaxis() and the yaxis() commands now produce ticks by default. The length can be changed with ticks=...

New in Euler Math Toolbox 2014-02-24 (Feb 25, 2014)

  • The function strfind() does now automatically start at position 1, if the position is missing, and it recognizes negative positions.
  • You can scroll with Ctrl-Up or Ctrl-Down to the next major heading ("*..."), sub-heading ("**...") or break ("---").
  • A break is a comment line starting with "---".
  • Fixes:
  • There was a glitch in the HTML export, which causes the export to end after images with very tiny height (such as some simple Latex formulas).
  • Multiple assignments now print the first value not the last one.
  • Figures now can have own titles. Moreover, the label boxes now work correctly for each figure.
  • The control statements "until" and "while" now work in loops.
  • The median function now works for vectors of p.
  • The anti-aliasing algorithm got an update for the border pixels. For images which include the border this looks smooth even at 1000% magnification.

New in Euler Math Toolbox 2014-02-21 (Feb 22, 2014)

  • EMT can now read from a web site line by line. The following functions opens the version log and looks for the string "Current Version ".
  • EMT can now read and write at the same time from and to local files. Previously, you could only write or read at any one time.

New in Euler Math Toolbox 2014-02-20 (Feb 21, 2014)

  • The date and time functions got some extensions. The function day() can now recognize day and time in ISO 6801 format.
  • The time string can be omitted. Moreover, the function understands english names of months. (You can provide your own names by changing the global variable englishmonths$).
  • Moreover, the function understands an alternative format for the date. The printdate() function got the parameter >time and

New in Euler Math Toolbox 2014-02-19 (Feb 20, 2014)

  • The function color() now accepts an array of colors. The array is used for plots of data with more than one row.

New in Euler Math Toolbox 2014-02-17 (Feb 18, 2014)

  • There is a new output format with separated groups of numbers. For this, the function print() got some more parameters. One of them is "sep", which defines the separator string.

New in Euler Math Toolbox 2014-02-12 (Feb 13, 2014)

  • Plots:
  • There is a different frame type for 3D plots now.
  • The default space on the left of 2D plots has been increased a bit. Moreover, there is a "smaller" parameter in plot2d() now.
  • Control Structures:
  • It is now possible to span loops over multi-line commands.

New in Euler Math Toolbox 2014-02-10 (Feb 11, 2014)

  • Now, the anti-aliasing for graphics now uses the same algorithm as the anti-aliasing for images in the notebook by default. This algorithm now has an improved smoothing, which can be turned down in the Graphics Options.

New in Euler Math Toolbox 2014-02-03 (Feb 3, 2014)

  • There was a bug in the graphics display for inserted images if enlarged display was chosen or the aspect was not integer.

New in Euler Math Toolbox 2014-01-28 (Jan 28, 2014)

  • EMT got an improved PDF output. It is now copying a style file to the current directory, which you are invited to edit. The default output is now for a 4:3 beamer. You can easily change this in the eumat.sty file.
  • The magnification for a beamer now got a shortcut (Ctrl-F11), and will automatically generate large images ("Keep Large Images"). There is a new full screen mode (F11), which turns off the menu and the border. This will also active the one-window interface.

New in Euler Math Toolbox 2014-24-01 (Jan 25, 2014)

  • In times of better and larger screens and of faster computers with more memory, I found it appropriate to increase the size of the embedded graphics. It is possible to set an own size in the menu, with the insimglines() function, or by using the insimg() command instead of the colon ":" after the plot command.
  • Moreover, I darkened the colors of the frame and the text for a more professional appearance. The colors can be set with textcolor(), framecolor() and frame3dcolor(). The function reset() defaults everything as usual.
  • By default, EMT does no longer use fatter lines. You can change that in the graphics menu.
  • By default, EMT is now using another algorithm for anti-aliasing. It the same algorithm that I had to program for the Linux version. It looks a bit smoother and better.

New in Euler Math Toolbox 2014-01-10 (Jan 10, 2014)

  • The nlfit() function (which uses the Levenberg Marquardt algorithm to minimize |f(v)| for a non-linear fit) is now more sophisticated.
  • The Nelder Mead method is more stable. The speed of the algorithms compare for small problems. For large problems, nlfit() should be much better, since it is locally a Newton method.
  • The modelfit() function now has parameters for neldermin(). The defaults will do in most cases.

New in Euler Math Toolbox 24 (Oct 17, 2013)

  • Collected the changes from 23.0 to 23.5 for EMT 24.

New in Euler Math Toolbox 23.5 (Sep 24, 2013)

  • Commands to set the output formats were updated
  • The command format(n) now works like goodformat(n). To set a fixed format use format(n,m).
  • Use reset() or defformat() to revert to the default format.
  • The scalar format now prints large numbers in a more friendly way.
  • The format(n,m) works almost as before. But it will now display 0.00, if the number is too small.
  • The format prefixes now return to the previous settings not to goodformat as before.
  • The default format is goodformat(6) with zero rounding and dense output on.
  • By default, scalars will print with goodformat(12).

New in Euler Math Toolbox 23.4 (Sep 16, 2013)

  • Added some more functions for manual axes and grid lines, and documented those in the tutorials.
  • First of all, you could change the default style of the axes globally. The function gridstyle() now lets you set styles and colors of the grid lines and labels, and the color of the frame.
  • The settitle function now lets you select a color. Previously, you had to change the global text color for this.
  • To revert to the defaults, always use reset().
  • Sometimes, you wish to build a plot with axes step by step. There new functions xaxis() and yaxis() now.

New in Euler Math Toolbox 23.3 (Sep 11, 2013)

  • For this version, the Help Window is updated. It does not display the content of the file "overview.txt", starting with a list of topics, so that it is easy to find information about how to do some task. I think this is far more convenient for the new user.
  • The help window does also display breadcrumbs with a list of recently visited pages.
  • This version allows Python commands to start with >>> ... This applies to multiple lines too. Note that >> ... for Yacas has been disabled.

New in Euler Math Toolbox 23.2 (Aug 10, 2013)

  • I have changed the boxplot function. It now uses data instead of quartiles. But it can now also display outliers.
  • I removed the quantile function. There is now a quartile function, which returns the Q1,M,Q2 quartiles, and the minimal and maxima data which are not outliers. By definition, outliers are data which are more than 1.5 times the range less than Q1 or greater then Q2.
  • You can now use a vector of radii for plots. This does also work in 3D. Together with the scaling you get a flexible approach.

New in Euler Math Toolbox 23.1 (Aug 3, 2013)

  • I added an adaptive method from AlgLib for integrals. It is a very similar method as the adaptive Gauss method, which is the default for integrate.
  • Fixes:
  • The strrepl() function was not documented well. Moreover, it did not work in some cases.

New in Euler Math Toolbox 23 (Jul 27, 2013)

  • Added some functions from the AlgLib library to Euler.
  • Added some numerical routines and a lot of special functions, some of them replacing less accurate and slower functions from previous versions.
  • Special Functions:
  • Some old Euler algorithms for special functions were replaced by the algorithms in AlgLib.
  • Statistics:
  • The binomial distribution is a new function from AlgLib. Euler has the function binsum, which returns the same result with more effort.
  • Linear Systems:
  • AlgLib has many routines to solve systems. The names in Euler start with al..., if the routines conflict with Euler routines.
  • The routine alsolve(A,B) solve a linear system. It can have an extra parameter, which may help for difficult matrices.
  • Eigenvalues:
  • The aleigen routine calls AlgLib to compute eigenvalues and eigenvectors. It is now the default algorithm for eigenvalues() and eigen().
  • This is a fast routine.
  • Drop:
  • There is a new function drop(v,i), which drops the indices in i from the vector v. It is a function in the kernel.
  • Bessel Functions:
  • Extended the Bessel functions besseli() and besselj() to 0, and to xcols is true.
  • Expressions and Functions:
  • Found it disturbing that expressions are used before functions on the command line.
  • Documentation:
  • The documentation has been improved a lot. Many core functions are now comment functions in the proper section of the reference. There are more links between utility files and the core reference

New in Euler Math Toolbox 22.8 (Jul 5, 2013)

  • There is a new function drop(v,i), which drops the indices in i from the vector v. It is a function in the kernel. The vector i need not be sorted.
  • This can be used to delete a row or a column of a matrix.
  • The index vector i can contain indices out of range, double indices, and it needs not be sorted. Note that negative indices count from the back.
  • The index vector refers to indices, not values. If you want to remove values, you need to find them first.
  • It might be more effective to use nonzeros().

New in Euler Math Toolbox 22.7 (Jun 26, 2013)

  • Extended the Bessel functions besseli() and besselj() to 0, and to x smaller than 0 if the order is integer.
  • Note that Euler is different from other packages including Maxima. The main argument x comes in front of the order. This style allows Euler to pass the order as an additional argument. Therefore, it is the default style of Euler. It is also the most elegant style. Many functions like evalpoly follow the same convention. The interpolation can be written in the same way.
  • diff Function:
  • The diff function got a fix. It did not work in another function for a function, which used semicolon parameters.
  • Matplotlib:
  • If this library was imported and Euler was restarted, the next import of this library crashed Euler. Fixed by not finalizing Python.
  • Sound:
  • Updated the sound library. The default number of points for analyzesound is now 2^16. It works, if the sound is shorter taking a power of 2 less than the sound. You can also set the parameter points to the number of points in your sample.
  • Due to the higher number of samples, the frequency is now very accurate.

New in Euler Math Toolbox 22.1 (May 1, 2013)

  • Main changes:
  • Python support for scripts and Python functions
  • TinyC functions
  • Spell checking for notebooks
  • Powell minimization
  • Faster and more accurate statistical distributions
  • Callbacks from C and Python to Euler
  • Markdown language for comments in notebooks
  • Improved documentation and help window
  • More decent colors for plots and notebooks
  • Additionally, there were numerous improvements and fixes

New in Euler Math Toolbox 20.0 (Jan 3, 2013)

  • For Maxima, I enabled the direct mode with "::: ...". This is
  • something that should be used by experts only, or if you want to try
  • examples from a Maxima book.
  • It might be better to switch to the direct Maxima mode for this
  • purpose.
  • I expanded the sound library. I can now save and read stereo files in
  • wav format. The default rate is now 44100 bps.
  • Here is an example, where we generate a stereo sound going from left
  • to right and back.
  • The mapsound display does now use spectral colors by default.
  • I gave up drawing a frame around plots automatically, if the primtive
  • mark and plot functions are used. Since plot2d and plot3d add frames
  • by themselves there is no need to use this old fashioned plot style.
  • I changed the setfont function, so that it can also change the font
  • name. The changes are now less permanent. Calling setfont() will
  • revert to the default graphics font, which the user can change in the
  • menus.
  • I had some fun with XKCD style graphics. These graphics look hand
  • drawn.

New in Euler Math Toolbox 19.9 (Dec 20, 2012)

  • The help line of one-line functions now works as expected. Also the help for the status line works. To see this place the cursor after the opening bracket.
  • The help command now looks for Euler help only. To get help of both
  • worlds use ??. Of course, list will list all functions of both worlds containing the string.
  • The shg function did not work properly. It should now. However, it should be rarely needed, since plots show the graphics now, and animations simply work with wait(delta).
  • The path to the home directory never returns a double \\ now.
  • Documented the seed function properly. It takes an argument between 0 and 1. You should see the very same result.

New in Euler Math Toolbox 19.3 (Nov 6, 2012)

  • The execute command has been extended. The new features are hidden windows, non-wait execution, catching output. The result is the exit code of the program, or a vector of strings with one string for each line of output.
  • There was a problem with very huge line plots in recent versions leading to a large delay or even a halt of the Windows graphics system. The reason was that Euler is using a path to connect the lines. For paths with many segments, Windows can not handle the plot. I fixed that by splitting large paths into chunks. Nevertheless, these plots take a short moment to appear.

New in Euler Math Toolbox 19.2 (Oct 31, 2012)

  • The function polyval, splineval, etc. behaved in a way that was
  • inconsistent with the rest of Euler. The points of evaluation come
  • after the polynomial or the spline. This design goes back to very old
  • times.
  • The spline function computes the cubic natural spline. evalspline
  • evalues the spline.
  • The matrix FFT in Euler returned the conjugate of the usual matrix FFT
  • (as implemented in fft2 in Matlab). I changed that. Moreover, ifft
  • works now, and returns the inverse transformation.
  • Note, that Matlab defines fft(A) for matrices A taking the FFT in each
  • row. The matrix FFT is fft2(A). In Euler, fft(v) and fft(A) work
  • differently for vectors v and matrices A.
  • Euler can handle vectors of any size. However, the FFT is only
  • efficient, if the size has many small factors. For matrices, Euler can
  • only handle powers of 2.

New in Euler Math Toolbox 19.1 (Oct 31, 2012)

  • I improved the display of errors for nexted functions. Now the lines
  • in each function of the calling chain are displayed.
  • If HTML exports of Euler notebooks are printed or if they are enlarged
  • in browsers, Latex formulas did not look well. Now, Latex formulas are
  • saved in full resolution by default.
  • By the same reason, there is a switch to activate larger images for
  • images in the text window. Then insimg() will keep a 3 times larger
  • image in the memory and save it with the notebook. The link to this
  • larger image is used by the HTML export.
  • The notebook display uses only the default smaller image. Larger
  • images take space and time for saving.
  • Symbolic expression in functions need quotes. If the quotes are
  • missing, Euler now issues an error.
  • The error gets recognized only at run time.
  • Note, that symbolic expressions in numerical functions can be useful,
  • though they take a lot of time to evaluate.
  • I made it easier to handle non-square graphic windows. Simply turn off
  • the square graphics. This will also disable "Graphics in Text Window".
  • A separate window will appear in all cases. You can rescale this
  • window. You should restart Euler now.
  • Then the font will be based on the maximal dimension of the graphics
  • (width or height). insimg() will use the default 25 number of lines.
  • But it will decrease the number of lines, if the graphics would become
  • to wide.

New in Euler Math Toolbox 19.0 (Oct 31, 2012)

  • The one-window GUI is not yet ready. But since 18.8 there is a mode
  • with only one textwindow, displaying the graphics in this window. The
  • tabulator key, the "wait()" command and "shg" will bring the full
  • graphics to the foreground. Moreover the colon after a command places
  • the graphics below the command (as with the "insimg()" command).
  • Some graphics were using a fixed font for the graphics window. I fixed
  • that. All graphics use a non-fixed font now.
  • A new feature brings boxes of text inside plots. In the following
  • example, the two functions are labelled. The default anchor point is
  • the top right corner of the box at the top right corner of the plot
  • window.
  • Fixes:
  • There are always fixes for tiny errors or incoveniences in Euler. One
  • example is that you can now finish a one-line function with "; ..." in
  • a multi-line command. In previous versions this worked only for
  • symbolic funcitions, since these functions were parsed.
  • Note that you create multi-line one-line functions, i.e., functions
  • with expressions spread over more then one line.

New in Euler Math Toolbox 12.8 (Sep 6, 2011)

  • Matlab:
  • Added a comparison between Matlab and Euler to assist users coming from Matlab.
  • Euler Pages:
  • Changed the look of the Euler pages. Formatted output now stands out on gray background.
  • Anonymous functions:
  • New anonymous functions. These functions are expressions in strings with other parameters than x, y, z.
  • >g := "@(t) t^2"
  • @(t) t^2
  • >g(6)
  • >expr := "t^t";
  • >plot2d("@(t) "|expr,0,1);
  • It is preferred to use functions instead of these constructions. However, this syntax may sometimes be useful. The syntax does not work in symbolic expressions.
  • Fixes:
  • Errors in the examples (thanks to Radovan).
  • Turned off Maxima printing in &expression (e.g. the tex command). Use printing Maxima functions from ::.