From a22963fa83156b76dd73777b7044897eed50e3bc Mon Sep 17 00:00:00 2001 From: Dominic Steinitz Date: Sun, 11 Mar 2018 14:21:31 +0000 Subject: The start of an hmatrix interface to sundials --- packages/sundials/src/Types.hs | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 packages/sundials/src/Types.hs (limited to 'packages/sundials/src/Types.hs') 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 @@ +{-# LANGUAGE QuasiQuotes #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE MultiWayIf #-} +{-# LANGUAGE OverloadedStrings #-} + +module Types where + +import qualified Language.C.Inline as C +import qualified Language.C.Inline.Unsafe as CU +import Data.Monoid ((<>)) +import Foreign.C.Types +import Foreign.Ptr (Ptr) +import Foreign.Marshal.Array +import qualified Data.Vector.Storable as V + +import Data.Coerce (coerce) +import Data.Monoid ((<>)) +import qualified Data.Vector.Storable as V +import qualified Data.Vector.Storable.Mutable as VM +import Foreign.C.Types +import Foreign.ForeignPtr (newForeignPtr_) +import Foreign.Ptr (Ptr) +import Foreign.Storable (Storable) +import qualified Language.C.Inline as C +import qualified Language.C.Inline.Unsafe as CU +import System.IO.Unsafe (unsafePerformIO) + +import qualified Language.Haskell.TH as TH +import qualified Language.C.Types as CT +import qualified Data.Map as Map +import Language.C.Inline.Context + + +-- This is a lie!!! +type SunIndexType = CLong + +sunTypesTable :: Map.Map CT.TypeSpecifier TH.TypeQ +sunTypesTable = Map.fromList + [ + (CT.TypeName "sunindextype", [t| SunIndexType |] ) + ] + +sunctx = mempty {ctxTypesTable = sunTypesTable} + -- cgit v1.2.3