The C# IMSL was one of the libraries reviewed in the recent F#.NET Journal articles about numerical libraries. Overall, C# IMSL is quite good for F# because it sticks to basics and does not try to do anything clever with objects.

IMSL also provides plotting routines and may be considered as an alternative to F# for Visualization. Most of the numerical methods implemented in the C# IMSL are good but their FFT implementation is inefficient. Specifically, it is O(n^2) compared to O(n log n) for FFTW or the FFT routine in F# for Numerics. Also, the C# IMSL never used more than one core on our test machine.

The Extreme Optimization library by Jeffrey Sax offers less functionality but what functionality it does offer is generally much faster than IMSL (because it dispatches to vendor-tuned implementations like Intel MKL).

Cheers,
Jon.

By on 7/6/2008 6:37 PM ()

I haven't used this library personally (strictly speaking it shouldn't be in the "commonly used" list). What's your impression? A review here on the hub would be excellent.

Thanks!

Don

By on 11/7/2006 4:35 PM ()

I'm at the very beginning of the test.

My 1st impressions are :

* It is the only library if full managed code that implement some special forms of optimization (quadratic optimization for instance, which is --heavily-- used in asset management).

* It is good in statistics (NAG libraries are supposed to be better in optimization, and IMSL in statistics, but NAG does not exist in managed code imho)

* You can do bunch of funny things : Kalman filters, Clustering, Neural networks...

* It has pretty decent random generators (the famous Mersenne Twister)

* Documentation is really good

* The only disadvantage is that it operates at a low level : you don't have a Matrix class (except static methods), you work with Float[,] instead. So to begin playing matlab-style coding, there's a bunch of code to rewrite. I looked at the F# Array2 module for the 1st time, forgetting float array array :) It is a numerical library, it is not a matrix library .

*Nevertheless, to me it seems the most serious library for doing e.g. finance. The Dundas+IMSL+F#+WinForms cocktail is reallly cool. I code much less in matlab, much more in F# now.

Regards

Julien

By on 11/7/2006 4:53 PM ()

Great! Please keep us posted - this is very valuable information for the community.

It sounds lke you could override the definition of a set of operators, e.g. +., *. etc. to map through to be IMSL implemented matrix operations?

Don

By on 11/7/2006 4:59 PM ()
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper