hasktorch-signatures-types (empty) → 0.0.1.0
raw patch · 6 files changed
+313/−0 lines, 6 filesdep +basedep +deepseq
Dependencies added: base, deepseq
Files
- hasktorch-signatures-types.cabal +39/−0
- src/Torch/Sig/State.hsig +22/−0
- src/Torch/Sig/Storage/Memory.hsig +7/−0
- src/Torch/Sig/Tensor/Memory.hsig +7/−0
- src/Torch/Sig/Types.hsig +84/−0
- src/Torch/Sig/Types/Global.hsig +154/−0
+ hasktorch-signatures-types.cabal view
@@ -0,0 +1,39 @@+cabal-version: 2.2+-- * * * * * * * * * * * * WARNING * * * * * * * * * * * *+-- This file has been AUTO-GENERATED by dhall-to-cabal.+--+-- Do not edit it by hand, because your changes will be over-written!+--+-- Instead, edit the source Dhall file, namely+-- 'signatures/types/hasktorch-signatures-types.dhall', and re-generate this file by running+-- 'dhall-to-cabal -- signatures/types/hasktorch-signatures-types.dhall > hasktorch-signatures-types.cabal'.+-- * * * * * * * * * * * * WARNING * * * * * * * * * * * *+name: hasktorch-signatures-types+version: 0.0.1.0+license: BSD-3-Clause+maintainer: Sam Stites <fnz@fgvgrf.vb>, Austin Huang <nhfgvau@nyhz.zvg.rqh> - cipher:ROT13+author: Hasktorch dev team+homepage: https://github.com/hasktorch/hasktorch#readme+bug-reports: https://github.com/hasktorch/hasktorch/issues+synopsis: Core types for Hasktorch backpack signatures+description:+ This package includes core signature types to abstract over the hasktorch-types-* packages.+category: Tensors, Machine Learning, AI+build-type: Simple++source-repository head+ type: git+ location: https://github.com/hasktorch/hasktorch++library+ signatures: Torch.Sig.State+ Torch.Sig.Types+ Torch.Sig.Types.Global+ Torch.Sig.Tensor.Memory+ Torch.Sig.Storage.Memory+ hs-source-dirs: src+ default-language: Haskell2010+ build-depends:+ base (==4.7 || >4.7) && <5,+ deepseq ==1.3.0 || >1.3.0+
+ src/Torch/Sig/State.hsig view
@@ -0,0 +1,22 @@+-------------------------------------------------------------------------------+-- |+-- Module : Torch.Sig.State+-- Copyright : (c) Sam Stites 2017+-- License : BSD3+-- Maintainer: sam@stites.io+-- Stability : experimental+-- Portability: non-portable+--+-- Signatures which relate to creating State and is _not_ involving in a+-- state's definition.+-------------------------------------------------------------------------------+signature Torch.Sig.State where++import Foreign+import Torch.Sig.Types.Global++torchstate :: ForeignPtr CState++-- newCState :: IO (Ptr CState)+-- manageState :: Ptr CState -> IO (ForeignPtr CState)+
+ src/Torch/Sig/Storage/Memory.hsig view
@@ -0,0 +1,7 @@+signature Torch.Sig.Storage.Memory where++import Foreign+import Torch.Sig.Types+import Torch.Sig.Types.Global++p_free :: FunPtr (Ptr CState -> Ptr CStorage -> IO ())
+ src/Torch/Sig/Tensor/Memory.hsig view
@@ -0,0 +1,7 @@+signature Torch.Sig.Tensor.Memory where++import Foreign+import Torch.Sig.Types+import Torch.Sig.Types.Global++p_free :: FunPtr (Ptr CState -> Ptr CTensor -> IO ())
+ src/Torch/Sig/Types.hsig view
@@ -0,0 +1,84 @@+{-# LANGUAGE KindSignatures #-}+{-# LANGUAGE DataKinds #-}+signature Torch.Sig.Types where++import Foreign+import Foreign.Storable+import GHC.TypeLits (Nat)+import Torch.Sig.Types.Global as X+import Control.DeepSeq+import Text.Printf++-- all C-types+data CTensor+instance Eq CTensor+data CStorage+instance Eq CStorage++-- freeStorage :: Ptr CState -> Ptr CStorage -> IO ()+-- freeTensor :: Ptr CState -> Ptr CTensor -> IO ()++-- all haskell, memory-managed types+data Dynamic+instance Eq Dynamic+ctensor :: Dynamic -> ForeignPtr CTensor+dynamic :: ForeignPtr CState -> ForeignPtr CTensor -> Dynamic+dynamicState :: Dynamic -> (ForeignPtr CState, ForeignPtr CTensor)+dynamicStateRef :: Dynamic -> ForeignPtr CState++data Storage+instance Eq Storage+cstorage :: Storage -> ForeignPtr CStorage+storage :: ForeignPtr CState -> ForeignPtr CStorage -> Storage+storageState :: Storage -> (ForeignPtr CState, ForeignPtr CStorage)+storageStateRef :: Storage -> ForeignPtr CState++data Tensor (d::[Nat])+instance Eq (Tensor d)+asStatic :: Dynamic -> Tensor d+asDynamic :: Tensor d -> Dynamic++data CReal+instance Num CReal+instance Show CReal+instance Storable CReal+instance NFData CReal+-- instance PrintfArg CReal++data CAccReal+instance Num CAccReal+instance Show CAccReal+instance Storable CAccReal+instance NFData CAccReal+-- instance PrintfArg CAccReal++data HsReal+instance Num HsReal+instance Show HsReal+instance Ord HsReal+instance NFData HsReal+instance PrintfArg HsReal++-- FIXME: Consider how we will add things that are Fractional-specific in the+-- NN package like xavier instantiation.+--+-- instance Fractional HsReal++data HsAccReal+instance Num HsAccReal+instance Show HsAccReal+instance Ord HsAccReal+instance NFData HsAccReal+instance PrintfArg HsAccReal++real2acc :: HsReal -> HsAccReal+acc2real :: HsAccReal -> HsReal++hs2cReal :: HsReal -> CReal+hs2cAccReal :: HsAccReal -> CAccReal++c2hsReal :: CReal -> HsReal+c2hsAccReal :: CAccReal -> HsAccReal++-- i2hsReal :: Integral i => i -> HsReal+
+ src/Torch/Sig/Types/Global.hsig view
@@ -0,0 +1,154 @@+{-# LANGUAGE KindSignatures #-}+{-# LANGUAGE DataKinds #-}++signature Torch.Sig.Types.Global where++import Foreign+import GHC.TypeLits+import Data.Kind++data CState+data State+asState :: ForeignPtr CState -> State+asForeign :: State -> ForeignPtr CState++-- all Globals variants+data CAllocator+data Allocator++data CDescBuff+data DescBuff+descBuff :: Ptr CDescBuff -> IO DescBuff++-- for RNG+data CGenerator+data Generator+rng :: Generator -> ForeignPtr CGenerator+generatorToRng :: ForeignPtr CGenerator -> Generator++-- any quirky splits between TH (CInt) and THC (CLLong)+data CInt'+instance Integral CInt'+instance Num CInt'+instance Ord CInt'+instance Enum CInt'+instance Bounded CInt'++-- aliases+type CMaskTensor = CByteTensor+type CIndexTensor = CLongTensor+type CIndexStorage = CLongStorage++type MaskTensor = (ByteTensor :: [Nat] -> Type)+type MaskDynamic = ByteDynamic+type IndexTensor = (LongTensor :: [Nat] -> Type)+type IndexDynamic = LongDynamic+type IndexStorage = LongStorage++-- unsigned types+data CByteTensor+data ByteTensor (d::[Nat])+byteAsDynamic :: ByteTensor (d::[Nat]) -> ByteDynamic+byteAsStatic :: ByteDynamic -> ByteTensor (d::[Nat])+data ByteDynamic+byteDynamicState :: ByteDynamic -> (ForeignPtr CState, ForeignPtr CByteTensor)+byteDynamic :: ForeignPtr CState -> ForeignPtr CByteTensor -> ByteDynamic++data CByteStorage+data ByteStorage+byteStorageState :: ByteStorage -> (ForeignPtr CState, ForeignPtr CByteStorage)+byteStorage :: ForeignPtr CState -> ForeignPtr CByteStorage -> ByteStorage++data CCharTensor+data CharTensor (d::[Nat])+charAsDynamic :: CharTensor (d::[Nat]) -> CharDynamic+charAsStatic :: CharDynamic -> CharTensor (d::[Nat])+data CharDynamic+charDynamicState :: CharDynamic -> (ForeignPtr CState, ForeignPtr CCharTensor)+charDynamic :: ForeignPtr CState -> ForeignPtr CCharTensor -> CharDynamic++data CCharStorage+data CharStorage+charStorageState :: CharStorage -> (ForeignPtr CState, ForeignPtr CCharStorage)+charStorage :: ForeignPtr CState -> ForeignPtr CCharStorage -> CharStorage++-- Signed types+data CLongTensor+data LongTensor (d::[Nat])+longAsDynamic :: LongTensor (d::[Nat]) -> LongDynamic+longAsStatic :: LongDynamic -> LongTensor (d::[Nat])+data LongDynamic+longDynamicState :: LongDynamic -> (ForeignPtr CState, ForeignPtr CLongTensor)+longDynamic :: ForeignPtr CState -> ForeignPtr CLongTensor -> LongDynamic++data CLongStorage+data LongStorage+longStorageState :: LongStorage -> (ForeignPtr CState, ForeignPtr CLongStorage)+longStorage :: ForeignPtr CState -> ForeignPtr CLongStorage -> LongStorage++data CShortTensor+data ShortTensor (d::[Nat])+shortAsDynamic :: ShortTensor (d::[Nat]) -> ShortDynamic+shortAsStatic :: ShortDynamic -> ShortTensor (d::[Nat])+data ShortDynamic+shortDynamicState :: ShortDynamic -> (ForeignPtr CState, ForeignPtr CShortTensor)+shortDynamic :: ForeignPtr CState -> ForeignPtr CShortTensor -> ShortDynamic++data CShortStorage+data ShortStorage+shortStorageState :: ShortStorage -> (ForeignPtr CState, ForeignPtr CShortStorage)+shortStorage :: ForeignPtr CState -> ForeignPtr CShortStorage -> ShortStorage++data CIntTensor+data IntTensor (d::[Nat])+intAsDynamic :: IntTensor (d::[Nat]) -> IntDynamic+intAsStatic :: IntDynamic -> IntTensor (d::[Nat])+data IntDynamic+intDynamicState :: IntDynamic -> (ForeignPtr CState, ForeignPtr CIntTensor)+intDynamic :: ForeignPtr CState -> ForeignPtr CIntTensor -> IntDynamic++data CIntStorage+data IntStorage+intStorageState :: IntStorage -> (ForeignPtr CState, ForeignPtr CIntStorage)+intStorage :: ForeignPtr CState -> ForeignPtr CIntStorage -> IntStorage++-- Floating types+data CFloatTensor+data FloatTensor (d::[Nat])+floatAsDynamic :: FloatTensor (d::[Nat]) -> FloatDynamic+floatAsStatic :: FloatDynamic -> FloatTensor (d::[Nat])+data FloatDynamic+floatDynamicState :: FloatDynamic -> (ForeignPtr CState, ForeignPtr CFloatTensor)+floatDynamic :: ForeignPtr CState -> ForeignPtr CFloatTensor -> FloatDynamic++data CFloatStorage+data FloatStorage+floatStorageState :: FloatStorage -> (ForeignPtr CState, ForeignPtr CFloatStorage)+floatStorage :: ForeignPtr CState -> ForeignPtr CFloatStorage -> FloatStorage++data CDoubleTensor+data DoubleTensor (d::[Nat])+doubleAsDynamic :: DoubleTensor (d::[Nat]) -> DoubleDynamic+doubleAsStatic :: DoubleDynamic -> DoubleTensor (d::[Nat])+data DoubleDynamic+doubleDynamicState :: DoubleDynamic -> (ForeignPtr CState, ForeignPtr CDoubleTensor)+doubleDynamic :: ForeignPtr CState -> ForeignPtr CDoubleTensor -> DoubleDynamic++data CDoubleStorage+data DoubleStorage+doubleStorageState :: DoubleStorage -> (ForeignPtr CState, ForeignPtr CDoubleStorage)+doubleStorage :: ForeignPtr CState -> ForeignPtr CDoubleStorage -> DoubleStorage++{-+data CHalfTensor+data HalfDynamic+halfCTensor :: HalfDynamic -> ForeignPtr CHalfTensor+halfDynamic :: ForeignPtr CHalfTensor -> HalfDynamic++data CHalfStorage+data HalfStorage+halfCStorage :: HalfStorage -> (ForeignPtr CHalfStorage, ForeignPtr CState)+halfStorage :: ForeignPtr CHalfStorage -> HalfStorage+-}++