First of all, thanks to all who voted for my article "Editor for Mario5", I could win again the "Best overall article" (for August 2012) competition. I was really stunned and happy to win it, since the article lost quite close in the Web Development competition (congratulations to Marcelo Ricardo de Oliveira for his amazing "Social News" article).
With such backup by the readers and users of CodeProject I digged into writing a new article about YAMP. YAMP is my latest open source project and can be found at GitHub. The name is short for Yet Another Math Parser and it basically grew from a simple (but effective) parser, to a solution that is similar to what MATLAB offers.
Personally I consider YAMP to be one of my best projects ever, since it is very extensible, follows some really cool design patterns, performs well (the benchmarks are stunning in my opinion considering the possibilities of the parser as well as the extensibility) and parses every query correctly. Let's have a look at one short example:
This looks weird, but Google tells us (as does Wikipedia) that here you have to apply the operators from right to left. The result comes by performing the operations, i.e. 2^2^4=2^16=65356.
On the other side MATLAB does perform from left to right resulting in 4^2^2=16^2=256. Of course this expression is kind of a gray area, but nevertheless if you tell MATLAB (or YAMP) to do it, then the right result should come out.
YAMP has been mainly developed on MacOS with Mono, but I did also use VS 2010 on Windows 7 and with Mono on a Debian Linux Distribution. Therefore I do know that YAMP works with either Operating System on the .NET-Framework or the platform independent Mono.
A more advanced version of a program (with an optional GUI) that makes use of YAMP will be done as soon as I finished the YAMP core library.