Passing a matrix from C to Haskell
Chris Kuklewicz
haskell at list.mightyreason.com
Tue Feb 7 18:35:39 EST 2006
Cyril Schmidt wrote:
> I need to pass a big 2-dimensional array of doubles from a legacy
> C code to a Haskell module. Of this huge array, the Haskell code will
> actually use only
> a few elements (say, 10 out of 100x20 matrix). Unfortunately, the C code
> does not know
> which data are actually needed in the Haskell module.
>
> What would be a good way to pass the array to Haskell and, once the data
> are handed over,
> what is the fastest way to fetch these elements?
>
> I was thinking of something like passing the array as Ptr Int#, but how
> do I fetch the elements
> that I am interested in?
>
> Cheers,
>
> Cyril
>
>
You probably want Foreign.Marshal.Array
http://www.haskell.org/ghc/docs/6.4.1/html/libraries/base/Foreign-Marshal-Array.html
peekArray :: Storable a => Int -> Ptr a -> IO [a]
More information about the Glasgow-haskell-users
mailing list