Food for thought: Numeric.Special
Fri, 06 Jun 2003 11:06:56 +0100
> I think the only sane way to do this is with FFI, and I think the GNU
> Scientific Library (GSL) is the best target for this. Some people may
> have access to the IMSL or NAG libraries, but I doubt that most do. I
> also believe that GSL is available for all of the targets currently
> served by the various Haskell compilers, including Windows
> Most (all?) of the functions are pure, and basically accept doubles or
> ints as parameters and return a double. So, it's not a hard job, but
> there are a zillion functions. I am willing to (slowly) tackle the job
> since I already have it started.
> Thoughts? Comments?
You must avoid actually writing the import declarations for each
function by hand. With any luck, you can write a script to
automatically turn the .h file into a .hs file, and save yourself all
the work. I believe there are tools to assist in this; see a recent
posting on the Haskell FFI list by Simon Marlow:
You want to use a tool to make all this easier. There are various
tools available: green-card, c2hs, and hsc2hs are the most
commonly-used ones these days. Alastair Reid wrote a good comparison
of the various tools (can't remember the link off hand though).
There are examples of hsc2hs code in the libraries - particularly
fptools/libraries/unix has examples of doing defines, enums and
structs. Examples of green-card stuff can be found in
fptools/libraries/HGL and fptools/libraries/X11. Take a look at
Manuel's GtkHS for c2hs examples.