Showing posts with label meta-numerics. Show all posts
Showing posts with label meta-numerics. Show all posts

Wednesday, May 14, 2014

Open source project of the day: Meta.Numerics

Over the last four years I have contributed a fair amount of code to the open source community. Some of these projects I have initiated myself, other projects are forks of existing projects that I have adapted to Portable Class Libraries or new target platforms. The projects range from optimization and scientific computing, over medical imaging and image processing to utility libraries. In this mini-series I intend to give a short introduction to each of these open source projects.


Meta.Numerics is an open source library for advanced scientific computation in the .NET Framework, with a bias towards statistical computations. The main web site is located here, whereas the library source code is available on CodePlex. The library has less functionality than another open source library for scientific computation, Math.NET Numerics, but at the same time it also has a substantially smaller footprint and a simple-to-use API.

Today, I stumbled across a Meta.Numerics review and noticed that one potential user was disappointed that the library did not seem to be available for Windows Store/Metro/WinRT applications. 

However, Meta.Numerics is available for this platform target, and for Windows Phone, Silverlight, Xamarin.Android and Xamarin.iOS applications as well, which I have also reported to the previously disappointed developer. 

It so happens, that Meta.Numerics is one of the projects that I have adapted to a Portable Class Library! Originally, I ported the library to Silverlight only and these changes were eventually merged into the original source code. When PCL showed up it was however a simple task to continue the adaptation to the entire PCL range of targets.

Since the library primarily is concerned with mathematical computations, it was fairly simple to port it to a wide-ranging PCL library. The only functionality I have not been able to port is the binary serialization of a few classes, and some ADO.NET based methods for initializing statistical samples.

I have done my best to update the PCL library whenever new source code is committed to the original .NET library. The PCL version of Meta.Numerics is available on Github.