{-# LINE 1 "src/Bindings/Gsl/Eigensystems.hsc" #-}

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

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

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

module Bindings.Gsl.Eigensystems 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.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

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

data C'gsl_eigen_symm_workspace = C'gsl_eigen_symm_workspace{
{-# LINE 12 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_symm_workspace'size :: CSize
{-# LINE 13 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_symm_workspace'd :: Ptr CDouble
{-# LINE 14 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_symm_workspace'sd :: Ptr CDouble
{-# LINE 15 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_symm_workspace where
  sizeOf _ = 12
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    return $ C'gsl_eigen_symm_workspace v0 v1 v2
  poke p (C'gsl_eigen_symm_workspace v0 v1 v2) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    return ()

{-# LINE 16 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_symm_alloc" c'gsl_eigen_symm_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_symm_workspace)
foreign import ccall "&gsl_eigen_symm_alloc" p'gsl_eigen_symm_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_symm_workspace))

{-# LINE 18 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_symm_free" c'gsl_eigen_symm_free
  :: Ptr C'gsl_eigen_symm_workspace -> IO ()
foreign import ccall "&gsl_eigen_symm_free" p'gsl_eigen_symm_free
  :: FunPtr (Ptr C'gsl_eigen_symm_workspace -> IO ())

{-# LINE 19 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_symm" c'gsl_eigen_symm
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_eigen_symm_workspace -> IO CInt
foreign import ccall "&gsl_eigen_symm" p'gsl_eigen_symm
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_eigen_symm_workspace -> IO CInt)

{-# LINE 20 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_symmv_workspace = C'gsl_eigen_symmv_workspace{
{-# LINE 22 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_symmv_workspace'size :: CSize
{-# LINE 23 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_symmv_workspace'd :: Ptr CDouble
{-# LINE 24 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_symmv_workspace'sd :: Ptr CDouble
{-# LINE 25 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_symmv_workspace'gc :: Ptr CDouble
{-# LINE 26 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_symmv_workspace'gs :: Ptr CDouble
{-# LINE 27 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_symmv_workspace where
  sizeOf _ = 20
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    v4 <- peekByteOff p 16
    return $ C'gsl_eigen_symmv_workspace v0 v1 v2 v3 v4
  poke p (C'gsl_eigen_symmv_workspace v0 v1 v2 v3 v4) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    pokeByteOff p 16 v4
    return ()

{-# LINE 28 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_symmv_alloc" c'gsl_eigen_symmv_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_symmv_workspace)
foreign import ccall "&gsl_eigen_symmv_alloc" p'gsl_eigen_symmv_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_symmv_workspace))

{-# LINE 30 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_symmv_free" c'gsl_eigen_symmv_free
  :: Ptr C'gsl_eigen_symmv_workspace -> IO ()
foreign import ccall "&gsl_eigen_symmv_free" p'gsl_eigen_symmv_free
  :: FunPtr (Ptr C'gsl_eigen_symmv_workspace -> IO ())

{-# LINE 31 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_symmv" c'gsl_eigen_symmv
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_symmv_workspace -> IO CInt
foreign import ccall "&gsl_eigen_symmv" p'gsl_eigen_symmv
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_symmv_workspace -> IO CInt)

{-# LINE 32 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_herm_workspace = C'gsl_eigen_herm_workspace{
{-# LINE 34 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_herm_workspace'size :: CSize
{-# LINE 35 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_herm_workspace'd :: Ptr CDouble
{-# LINE 36 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_herm_workspace'sd :: Ptr CDouble
{-# LINE 37 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_herm_workspace'tau :: Ptr CDouble
{-# LINE 38 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_herm_workspace where
  sizeOf _ = 16
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    return $ C'gsl_eigen_herm_workspace v0 v1 v2 v3
  poke p (C'gsl_eigen_herm_workspace v0 v1 v2 v3) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    return ()

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

foreign import ccall "gsl_eigen_herm_alloc" c'gsl_eigen_herm_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_herm_workspace)
foreign import ccall "&gsl_eigen_herm_alloc" p'gsl_eigen_herm_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_herm_workspace))

{-# LINE 41 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_herm_free" c'gsl_eigen_herm_free
  :: Ptr C'gsl_eigen_herm_workspace -> IO ()
foreign import ccall "&gsl_eigen_herm_free" p'gsl_eigen_herm_free
  :: FunPtr (Ptr C'gsl_eigen_herm_workspace -> IO ())

{-# LINE 42 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_herm" c'gsl_eigen_herm
  :: Ptr C'gsl_matrix_complex -> Ptr C'gsl_vector -> Ptr C'gsl_eigen_herm_workspace -> IO CInt
foreign import ccall "&gsl_eigen_herm" p'gsl_eigen_herm
  :: FunPtr (Ptr C'gsl_matrix_complex -> Ptr C'gsl_vector -> Ptr C'gsl_eigen_herm_workspace -> IO CInt)

{-# LINE 43 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_hermv_workspace = C'gsl_eigen_hermv_workspace{
{-# LINE 45 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_hermv_workspace'size :: CSize
{-# LINE 46 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_hermv_workspace'd :: Ptr CDouble
{-# LINE 47 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_hermv_workspace'sd :: Ptr CDouble
{-# LINE 48 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_hermv_workspace'tau :: Ptr CDouble
{-# LINE 49 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_hermv_workspace'gc :: Ptr CDouble
{-# LINE 50 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_hermv_workspace'gs :: Ptr CDouble
{-# LINE 51 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_hermv_workspace where
  sizeOf _ = 24
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    v4 <- peekByteOff p 16
    v5 <- peekByteOff p 20
    return $ C'gsl_eigen_hermv_workspace v0 v1 v2 v3 v4 v5
  poke p (C'gsl_eigen_hermv_workspace v0 v1 v2 v3 v4 v5) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    pokeByteOff p 16 v4
    pokeByteOff p 20 v5
    return ()

{-# LINE 52 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_hermv_alloc" c'gsl_eigen_hermv_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_hermv_workspace)
foreign import ccall "&gsl_eigen_hermv_alloc" p'gsl_eigen_hermv_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_hermv_workspace))

{-# LINE 54 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_hermv_free" c'gsl_eigen_hermv_free
  :: Ptr C'gsl_eigen_hermv_workspace -> IO ()
foreign import ccall "&gsl_eigen_hermv_free" p'gsl_eigen_hermv_free
  :: FunPtr (Ptr C'gsl_eigen_hermv_workspace -> IO ())

{-# LINE 55 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_hermv" c'gsl_eigen_hermv
  :: Ptr C'gsl_matrix_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_eigen_hermv_workspace -> IO CInt
foreign import ccall "&gsl_eigen_hermv" p'gsl_eigen_hermv
  :: FunPtr (Ptr C'gsl_matrix_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_eigen_hermv_workspace -> IO CInt)

{-# LINE 56 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_francis_workspace = C'gsl_eigen_francis_workspace{
{-# LINE 58 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_francis_workspace'size :: CSize
{-# LINE 59 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_francis_workspace'max_iterations :: CSize
{-# LINE 60 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_francis_workspace'n_iter :: CSize
{-# LINE 61 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_francis_workspace'n_evals :: CSize
{-# LINE 62 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_francis_workspace'compute_t :: CInt
{-# LINE 63 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_francis_workspace'H :: Ptr C'gsl_matrix
{-# LINE 64 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_francis_workspace'Z :: Ptr C'gsl_matrix
{-# LINE 65 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_francis_workspace where
  sizeOf _ = 28
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    v4 <- peekByteOff p 16
    v5 <- peekByteOff p 20
    v6 <- peekByteOff p 24
    return $ C'gsl_eigen_francis_workspace v0 v1 v2 v3 v4 v5 v6
  poke p (C'gsl_eigen_francis_workspace v0 v1 v2 v3 v4 v5 v6) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    pokeByteOff p 16 v4
    pokeByteOff p 20 v5
    pokeByteOff p 24 v6
    return ()

{-# LINE 66 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_francis_alloc" c'gsl_eigen_francis_alloc
  :: IO (Ptr C'gsl_eigen_francis_workspace)
foreign import ccall "&gsl_eigen_francis_alloc" p'gsl_eigen_francis_alloc
  :: FunPtr (IO (Ptr C'gsl_eigen_francis_workspace))

{-# LINE 68 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_francis_free" c'gsl_eigen_francis_free
  :: Ptr C'gsl_eigen_francis_workspace -> IO ()
foreign import ccall "&gsl_eigen_francis_free" p'gsl_eigen_francis_free
  :: FunPtr (Ptr C'gsl_eigen_francis_workspace -> IO ())

{-# LINE 69 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_francis_T" c'gsl_eigen_francis_T
  :: CInt -> CInt -> Ptr C'gsl_eigen_francis_workspace -> IO ()
foreign import ccall "&gsl_eigen_francis_T" p'gsl_eigen_francis_T
  :: FunPtr (CInt -> CInt -> Ptr C'gsl_eigen_francis_workspace -> IO ())

{-# LINE 70 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_francis" c'gsl_eigen_francis
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_eigen_francis_workspace -> IO CInt
foreign import ccall "&gsl_eigen_francis" p'gsl_eigen_francis
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_eigen_francis_workspace -> IO CInt)

{-# LINE 71 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_francis_Z" c'gsl_eigen_francis_Z
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_francis_workspace -> IO CInt
foreign import ccall "&gsl_eigen_francis_Z" p'gsl_eigen_francis_Z
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_francis_workspace -> IO CInt)

{-# LINE 72 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_nonsymm_workspace = C'gsl_eigen_nonsymm_workspace{
{-# LINE 74 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_nonsymm_workspace'size :: CSize
{-# LINE 75 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_nonsymm_workspace'diag :: Ptr C'gsl_vector
{-# LINE 76 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_nonsymm_workspace'tau :: Ptr C'gsl_vector
{-# LINE 77 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_nonsymm_workspace'Z :: Ptr C'gsl_matrix
{-# LINE 78 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_nonsymm_workspace'do_balance :: CInt
{-# LINE 79 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_nonsymm_workspace'n_evals :: CSize
{-# LINE 80 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_nonsymm_workspace'francis_workspace_p :: Ptr C'gsl_eigen_francis_workspace
{-# LINE 81 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_nonsymm_workspace where
  sizeOf _ = 28
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    v4 <- peekByteOff p 16
    v5 <- peekByteOff p 20
    v6 <- peekByteOff p 24
    return $ C'gsl_eigen_nonsymm_workspace v0 v1 v2 v3 v4 v5 v6
  poke p (C'gsl_eigen_nonsymm_workspace v0 v1 v2 v3 v4 v5 v6) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    pokeByteOff p 16 v4
    pokeByteOff p 20 v5
    pokeByteOff p 24 v6
    return ()

{-# LINE 82 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_nonsymm_alloc" c'gsl_eigen_nonsymm_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_nonsymm_workspace)
foreign import ccall "&gsl_eigen_nonsymm_alloc" p'gsl_eigen_nonsymm_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_nonsymm_workspace))

{-# LINE 84 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_nonsymm_free" c'gsl_eigen_nonsymm_free
  :: Ptr C'gsl_eigen_nonsymm_workspace -> IO ()
foreign import ccall "&gsl_eigen_nonsymm_free" p'gsl_eigen_nonsymm_free
  :: FunPtr (Ptr C'gsl_eigen_nonsymm_workspace -> IO ())

{-# LINE 85 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_nonsymm_params" c'gsl_eigen_nonsymm_params
  :: CInt -> CInt -> CInt -> CInt -> Ptr C'gsl_eigen_nonsymm_workspace -> IO ()
foreign import ccall "&gsl_eigen_nonsymm_params" p'gsl_eigen_nonsymm_params
  :: FunPtr (CInt -> CInt -> CInt -> CInt -> Ptr C'gsl_eigen_nonsymm_workspace -> IO ())

{-# LINE 86 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_nonsymm" c'gsl_eigen_nonsymm
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_eigen_nonsymm_workspace -> IO CInt
foreign import ccall "&gsl_eigen_nonsymm" p'gsl_eigen_nonsymm
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_eigen_nonsymm_workspace -> IO CInt)

{-# LINE 87 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_nonsymm_Z" c'gsl_eigen_nonsymm_Z
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_nonsymm_workspace -> IO CInt
foreign import ccall "&gsl_eigen_nonsymm_Z" p'gsl_eigen_nonsymm_Z
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_nonsymm_workspace -> IO CInt)

{-# LINE 88 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_nonsymmv_workspace = C'gsl_eigen_nonsymmv_workspace{
{-# LINE 90 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_nonsymmv_workspace'size :: CSize
{-# LINE 91 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_nonsymmv_workspace'work :: Ptr C'gsl_vector
{-# LINE 92 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_nonsymmv_workspace'work2 :: Ptr C'gsl_vector
{-# LINE 93 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_nonsymmv_workspace'work3 :: Ptr C'gsl_vector
{-# LINE 94 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_nonsymmv_workspace'Z :: Ptr C'gsl_matrix
{-# LINE 95 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_nonsymmv_workspace'nonsymm_workspace_p :: Ptr C'gsl_eigen_nonsymm_workspace
{-# LINE 96 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_nonsymmv_workspace where
  sizeOf _ = 24
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    v4 <- peekByteOff p 16
    v5 <- peekByteOff p 20
    return $ C'gsl_eigen_nonsymmv_workspace v0 v1 v2 v3 v4 v5
  poke p (C'gsl_eigen_nonsymmv_workspace v0 v1 v2 v3 v4 v5) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    pokeByteOff p 16 v4
    pokeByteOff p 20 v5
    return ()

{-# LINE 97 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_nonsymmv_alloc" c'gsl_eigen_nonsymmv_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_nonsymmv_workspace)
foreign import ccall "&gsl_eigen_nonsymmv_alloc" p'gsl_eigen_nonsymmv_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_nonsymmv_workspace))

{-# LINE 99 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_nonsymmv_free" c'gsl_eigen_nonsymmv_free
  :: Ptr C'gsl_eigen_nonsymmv_workspace -> IO ()
foreign import ccall "&gsl_eigen_nonsymmv_free" p'gsl_eigen_nonsymmv_free
  :: FunPtr (Ptr C'gsl_eigen_nonsymmv_workspace -> IO ())

{-# LINE 100 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_nonsymmv" c'gsl_eigen_nonsymmv
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_eigen_nonsymmv_workspace -> IO CInt
foreign import ccall "&gsl_eigen_nonsymmv" p'gsl_eigen_nonsymmv
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_eigen_nonsymmv_workspace -> IO CInt)

{-# LINE 101 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_nonsymmv_Z" c'gsl_eigen_nonsymmv_Z
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_nonsymmv_workspace -> IO CInt
foreign import ccall "&gsl_eigen_nonsymmv_Z" p'gsl_eigen_nonsymmv_Z
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_nonsymmv_workspace -> IO CInt)

{-# LINE 102 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_gensymm_workspace = C'gsl_eigen_gensymm_workspace{
{-# LINE 104 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_gensymm_workspace'size :: CSize
{-# LINE 105 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gensymm_workspace'symm_workspace_p :: Ptr C'gsl_eigen_symm_workspace
{-# LINE 106 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_gensymm_workspace where
  sizeOf _ = 8
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    return $ C'gsl_eigen_gensymm_workspace v0 v1
  poke p (C'gsl_eigen_gensymm_workspace v0 v1) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    return ()

{-# LINE 107 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_gensymm_alloc" c'gsl_eigen_gensymm_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_gensymm_workspace)
foreign import ccall "&gsl_eigen_gensymm_alloc" p'gsl_eigen_gensymm_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_gensymm_workspace))

{-# LINE 109 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_gensymm_free" c'gsl_eigen_gensymm_free
  :: Ptr C'gsl_eigen_gensymm_workspace -> IO ()
foreign import ccall "&gsl_eigen_gensymm_free" p'gsl_eigen_gensymm_free
  :: FunPtr (Ptr C'gsl_eigen_gensymm_workspace -> IO ())

{-# LINE 110 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_gensymm" c'gsl_eigen_gensymm
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_eigen_gensymm_workspace -> IO CInt
foreign import ccall "&gsl_eigen_gensymm" p'gsl_eigen_gensymm
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_eigen_gensymm_workspace -> IO CInt)

{-# LINE 111 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_gensymm_standardize" c'gsl_eigen_gensymm_standardize
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> IO CInt
foreign import ccall "&gsl_eigen_gensymm_standardize" p'gsl_eigen_gensymm_standardize
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> IO CInt)

{-# LINE 112 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_gensymmv_workspace = C'gsl_eigen_gensymmv_workspace{
{-# LINE 114 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_gensymmv_workspace'size :: CSize
{-# LINE 115 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gensymmv_workspace'symmv_workspace_p :: Ptr C'gsl_eigen_symmv_workspace
{-# LINE 116 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_gensymmv_workspace where
  sizeOf _ = 8
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    return $ C'gsl_eigen_gensymmv_workspace v0 v1
  poke p (C'gsl_eigen_gensymmv_workspace v0 v1) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    return ()

{-# LINE 117 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_gensymmv_alloc" c'gsl_eigen_gensymmv_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_gensymmv_workspace)
foreign import ccall "&gsl_eigen_gensymmv_alloc" p'gsl_eigen_gensymmv_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_gensymmv_workspace))

{-# LINE 119 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_gensymmv_free" c'gsl_eigen_gensymmv_free
  :: Ptr C'gsl_eigen_gensymmv_workspace -> IO ()
foreign import ccall "&gsl_eigen_gensymmv_free" p'gsl_eigen_gensymmv_free
  :: FunPtr (Ptr C'gsl_eigen_gensymmv_workspace -> IO ())

{-# LINE 120 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_gensymmv" c'gsl_eigen_gensymmv
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_gensymmv_workspace -> IO CInt
foreign import ccall "&gsl_eigen_gensymmv" p'gsl_eigen_gensymmv
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_gensymmv_workspace -> IO CInt)

{-# LINE 121 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_genherm_workspace = C'gsl_eigen_genherm_workspace{
{-# LINE 123 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_genherm_workspace'size :: CSize
{-# LINE 124 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_genherm_workspace'herm_workspace_p :: Ptr C'gsl_eigen_herm_workspace
{-# LINE 125 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_genherm_workspace where
  sizeOf _ = 8
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    return $ C'gsl_eigen_genherm_workspace v0 v1
  poke p (C'gsl_eigen_genherm_workspace v0 v1) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    return ()

{-# LINE 126 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_genherm_alloc" c'gsl_eigen_genherm_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_genherm_workspace)
foreign import ccall "&gsl_eigen_genherm_alloc" p'gsl_eigen_genherm_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_genherm_workspace))

{-# LINE 128 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_genherm_free" c'gsl_eigen_genherm_free
  :: Ptr C'gsl_eigen_genherm_workspace -> IO ()
foreign import ccall "&gsl_eigen_genherm_free" p'gsl_eigen_genherm_free
  :: FunPtr (Ptr C'gsl_eigen_genherm_workspace -> IO ())

{-# LINE 129 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_genherm" c'gsl_eigen_genherm
  :: Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_vector -> Ptr C'gsl_eigen_genherm_workspace -> IO CInt
foreign import ccall "&gsl_eigen_genherm" p'gsl_eigen_genherm
  :: FunPtr (Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_vector -> Ptr C'gsl_eigen_genherm_workspace -> IO CInt)

{-# LINE 130 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_genherm_standardize" c'gsl_eigen_genherm_standardize
  :: Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix_complex -> IO CInt
foreign import ccall "&gsl_eigen_genherm_standardize" p'gsl_eigen_genherm_standardize
  :: FunPtr (Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix_complex -> IO CInt)

{-# LINE 131 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_genhermv_workspace = C'gsl_eigen_genhermv_workspace{
{-# LINE 133 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_genhermv_workspace'size :: CSize
{-# LINE 134 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_genhermv_workspace'hermv_workspace_p :: Ptr C'gsl_eigen_hermv_workspace
{-# LINE 135 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_genhermv_workspace where
  sizeOf _ = 8
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    return $ C'gsl_eigen_genhermv_workspace v0 v1
  poke p (C'gsl_eigen_genhermv_workspace v0 v1) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    return ()

{-# LINE 136 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_genhermv_alloc" c'gsl_eigen_genhermv_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_genhermv_workspace)
foreign import ccall "&gsl_eigen_genhermv_alloc" p'gsl_eigen_genhermv_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_genhermv_workspace))

{-# LINE 138 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_genhermv_free" c'gsl_eigen_genhermv_free
  :: Ptr C'gsl_eigen_genhermv_workspace -> IO ()
foreign import ccall "&gsl_eigen_genhermv_free" p'gsl_eigen_genhermv_free
  :: FunPtr (Ptr C'gsl_eigen_genhermv_workspace -> IO ())

{-# LINE 139 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_genhermv" c'gsl_eigen_genhermv
  :: Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_eigen_genhermv_workspace -> IO CInt
foreign import ccall "&gsl_eigen_genhermv" p'gsl_eigen_genhermv
  :: FunPtr (Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_eigen_genhermv_workspace -> IO CInt)

{-# LINE 140 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_gen_workspace = C'gsl_eigen_gen_workspace{
{-# LINE 142 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_gen_workspace'size :: CSize
{-# LINE 143 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'work :: Ptr C'gsl_vector
{-# LINE 144 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'n_evals :: CSize
{-# LINE 145 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'max_iterations :: CSize
{-# LINE 146 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'n_iter :: CSize
{-# LINE 147 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'eshift :: CDouble
{-# LINE 148 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'needtop :: CInt
{-# LINE 149 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'atol :: CDouble
{-# LINE 150 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'btol :: CDouble
{-# LINE 151 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'ascale :: CDouble
{-# LINE 152 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'bscale :: CDouble
{-# LINE 153 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'H :: Ptr C'gsl_matrix
{-# LINE 154 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'R :: Ptr C'gsl_matrix
{-# LINE 155 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'compute_s :: CInt
{-# LINE 156 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'compute_t :: CInt
{-# LINE 157 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'Q :: Ptr C'gsl_matrix
{-# LINE 158 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_gen_workspace'Z :: Ptr C'gsl_matrix
{-# LINE 159 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_gen_workspace where
  sizeOf _ = 88
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    v4 <- peekByteOff p 16
    v5 <- peekByteOff p 20
    v6 <- peekByteOff p 28
    v7 <- peekByteOff p 32
    v8 <- peekByteOff p 40
    v9 <- peekByteOff p 48
    v10 <- peekByteOff p 56
    v11 <- peekByteOff p 64
    v12 <- peekByteOff p 68
    v13 <- peekByteOff p 72
    v14 <- peekByteOff p 76
    v15 <- peekByteOff p 80
    v16 <- peekByteOff p 84
    return $ C'gsl_eigen_gen_workspace v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16
  poke p (C'gsl_eigen_gen_workspace v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    pokeByteOff p 16 v4
    pokeByteOff p 20 v5
    pokeByteOff p 28 v6
    pokeByteOff p 32 v7
    pokeByteOff p 40 v8
    pokeByteOff p 48 v9
    pokeByteOff p 56 v10
    pokeByteOff p 64 v11
    pokeByteOff p 68 v12
    pokeByteOff p 72 v13
    pokeByteOff p 76 v14
    pokeByteOff p 80 v15
    pokeByteOff p 84 v16
    return ()

{-# LINE 160 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_gen_alloc" c'gsl_eigen_gen_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_gen_workspace)
foreign import ccall "&gsl_eigen_gen_alloc" p'gsl_eigen_gen_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_gen_workspace))

{-# LINE 162 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_gen_free" c'gsl_eigen_gen_free
  :: Ptr C'gsl_eigen_gen_workspace -> IO ()
foreign import ccall "&gsl_eigen_gen_free" p'gsl_eigen_gen_free
  :: FunPtr (Ptr C'gsl_eigen_gen_workspace -> IO ())

{-# LINE 163 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_gen_params" c'gsl_eigen_gen_params
  :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Ptr C'gsl_eigen_gen_workspace -> IO ()
foreign import ccall "&gsl_eigen_gen_params" p'gsl_eigen_gen_params
  :: FunPtr (CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Ptr C'gsl_eigen_gen_workspace -> IO ())

{-# LINE 164 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_gen" c'gsl_eigen_gen
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector -> Ptr C'gsl_eigen_gen_workspace -> IO CInt
foreign import ccall "&gsl_eigen_gen" p'gsl_eigen_gen
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector -> Ptr C'gsl_eigen_gen_workspace -> IO CInt)

{-# LINE 165 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_gen_QZ" c'gsl_eigen_gen_QZ
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_gen_workspace -> IO CInt
foreign import ccall "&gsl_eigen_gen_QZ" p'gsl_eigen_gen_QZ
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_gen_workspace -> IO CInt)

{-# LINE 166 "src/Bindings/Gsl/Eigensystems.hsc" #-}

data C'gsl_eigen_genv_workspace = C'gsl_eigen_genv_workspace{
{-# LINE 168 "src/Bindings/Gsl/Eigensystems.hsc" #-}

  c'gsl_eigen_genv_workspace'size :: CSize
{-# LINE 169 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_genv_workspace'work1 :: Ptr C'gsl_vector
{-# LINE 170 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_genv_workspace'work2 :: Ptr C'gsl_vector
{-# LINE 171 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_genv_workspace'work3 :: Ptr C'gsl_vector
{-# LINE 172 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_genv_workspace'work4 :: Ptr C'gsl_vector
{-# LINE 173 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_genv_workspace'work5 :: Ptr C'gsl_vector
{-# LINE 174 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_genv_workspace'work6 :: Ptr C'gsl_vector
{-# LINE 175 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_genv_workspace'Q :: Ptr C'gsl_matrix
{-# LINE 176 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_genv_workspace'Z :: Ptr C'gsl_matrix
{-# LINE 177 "src/Bindings/Gsl/Eigensystems.hsc" #-}
,
  c'gsl_eigen_genv_workspace'gen_workspace_p :: Ptr C'gsl_eigen_gen_workspace
{-# LINE 178 "src/Bindings/Gsl/Eigensystems.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_eigen_genv_workspace where
  sizeOf _ = 40
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    v4 <- peekByteOff p 16
    v5 <- peekByteOff p 20
    v6 <- peekByteOff p 24
    v7 <- peekByteOff p 28
    v8 <- peekByteOff p 32
    v9 <- peekByteOff p 36
    return $ C'gsl_eigen_genv_workspace v0 v1 v2 v3 v4 v5 v6 v7 v8 v9
  poke p (C'gsl_eigen_genv_workspace v0 v1 v2 v3 v4 v5 v6 v7 v8 v9) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    pokeByteOff p 16 v4
    pokeByteOff p 20 v5
    pokeByteOff p 24 v6
    pokeByteOff p 28 v7
    pokeByteOff p 32 v8
    pokeByteOff p 36 v9
    return ()

{-# LINE 179 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_genv_alloc" c'gsl_eigen_genv_alloc
  :: CSize -> IO (Ptr C'gsl_eigen_genv_workspace)
foreign import ccall "&gsl_eigen_genv_alloc" p'gsl_eigen_genv_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_eigen_genv_workspace))

{-# LINE 181 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_genv_free" c'gsl_eigen_genv_free
  :: Ptr C'gsl_eigen_genv_workspace -> IO ()
foreign import ccall "&gsl_eigen_genv_free" p'gsl_eigen_genv_free
  :: FunPtr (Ptr C'gsl_eigen_genv_workspace -> IO ())

{-# LINE 182 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_genv" c'gsl_eigen_genv
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_eigen_genv_workspace -> IO CInt
foreign import ccall "&gsl_eigen_genv" p'gsl_eigen_genv
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_eigen_genv_workspace -> IO CInt)

{-# LINE 183 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_genv_QZ" c'gsl_eigen_genv_QZ
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_genv_workspace -> IO CInt
foreign import ccall "&gsl_eigen_genv_QZ" p'gsl_eigen_genv_QZ
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_eigen_genv_workspace -> IO CInt)

{-# LINE 184 "src/Bindings/Gsl/Eigensystems.hsc" #-}

type C'gsl_eigen_sort_t = CUInt

{-# LINE 186 "src/Bindings/Gsl/Eigensystems.hsc" #-}

c'GSL_EIGEN_SORT_VAL_ASC = 0
c'GSL_EIGEN_SORT_VAL_ASC :: (Num a) => a

{-# LINE 188 "src/Bindings/Gsl/Eigensystems.hsc" #-}
c'GSL_EIGEN_SORT_VAL_DESC = 1
c'GSL_EIGEN_SORT_VAL_DESC :: (Num a) => a

{-# LINE 189 "src/Bindings/Gsl/Eigensystems.hsc" #-}
c'GSL_EIGEN_SORT_ABS_ASC = 2
c'GSL_EIGEN_SORT_ABS_ASC :: (Num a) => a

{-# LINE 190 "src/Bindings/Gsl/Eigensystems.hsc" #-}
c'GSL_EIGEN_SORT_ABS_DESC = 3
c'GSL_EIGEN_SORT_ABS_DESC :: (Num a) => a

{-# LINE 191 "src/Bindings/Gsl/Eigensystems.hsc" #-}

foreign import ccall "gsl_eigen_symmv_sort" c'gsl_eigen_symmv_sort
  :: Ptr C'gsl_vector -> Ptr C'gsl_matrix -> C'gsl_eigen_sort_t -> IO CInt
foreign import ccall "&gsl_eigen_symmv_sort" p'gsl_eigen_symmv_sort
  :: FunPtr (Ptr C'gsl_vector -> Ptr C'gsl_matrix -> C'gsl_eigen_sort_t -> IO CInt)

{-# LINE 193 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_hermv_sort" c'gsl_eigen_hermv_sort
  :: Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> C'gsl_eigen_sort_t -> IO CInt
foreign import ccall "&gsl_eigen_hermv_sort" p'gsl_eigen_hermv_sort
  :: FunPtr (Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> C'gsl_eigen_sort_t -> IO CInt)

{-# LINE 194 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_nonsymmv_sort" c'gsl_eigen_nonsymmv_sort
  :: Ptr C'gsl_vector_complex -> Ptr C'gsl_matrix_complex -> C'gsl_eigen_sort_t -> IO CInt
foreign import ccall "&gsl_eigen_nonsymmv_sort" p'gsl_eigen_nonsymmv_sort
  :: FunPtr (Ptr C'gsl_vector_complex -> Ptr C'gsl_matrix_complex -> C'gsl_eigen_sort_t -> IO CInt)

{-# LINE 195 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_gensymmv_sort" c'gsl_eigen_gensymmv_sort
  :: Ptr C'gsl_vector -> Ptr C'gsl_matrix -> C'gsl_eigen_sort_t -> IO CInt
foreign import ccall "&gsl_eigen_gensymmv_sort" p'gsl_eigen_gensymmv_sort
  :: FunPtr (Ptr C'gsl_vector -> Ptr C'gsl_matrix -> C'gsl_eigen_sort_t -> IO CInt)

{-# LINE 196 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_genhermv_sort" c'gsl_eigen_genhermv_sort
  :: Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> C'gsl_eigen_sort_t -> IO CInt
foreign import ccall "&gsl_eigen_genhermv_sort" p'gsl_eigen_genhermv_sort
  :: FunPtr (Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> C'gsl_eigen_sort_t -> IO CInt)

{-# LINE 197 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_eigen_genv_sort" c'gsl_eigen_genv_sort
  :: Ptr C'gsl_vector_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> C'gsl_eigen_sort_t -> IO CInt
foreign import ccall "&gsl_eigen_genv_sort" p'gsl_eigen_genv_sort
  :: FunPtr (Ptr C'gsl_vector_complex -> Ptr C'gsl_vector -> Ptr C'gsl_matrix_complex -> C'gsl_eigen_sort_t -> IO CInt)

{-# LINE 198 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_schur_gen_eigvals" c'gsl_schur_gen_eigvals
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO CInt
foreign import ccall "&gsl_schur_gen_eigvals" p'gsl_schur_gen_eigvals
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO CInt)

{-# LINE 199 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_schur_solve_equation" c'gsl_schur_solve_equation
  :: CDouble -> Ptr C'gsl_matrix -> CDouble -> CDouble -> CDouble -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr CDouble -> Ptr CDouble -> CDouble -> IO CInt
foreign import ccall "&gsl_schur_solve_equation" p'gsl_schur_solve_equation
  :: FunPtr (CDouble -> Ptr C'gsl_matrix -> CDouble -> CDouble -> CDouble -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr CDouble -> Ptr CDouble -> CDouble -> IO CInt)

{-# LINE 200 "src/Bindings/Gsl/Eigensystems.hsc" #-}
foreign import ccall "gsl_schur_solve_equation_z" c'gsl_schur_solve_equation_z
  :: CDouble -> Ptr C'gsl_matrix -> Ptr C'gsl_complex -> CDouble -> CDouble -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector_complex -> Ptr CDouble -> Ptr CDouble -> CDouble -> IO CInt
foreign import ccall "&gsl_schur_solve_equation_z" p'gsl_schur_solve_equation_z
  :: FunPtr (CDouble -> Ptr C'gsl_matrix -> Ptr C'gsl_complex -> CDouble -> CDouble -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector_complex -> Ptr CDouble -> Ptr CDouble -> CDouble -> IO CInt)

{-# LINE 201 "src/Bindings/Gsl/Eigensystems.hsc" #-}