{-# INCLUDE <bindings.dsl.h> #-}
{-# INCLUDE <gsl/gsl_complex_math.h> #-}
{-# LINE 1 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

{-# LINE 2 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

{-# LINE 3 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

-- | <http://www.gnu.org/software/gsl/manual/html_node/Complex-Numbers.html>

module Bindings.Gsl.ComplexNumbers where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 8 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

type C'gsl_complex_packed = CUInt

{-# LINE 10 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_complex_packed_float = CUInt

{-# LINE 11 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_complex_packed_long_double = CUInt

{-# LINE 12 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_const_complex_packed = CUInt

{-# LINE 13 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_const_complex_packed_float = CUInt

{-# LINE 14 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_const_complex_packed_long_double = CUInt

{-# LINE 15 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_complex_packed_array = CUInt

{-# LINE 16 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_complex_packed_array_float = CUInt

{-# LINE 17 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_complex_packed_array_long_double = CUInt

{-# LINE 18 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_const_complex_packed_array = CUInt

{-# LINE 19 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_const_complex_packed_array_float = CUInt

{-# LINE 20 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_const_complex_packed_array_long_double = CUInt

{-# LINE 21 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_complex_packed_ptr = CUInt

{-# LINE 22 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_complex_packed_float_ptr = CUInt

{-# LINE 23 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_complex_packed_long_double_ptr = CUInt

{-# LINE 24 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_const_complex_packed_ptr = CUInt

{-# LINE 25 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_const_complex_packed_float_ptr = CUInt

{-# LINE 26 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}
type C'gsl_const_complex_packed_long_double_ptr = CUInt

{-# LINE 27 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

data C'gsl_complex_long_double = C'gsl_complex_long_double{
{-# LINE 29 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

  c'gsl_complex_long_double'dat :: [CLDouble]
{-# LINE 30 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_complex_long_double where
  sizeOf _ = 24
  alignment = sizeOf
  peek p = do
    v0 <- peekArray 2 (plusPtr p 0)
    return $ C'gsl_complex_long_double v0
  poke p (C'gsl_complex_long_double v0) = do
    pokeArray (plusPtr p 0) (take 2 v0)
    return ()

{-# LINE 31 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

data C'gsl_complex = C'gsl_complex{
{-# LINE 33 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

  c'gsl_complex'dat :: [CDouble]
{-# LINE 34 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_complex where
  sizeOf _ = 16
  alignment = sizeOf
  peek p = do
    v0 <- peekArray 2 (plusPtr p 0)
    return $ C'gsl_complex v0
  poke p (C'gsl_complex v0) = do
    pokeArray (plusPtr p 0) (take 2 v0)
    return ()

{-# LINE 35 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

data C'gsl_complex_float = C'gsl_complex_float{
{-# LINE 37 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

  c'gsl_complex_float'dat :: [CFloat]
{-# LINE 38 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_complex_float where
  sizeOf _ = 8
  alignment = sizeOf
  peek p = do
    v0 <- peekArray 2 (plusPtr p 0)
    return $ C'gsl_complex_float v0
  poke p (C'gsl_complex_float v0) = do
    pokeArray (plusPtr p 0) (take 2 v0)
    return ()

{-# LINE 39 "src/Bindings/Gsl/ComplexNumbers.hsc" #-}