{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, IncoherentInstances, MultiParamTypeClasses, OverlappingInstances, TemplateHaskell, TypeFamilies, TypeSynonymInstances #-} module HROOT.Core.TArray.Implementation where import Data.Monoid import Data.Word import Data.Int import Foreign.C import Foreign.Ptr import Language.Haskell.TH import Language.Haskell.TH.Syntax import System.IO.Unsafe import FFICXX.Runtime.Cast import FFICXX.Runtime.CodeGen.Cxx import FFICXX.Runtime.TH import HROOT.Core.TArray.RawType import HROOT.Core.TArray.FFI import HROOT.Core.TArray.Interface import HROOT.Core.TArray.Cast import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface import STD.Deletable.RawType import STD.Deletable.Cast import STD.Deletable.Interface instance () => ITArray (TArray) where getAt :: TArray -> CInt -> IO CDouble getAt = (Ptr RawTArray -> CInt -> IO CDouble) -> TArray -> CInt -> IO CDouble forall a ca x1 cx1 y cy. (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y xform1 Ptr RawTArray -> CInt -> IO CDouble c_tarray_getat setArray :: TArray -> CInt -> IO () setArray = (Ptr RawTArray -> CInt -> IO ()) -> TArray -> CInt -> IO () forall a ca x1 cx1 y cy. (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y xform1 Ptr RawTArray -> CInt -> IO () c_tarray_setarray setAt :: TArray -> CDouble -> CInt -> IO () setAt = (Ptr RawTArray -> CDouble -> CInt -> IO ()) -> TArray -> CDouble -> CInt -> IO () forall a ca x1 cx1 x2 cx2 y cy. (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable y cy) => (ca -> cx1 -> cx2 -> IO cy) -> a -> x1 -> x2 -> IO y xform2 Ptr RawTArray -> CDouble -> CInt -> IO () c_tarray_setat instance () => IDeletable (TArray) where delete :: TArray -> IO () delete = (Ptr RawTArray -> IO ()) -> TArray -> IO () forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTArray -> IO () c_tarray_delete tArray_GetSize :: () => TArray -> IO CInt tArray_GetSize :: TArray -> IO CInt tArray_GetSize = (Ptr RawTArray -> IO CInt) -> TArray -> IO CInt forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTArray -> IO CInt c_tarray_tarray_getsize