Math-o-mir Brief Guide (and exams in Finland)

Well, I decided to write a Brief Guide to Math-o-mir. It is a PDF file that you can download from here (234kB). This Brief Guide is 15 pages long. I believe that the Brief Guide was necessary because I am convinced, and several potential users also mentioned it, that the existing Users Manual is just too voluminous – the Users Manual is almost 100 pages long.

If you have the opportunity to check the Brief Guide, I would be happy to hear your comments. Especially about how to make it shorter and clearer. I am aiming at 12 pages. I am already aware that my English is broken, so don’t be ashamed when it must be pointed out.

In the Brief Guide, I decided to first explain the keyboard entry methods, and only then to explain the mouse usage. I am not sure if this is a good idea, but I think that it will be clearer to readers that it is the keyboard entry they should concentrate about.

I also think that the Brief Guide can be friendly to teachers and their students. Asking a student to read the Users Manual would be too cruel.


Did you know that in Finland they will have math matriculation exams completely digital from 2019. Students, age 19 mostly, will bring their own computers and boot them into exam-environment OS (Debian/Linux). There they will have selection of math software that they will be able to use when taking the exam. No paper will be used… Very brave, I would say. I wish them a good luck. It would be interesting to see how the things will turn out… I did not find much background information about this idea (in English), particularly about motivation and expectations. In any case, I hope that Math-o-mir will be one of tools students will be allowed to use during the exam.


Math-o-mir 2.0 beta 5

The new beta can be downloaded from here.

There are two news in this beta 5. First I improved borderline handling in tables and matrices. When you insert new rows/columns the borderlines of matrix cells should now behave in a more predictive way. This required some deeper changes in underlying data structures so please let me know if you find a bug when working with tables/matrices.

Secondly, I tried to refine handling of cursor movement when using keyboard arrow keys. It is quite difficult to implement a predictable cursor movements within irregular structure of a math expression. The most important new thing is that if you hit the opposite arrow direction key than in the very previous stroke, the cursor will return back to where it originally was. I hope this will help when correcting unwanted cursor moves.

In addition, pressing the left or right arrow key will always put the cursor into the fraction numerator (or denominator) – until now the cursor would jump over the fraction if the fraction was quite short. Plus, when moving cursor through multi-line text field it will move in a way more similar to standard text processor.

Math-o-mir 2.0 beta4

The new beta can be downloaded from here.

There was an annoying bug where Math-o-mir would display unary minus sign incorrectly when showing results of some simple mathematical operations. For example, when asked to compute -(-3/4) it would display –0.75 (with two minus signs in front of the number). I hope I took care of it in this beta.

