An important library in the C# and F# open source communities is the Math.NET Numerics library. I blogged the first part in a (slow) series on using the library from F# back in June and there is another tutorial as part of the Numerical Libraries for F# and the .NET Framework overview from early last year. We also use this library in Expert F# 3.0, Chapter 10, in the chapter on "Programming With Numbers", and the library is also used in the new Try F# 3.0 website.

The library has received a scrub recently, with a much simplified website and moving to the pull-request model of open-source development, and v2.3.0 is now released. Here are the release notes from one of the contributors, Christoph Rüegg.  The parts specifically related to F# support are highlighted, though of course all of it is goodness to the open-source-oriented, math-oriented F# programmer.

If you're interested in this space you might like to consider contributing to the F# support in Math.NET Numerics (or the core C# library itself). The folks at the F# Software Foundation like the library too and are working on including information about it, something you can also contribute to. There has also been some discussion about F# math types on GitHub recently (also here), including the possibility of copying the F# matrix types from the F# power pack into MathNet.Numerics.FSharp and adding them to the family of matrix representations supported by Math.NET Numerics.  This would give a more centralized home to open-source math support for F# and would avoid duplication in the long term.

Kind regards

Don

 

Portable Library Build:

  • Adds support for WP8 (.Net 4.0 and higher, SL5, WP8 and .NET for Windows Store apps)
  • New: portable build also for F# extensions (.Net 4.5, SL5 and .NET for Windows Store apps)
  • NuGet: portable builds are now included in the main packages, no more need for special portable packages

Linear Algebra:

  • Continued major storage rework, in this release focusing on vectors (previous release was on matrices)
  • Thin QR decomposition (in addition to existing full QR)
  • Static CreateRandom for all dense matrix and vector types
  • F#: slicing support for matrices and vectors

Random and Probability Distributions:

  • Consistent static Sample methods for all continuous and discrete distributions (was previously missing on a few)
  • F#: better usability for random numbers and distributions.

Misc:

  • F# extensions are now using F# 3.0
  • Updated Intel MKL references for our native linear algebra providers
  • Various bug, performance and usability fixes

Also available as NuGet packages:
PM> Install-Package MathNet.Numerics
PM> Install-Package MathNet.Numerics.FSharp

Note: The portable package MathNet.Numerics.Portable has been dropped, as NuGet 2.1 properly supports portable builds in the main package.