hubFS: THE place for F#

. . . are you on The Hub?
Welcome to hubFS: THE place for F# Sign in | Join | Help
in Search

IMSL for C# for F#

Last post 07-06-2008, 18:37 by jdh30. 4 replies.
Sort Posts: Previous Next
  •  11-07-2006, 16:26 819

    IMSL for C# for F#

    Hi all,
    we can read in the F# manual (page http://research.microsoft.com/fsharp/manual/library.aspx)
    that the IMSL library had been tested with F#.
    I'm currently testing it.
    Does anyone here has comments on this library use? And its interaction with F#?

    Regards

    Julien
  •  11-07-2006, 16:35 820 in reply to 819

    Re: IMSL for C# for F#

    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

     

  •  11-07-2006, 16:53 821 in reply to 820

    Re: IMSL for C# for F#

    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

  •  11-07-2006, 16:59 822 in reply to 821

    Re: IMSL for C# for F#

    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

     

  •  07-06-2008, 18:37 6306 in reply to 819

    Re: IMSL for C# for F#

    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.

     

View as RSS news feed in XML
Powered by Community Server, by Telligent Systems