Several other bugs are also exterminated, like the inability to put asterisk after parentheses: [x]*. One new minor feature is implemented – when you enter a single-letter function using the dot method, like typing f., then the function is always generated with round parentheses, like f( ). Now if you type [ or { immediately after you created the function, the parentheses shape will be altered.

I am still undecided if I should discontinue the Courier New font and replace it with some script font. I think that a script font might be of greater usage than a mono-spaced font when typing mathematics. However, no script font seem to be used as widely as the Courier New font (or Arial, or Times New Roman…). The Lucida Handwriting and Lucida Calligraphy seem common (I prefer the later), but are they common enough?

Math-o-mir 2.0 beta 3

You can download the new beta from here.

I was forced to quickly update the Math-o-mir beta due to a bug find. The bug existed for some time including the last official version. It remained undetected until today. Today I received a report stating that Math-o-mir crashes whenever any of the following is entered:

  •     d.x[spacebar]
  •     \d x[spacebar]
  •     par.x[spacebar]
  •     \par x[spacebar]

The bug is easily reproducible and thus I was able to correct it quickly. I introduced the bug when I was implementing support to toggle Math/Text typing mode using the Spacebar+Enter keystroke. I apologize.

In addition to the above, I corrected several other bugs:

  • right-mouse-click on vertical scroll bar did not work correctly every time if function plotters were used within the document. The  bug had potential to crash the software.
  • Plotting an almost-constant function would cause software to hang or crash under certain circumstances (if the difference between function minimum and function maximum value was more than about 16 orders of magnitude smaller than function mean value on that range).
  • displaying line lengths and rectangle sizes in the Drawing Box is corrected.

Function plotter uplift

A slight function plotter improvement is implemented in this 2.0 beta2 version. You can download it from here… My primary concern was to increase computation speed when plotting functions, but I don’t think I was very successful at it.

  • Computation algorithms are optimized and this resulted in about 20% faster function plotting and somewhat increased accuracy. My goal was set much higher, but I failed. Still I hope the function plotter will be more responsive now.
  • I implemented possibility to plot up to 4 functions simultaneously inside one plotter window (until now, only 3 functions were possible).
  • The plotter window grid and coordinate system is now continuously updated as you scroll or stretch the plotter window. Thus, the navigation should be easier now. I also marked zero-x and zero-y axis with a thicker line width.
  • Experimentally, while the ‘analyze’ option is turned on, the integral of the first function is calculated (for the range shown) and displayed in the lower-right corner of the plotting window.


  • In addition, I added ‘\triangle’ and ‘\square’ commands. You can also type ‘x^~’ to put tilde over the variable ‘x’.

Numerical computation

Because the Math-o-mir is not a number cruncher, a non-trivial numerical computation is not really supported. Therefore I am using the ‘analyze’ option of the function plotter when I need to crunch some numbers. The function plotter is capable to numerically find local minimums/maximums as well as intersection points between two functions. For example, when I need to find zeros of some function (only for functions of single variable) that I cannot solve symbolically, I will plot it in the function plotter together with a trivial ‘y=0’ function and the function plotter will find their intersections. Now I also implemented the numerical integration within the function plotter (all of this has limited accuracy, and results should be used with care.)

My further goal is to implement a ‘parametric function plotter’. This one will be somewhat more complex and will be able to plot equations in parametric form. I still have no idea how the user interface should look like… What I really want is to be able to use it also for simple numerical simulations: it should be able to work with integrals and derivatives. I would like to simulate some simple linear and non-linear systems in time. At least those that can be solved equation by equation. Now you understand why I am trying to increase the computation speed.

Math-o-mir v2.0 beta

Due to some compatibility changes, I decided to increase version number to 2.0. You can download the 2.0 beta from here. The mentioned compatibility issues are as follows:

  • The file format is changed. It is still possible to load and save Math-o-mir 1.x files (in fact, the 1.x file format is the default even in this beta) but this legacy support might have bugs. (You might want to back-up your files because this beta is not thoroughly tested yet. Also, saving bitmaps in the legacy format is not supported.) The new Math-o-mir 2.x file format is available under the Save As dialog box: here you can choose option “MOM file (2.x)”. The new file format is still XML, but generated files will be smaller. As a result I removed the option “MOM compressed file”.
  • The toolbox items are rearranged. Many are removed and few new ones are added. As a result, if you had some keyboard accelerators configured they might not work correctly any more and you will have to reconfigure them.

The reason for file format change is to decrease the file size. Math-o-mir files are very verbose (they still are, only to a lesser extent) as a result of XML usage. I roughly estimate that an average page adds about 50kB to the file size. The new file version significantly improves bitmap storage. If you used to paste large bitmaps into Math-o-mir documents you probably noticed that files were getting large and everything was slow. I hope it is going to be better now.

The reason for toolbox rearrangement is to group items in a more organized way. I also removed many items that were not really needed. I however added few new items:

  • the ‘equal with a hat’ operator is added (coresponds to)
  • the D’Alambert operator is added (just an empty box)
  • the triangle symbol is added
  • fancy functions for real and imaginary part of a complex number are added

Other news are that I added three additional above-variable decorations: caron (hacek), tilde and triple dot. I rearranged the software so that I have the space now to add even more decorations if needed… I upgraded the thin-line-drawing-tool so that it can draw lines angled at 45 degrees… Finally, I removed options to adjust parentheses height.

Math-o-mir 1.93 beta

As always, I uploaded very early beta version, 1.93 beta, that can be downloaded from here. Because Math-o-mir is a freeware, early user feedback is important during development process, and so I am making beta versions available during whole development process.

  • The very-large-toolbox-size option is added. This is intended for high-resolution monitors because it is probably not practical below 1920×1080. To make this possible I had to paint larger icons and this consumes some extra 40k of memory.
  • At the same time I removed very-small-toolbox-size option. This practically discontinued support for 640×480 resolution monitors. I concluded that even rural Africa has 800×600 by now.
  • The drawing-box menu is refreshed – some options added some removed.

I am doing some structural changes in software and it might cause stability issues in following betas. Let me know if you find anything. At the same time this beta reduces memory usage for hand drawings. Stammi bene.