summaryrefslogtreecommitdiff
path: root/packages/base/src/Internal/Sparse.hs
diff options
context:
space:
mode:
Diffstat (limited to 'packages/base/src/Internal/Sparse.hs')
-rw-r--r--packages/base/src/Internal/Sparse.hs16
1 files changed, 8 insertions, 8 deletions
diff --git a/packages/base/src/Internal/Sparse.hs b/packages/base/src/Internal/Sparse.hs
index fbea11a..423b169 100644
--- a/packages/base/src/Internal/Sparse.hs
+++ b/packages/base/src/Internal/Sparse.hs
@@ -20,7 +20,7 @@ import Data.Function(on)
20import Control.Arrow((***)) 20import Control.Arrow((***))
21import Control.Monad(when) 21import Control.Monad(when)
22import Data.List(groupBy, sort) 22import Data.List(groupBy, sort)
23import Foreign.C.Types(CInt(..)) 23import Data.Int
24 24
25import Internal.Devel 25import Internal.Devel
26import System.IO.Unsafe(unsafePerformIO) 26import System.IO.Unsafe(unsafePerformIO)
@@ -34,16 +34,16 @@ type AssocMatrix = [((Int,Int),Double)]
34 34
35data CSR = CSR 35data CSR = CSR
36 { csrVals :: Vector Double 36 { csrVals :: Vector Double
37 , csrCols :: Vector CInt 37 , csrCols :: Vector Int32
38 , csrRows :: Vector CInt 38 , csrRows :: Vector Int32
39 , csrNRows :: Int 39 , csrNRows :: Int
40 , csrNCols :: Int 40 , csrNCols :: Int
41 } deriving Show 41 } deriving Show
42 42
43data CSC = CSC 43data CSC = CSC
44 { cscVals :: Vector Double 44 { cscVals :: Vector Double
45 , cscRows :: Vector CInt 45 , cscRows :: Vector Int32
46 , cscCols :: Vector CInt 46 , cscCols :: Vector Int32
47 , cscNRows :: Int 47 , cscNRows :: Int
48 , cscNCols :: Int 48 , cscNCols :: Int
49 } deriving Show 49 } deriving Show
@@ -138,9 +138,9 @@ mkDiagR r c v
138 diagVals = v 138 diagVals = v
139 139
140 140
141type IV t = CInt -> Ptr CInt -> t 141type IV t = Int32 -> Ptr Int32 -> t
142type V t = CInt -> Ptr Double -> t 142type V t = Int32 -> Ptr Double -> t
143type SMxV = V (IV (IV (V (V (IO CInt))))) 143type SMxV = V (IV (IV (V (V (IO Int32)))))
144 144
145gmXv :: GMatrix -> Vector Double -> Vector Double 145gmXv :: GMatrix -> Vector Double -> Vector Double
146gmXv SparseR { gmCSR = CSR{..}, .. } v = unsafePerformIO $ do 146gmXv SparseR { gmCSR = CSR{..}, .. } v = unsafePerformIO $ do