summaryrefslogtreecommitdiff
path: root/packages/sundials/src/Types.hs
diff options
context:
space:
mode:
authorDominic Steinitz <dominic@steinitz.org>2018-03-11 14:21:31 +0000
committerDominic Steinitz <dominic@steinitz.org>2018-03-11 14:21:31 +0000
commita22963fa83156b76dd73777b7044897eed50e3bc (patch)
tree325c1f1d19bb0764290650770733e6bf8db171f8 /packages/sundials/src/Types.hs
parentd83b17190029c11e3ab8b504e5cdc917f5863120 (diff)
The start of an hmatrix interface to sundials
Diffstat (limited to 'packages/sundials/src/Types.hs')
-rw-r--r--packages/sundials/src/Types.hs44
1 files changed, 44 insertions, 0 deletions
diff --git a/packages/sundials/src/Types.hs b/packages/sundials/src/Types.hs
new file mode 100644
index 0000000..355850d
--- /dev/null
+++ b/packages/sundials/src/Types.hs
@@ -0,0 +1,44 @@
1{-# LANGUAGE QuasiQuotes #-}
2{-# LANGUAGE TemplateHaskell #-}
3{-# LANGUAGE MultiWayIf #-}
4{-# LANGUAGE OverloadedStrings #-}
5
6module Types where
7
8import qualified Language.C.Inline as C
9import qualified Language.C.Inline.Unsafe as CU
10import Data.Monoid ((<>))
11import Foreign.C.Types
12import Foreign.Ptr (Ptr)
13import Foreign.Marshal.Array
14import qualified Data.Vector.Storable as V
15
16import Data.Coerce (coerce)
17import Data.Monoid ((<>))
18import qualified Data.Vector.Storable as V
19import qualified Data.Vector.Storable.Mutable as VM
20import Foreign.C.Types
21import Foreign.ForeignPtr (newForeignPtr_)
22import Foreign.Ptr (Ptr)
23import Foreign.Storable (Storable)
24import qualified Language.C.Inline as C
25import qualified Language.C.Inline.Unsafe as CU
26import System.IO.Unsafe (unsafePerformIO)
27
28import qualified Language.Haskell.TH as TH
29import qualified Language.C.Types as CT
30import qualified Data.Map as Map
31import Language.C.Inline.Context
32
33
34-- This is a lie!!!
35type SunIndexType = CLong
36
37sunTypesTable :: Map.Map CT.TypeSpecifier TH.TypeQ
38sunTypesTable = Map.fromList
39 [
40 (CT.TypeName "sunindextype", [t| SunIndexType |] )
41 ]
42
43sunctx = mempty {ctxTypesTable = sunTypesTable}
44