{-# 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.DataTypes


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

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

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

{-# LINE 15 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_symm_workspace = C'gsl_eigen_symm_workspace{
  c'gsl_eigen_symm_workspace'size :: CSize,
  c'gsl_eigen_symm_workspace'd :: Ptr CDouble,
  c'gsl_eigen_symm_workspace'sd :: Ptr CDouble
} deriving (Eq,Show)
p'gsl_eigen_symm_workspace'size p = plusPtr p 0
p'gsl_eigen_symm_workspace'size :: Ptr (C'gsl_eigen_symm_workspace) -> Ptr (CSize)
p'gsl_eigen_symm_workspace'd p = plusPtr p 4
p'gsl_eigen_symm_workspace'd :: Ptr (C'gsl_eigen_symm_workspace) -> Ptr (Ptr CDouble)
p'gsl_eigen_symm_workspace'sd p = plusPtr p 8
p'gsl_eigen_symm_workspace'sd :: Ptr (C'gsl_eigen_symm_workspace) -> Ptr (Ptr CDouble)
instance Storable C'gsl_eigen_symm_workspace where
  sizeOf _ = 12
  alignment _ = 4
  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" #-}


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

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

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

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

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

{-# LINE 27 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_symmv_workspace = C'gsl_eigen_symmv_workspace{
  c'gsl_eigen_symmv_workspace'size :: CSize,
  c'gsl_eigen_symmv_workspace'd :: Ptr CDouble,
  c'gsl_eigen_symmv_workspace'sd :: Ptr CDouble,
  c'gsl_eigen_symmv_workspace'gc :: Ptr CDouble,
  c'gsl_eigen_symmv_workspace'gs :: Ptr CDouble
} deriving (Eq,Show)
p'gsl_eigen_symmv_workspace'size p = plusPtr p 0
p'gsl_eigen_symmv_workspace'size :: Ptr (C'gsl_eigen_symmv_workspace) -> Ptr (CSize)
p'gsl_eigen_symmv_workspace'd p = plusPtr p 4
p'gsl_eigen_symmv_workspace'd :: Ptr (C'gsl_eigen_symmv_workspace) -> Ptr (Ptr CDouble)
p'gsl_eigen_symmv_workspace'sd p = plusPtr p 8
p'gsl_eigen_symmv_workspace'sd :: Ptr (C'gsl_eigen_symmv_workspace) -> Ptr (Ptr CDouble)
p'gsl_eigen_symmv_workspace'gc p = plusPtr p 12
p'gsl_eigen_symmv_workspace'gc :: Ptr (C'gsl_eigen_symmv_workspace) -> Ptr (Ptr CDouble)
p'gsl_eigen_symmv_workspace'gs p = plusPtr p 16
p'gsl_eigen_symmv_workspace'gs :: Ptr (C'gsl_eigen_symmv_workspace) -> Ptr (Ptr CDouble)
instance Storable C'gsl_eigen_symmv_workspace where
  sizeOf _ = 20
  alignment _ = 4
  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" #-}


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

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

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

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

{-# LINE 38 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_herm_workspace = C'gsl_eigen_herm_workspace{
  c'gsl_eigen_herm_workspace'size :: CSize,
  c'gsl_eigen_herm_workspace'd :: Ptr CDouble,
  c'gsl_eigen_herm_workspace'sd :: Ptr CDouble,
  c'gsl_eigen_herm_workspace'tau :: Ptr CDouble
} deriving (Eq,Show)
p'gsl_eigen_herm_workspace'size p = plusPtr p 0
p'gsl_eigen_herm_workspace'size :: Ptr (C'gsl_eigen_herm_workspace) -> Ptr (CSize)
p'gsl_eigen_herm_workspace'd p = plusPtr p 4
p'gsl_eigen_herm_workspace'd :: Ptr (C'gsl_eigen_herm_workspace) -> Ptr (Ptr CDouble)
p'gsl_eigen_herm_workspace'sd p = plusPtr p 8
p'gsl_eigen_herm_workspace'sd :: Ptr (C'gsl_eigen_herm_workspace) -> Ptr (Ptr CDouble)
p'gsl_eigen_herm_workspace'tau p = plusPtr p 12
p'gsl_eigen_herm_workspace'tau :: Ptr (C'gsl_eigen_herm_workspace) -> Ptr (Ptr CDouble)
instance Storable C'gsl_eigen_herm_workspace where
  sizeOf _ = 16
  alignment _ = 4
  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" #-}


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

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

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

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

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

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

{-# LINE 51 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_hermv_workspace = C'gsl_eigen_hermv_workspace{
  c'gsl_eigen_hermv_workspace'size :: CSize,
  c'gsl_eigen_hermv_workspace'd :: Ptr CDouble,
  c'gsl_eigen_hermv_workspace'sd :: Ptr CDouble,
  c'gsl_eigen_hermv_workspace'tau :: Ptr CDouble,
  c'gsl_eigen_hermv_workspace'gc :: Ptr CDouble,
  c'gsl_eigen_hermv_workspace'gs :: Ptr CDouble
} deriving (Eq,Show)
p'gsl_eigen_hermv_workspace'size p = plusPtr p 0
p'gsl_eigen_hermv_workspace'size :: Ptr (C'gsl_eigen_hermv_workspace) -> Ptr (CSize)
p'gsl_eigen_hermv_workspace'd p = plusPtr p 4
p'gsl_eigen_hermv_workspace'd :: Ptr (C'gsl_eigen_hermv_workspace) -> Ptr (Ptr CDouble)
p'gsl_eigen_hermv_workspace'sd p = plusPtr p 8
p'gsl_eigen_hermv_workspace'sd :: Ptr (C'gsl_eigen_hermv_workspace) -> Ptr (Ptr CDouble)
p'gsl_eigen_hermv_workspace'tau p = plusPtr p 12
p'gsl_eigen_hermv_workspace'tau :: Ptr (C'gsl_eigen_hermv_workspace) -> Ptr (Ptr CDouble)
p'gsl_eigen_hermv_workspace'gc p = plusPtr p 16
p'gsl_eigen_hermv_workspace'gc :: Ptr (C'gsl_eigen_hermv_workspace) -> Ptr (Ptr CDouble)
p'gsl_eigen_hermv_workspace'gs p = plusPtr p 20
p'gsl_eigen_hermv_workspace'gs :: Ptr (C'gsl_eigen_hermv_workspace) -> Ptr (Ptr CDouble)
instance Storable C'gsl_eigen_hermv_workspace where
  sizeOf _ = 24
  alignment _ = 4
  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" #-}


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

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

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

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

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

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

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

{-# LINE 65 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_francis_workspace = C'gsl_eigen_francis_workspace{
  c'gsl_eigen_francis_workspace'size :: CSize,
  c'gsl_eigen_francis_workspace'max_iterations :: CSize,
  c'gsl_eigen_francis_workspace'n_iter :: CSize,
  c'gsl_eigen_francis_workspace'n_evals :: CSize,
  c'gsl_eigen_francis_workspace'compute_t :: CInt,
  c'gsl_eigen_francis_workspace'H :: Ptr C'gsl_matrix,
  c'gsl_eigen_francis_workspace'Z :: Ptr C'gsl_matrix
} deriving (Eq,Show)
p'gsl_eigen_francis_workspace'size p = plusPtr p 0
p'gsl_eigen_francis_workspace'size :: Ptr (C'gsl_eigen_francis_workspace) -> Ptr (CSize)
p'gsl_eigen_francis_workspace'max_iterations p = plusPtr p 4
p'gsl_eigen_francis_workspace'max_iterations :: Ptr (C'gsl_eigen_francis_workspace) -> Ptr (CSize)
p'gsl_eigen_francis_workspace'n_iter p = plusPtr p 8
p'gsl_eigen_francis_workspace'n_iter :: Ptr (C'gsl_eigen_francis_workspace) -> Ptr (CSize)
p'gsl_eigen_francis_workspace'n_evals p = plusPtr p 12
p'gsl_eigen_francis_workspace'n_evals :: Ptr (C'gsl_eigen_francis_workspace) -> Ptr (CSize)
p'gsl_eigen_francis_workspace'compute_t p = plusPtr p 16
p'gsl_eigen_francis_workspace'compute_t :: Ptr (C'gsl_eigen_francis_workspace) -> Ptr (CInt)
p'gsl_eigen_francis_workspace'H p = plusPtr p 20
p'gsl_eigen_francis_workspace'H :: Ptr (C'gsl_eigen_francis_workspace) -> Ptr (Ptr C'gsl_matrix)
p'gsl_eigen_francis_workspace'Z p = plusPtr p 24
p'gsl_eigen_francis_workspace'Z :: Ptr (C'gsl_eigen_francis_workspace) -> Ptr (Ptr C'gsl_matrix)
instance Storable C'gsl_eigen_francis_workspace where
  sizeOf _ = 28
  alignment _ = 4
  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" #-}


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

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

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

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

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

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

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

{-# LINE 81 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_nonsymm_workspace = C'gsl_eigen_nonsymm_workspace{
  c'gsl_eigen_nonsymm_workspace'size :: CSize,
  c'gsl_eigen_nonsymm_workspace'diag :: Ptr C'gsl_vector,
  c'gsl_eigen_nonsymm_workspace'tau :: Ptr C'gsl_vector,
  c'gsl_eigen_nonsymm_workspace'Z :: Ptr C'gsl_matrix,
  c'gsl_eigen_nonsymm_workspace'do_balance :: CInt,
  c'gsl_eigen_nonsymm_workspace'n_evals :: CSize,
  c'gsl_eigen_nonsymm_workspace'francis_workspace_p :: Ptr C'gsl_eigen_francis_workspace
} deriving (Eq,Show)
p'gsl_eigen_nonsymm_workspace'size p = plusPtr p 0
p'gsl_eigen_nonsymm_workspace'size :: Ptr (C'gsl_eigen_nonsymm_workspace) -> Ptr (CSize)
p'gsl_eigen_nonsymm_workspace'diag p = plusPtr p 4
p'gsl_eigen_nonsymm_workspace'diag :: Ptr (C'gsl_eigen_nonsymm_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_nonsymm_workspace'tau p = plusPtr p 8
p'gsl_eigen_nonsymm_workspace'tau :: Ptr (C'gsl_eigen_nonsymm_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_nonsymm_workspace'Z p = plusPtr p 12
p'gsl_eigen_nonsymm_workspace'Z :: Ptr (C'gsl_eigen_nonsymm_workspace) -> Ptr (Ptr C'gsl_matrix)
p'gsl_eigen_nonsymm_workspace'do_balance p = plusPtr p 16
p'gsl_eigen_nonsymm_workspace'do_balance :: Ptr (C'gsl_eigen_nonsymm_workspace) -> Ptr (CInt)
p'gsl_eigen_nonsymm_workspace'n_evals p = plusPtr p 20
p'gsl_eigen_nonsymm_workspace'n_evals :: Ptr (C'gsl_eigen_nonsymm_workspace) -> Ptr (CSize)
p'gsl_eigen_nonsymm_workspace'francis_workspace_p p = plusPtr p 24
p'gsl_eigen_nonsymm_workspace'francis_workspace_p :: Ptr (C'gsl_eigen_nonsymm_workspace) -> Ptr (Ptr C'gsl_eigen_francis_workspace)
instance Storable C'gsl_eigen_nonsymm_workspace where
  sizeOf _ = 28
  alignment _ = 4
  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" #-}


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

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

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

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

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

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

{-# LINE 96 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_nonsymmv_workspace = C'gsl_eigen_nonsymmv_workspace{
  c'gsl_eigen_nonsymmv_workspace'size :: CSize,
  c'gsl_eigen_nonsymmv_workspace'work :: Ptr C'gsl_vector,
  c'gsl_eigen_nonsymmv_workspace'work2 :: Ptr C'gsl_vector,
  c'gsl_eigen_nonsymmv_workspace'work3 :: Ptr C'gsl_vector,
  c'gsl_eigen_nonsymmv_workspace'Z :: Ptr C'gsl_matrix,
  c'gsl_eigen_nonsymmv_workspace'nonsymm_workspace_p :: Ptr C'gsl_eigen_nonsymm_workspace
} deriving (Eq,Show)
p'gsl_eigen_nonsymmv_workspace'size p = plusPtr p 0
p'gsl_eigen_nonsymmv_workspace'size :: Ptr (C'gsl_eigen_nonsymmv_workspace) -> Ptr (CSize)
p'gsl_eigen_nonsymmv_workspace'work p = plusPtr p 4
p'gsl_eigen_nonsymmv_workspace'work :: Ptr (C'gsl_eigen_nonsymmv_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_nonsymmv_workspace'work2 p = plusPtr p 8
p'gsl_eigen_nonsymmv_workspace'work2 :: Ptr (C'gsl_eigen_nonsymmv_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_nonsymmv_workspace'work3 p = plusPtr p 12
p'gsl_eigen_nonsymmv_workspace'work3 :: Ptr (C'gsl_eigen_nonsymmv_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_nonsymmv_workspace'Z p = plusPtr p 16
p'gsl_eigen_nonsymmv_workspace'Z :: Ptr (C'gsl_eigen_nonsymmv_workspace) -> Ptr (Ptr C'gsl_matrix)
p'gsl_eigen_nonsymmv_workspace'nonsymm_workspace_p p = plusPtr p 20
p'gsl_eigen_nonsymmv_workspace'nonsymm_workspace_p :: Ptr (C'gsl_eigen_nonsymmv_workspace) -> Ptr (Ptr C'gsl_eigen_nonsymm_workspace)
instance Storable C'gsl_eigen_nonsymmv_workspace where
  sizeOf _ = 24
  alignment _ = 4
  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_params" c'gsl_eigen_nonsymmv_params
  :: CInt -> Ptr C'gsl_eigen_nonsymm_workspace -> IO ()
foreign import ccall "&gsl_eigen_nonsymmv_params" p'gsl_eigen_nonsymmv_params
  :: FunPtr (CInt -> Ptr C'gsl_eigen_nonsymm_workspace -> IO ())

{-# LINE 102 "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 104 "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 107 "src/Bindings/Gsl/Eigensystems.hsc" #-}


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

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

{-# LINE 111 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_gensymm_workspace = C'gsl_eigen_gensymm_workspace{
  c'gsl_eigen_gensymm_workspace'size :: CSize,
  c'gsl_eigen_gensymm_workspace'symm_workspace_p :: Ptr C'gsl_eigen_symm_workspace
} deriving (Eq,Show)
p'gsl_eigen_gensymm_workspace'size p = plusPtr p 0
p'gsl_eigen_gensymm_workspace'size :: Ptr (C'gsl_eigen_gensymm_workspace) -> Ptr (CSize)
p'gsl_eigen_gensymm_workspace'symm_workspace_p p = plusPtr p 4
p'gsl_eigen_gensymm_workspace'symm_workspace_p :: Ptr (C'gsl_eigen_gensymm_workspace) -> Ptr (Ptr C'gsl_eigen_symm_workspace)
instance Storable C'gsl_eigen_gensymm_workspace where
  sizeOf _ = 8
  alignment _ = 4
  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 112 "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 114 "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 115 "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 116 "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 117 "src/Bindings/Gsl/Eigensystems.hsc" #-}


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

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

{-# LINE 121 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_gensymmv_workspace = C'gsl_eigen_gensymmv_workspace{
  c'gsl_eigen_gensymmv_workspace'size :: CSize,
  c'gsl_eigen_gensymmv_workspace'symmv_workspace_p :: Ptr C'gsl_eigen_symmv_workspace
} deriving (Eq,Show)
p'gsl_eigen_gensymmv_workspace'size p = plusPtr p 0
p'gsl_eigen_gensymmv_workspace'size :: Ptr (C'gsl_eigen_gensymmv_workspace) -> Ptr (CSize)
p'gsl_eigen_gensymmv_workspace'symmv_workspace_p p = plusPtr p 4
p'gsl_eigen_gensymmv_workspace'symmv_workspace_p :: Ptr (C'gsl_eigen_gensymmv_workspace) -> Ptr (Ptr C'gsl_eigen_symmv_workspace)
instance Storable C'gsl_eigen_gensymmv_workspace where
  sizeOf _ = 8
  alignment _ = 4
  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 122 "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 124 "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 125 "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 126 "src/Bindings/Gsl/Eigensystems.hsc" #-}


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

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

{-# LINE 130 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_genherm_workspace = C'gsl_eigen_genherm_workspace{
  c'gsl_eigen_genherm_workspace'size :: CSize,
  c'gsl_eigen_genherm_workspace'herm_workspace_p :: Ptr C'gsl_eigen_herm_workspace
} deriving (Eq,Show)
p'gsl_eigen_genherm_workspace'size p = plusPtr p 0
p'gsl_eigen_genherm_workspace'size :: Ptr (C'gsl_eigen_genherm_workspace) -> Ptr (CSize)
p'gsl_eigen_genherm_workspace'herm_workspace_p p = plusPtr p 4
p'gsl_eigen_genherm_workspace'herm_workspace_p :: Ptr (C'gsl_eigen_genherm_workspace) -> Ptr (Ptr C'gsl_eigen_herm_workspace)
instance Storable C'gsl_eigen_genherm_workspace where
  sizeOf _ = 8
  alignment _ = 4
  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 131 "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 133 "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 134 "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 135 "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 136 "src/Bindings/Gsl/Eigensystems.hsc" #-}


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

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

{-# LINE 140 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_genhermv_workspace = C'gsl_eigen_genhermv_workspace{
  c'gsl_eigen_genhermv_workspace'size :: CSize,
  c'gsl_eigen_genhermv_workspace'hermv_workspace_p :: Ptr C'gsl_eigen_hermv_workspace
} deriving (Eq,Show)
p'gsl_eigen_genhermv_workspace'size p = plusPtr p 0
p'gsl_eigen_genhermv_workspace'size :: Ptr (C'gsl_eigen_genhermv_workspace) -> Ptr (CSize)
p'gsl_eigen_genhermv_workspace'hermv_workspace_p p = plusPtr p 4
p'gsl_eigen_genhermv_workspace'hermv_workspace_p :: Ptr (C'gsl_eigen_genhermv_workspace) -> Ptr (Ptr C'gsl_eigen_hermv_workspace)
instance Storable C'gsl_eigen_genhermv_workspace where
  sizeOf _ = 8
  alignment _ = 4
  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 141 "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 143 "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 144 "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 145 "src/Bindings/Gsl/Eigensystems.hsc" #-}


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

{-# LINE 164 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_gen_workspace = C'gsl_eigen_gen_workspace{
  c'gsl_eigen_gen_workspace'size :: CSize,
  c'gsl_eigen_gen_workspace'work :: Ptr C'gsl_vector,
  c'gsl_eigen_gen_workspace'n_evals :: CSize,
  c'gsl_eigen_gen_workspace'max_iterations :: CSize,
  c'gsl_eigen_gen_workspace'n_iter :: CSize,
  c'gsl_eigen_gen_workspace'eshift :: CDouble,
  c'gsl_eigen_gen_workspace'needtop :: CInt,
  c'gsl_eigen_gen_workspace'atol :: CDouble,
  c'gsl_eigen_gen_workspace'btol :: CDouble,
  c'gsl_eigen_gen_workspace'ascale :: CDouble,
  c'gsl_eigen_gen_workspace'bscale :: CDouble,
  c'gsl_eigen_gen_workspace'H :: Ptr C'gsl_matrix,
  c'gsl_eigen_gen_workspace'R :: Ptr C'gsl_matrix,
  c'gsl_eigen_gen_workspace'compute_s :: CInt,
  c'gsl_eigen_gen_workspace'compute_t :: CInt,
  c'gsl_eigen_gen_workspace'Q :: Ptr C'gsl_matrix,
  c'gsl_eigen_gen_workspace'Z :: Ptr C'gsl_matrix
} deriving (Eq,Show)
p'gsl_eigen_gen_workspace'size p = plusPtr p 0
p'gsl_eigen_gen_workspace'size :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CSize)
p'gsl_eigen_gen_workspace'work p = plusPtr p 4
p'gsl_eigen_gen_workspace'work :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_gen_workspace'n_evals p = plusPtr p 8
p'gsl_eigen_gen_workspace'n_evals :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CSize)
p'gsl_eigen_gen_workspace'max_iterations p = plusPtr p 12
p'gsl_eigen_gen_workspace'max_iterations :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CSize)
p'gsl_eigen_gen_workspace'n_iter p = plusPtr p 16
p'gsl_eigen_gen_workspace'n_iter :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CSize)
p'gsl_eigen_gen_workspace'eshift p = plusPtr p 20
p'gsl_eigen_gen_workspace'eshift :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CDouble)
p'gsl_eigen_gen_workspace'needtop p = plusPtr p 28
p'gsl_eigen_gen_workspace'needtop :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CInt)
p'gsl_eigen_gen_workspace'atol p = plusPtr p 32
p'gsl_eigen_gen_workspace'atol :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CDouble)
p'gsl_eigen_gen_workspace'btol p = plusPtr p 40
p'gsl_eigen_gen_workspace'btol :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CDouble)
p'gsl_eigen_gen_workspace'ascale p = plusPtr p 48
p'gsl_eigen_gen_workspace'ascale :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CDouble)
p'gsl_eigen_gen_workspace'bscale p = plusPtr p 56
p'gsl_eigen_gen_workspace'bscale :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CDouble)
p'gsl_eigen_gen_workspace'H p = plusPtr p 64
p'gsl_eigen_gen_workspace'H :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (Ptr C'gsl_matrix)
p'gsl_eigen_gen_workspace'R p = plusPtr p 68
p'gsl_eigen_gen_workspace'R :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (Ptr C'gsl_matrix)
p'gsl_eigen_gen_workspace'compute_s p = plusPtr p 72
p'gsl_eigen_gen_workspace'compute_s :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CInt)
p'gsl_eigen_gen_workspace'compute_t p = plusPtr p 76
p'gsl_eigen_gen_workspace'compute_t :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (CInt)
p'gsl_eigen_gen_workspace'Q p = plusPtr p 80
p'gsl_eigen_gen_workspace'Q :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (Ptr C'gsl_matrix)
p'gsl_eigen_gen_workspace'Z p = plusPtr p 84
p'gsl_eigen_gen_workspace'Z :: Ptr (C'gsl_eigen_gen_workspace) -> Ptr (Ptr C'gsl_matrix)
instance Storable C'gsl_eigen_gen_workspace where
  sizeOf _ = 88
  alignment _ = 4
  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 165 "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 167 "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 168 "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 169 "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 170 "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 171 "src/Bindings/Gsl/Eigensystems.hsc" #-}


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

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

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

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

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

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

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

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

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

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

{-# LINE 183 "src/Bindings/Gsl/Eigensystems.hsc" #-}
data C'gsl_eigen_genv_workspace = C'gsl_eigen_genv_workspace{
  c'gsl_eigen_genv_workspace'size :: CSize,
  c'gsl_eigen_genv_workspace'work1 :: Ptr C'gsl_vector,
  c'gsl_eigen_genv_workspace'work2 :: Ptr C'gsl_vector,
  c'gsl_eigen_genv_workspace'work3 :: Ptr C'gsl_vector,
  c'gsl_eigen_genv_workspace'work4 :: Ptr C'gsl_vector,
  c'gsl_eigen_genv_workspace'work5 :: Ptr C'gsl_vector,
  c'gsl_eigen_genv_workspace'work6 :: Ptr C'gsl_vector,
  c'gsl_eigen_genv_workspace'Q :: Ptr C'gsl_matrix,
  c'gsl_eigen_genv_workspace'Z :: Ptr C'gsl_matrix,
  c'gsl_eigen_genv_workspace'gen_workspace_p :: Ptr C'gsl_eigen_gen_workspace
} deriving (Eq,Show)
p'gsl_eigen_genv_workspace'size p = plusPtr p 0
p'gsl_eigen_genv_workspace'size :: Ptr (C'gsl_eigen_genv_workspace) -> Ptr (CSize)
p'gsl_eigen_genv_workspace'work1 p = plusPtr p 4
p'gsl_eigen_genv_workspace'work1 :: Ptr (C'gsl_eigen_genv_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_genv_workspace'work2 p = plusPtr p 8
p'gsl_eigen_genv_workspace'work2 :: Ptr (C'gsl_eigen_genv_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_genv_workspace'work3 p = plusPtr p 12
p'gsl_eigen_genv_workspace'work3 :: Ptr (C'gsl_eigen_genv_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_genv_workspace'work4 p = plusPtr p 16
p'gsl_eigen_genv_workspace'work4 :: Ptr (C'gsl_eigen_genv_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_genv_workspace'work5 p = plusPtr p 20
p'gsl_eigen_genv_workspace'work5 :: Ptr (C'gsl_eigen_genv_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_genv_workspace'work6 p = plusPtr p 24
p'gsl_eigen_genv_workspace'work6 :: Ptr (C'gsl_eigen_genv_workspace) -> Ptr (Ptr C'gsl_vector)
p'gsl_eigen_genv_workspace'Q p = plusPtr p 28
p'gsl_eigen_genv_workspace'Q :: Ptr (C'gsl_eigen_genv_workspace) -> Ptr (Ptr C'gsl_matrix)
p'gsl_eigen_genv_workspace'Z p = plusPtr p 32
p'gsl_eigen_genv_workspace'Z :: Ptr (C'gsl_eigen_genv_workspace) -> Ptr (Ptr C'gsl_matrix)
p'gsl_eigen_genv_workspace'gen_workspace_p p = plusPtr p 36
p'gsl_eigen_genv_workspace'gen_workspace_p :: Ptr (C'gsl_eigen_genv_workspace) -> Ptr (Ptr C'gsl_eigen_gen_workspace)
instance Storable C'gsl_eigen_genv_workspace where
  sizeOf _ = 40
  alignment _ = 4
  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 184 "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 186 "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 187 "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 188 "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 189 "src/Bindings/Gsl/Eigensystems.hsc" #-}

type C'gsl_eigen_sort_t = CUInt

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

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

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

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

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

{-# LINE 196 "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 198 "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 199 "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 200 "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 201 "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 202 "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 203 "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 204 "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 205 "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 206 "src/Bindings/Gsl/Eigensystems.hsc" #-}