Storable instance for Complex

Henning Thielemann lemming at henning-thielemann.de
Fri Feb 15 11:29:05 EST 2008


On Fri, 15 Feb 2008, Jed Brown wrote:

> I propose that the following instance be added to base:
>
>   instance (RealFloat a, Storable a) => Storable (Complex a) where
>       sizeOf z    = 2 * sizeOf (realPart z)
>       alignment z = sizeOf (realPart z)
>       peek p = do
>           [r,i] <- peekArray 2 (castPtr p)
>           return (r :+ i)
>       poke p (r :+ i) = pokeArray (castPtr p) [r,i]
>
> This instance is binary compatible with C99, C++ and Fortran complex types.
>
> It is currently needed by at least two independent packages: hmatrix and
> fft. Since it is natural for user code to use both of these packages, we
> need to move the instance to a common location.
>
> http://hackage.haskell.org/trac/ghc/ticket/2099

I also need it for signal processing.


More information about the Libraries mailing list