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

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

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

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

module Bindings.Gsl.LinearAlgebra 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/LinearAlgebra.hsc" #-}
import Bindings.Gsl.VectorsAndMatrices.DataTypes
import Bindings.Gsl.Permutations
import Bindings.Gsl.ComplexNumbers
import Bindings.Gsl.SpecialFunctions

type C'gsl_linalg_matrix_mod_t = CUInt

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

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

{-# LINE 16 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
c'GSL_LINALG_MOD_TRANSPOSE = 1
c'GSL_LINALG_MOD_TRANSPOSE :: (Num a) => a

{-# LINE 17 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
c'GSL_LINALG_MOD_CONJUGATE = 2
c'GSL_LINALG_MOD_CONJUGATE :: (Num a) => a

{-# LINE 18 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}

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

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

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

{-# LINE 22 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_householder_transform" c'gsl_linalg_householder_transform
  :: Ptr C'gsl_vector -> IO CDouble
foreign import ccall "&gsl_linalg_householder_transform" p'gsl_linalg_householder_transform
  :: FunPtr (Ptr C'gsl_vector -> IO CDouble)

{-# LINE 23 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
-- ccall gsl_linalg_complex_householder_transform , Ptr <gsl_vector_complex> -> IO <gsl_complex>
foreign import ccall "gsl_linalg_householder_hm" c'gsl_linalg_householder_hm
  :: CDouble -> Ptr C'gsl_vector -> Ptr C'gsl_matrix -> IO CInt
foreign import ccall "&gsl_linalg_householder_hm" p'gsl_linalg_householder_hm
  :: FunPtr (CDouble -> Ptr C'gsl_vector -> Ptr C'gsl_matrix -> IO CInt)

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

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

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

{-# LINE 28 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
-- ccall gsl_linalg_complex_householder_hm , <gsl_complex> -> Ptr <gsl_vector_complex> -> Ptr <gsl_matrix_complex> -> IO CInt
-- ccall gsl_linalg_complex_householder_mh , <gsl_complex> -> Ptr <gsl_vector_complex> -> Ptr <gsl_matrix_complex> -> IO CInt
-- ccall gsl_linalg_complex_householder_hv , <gsl_complex> -> Ptr <gsl_vector_complex> -> Ptr <gsl_vector_complex> -> IO CInt
foreign import ccall "gsl_linalg_hessenberg_decomp" c'gsl_linalg_hessenberg_decomp
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_hessenberg_decomp" p'gsl_linalg_hessenberg_decomp
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector -> IO CInt)

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

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

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

{-# LINE 35 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_hessenberg_submatrix" c'gsl_linalg_hessenberg_submatrix
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> CSize -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_hessenberg_submatrix" p'gsl_linalg_hessenberg_submatrix
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> CSize -> Ptr C'gsl_vector -> IO CInt)

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

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

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

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

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

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

{-# LINE 42 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_LU_solve" c'gsl_linalg_LU_solve
  :: Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_LU_solve" p'gsl_linalg_LU_solve
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 43 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_LU_svx" c'gsl_linalg_LU_svx
  :: Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_LU_svx" p'gsl_linalg_LU_svx
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 44 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_LU_refine" c'gsl_linalg_LU_refine
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_LU_refine" p'gsl_linalg_LU_refine
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

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

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

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

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

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

{-# LINE 50 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_complex_LU_solve" c'gsl_linalg_complex_LU_solve
  :: Ptr C'gsl_matrix_complex -> Ptr C'gsl_permutation -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector_complex -> IO CInt
foreign import ccall "&gsl_linalg_complex_LU_solve" p'gsl_linalg_complex_LU_solve
  :: FunPtr (Ptr C'gsl_matrix_complex -> Ptr C'gsl_permutation -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector_complex -> IO CInt)

{-# LINE 51 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_complex_LU_svx" c'gsl_linalg_complex_LU_svx
  :: Ptr C'gsl_matrix_complex -> Ptr C'gsl_permutation -> Ptr C'gsl_vector_complex -> IO CInt
foreign import ccall "&gsl_linalg_complex_LU_svx" p'gsl_linalg_complex_LU_svx
  :: FunPtr (Ptr C'gsl_matrix_complex -> Ptr C'gsl_permutation -> Ptr C'gsl_vector_complex -> IO CInt)

{-# LINE 52 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_complex_LU_refine" c'gsl_linalg_complex_LU_refine
  :: Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_permutation -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector_complex -> IO CInt
foreign import ccall "&gsl_linalg_complex_LU_refine" p'gsl_linalg_complex_LU_refine
  :: FunPtr (Ptr C'gsl_matrix_complex -> Ptr C'gsl_matrix_complex -> Ptr C'gsl_permutation -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector_complex -> Ptr C'gsl_vector_complex -> IO CInt)

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

{-# LINE 54 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
-- ccall gsl_linalg_complex_LU_det , Ptr <gsl_matrix_complex> -> CInt -> IO <gsl_complex>
foreign import ccall "gsl_linalg_complex_LU_lndet" c'gsl_linalg_complex_LU_lndet
  :: Ptr C'gsl_matrix_complex -> IO CDouble
foreign import ccall "&gsl_linalg_complex_LU_lndet" p'gsl_linalg_complex_LU_lndet
  :: FunPtr (Ptr C'gsl_matrix_complex -> IO CDouble)

{-# LINE 56 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
-- ccall gsl_linalg_complex_LU_sgndet , Ptr <gsl_matrix_complex> -> CInt -> IO <gsl_complex>
foreign import ccall "gsl_linalg_QR_decomp" c'gsl_linalg_QR_decomp
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_QR_decomp" p'gsl_linalg_QR_decomp
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector -> IO CInt)

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

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

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

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

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

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

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

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

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

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

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

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

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

{-# LINE 71 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_QRPT_decomp" c'gsl_linalg_QRPT_decomp
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr CInt -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_QRPT_decomp" p'gsl_linalg_QRPT_decomp
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr CInt -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 72 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_QRPT_decomp2" c'gsl_linalg_QRPT_decomp2
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr CInt -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_QRPT_decomp2" p'gsl_linalg_QRPT_decomp2
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr CInt -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 73 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_QRPT_solve" c'gsl_linalg_QRPT_solve
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_QRPT_solve" p'gsl_linalg_QRPT_solve
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 74 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_QRPT_svx" c'gsl_linalg_QRPT_svx
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_QRPT_svx" p'gsl_linalg_QRPT_svx
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 75 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_QRPT_QRsolve" c'gsl_linalg_QRPT_QRsolve
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_QRPT_QRsolve" p'gsl_linalg_QRPT_QRsolve
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 76 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_QRPT_Rsolve" c'gsl_linalg_QRPT_Rsolve
  :: Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_QRPT_Rsolve" p'gsl_linalg_QRPT_Rsolve
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 77 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_QRPT_Rsvx" c'gsl_linalg_QRPT_Rsvx
  :: Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_QRPT_Rsvx" p'gsl_linalg_QRPT_Rsvx
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 78 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_QRPT_update" c'gsl_linalg_QRPT_update
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_QRPT_update" p'gsl_linalg_QRPT_update
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

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

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

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

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

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

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

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

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

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

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

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

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

{-# LINE 91 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_PTLQ_decomp" c'gsl_linalg_PTLQ_decomp
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr CInt -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_PTLQ_decomp" p'gsl_linalg_PTLQ_decomp
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr CInt -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 92 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_PTLQ_decomp2" c'gsl_linalg_PTLQ_decomp2
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr CInt -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_PTLQ_decomp2" p'gsl_linalg_PTLQ_decomp2
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr CInt -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 93 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_PTLQ_solve_T" c'gsl_linalg_PTLQ_solve_T
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_PTLQ_solve_T" p'gsl_linalg_PTLQ_solve_T
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 94 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_PTLQ_svx_T" c'gsl_linalg_PTLQ_svx_T
  :: Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_PTLQ_svx_T" p'gsl_linalg_PTLQ_svx_T
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_vector -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 95 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_PTLQ_LQsolve_T" c'gsl_linalg_PTLQ_LQsolve_T
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_PTLQ_LQsolve_T" p'gsl_linalg_PTLQ_LQsolve_T
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 96 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_PTLQ_Lsolve_T" c'gsl_linalg_PTLQ_Lsolve_T
  :: Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_PTLQ_Lsolve_T" p'gsl_linalg_PTLQ_Lsolve_T
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 97 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_PTLQ_Lsvx_T" c'gsl_linalg_PTLQ_Lsvx_T
  :: Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_PTLQ_Lsvx_T" p'gsl_linalg_PTLQ_Lsvx_T
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 98 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_PTLQ_update" c'gsl_linalg_PTLQ_update
  :: Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_PTLQ_update" p'gsl_linalg_PTLQ_update
  :: FunPtr (Ptr C'gsl_matrix -> Ptr C'gsl_matrix -> Ptr C'gsl_permutation -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

{-# LINE 116 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_solve_symm_tridiag" c'gsl_linalg_solve_symm_tridiag
  :: Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_solve_symm_tridiag" p'gsl_linalg_solve_symm_tridiag
  :: FunPtr (Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 117 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_solve_tridiag" c'gsl_linalg_solve_tridiag
  :: Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_solve_tridiag" p'gsl_linalg_solve_tridiag
  :: FunPtr (Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

{-# LINE 118 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}
foreign import ccall "gsl_linalg_solve_symm_cyc_tridiag" c'gsl_linalg_solve_symm_cyc_tridiag
  :: Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt
foreign import ccall "&gsl_linalg_solve_symm_cyc_tridiag" p'gsl_linalg_solve_symm_cyc_tridiag
  :: FunPtr (Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> Ptr C'gsl_vector -> IO CInt)

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

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

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

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

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

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

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

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

{-# LINE 127 "src/Bindings/Gsl/LinearAlgebra.hsc" #-}