OS/2 eZine - http://www.os2ezine.com
September 16, 2003
Isaac Leung (P.Eng.) got a degree in Engineering Physics followed by a Master's in Electrical Engineering after which he promptly got a job as a product engineer at a company which makes high speed datacom chips. Following the dot-com meltdown, he's back at school studying biophysics and optical properties of semiconductors. He is old enough to have cut his computer teeth on Commodore 64's and first played with OS/2 1.3 EE while at a summer job with IBM. The first PC he ever owned came with Windows 95, but he soon slapped on OS/2 Warp 3 and has been Warping ever since. In between looking for a new job, he plots to take over the world.
If you have a comment about the content of this article, please feel free to vent in the OS/2 e-Zine discussion forums.

There is also a Printer Friendly version of this page.

Previous Article
Next Article

Advertise with OS/2 e-Zine

Euler 1.23

A while back, OS/2 e-Zine took a took a look at Octave which was a mathematics package for OS/2. It was meant to be a Matlab (a commercial application) clone which was completely open-source, released under GPL (GNU Public License).

While it had a few rough edges, and you had to install gnuplot yourself if you wanted graphing capabilities, it was more well known to me and seemed to be a package that more people were using. Plus, it was almost completely Matlab compatible.

Recently, I had a chance to take a closer look at Euler v1.23, and I wish I had done so earlier! Euler is a very polished program that is relatively easy to use.

What is Euler?

To refresh the memory of those of you not familiar with the likes of Matlab, Euler is a program specializing in dealing with discrete mathematics and data (unlike MapleV, which also had a nice OS/2 version at one time).

While in high-school, most of you probably dealt with functions. But in the real world, what you really handle is data. It's always data, so often times, packages such as Matlab or Euler are much more useful. You either type in the data, read it from a file, create it or whatever you want. Using Euler, you can then manipulate them, analyze them or plot them any way you wish.

I'll give a comparison of Euler vs. MapleV to illustrate the difference. In MapleV, you might issue such a command to plot a function:
  plot(x+2, x=1..10);
This plots the function 'y=x+2' using x from values 1 to 10. Of course there is is real data that needs to be generated, but to the user, it is all behind the scenes. MapleV takes care of that for you. All the user does is specify the function.

In a program like Euler (or Matlab or Octave), you need to take care of that yourself:
  x=1:0.1:10;   plot(x+2);
The difference is subtle in this case. It's almost the same, but you had to manually create a "variable" called "x" with the appropriate data.

Perhaps a better example to illustrate the difference. In a program like MapleV, you can ask it to do some integration:
Integrating f(x)=x with respect to x will give you (x^2)/2. However, with a discrete mathematics package, there is no such function here! You can only ask for a summation (really a discrete integration) and it must work with real data. In the integration example above, the equivalent function would be to add up all the elements of x, e.g. 1+1.1+1.2+....+10.

Anyways, enough of the math lesson, let's show off a bit of Euler.

Installing Euler

First thing you need to do is download and install Euler. You can download Euler 1.23 from hobbes, don't worry, it is amazingly small, less than 500kb. Just unzip the package into the directory you want, and that's it. To run Euler, just execute "euler.exe". Very simple, no re-boots, no messing with CONFIG.SYS or anything.

Using Euler

As with similar programs, all commands are entered simply through a text-based window. I'm not going to go into too much detail about Euler command and syntax, that's entirely another article (or more!) in itself. And Euler comes with good help files, demo and tutorials.
Euler Main Window

Those of you accustomed to Matlab or Octave will feel right at home. Euler is specifically not a Matlab clone, but the commands and syntax are similar, if not identical, in many ways. (My guess is the author wanted a Matlab-clone, but it's easier when you don't have to absolutely ensure your application is 100% compatible).

With Euler, you can do many of the functions you might expect of a package of this sort. Basic math, matrix manipulations, some statistical analysis, Fourier transforms and of course, graphing capabilities too. Graphs will appear in a separate window.

Programming capability is also included in Euler. So, if you know what you're doing, you can whip up some pretty complicated numerical simulations or visualizations.

Graphing Capabilities

Of course, this is the fun part! Numbers are so boring until you plot them. There are basic 2-D type of graphs, for example, this simple line and histogram plot.
Euler Histogram Plot
Euler can also handle more complicated types like contour plots, 2-D density plots (where the density is coded in colour) and this vector field graph.
Euler Vector Field Plot
Even parametric plots can be produced, which can be shown as a simple animation. And of course, 3-D plotting capabilities are also present. From simple wire-frame models:
Euler Wire Frame Plot
To solid 3-D plots with flat patches, and the prettiest plots of all, 3-D shaded plots such as this interesting knot.
Euler Shaded 3D Plot


In terms of documentation, Euler seems quite complete. As you can note in the screenshot of the main window above, it isn't just an OS/2 command-line window. The menus do work and the help menu brings up real help in the IBM .INF viewer.

On top of the on-line help, there are some HTML files included giving examples and some documentation. Within Euler itself, there is a very complete demo (accessible from the "File->Load Demo" menu) which not only shows what it can do, it clearly explains which commands to use to do it.

All in all, I think this is very professionally done. Contrast to Octave (which, in its defense, works just like Matlab) where you do not have a searchable on-line Help and some of the stuff isn't as nicely written or complete.

In the future...

Unfortunately, the last port to OS/2 is v1.23 while the latest version of Euler on other platforms is v1.73. Actually, that's not so far behind, and the only reason is that we have nobody to compile the latest version for OS/2. It is not because support is discontinued or it can't work on OS/2.

Euler is completely open-source, released under GPL, so it would be great to have someone take over and keep the OS/2 version up to date. It would be a shame to lose such a nice piece of programming for OS/2.


Those of you who rely on applications like this "professionally" may also like Euler. You'll have to do a good evaluation yourself to make sure all functions you need are present. There is nobody working on Euler for OS/2 right now, while Octave appears to be still active, if very, very slow in development. Right now, Euler works. Better than Octave, as I don't have to mess with gnuplot and Octave and getting the right versions together. I've never had Euler go down (yet), but the Octave/gnuplot combination has died on my quite often. It's a minor hassle as long as you've saved your work (it doesn't mess up OS/2 itself), but something Euler doesn't seem prone to.

But if you're looking for a tool that will plot your data nicely, or maybe just something to play with as a teaching tool, I now think Euler is your best bet on OS/2. It's free, it's availalable, it's easy to install, it's stable and nicely done.

Related Links

Download Euler 1.23 from hobbes.nmsu.edu
Homepage for Euler (info and source code)

Previous Article
Next Article

Copyright (C) 2003. All Rights Reserved.