diff --git a/lapack-carray.cabal b/lapack-carray.cabal
--- a/lapack-carray.cabal
+++ b/lapack-carray.cabal
@@ -1,5 +1,5 @@
 Name:             lapack-carray
-Version:          0.0.1
+Version:          0.0.2
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -40,7 +40,7 @@
 Build-Type:       Simple
 
 Source-Repository this
-  Tag:         0.0.1
+  Tag:         0.0.2
   Type:        darcs
   Location:    http://hub.darcs.net/thielema/lapack-carray/
 
@@ -52,7 +52,7 @@
   Build-Depends:
     lapack-ffi >=0.0 && <0.1,
     netlib-carray >=0.0 && <0.1,
-    netlib-ffi >=0.0 && <0.1,
+    netlib-ffi >=0.0 && <0.2,
     carray >=0.1.5 && <0.2,
     storable-complex >=0.2.2 && <0.3,
     transformers >=0.4 && <0.6,
diff --git a/src/Numeric/LAPACK/CArray/Generic.hs b/src/Numeric/LAPACK/CArray/Generic.hs
--- a/src/Numeric/LAPACK/CArray/Generic.hs
+++ b/src/Numeric/LAPACK/CArray/Generic.hs
@@ -35,6 +35,10 @@
    gtts2,
    hbgst,
    hpgst,
+   hpsv,
+   hptrf,
+   hptri,
+   hptrs,
    ilalc,
    ilalr,
    lacpy,
@@ -352,6 +356,30 @@
 
 hpgst :: Class.Floating a => Int -> Char -> Int -> IOCArray Int a -> CArray Int a -> IO (Int)
 hpgst = getHPGST $ Class.switchFloating (HPGST S.spgst) (HPGST D.spgst) (HPGST C.hpgst) (HPGST Z.hpgst)
+
+
+newtype HPSV a = HPSV {getHPSV :: Char -> Int -> IOCArray Int a -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)}
+
+hpsv :: Class.Floating a => Char -> Int -> IOCArray Int a -> IOCArray (Int,Int) a -> IO (CArray Int CInt, Int)
+hpsv = getHPSV $ Class.switchFloating (HPSV S.spsv) (HPSV D.spsv) (HPSV C.hpsv) (HPSV Z.hpsv)
+
+
+newtype HPTRF a = HPTRF {getHPTRF :: Char -> Int -> IOCArray Int a -> IO (CArray Int CInt, Int)}
+
+hptrf :: Class.Floating a => Char -> Int -> IOCArray Int a -> IO (CArray Int CInt, Int)
+hptrf = getHPTRF $ Class.switchFloating (HPTRF S.sptrf) (HPTRF D.sptrf) (HPTRF C.hptrf) (HPTRF Z.hptrf)
+
+
+newtype HPTRI a = HPTRI {getHPTRI :: Char -> IOCArray Int a -> CArray Int CInt -> IO (Int)}
+
+hptri :: Class.Floating a => Char -> IOCArray Int a -> CArray Int CInt -> IO (Int)
+hptri = getHPTRI $ Class.switchFloating (HPTRI S.sptri) (HPTRI D.sptri) (HPTRI C.hptri) (HPTRI Z.hptri)
+
+
+newtype HPTRS a = HPTRS {getHPTRS :: Char -> CArray Int a -> CArray Int CInt -> IOCArray (Int,Int) a -> IO (Int)}
+
+hptrs :: Class.Floating a => Char -> CArray Int a -> CArray Int CInt -> IOCArray (Int,Int) a -> IO (Int)
+hptrs = getHPTRS $ Class.switchFloating (HPTRS S.sptrs) (HPTRS D.sptrs) (HPTRS C.hptrs) (HPTRS Z.hptrs)
 
 
 newtype ILALC a = ILALC {getILALC :: Int -> CArray (Int,Int) a -> IO CInt}
