Rewriting the core library

The core library currently targets the .NET framework, which makes it possible to use all of the functionality in Windows, Windows Phone, and Linux (through Mono). However, it would be great if the core library could have bindings in other programming languages too (see the post).

Since most of the code is currently written in C#, it would not be difficult to convert some or all of it to say Java or C++. In this way, the functionality will be accessible from many high level languages, for example Python. By doing this, it will be quite easy to use the functionality in both Windows and Linux environments, and there won't be any need to install additional software such as .NET or Mono. Moreover, the code will be faster!

Both me and Ethan are up for this, so if you would like to join this initiative, it would be good if we could have a virtual conference next week. Please send me a message directly as soon as possible so that we can pick the time that will be suitable for all of us.


A letter to all contributors

A new summary letter for September and October can be found below:

Stern-Brocot system - spotting patterns easier

Mathos Core Library has some new functionality in the Fraction class. Here are some of the new methods:

All these methods are thought to be used to spot different kinds of patterns in numbers. Let's take a look at a some simple examples.

Simple fraction representation and conversion

When you use ToSternBrocotSystem on fraction, you will get an expression in terms of L's and R's. For example,

  • 3/2 ⇒ RL
  • 28/9 ⇒ RRRLLLLLLLL

You can use From SternBrocotSystem to convert it back to the actual fraction. In our Ruby Interpreter, this can be achieved by the following lines of code:

Approximation of real numbers (transcendental and non-transcendental)

The static method ToSternBrocotSystem has two functions. Either it approximates any real number such as e, or real numbers that can be expressed as a fraction for instance 0.66666.....  6/9=2/3.

When you approximate a number, you must assign the number of times it should iterate. If you know in advance that it is a continuous fraction, iteration count does not have to be specified. For example,


If you know that the number is continuous, you can find an equivalent fraction:

  • 1.9.... ⇒ R
  • R ⇒ 2

NOTE: 0 and 1 cannot be expressed with Stern Brocot notation. This also means that 0.9.... cannot be expressed since it's 1.

In Ruby Interpreter,

Spotting the pattern with condensed form

In order to make it easier to spot the pattern, there is a method called ToCondensedSternBrocot System. Instead of having a long array of L's and R's, this function will put a number that will tell you how many of each L and R there are in the string. For example,

  • e ⇒ R(2)L(1)R(2)L(1)R(1)L(4)R(1)L(1)R(6)
  • sqrt(3)/2 ⇒ L(1)R(6)L(2)R(6)L(2)R(6)L(2)R(6)L(2)R(6)

The Ruby Interpreter code that was used is:


In order to access these functions, you will have to download the latest changeset of the library. If you would have any questions, please feel free to ask at

Integral Approximation app is now available

Mathos Project provides three ways of approximating integrals. Using a Windows application, Web application, or Windows Phone app. The third option was released yesterday, and it is based on the IntegralCalculus package and Mathos Parser. The app uses the optimization technique pre-scanned expressions for faster integral evaluations. This is a paid app, which is intended to cover some of the hosting/domain name fees. Some screenshots:


Main screen (several integration methods)


Approximation methods


Main screen (one integration method)

New layout for Laboratory website

Some days ago, Mathos Laboratory website layout was entirely replaced by a new layout constructed by Diego Belli, Lead Developer of Mathos Laboratory.


The list of modules


The home page

This layout is much better than the one we had before since: 1) it is unique (the one before was a default one) 2) it is easier to use (it uses the entire screen rather than a small bit) 3) its colour scheme contains bright colours (before it was dark blueish and grayish). Also, the modules are better organized, which again makes it easier for a target user to navigate the website.

If you have any suggestions, please post them here:

For support requests, please use this website (you can log in using an external account):