{-# LANGUAGE DataKinds #-} {-# LANGUAGE KindSignatures #-} module Torch.Types.THC.Byte where import Foreign import Foreign.C.Types import GHC.TypeLits (Nat) import GHC.Word import Torch.Types.TH (C'THLongStorage, C'THLongTensor) import Torch.Types.THC import qualified Torch.Types.THC.Long as Long type CStorage = CByteStorage type CTensor = CByteTensor type CReal = CUChar type CAccReal = CLong type HsReal = Word8 type HsAccReal = Word64 real2acc :: HsReal -> HsAccReal real2acc = fromIntegral acc2real :: HsAccReal -> HsReal acc2real = fromIntegral hs2cReal :: HsReal -> CReal hs2cReal = fromIntegral hs2cAccReal :: HsAccReal -> CAccReal hs2cAccReal = fromIntegral c2hsReal :: CReal -> HsReal c2hsReal = fromIntegral c2hsAccReal :: CAccReal -> HsAccReal c2hsAccReal = fromIntegral i2hsReal :: Integral i => i -> HsReal i2hsReal = fromIntegral type Storage = ByteStorage cstorage = snd . byteStorageState storage = byteStorage storageState = byteStorageState storageStateRef = fst . byteStorageState type Dynamic = ByteDynamic ctensor = snd . byteDynamicState dynamic = byteDynamic dynamicState = byteDynamicState dynamicStateRef = fst . byteDynamicState type Tensor = ByteTensor asDynamic = byteAsDynamic asStatic = byteAsStatic -- instance Fractional Word8