Storable instance for Complex

Jed Brown jed at 59A2.org
Fri Feb 15 11:20:35 EST 2008


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

Jed
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://www.haskell.org/pipermail/libraries/attachments/20080215/85b5b543/attachment.bin


More information about the Libraries mailing list