Auto-vectorization and YAMP

A short look at the new Visual Studio running on Windows 8 and a new (open-source) project called YAMP.

Lately I've been busy with doing some work on open-source projects like WinFormsX. Since Windows 8 (RTM) was released some weeks ago, I hurried to install it on my laptop. The reason for this was a test to confirm everything I learned from the Developer Preview version of Windows 8. To say the least: My initial fear has been resolved, the system feels fluid and the new start menu is not in my way. The enhanced desktop feels superior and the new applications feel just right.

The new Visual Studio, however, is kind of disappointing from the design perspective. I did like the VS 2010 look a lot and was very disappointed that the formerly good looking IDE has been altered to a grayish antique box. But this box is quite powerful!

With plenty of features like the new parallel debugging, code jump points, NuGet integration and several other big features the new Visual Studio is certainly with the change. One of the most interesting features is the new C++ compiler. It is fully C++11 standard conform and introduces auto-vectorization.

Formerly the Microsoft C++ compiler was very powerful when it came down to optimizing algorithms. While other compilers did exactly what was written in the code, the Microsoft compiler had some scenarios in mind, where it knew what to change to have the same output - just in a faster time. Now with the new auto-vectorization, the compiler can even compete with the compiler from Intel in hardware utilization.

I also started another open-source project - the name for this project is Yet Another Math Parser - or YAMP. There are already some math parsers, that have been written in pure C#, but this one aims to be more complete and better in some ways. On the one hand it is quite fast - not the fastest one, but far above average. It can parse and evaluate around 100000 math equations in 10 seconds.

While other parser fail to parse my (quite simple) test queries, YAMP can even go one step further and compute with symbols, custom functions, complex numbers and even matrices. The syntax is similar (but different) to the one from MATLAB. Standard queries can be written like "2^2^2^2+5-5*3/(2+3)" or "(2+i)^5" etc.

The project will try to make YAMP as complete as possible - from the math parser as well as from the algorithmic side (there should be quite some nifty numerics in it). More news about YAMP will follow.

Created .

References

Sharing is caring!